Skip to content

Commit

Permalink
Merge pull request magento#3317 from magento-tsg/2.2-develop-mftf-pr8
Browse files Browse the repository at this point in the history
[TSG] MFTF for 2.2 (pr8) (2.2.8)
  • Loading branch information
Alexander Akimov authored Oct 18, 2018
2 parents cbd8d8a + ce9cfc2 commit 693c009
Show file tree
Hide file tree
Showing 20 changed files with 575 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
-->

<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
<section name="AdminMainActionsSection">
<element name="save" type="button" selector="#save"/>
<element name="save" type="button" selector="#save" timeout="30"/>
<element name="delete" type="button" selector="#delete"/>
<element name="add" type="button" selector="#add" timeout="30"/>
</section>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
<!-- Add Bundle Product to Cart from the category page with specified quantity to cart -->
<actionGroup name="StorefrontAddCategoryBundleProductToCartActionGroup">
<arguments>
<argument name="product"/>
<argument name="quantity" defaultValue="1" type="string"/>
</arguments>
<moveMouseOver selector="{{StorefrontCategoryProductSection.productTitleByName(product.name)}}" stepKey="moveMouseOverProduct"/>
<click selector="{{StorefrontCategoryProductSection.productTitleByName(product.name)}}" stepKey="openProductPage"/>
<waitForPageLoad time="30" stepKey="waitForBundleProductPageLoad"/>
<click selector="{{StorefrontBundledSection.addToCart}}" stepKey="clickCustomizeAndAddToCart"/>
<fillField selector="{{StorefrontProductInfoMainSection.qty}}" userInput="{{quantity}}" stepKey="fillBundleProductQuantity"/>
<click selector="{{StorefrontBundledSection.addToCartConfigured}}" stepKey="clickAddBundleProductToCart"/>
<waitForText userInput="{{quantity}}" selector="{{StorefrontMinicartSection.productCount}}" time="30" stepKey="assertProductCount"/>
<see userInput="You added {{product.name}} to your shopping cart." selector="{{StorefrontMessagesSection.success}}" stepKey="seeSuccessMessage"/>
</actionGroup>
</actionGroups>
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
<test name="StorefrontAddBundleProductWithZeroPriceToShoppingCartTest">
<annotations>
<features value="Bundle"/>
<stories value="Add Bundle product with zero price to shopping cart"/>
<title value="Add Bundle product with zero price to shopping cart"/>
<description value="Add Bundle product with zero price to shopping cart"/>
<severity value="CRITICAL"/>
<testCaseId value="MAGETWO-83535"/>
<group value="bundle"/>
</annotations>
<before>
<!--Enable freeShipping-->
<createData entity="FreeShippinMethodConfig" stepKey="enableFreeShipping"/>
<!--Create category-->
<createData entity="SimpleSubCategory" stepKey="createSubCategory"/>
<!--Create simple with zero price product-->
<createData entity="ApiProductWithDescription" stepKey="apiSimple">
<field key="price">0</field>
</createData>
<!--Create Bundle product-->
<createData entity="ApiBundleProductPriceViewRange" stepKey="apiBundleProduct">
<requiredEntity createDataKey="createSubCategory"/>
</createData>
<!--Create Attribute-->
<createData entity="DropDownBundleOption" stepKey="bundleOption">
<requiredEntity createDataKey="apiBundleProduct"/>
</createData>
<createData entity="ApiBundleLink" stepKey="createBundleLink">
<requiredEntity createDataKey="apiBundleProduct"/>
<requiredEntity createDataKey="bundleOption"/>
<requiredEntity createDataKey="apiSimple"/>
</createData>
<magentoCLI command="indexer:reindex" stepKey="reindex"/>
</before>
<after>
<createData entity="FreeShippinMethodDefault" stepKey="disableFreeShipping"/>
<deleteData createDataKey="apiSimple" stepKey="deleteSimple"/>
<deleteData createDataKey="apiBundleProduct" stepKey="deleteBundleProduct"/>
<deleteData createDataKey="createSubCategory" stepKey="deleteCategory"/>
<actionGroup ref="AdminOrdersGridClearFiltersActionGroup" stepKey="clearFilters"/>
<actionGroup ref="logout" stepKey="logout"/>
</after>
<!--Open category page-->
<amOnPage url="{{StorefrontCategoryPage.url($$createSubCategory.custom_attributes[url_key]$$)}}" stepKey="amOnCategoryPage"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad"/>
<!--Add bundle product to cart-->
<actionGroup ref="StorefrontAddCategoryBundleProductToCartActionGroup" stepKey="addBundleProductToCart">
<argument name="product" value="$$apiBundleProduct$$"/>
</actionGroup>
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="goToCheckoutFromMinicart"/>

<!--Place order-->
<actionGroup ref="GuestCheckoutFillingShippingSectionActionGroup" stepKey="guestCheckoutFillingShipping">
<argument name="shippingMethod" value="Free Shipping"/>
</actionGroup>
<actionGroup ref="ClickPlaceOrderActionGroup" stepKey="checkoutPlaceOrder"/>
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber}}" stepKey="grabOrderNumber"/>

<!--Check subtotal in created order-->
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
<actionGroup ref="filterOrderGridById" stepKey="filterOrderById">
<argument name="orderId" value="$grabOrderNumber"/>
</actionGroup>
<click selector="{{AdminOrdersGridSection.firstRow}}" stepKey="clickOrderRow"/>
<scrollTo selector="{{AdminOrderTotalSection.subTotal}}" stepKey="scrollToOrderTotalSection"/>
<see selector="{{AdminOrderTotalSection.subTotal}}" userInput="$0.00" stepKey="checkSubtotal"/>
</test>
</tests>
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,15 @@
<click selector="{{AdminConfirmationModalSection.ok}}" stepKey="acceptStoreSwitchingMessage"/>
<waitForPageLoad stepKey="waitForPageLoad"/>
</actionGroup>

<!--Select Product In Websites-->
<actionGroup name="SelectProductInWebsitesActionGroup">
<arguments>
<argument name="website" type="string"/>
</arguments>
<scrollTo selector="{{ProductInWebsitesSection.sectionHeader}}" stepKey="scrollToWebsites"/>
<click selector="{{ProductInWebsitesSection.sectionHeader}}" stepKey="clickToOpenProductInWebsite"/>
<waitForPageLoad stepKey="waitForPageOpened"/>
<checkOption selector="{{ProductInWebsitesSection.website(website)}}" stepKey="selectWebsite"/>
</actionGroup>
</actionGroups>
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
<section name="AdminCategoryBasicFieldSection"/>
<section name="AdminCategorySEOSection"/>
<section name="AdminCategoryModalSection"/>
<section name="AdminCategoryProductsGridSection"/>
</page>
</pages>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Page/etc/SectionObject.xsd">
<section name="AdminCategoryProductsGridSection">
<element name="productGridNameProduct" type="text" selector="//table[@id='catalog_category_products_table']//td[contains(., '{{productName}}')]" parameterized="true"/>
</section>
</sections>
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->

<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../dev/tests/acceptance/vendor/magento/magento2-functional-testing-framework/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
<test name="AdminFilteringCategoryProductsUsingScopeSelectorTest">
<annotations>
<features value="Catalog"/>
<title value="Filtering Category Products using scope selector"/>
<description value="Filtering Category Products using scope selector"/>
<severity value="MAJOR"/>
<testCaseId value="MAGETWO-78408"/>
<group value="catalog"/>
</annotations>
<before>
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
<!--Create website, Sore adn Store View-->
<actionGroup ref="AdminCreateWebsiteActionGroup" stepKey="adminCreateWebsite">
<argument name="newWebsiteName" value="secondWebsite"/>
<argument name="websiteCode" value="second_website"/>
</actionGroup>
<actionGroup ref="AdminCreateNewStoreGroupActionGroup" stepKey="adminCreateStore">
<argument name="website" value="secondWebsite"/>
<argument name="storeGroupName" value="Second Store"/>
<argument name="storeGroupCode" value="second_store"/>
</actionGroup>
<actionGroup ref="AdminCreateStoreViewActionGroup" stepKey="adminCreateStoreView">
<argument name="storeGroup" value="secondStoreGroup"/>
<argument name="customStore" value="secondStore"/>
</actionGroup>

<!--Create Simple Product and Category -->
<createData entity="_defaultCategory" stepKey="createCategory"/>
<createData entity="_defaultProduct" stepKey="createProduct0">
<requiredEntity createDataKey="createCategory"/>
</createData>
<createData entity="_defaultProduct" stepKey="createProduct1">
<requiredEntity createDataKey="createCategory"/>
</createData>
<createData entity="_defaultProduct" stepKey="createProduct2">
<requiredEntity createDataKey="createCategory"/>
</createData>
<createData entity="_defaultProduct" stepKey="createProduct12">
<requiredEntity createDataKey="createCategory"/>
</createData>

<!-- Set filter to product name and product0 not assigned to any website-->
<actionGroup ref="SearchForProductOnBackendActionGroup" stepKey="filterGroupedProductOptions">
<argument name="product" value="_defaultProduct"/>
</actionGroup>

<click selector="{{AdminProductGridSection.productGridNameProduct('$$createProduct0.name$$')}}"
stepKey="clickOpenProductForEdit"/>
<waitForPageLoad time="30" stepKey="waitForProductEditOpen"/>

<scrollTo selector="{{ProductInWebsitesSection.sectionHeader}}" stepKey="scrollToWebsitesSection"/>
<click selector="{{ProductInWebsitesSection.sectionHeader}}" stepKey="clickToOpenWebsiteSection"/>
<waitForPageLoad stepKey="waitForToOpenedWebsiteSection"/>
<uncheckOption selector="{{ProductInWebsitesSection.website('Main Website')}}" stepKey="uncheckWebsite"/>
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickSaveProduct"/>
<see selector="{{AdminProductMessagesSection.successMessage}}" userInput="You saved the product."
stepKey="seeSuccessMessage"/>

<!-- Set filter to product name and product2 in website 2 only -->
<amOnPage url="{{AdminProductIndexPage.url}}" stepKey="navigateToProductIndex"/>
<waitForPageLoad time="30" stepKey="waitForProductsPageToLoad"/>
<click selector="{{AdminProductGridSection.productGridNameProduct('$$createProduct2.name$$')}}"
stepKey="clickOpenProductForEdit1"/>
<waitForPageLoad time="30" stepKey="waitForProductEditOpen1"/>

<actionGroup ref="SelectProductInWebsitesActionGroup" stepKey="selectProductInWebsites">
<argument name="website" value="secondWebsite"/>
</actionGroup>
<uncheckOption selector="{{ProductInWebsitesSection.website('Main Website')}}" stepKey="uncheckWebsite1"/>
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickSaveProduct1"/>
<see selector="{{AdminProductMessagesSection.successMessage}}" userInput="You saved the product."
stepKey="seeSuccessMessage1"/>

<!-- Set filter to product name and product12 assigned to both websites 1 and 2 -->
<amOnPage url="{{AdminProductIndexPage.url}}" stepKey="navigateToProductIndex1"/>
<waitForPageLoad time="30" stepKey="waitForProductsPageToLoad1"/>
<click selector="{{AdminProductGridSection.productGridNameProduct('$$createProduct12.name$$')}}"
stepKey="clickOpenProductForEdit2"/>
<waitForPageLoad time="30" stepKey="waitForProductEditOpen2"/>

<actionGroup ref="SelectProductInWebsitesActionGroup" stepKey="selectProductInWebsites1">
<argument name="website" value="secondWebsite"/>
</actionGroup>
<click selector="{{AdminProductFormActionSection.saveButton}}" stepKey="clickSaveProduct2"/>
<see selector="{{AdminProductMessagesSection.successMessage}}" userInput="You saved the product."
stepKey="seeSuccessMessage2"/>
</before>
<after>
<actionGroup ref="AdminDeleteWebsiteActionGroup" stepKey="deleteWebsite">
<argument name="websiteName" value="secondWebsite"/>
</actionGroup>
<actionGroup ref="clearFiltersAdminDataGrid" stepKey="clearProductFilters"/>
<deleteData createDataKey="createProduct0" stepKey="deleteProduct"/>
<deleteData createDataKey="createProduct1" stepKey="deleteProduct1"/>
<deleteData createDataKey="createProduct2" stepKey="deleteProduct2"/>
<deleteData createDataKey="createProduct12" stepKey="deleteProduct3"/>
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
<actionGroup ref="logout" stepKey="logout"/>
</after>
<!-- Step 1-2: Open Category page and Set scope selector to All Store Views-->
<amOnPage url="{{AdminCategoryPage.url}}" stepKey="goToCategoryPage"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad"/>
<click selector="{{AdminCategorySidebarTreeSection.categoryInTree($$createCategory.name$$)}}"
stepKey="clickCategoryName"/>
<click selector="{{AdminCategoryProductsSection.sectionHeader}}" stepKey="openProductSection"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct0.name$$)}}"
userInput="$$createProduct0.name$$" stepKey="seeProductName"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct1.name$$)}}"
userInput="$$createProduct1.name$$" stepKey="seeProductName1"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct2.name$$)}}"
userInput="$$createProduct2.name$$" stepKey="seeProductName2"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct12.name$$)}}"
userInput="$$createProduct12.name$$" stepKey="seeProductName3"/>

<!-- Step 3: Set scope selector to Website1( Storeview for the Website 1) -->
<scrollToTopOfPage stepKey="scrollToTopOfPage"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewDropdownToggle}}"
stepKey="clickStoresList"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad1"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewOption('Default Store View')}}"
stepKey="clickStoreView"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewModalAccept}}" stepKey="clickActionAccept"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad2"/>
<click selector="{{AdminCategoryProductsSection.sectionHeader}}" stepKey="openProductSection1"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct1.name$$)}}"
userInput="$$createProduct1.name$$" stepKey="seeProductName4"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct12.name$$)}}"
userInput="$$createProduct12.name$$" stepKey="seeProductName5"/>
<dontSee selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct0.name$$)}}"
userInput="$$createProduct0.name$$" stepKey="dontSeeProductName"/>
<dontSee selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct2.name$$)}}"
userInput="$$createProduct2.name$$" stepKey="dontSeeProductName1"/>

<!-- Step 4: Set scope selector to Website2 ( StopreView for Website 2) -->
<scrollToTopOfPage stepKey="scrollToTopOfPage1"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewDropdownToggle}}"
stepKey="clickStoresList1"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad3"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewOption(secondStore.name)}}"
stepKey="clickStoreView1"/>
<click selector="{{AdminCategoryMainActionsSection.categoryStoreViewModalAccept}}"
stepKey="clickActionAccept1"/>
<waitForPageLoad stepKey="waitForCategoryPageLoad4"/>
<click selector="{{AdminCategoryProductsSection.sectionHeader}}" stepKey="openProductSection2"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct2.name$$)}}"
userInput="$$createProduct2.name$$" stepKey="seeProductName6"/>
<see selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct12.name$$)}}"
userInput="$$createProduct12.name$$" stepKey="seeProductName7"/>
<dontSee selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct0.name$$)}}"
userInput="$$createProduct0.name$$" stepKey="dontSeeProductName2"/>
<dontSee selector="{{AdminCategoryProductsGridSection.productGridNameProduct($$createProduct2.name$$)}}"
userInput="$$createProduct1.name$$" stepKey="dontSeeProductName3"/>
</test>
</tests>
Loading

0 comments on commit 693c009

Please sign in to comment.