diff --git a/app/code/Magento/Captcha/Test/Mftf/ActionGroup/AssertCaptchaVisibleOnEmailToFriendFormActionGroup.xml b/app/code/Magento/Captcha/Test/Mftf/ActionGroup/AssertCaptchaVisibleOnEmailToFriendFormActionGroup.xml new file mode 100644 index 0000000000000..4dfc8e3a3ee3f --- /dev/null +++ b/app/code/Magento/Captcha/Test/Mftf/ActionGroup/AssertCaptchaVisibleOnEmailToFriendFormActionGroup.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/app/code/Magento/Captcha/Test/Mftf/ActionGroup/StorefrontFillCaptchaOnEmailToFriendFormActionGroup.xml b/app/code/Magento/Captcha/Test/Mftf/ActionGroup/StorefrontFillCaptchaOnEmailToFriendFormActionGroup.xml new file mode 100644 index 0000000000000..6697713b5320d --- /dev/null +++ b/app/code/Magento/Captcha/Test/Mftf/ActionGroup/StorefrontFillCaptchaOnEmailToFriendFormActionGroup.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/app/code/Magento/Captcha/Test/Mftf/Data/CaptchaConfigData.xml b/app/code/Magento/Captcha/Test/Mftf/Data/CaptchaConfigData.xml index 56aa2571fbc9b..c85d742c5c286 100644 --- a/app/code/Magento/Captcha/Test/Mftf/Data/CaptchaConfigData.xml +++ b/app/code/Magento/Captcha/Test/Mftf/Data/CaptchaConfigData.xml @@ -1,9 +1,9 @@ ABCDEFGHJKMnpqrstuvwxyz23456789 ABCDEFGHJKMnpqrstuvwxyz23456789 + + customer/captcha/forms + 0 + Send To Friend Form + product_sendtofriend_form + admin/captcha/forms diff --git a/app/code/Magento/Captcha/Test/Mftf/Test/StorefrontCaptchaOnEmailToFriendFormTest.xml b/app/code/Magento/Captcha/Test/Mftf/Test/StorefrontCaptchaOnEmailToFriendFormTest.xml new file mode 100644 index 0000000000000..bb1a963abebb7 --- /dev/null +++ b/app/code/Magento/Captcha/Test/Mftf/Test/StorefrontCaptchaOnEmailToFriendFormTest.xml @@ -0,0 +1,89 @@ + + + + + + + + + + <description value="Customer should be able send email to friend about product with enabled captcha"/> + <severity value="MINOR"/> + <group value="captcha"/> + </annotations> + <before> + <createData entity="SimpleSubCategory" stepKey="createCategory"/> + <createData entity="SimpleProduct" stepKey="createProduct"> + <requiredEntity createDataKey="createCategory"/> + </createData> + <createData entity="Simple_US_Customer" stepKey="createCustomer"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaLength3ConfigData.path}} {{StorefrontCustomerCaptchaLength3ConfigData.value}}" stepKey="setCaptchaLength"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaSymbols1ConfigData.path}} {{StorefrontCustomerCaptchaSymbols1ConfigData.value}}" stepKey="setCaptchaSymbols"/> + <magentoCLI command="config:set {{StorefrontCaptchaOnEmailToFriendFormConfigData.path}} {{StorefrontCaptchaOnEmailToFriendFormConfigData.value}}" stepKey="enableEmailToFriendCaptcha"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaModeAlwaysConfigData.path}} {{StorefrontCustomerCaptchaModeAlwaysConfigData.value}}" stepKey="setCaptchaAlwaysVisible"/> + <magentoCLI command="config:set {{EnableCatalogEmailToFriendOptionConfigData.path}} {{EnableCatalogEmailToFriendOptionConfigData.value}}" stepKey="enableSendToFriend"/> + <actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanInvalidatedCaches"> + <argument name="tags" value="config full_page"/> + </actionGroup> + </before> + <after> + <deleteData createDataKey="createCategory" stepKey="deleteCategory"/> + <deleteData createDataKey="createProduct" stepKey="deleteProduct"/> + <actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="logoutCustomer"/> + <deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaDefaultLengthConfigData.path}} {{StorefrontCustomerCaptchaDefaultLengthConfigData.value}}" stepKey="setDefaultCaptchaLength"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaDefaultSymbolsConfigData.path}} {{StorefrontCustomerCaptchaDefaultSymbolsConfigData.value}}" stepKey="setDefaultCaptchaSymbols"/> + <magentoCLI command="config:set {{StorefrontCustomerCaptchaModeAfterFailConfigData.path}} {{StorefrontCustomerCaptchaModeAfterFailConfigData.value}}" stepKey="setCaptchaDefaultVisibility"/> + <magentoCLI command="config:set {{StorefrontCaptchaOnCustomerLoginConfigData.path}} {{StorefrontCaptchaOnCustomerLoginConfigData.value}},{{StorefrontCaptchaOnCustomerForgotPasswordConfigData.value}}" stepKey="enableCaptchaOnDefaultForms"/> + <magentoCLI command="config:set {{DisableCatalogEmailToFriendOptionConfigData.path}} {{DisableCatalogEmailToFriendOptionConfigData.value}}" stepKey="disableSendToFriend"/> + <actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanInvalidatedCaches"> + <argument name="tags" value="config full_page"/> + </actionGroup> + </after> + + <actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStorefrontAccount"> + <argument name="Customer" value="$createCustomer$"/> + </actionGroup> + <actionGroup ref="OpenProductFromCategoryPageActionGroup" stepKey="openProductFromCategory"> + <argument name="category" value="$createCategory$"/> + <argument name="product" value="$createProduct$"/> + </actionGroup> + <actionGroup ref="StorefrontClickEmailToFriendButtonOnProductPageActionGroup" stepKey="clickEmailButton"/> + <actionGroup ref="AssertCaptchaVisibleOnEmailToFriendFormActionGroup" stepKey="seeCaptchaOnEmailToFriendForm"/> + <actionGroup ref="StorefrontFillFieldsOnEmailToFriendFormActionGroup" stepKey="fillFieldsOnForm"> + <argument name="senderName" value="{{Simple_US_Customer.firstname}}"/> + <argument name="senderEmail" value="{{Simple_US_Customer.email}}"/> + <argument name="message" value="{{EmailToFriendValidValues.shareInfo_message}}"/> + <argument name="recipientName" value="{{EmailToFriendValidValues.recipient_name}}"/> + <argument name="recipientEmail" value="{{EmailToFriendValidValues.shareInfo_email}}"/> + </actionGroup> + <actionGroup ref="StorefrontFillCaptchaOnEmailToFriendFormActionGroup" stepKey="fillCaptchaFieldWithIncorrectValues"> + <argument name="captcha" value="{{WrongCaptcha.value}}"/> + </actionGroup> + <actionGroup ref="StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup" stepKey="submitEmailToFriendForm"/> + <actionGroup ref="AssertMessageCustomerChangeAccountInfoActionGroup" stepKey="assertErrorMessage"> + <argument name="message" value="Incorrect CAPTCHA"/> + <argument name="messageType" value="error"/> + </actionGroup> + <actionGroup ref="StorefrontFillFieldsOnEmailToFriendFormActionGroup" stepKey="fillFieldsOnEmailToFriendForm"> + <argument name="senderName" value="{{Simple_US_Customer.firstname}}"/> + <argument name="senderEmail" value="{{Simple_US_Customer.email}}"/> + <argument name="message" value="{{EmailToFriendValidValues.shareInfo_message}}"/> + <argument name="recipientName" value="{{EmailToFriendValidValues.recipient_name}}"/> + <argument name="recipientEmail" value="{{EmailToFriendValidValues.shareInfo_email}}"/> + </actionGroup> + <actionGroup ref="StorefrontFillCaptchaOnEmailToFriendFormActionGroup" stepKey="fillCaptchaFieldWithCorrectValues"> + <argument name="captcha" value="{{PreconfiguredCaptcha.value}}"/> + </actionGroup> + <actionGroup ref="StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup" stepKey="submitEmailToFriendFormWithValidValues"/> + <actionGroup ref="AssertMessageCustomerChangeAccountInfoActionGroup" stepKey="assertSuccessMessage"> + <argument name="message" value="The link to a friend was sent."/> + </actionGroup> + </test> +</tests> diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickEmailToFriendButtonOnProductPageActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickEmailToFriendButtonOnProductPageActionGroup.xml new file mode 100644 index 0000000000000..47145319a3de5 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickEmailToFriendButtonOnProductPageActionGroup.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="StorefrontClickEmailToFriendButtonOnProductPageActionGroup"> + <click selector="{{StorefrontProductPageSection.email}}" stepKey="clickEmailToFriendButton"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup.xml new file mode 100644 index 0000000000000..3deb56877df23 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="StorefrontClickSendEmailButtonOnEmailToFriendFormActionGroup"> + <click selector="{{StorefrontEmailToFriendSection.sendEmail}}" stepKey="sendEmail"/> + <waitForPageLoad stepKey="waitForPageLoad"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontFillFieldsOnEmailToFriendFormActionGroup.xml b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontFillFieldsOnEmailToFriendFormActionGroup.xml new file mode 100644 index 0000000000000..2f4d5f22a1be1 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/ActionGroup/StorefrontFillFieldsOnEmailToFriendFormActionGroup.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ +--> + +<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd"> + <actionGroup name="StorefrontFillFieldsOnEmailToFriendFormActionGroup"> + <arguments> + <argument name="senderName" type="string"/> + <argument name="senderEmail" type="string"/> + <argument name="message" type="string"/> + <argument name="recipientName" type="string"/> + <argument name="recipientEmail" type="string"/> + </arguments> + + <fillField userInput="{{senderName}}" selector="{{StorefrontEmailToFriendSection.name}}" stepKey="fillSenderName"/> + <fillField userInput="{{senderEmail}}" selector="{{StorefrontEmailToFriendSection.email}}" stepKey="fillSenderEmail"/> + <fillField userInput="{{message}}" selector="{{StorefrontEmailToFriendSection.message}}" stepKey="fillMessageField"/> + <fillField userInput="{{recipientName}}" selector="{{StorefrontEmailToFriendSection.recipientName}}" stepKey="fillRecipientName"/> + <fillField userInput="{{recipientEmail}}" selector="{{StorefrontEmailToFriendSection.recipientEmail}}" stepKey="fillRecipientEmail"/> + </actionGroup> +</actionGroups> diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/ConfigData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/ConfigData.xml index 08e294926a8bf..131101e797d7f 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Data/ConfigData.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Data/ConfigData.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ --> <entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -16,6 +16,14 @@ <data key="path">catalog/layered_navigation/display_category</data> <data key="value">0</data> </entity> + <entity name="EnableCatalogEmailToFriendOptionConfigData"> + <data key="path">sendfriend/email/enabled</data> + <data key="value">1</data> + </entity> + <entity name="DisableCatalogEmailToFriendOptionConfigData"> + <data key="path">sendfriend/email/enabled</data> + <data key="value">0</data> + </entity> <entity name="AllowGuestsToWriteReviewsConfigData"> <!-- Magento Default Value --> <data key="path">catalog/review/allow_guest</data> diff --git a/app/code/Magento/Catalog/Test/Mftf/Data/EmailToFriendData.xml b/app/code/Magento/Catalog/Test/Mftf/Data/EmailToFriendData.xml new file mode 100644 index 0000000000000..fe1ca47e57f79 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/Data/EmailToFriendData.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ +--> + +<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd"> + <entity name="EmailToFriendValidValues" type="emailToFFriend"> + <data key="shareInfo_message">Sharing message.</data> + <data key="shareInfo_email">JohnDoe123456789@example.com</data> + <data key="recipient_name">John</data> + </entity> +</entities> diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontEmailToFriendSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontEmailToFriendSection.xml new file mode 100644 index 0000000000000..c56454ea5f477 --- /dev/null +++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontEmailToFriendSection.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright 2021 Adobe + * All Rights Reserved. + */ +--> + +<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd"> + <section name="StorefrontEmailToFriendSection"> + <element name="name" type="input" selector="#sender-name.input-text"/> + <element name="email" type="input" selector="#sender-email.input-text"/> + <element name="message" type="input" selector="#sender-message.input-text"/> + <element name="recipientName" type="input" selector="#recipients-name0.input-text"/> + <element name="recipientEmail" type="input" selector="#recipients-email0.input-text"/> + <element name="sendEmail" type="button" selector=".action.submit.primary"/> + <element name="captchaField" type="input" selector="#product-sendtofriend-form input[name='captcha[product_sendtofriend_form]']" /> + <element name="captchaImg" type="block" selector="#product-sendtofriend-form img.captcha-img"/> + <element name="captchaReload" type="block" selector="#product-sendtofriend-form button.captcha-reload"/> + </section> +</sections> diff --git a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml index bc2b640a0c810..8c615e557c3e2 100644 --- a/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml +++ b/app/code/Magento/Catalog/Test/Mftf/Section/StorefrontProductPageSection.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ +/** + * Copyright 2018 Adobe + * All Rights Reserved. + */ --> <sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -16,6 +16,7 @@ <element name="alertMessage" type="text" selector=".page.messages [role=alert]"/> <element name="messagesBlock" type="text" selector=".page.messages" timeout="30"/> <element name="addToWishlist" type="button" selector="//a[@class='action towishlist']" timeout="30"/> + <element name="email" type="button" selector=".action.mailto.friend"/> <element name="customTextOptionInput" type="input" selector=".input-text.product-custom-option"/> <element name="charCounter" type="text" selector=".character-counter"/> <element name="tax" type="input" selector=".totals-tax .amount .price"/>