From 9abf9a6aad3080914536d7d7a1140cc9661a2c58 Mon Sep 17 00:00:00 2001 From: mage2-team <mage2-team@magento.com> Date: Fri, 3 Oct 2014 14:28:39 -0700 Subject: [PATCH] 0.1.0-alpha98 * GitHub requests: * [#678] (https://github.com/magento/magento2/issues/678) -- Fixed Travis CI builds * Functional tests: * Create Sales Order Backend * Delete Products from Wishlist * Download Products Report * Mass Orders Update * Sales Tax Report * Fixed bugs: * Fixed an issue where success message was not displayed after product review submit * Fixed an issue where it was impossible to start checkout process using PayPal from the JavaScript pop-up window when the Display Actual Price option was set to On Gesture * Fixed an issue where a fatal error was thrown after shipping method selection in PayPal Express Checkout * Fixed an issue with parameters exceptions in SOAP response * Fixed an issue where testGetRequestTokenOauthTimestampRefused unit test failed in certain cases * Fixed an issue where TestCreateCustomer test thrown fatal error when making a SOAP request * Fixed an issue with required parameters in WSDL * Fixed an issue where Customer Account Service returned void response in the resetPassword method * Fixed an issue where REST API failed during bundle product creation --- .travis.yml | 3 +- CHANGELOG.md | 21 ++ .../Magento/AdminNotification/composer.json | 10 +- app/code/Magento/Authorization/composer.json | 6 +- app/code/Magento/Authorizenet/composer.json | 18 +- app/code/Magento/Backend/composer.json | 36 +-- app/code/Magento/Backup/composer.json | 12 +- app/code/Magento/Bundle/composer.json | 30 +-- app/code/Magento/Captcha/composer.json | 14 +- .../V1/Category/ProductLinks/WriteService.php | 14 +- .../Service/V1/Category/WriteService.php | 4 +- app/code/Magento/Catalog/composer.json | 48 ++-- .../Magento/CatalogImportExport/composer.json | 20 +- .../Magento/CatalogInventory/composer.json | 20 +- app/code/Magento/CatalogRule/composer.json | 16 +- app/code/Magento/CatalogSearch/composer.json | 22 +- .../Magento/CatalogUrlRewrite/composer.json | 18 +- app/code/Magento/Centinel/composer.json | 14 +- app/code/Magento/Checkout/composer.json | 36 +-- .../Magento/CheckoutAgreements/composer.json | 10 +- app/code/Magento/Cms/composer.json | 20 +- app/code/Magento/CmsUrlRewrite/composer.json | 8 +- .../ConfigurableImportExport/composer.json | 14 +- .../V1/Product/Option/WriteService.php | 60 ++++- .../Magento/ConfigurableProduct/composer.json | 28 +-- app/code/Magento/Contact/composer.json | 12 +- app/code/Magento/Core/composer.json | 16 +- app/code/Magento/Cron/composer.json | 8 +- app/code/Magento/CurrencySymbol/composer.json | 14 +- .../Service/V1/CustomerAccountService.php | 1 + .../V1/CustomerAccountServiceInterface.php | 2 +- app/code/Magento/Customer/composer.json | 36 +-- .../CustomerImportExport/composer.json | 16 +- app/code/Magento/DesignEditor/composer.json | 14 +- app/code/Magento/Dhl/composer.json | 22 +- app/code/Magento/Directory/composer.json | 10 +- app/code/Magento/Downloadable/composer.json | 34 +-- app/code/Magento/Eav/composer.json | 12 +- app/code/Magento/Email/composer.json | 12 +- app/code/Magento/Fedex/composer.json | 18 +- app/code/Magento/GiftMessage/composer.json | 22 +- app/code/Magento/GoogleAdwords/composer.json | 8 +- .../Magento/GoogleAnalytics/composer.json | 8 +- .../Magento/GoogleOptimizer/composer.json | 14 +- app/code/Magento/GoogleShopping/composer.json | 20 +- .../Magento/GroupedImportExport/composer.json | 14 +- app/code/Magento/GroupedProduct/composer.json | 24 +- app/code/Magento/ImportExport/composer.json | 14 +- app/code/Magento/Indexer/composer.json | 8 +- app/code/Magento/Install/composer.json | 14 +- app/code/Magento/Integration/composer.json | 16 +- .../Magento/LayeredNavigation/composer.json | 8 +- app/code/Magento/Log/composer.json | 14 +- app/code/Magento/Msrp/composer.json | 24 +- .../Magento/Msrp/view/base/web/js/msrp.js | 4 +- app/code/Magento/Multishipping/composer.json | 20 +- app/code/Magento/Newsletter/composer.json | 22 +- .../Magento/OfflinePayments/composer.json | 6 +- .../Magento/OfflineShipping/composer.json | 20 +- app/code/Magento/Ogone/composer.json | 12 +- .../Magento/PageCache/Controller/Block.php | 2 +- app/code/Magento/PageCache/composer.json | 8 +- .../PayPalRecurringPayment/composer.json | 16 +- app/code/Magento/Payment/composer.json | 14 +- .../Magento/Paypal/Block/Bml/Shortcut.php | 3 + .../Magento/Paypal/Block/Express/Shortcut.php | 3 + app/code/Magento/Paypal/Model/Observer.php | 8 +- app/code/Magento/Paypal/composer.json | 30 +-- app/code/Magento/Paypal/etc/di.xml | 9 + .../frontend/templates/express/shortcut.phtml | 6 +- .../express/shortcut/container.phtml | 33 +++ .../view/frontend/web/js/paypal-checkout.js | 6 +- .../Paypal/view/frontend/web/order-review.js | 1 + app/code/Magento/Persistent/composer.json | 16 +- app/code/Magento/ProductAlert/composer.json | 12 +- .../Magento/RecurringPayment/composer.json | 26 +-- app/code/Magento/Reports/composer.json | 36 +-- app/code/Magento/RequireJs/composer.json | 4 +- app/code/Magento/Review/composer.json | 22 +- app/code/Magento/Rss/composer.json | 8 +- app/code/Magento/Rule/composer.json | 12 +- app/code/Magento/Sales/composer.json | 44 ++-- app/code/Magento/SalesRule/composer.json | 34 +-- app/code/Magento/Sendfriend/composer.json | 14 +- app/code/Magento/Shipping/composer.json | 26 +-- app/code/Magento/Sitemap/composer.json | 18 +- app/code/Magento/Store/composer.json | 10 +- app/code/Magento/Tax/composer.json | 28 +-- .../Magento/TaxImportExport/composer.json | 12 +- app/code/Magento/Theme/composer.json | 16 +- app/code/Magento/Translation/composer.json | 10 +- app/code/Magento/Ui/composer.json | 8 +- app/code/Magento/Ups/composer.json | 18 +- app/code/Magento/UrlRewrite/composer.json | 18 +- app/code/Magento/User/Model/User.php | 3 +- app/code/Magento/User/composer.json | 14 +- app/code/Magento/Usps/composer.json | 18 +- .../Controller/ServiceArgsSerializer.php | 26 ++- app/code/Magento/Webapi/composer.json | 16 +- app/code/Magento/Weee/composer.json | 24 +- app/code/Magento/Widget/composer.json | 14 +- app/code/Magento/Wishlist/composer.json | 32 +-- .../adminhtml/Magento/backend/composer.json | 4 +- .../adminhtml/Magento/backend/theme.xml | 2 +- .../frontend/Magento/blank/composer.json | 4 +- app/design/frontend/Magento/blank/theme.xml | 2 +- .../frontend/Magento/plushe/composer.json | 6 +- app/design/frontend/Magento/plushe/theme.xml | 2 +- app/design/install/Magento/basic/theme.xml | 2 +- app/i18n/magento/de_de/composer.json | 4 +- app/i18n/magento/en_us/composer.json | 4 +- app/i18n/magento/es_es/composer.json | 4 +- app/i18n/magento/fr_fr/composer.json | 4 +- app/i18n/magento/nl_nl/composer.json | 4 +- app/i18n/magento/pt_br/composer.json | 4 +- app/i18n/magento/zh_cn/composer.json | 4 +- composer.json | 2 +- .../Backend/Test/Block/Widget/Grid.php | 87 ++++++- .../test.csv | 3 - .../Test/TestCase/BundleDynamicTest.php | 6 +- .../Bundle/Test/TestCase/BundleFixedTest.php | 6 +- .../Bundle/Test/TestCase/EditBundleTest.php | 6 +- .../Block/Adminhtml/Product/ProductForm.xml | 10 +- ...AssertProductIsNotDisplayingOnFrontend.php | 2 +- .../Catalog/Test/Fixture/AssignProducts.php | 8 +- .../Catalog/Test/Fixture/Cart/Item.php | 6 +- .../Test/Fixture/CatalogProductSimple.php | 2 +- .../Test/Fixture/CatalogProductSimple.xml | 2 +- .../CatalogProductSimple/CheckoutData.php | 9 +- .../Test/Fixture/CatalogProductVirtual.php | 2 +- .../CatalogProductVirtual/CheckoutData.php | 7 + .../Test/Fixture/CrosssellProducts.php | 14 +- .../Magento/Catalog/Test/Fixture/Product.php | 2 +- .../Handler/CatalogProductSimple/Curl.php | 6 +- .../Test/Handler/CatalogProductSimple/Ui.php | 2 +- .../Catalog/Test/Handler/Ui/CreateProduct.php | 2 +- .../Test/Repository/CatalogProductSimple.php | 16 ++ .../Test/Repository/CatalogProductVirtual.php | 36 +++ .../TestCase/Category/AssignProductTest.php | 6 +- .../Test/TestCase/Category/CreateTest.php | 4 +- .../TestCase/Product/CreateProductTest.php | 6 +- .../Product/CreateSimpleWithCategoryTest.php | 2 +- ...SimpleWithCustomOptionsAndCategoryTest.php | 4 +- .../Test/TestCase/Product/CreateTest.php | 6 +- .../TestCase/Product/CreateVirtualTest.php | 6 +- .../Product/EditSimpleProductTest.php | 6 +- .../TestCase/Product/UnassignCategoryTest.php | 4 +- .../TestCase/AdvancedSearchEntityTest.php | 1 - .../Test/TestCase/AdvancedSearchTest.php | 1 - .../Cms/Test/Handler/CmsBlock/Curl.php | 10 +- .../Magento/Cms/Test/Handler/CmsPage/Curl.php | 2 +- .../ConfigurableAttributesData.php | 1 + .../test.csv | 2 - .../test.csv | 4 +- .../Test/TestCase/CreateConfigurableTest.php | 6 +- .../Test/TestCase/CreateWithAttributeTest.php | 2 +- .../Test/TestCase/EditConfigurableTest.php | 4 +- .../app/Magento/Core/Test/Block/Messages.php | 4 +- .../UpdateCustomVariableEntityTest.php | 11 +- .../Test/TestStep/SetupConfigurationStep.php | 82 +++++++ .../Block/Adminhtml/Edit/Tab/Addresses.php | 17 +- .../TestCase/BackendCustomerCreateTest.php | 2 +- .../Block/Customer/Products/ListProducts.php} | 45 ++-- .../Fixture/DownloadableProductInjectable.php | 46 +--- .../Fixture/DownloadableProductInjectable.xml | 1 + .../DownloadableProductInjectable/Links.php | 16 +- .../DownloadableProductInjectable/Curl.php | 32 +++ .../Page/DownloadableCustomerProducts.xml | 34 +++ .../test.csv | 2 - .../Create/LinksPurchasedSeparatelyTest.php | 6 +- .../testCreateDownloadableProduct.csv | 30 +-- .../testUpdateDownloadableProduct.csv | 16 +- .../Magento/Downloadable/Test/etc/page.xml | 31 +++ .../test.csv | 2 - .../Test/TestCase/CreateGroupedTest.php | 4 +- .../Adminhtml/Product/Downloads/Grid.php | 49 ++++ .../Block/Adminhtml/Sales/TaxRule/Action.php} | 42 ++-- .../Block/Adminhtml/Sales/TaxRule/Filter.php} | 37 ++- .../Block/Adminhtml/Sales/TaxRule/Filter.xml | 51 +++++ .../Block/Adminhtml/Sales/TaxRule/Grid.php} | 25 +- .../AssertBestsellerReportResult.php | 2 +- .../AssertDownloadsReportResult.php | 81 +++++++ .../AssertNewAccountsReportTotalResult.php | 2 +- .../Constraint/AssertOrderedProductResult.php | 2 +- .../AssertProductReportByCustomerInGrid.php | 2 +- ...sertProductReviewIsAvailableForProduct.php | 2 +- .../Test/Constraint/AssertTaxReportInGrid.php | 82 +++++++ .../Constraint/AssertTaxReportNotInGrid.php | 82 +++++++ .../Test/Page/Adminhtml/DownloadsReport.xml | 34 +++ .../Test/Page/Adminhtml/SalesTaxReport.xml | 44 ++++ .../BestsellerProductsReportEntityTest.php | 89 ++++++++ .../test.csv | 4 + .../DownloadProductsReportEntityTest.php | 135 +++++++++++ .../DownloadProductsReportEntityTest/test.csv | 4 + .../TestCase/SalesTaxReportEntityTest.php | 214 ++++++++++++++++++ .../SalesTaxReportEntityTest/test.csv | 4 + .../Magento/Reports/Test/etc/constraint.xml | 9 + .../app/Magento/Reports/Test/etc/page.xml | 10 + ...teProductReviewEntityOnProductPageTest.php | 4 +- .../app/Magento/Store/Test/Fixture/Store.php | 5 +- .../Magento/Store/Test/Repository/Store.php | 8 + .../TestCase/DeleteStoreEntityTest/test.csv | 2 +- .../Magento/Store/Test/TestCase/StoreTest.php | 6 +- .../TestCase/UpdateStoreEntityTest/test.csv | 4 +- .../Tax/Test/Block/Adminhtml/Rule/Grid.php | 30 ++- .../testCreateTaxRule.csv | 10 +- .../Magento/Tax/Test/TestCase/TaxRuleTest.php | 2 +- .../testUpdateTaxRule.csv | 10 +- .../Test/TestStep/DeleteAllTaxRulesStep.php | 77 +++++++ .../Constraint/AssertUrlRewriteInGrid.php | 2 +- .../Constraint/AssertUrlRewriteNotInGrid.php | 2 +- .../UrlRewrite/Test/Fixture/UrlRewrite.php | 11 + .../Test/Fixture/UrlRewrite/IdPath.php | 124 ++++++++++ .../Test/Fixture/UrlRewriteProduct.php | 2 +- .../DeleteCategoryUrlRewriteEntityTest.php | 2 +- .../DeleteProductUrlRewriteEntityTest.php | 2 +- .../UpdateCategoryUrlRewriteEntityTest.php | 3 +- .../UpdateProductUrlRewriteEntityTest.php | 2 +- .../app/Magento/User/Test/Fixture/User.php | 3 +- .../Magento/User/Test/Fixture/User/RoleId.php | 2 +- .../User/Test/Handler/AdminUserRole/Curl.php | 2 +- .../Magento/User/Test/Handler/User/Curl.php | 1 + .../TestCase/CreateAdminUserEntityTest.php | 2 +- .../CreateAdminUserEntityTest/test.csv | 14 +- .../UserLoginAfterChangingPermissionsTest.php | 165 ++++++++++++++ .../testLoginAfterChangingPermissions.csv | 2 + .../Wishlist/Test/Block/Customer/Wishlist.php | 17 ++ .../Test/Block/Customer/Wishlist/Items.php | 27 ++- .../Block/Customer/Wishlist/Items/Product.php | 17 ++ .../AssertProductsIsAbsentInWishlist.php | 5 +- .../Test/Constraint/AssertWishlistIsEmpty.php | 20 +- .../Wishlist/Test/Page/WishlistIndex.xml | 5 + .../TestCase/AbstractWishlistOnFrontend.php | 155 +++++++++++++ ...CartFromCustomerWishlistOnFrontendTest.php | 127 +---------- .../test.csv | 5 + ...leteProductsFromWishlistOnFrontendTest.php | 96 ++++++++ .../test.csv | 9 + .../Service/V1/CustomerAccountServiceTest.php | 14 +- .../V1/Product/Option/WriteServiceTest.php | 32 ++- .../Service/V1/CustomerAccountServiceTest.php | 2 +- .../Magento/Integration/Oauth/OauthTest.php | 9 +- .../Magento/Paypal/Model/ObserverTest.php | 5 +- .../Magento/Framework/AppInterface.php | 2 +- lib/internal/Magento/Framework/composer.json | 2 +- 244 files changed, 3203 insertions(+), 1294 deletions(-) create mode 100644 app/code/Magento/Paypal/view/frontend/templates/express/shortcut/container.phtml delete mode 100644 dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest/test.csv delete mode 100644 dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php rename dev/tests/functional/tests/app/Magento/{GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest.php => Downloadable/Test/Block/Customer/Products/ListProducts.php} (57%) create mode 100644 dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml delete mode 100644 dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/page.xml delete mode 100644 dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php rename dev/tests/functional/tests/app/Magento/{Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest.php => Reports/Test/Block/Adminhtml/Sales/TaxRule/Action.php} (56%) rename dev/tests/functional/tests/app/Magento/{ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest.php => Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php} (56%) create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.xml rename dev/tests/functional/tests/app/Magento/{Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest.php => Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php} (57%) create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php create mode 100644 dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest/test.csv create mode 100644 dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php create mode 100644 dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/IdPath.php create mode 100644 dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php create mode 100644 dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest/testLoginAfterChangingPermissions.csv create mode 100644 dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistOnFrontend.php create mode 100644 dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php create mode 100644 dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest/test.csv diff --git a/.travis.yml b/.travis.yml index be0daf855c3..9a946264450 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,11 +30,12 @@ before_script: - sh -c "if [ '$TEST_SUITE' = 'integration' ] || [ '$TEST_SUITE' = 'integration_integrity' ]; then mysql -e 'create database magento_integration_tests;'; mv dev/tests/integration/etc/local-mysql.travis.xml.dist dev/tests/integration/etc/local-mysql.xml; fi" # Install tools for static tests - sh -c "if [ '$TEST_SUITE' = 'static_phpcs' ] || [ '$TEST_SUITE' = 'static_annotation' ]; then pear install pear/PHP_CodeSniffer-1.5.2; fi" + # Change memmory_limit for travis server - echo 'memory_limit = -1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - phpenv rehash; script: # Unit tests - sh -c "if [ '$TEST_SUITE' = 'unit' ]; then ./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist; fi" + - sh -c "if [ '$TEST_SUITE' = 'unit' ]; then ./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist; fi" # Integration tests - sh -c "if [ '$TEST_SUITE' = 'integration' ]; then cd dev/tests/integration/; ./../../../vendor/bin/phpunit -c phpunit.xml.dist; fi" # Integration integrity tests diff --git a/CHANGELOG.md b/CHANGELOG.md index 1538aca81b9..4ba3ae52992 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +0.1.0-alpha98 +============= +* GitHub requests: + * [#678] (https://github.com/magento/magento2/issues/678) -- Fixed Travis CI builds +* Functional tests: + * Create Sales Order Backend + * Delete Products from Wishlist + * Download Products Report + * Mass Orders Update + * Sales Tax Report +* Fixed bugs: + * Fixed an issue where success message was not displayed after product review submit + * Fixed an issue where it was impossible to start checkout process using PayPal from the JavaScript pop-up window when the Display Actual Price option was set to On Gesture + * Fixed an issue where a fatal error was thrown after shipping method selection in PayPal Express Checkout + * Fixed an issue with parameters exceptions in SOAP response + * Fixed an issue where testGetRequestTokenOauthTimestampRefused unit test failed in certain cases + * Fixed an issue where TestCreateCustomer test thrown fatal error when making a SOAP request + * Fixed an issue with required parameters in WSDL + * Fixed an issue where Customer Account Service returned void response in the resetPassword method + * Fixed an issue where REST API failed during bundle product creation + 0.1.0-alpha97 ============= * Various improvements: diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json index 946ca70e54c..d6b9a185830 100644 --- a/app/code/Magento/AdminNotification/composer.json +++ b/app/code/Magento/AdminNotification/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json index e4b92a7168f..19783cd57f0 100644 --- a/app/code/Magento/Authorization/composer.json +++ b/app/code/Magento/Authorization/composer.json @@ -3,12 +3,12 @@ "description": "Authorization module provides access to Magento ACL functionality.", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Authorizenet/composer.json b/app/code/Magento/Authorizenet/composer.json index a29aeab87e2..452828c3d78 100644 --- a/app/code/Magento/Authorizenet/composer.json +++ b/app/code/Magento/Authorizenet/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-centinel": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-centinel": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json index 6381f36e6cd..ed736bd65da 100644 --- a/app/code/Magento/Backend/composer.json +++ b/app/code/Magento/Backend/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-reports": "0.1.0-alpha97", - "magento/module-catalog-search": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-user": "0.1.0-alpha97", - "magento/module-backup": "0.1.0-alpha97", - "magento/module-email": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-translation": "0.1.0-alpha97", - "magento/module-require-js": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-reports": "0.1.0-alpha98", + "magento/module-catalog-search": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-user": "0.1.0-alpha98", + "magento/module-backup": "0.1.0-alpha98", + "magento/module-email": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-translation": "0.1.0-alpha98", + "magento/module-require-js": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json index ee63f6d2344..2503def2156 100644 --- a/app/code/Magento/Backup/composer.json +++ b/app/code/Magento/Backup/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json index b7e4ac63c1c..b5576e91c0c 100644 --- a/app/code/Magento/Bundle/composer.json +++ b/app/code/Magento/Bundle/composer.json @@ -3,24 +3,24 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-catalog-rule": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-gift-message": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", - "magento/module-webapi": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-catalog-rule": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-gift-message": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", + "magento/module-webapi": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json index 4ae84418b00..7d3f0eff666 100644 --- a/app/code/Magento/Captcha/composer.json +++ b/app/code/Magento/Captcha/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Catalog/Service/V1/Category/ProductLinks/WriteService.php b/app/code/Magento/Catalog/Service/V1/Category/ProductLinks/WriteService.php index 082b927dd10..c25e5a72e7f 100644 --- a/app/code/Magento/Catalog/Service/V1/Category/ProductLinks/WriteService.php +++ b/app/code/Magento/Catalog/Service/V1/Category/ProductLinks/WriteService.php @@ -102,11 +102,11 @@ class WriteService implements WriteServiceInterface $category->save(); } catch (\Exception $e) { throw new CouldNotSaveException( - 'Could not save product "%1" with position %2 to category %3', + 'Could not save product "%product_id" with position %position to category %category_id', [ - $productId, - $productLink->getPosition(), - $categoryId, + 'product_id' => $productId, + 'position' => $productLink->getPosition(), + 'category_id' => $categoryId ], $e ); @@ -137,10 +137,10 @@ class WriteService implements WriteServiceInterface $category->save(); } catch (\Exception $e) { throw new CouldNotSaveException( - 'Could not remove product "%1" from category with ID "%2"', + 'Could not remove product "%product_sku" from category with ID "%category_id"', [ - $productSku, - $categoryId, + 'product_sku' => $productSku, + 'category_id' => $categoryId, ], $e ); diff --git a/app/code/Magento/Catalog/Service/V1/Category/WriteService.php b/app/code/Magento/Catalog/Service/V1/Category/WriteService.php index e2725bf8209..307d05be341 100644 --- a/app/code/Magento/Catalog/Service/V1/Category/WriteService.php +++ b/app/code/Magento/Catalog/Service/V1/Category/WriteService.php @@ -86,7 +86,7 @@ class WriteService implements WriteServiceInterface $this->validateCategory($categoryModel); $categoryModel->save(); } catch (\Exception $e) { - throw new CouldNotSaveException('Could not save category: %1', [$e->getMessage()], $e); + throw new CouldNotSaveException('Could not save category: %message', ['message' => $e->getMessage()], $e); } return $categoryModel->getId(); } @@ -105,7 +105,7 @@ class WriteService implements WriteServiceInterface try { $category->delete(); } catch (\Exception $e) { - throw new StateException('Cannot delete category with id %1', [$categoryId], $e); + throw new StateException('Cannot delete category with id %category_id', ['category_id' => $categoryId], $e); } return true; diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json index 5a75b0a230d..9816d6d7ad3 100644 --- a/app/code/Magento/Catalog/composer.json +++ b/app/code/Magento/Catalog/composer.json @@ -3,33 +3,33 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-indexer": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-log": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-msrp": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-catalog-rule": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-catalog-search": "0.1.0-alpha97", - "magento/module-product-alert": "0.1.0-alpha97", - "magento/module-url-rewrite": "0.1.0-alpha97", - "magento/module-catalog-url-rewrite": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-indexer": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-log": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-msrp": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-catalog-rule": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-catalog-search": "0.1.0-alpha98", + "magento/module-product-alert": "0.1.0-alpha98", + "magento/module-url-rewrite": "0.1.0-alpha98", + "magento/module-catalog-url-rewrite": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json index 4e6aaa07908..5f6009a6b50 100644 --- a/app/code/Magento/CatalogImportExport/composer.json +++ b/app/code/Magento/CatalogImportExport/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-import-export": "0.1.0-alpha97", - "magento/module-indexer": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-import-export": "0.1.0-alpha98", + "magento/module-indexer": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json index e377c3bbbe8..9e56de86a50 100644 --- a/app/code/Magento/CatalogInventory/composer.json +++ b/app/code/Magento/CatalogInventory/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-indexer": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-indexer": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json index a6c09e071f1..d3f41c07eb7 100644 --- a/app/code/Magento/CatalogRule/composer.json +++ b/app/code/Magento/CatalogRule/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-rule": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-rule": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json index a9cc6a7815b..e976256674b 100644 --- a/app/code/Magento/CatalogSearch/composer.json +++ b/app/code/Magento/CatalogSearch/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-indexer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-indexer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json index 0eb731ddbca..c1c1912ef7e 100644 --- a/app/code/Magento/CatalogUrlRewrite/composer.json +++ b/app/code/Magento/CatalogUrlRewrite/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-catalog-import-export": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-import-export": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/module-url-rewrite": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-catalog-import-export": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-import-export": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/module-url-rewrite": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Centinel/composer.json b/app/code/Magento/Centinel/composer.json index 0ca946052ef..f9e19a28ff9 100644 --- a/app/code/Magento/Centinel/composer.json +++ b/app/code/Magento/Centinel/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json index 772f86efbdb..f5bbda4fc26 100644 --- a/app/code/Magento/Checkout/composer.json +++ b/app/code/Magento/Checkout/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-authorization": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-gift-message": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-page-cache": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-msrp": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-authorization": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-gift-message": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-page-cache": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-msrp": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json index ba2e152066f..83c52cd325b 100644 --- a/app/code/Magento/CheckoutAgreements/composer.json +++ b/app/code/Magento/CheckoutAgreements/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json index da8253d95d9..49ffbcf4fa6 100644 --- a/app/code/Magento/Cms/composer.json +++ b/app/code/Magento/Cms/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-email": "0.1.0-alpha97", - "magento/module-ui": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-email": "0.1.0-alpha98", + "magento/module-ui": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json index acf8fb0f3b8..0817b25e54b 100644 --- a/app/code/Magento/CmsUrlRewrite/composer.json +++ b/app/code/Magento/CmsUrlRewrite/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-url-rewrite": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-url-rewrite": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json index e17863da679..60a4cb8ee0a 100644 --- a/app/code/Magento/ConfigurableImportExport/composer.json +++ b/app/code/Magento/ConfigurableImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-catalog-import-export": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-import-export": "0.1.0-alpha97", - "magento/module-configurable-product": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-catalog-import-export": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-import-export": "0.1.0-alpha98", + "magento/module-configurable-product": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteService.php b/app/code/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteService.php index 28fe23b5e1d..17e66e503bf 100644 --- a/app/code/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteService.php +++ b/app/code/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteService.php @@ -37,7 +37,6 @@ use Magento\Framework\StoreManagerInterface; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Exception\CouldNotSaveException; -use Magento\Webapi\Exception; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -105,6 +104,7 @@ class WriteService implements WriteServiceInterface */ public function add($productSku, Option $option) { + $this->validateNewOptionData($option); $product = $this->productRepository->get($productSku); $allowedTypes = [ProductType::TYPE_SIMPLE, ProductType::TYPE_VIRTUAL, ConfigurableType::TYPE_CODE]; if (!in_array($product->getTypeId(), $allowedTypes)) { @@ -138,6 +138,46 @@ class WriteService implements WriteServiceInterface return $configurableAttribute->getId(); } + /** + * Ensure that all necessary data is available for a new option creation. + * + * @param Option $option + * @return void + * @throws InputException + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + public function validateNewOptionData(Option $option) + { + $inputException = new InputException(); + if (!$option->getAttributeId()) { + $inputException->addError('Option attribute ID is not specified.'); + } + if (!$option->getType()) { + $inputException->addError('Option type is not specified.'); + } + if (!$option->getLabel()) { + $inputException->addError('Option label is not specified.'); + } + if (!$option->getValues()) { + $inputException->addError('Option values are not specified.'); + } else { + foreach ($option->getValues() as $optionValue) { + if (!$optionValue->getIndex()) { + $inputException->addError('Value index is not specified for an option.'); + } + if (null === $optionValue->getPrice()) { + $inputException->addError('Price is not specified for an option.'); + } + if (null === $optionValue->isPercent()) { + $inputException->addError('Percent/absolute is not specified for an option.'); + } + } + } + if ($inputException->wasErrorAdded()) { + throw $inputException; + } + } + /** * {@inheritdoc} */ @@ -148,13 +188,13 @@ class WriteService implements WriteServiceInterface $configurableAttribute = $this->configurableAttributeFactory->create(); $configurableAttribute->load($optionId); if (!$configurableAttribute->getId() || $configurableAttribute->getProductId() != $product->getId()) { - throw new NoSuchEntityException('Option with id "%1" not found', [$optionId]); + throw new NoSuchEntityException('Option with id "%option_id" not found', ['option_id' => $optionId]); } $configurableAttribute = $this->optionConverter->getModelFromData($option, $configurableAttribute); try { $configurableAttribute->save(); } catch (\Exception $e) { - throw new CouldNotSaveException('Could not update option with id "%1"', [$optionId]); + throw new CouldNotSaveException('Could not update option with id "%option_id"', ['option_id' => $optionId]); } return true; @@ -180,21 +220,19 @@ class WriteService implements WriteServiceInterface } /** + * Get product by SKU. + * * @param string $productSku * @return \Magento\Catalog\Model\Product - * @throws \Magento\Webapi\Exception + * @throws InputException */ private function getProduct($productSku) { $product = $this->productRepository->get($productSku); if (ConfigurableType::TYPE_CODE !== $product->getTypeId()) { - throw new Exception( - 'Product with specified sku: "%1" is not a configurable product', - Exception::HTTP_FORBIDDEN, - Exception::HTTP_FORBIDDEN, - [ - $product->getSku() - ] + throw new InputException( + 'Product with specified sku: "%sku" is not a configurable product', + ['sku' => $product->getSku()] ); } return $product; diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json index dd6b68d1aca..a73d1b581d4 100644 --- a/app/code/Magento/ConfigurableProduct/composer.json +++ b/app/code/Magento/ConfigurableProduct/composer.json @@ -3,23 +3,23 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-catalog-rule": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", - "magento/module-webapi": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-catalog-rule": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", + "magento/module-webapi": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json index c4b5409c8bc..01e17f63638 100644 --- a/app/code/Magento/Contact/composer.json +++ b/app/code/Magento/Contact/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Core/composer.json b/app/code/Magento/Core/composer.json index 9d33c4c2962..23b7e1efcde 100644 --- a/app/code/Magento/Core/composer.json +++ b/app/code/Magento/Core/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-page-cache": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-page-cache": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json index 0ada7c1ab43..6cb1f839846 100644 --- a/app/code/Magento/Cron/composer.json +++ b/app/code/Magento/Cron/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json index 92f7949f60b..72802c32385 100644 --- a/app/code/Magento/CurrencySymbol/composer.json +++ b/app/code/Magento/CurrencySymbol/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-page-cache": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-page-cache": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Customer/Service/V1/CustomerAccountService.php b/app/code/Magento/Customer/Service/V1/CustomerAccountService.php index 4b34f881786..899114e148a 100644 --- a/app/code/Magento/Customer/Service/V1/CustomerAccountService.php +++ b/app/code/Magento/Customer/Service/V1/CustomerAccountService.php @@ -355,6 +355,7 @@ class CustomerAccountService implements CustomerAccountServiceInterface $this->checkPasswordStrength($newPassword); $customerModel->setPasswordHash($this->getPasswordHash($newPassword)); $customerModel->save(); + return true; } /** diff --git a/app/code/Magento/Customer/Service/V1/CustomerAccountServiceInterface.php b/app/code/Magento/Customer/Service/V1/CustomerAccountServiceInterface.php index 54448946c06..4f6b7791413 100644 --- a/app/code/Magento/Customer/Service/V1/CustomerAccountServiceInterface.php +++ b/app/code/Magento/Customer/Service/V1/CustomerAccountServiceInterface.php @@ -194,7 +194,7 @@ interface CustomerAccountServiceInterface * @param string $customerId * @param string $resetToken Token sent to customer via e-mail * @param string $newPassword - * @return void + * @return bool true on success * @throws \Magento\Framework\Exception\State\InputMismatchException If token is mismatched * @throws \Magento\Framework\Exception\State\ExpiredException If token is expired * @throws \Magento\Framework\Exception\InputException If token or customer id is invalid diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json index e1d3c73fe7d..2606751e614 100644 --- a/app/code/Magento/Customer/composer.json +++ b/app/code/Magento/Customer/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-newsletter": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-review": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-page-cache": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", - "magento/module-authorization": "0.1.0-alpha97", - "magento/module-integration": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-newsletter": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-review": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-page-cache": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", + "magento/module-authorization": "0.1.0-alpha98", + "magento/module-integration": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json index b422fcd758f..a15aa5a2ab4 100644 --- a/app/code/Magento/CustomerImportExport/composer.json +++ b/app/code/Magento/CustomerImportExport/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-import-export": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-import-export": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/DesignEditor/composer.json b/app/code/Magento/DesignEditor/composer.json index 76d6d3100b3..17e3dce6173 100644 --- a/app/code/Magento/DesignEditor/composer.json +++ b/app/code/Magento/DesignEditor/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json index 764da496332..a6e18f87b53 100644 --- a/app/code/Magento/Dhl/composer.json +++ b/app/code/Magento/Dhl/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json index a58450d3f7f..649e7f2cce9 100644 --- a/app/code/Magento/Directory/composer.json +++ b/app/code/Magento/Directory/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json index 427bfb86449..29ce6486676 100644 --- a/app/code/Magento/Downloadable/composer.json +++ b/app/code/Magento/Downloadable/composer.json @@ -3,26 +3,26 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-gift-message": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-msrp": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-gift-message": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-msrp": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json index 4762b42b045..54e4f1f2853 100644 --- a/app/code/Magento/Eav/composer.json +++ b/app/code/Magento/Eav/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json index 8b02103b840..00e01ba7745 100644 --- a/app/code/Magento/Email/composer.json +++ b/app/code/Magento/Email/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json index c23658cc4a4..32b84ec73ef 100644 --- a/app/code/Magento/Fedex/composer.json +++ b/app/code/Magento/Fedex/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json index 38540a41549..b6f223ae1fa 100644 --- a/app/code/Magento/GiftMessage/composer.json +++ b/app/code/Magento/GiftMessage/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-multishipping": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-multishipping": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json index 5d8a4ec9ad4..30d86f3de86 100644 --- a/app/code/Magento/GoogleAdwords/composer.json +++ b/app/code/Magento/GoogleAdwords/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json index 1520dd03b09..d37451ce687 100644 --- a/app/code/Magento/GoogleAnalytics/composer.json +++ b/app/code/Magento/GoogleAnalytics/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json index b3bc0b4e288..61834880cdd 100644 --- a/app/code/Magento/GoogleOptimizer/composer.json +++ b/app/code/Magento/GoogleOptimizer/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-google-analytics": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-google-analytics": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GoogleShopping/composer.json b/app/code/Magento/GoogleShopping/composer.json index 40ab8c4fc33..a745694b62e 100644 --- a/app/code/Magento/GoogleShopping/composer.json +++ b/app/code/Magento/GoogleShopping/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json index ff4046298de..c6f0282751b 100644 --- a/app/code/Magento/GroupedImportExport/composer.json +++ b/app/code/Magento/GroupedImportExport/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-import-export": "0.1.0-alpha97", - "magento/module-catalog-import-export": "0.1.0-alpha97", - "magento/module-grouped-product": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-import-export": "0.1.0-alpha98", + "magento/module-catalog-import-export": "0.1.0-alpha98", + "magento/module-grouped-product": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json index f1fcf590315..157c79664c8 100644 --- a/app/code/Magento/GroupedProduct/composer.json +++ b/app/code/Magento/GroupedProduct/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-msrp": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-msrp": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json index 561eddbb92c..0893d2ffac4 100644 --- a/app/code/Magento/ImportExport/composer.json +++ b/app/code/Magento/ImportExport/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-indexer": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-indexer": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "ext-ctype": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json index 895ea508063..c077d1cb6d9 100644 --- a/app/code/Magento/Indexer/composer.json +++ b/app/code/Magento/Indexer/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-page-cache": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-page-cache": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Install/composer.json b/app/code/Magento/Install/composer.json index 54dfe0c181d..e77069c40dd 100644 --- a/app/code/Magento/Install/composer.json +++ b/app/code/Magento/Install/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-user": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-user": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json index 9c0e59d43d4..ac122e1c5aa 100644 --- a/app/code/Magento/Integration/composer.json +++ b/app/code/Magento/Integration/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-user": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", - "magento/module-authorization": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-user": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", + "magento/module-authorization": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json index 8086986cb7b..3673a1dd303 100644 --- a/app/code/Magento/LayeredNavigation/composer.json +++ b/app/code/Magento/LayeredNavigation/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Log/composer.json b/app/code/Magento/Log/composer.json index 69e46c04b5f..0fa1ad00f7f 100644 --- a/app/code/Magento/Log/composer.json +++ b/app/code/Magento/Log/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Msrp/composer.json b/app/code/Magento/Msrp/composer.json index 0b4b89d2783..95939c5e8bf 100644 --- a/app/code/Magento/Msrp/composer.json +++ b/app/code/Magento/Msrp/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-bundle": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-configurable-product": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-downloadable": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-grouped-product": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-bundle": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-configurable-product": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-downloadable": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-grouped-product": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js index 85c1a66a587..39be72ddcf7 100644 --- a/app/code/Magento/Msrp/view/base/web/js/msrp.js +++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js @@ -47,6 +47,9 @@ define(["jquery", "jquery/ui", "mage/dropdown"], function($) { this.element.trigger('reloadPrice'); var dialog = $("#map-popup-click-for-price"); this._popupDialog(dialog, this.options.popupId); + if (this.options.addToCartUrl) { + $(this.options.cartForm).attr('action', this.options.addToCartUrl); + } if (!this.options.showAddToCart) { $('#product_addtocart_form_from_popup').hide(); } @@ -87,7 +90,6 @@ define(["jquery", "jquery/ui", "mage/dropdown"], function($) { } if (this.options.addToCartUrl) { $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog("close"); - $(this.options.cartForm).attr('action', this.options.addToCartUrl); } $(this.options.cartForm).submit(); } diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json index 3b6e72a0456..8c854c979c5 100644 --- a/app/code/Magento/Multishipping/composer.json +++ b/app/code/Magento/Multishipping/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json index 1299cb53107..1fa8e57e7a7 100644 --- a/app/code/Magento/Newsletter/composer.json +++ b/app/code/Magento/Newsletter/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-email": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-email": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json index 65ed9dc6de6..b318a197759 100644 --- a/app/code/Magento/OfflinePayments/composer.json +++ b/app/code/Magento/OfflinePayments/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-payment": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-payment": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json index 35d7460d1d6..837b044618a 100644 --- a/app/code/Magento/OfflineShipping/composer.json +++ b/app/code/Magento/OfflineShipping/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-sales-rule": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-sales-rule": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Ogone/composer.json b/app/code/Magento/Ogone/composer.json index 63095972229..1460b473722 100644 --- a/app/code/Magento/Ogone/composer.json +++ b/app/code/Magento/Ogone/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/PageCache/Controller/Block.php b/app/code/Magento/PageCache/Controller/Block.php index 572babf097c..f712b19b817 100644 --- a/app/code/Magento/PageCache/Controller/Block.php +++ b/app/code/Magento/PageCache/Controller/Block.php @@ -43,7 +43,7 @@ class Block extends \Magento\Framework\App\Action\Action $blocks = json_decode($blocks); $handles = json_decode($handles); - $this->_view->loadLayout($handles); + $this->_view->loadLayout($handles, true, true, false); $data = array(); $layout = $this->_view->getLayout(); diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json index a6cd124ebca..637740ce1bd 100644 --- a/app/code/Magento/PageCache/composer.json +++ b/app/code/Magento/PageCache/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/PayPalRecurringPayment/composer.json b/app/code/Magento/PayPalRecurringPayment/composer.json index e45d930bccb..a461470fa5b 100644 --- a/app/code/Magento/PayPalRecurringPayment/composer.json +++ b/app/code/Magento/PayPalRecurringPayment/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-paypal": "0.1.0-alpha97", - "magento/module-recurring-payment": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-paypal": "0.1.0-alpha98", + "magento/module-recurring-payment": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json index ac92021012d..d94ee2ccce6 100644 --- a/app/code/Magento/Payment/composer.json +++ b/app/code/Magento/Payment/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-centinel": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-centinel": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Paypal/Block/Bml/Shortcut.php b/app/code/Magento/Paypal/Block/Bml/Shortcut.php index 61d55a5c657..ee1677dc104 100644 --- a/app/code/Magento/Paypal/Block/Bml/Shortcut.php +++ b/app/code/Magento/Paypal/Block/Bml/Shortcut.php @@ -93,6 +93,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal * @param string $startAction * @param string $alias * @param string $bmlMethodCode + * @param string $shortcutTemplate * @param array $data */ public function __construct @@ -105,6 +106,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal $startAction, $alias, $bmlMethodCode, + $shortcutTemplate, array $data = array() ) { $this->_paymentData = $paymentData; @@ -114,6 +116,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal $this->_paymentMethodCode = $paymentMethodCode; $this->_startAction = $startAction; $this->_alias = $alias; + $this->setTemplate($shortcutTemplate); $this->_bmlMethodCode = $bmlMethodCode; parent::__construct($context, $data); } diff --git a/app/code/Magento/Paypal/Block/Express/Shortcut.php b/app/code/Magento/Paypal/Block/Express/Shortcut.php index 86c0c87bc24..0a2cc61ef0b 100644 --- a/app/code/Magento/Paypal/Block/Express/Shortcut.php +++ b/app/code/Magento/Paypal/Block/Express/Shortcut.php @@ -121,6 +121,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal * @param string $startAction * @param string $checkoutType * @param string $alias + * @param string $shortcutTemplate * @param \Magento\Checkout\Model\Session $checkoutSession * @param array $data */ @@ -137,6 +138,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal $startAction, $checkoutType, $alias, + $shortcutTemplate, \Magento\Checkout\Model\Session $checkoutSession = null, array $data = array() ) { @@ -152,6 +154,7 @@ class Shortcut extends \Magento\Framework\View\Element\Template implements Catal $this->_startAction = $startAction; $this->_checkoutType = $checkoutType; $this->_alias = $alias; + $this->setTemplate($shortcutTemplate); parent::__construct($context, $data); $this->_isScopePrivate = true; diff --git a/app/code/Magento/Paypal/Model/Observer.php b/app/code/Magento/Paypal/Model/Observer.php index 77e23a27eca..aad004543ae 100644 --- a/app/code/Magento/Paypal/Model/Observer.php +++ b/app/code/Magento/Paypal/Model/Observer.php @@ -81,11 +81,6 @@ class Observer */ protected $_shortcutFactory; - /** - * Shortcut template path - */ - const SHORTCUT_TEMPLATE = 'express/shortcut.phtml'; - /** * @param \Magento\Core\Helper\Data $coreData * @param \Magento\Paypal\Helper\Hss $paypalHss @@ -242,6 +237,7 @@ class Observer /** @var \Magento\Catalog\Block\ShortcutButtons $shortcutButtons */ $shortcutButtons = $observer->getEvent()->getContainer(); $blocks = [ + 'Magento\Paypal\Block\Express\ShortcutContainer', 'Magento\Paypal\Block\Express\Shortcut', 'Magento\Paypal\Block\PayflowExpress\Shortcut', 'Magento\Paypal\Block\Bml\Shortcut', @@ -265,8 +261,6 @@ class Observer $observer->getEvent()->getIsCatalogProduct() )->setShowOrPosition( $observer->getEvent()->getOrPosition() - )->setTemplate( - self::SHORTCUT_TEMPLATE ); $shortcutButtons->addShortcut($shortcut); } diff --git a/app/code/Magento/Paypal/composer.json b/app/code/Magento/Paypal/composer.json index 62d584462c6..46d3f8695df 100644 --- a/app/code/Magento/Paypal/composer.json +++ b/app/code/Magento/Paypal/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-centinel": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-centinel": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Paypal/etc/di.xml b/app/code/Magento/Paypal/etc/di.xml index 4fc299e88f1..e953780e8fd 100644 --- a/app/code/Magento/Paypal/etc/di.xml +++ b/app/code/Magento/Paypal/etc/di.xml @@ -58,14 +58,22 @@ <argument name="startAction" xsi:type="string">paypal/express/start/button/1</argument> <argument name="checkoutType" xsi:type="string">Magento\Paypal\Model\Express\Checkout</argument> <argument name="alias" xsi:type="string">product.info.addtocart.paypal</argument> + <argument name="shortcutTemplate" xsi:type="string">express/shortcut.phtml</argument> </arguments> </type> + <virtualType name="Magento\Paypal\Block\Express\ShortcutContainer" type="Magento\Paypal\Block\Express\Shortcut"> + <arguments> + <argument name="alias" xsi:type="string">product.info.addtocart.paypalShortcutContainer</argument> + <argument name="shortcutTemplate" xsi:type="string">express/shortcut/container.phtml</argument> + </arguments> + </virtualType> <virtualType name="Magento\Paypal\Block\PayflowExpress\Shortcut" type="Magento\Paypal\Block\Express\Shortcut"> <arguments> <argument name="paymentMethodCode" xsi:type="const">Magento\Paypal\Model\Config::METHOD_WPP_PE_EXPRESS</argument> <argument name="startAction" xsi:type="string">paypal/payflowexpress/start/button/1</argument> <argument name="checkoutType" xsi:type="string">Magento\Paypal\Model\PayflowExpress\Checkout</argument> <argument name="alias" xsi:type="string">product.info.addtocart.payflow</argument> + <argument name="shortcutTemplate" xsi:type="string">express/shortcut.phtml</argument> </arguments> </virtualType> <type name="Magento\Paypal\Block\Bml\Shortcut"> @@ -74,6 +82,7 @@ <argument name="startAction" xsi:type="string">paypal/bml/start/button/1</argument> <argument name="bmlMethodCode" xsi:type="const">Magento\Paypal\Model\Config::METHOD_WPP_BML</argument> <argument name="alias" xsi:type="string">product.info.addtocart.paypalbml</argument> + <argument name="shortcutTemplate" xsi:type="string">express/shortcut.phtml</argument> </arguments> </type> <type name="Magento\Payment\Model\Checks\Composite"> diff --git a/app/code/Magento/Paypal/view/frontend/templates/express/shortcut.phtml b/app/code/Magento/Paypal/view/frontend/templates/express/shortcut.phtml index 9c65d060a06..af04820dd79 100644 --- a/app/code/Magento/Paypal/view/frontend/templates/express/shortcut.phtml +++ b/app/code/Magento/Paypal/view/frontend/templates/express/shortcut.phtml @@ -42,10 +42,6 @@ if ($this->isOrPositionBefore()) { alt="<?php echo __('Checkout with PayPal'); ?>" title="<?php echo __('Checkout with PayPal'); ?>"/> <?php if ($this->getConfirmationUrl() || $this->getIsInCatalogProduct()): ?> - <?php if ($this->getIsInCatalogProduct()): ?> - <input type="hidden" id="pp-checkout-url" name="return_url" value=""/> - <?php endif; ?> - <?php $confirmationUrl = $this->getConfirmationUrl(); $isInCatalogProduct = $this->getIsInCatalogProduct(); @@ -62,7 +58,7 @@ require(['jquery', 'Magento_Paypal/js/paypal-checkout'], function($){ confirmUrl: "<?php echo !empty($confirmationUrl) ? $confirmationUrl : false ?>", isCatalogProduct: "<?php echo !empty($isInCatalogProduct) ? $isInCatalogProduct : false ?>", paypalCheckoutSelector: '#pp-checkout-url', - productAddToCartForm: '#product_addtocart_form' + shortcutContainerClass: '<?php echo "." . $shortcutHtmlId ?>' }); }); diff --git a/app/code/Magento/Paypal/view/frontend/templates/express/shortcut/container.phtml b/app/code/Magento/Paypal/view/frontend/templates/express/shortcut/container.phtml new file mode 100644 index 00000000000..dca1c8e6637 --- /dev/null +++ b/app/code/Magento/Paypal/view/frontend/templates/express/shortcut/container.phtml @@ -0,0 +1,33 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +?> +<?php +/** + * @var $this Magento\Paypal\Block\Express\Shortcut + */ +?> +<?php if ($this->getIsInCatalogProduct()): ?> + <input type="hidden" id="pp-checkout-url" name="return_url" value=""/> +<?php endif; ?> + diff --git a/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js b/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js index 00f7df3977c..45249b2fa16 100644 --- a/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js +++ b/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js @@ -42,8 +42,10 @@ define([ } } if (this.options.isCatalogProduct) { - $(this.options.paypalCheckoutSelector).val(returnUrl); - $(this.options.productAddToCartForm).submit(); + // find the form from which the button was clicked + var form = $(this.options.shortcutContainerClass).closest("form"); + $(form).find(this.options.paypalCheckoutSelector).val(returnUrl); + $(form).submit(); } else { $.mage.redirect(returnUrl); } diff --git a/app/code/Magento/Paypal/view/frontend/web/order-review.js b/app/code/Magento/Paypal/view/frontend/web/order-review.js index 3c610bb94cc..1034dafb436 100644 --- a/app/code/Magento/Paypal/view/frontend/web/order-review.js +++ b/app/code/Magento/Paypal/view/frontend/web/order-review.js @@ -176,6 +176,7 @@ define([ if (this.element.data('mageValidation')) { return this.element.validation().valid(); } + return true; }, /** diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json index a25825eaa2c..378bcf76865 100644 --- a/app/code/Magento/Persistent/composer.json +++ b/app/code/Magento/Persistent/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json index 9f3c3216d07..785422097cf 100644 --- a/app/code/Magento/ProductAlert/composer.json +++ b/app/code/Magento/ProductAlert/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/RecurringPayment/composer.json b/app/code/Magento/RecurringPayment/composer.json index b8bd1ab1c5e..94442e13902 100644 --- a/app/code/Magento/RecurringPayment/composer.json +++ b/app/code/Magento/RecurringPayment/composer.json @@ -3,22 +3,22 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json index 47d42e8dced..0cdedfb4e61 100644 --- a/app/code/Magento/Reports/composer.json +++ b/app/code/Magento/Reports/composer.json @@ -3,27 +3,27 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-log": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-review": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-downloadable": "0.1.0-alpha97", - "magento/module-sales-rule": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-log": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-review": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-downloadable": "0.1.0-alpha98", + "magento/module-sales-rule": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json index 5f6b598c277..23ec053254d 100644 --- a/app/code/Magento/RequireJs/composer.json +++ b/app/code/Magento/RequireJs/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json index 29c172fbb70..5449d3aa435 100644 --- a/app/code/Magento/Review/composer.json +++ b/app/code/Magento/Review/composer.json @@ -3,20 +3,20 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-newsletter": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-newsletter": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json index f4380ee4515..0583eb66b6a 100644 --- a/app/code/Magento/Rss/composer.json +++ b/app/code/Magento/Rss/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json index bb7975eda0f..7d9fa0e7d97 100644 --- a/app/code/Magento/Rule/composer.json +++ b/app/code/Magento/Rule/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json index 46bc9944d9b..c0d7676c85f 100644 --- a/app/code/Magento/Sales/composer.json +++ b/app/code/Magento/Sales/composer.json @@ -3,31 +3,31 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-authorization": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-sales-rule": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-gift-message": "0.1.0-alpha97", - "magento/module-reports": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-wishlist": "0.1.0-alpha97", - "magento/module-email": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-authorization": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-sales-rule": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-gift-message": "0.1.0-alpha98", + "magento/module-reports": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-wishlist": "0.1.0-alpha98", + "magento/module-email": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/SalesRule/composer.json b/app/code/Magento/SalesRule/composer.json index 19d2b6b920a..bb8754a0464 100644 --- a/app/code/Magento/SalesRule/composer.json +++ b/app/code/Magento/SalesRule/composer.json @@ -3,26 +3,26 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-rule": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-reports": "0.1.0-alpha97", - "magento/module-catalog-rule": "0.1.0-alpha97", - "magento/module-widget": "0.1.0-alpha97", - "magento/module-cron": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-rule": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-reports": "0.1.0-alpha98", + "magento/module-catalog-rule": "0.1.0-alpha98", + "magento/module-widget": "0.1.0-alpha98", + "magento/module-cron": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Sendfriend/composer.json b/app/code/Magento/Sendfriend/composer.json index 976cf398f14..e9aefbc67e2 100644 --- a/app/code/Magento/Sendfriend/composer.json +++ b/app/code/Magento/Sendfriend/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Shipping/composer.json b/app/code/Magento/Shipping/composer.json index aa103114a72..30e15a97db3 100644 --- a/app/code/Magento/Shipping/composer.json +++ b/app/code/Magento/Shipping/composer.json @@ -3,23 +3,23 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-contact": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-payment": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-contact": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-payment": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "ext-gd": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Sitemap/composer.json b/app/code/Magento/Sitemap/composer.json index cd9d94f3055..1ceb37b1c82 100644 --- a/app/code/Magento/Sitemap/composer.json +++ b/app/code/Magento/Sitemap/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog-url-rewrite": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog-url-rewrite": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json index 622ac35b3bd..5a32828033d 100644 --- a/app/code/Magento/Store/composer.json +++ b/app/code/Magento/Store/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-ui": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-core": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-ui": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Tax/composer.json b/app/code/Magento/Tax/composer.json index b21fa5a1319..faa67acb52c 100644 --- a/app/code/Magento/Tax/composer.json +++ b/app/code/Magento/Tax/composer.json @@ -3,23 +3,23 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-reports": "0.1.0-alpha97", - "magento/module-configurable-product": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-reports": "0.1.0-alpha98", + "magento/module-configurable-product": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/TaxImportExport/composer.json b/app/code/Magento/TaxImportExport/composer.json index 549e0fd2d5f..c5552cbb187 100644 --- a/app/code/Magento/TaxImportExport/composer.json +++ b/app/code/Magento/TaxImportExport/composer.json @@ -3,15 +3,15 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json index eae6bdbc4cc..25294ec39fe 100644 --- a/app/code/Magento/Theme/composer.json +++ b/app/code/Magento/Theme/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-translation": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-translation": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Translation/composer.json b/app/code/Magento/Translation/composer.json index ecb509392ce..7dd5da0f009 100644 --- a/app/code/Magento/Translation/composer.json +++ b/app/code/Magento/Translation/composer.json @@ -3,14 +3,14 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-core": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-core": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Ui/composer.json b/app/code/Magento/Ui/composer.json index cc0b3354d6a..b8a564f6d85 100644 --- a/app/code/Magento/Ui/composer.json +++ b/app/code/Magento/Ui/composer.json @@ -3,13 +3,13 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Ups/composer.json b/app/code/Magento/Ups/composer.json index ea4a5bd145d..10debbf8f1d 100644 --- a/app/code/Magento/Ups/composer.json +++ b/app/code/Magento/Ups/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/UrlRewrite/composer.json b/app/code/Magento/UrlRewrite/composer.json index 2faad085665..5fde5c1e6ec 100644 --- a/app/code/Magento/UrlRewrite/composer.json +++ b/app/code/Magento/UrlRewrite/composer.json @@ -3,18 +3,18 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-store": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog-url-rewrite": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-cms-url-rewrite": "0.1.0-alpha97", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-store": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog-url-rewrite": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-cms-url-rewrite": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/User/Model/User.php b/app/code/Magento/User/Model/User.php index 1b9260fb773..d42bd15220d 100644 --- a/app/code/Magento/User/Model/User.php +++ b/app/code/Magento/User/Model/User.php @@ -211,7 +211,8 @@ class User extends AbstractModel implements StorageInterface '_roleFactory', '_encryptor', '_transportBuilder', - '_storeManager' + '_storeManager', + '_validatorBeforeSave' ) ); } diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json index 6db87fb5083..f0a8e811680 100644 --- a/app/code/Magento/User/composer.json +++ b/app/code/Magento/User/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-authorization": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-integration": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-authorization": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-integration": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json index ebab020361b..a5470c3bd37 100644 --- a/app/code/Magento/Usps/composer.json +++ b/app/code/Magento/Usps/composer.json @@ -3,19 +3,19 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-shipping": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-shipping": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "lib-libxml": "*", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Webapi/Controller/ServiceArgsSerializer.php b/app/code/Magento/Webapi/Controller/ServiceArgsSerializer.php index 49e55065c93..8ab2e781126 100644 --- a/app/code/Magento/Webapi/Controller/ServiceArgsSerializer.php +++ b/app/code/Magento/Webapi/Controller/ServiceArgsSerializer.php @@ -213,8 +213,8 @@ class ServiceArgsSerializer if ($type === TypeProcessor::ANY_TYPE) { continue; } - //If custom attribute value is an array then its a data object type - $attributeValue = $this->_createFromArray($type, $customAttributeValue); + + $attributeValue = $this->_createDataObjectForTypeAndArrayValue($type, $customAttributeValue); } else { $attributeValue = $this->_convertValue($customAttributeValue, $type); } @@ -228,6 +228,28 @@ class ServiceArgsSerializer return $result; } + /** + * Creates a data object type from a given type name and a PHP array. + * + * @param string $type The type of data object to create + * @param array $customAttributeValue The data object values + * @return mixed + */ + protected function _createDataObjectForTypeAndArrayValue($type, $customAttributeValue) + { + if (substr($type, -2) === "[]") { + $type = substr($type, 0, -2); + $attributeValue = []; + foreach ($customAttributeValue as $value) { + $attributeValue[] = $this->_createFromArray($type, $value); + } + } else { + $attributeValue = $this->_createFromArray($type, $customAttributeValue); + } + + return $attributeValue; + } + /** * Convert data from array to Data Object representation if type is Data Object or array of Data Objects. * diff --git a/app/code/Magento/Webapi/composer.json b/app/code/Magento/Webapi/composer.json index 5774dfbea9d..b18f8e6f495 100644 --- a/app/code/Magento/Webapi/composer.json +++ b/app/code/Magento/Webapi/composer.json @@ -3,17 +3,17 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-authorization": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-integration": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-user": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-authorization": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-integration": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-user": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Weee/composer.json b/app/code/Magento/Weee/composer.json index 4579e60f538..aabbb4d654f 100644 --- a/app/code/Magento/Weee/composer.json +++ b/app/code/Magento/Weee/composer.json @@ -3,21 +3,21 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-tax": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-directory": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-eav": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-bundle": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-tax": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-directory": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-eav": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-bundle": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Widget/composer.json b/app/code/Magento/Widget/composer.json index be96f2855b6..ca7a34c58a8 100644 --- a/app/code/Magento/Widget/composer.json +++ b/app/code/Magento/Widget/composer.json @@ -3,16 +3,16 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-cms": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-cms": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/code/Magento/Wishlist/composer.json b/app/code/Magento/Wishlist/composer.json index b4547a75dd3..b43053c8d6d 100644 --- a/app/code/Magento/Wishlist/composer.json +++ b/app/code/Magento/Wishlist/composer.json @@ -3,25 +3,25 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/module-store": "0.1.0-alpha97", - "magento/module-customer": "0.1.0-alpha97", - "magento/module-catalog": "0.1.0-alpha97", - "magento/module-core": "0.1.0-alpha97", - "magento/module-checkout": "0.1.0-alpha97", - "magento/module-theme": "0.1.0-alpha97", - "magento/module-catalog-inventory": "0.1.0-alpha97", - "magento/module-rss": "0.1.0-alpha97", - "magento/module-backend": "0.1.0-alpha97", - "magento/module-bundle": "0.1.0-alpha97", - "magento/module-sales": "0.1.0-alpha97", - "magento/module-grouped-product": "0.1.0-alpha97", - "magento/module-configurable-product": "0.1.0-alpha97", - "magento/module-downloadable": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/module-store": "0.1.0-alpha98", + "magento/module-customer": "0.1.0-alpha98", + "magento/module-catalog": "0.1.0-alpha98", + "magento/module-core": "0.1.0-alpha98", + "magento/module-checkout": "0.1.0-alpha98", + "magento/module-theme": "0.1.0-alpha98", + "magento/module-catalog-inventory": "0.1.0-alpha98", + "magento/module-rss": "0.1.0-alpha98", + "magento/module-backend": "0.1.0-alpha98", + "magento/module-bundle": "0.1.0-alpha98", + "magento/module-sales": "0.1.0-alpha98", + "magento/module-grouped-product": "0.1.0-alpha98", + "magento/module-configurable-product": "0.1.0-alpha98", + "magento/module-downloadable": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/design/adminhtml/Magento/backend/composer.json b/app/design/adminhtml/Magento/backend/composer.json index 53888ad9bdc..407afee3724 100644 --- a/app/design/adminhtml/Magento/backend/composer.json +++ b/app/design/adminhtml/Magento/backend/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/design/adminhtml/Magento/backend/theme.xml b/app/design/adminhtml/Magento/backend/theme.xml index 6c738f9599b..acbb07ba133 100644 --- a/app/design/adminhtml/Magento/backend/theme.xml +++ b/app/design/adminhtml/Magento/backend/theme.xml @@ -24,5 +24,5 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento 2 backend</title> - <version>0.1.0-alpha97</version> + <version>0.1.0-alpha98</version> </theme> diff --git a/app/design/frontend/Magento/blank/composer.json b/app/design/frontend/Magento/blank/composer.json index ff9957a1d87..8386cbafd9d 100644 --- a/app/design/frontend/Magento/blank/composer.json +++ b/app/design/frontend/Magento/blank/composer.json @@ -3,11 +3,11 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/design/frontend/Magento/blank/theme.xml b/app/design/frontend/Magento/blank/theme.xml index 4ce39439c7b..feb7ace0aa1 100644 --- a/app/design/frontend/Magento/blank/theme.xml +++ b/app/design/frontend/Magento/blank/theme.xml @@ -24,7 +24,7 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Blank</title> - <version>0.1.0-alpha97</version> + <version>0.1.0-alpha98</version> <media> <preview_image>media/preview.jpg</preview_image> </media> diff --git a/app/design/frontend/Magento/plushe/composer.json b/app/design/frontend/Magento/plushe/composer.json index a4be706b5b2..afab06c3975 100644 --- a/app/design/frontend/Magento/plushe/composer.json +++ b/app/design/frontend/Magento/plushe/composer.json @@ -3,12 +3,12 @@ "description": "N/A", "require": { "php": "~5.4.11|~5.5.0", - "magento/theme-frontend-blank": "0.1.0-alpha97", - "magento/framework": "0.1.0-alpha97", + "magento/theme-frontend-blank": "0.1.0-alpha98", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-theme", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "extra": { "map": [ [ diff --git a/app/design/frontend/Magento/plushe/theme.xml b/app/design/frontend/Magento/plushe/theme.xml index 99f74b8f2eb..ae7f7d0b8f1 100644 --- a/app/design/frontend/Magento/plushe/theme.xml +++ b/app/design/frontend/Magento/plushe/theme.xml @@ -24,7 +24,7 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Plushe</title> - <version>0.1.0-alpha97</version> + <version>0.1.0-alpha98</version> <parent>Magento/blank</parent> <media> <preview_image>media/preview.jpg</preview_image> diff --git a/app/design/install/Magento/basic/theme.xml b/app/design/install/Magento/basic/theme.xml index 2f2fbec2347..2e347e2c163 100644 --- a/app/design/install/Magento/basic/theme.xml +++ b/app/design/install/Magento/basic/theme.xml @@ -24,5 +24,5 @@ --> <theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd"> <title>Magento Basic</title> - <version>0.1.0-alpha97</version> + <version>0.1.0-alpha98</version> </theme> diff --git a/app/i18n/magento/de_de/composer.json b/app/i18n/magento/de_de/composer.json index f985c2c20c5..062c3add974 100644 --- a/app/i18n/magento/de_de/composer.json +++ b/app/i18n/magento/de_de/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-de_de", "description": "German (Germany) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/en_us/composer.json b/app/i18n/magento/en_us/composer.json index 14c9283de5b..576af7cda01 100644 --- a/app/i18n/magento/en_us/composer.json +++ b/app/i18n/magento/en_us/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-en_us", "description": "English (United States) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/es_es/composer.json b/app/i18n/magento/es_es/composer.json index 8bfa7b0685d..d5702cc1f5d 100644 --- a/app/i18n/magento/es_es/composer.json +++ b/app/i18n/magento/es_es/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-es_es", "description": "Spanish (Spain) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/fr_fr/composer.json b/app/i18n/magento/fr_fr/composer.json index 162eba88f30..5d9c4962205 100644 --- a/app/i18n/magento/fr_fr/composer.json +++ b/app/i18n/magento/fr_fr/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-fr_fr", "description": "French (France) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/nl_nl/composer.json b/app/i18n/magento/nl_nl/composer.json index 9a85fa702e1..c8c6d10ede6 100644 --- a/app/i18n/magento/nl_nl/composer.json +++ b/app/i18n/magento/nl_nl/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-nl_nl", "description": "Dutch (Netherlands) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/pt_br/composer.json b/app/i18n/magento/pt_br/composer.json index 7d62abb5167..38f0b204123 100644 --- a/app/i18n/magento/pt_br/composer.json +++ b/app/i18n/magento/pt_br/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-pt_br", "description": "Portuguese (Brazil) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/app/i18n/magento/zh_cn/composer.json b/app/i18n/magento/zh_cn/composer.json index 16562ae1971..45f3b1ea226 100644 --- a/app/i18n/magento/zh_cn/composer.json +++ b/app/i18n/magento/zh_cn/composer.json @@ -1,9 +1,9 @@ { "name": "magento/language-zh_cn", "description": "Chinese (China) language", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { - "magento/framework": "0.1.0-alpha97", + "magento/framework": "0.1.0-alpha98", "magento/magento-composer-installer": "*" }, "type": "magento2-language", diff --git a/composer.json b/composer.json index 43976dfad94..ca94c7c2a83 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "magento/project-community-edition", "description": "Magento project (Community Edition)", "type": "project", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { "php": "~5.4.11|~5.5.0" }, diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php index 7c11952fad3..76d6fb16a12 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php @@ -151,11 +151,46 @@ abstract class Grid extends Block protected $option = '[name="status"]'; /** - * Selector for action expand Filter + * Filter button * * @var string */ - protected $filterOpen = '.action.filters-toggle'; + protected $filterButton = '.action.filters-toggle'; + + /** + * Active class + * + * @var string + */ + protected $active = '.active'; + + /** + * Base part of row locator template for getRow() method + * + * @var string + */ + protected $location = '//div[@class="grid"]//tr['; + + /** + * Secondary part of row locator template for getRow() method + * + * @var string + */ + protected $rowTemplate = 'td[contains(text(),normalize-space("%s"))]'; + + /** + * Secondary part of row locator template for getRow() method with strict option + * + * @var string + */ + protected $rowTemplateStrict = 'td[text()[normalize-space()="%s"]]'; + + /** + * Magento grid loader + * + * @var string + */ + protected $loader = '[data-role="spinner"]'; /** * Get backend abstract block @@ -200,10 +235,11 @@ abstract class Grid extends Block */ public function search(array $filter) { + $this->openFilterBlock(); $this->resetFilter(); $this->prepareForSearch($filter); $this->_rootElement->find($this->searchButton, Locator::SELECTOR_CSS)->click(); - $this->getTemplateBlock()->waitLoader(); + $this->waitLoader(); $this->reinitRootElement(); } @@ -215,6 +251,7 @@ abstract class Grid extends Block */ public function searchAndOpen(array $filter) { + $this->openFilterBlock(); $this->search($filter); $rowItem = $this->_rootElement->find($this->rowItem, Locator::SELECTOR_CSS); if ($rowItem->isVisible()) { @@ -225,6 +262,24 @@ abstract class Grid extends Block } } + /** + * Wait loader + * + * @return void + */ + protected function waitLoader() + { + $browser = $this->browser; + $selector = $this->loader; + $browser->waitUntil( + function () use ($browser, $selector) { + $productSavedMessage = $browser->find($selector); + return $productSavedMessage->isVisible() == false ? true : null; + } + ); + $this->getTemplateBlock()->waitLoader(); + } + /** * Method that waits for the configured selector using class attributes. */ @@ -247,6 +302,7 @@ abstract class Grid extends Block */ public function searchAndSelect(array $filter) { + $this->openFilterBlock(); $this->search($filter); $selectItem = $this->_rootElement->find($this->selectItem); if ($selectItem->isVisible()) { @@ -261,12 +317,9 @@ abstract class Grid extends Block */ public function resetFilter() { - $expandFilterButton = $this->_rootElement->find($this->filterOpen, Locator::SELECTOR_CSS); - if ($expandFilterButton->isVisible()) { - $expandFilterButton->click(); - } + $this->openFilterBlock(); $this->_rootElement->find($this->resetButton, Locator::SELECTOR_CSS)->click(); - $this->getTemplateBlock()->waitLoader(); + $this->waitLoader(); $this->reinitRootElement(); } @@ -323,6 +376,7 @@ abstract class Grid extends Block */ protected function getRow(array $filter, $isSearchable = true, $isStrict = true) { + $this->openFilterBlock(); if ($isSearchable) { $this->search($filter); } @@ -349,6 +403,7 @@ abstract class Grid extends Block */ public function isRowVisible(array $filter, $isSearchable = true, $isStrict = true) { + $this->openFilterBlock(); return $this->getRow($filter, $isSearchable, $isStrict)->isVisible(); } @@ -360,11 +415,25 @@ abstract class Grid extends Block */ public function sortGridByField($field, $sort = "desc") { + $this->openFilterBlock(); $sortBlock = $this->_rootElement->find(sprintf($this->sortLink, $field, $sort)); if ($sortBlock->isVisible()) { $sortBlock->click(); - $this->getTemplateBlock()->waitLoader(); + $this->waitLoader(); } $this->reinitRootElement(); } + + /** + * Open Filter Block + * + * @return void + */ + protected function openFilterBlock() + { + $button = $this->_rootElement->find($this->filterButton); + if ($button->isVisible() && !$this->_rootElement->find($this->filterButton . $this->active)->isVisible()) { + $button->click(); + } + } } diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest/test.csv deleted file mode 100644 index 3e389686633..00000000000 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest/test.csv +++ /dev/null @@ -1,3 +0,0 @@ -"products";"qty";"constraint" -"bundleProduct::bundle_dynamic_product";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" -"bundleProduct::bundle_fixed_product";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleDynamicTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleDynamicTest.php index da5588b335c..57103046af3 100755 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleDynamicTest.php +++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleDynamicTest.php @@ -66,12 +66,12 @@ class BundleDynamicTest extends Functional $productForm->fill($bundle, null, $category); $createProductPage->getFormPageActions()->save(); //Verification - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); // Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verification $this->assertOnGrid($bundle); $this->assertOnCategory($bundle); @@ -88,7 +88,7 @@ class BundleDynamicTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleFixedTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleFixedTest.php index 11796d0e499..26025de223c 100755 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleFixedTest.php +++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/BundleFixedTest.php @@ -66,12 +66,12 @@ class BundleFixedTest extends Functional $productForm->fill($bundle, null, $category); $createProductPage->getFormPageActions()->save(); //Verification - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); // Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verification $this->assertOnGrid($bundle); $this->assertOnCategory($bundle); @@ -88,7 +88,7 @@ class BundleFixedTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/EditBundleTest.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/EditBundleTest.php index bd41afca571..c6b5eb6d960 100755 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/EditBundleTest.php +++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/EditBundleTest.php @@ -73,13 +73,13 @@ class EditBundleTest extends Functional $productGridPage->open(); $gridBlock->searchAndOpen([ - 'sku' => $product->getProductSku(), + 'sku' => $product->getSku(), 'type' => 'Bundle Product' ]); $productForm->fill($editProduct); $editProductPage->getFormPageActions()->save(); //Verifying - $editProductPage->getMessagesBlock()->assertSuccessMessage(); + $editProductPage->getMessagesBlock()->waitSuccessMessage(); // Flush cache $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); @@ -112,7 +112,7 @@ class EditBundleTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml index e54210bf600..3c5c315ec91 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/ProductForm.xml @@ -64,6 +64,15 @@ <description /> </fields> </product-details> + <search-engine-optimization> + <class>\Magento\Backend\Test\Block\Widget\Tab</class> + <selector>#product_info_tabs_search-engine-optimization</selector> + <strategy>css selector</strategy> + <wrapper>product</wrapper> + <fields> + <url_key/> + </fields> + </search-engine-optimization> <websites> <class>\Magento\Backend\Test\Block\Widget\Tab</class> <selector>#product_info_tabs_websites</selector> @@ -137,7 +146,6 @@ <is_returnable> <input>select</input> </is_returnable> - <url_key/> <gift_message_available> <input>select</input> </gift_message_available> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php index fab93fbed78..a7e92102079 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductIsNotDisplayingOnFrontend.php @@ -168,7 +168,7 @@ class AssertProductIsNotDisplayingOnFrontend extends AbstractConstraint } if ($isProductVisible) { - $errors[] = '- product with name "{$product->getName()}" is found in this category.'; + $errors[] = "- product with name '{$product->getName()}' is found in this category."; } return $errors; diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/AssignProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/AssignProducts.php index fdc3c604ce6..51fb6832a78 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/AssignProducts.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/AssignProducts.php @@ -40,9 +40,9 @@ class AssignProducts extends Product { parent::__construct($configuration, $placeholders); - $this->_placeholders[$this->assignType . '_simple::getProductSku'] = array($this, 'productProvider'); + $this->_placeholders[$this->assignType . '_simple::getSku'] = array($this, 'productProvider'); $this->_placeholders[$this->assignType . '_simple::getName'] = array($this, 'productProvider'); - $this->_placeholders[$this->assignType . '_configurable::getProductSku'] = array($this, 'productProvider'); + $this->_placeholders[$this->assignType . '_configurable::getSku'] = array($this, 'productProvider'); $this->_placeholders[$this->assignType . '_configurable::getName'] = array($this, 'productProvider'); } @@ -61,11 +61,11 @@ class AssignProducts extends Product $this->assignType . '_products' => array( 'value' => array( 'product_1' => array( - 'sku' => '%' . $this->assignType . '_simple::getProductSku%', + 'sku' => '%' . $this->assignType . '_simple::getSku%', 'name' => '%' . $this->assignType . '_simple::getName%' ), 'product_2' => array( - 'sku' => '%' . $this->assignType . '_configurable::getProductSku%', + 'sku' => '%' . $this->assignType . '_configurable::getSku%', 'name' => '%' . $this->assignType . '_configurable::getName%' ) ), diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php index ea2967a46fa..01d262eb100 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Cart/Item.php @@ -77,9 +77,9 @@ class Item implements FixtureInterface $cartItem['options'] = isset($cartItem['options']) ? $cartItem['options'] + $checkoutCustomOptions : $checkoutCustomOptions; - $cartItem['qty'] = isset($checkoutData['options']['qty']) - ? $checkoutData['options']['qty'] - : 1; + if (isset($checkoutData['options']['qty'])) { + $cartItem['qty'] = $checkoutData['options']['qty']; + } $this->data = $cartItem; } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.php index 3588eb403a5..1a0b79f2d3f 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.php @@ -496,7 +496,7 @@ class CatalogProductSimple extends InjectableFixture 'is_required' => '0', 'default_value' => '', 'input' => 'text', - 'group' => 'autosettings', + 'group' => 'search-engine-optimization', ]; protected $url_path = [ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml index 395b2745e59..bafc13ce22a 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple.xml @@ -386,7 +386,7 @@ <is_required>0</is_required> <default_value></default_value> <input>text</input> - <group>autosettings</group> + <group>search-engine-optimization</group> </url_key> <url_path> <attribute_code>url_path</attribute_code> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CheckoutData.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CheckoutData.php index 9fc2f413279..1e754e93ff4 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CheckoutData.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductSimple/CheckoutData.php @@ -182,8 +182,13 @@ class CheckoutData implements FixtureInterface ] ], 'order_big_qty' => [ - 'options' => [ - 'qty' => 2 + 'qty' => 900 + ], + 'order_custom_price' => [ + 'checkout_data' => [ + 'qty' => 3, + 'use_custom_price' => "Yes", + 'custom_price' => 100, ], 'cartItem' => [] ] diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.php index 02a73c9f117..a627caf18e3 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual.php @@ -515,7 +515,7 @@ class CatalogProductVirtual extends InjectableFixture 'is_required' => '0', 'default_value' => '', 'input' => 'text', - 'group' => 'autosettings', + 'group' => 'search-engine-optimization', ]; protected $url_path = [ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual/CheckoutData.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual/CheckoutData.php index 065ca948351..89095fbc193 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual/CheckoutData.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CatalogProductVirtual/CheckoutData.php @@ -54,6 +54,13 @@ class CheckoutData extends \Magento\Catalog\Test\Fixture\CatalogProductSimple\Ch 'subtotal' => 50 ] ], + 'order_custom_price' => [ + 'checkout_data' => [ + 'qty' => 3, + 'use_custom_price' => "Yes", + 'custom_price' => 100, + ], + ] ]; return isset($presets[$name]) ? $presets[$name] : null; } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CrosssellProducts.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CrosssellProducts.php index 94d0b6b3caf..5e1ffb8b8b1 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CrosssellProducts.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/CrosssellProducts.php @@ -39,25 +39,25 @@ class CrosssellProducts extends AssignProducts /** * @var array */ - protected $_products = array(); + protected $_products = []; /** * Init Data */ protected function _initData() { - $this->_dataConfig = array( + $this->_dataConfig = [ 'assignType ' => $this->assignType, - ); + ]; /** @var $type Related|Upsell */ $type = 'Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Tab\\' . ucfirst(strtolower($this->assignType)); - $productsArray = array(); + $productsArray = []; foreach ($this->_products as $key => $product) { /** @var $product \Magento\Catalog\Test\Fixture\Product */ - $productsArray['product_' . $key] = array( - 'sku' => $product->getProductSku(), + $productsArray['product_' . $key] = [ + 'sku' => $product->getSku(), 'name' => $product->getName() - ); + ]; } $this->_data['fields'][$this->assignType . '_products']['value'] = $productsArray; $this->_data['fields'][$this->assignType . '_products']['group'] = $type::GROUP; diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product.php index 511551329a9..b1a79bc26f6 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product.php @@ -245,7 +245,7 @@ class Product extends DataFixture * * @return string */ - public function getProductSku() + public function getSku() { return $this->getData('fields/sku/value'); } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Curl.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Curl.php index b50bb378285..09b71b1168c 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Curl.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Curl.php @@ -145,7 +145,7 @@ class Curl extends AbstractCurl implements CatalogProductSimpleInterface $prefix = isset($config['input_prefix']) ? $config['input_prefix'] : null; $data = $this->prepareData($fixture, $prefix); - return ['id' => $this->createProduct($data, $config)]; + return $this->createProduct($data, $config); } /** @@ -342,7 +342,7 @@ class Curl extends AbstractCurl implements CatalogProductSimpleInterface * * @param array $data * @param array $config - * @return int|null + * @return array * @throws \Exception */ protected function createProduct(array $data, array $config) @@ -359,7 +359,7 @@ class Curl extends AbstractCurl implements CatalogProductSimpleInterface } preg_match("~Location: [^\s]*\/id\/(\d+)~", $response, $matches); - return isset($matches[1]) ? $matches[1] : null; + return ['id' => isset($matches[1]) ? $matches[1] : null]; } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php index 386e9301881..08d1ca7fcd3 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/CatalogProductSimple/Ui.php @@ -52,6 +52,6 @@ class Ui extends AbstractUi implements CatalogProductSimpleInterface $createProductPage->getProductForm()->fill($fixture); $createProductPage->getFormPageActions()->save(); - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); } } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Ui/CreateProduct.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Ui/CreateProduct.php index 1552bdb046f..50741b18552 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Ui/CreateProduct.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Handler/Ui/CreateProduct.php @@ -52,6 +52,6 @@ class CreateProduct extends Ui $createProductPage->getProductForm()->fill($fixture); $createProductPage->getFormPageActions()->save(); - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); } } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.php index b6b51204c00..f42af6bc004 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductSimple.php @@ -75,6 +75,22 @@ class CatalogProductSimple extends AbstractRepository 'checkout_data' => ['preset' => 'order_big_qty'], ]; + $this->_data['simple_for_sales'] = [ + 'attribute_set_id' => ['dataSet' => 'default'], + 'name' => 'Simple Product %isolation%', + 'sku' => 'sku_simple_product_%isolation%', + 'weight' => 1, + 'quantity_and_stock_status' => [ + 'qty' => 25.0000, + 'is_in_stock' => 'In Stock', + ], + 'price' => ['value' => 560.00, 'preset' => '-'], + 'tax_class_id' => ['dataSet' => 'Taxable Goods'], + 'website_ids' => ['Main Website'], + 'visibility' => 'Catalog, Search', + 'checkout_data' => ['preset' => 'order_custom_price'], + ]; + $this->_data['100_dollar_product'] = [ 'sku' => '100_dollar_product%isolation%', 'name' => '100_dollar_product%isolation%', diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.php index 4727bf50ba9..9e28fdc45fe 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Repository/CatalogProductVirtual.php @@ -60,6 +60,42 @@ class CatalogProductVirtual extends AbstractRepository 'checkout_data' => ['preset' => 'order_default'], ]; + $this->_data['virtual_big_qty'] = [ + 'tax_class_id' => ['dataSet' => 'Taxable Goods'], + 'status' => 'Product online', + 'website_ids' => ['Main Website'], + 'is_virtual' => 'Yes', + 'url_key' => 'virtual-product%isolation%', + 'visibility' => 'Catalog, Search', + 'attribute_set_id' => ['dataSet' => 'default'], + 'name' => 'Virtual product %isolation%', + 'sku' => 'sku_virtual_product_%isolation%', + 'quantity_and_stock_status' => [ + 'qty' => 1000.0000, + 'is_in_stock' => 'In Stock', + ], + 'price' => ['value' => 10.00, 'preset' => '-'], + 'checkout_data' => ['preset' => 'order_big_qty'], + ]; + + $this->_data['virtual_for_sales'] = [ + 'tax_class_id' => ['dataSet' => 'Taxable Goods'], + 'status' => 'Product online', + 'website_ids' => ['Main Website'], + 'is_virtual' => 'Yes', + 'url_key' => 'virtual-product%isolation%', + 'visibility' => 'Catalog, Search', + 'attribute_set_id' => ['dataSet' => 'default'], + 'name' => 'Virtual product %isolation%', + 'sku' => 'sku_virtual_product_%isolation%', + 'quantity_and_stock_status' => [ + 'qty' => 666.0000, + 'is_in_stock' => 'In Stock', + ], + 'price' => ['value' => 10.00, 'preset' => '-'], + 'checkout_data' => ['preset' => 'order_custom_price'], + ]; + $this->_data['50_dollar_product'] = [ 'name' => '50_dollar_product %isolation%', 'sku' => '50_dollar_product_%isolation%', diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AssignProductTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AssignProductTest.php index 5b91970cf3e..cca1d8567c9 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AssignProductTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/AssignProductTest.php @@ -68,15 +68,15 @@ class AssignProductTest extends Functional $products = [$simple, $configurable, $bundle]; /** @var Product $product */ foreach ($products as $product) { - $categoryProductsGrid->searchAndSelect(['sku' => $product->getProductSku()]); + $categoryProductsGrid->searchAndSelect(['sku' => $product->getSku()]); } $actionsBlock->save(); - $messagesBlock->assertSuccessMessage(); + $messagesBlock->waitSuccessMessage(); //Clean Cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertProductsOnCategory($category, $products); } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateTest.php index 9592b70c86b..6ceb5c58185 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/CreateTest.php @@ -60,12 +60,12 @@ class CreateTest extends Functional $formBlock->fill($category); $actionsBlock->save(); //Verifying - $messagesBlock->assertSuccessMessage(); + $messagesBlock->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertCategoryOnFrontend($category); } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateProductTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateProductTest.php index cec15ea5a64..51a5cd8a171 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateProductTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateProductTest.php @@ -61,12 +61,12 @@ class CreateProductTest extends Functional $createProductPage->open(['type' => 'simple', 'set' => 4]); $productForm->fill($product); $createProductPage->getFormPageActions()->save(); - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertOnGrid($product); $this->assertOnCategory($product); @@ -83,7 +83,7 @@ class CreateProductTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCategoryTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCategoryTest.php index 46941390782..07aef9e7e1c 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCategoryTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCategoryTest.php @@ -75,7 +75,7 @@ class CreateSimpleWithCategoryTest extends Functional $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertProductOnFrontend($product); } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCustomOptionsAndCategoryTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCustomOptionsAndCategoryTest.php index 3a5ff5ba818..ca11077153a 100755 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCustomOptionsAndCategoryTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleWithCustomOptionsAndCategoryTest.php @@ -66,7 +66,7 @@ class CreateSimpleWithCustomOptionsAndCategoryTest extends Functional $productForm->fill($product, null, $category); $createProductPage->getFormPageActions()->save(); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); // Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); @@ -88,7 +88,7 @@ class CreateSimpleWithCustomOptionsAndCategoryTest extends Functional $productGridPage->open(); /** @var \Magento\Catalog\Test\Block\Adminhtml\Product\Grid $gridBlock */ $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateTest.php index 8201bf4935b..5a4de0f34e9 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateTest.php @@ -65,12 +65,12 @@ class CreateTest extends Functional $productForm->fill($product); $createProductPage->getFormPageActions()->save(); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertOnGrid($product); $this->assertOnCategory($product); @@ -88,7 +88,7 @@ class CreateTest extends Functional $productGridPage->open(); /** @var \Magento\Catalog\Test\Block\Adminhtml\Product\Grid $gridBlock */ $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualTest.php index 49e46187a42..c66f161a339 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateVirtualTest.php @@ -62,12 +62,12 @@ class CreateVirtualTest extends Functional $productForm->fill($product); $createProductPage->getFormPageActions()->save(); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertOnGrid($product); $this->assertOnCategory($product); @@ -85,7 +85,7 @@ class CreateVirtualTest extends Functional $productGridPage->open(); /** @var \Magento\Catalog\Test\Block\Adminhtml\Product\Grid $gridBlock */ $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/EditSimpleProductTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/EditSimpleProductTest.php index edcfd32bd1a..5b54b2321f3 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/EditSimpleProductTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/EditSimpleProductTest.php @@ -65,11 +65,11 @@ class EditSimpleProductTest extends Functional $cachePage = Factory::getPageFactory()->getAdminCache(); $productGridPage->open(); - $gridBlock->searchAndOpen(['sku' => $product->getProductSku(), 'type' => 'Simple Product']); + $gridBlock->searchAndOpen(['sku' => $product->getSku(), 'type' => 'Simple Product']); $productForm->fill($editProduct); $editProductPage->getFormPageActions()->save(); //Verifying - $editProductPage->getMessagesBlock()->assertSuccessMessage(); + $editProductPage->getMessagesBlock()->waitSuccessMessage(); // Flush cache $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); @@ -90,7 +90,7 @@ class EditSimpleProductTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getProductSku()])); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UnassignCategoryTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UnassignCategoryTest.php index 89ad44368f8..bdab3e8df1e 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UnassignCategoryTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/UnassignCategoryTest.php @@ -63,12 +63,12 @@ class UnassignCategoryTest extends Functional $productForm->clearCategorySelect(); $editProductPage->getFormPageActions()->save(); //Verifying - $editProductPage->getMessagesBlock()->assertSuccessMessage(); + $editProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertAbsenceOnCategory($simple); } diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php index f4aacf5f368..5e2861cf2fc 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchEntityTest.php @@ -96,7 +96,6 @@ class AdvancedSearchEntityTest extends Injectable CmsIndex $cmsIndex, AdvancedSearch $searchPage ) { - $this->markTestIncomplete('MAGETWO-27664'); $cmsIndex->open(); $cmsIndex->getSearchBlock()->clickAdvancedSearchButton(); $searchForm = $searchPage->getForm(); diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchTest.php index b91c88f1ed0..a4d279831fb 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchTest.php +++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/AdvancedSearchTest.php @@ -40,7 +40,6 @@ class AdvancedSearchTest extends Functional */ public function testProductSearch() { - $this->markTestIncomplete('MAGETWO-27664'); //Data $productFixture = Factory::getFixtureFactory()->getMagentoCatalogSimpleProduct(); $productFixture->switchData('simple'); diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php index 54bb378e9ac..63acc851a48 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsBlock/Curl.php @@ -28,7 +28,6 @@ use Mtf\System\Config; use Mtf\Fixture\FixtureInterface; use Mtf\Util\Protocol\CurlInterface; use Mtf\Util\Protocol\CurlTransport; -use Magento\Backend\Test\Handler\Extractor; use Mtf\Util\Protocol\CurlTransport\BackendDecorator; use Mtf\Handler\Curl as AbstractCurl; @@ -43,7 +42,7 @@ class Curl extends AbstractCurl implements CmsBlockInterface * * @var string */ - protected $saveUrl = 'cms/block/save'; + protected $saveUrl = 'cms/block/save/back/edit'; /** * Mapping values for data @@ -85,11 +84,10 @@ class Curl extends AbstractCurl implements CmsBlockInterface throw new \Exception("CMS Block entity creating by curl handler was not successful! Response: $response"); } - $url = 'cms/block/index/sort/creation_time/dir/desc'; - $regExpPattern = '@^.*block_id\/(\d+)\/.*' . $fixture->getTitle() . '@ms'; - $extractor = new Extractor($url, $regExpPattern); + preg_match("`block_id\/(\d*?)\/`", $response, $matches); + $id = isset($matches[1]) ? $matches[1] : null; - return ['block_id' => $extractor->getData()[1]]; + return ['block_id' => $id]; } /** diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php index 24505b7d5c7..91e04bf8441 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Handler/CmsPage/Curl.php @@ -67,7 +67,7 @@ class Curl extends Conditions implements CmsPageInterface * * @var string */ - protected $url = 'cms/page/save/back/edit/active_tab/content_section/'; + protected $url = 'admin/cms_page/save/back/edit/active_tab/main_section/'; /** * Post request for creating a cms page diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProductInjectable/ConfigurableAttributesData.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProductInjectable/ConfigurableAttributesData.php index 7fdf2610f35..c38fe3940ca 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProductInjectable/ConfigurableAttributesData.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProductInjectable/ConfigurableAttributesData.php @@ -690,6 +690,7 @@ class ConfigurableAttributesData implements FixtureInterface foreach ($attribute['options'] as $optionKey => $option) { $compositeKey = "{$attributeKey}:{$optionKey}"; $optionId = $this->getAttributeOptionId($compositeKey); + $optionId = ($optionId !== null) ? $optionId : $rowKey . $optionKey; $row['name'] .= '-' . $optionId; $row['sku'] .= '_' . $optionId; diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest/test.csv deleted file mode 100644 index 36bcde341f1..00000000000 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest/test.csv +++ /dev/null @@ -1,2 +0,0 @@ -"products";"qty";"constraint" -"configurableProductInjectable::default";"3";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest/test.csv index 9e539ae2153..86da61ac30d 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest/test.csv +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest/test.csv @@ -1,5 +1,5 @@ "product/data/configurable_attributes_data/preset";"product/data/checkout_data/preset";"product/data/name";"product/data/sku";"product/data/tax_class_id";"product/data/price/value";"product/data/special_price";"product/data/category_ids/presets";"product/data/short_description";"product/data/description";"product/data/weight";"product/data/quantity_and_stock_status/is_in_stock";"product/data/affected_attribute_set";"constraint";"issue" -"two_new_options";"two_new_options";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"-";"default_subcategory";"Configurable short description";"Configurable Product description %isolation%";"2";"In Stock";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertChildProductsInGrid, assertConfigurableProductForm, assertProductInCategory, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart, assertChildProductIsNotDisplayedSeparately";"Bug: MAGETWO-28347" +"two_new_options";"two_new_options";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"-";"default_subcategory";"Configurable short description";"Configurable Product description %isolation%";"2";"In Stock";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertChildProductsInGrid, assertConfigurableProductForm, assertProductInCategory, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart, assertChildProductIsNotDisplayedSeparately";"" "two_options";"two_options";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"-";"-";"Configurable short description";"Configurable Product description %isolation%";"2";"-";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertChildProductsInGrid, assertConfigurableProductForm, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart";"" -"two_new_options";"two_new_options_with_special_price";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"10";"-";"Configurable short description";"Configurable Product description %isolation%";"2";"In Stock";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertChildProductsInGrid, assertConfigurableProductForm, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart, assertProductSpecialPriceOnProductPage";"Bug: MAGETWO-28347" +"two_new_options";"two_new_options_with_special_price";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"10";"-";"Configurable short description";"Configurable Product description %isolation%";"2";"In Stock";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertChildProductsInGrid, assertConfigurableProductForm, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart, assertProductSpecialPriceOnProductPage";"" "two_options_with_assigned_product";"two_options_with_assigned_product";"Configurable Product %isolation%";"configurable_sku_%isolation%";"-";"100";"-";"-";"Configurable short description";"Configurable Product description %isolation%";"2";"In Stock";"custom_attribute_set_%isolation%";"assertProductSaveMessage, assertProductInGrid, assertConfigurableProductForm, assertConfigurableProductPage, assertProductInStock, assertConfigurableProductInCart";"" diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableTest.php index a260c58e4c1..871319c6d01 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableTest.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableTest.php @@ -54,12 +54,12 @@ class CreateConfigurableTest extends Functional $createProductPage->getProductForm()->fill($product); $createProductPage->getFormPageActions()->save($product); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $this->assertOnGrid($product); $this->assertOnFrontend($product); @@ -75,7 +75,7 @@ class CreateConfigurableTest extends Functional { //Search data $configurableSearch = [ - 'sku' => $product->getProductSku(), + 'sku' => $product->getSku(), 'type' => 'Configurable Product' ]; $variationSkus = $product->getVariationSkus(); diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateWithAttributeTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateWithAttributeTest.php index a89e555204a..8e9e0aa3fdc 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateWithAttributeTest.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateWithAttributeTest.php @@ -166,7 +166,7 @@ class CreateWithAttributeTest extends Functional protected function assertOnGrid(Product $product) { $configurableSearch = [ - 'sku' => $product->getProductSku(), + 'sku' => $product->getSku(), 'type' => 'Configurable Product', ]; $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/EditConfigurableTest.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/EditConfigurableTest.php index a63df3a08ee..6c40208db9a 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/EditConfigurableTest.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/EditConfigurableTest.php @@ -45,7 +45,7 @@ class EditConfigurableTest extends CreateConfigurableTest $configurable = Factory::getFixtureFactory()->getMagentoConfigurableProductConfigurableProduct(); $configurable->switchData('configurable'); $configurable->persist(); - $productSku = $configurable->getProductSku(); + $productSku = $configurable->getSku(); //Preparing Data for editing product $editProduct = $configurable->getEditData(); @@ -62,7 +62,7 @@ class EditConfigurableTest extends CreateConfigurableTest $productForm->fill($editProduct); $createProductPage->getFormPageActions()->save(); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php b/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php index 272bc300d5a..ebd84bab9fb 100644 --- a/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php +++ b/dev/tests/functional/tests/app/Magento/Core/Test/Block/Messages.php @@ -69,11 +69,11 @@ class Messages extends Block protected $warningMessage = '[data-ui-id$=message-warning]'; /** - * Check for success message + * Wait for success message * * @return bool */ - public function assertSuccessMessage() + public function waitSuccessMessage() { return $this->waitForElementVisible($this->successMessage, Locator::SELECTOR_CSS); } diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/TestCase/UpdateCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Core/Test/TestCase/UpdateCustomVariableEntityTest.php index 31841881598..419b4040d6b 100644 --- a/dev/tests/functional/tests/app/Magento/Core/Test/TestCase/UpdateCustomVariableEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Core/Test/TestCase/UpdateCustomVariableEntityTest.php @@ -26,6 +26,7 @@ namespace Magento\Core\Test\TestCase; use Mtf\ObjectManager; use Mtf\TestCase\Injectable; +use Mtf\Fixture\FixtureFactory; use Magento\Store\Test\Fixture\Store; use Magento\Core\Test\Fixture\SystemVariable; use Magento\Core\Test\Page\Adminhtml\SystemVariableNew; @@ -79,11 +80,13 @@ class UpdateCustomVariableEntityTest extends Injectable /** * Prepare data * - * @param Store $storeOrigin + * @param FixtureFactory $factory * @return array */ - public function __prepare(Store $storeOrigin) + public function __prepare(FixtureFactory $factory) { + /** @var Store $storeOrigin */ + $storeOrigin = $factory->createByCode('store', ['dataSet' => 'custom']); $storeOrigin->persist(); self::$storeName = $storeOrigin->getName(); @@ -126,9 +129,7 @@ class UpdateCustomVariableEntityTest extends Injectable Store $storeOrigin, $saveAction ) { - $filter = [ - 'code' => $customVariableOrigin->getCode(), - ]; + $filter = ['code' => $customVariableOrigin->getCode()]; // Steps $this->systemVariableIndexPage->open(); diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php b/dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php new file mode 100644 index 00000000000..3885d317fb5 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Core/Test/TestStep/SetupConfigurationStep.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Core\Test\TestStep; + +use Mtf\TestStep\TestStepInterface; +use Mtf\Fixture\FixtureFactory; + +/** + * Class SetupConfigurationStep + * Setup configuration using handler + */ +class SetupConfigurationStep implements TestStepInterface +{ + /** + * Factory for Fixtures + * + * @var FixtureFactory + */ + protected $fixtureFactory; + + /** + * Configuration data + * + * @var string + */ + protected $configData; + + /** + * Preparing step properties + * + * @constructor + * @param FixtureFactory $fixtureFactory + * @param string $configData + */ + public function __construct(FixtureFactory $fixtureFactory, $configData) + { + $this->fixtureFactory = $fixtureFactory; + $this->configData = $configData; + } + + /** + * Set config + * + * @return array + */ + public function run() + { + $configData = array_map('trim', explode(',', $this->configData)); + $result = []; + + foreach ($configData as $configDataSet) { + $config = $this->fixtureFactory->createByCode('configData', ['dataSet' => $configDataSet]); + $config->persist(); + + $result[] = $config; + } + + return ['config' => $result]; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php index 9bee1e823f4..2fa402172fe 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/Tab/Addresses.php @@ -33,7 +33,6 @@ use Magento\Backend\Test\Block\Widget\Tab; /** * Class Addresses * Customer addresses edit block - * */ class Addresses extends Tab { @@ -90,6 +89,9 @@ class Addresses extends Tab * @param FixtureInterface|FixtureInterface[] $address * @return $this * @throws \Exception + * + * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function updateAddresses($address) { @@ -112,7 +114,16 @@ class Addresses extends Tab $this->_fill($this->dataMapping(['country_id' => $countryId])); $this->waitForElementNotVisible($this->loader, Locator::SELECTOR_XPATH); } - $this->fillFormTab($address->getData(), $this->_rootElement); + $defaultAddress = ['default_billing' => 'No', 'default_shipping' => 'No']; + $addressData = $address->getData(); + foreach ($defaultAddress as $key => $value) { + if (isset($addressData[$key])) { + $defaultAddress[$key] = $value; + } + } + $this->_fill($this->dataMapping($defaultAddress)); + + $this->fillFormTab(array_diff($addressData, $defaultAddress), $this->_rootElement); } return $this; @@ -155,6 +166,8 @@ class Addresses extends Tab * @param array|null $fields * @param Element|null $element * @return array + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function getDataFormTab($fields = null, Element $element = null) { diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/BackendCustomerCreateTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/BackendCustomerCreateTest.php index ba03767a5bd..b8964119048 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/BackendCustomerCreateTest.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/BackendCustomerCreateTest.php @@ -59,7 +59,7 @@ class BackendCustomerCreateTest extends Functional $customerPage->getPageActionsBlock()->addNew(); $customerCreatePage->getCustomerForm()->fillCustomer($customerFixture); $customerCreatePage->getPageActionsBlock()->saveAndContinue(); - $customerCreatePage->getMessagesBlock()->assertSuccessMessage(); + $customerCreatePage->getMessagesBlock()->waitSuccessMessage(); //Verifying $customerPage->open(); diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php similarity index 57% rename from dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest.php rename to dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php index 5c48aa0bae3..2ad161a7fe3 100644 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest.php +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php @@ -18,34 +18,37 @@ * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magentocommerce.com for more information. * + * @spi * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\GroupedProduct\Test\TestCase; +namespace Magento\Downloadable\Test\Block\Customer\Products; -use Magento\Wishlist\Test\TestCase\AddProductsToCartFromCustomerWishlistOnFrontendTest as AddProductsToCartFromWishlist; +use Mtf\Block\Block; +use Mtf\Client\Element\Locator; /** - * Test Creation for Adding Grouped product from Wishlist to Cart - * - * Test Flow: - * - * Preconditions: - * 1. Create customer and login to frontend - * 2. Grouped product is created - * 3. Add grouped product to customer's wishlist - * - * Steps: - * 1. Navigate to My Account -> My Wishlist - * 2. Fill qty and update wish list - * 3. Click "Add to Cart" - * 4. Perform asserts - * - * @group Wishlist_(CS) - * @ZephyrId MAGETWO-25268 + * Class ListProducts + * Downloadable Products block */ -class AddGroupedProductToCartFromCustomerWishlistOnFrontendTest extends AddProductsToCartFromWishlist +class ListProducts extends Block { - // + /** + * Link selector + * + * @var string + */ + protected $link = '//a[contains(text(), "%s")]'; + + /** + * Open Link by title + * + * @param string $linkTitle + * @return void + */ + public function openLink($linkTitle) + { + $this->_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH)->click(); + } } diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.php index d137958d3de..b6f0fc765cc 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.php +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.php @@ -24,12 +24,7 @@ namespace Magento\Downloadable\Test\Fixture; -use Mtf\System\Config; -use Mtf\Handler\HandlerFactory; -use Mtf\Fixture\FixtureFactory; use Mtf\Fixture\InjectableFixture; -use Mtf\Repository\RepositoryFactory; -use Mtf\System\Event\EventManagerInterface; /** * Class DownloadableProductInjectable @@ -52,44 +47,6 @@ class DownloadableProductInjectable extends InjectableFixture protected $handlerInterface = 'Magento\Downloadable\Test\Handler\DownloadableProductInjectable\DownloadableProductInjectableInterface'; // @codingStandardsIgnoreEnd - /** - * Constructor - * - * @constructor - * @param Config $configuration - * @param RepositoryFactory $repositoryFactory - * @param FixtureFactory $fixtureFactory - * @param HandlerFactory $handlerFactory - * @param EventManagerInterface $eventManager - * @param array $data - * @param string $dataSet - * @param bool $persist - */ - public function __construct( - Config $configuration, - RepositoryFactory $repositoryFactory, - FixtureFactory $fixtureFactory, - HandlerFactory $handlerFactory, - EventManagerInterface $eventManager, - array $data = [], - $dataSet = '', - $persist = false - ) { - if (!isset($data['url_key']) && isset($data['name'])) { - $data['url_key'] = trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $data['name'])), '-'); - } - parent::__construct( - $configuration, - $repositoryFactory, - $fixtureFactory, - $handlerFactory, - $eventManager, - $data, - $dataSet, - $persist - ); - } - protected $dataConfig = [ 'type_id' => 'downloadable', 'create_url_params' => [ @@ -102,6 +59,7 @@ class DownloadableProductInjectable extends InjectableFixture protected $defaultDataSet = [ 'name' => 'DownloadableProduct_%isolation%', 'sku' => 'DownloadableProduct_%isolation%', + 'url_key' => 'downloadableproduct_%isolation%', 'price' => ['value' => 100.00], 'tax_class_id' => ['dataSet' => 'Taxable Goods'], 'description' => 'This is description for downloadable product', @@ -585,7 +543,7 @@ class DownloadableProductInjectable extends InjectableFixture 'is_required' => '0', 'default_value' => '', 'input' => 'text', - 'group' => 'autosettings' + 'group' => 'search-engine-optimization' ]; protected $url_path = [ diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.xml index f95a61f5379..87f68c2c92c 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.xml +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable.xml @@ -400,6 +400,7 @@ <is_required>0</is_required> <default_value></default_value> <input>text</input> + <group>search-engine-optimization</group> </url_key> <url_path> <attribute_code>url_path</attribute_code> diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable/Links.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable/Links.php index 39a0a9d5930..a97fe0769d8 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable/Links.php +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Fixture/DownloadableProductInjectable/Links.php @@ -128,10 +128,10 @@ class Links implements FixtureInterface 'number_of_downloads' => 3, 'sample' => [ 'sample_type_url' => 'Yes', - 'sample_url' => 'http://example3.com' + 'sample_url' => 'http://example.net' ], 'file_type_url' => 'Yes', - 'file_link_url' => 'http://example3.com', + 'file_link_url' => 'http://example.net', 'is_shareable' => 'Yes', 'sort_order' => 0 ], @@ -163,10 +163,10 @@ class Links implements FixtureInterface 'is_shareable' => 'Yes', 'sample' => [ 'sample_type_url' => 'Yes', - 'sample_url' => 'http://example.com/sample2' + 'sample_url' => 'http://example.net/sample2' ], 'file_type_url' => 'Yes', - 'file_link_url' => 'http://example2.com', + 'file_link_url' => 'http://example.net/', 'sort_order' => 1 ], ] @@ -196,10 +196,10 @@ class Links implements FixtureInterface 'number_of_downloads' => 3, 'sample' => [ 'sample_type_url' => 'Yes', - 'sample_url' => 'http://example3.com' + 'sample_url' => 'http://example.net' ], 'file_type_url' => 'Yes', - 'file_link_url' => 'http://example3.com', + 'file_link_url' => 'http://example.net', 'is_shareable' => 'Yes', 'sort_order' => 1 ], @@ -209,10 +209,10 @@ class Links implements FixtureInterface 'number_of_downloads' => 5, 'sample' => [ 'sample_type_url' => 'Yes', - 'sample_url' => 'http://example3.com' + 'sample_url' => 'http://example.net' ], 'file_type_url' => 'Yes', - 'file_link_url' => 'http://example3.com', + 'file_link_url' => 'http://example.net', 'is_shareable' => 'Yes', 'sort_order' => 2 ] diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProductInjectable/Curl.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProductInjectable/Curl.php index d71ff09faf3..e5eeda69707 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProductInjectable/Curl.php +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Handler/DownloadableProductInjectable/Curl.php @@ -26,6 +26,9 @@ namespace Magento\Downloadable\Test\Handler\DownloadableProductInjectable; use Mtf\System\Config; use Mtf\Fixture\FixtureInterface; +use Mtf\Util\Protocol\CurlInterface; +use Mtf\Util\Protocol\CurlTransport; +use Mtf\Util\Protocol\CurlTransport\BackendDecorator; use Magento\Catalog\Test\Handler\CatalogProductSimple\Curl as ProductCurl; /** @@ -104,4 +107,33 @@ class Curl extends ProductCurl implements DownloadableProductInjectableInterface return $this->replaceMappingData($data); } + + /** + * Create product via curl + * + * @param array $data + * @param array $config + * @return array + * @throws \Exception + */ + protected function createProduct(array $data, array $config) + { + $url = $this->getUrl($config); + $curl = new BackendDecorator(new CurlTransport(), new Config()); + $curl->addOption(CURLOPT_HEADER, 1); + $curl->write(CurlInterface::POST, $url, '1.0', [], $data); + $response = $curl->read(); + $curl->close(); + + if (!strpos($response, 'data-ui-id="messages-message-success"')) { + throw new \Exception("Product creation by curl handler was not successful! Response: $response"); + } + preg_match("~Location: [^\s]*\/id\/(\d+)~", $response, $matches); + foreach ($data['downloadable']['link'] as $key => $link) { + preg_match('`"link_id":"(\d*?)","title":"' . $link['title'] . '"`', $response, $linkId); + $data['product']['checkout_data']['options']['links'][$key]['id'] = $linkId[1]; + } + + return ['id' => $matches[1], 'checkout_data' => $data['product']['checkout_data']]; + } } diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml new file mode 100644 index 00000000000..d278e5a14e2 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Page/DownloadableCustomerProducts.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" ?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page mca="downloadable/customer/products" module="Magento_Downloadable"> + <blocks> + <mainBlock> + <class>Magento\Downloadable\Test\Block\Customer\Products\ListProducts</class> + <locator>.column.main</locator> + <strategy>css selector</strategy> + </mainBlock> + </blocks> +</page> diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest/test.csv deleted file mode 100644 index 1f973a746f8..00000000000 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest/test.csv +++ /dev/null @@ -1,2 +0,0 @@ -"products";"qty";"constraint" -"downloadableProductInjectable::with_two_separately_links";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/Create/LinksPurchasedSeparatelyTest.php b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/Create/LinksPurchasedSeparatelyTest.php index bbc5127ffd8..64735e875bb 100755 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/Create/LinksPurchasedSeparatelyTest.php +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/Create/LinksPurchasedSeparatelyTest.php @@ -67,12 +67,12 @@ class LinksPurchasedSeparatelyTest extends Functional $productBlockForm->fill($this->product, null, $category); $createProductPageNew->getFormPageActions()->save(); - $createProductPageNew->getMessagesBlock()->assertSuccessMessage(); + $createProductPageNew->getMessagesBlock()->waitSuccessMessage(); $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushMagentoCache(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); $this->assertOnBackend(); $this->assertOnFrontend(); @@ -88,7 +88,7 @@ class LinksPurchasedSeparatelyTest extends Functional $productGridPage = Factory::getPageFactory()->getCatalogProductIndex(); $productGridPage->open(); $gridBlock = $productGridPage->getProductGrid(); - $this->assertTrue($gridBlock->isRowVisible(array('sku' => $this->product->getProductSku()))); + $this->assertTrue($gridBlock->isRowVisible(['sku' => $this->product->getSku()])); } /** diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest/testCreateDownloadableProduct.csv b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest/testCreateDownloadableProduct.csv index 9e6d75508a7..b679a776ea2 100755 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest/testCreateDownloadableProduct.csv +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest/testCreateDownloadableProduct.csv @@ -1,15 +1,15 @@ -"product/data/name";"product/data/sku";"product/data/price/value";"product/data/tax_class_id/dataSet";"product/data/quantity_and_stock_status/qty";"product/data/quantity_and_stock_status/is_in_stock";"product/data/is_virtual";"product/data/category";"product/data/description";"product/data/short_description";"product/data/stock_data/manage_stock";"product/data/stock_data/qty";"product/data/stock_data/use_config_min_qty";"product/data/stock_data/min_qty";"product/data/downloadable_sample/preset";"product/data/downloadable_links/preset";"product/data/custom_options/preset";"product/data/custom_options/import_products";"product/data/special_price";"product/data/group_price/preset";"product/data/tier_price/preset";"constraint" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"1";"In Stock";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage, assertProductInStock" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"1";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"default";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertDownloadableSamplesData, assertDownloadableLinksData" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"33";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"default";"default";"-";"-";"-";"-";"assertProductSaveMessage, assertDownloadableProductForm, assertProductCustomOptionsOnProductPage, assertProductVisibleInCategory, assertProductPage, assertDownloadableLinksData" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"55";"Taxable Goods";"10";"In Stock";"Yes";"-";"-";"-";"-";"-";"-";"-";"with_three_samples";"with_three_links";"two_options";"-";"-";"-";"-";"assertProductSaveMessage, assertProductCustomOptionsOnProductPage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage, assertDownloadableLinksData, assertProductInStock, assertProductSearchableBySku" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"50";"Out of Stock";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertProductOutOfStock, assertProductInGrid, assertDownloadableProductForm" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"9999";"Taxable Goods";"-";"-";"Yes";"Default Category";"-";"-";"Yes";"123";"No";"123";"-";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductOutOfStock" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"98";"None";"5";"In Stock";"Yes";"Default Category";"This is description for downloadable product";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"57";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"65";"Taxable Goods";"11";"In Stock";"Yes";"category %isolation%";"This is description for downloadable product";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"-";"-";"-";"assertProductSaveMessage, assertProductPage, assertProductInGrid, assertDownloadableProductForm, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"65";"Taxable Goods";"11";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"-";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertDownloadableLinksData, assertProductCustomOptionsOnProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"-";"-";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"assertProductSaveMessage, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"10";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"5";"-";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductSpecialPriceOnProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"365";"Taxable Goods";"23";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"default";"-";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductGroupedPriceOnProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"250";"Taxable Goods";"65";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"default";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductTierPriceOnProductPage" +"product/data/name";"product/data/sku";"product/data/price/value";"product/data/tax_class_id/dataSet";"product/data/quantity_and_stock_status/qty";"product/data/quantity_and_stock_status/is_in_stock";"product/data/is_virtual";"product/data/category";"product/data/description";"product/data/short_description";"product/data/stock_data/manage_stock";"product/data/stock_data/qty";"product/data/stock_data/use_config_min_qty";"product/data/stock_data/min_qty";"product/data/downloadable_sample/preset";"product/data/downloadable_links/preset";"product/data/custom_options/preset";"product/data/custom_options/import_products";"product/data/special_price";"product/data/group_price/preset";"product/data/tier_price/preset";"product/data/url_key";"constraint" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"1";"In Stock";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage, assertProductInStock" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"1";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"default";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertDownloadableSamplesData, assertDownloadableLinksData" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"33";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"default";"default";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertDownloadableProductForm, assertProductCustomOptionsOnProductPage, assertProductVisibleInCategory, assertProductPage, assertDownloadableLinksData" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"55";"Taxable Goods";"10";"In Stock";"Yes";"-";"-";"-";"-";"-";"-";"-";"with_three_samples";"with_three_links";"two_options";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductCustomOptionsOnProductPage, assertProductInGrid, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage, assertDownloadableLinksData, assertProductInStock, assertProductSearchableBySku" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"50";"Out of Stock";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductOutOfStock, assertProductInGrid, assertDownloadableProductForm" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"9999";"Taxable Goods";"-";"-";"Yes";"Default Category";"-";"-";"Yes";"123";"No";"123";"-";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductOutOfStock" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"98";"None";"5";"In Stock";"Yes";"Default Category";"This is description for downloadable product";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"57";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"catalogProductSimple::with_two_custom_option,catalogProductSimple::with_all_custom_option";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"65";"Taxable Goods";"11";"In Stock";"Yes";"category %isolation%";"This is description for downloadable product";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductPage, assertProductInGrid, assertDownloadableProductForm, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"65";"Taxable Goods";"11";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertDownloadableLinksData, assertProductCustomOptionsOnProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"-";"-";"Yes";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"-";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertDownloadableProductForm, assertProductVisibleInCategory, assertProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"10";"Taxable Goods";"10";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"5";"-";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductSpecialPriceOnProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"365";"Taxable Goods";"23";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"default";"-";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductGroupedPriceOnProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"250";"Taxable Goods";"65";"In Stock";"Yes";"category %isolation%";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"default";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductTierPriceOnProductPage" diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest/testUpdateDownloadableProduct.csv b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest/testUpdateDownloadableProduct.csv index 6d2e795540d..be96bcd0189 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest/testUpdateDownloadableProduct.csv +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest/testUpdateDownloadableProduct.csv @@ -1,8 +1,8 @@ -"product/data/name";"product/data/sku";"product/data/price/value";"product/data/tax_class_id/dataSet";"product/data/quantity_and_stock_status/qty";"product/data/quantity_and_stock_status/is_in_stock";"product/data/is_virtual";"product/data/weight";"product/data/category";"product/data/description";"product/data/short_description";"product/data/inventory_manage_stock";"product/data/inventory_qty";"product/data/stock_data_use_config_min_qty";"product/data/stock_data_min_qty";"product/data/downloadable_sample/preset";"product/data/downloadable_links/preset";"product/data/custom_options/preset";"product/data/special_price";"isRequired";"constraint" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"55";"Taxable Goods";"10";"In Stock";"Yes";"-";"-";"-";"-";"-";"-";"-";"-";"with_three_samples";"with_three_links";"two_options";"-";"No";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertDownloadableLinksData, assertProductInStock, assertProductCustomOptionsOnProductPage, assertProductSearchableBySku" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"50";"Out of Stock";"Yes";"-";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"No";"assertProductSaveMessage, assertProductOutOfStock, assertProductInGrid, assertDownloadableProductForm" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"9999";"Taxable Goods";"123";"-";"Yes";"-";"Default Category";"-";"-";"Yes";"-";"No";"123";"-";"-";"-";"-";"No";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductOutOfStock" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"48";"None";"5";"In Stock";"Yes";"-";"Default Category";"This is description for downloadable product";"-";"-";"-";"-";"-";"-";"default";"-";"-";"No";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"54";"Taxable Goods";"10";"In Stock";"Yes";"-";"category %isolation%";"-";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"Yes";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData, assertProductInCategory" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"57";"Taxable Goods";"10";"In Stock";"No";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"No";"assertProductSaveMessage, assertProductInGrid" -"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"43";"Taxable Goods";"10";"In Stock";"No";"10";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"40";"No";"assertProductSaveMessage, assertProductInGrid, assertProductSpecialPriceOnProductPage, assertProductPage" +"product/data/name";"product/data/sku";"product/data/price/value";"product/data/tax_class_id/dataSet";"product/data/quantity_and_stock_status/qty";"product/data/quantity_and_stock_status/is_in_stock";"product/data/is_virtual";"product/data/weight";"product/data/category";"product/data/description";"product/data/short_description";"product/data/inventory_manage_stock";"product/data/inventory_qty";"product/data/stock_data_use_config_min_qty";"product/data/stock_data_min_qty";"product/data/downloadable_sample/preset";"product/data/downloadable_links/preset";"product/data/custom_options/preset";"product/data/special_price";"isRequired";"product/data/url_key";"constraint" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"55";"Taxable Goods";"10";"In Stock";"Yes";"-";"-";"-";"-";"-";"-";"-";"-";"with_three_samples";"with_three_links";"two_options";"-";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertDownloadableLinksData, assertProductInStock, assertProductCustomOptionsOnProductPage, assertProductSearchableBySku" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"100";"Taxable Goods";"50";"Out of Stock";"Yes";"-";"Default Category";"-";"-";"-";"-";"-";"-";"-";"default";"-";"-";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductOutOfStock, assertProductInGrid, assertDownloadableProductForm" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"9999";"Taxable Goods";"123";"-";"Yes";"-";"Default Category";"-";"-";"Yes";"-";"No";"123";"-";"-";"-";"-";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductOutOfStock" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"48";"None";"5";"In Stock";"Yes";"-";"Default Category";"This is description for downloadable product";"-";"-";"-";"-";"-";"-";"default";"-";"-";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"54";"Taxable Goods";"10";"In Stock";"Yes";"-";"category %isolation%";"-";"This is short description for downloadable product";"-";"-";"-";"-";"default";"with_three_links";"default";"-";"Yes";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertDownloadableProductForm, assertProductPage, assertProductCustomOptionsOnProductPage, assertDownloadableSamplesData, assertDownloadableLinksData, assertProductInCategory" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"57";"Taxable Goods";"10";"In Stock";"No";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid" +"DownloadableProduct_%isolation%";"DownloadableProduct_%isolation%";"43";"Taxable Goods";"10";"In Stock";"No";"10";"-";"-";"-";"-";"-";"-";"-";"-";"-";"-";"40";"No";"downloadableproduct-%isolation%";"assertProductSaveMessage, assertProductInGrid, assertProductSpecialPriceOnProductPage, assertProductPage" \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/page.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/page.xml new file mode 100644 index 00000000000..97ba75d1cf6 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/etc/page.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" ?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page module="Magento_Downloadable"> + <downloadableCustomerProducts> + <mca>downloadable/customer/products</mca> + <class>Magento\Downloadable\Test\Page\DownloadableCustomerProducts</class> + </downloadableCustomerProducts> +</page> diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest/test.csv deleted file mode 100644 index 304ff5bc9fe..00000000000 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/AddGroupedProductToCartFromCustomerWishlistOnFrontendTest/test.csv +++ /dev/null @@ -1,2 +0,0 @@ -"products";"qty";"constraint" -"groupedProductInjectable::three_simple_products";"-";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedTest.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedTest.php index b5f3d5542d1..3ba4035e448 100644 --- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedTest.php +++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/TestCase/CreateGroupedTest.php @@ -66,7 +66,7 @@ class CreateGroupedTest extends Functional $productForm->fill($product); $createProductPage->getFormPageActions()->save(); //Verifying - $createProductPage->getMessagesBlock()->assertSuccessMessage(); + $createProductPage->getMessagesBlock()->waitSuccessMessage(); //Flush cache $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); @@ -86,7 +86,7 @@ class CreateGroupedTest extends Functional { //Search data $search = [ - 'sku' => $product->getProductSku(), + 'sku' => $product->getSku(), 'type' => 'Grouped Product' ]; //Page & Block diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php new file mode 100644 index 00000000000..6193071c506 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Product/Downloads/Grid.php @@ -0,0 +1,49 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\Block\Adminhtml\Product\Downloads; + +/** + * Class Grid + * Downloads Report grid + */ +class Grid extends \Magento\Backend\Test\Block\Widget\Grid +{ + /** + * Filters array mapping + * + * @var array + */ + protected $filters = [ + 'name' => [ + 'selector' => 'input[name="name"]', + ], + 'link_title' => [ + 'selector' => 'input[name="link_title"]', + ], + 'sku' => [ + 'selector' => 'input[name="sku"]', + ], + ]; +} diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Action.php similarity index 56% rename from dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest.php rename to dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Action.php index 65e4c5d94ea..5da3247ebd4 100644 --- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Action.php @@ -22,30 +22,30 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Downloadable\Test\TestCase; +namespace Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule; -use Magento\Wishlist\Test\TestCase\AddProductsToCartFromCustomerWishlistOnFrontendTest as AddProductsToCartFromWishlist; +use Magento\Backend\Test\Block\PageActions; /** - * Test Creation for Adding Downloadable product from Wishlist to Cart - * - * Test Flow: - * - * Preconditions: - * 1. Create customer and login to frontend - * 2. Downloadable product is created - * 3. Add downloadable product to customer's wishlist - * - * Steps: - * 1. Navigate to My Account -> My Wishlist - * 2. Fill qty and update wish list - * 3. Click "Add to Cart" - * 4. Perform asserts - * - * @group Wishlist_(CS) - * @ZephyrId MAGETWO-25268 + * Class Action + * Action block for Tax Report */ -class AddDownloadableProductToCartFromCustomerWishlistOnFrontendTest extends AddProductsToCartFromWishlist +class Action extends PageActions { - // + /** + * Show Report button + * + * @var string + */ + protected $showReportButton = '#filter_form_submit'; + + /** + * Show report button click + * + * @return void + */ + public function showReport() + { + $this->_rootElement->find($this->showReportButton)->click(); + } } diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php similarity index 56% rename from dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest.php rename to dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php index 74578baac70..8d625f98d43 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.php @@ -22,30 +22,25 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\ConfigurableProduct\Test\TestCase; +namespace Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule; -use Magento\Wishlist\Test\TestCase\AddProductsToCartFromCustomerWishlistOnFrontendTest as AddProductsToCartFromWishlist; +use Mtf\ObjectManager; +use Magento\Reports\Test\Block\Adminhtml\AbstractFilter; /** - * Test Creation for Adding Configurable product from Wishlist to Cart - * - * Test Flow: - * - * Preconditions: - * 1. Create customer and login to frontend - * 2. Configurable product is created - * 3. Add configurable product to customer's wishlist - * - * Steps: - * 1. Navigate to My Account -> My Wishlist - * 2. Fill qty and update wish list - * 3. Click "Add to Cart" - * 4. Perform asserts - * - * @group Wishlist_(CS) - * @ZephyrId MAGETWO-25268 + * Class Filter + * Filter for Tax Rule Views Report */ -class AddConfigurableProductToCartFromCustomerWishlistOnFrontendTest extends AddProductsToCartFromWishlist +class Filter extends AbstractFilter { - // + /** + * Prepare data + * + * @param array $viewsReport + * @return array + */ + protected function prepareData(array $viewsReport) + { + return parent::prepareData(array_diff($viewsReport, ['-'])); + } } diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.xml new file mode 100644 index 00000000000..9f253494084 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Filter.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" ?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<mapping strict="0"> + <fields> + <report_type> + <input>select</input> + </report_type> + <period_type> + <input>select</input> + </period_type> + <from> + <input>datepicker</input> + </from> + <to> + <input>datepicker</input> + </to> + <show_order_statuses> + <input>select</input> + </show_order_statuses> + <order_statuses> + <selector>[name="order_statuses[]"]</selector> + <input>multiselect</input> + </order_statuses> + <show_empty_rows> + <input>select</input> + </show_empty_rows> + </fields> +</mapping> diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php similarity index 57% rename from dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest.php rename to dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php index 9ad154674ea..0feb2da8cb3 100644 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/AddBundleProductToCartFromCustomerWishlistOnFrontendTest.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Block/Adminhtml/Sales/TaxRule/Grid.php @@ -22,30 +22,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ -namespace Magento\Bundle\Test\TestCase; - -use Magento\Wishlist\Test\TestCase\AddProductsToCartFromCustomerWishlistOnFrontendTest as AddProductsToCartFromWishlist; +namespace Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule; /** - * Test Creation for Adding Bundle product from Wishlist to Cart - * - * Test Flow: - * - * Preconditions: - * 1. Create customer and login to frontend - * 2. Bundle product is created - * 3. Add bundle product to customer's wishlist - * - * Steps: - * 1. Navigate to My Account -> My Wishlist - * 2. Fill qty and update wish list - * 3. Click "Add to Cart" - * 4. Perform asserts - * - * @group Wishlist_(CS) - * @ZephyrId MAGETWO-25268 + * Class Grid + * Tax report grid */ -class AddBundleProductToCartFromCustomerWishlistOnFrontendTest extends AddProductsToCartFromWishlist +class Grid extends \Magento\Backend\Test\Block\Widget\Grid { // } diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php index 4be59b9b379..1bda5bb5e91 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertBestsellerReportResult.php @@ -59,7 +59,7 @@ class AssertBestsellerReportResult extends AbstractConstraint $productQty = []; foreach ($products as $key => $product) { /** @var CatalogProductSimple $product*/ - $productQty[$key] = $product->getCheckoutData()['qty']; + $productQty[$key] = $product->getCheckoutData()['options']['qty']; } \PHPUnit_Framework_Assert::assertEquals($productQty, $totalQuantity); } diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php new file mode 100644 index 00000000000..03d10894e4c --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertDownloadsReportResult.php @@ -0,0 +1,81 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\Constraint; + +use Magento\Reports\Test\Page\Adminhtml\DownloadsReport; +use Magento\Sales\Test\Fixture\OrderInjectable; +use Mtf\Constraint\AbstractConstraint; + +/** + * Class AssertDownloadsReportResult + * Assert downloads product info in report grid + */ +class AssertDownloadsReportResult extends AbstractConstraint +{ + /** + * Constraint severeness + * + * @var string + */ + protected $severeness = 'low'; + + /** + * Assert product info in report: product name, link title, sku, downloads number (Reports > Products > Downloads) + * + * @param OrderInjectable $order + * @param DownloadsReport $downloadsReport + * @param int $downloads + * @return void + */ + public function processAssert(OrderInjectable $order, DownloadsReport $downloadsReport, $downloads) + { + $downloadsReport->open(); + foreach ($order->getEntityId()['products'] as $product) { + foreach ($product->getDownloadableLinks()['downloadable']['link'] as $link) { + $filter = [ + 'name' => $product->getName(), + 'link_title' => $link['title'], + 'sku' => $product->getSku(), + ]; + $downloadsReport->getGridBlock()->search($filter); + $filter[] = $downloads; + \PHPUnit_Framework_Assert::assertTrue( + $downloadsReport->getGridBlock()->isRowVisible($filter, false), + "Downloads report link {$link['title']} is not present in reports grid." + ); + } + } + } + + /** + * Returns a string representation of the object + * + * @return string + */ + public function toString() + { + return 'Downloads report is present in reports grid.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php index 15d7e847046..3e828e7a00d 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertNewAccountsReportTotalResult.php @@ -50,7 +50,7 @@ class AssertNewAccountsReportTotalResult extends AbstractConstraint public function processAssert(CustomerAccounts $customerAccounts, $total) { $totalForm = $customerAccounts->getGridBlock()->getTotalResults(); - \PHPUnit_Framework_Assert::assertEquals($totalForm, $total); + \PHPUnit_Framework_Assert::assertEquals($total, $totalForm); } /** diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php index 5fb436aa0ab..e19cf575183 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertOrderedProductResult.php @@ -60,7 +60,7 @@ class AssertOrderedProductResult extends AbstractConstraint foreach ($totalQuantity as $key => $value) { /** @var CatalogProductSimple $product */ $product = $products[$key]; - $productQty[$key] = $product->getCheckoutData()['qty']; + $productQty[$key] = $product->getCheckoutData()['options']['qty']; } \PHPUnit_Framework_Assert::assertEquals($totalQuantity, $productQty); } diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php index a042e2db021..64ee9a5e950 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReportByCustomerInGrid.php @@ -66,7 +66,7 @@ class AssertProductReportByCustomerInGrid extends AbstractConstraint CatalogProductSimple $product = null, $gridStatus = '' ) { - $filter = $assertProductReviewInGrid->prepareFilter($product, $review, $gridStatus); + $filter = $assertProductReviewInGrid->prepareFilter($product, $review->getData(), $gridStatus); $customerReportReview->open(); $customerReportReview->getGridBlock()->openReview($customer); diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php index 848d5b62176..0faf7574e77 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertProductReviewIsAvailableForProduct.php @@ -62,7 +62,7 @@ class AssertProductReviewIsAvailableForProduct extends AbstractConstraint $product = $review->getDataFieldConfig('entity_id')['source']->getEntity(); $productReportReview->getGridBlock()->openReview($product->getName()); unset($assertProductReviewInGrid->filter['visible_in']); - $filter = $assertProductReviewInGrid->prepareFilter($product, $review, ''); + $filter = $assertProductReviewInGrid->prepareFilter($product, $review->getData(), ''); \PHPUnit_Framework_Assert::assertTrue( $reviewIndex->getReviewGrid()->isRowVisible($filter, false), 'Review for ' . $product->getName() . ' product is not visible in reports grid.' diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php new file mode 100644 index 00000000000..f262bc597cf --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportInGrid.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\Constraint; + +use Magento\Reports\Test\Page\Adminhtml\SalesTaxReport; +use Magento\Sales\Test\Fixture\OrderInjectable; +use Magento\Tax\Test\Fixture\TaxRule; +use Mtf\Constraint\AbstractConstraint; + +/** + * Class AssertTaxReportInGrid + * Check that sales info in report: Tax, Rate, Orders, Tax Amount on tax report page + */ +class AssertTaxReportInGrid extends AbstractConstraint +{ + /** + * Constraint severeness + * + * @var string + */ + protected $severeness = 'low'; + + /** + * Assert sales info in report: Tax, Rate, Orders, Tax Amount on tax report page + * + * @param SalesTaxReport $salesTaxReport + * @param OrderInjectable $order + * @param TaxRule $taxRule + * @param string $taxAmount + * @return void + */ + public function processAssert( + SalesTaxReport $salesTaxReport, + OrderInjectable $order, + TaxRule $taxRule, + $taxAmount + ) { + $filter = [ + 'tax' => $taxRule->getTaxRate()[0], + 'rate' => $taxRule->getDataFieldConfig('tax_rate')['source']->getFixture()[0]->getRate(), + 'orders' => count($order->getEntityId()['products']), + 'tax_amount' => $taxAmount + ]; + + \PHPUnit_Framework_Assert::assertTrue( + $salesTaxReport->getGridBlock()->isRowVisible($filter, false), + "Tax Report is not visible in grid on tax report page." + ); + } + + /** + * Returns a string representation of the object + * + * @return string + */ + public function toString() + { + return "Sales info in report: Tax, Rate, Orders, Tax Amount is correct in grid on tax report page."; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php new file mode 100644 index 00000000000..4bea099f5e4 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertTaxReportNotInGrid.php @@ -0,0 +1,82 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\Constraint; + +use Magento\Reports\Test\Page\Adminhtml\SalesTaxReport; +use Magento\Sales\Test\Fixture\OrderInjectable; +use Magento\Tax\Test\Fixture\TaxRule; +use Mtf\Constraint\AbstractConstraint; + +/** + * Class AssertTaxReportNotInGrid + * Check that Tax report is absent on tax report page + */ +class AssertTaxReportNotInGrid extends AbstractConstraint +{ + /** + * Constraint severeness + * + * @var string + */ + protected $severeness = 'low'; + + /** + * Assert Tax report is absent on tax report page + * + * @param SalesTaxReport $salesTaxReport + * @param OrderInjectable $order + * @param TaxRule $taxRule + * @param string $taxAmount + * @return void + */ + public function processAssert( + SalesTaxReport $salesTaxReport, + OrderInjectable $order, + TaxRule $taxRule, + $taxAmount + ) { + $filter = [ + 'tax' => $taxRule->getTaxRate()[0], + 'rate' => $taxRule->getDataFieldConfig('tax_rate')['source']->getFixture()[0]->getRate(), + 'orders' => count($order->getEntityId()['products']), + 'tax_amount' => $taxAmount + ]; + + \PHPUnit_Framework_Assert::assertFalse( + $salesTaxReport->getGridBlock()->isRowVisible($filter, false), + "Tax Report is visible in grid on tax report page." + ); + } + + /** + * Returns a string representation of the object + * + * @return string + */ + public function toString() + { + return "Sales info in report: Tax, Rate, Orders, Tax Amount is incorrect in grid on tax report page."; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml new file mode 100644 index 00000000000..caa658511df --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/DownloadsReport.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" ?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page mca="reports/report_product/downloads" module="Magento_Reports"> + <blocks> + <gridBlock> + <class>Magento\Reports\Test\Block\Adminhtml\Product\Downloads\Grid</class> + <locator>#downloadsGrid</locator> + <strategy>css selector</strategy> + </gridBlock> + </blocks> +</page> diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml new file mode 100644 index 00000000000..26ee97fc9e2 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesTaxReport.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" ?> +<!-- +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE_AFL.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + */ +--> +<page mca="reports/report_sales/tax" module="Magento_Reports"> + <blocks> + <filterBlock> + <class>Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule\Filter</class> + <locator>#filter_form</locator> + <strategy>css selector</strategy> + </filterBlock> + <actionBlock> + <class>Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule\Action</class> + <locator>.page-main-actions</locator> + <strategy>css selector</strategy> + </actionBlock> + <gridBlock> + <class>Magento\Reports\Test\Block\Adminhtml\Sales\TaxRule\Grid</class> + <locator>.grid</locator> + <strategy>css selector</strategy> + </gridBlock> + </blocks> +</page> diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php new file mode 100644 index 00000000000..07d00943142 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest.php @@ -0,0 +1,89 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\TestCase; + +use Mtf\TestCase\Injectable; +use Magento\Sales\Test\Fixture\OrderInjectable; +use Magento\Reports\Test\Page\Adminhtml\Bestsellers; + +/** + * Test Creation for BestsellerProductsReportEntity + * + * Test Flow: + * Preconditions: + * 1. Create customer + * 2. Create product + * 3. Place order + * 4. Refresh statistic + * + * Steps: + * 1. Open Backend + * 2. Go to Reports > Products > Bestsellers + * 3. Select time range, report period + * 4. Click "Show report" + * 5. Perform all assertions + * + * @group Reports_(MX) + * @ZephyrId MAGETWO-28222 + */ +class BestsellerProductsReportEntityTest extends Injectable +{ + /** + * Bestsellers page + * + * @var Bestsellers + */ + protected $bestsellers; + + /** + * Inject pages + * + * @param Bestsellers $bestsellers + * @return void + */ + public function __inject(Bestsellers $bestsellers) + { + $this->bestsellers = $bestsellers; + } + + /** + * Bestseller Products Report + * + * @param OrderInjectable $order + * @param array $bestsellerReport + * @return void + */ + public function test(OrderInjectable $order, array $bestsellerReport) + { + // Preconditions + $order->persist(); + $this->bestsellers->open(); + $this->bestsellers->getMessagesBlock()->clickLinkInMessages('notice', 'here'); + + // Steps + $this->bestsellers->getFilterBlock()->viewsReport($bestsellerReport); + $this->bestsellers->getActionsBlock()->showReport(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest/test.csv new file mode 100644 index 00000000000..78dc2381483 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/BestsellerProductsReportEntityTest/test.csv @@ -0,0 +1,4 @@ +"order/dataSet";"bestsellerReport/period_type";"bestsellerReport/from";"bestsellerReport/to";"bestsellerReport/show_empty_rows";"date";"constraint" +"simple_big_qty";"Year";"m/d/Y -1 year";"m/d/Y";"No";"Y";"assertBestsellerReportResult" +"virtual_big_qty";"Month";"m/d/Y -1 month";"m/d/Y";"Yes";"n/Y";"assertBestsellerReportResult" +"simple_big_qty";"Day";"m/d/Y -1 day";"m/d/Y +1 day";"No";"M d, Y";"assertBestsellerReportResult" diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php new file mode 100644 index 00000000000..3f3d10f02cf --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest.php @@ -0,0 +1,135 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\TestCase; + +use Magento\Customer\Test\Page\CustomerAccountIndex; +use Magento\Downloadable\Test\Page\DownloadableCustomerProducts; +use Mtf\TestCase\Injectable; +use Mtf\Client\Browser; +use Magento\Sales\Test\Fixture\OrderInjectable; + +/** + * Test Creation for DownloadProductsReportEntity + * + * Test Flow: + * + * Preconditions: + * 1. Create customer. + * 2. Create downloadable product. + * 3. Place order. + * 4. Create invoice. + * 5. Go to customer account > My Downloads and click download link. + * + * Steps: + * 1. Open Backend. + * 2. Go to Reports > Products > Downloads. + * 3. Perform all assertions. + * + * @group Reports_(MX) + * @ZephyrId MAGETWO-28823 + */ +class DownloadProductsReportEntityTest extends Injectable +{ + /** + * Browser Interface + * + * @var Browser + */ + protected $browser; + + /** + * Customer Account index page + * + * @var CustomerAccountIndex + */ + protected $customerAccount; + + /** + * Downloadable Customer Products page + * + * @var DownloadableCustomerProducts + */ + protected $customerProducts; + + /** + * Inject pages + * + * @param CustomerAccountIndex $customerAccount + * @param DownloadableCustomerProducts $customerProducts + * @return void + */ + public function __inject( + CustomerAccountIndex $customerAccount, + DownloadableCustomerProducts $customerProducts, + Browser $browser + ) { + $this->customerAccount = $customerAccount; + $this->customerProducts = $customerProducts; + $this->browser = $browser; + } + + /** + * Order downloadable product + * + * @param OrderInjectable $order + * @param string $downloads + * @return void + */ + public function test(OrderInjectable $order, $downloads) + { + // Preconditions + $order->persist(); + $invoice = $this->objectManager->create('Magento\Sales\Test\TestStep\CreateInvoiceStep', ['order' => $order]); + $invoice->run(); + $this->openDownloadableLink($order, (int)$downloads); + } + + /** + * Open Downloadable Link + * + * @param OrderInjectable $order + * @param int $downloads + * @return void + */ + protected function openDownloadableLink(OrderInjectable $order, $downloads) + { + $customerLogin = $this->objectManager->create( + 'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep', + ['customer' => $order->getDataFieldConfig('customer_id')['source']->getCustomer()] + ); + $customerLogin->run(); + $this->customerAccount->getAccountMenuBlock()->openMenuItem('My Downloadable Products'); + foreach ($order->getEntityId()['products'] as $product) { + foreach ($product->getDownloadableLinks()['downloadable']['link'] as $link) { + for ($i = 0; $i < $downloads; $i++) { + $this->customerProducts->getMainBlock()->openLink($link['title']); + $this->browser->selectWindow(); + $this->browser->closeWindow(); + $this->browser->selectWindow(); + } + } + } + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest/test.csv new file mode 100644 index 00000000000..fcb06cbea25 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/DownloadProductsReportEntityTest/test.csv @@ -0,0 +1,4 @@ +"order/dataSet";"downloads";"constraint" +"downloadable_product";"1";"assertDownloadsReportResult" +"two_downloadable_product";"2";"assertDownloadsReportResult" +"downloadable_product";"0";"assertDownloadsReportResult" diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php new file mode 100644 index 00000000000..2b00e211cc4 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest.php @@ -0,0 +1,214 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Reports\Test\TestCase; + +use Mtf\TestCase\Injectable; +use Magento\Tax\Test\Fixture\TaxRule; +use Magento\Tax\Test\Page\Adminhtml\TaxRuleNew; +use Magento\Sales\Test\Fixture\OrderInjectable; +use Magento\Sales\Test\Page\Adminhtml\OrderView; +use Magento\Tax\Test\Page\Adminhtml\TaxRuleIndex; +use Magento\Sales\Test\Page\Adminhtml\OrderIndex; +use Magento\Reports\Test\Page\Adminhtml\Statistics; +use Magento\Sales\Test\Page\Adminhtml\OrderInvoiceNew; +use Magento\Reports\Test\Page\Adminhtml\SalesTaxReport; + +/** + * Test Creation for SalesTaxReportEntity + * + * Test Flow: + * + * Preconditions: + * 1. Product is created + * 2. Customer is created + * 3. Tax Rule is created + * 4. Order is placed + * 5. Refresh statistic + * + * Steps: + * 1. Login to backend + * 2. Go to Reports > Sales > Tax + * 3. Fill data from dataSet + * 4. Click "Show report" + * 5. Perform all assertions + * + * @group Reports_(MX) + * @ZephyrId MAGETWO-28515 + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class SalesTaxReportEntityTest extends Injectable +{ + /** + * Order index page + * + * @var OrderIndex + */ + protected $orderIndex; + + /** + * Order invoice new page + * + * @var OrderInvoiceNew + */ + protected $orderInvoiceNew; + + /** + * Sales tax report page + * + * @var SalesTaxReport + */ + protected $salesTaxReport; + + /** + * Order view page + * + * @var OrderView + */ + protected $orderView; + + /** + * Report statistic page + * + * @var Statistics + */ + protected $reportStatistic; + + /** + * Tax Rule grid page + * + * @var TaxRuleIndex + */ + protected $taxRuleIndexPage; + + /** + * Tax Rule new and edit page + * + * @var TaxRuleNew + */ + protected $taxRuleNewPage; + + /** + * Tax Rule fixture + * + * @var TaxRule + */ + protected $taxRule; + + /** + * Delete all tax rules + * + * @return void + */ + public function __prepare() + { + $deleteTaxRule = $this->objectManager->create('Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep'); + $deleteTaxRule->run(); + } + + /** + * Injection data + * + * @param OrderIndex $orderIndex + * @param OrderInvoiceNew $orderInvoiceNew + * @param OrderView $orderView + * @param Statistics $reportStatistic + * @param SalesTaxReport $salesTaxReport + * @param TaxRuleIndex $taxRuleIndexPage + * @param TaxRuleNew $taxRuleNewPage + * @return void + */ + public function __inject( + OrderIndex $orderIndex, + OrderInvoiceNew $orderInvoiceNew, + OrderView $orderView, + Statistics $reportStatistic, + SalesTaxReport $salesTaxReport, + TaxRuleIndex $taxRuleIndexPage, + TaxRuleNew $taxRuleNewPage + ) { + $this->orderIndex = $orderIndex; + $this->orderInvoiceNew = $orderInvoiceNew; + $this->orderView = $orderView; + $this->reportStatistic = $reportStatistic; + $this->salesTaxReport = $salesTaxReport; + $this->taxRuleIndexPage = $taxRuleIndexPage; + $this->taxRuleNewPage = $taxRuleNewPage; + } + + /** + * Create tax report entity + * + * @param OrderInjectable $order + * @param TaxRule $taxRule + * @param array $report + * @param string $orderStatus + * @param string $invoice + * @return void + */ + public function test( + OrderInjectable $order, + TaxRule $taxRule, + array $report, + $orderStatus, + $invoice + ) { + // Precondition + $taxRule->persist(); + $this->taxRule = $taxRule; + $order->persist(); + $this->orderIndex->open(); + $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $order->getId()]); + if ($orderStatus !== 'Pending') { + $createInvoice = $this->objectManager->create( + 'Magento\Sales\Test\TestStep\CreateInvoice', + ['order' => $order, 'data' => $invoice] + ); + $createInvoice->run(); + } + $this->reportStatistic->open(); + $this->reportStatistic->getGridBlock()->massaction( + [['report' => 'Tax']], + 'Refresh Statistics for the Last Day', + true + ); + + // Steps + $this->salesTaxReport->open(); + $this->salesTaxReport->getFilterBlock()->viewsReport($report); + $this->salesTaxReport->getActionBlock()->showReport(); + } + + /** + * Delete all tax rules after test + * + * @return void + */ + public function tearDown() + { + $deleteTaxRule = $this->objectManager->create('Magento\Tax\Test\TestStep\DeleteAllTaxRulesStep'); + $deleteTaxRule->run(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest/test.csv new file mode 100644 index 00000000000..733b7a871cd --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/SalesTaxReportEntityTest/test.csv @@ -0,0 +1,4 @@ +"taxRule/dataSet";"order/dataSet";"orderStatus";"report/report_type";"report/period_type";"report/from";"report/to";"report/show_order_statuses";"report/order_statuses";"report/show_empty_rows";"invoice/do_shipment";"taxAmount";"constraint";"issue" +"custom_rule";"default";"Pending";"Order Created Date";"Day";"m/d/Y";"m/d/Y";"Any";"-";"-";"No";"$46.20";"assertTaxReportNotInGrid";"" +"custom_rule";"default";"Processing";"Order Created Date";"Month";"m/d/Y";"m/d/Y";"Specified";"Processing";"-";"No";"$46.20";"assertTaxReportInGrid";"" +"custom_rule";"default";"Complete";"Order Updated Date";"Year";"m/d/Y";"m/d/Y";"Specified";"Complete";"Yes";"Yes";"$46.20";"assertTaxReportInGrid";"Bug: MAGETWO-28611" diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/constraint.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/etc/constraint.xml index 2b6f8a53df0..176c7b60ecc 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/constraint.xml +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/etc/constraint.xml @@ -75,4 +75,13 @@ <assertCustomerOrderCountReportResult module="Magento_Reports"> <severeness>low</severeness> </assertCustomerOrderCountReportResult> + <assertTaxReportInGrid module="Magento_Reports"> + <severeness>low</severeness> + </assertTaxReportInGrid> + <assertTaxReportNotInGrid module="Magento_Reports"> + <severeness>low</severeness> + </assertTaxReportNotInGrid> + <assertDownloadsReportResult module="Magento_Reports"> + <severeness>low</severeness> + </assertDownloadsReportResult> </constraint> diff --git a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/page.xml b/dev/tests/functional/tests/app/Magento/Reports/Test/etc/page.xml index 6f89be33865..e100c4aaf96 100644 --- a/dev/tests/functional/tests/app/Magento/Reports/Test/etc/page.xml +++ b/dev/tests/functional/tests/app/Magento/Reports/Test/etc/page.xml @@ -89,4 +89,14 @@ <area>adminhtml</area> <class>Magento\Reports\Test\Page\Adminhtml\CustomerOrdersReport</class> </customerOrdersReport> + <salesTaxReport> + <mca>reports/report_sales/tax</mca> + <area>adminhtml</area> + <class>Magento\Reports\Test\Page\Adminhtml\SalesTaxReport</class> + </salesTaxReport> + <downloadsReport> + <mca>reports/report_product/downloads</mca> + <area>adminhtml</area> + <class>Magento\Reports\Test\Page\Adminhtml\DownloadsReport</class> + </downloadsReport> </page> diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php index 8306fbd1a5b..0210a25bceb 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php @@ -162,12 +162,12 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable /** @var CatalogProductSimple $product */ $product = $this->reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); - $this->catalogProductEdit->getForm()->openTab('product_reviews'); + $this->catalogProductEdit->getProductForm()->openTab('product_reviews'); $filter = [ 'title' => $this->reviewInitial->getTitle(), 'sku' => $product->getSku() ]; - $this->catalogProductEdit->getForm()->getTabElement('product_reviews')->getReviewsGrid() + $this->catalogProductEdit->getProductForm()->getTabElement('product_reviews')->getReviewsGrid() ->searchAndOpen($filter); $this->reviewEdit->getReviewForm()->fill($review); $this->reviewEdit->getPageActions()->save(); diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.php b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.php index bd8e0f574fb..6cc27c442bc 100644 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.php +++ b/dev/tests/functional/tests/app/Magento/Store/Test/Fixture/Store.php @@ -44,9 +44,10 @@ class Store extends InjectableFixture protected $defaultDataSet = [ 'group_id' => ['dataSet' => 'default'], - 'name' => 'Custom_Store_%isolation%', - 'code' => 'code_%isolation%', + 'name' => 'Default Store View', + 'code' => 'default', 'is_active' => 'Enabled', + 'store_id' => 1, ]; protected $store_id = [ diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.php b/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.php index 3c76d6bf812..c440550a907 100644 --- a/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.php +++ b/dev/tests/functional/tests/app/Magento/Store/Test/Repository/Store.php @@ -42,6 +42,14 @@ class Store extends AbstractRepository public function __construct(array $defaultConfig = [], array $defaultData = []) { $this->_data['default'] = [ + 'group_id' => ['dataSet' => 'default'], + 'name' => 'Default Store View', + 'code' => 'base', + 'is_active' => 'Enabled', + 'store_id' => 1, + ]; + + $this->_data['custom'] = [ 'group_id' => ['dataSet' => 'default'], 'name' => 'Custom_Store_%isolation%', 'code' => 'code_%isolation%', diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest/test.csv index 51721d81362..aa364f37602 100644 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest/test.csv +++ b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/DeleteStoreEntityTest/test.csv @@ -1,3 +1,3 @@ "store/dataSet";"createBackup";"constraint" -"default";"Yes";"assertStoreSuccessDeleteAndBackupMessages, assertStoreNotInGrid, assertBackupInGrid, assertStoreNotOnFrontend" +"custom";"Yes";"assertStoreSuccessDeleteAndBackupMessages, assertStoreNotInGrid, assertBackupInGrid, assertStoreNotOnFrontend" "custom";"No";"assertStoreSuccessDeleteMessage, assertStoreNotInGrid, assertStoreNotOnFrontend" diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/StoreTest.php b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/StoreTest.php index a4fb5a0a3ec..389e8abd8e3 100644 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/StoreTest.php +++ b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/StoreTest.php @@ -54,7 +54,7 @@ class StoreTest extends Functional $newStorePage = Factory::getPageFactory()->getAdminSystemStoreNewStore(); $newStorePage->getStoreForm()->fill($storeFixture); $newStorePage->getFormPageActions()->save(); - $storeListPage->getMessagesBlock()->assertSuccessMessage(); + $storeListPage->getMessagesBlock()->waitSuccessMessage(); $this->assertContains( 'The store view has been saved', $storeListPage->getMessagesBlock()->getSuccessMessages() @@ -66,7 +66,7 @@ class StoreTest extends Functional $cachePage = Factory::getPageFactory()->getAdminCache(); $cachePage->open(); $cachePage->getActionsBlock()->flushCacheStorage(); - $cachePage->getMessagesBlock()->assertSuccessMessage(); + $cachePage->getMessagesBlock()->waitSuccessMessage(); $configPage = Factory::getPageFactory()->getAdminSystemConfig(); $configPage->open(); @@ -75,7 +75,7 @@ class StoreTest extends Functional $configGroup->open(); $configGroup->setValue('select-groups-locale-fields-code-value', 'German (Germany)'); $configPage->getPageActions()->save(); - $configPage->getMessagesBlock()->assertSuccessMessage(); + $configPage->getMessagesBlock()->waitSuccessMessage(); $homePage = Factory::getPageFactory()->getCmsIndexIndex(); $homePage->open(); diff --git a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest/test.csv index 87bfdcc36e2..618d1ed08a1 100644 --- a/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest/test.csv +++ b/dev/tests/functional/tests/app/Magento/Store/Test/TestCase/UpdateStoreEntityTest/test.csv @@ -1,2 +1,2 @@ -"store/data/group_id/dataSet";"store/data/name";"store/data/code";"store/data/is_active";"constraint" -"default";"storename_updated%isolation%";"storecode_updated%isolation%";"Enabled";"assertStoreSuccessSaveMessage, assertStoreInGrid, assertStoreForm, assertStoreBackend, assertStoreFrontend" +"storeInitial/dataSet";"store/data/group_id/dataSet";"store/data/name";"store/data/code";"store/data/is_active";"constraint" +"custom";"default";"storename_updated%isolation%";"storecode_updated%isolation%";"Enabled";"assertStoreSuccessSaveMessage, assertStoreInGrid, assertStoreForm, assertStoreBackend, assertStoreFrontend" diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php index 97833ff1097..80f115c17cd 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php @@ -25,6 +25,7 @@ namespace Magento\Tax\Test\Block\Adminhtml\Rule; use Magento\Backend\Test\Block\Widget\Grid as GridInterface; +use Mtf\Client\Element\Locator; /** * Class Grid @@ -62,6 +63,33 @@ class Grid extends GridInterface ], ]; + /** + * First row selector + * + * @var string + */ + protected $firstRowSelector = '//tr[1]/td[@data-column="code"]'; + + /** + * Check whether first row is visible + * + * @return bool + */ + public function isFirstRowVisible() + { + return $this->_rootElement->find($this->firstRowSelector, Locator::SELECTOR_XPATH)->isVisible(); + } + + /** + * Open first item in grid + * + * @return void + */ + public function openFirstRow() + { + $this->_rootElement->find($this->firstRowSelector, Locator::SELECTOR_XPATH)->click(); + } + /** * Check if specific row exists in grid * @@ -72,7 +100,7 @@ class Grid extends GridInterface */ public function isRowVisible(array $filter, $isSearchable = false, $isStrict = true) { - $this->search(array('code' => $filter['code'])); + $this->search(['code' => $filter['code']]); return parent::isRowVisible($filter, $isSearchable); } } diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest/testCreateTaxRule.csv b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest/testCreateTaxRule.csv index 3b880e7f96e..f9fda7a92c8 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest/testCreateTaxRule.csv +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/CreateTaxRuleEntityTest/testCreateTaxRule.csv @@ -1,5 +1,5 @@ -"taxRule/data/code";"taxRule/data/tax_rate/dataSet/rate_0";"taxRule/data/tax_rate/dataSet/rate_1";"taxRule/data/tax_rate/dataSet/rate_2";"taxRule/data/tax_customer_class/dataSet/class_0";"taxRule/data/tax_customer_class/dataSet/class_1";"taxRule/data/tax_product_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_1";"taxRule/data/priority";"taxRule/data/position";"constraint" -"TaxIdentifier%isolation%";"US-CA-*-Rate 1";"-";"-";"-";"-";"-";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" -"TaxIdentifier%isolation%";"US-CA-*-Rate 1";"US-NY-*-Rate 1";"-";"customer_tax_class";"-";"product_tax_class";"-";1;1;"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" -"TaxIdentifier%isolation%";"default";"US-NY-*-Rate 1";"US-CA-*-Rate 1";"Retail Customer";"customer_tax_class";"Taxable Goods";"-";"-";1;"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" -"TaxIdentifier%isolation%";"withZipRange";"US-CA-*-Rate 1";"-";"Retail Customer";"customer_tax_class";"Taxable Goods";"product_tax_class";1;"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" +"taxRule/data/code";"taxRule/data/tax_rate/dataSet/rate_0";"taxRule/data/tax_rate/dataSet/rate_1";"taxRule/data/tax_rate/dataSet/rate_2";"taxRule/data/tax_customer_class/dataSet/class_0";"taxRule/data/tax_customer_class/dataSet/class_1";"taxRule/data/tax_product_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_1";"taxRule/data/priority";"taxRule/data/position";"constraint";"issue" +"TaxIdentifier%isolation%";"US-CA-*-Rate 1";"-";"-";"-";"-";"-";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"" +"TaxIdentifier%isolation%";"US-CA-*-Rate 1";"US-NY-*-Rate 1";"-";"customer_tax_class";"-";"product_tax_class";"-";1;1;"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"" +"TaxIdentifier%isolation%";"default";"US-NY-*-Rate 1";"US-CA-*-Rate 1";"Retail Customer";"customer_tax_class";"Taxable Goods";"-";"-";1;"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"MAGETWO-28186" +"TaxIdentifier%isolation%";"withZipRange";"US-CA-*-Rate 1";"-";"Retail Customer";"customer_tax_class";"Taxable Goods";"product_tax_class";1;"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"" diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxRuleTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxRuleTest.php index c1d1dfd028e..4690b89159f 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxRuleTest.php +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/TaxRuleTest.php @@ -57,7 +57,7 @@ class TaxRuleTest extends Functional $newTaxRulePage->getTaxRuleForm()->fill($fixture); $newTaxRulePage->getFormPageActions()->saveAndContinue(); //Verifying - $newTaxRulePage->getMessagesBlock()->assertSuccessMessage(); + $newTaxRulePage->getMessagesBlock()->waitSuccessMessage(); $this->_assertOnGrid($fixture); } diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest/testUpdateTaxRule.csv b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest/testUpdateTaxRule.csv index a2cf2048159..0e71541a4aa 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest/testUpdateTaxRule.csv +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/UpdateTaxRuleEntityTest/testUpdateTaxRule.csv @@ -1,5 +1,5 @@ -"initialTaxRule/dataSet";"address/data/country_id";"address/data/region_id";"address/data/postcode";"shipping/carrier";"shipping/method";"shipping/price";"taxRule/data/code";"taxRule/data/tax_rate/dataSet/rate_0";"taxRule/data/tax_customer_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_1";"taxRule/data/priority";"taxRule/data/position";"constraint" -"tax_rule_default";"-";"-";"-";"-";"-";"-";"New Tax Rule name%isolation%";"default";"customer_tax_class";"product_tax_class";"product_tax_class";"2";"2";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" -"tax_rule_with_custom_tax_classes";"-";"-";"-";"-";"-";"-";"-";"withZipRange";"Retail Customer";"product_tax_class";"Taxable Goods";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm" -"tax_rule_with_custom_tax_classes";"United States";"Utah";84001;"Flat Rate";"Fixed";5;"-";"us_ut_fixed_zip_rate_20";"-";"product_tax_class";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm, assertTaxRuleIsApplied" -"tax_rule_with_custom_tax_classes";"United States";"Idaho";83201;"Flat Rate";"Fixed";5;"-";"withFixedZip";"-";"product_tax_class";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm, assertTaxRuleIsNotApplied" \ No newline at end of file +"initialTaxRule/dataSet";"address/data/country_id";"address/data/region_id";"address/data/postcode";"shipping/carrier";"shipping/method";"shipping/price";"taxRule/data/code";"taxRule/data/tax_rate/dataSet/rate_0";"taxRule/data/tax_customer_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_0";"taxRule/data/tax_product_class/dataSet/class_1";"taxRule/data/priority";"taxRule/data/position";"constraint";"issue" +"tax_rule_default";"-";"-";"-";"-";"-";"-";"New Tax Rule name%isolation%";"default";"customer_tax_class";"product_tax_class";"product_tax_class";"2";"2";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"Bug: MAGETWO-28186" +"tax_rule_with_custom_tax_classes";"-";"-";"-";"-";"-";"-";"-";"withZipRange";"Retail Customer";"product_tax_class";"Taxable Goods";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm";"" +"tax_rule_with_custom_tax_classes";"United States";"Utah";84001;"Flat Rate";"Fixed";5;"-";"us_ut_fixed_zip_rate_20";"-";"product_tax_class";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm, assertTaxRuleIsApplied";"" +"tax_rule_with_custom_tax_classes";"United States";"Idaho";83201;"Flat Rate";"Fixed";5;"-";"withFixedZip";"-";"product_tax_class";"-";"-";"-";"assertTaxRuleSuccessSaveMessage, assertTaxRuleInGrid, assertTaxRuleForm, assertTaxRuleIsNotApplied";"" \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php new file mode 100644 index 00000000000..74cd91887ac --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php @@ -0,0 +1,77 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Tax\Test\TestStep; + +use Mtf\TestStep\TestStepInterface; +use Magento\Tax\Test\Page\Adminhtml\TaxRuleNew; +use Magento\Tax\Test\Page\Adminhtml\TaxRuleIndex; + +/** + * Class DeleteAllTaxRulesStep + * Delete all Tax Rule on backend + */ +class DeleteAllTaxRulesStep implements TestStepInterface +{ + /** + * Tax Rule grid page + * + * @var TaxRuleIndex + */ + protected $taxRuleIndexPage; + + /** + * Tax Rule new and edit page + * + * @var TaxRuleNew + */ + protected $taxRuleNewPage; + + /** + * @construct + * @param TaxRuleIndex $taxRuleIndexPage + * @param TaxRuleNew $taxRuleNewPage + */ + public function __construct( + TaxRuleIndex $taxRuleIndexPage, + TaxRuleNew $taxRuleNewPage + ) { + $this->taxRuleIndexPage = $taxRuleIndexPage; + $this->taxRuleNewPage = $taxRuleNewPage; + } + + /** + * Delete Tax Rule on backend + * + * @return array + */ + public function run() + { + $this->taxRuleIndexPage->open(); + while ($this->taxRuleIndexPage->getTaxRuleGrid()->isFirstRowVisible()) { + $this->taxRuleIndexPage->getTaxRuleGrid()->openFirstRow(); + $this->taxRuleNewPage->getFormPageActions()->delete(); + } + } +} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php index 657a78cf308..6f2b70dd229 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteInGrid.php @@ -53,7 +53,7 @@ class AssertUrlRewriteInGrid extends AbstractConstraint $urlRewriteIndex->open(); $filter = ['request_path' => $urlRewrite->getRequestPath()]; \PHPUnit_Framework_Assert::assertTrue( - $urlRewriteIndex->getUrlRewriteGrid()->isRowVisible($filter), + $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), 'URL Rewrite with request path \'' . $urlRewrite->getRequestPath() . '\' is absent in grid.' ); } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php index a82eb459192..8a105b3cd1b 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Constraint/AssertUrlRewriteNotInGrid.php @@ -53,7 +53,7 @@ class AssertUrlRewriteNotInGrid extends AbstractConstraint $urlRewriteIndex->open(); $filter = ['request_path' => $productRedirect->getRequestPath()]; \PHPUnit_Framework_Assert::assertFalse( - $urlRewriteIndex->getUrlRewriteGrid()->isRowVisible($filter), + $urlRewriteIndex->getUrlRedirectGrid()->isRowVisible($filter), 'URL Rewrite with request path \'' . $productRedirect->getRequestPath() . '\' is present in grid.' ); } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.php index 0d4c8dd0911..dfa48c422a7 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite.php @@ -51,6 +51,12 @@ class UrlRewrite extends InjectableFixture 'backend_type' => 'virtual', ]; + protected $id_path = [ + 'attribute_code' => 'id_path', + 'backend_type' => 'virtual', + 'source' => 'Magento\UrlRewrite\Test\Fixture\UrlRewrite\IdPath', + ]; + protected $store_id = [ 'attribute_code' => 'store_id', 'backend_type' => 'varchar', @@ -95,6 +101,11 @@ class UrlRewrite extends InjectableFixture return $this->getData('id'); } + public function getIdPath() + { + return $this->getData('id_path'); + } + public function getStoreId() { return $this->getData('store_id'); diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/IdPath.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/IdPath.php new file mode 100644 index 00000000000..9c0905a2456 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewrite/IdPath.php @@ -0,0 +1,124 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\UrlRewrite\Test\Fixture\UrlRewrite; + +use Mtf\Fixture\FixtureFactory; +use Mtf\Fixture\FixtureInterface; + +/** + * Class IdPath + * Prepare ID Path + */ +class IdPath implements FixtureInterface +{ + /** + * Resource data + * + * @var string + */ + protected $data; + + /** + * Return entity + * + * @var FixtureInterface + */ + protected $entity = null; + + /** + * Data set configuration settings + * + * @var array + */ + protected $params; + + /** + * @param FixtureFactory $fixtureFactory + * @param array $params + * @param array $data [optional] + */ + public function __construct(FixtureFactory $fixtureFactory, array $params, array $data = []) + { + $this->params = $params; + if (!isset($data['entity']) || $data['entity'] === '-') { + $this->data = array_shift($data); + return; + } + preg_match('`%(.*?)%`', $data['entity'], $dataSet); + $entityConfig = isset($dataSet[1]) ? explode('::', $dataSet[1]) : []; + if (count($entityConfig) > 1) { + /** @var FixtureInterface $fixture */ + $this->entity = $fixtureFactory->createByCode($entityConfig[0], ['dataSet' => $entityConfig[1]]); + $this->entity->persist(); + $id = $this->entity->hasData('id') ? $this->entity->getId() : $this->entity->getPageId(); + $this->data = preg_replace('`(%.*?%)`', $id, $data['entity']); + } else { + $this->data = strval($data['entity']); + } + } + + /** + * Persist custom selections products + * + * @return void + */ + public function persist() + { + // + } + + /** + * Return prepared data + * + * @param string|null $key + * @return string + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function getData($key = null) + { + return $this->data; + } + + /** + * Return data set configuration settings + * + * @return array + */ + public function getDataConfig() + { + return $this->params; + } + + /** + * Return entity + * + * @return FixtureInterface|null + */ + public function getEntity() + { + return $this->entity; + } +} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewriteProduct.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewriteProduct.php index cdb1686d6f4..8957c0c0a58 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewriteProduct.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Fixture/UrlRewriteProduct.php @@ -88,7 +88,7 @@ class UrlRewriteProduct extends DataFixture */ public function getProductSku() { - return $this->product->getProductSku(); + return $this->product->getSku(); } /** diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php index a1f6f3f5418..bc4565ec807 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php @@ -93,7 +93,7 @@ class DeleteCategoryUrlRewriteEntityTest extends Injectable } else { $filter = ['id_path' => $urlRewrite->getIdPath()]; } - $this->urlRewriteIndex->getUrlRewriteGrid()->searchAndOpen($filter); + $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getPageMainActions()->delete(); } } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php index eeb9c3c4cb7..1951b270cf9 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php @@ -92,7 +92,7 @@ class DeleteProductUrlRewriteEntityTest extends Injectable // Steps $this->urlRewriteIndex->open(); $filter = ['request_path' => $productRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRewriteGrid()->searchAndOpen($filter); + $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getPageMainActions()->delete(); } } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php index 12fe1baed06..ddcba54e68e 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateCategoryUrlRewriteEntityTest.php @@ -106,11 +106,10 @@ class UpdateCategoryUrlRewriteEntityTest extends Injectable */ public function test(UrlRewrite $categoryRedirect, UrlRewrite $urlRewrite) { - $this->markTestIncomplete('MAGETWO-26967'); //Steps $this->urlRewriteIndex->open(); $filter = ['request_path' => $categoryRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRewriteGrid()->searchAndOpen($filter); + $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); $this->urlRewriteEdit->getPageMainActions()->save(); } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php index d8f55f58822..4053cb1c002 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/UpdateProductUrlRewriteEntityTest.php @@ -104,7 +104,7 @@ class UpdateProductUrlRewriteEntityTest extends Injectable //Steps $this->urlRewriteIndex->open(); $filter = ['request_path' => $productRedirect->getRequestPath()]; - $this->urlRewriteIndex->getUrlRewriteGrid()->searchAndOpen($filter); + $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getFormBlock()->fill($urlRewrite); $this->urlRewriteEdit->getPageMainActions()->save(); } diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.php b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.php index 1b3ce331a49..a8c13c97a9a 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User.php @@ -54,7 +54,8 @@ class User extends InjectableFixture 'lastname' => 'LastName%isolation%', 'email' => 'email%isolation%@example.com', 'password' => '123123q', - 'password_confirmation' => '123123q' + 'password_confirmation' => '123123q', + 'is_active' => 'Active' ]; protected $user_id = [ diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php index 45705e1562a..454207e6d96 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/Fixture/User/RoleId.php @@ -62,7 +62,7 @@ class RoleId implements FixtureInterface { $this->params = $params; if (isset($data['dataSet']) && $data['dataSet'] !== '-') { - $this->role = $fixtureFactory->createByCode('adminUserRole', ['dataSet' => $data['dataSet']]); + $this->role = $fixtureFactory->createByCode('adminUserRole', ['dataSet' => $data['dataSet']]); if (!$this->role->hasData('role_id')) { $this->role->persist(); } diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Handler/AdminUserRole/Curl.php b/dev/tests/functional/tests/app/Magento/User/Test/Handler/AdminUserRole/Curl.php index e5479d2d5d5..076dd848ab7 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Handler/AdminUserRole/Curl.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/Handler/AdminUserRole/Curl.php @@ -52,7 +52,7 @@ class Curl extends AbstractCurl implements AdminUserRoleInterface $data = $fixture->getData(); $data['all'] = ($data['resource_access'] == 'All') ? 1 : 0; if (isset($data['roles_resources'])) { - foreach ($data['roles_resources'] as $resource) { + foreach ((array)$data['roles_resources'] as $resource) { $data['resource'][] = $resource; } } diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/Curl.php b/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/Curl.php index f83b32cd87f..3868350a95b 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/Curl.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/Handler/User/Curl.php @@ -52,6 +52,7 @@ class Curl extends AbstractCurl implements UserInterface if ($fixture->hasData('role_id')) { $data['roles[]'] = $fixture->getDataFieldConfig('role_id')['source']->getRole()->getRoleId(); } + $data['is_active'] = (isset($data['is_active']) && ($data['is_active'] === 'Active')) ? 1 : 0; $url = $_ENV['app_backend_url'] . 'admin/user/save/active_tab/main_section/'; $curl = new BackendDecorator(new CurlTransport(), new Config); $curl->addOption(CURLOPT_HEADER, 1); diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php index 74f2144d179..fea0f88a6ec 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest.php @@ -42,7 +42,7 @@ use Mtf\TestCase\Injectable; * 6. Perform assertions * * @group ACL_(MX) - * @ZephyrId MAGETWO-23413 + * @ZephyrId MAGETWO-25699 */ class CreateAdminUserEntityTest extends Injectable { diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest/test.csv b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest/test.csv index 178ac7b96f4..7872c32a261 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest/test.csv +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/CreateAdminUserEntityTest/test.csv @@ -1,7 +1,7 @@ -"user/data/username";"user/data/firstname";"user/data/lastname";"user/data/email";"user/data/password";"user/data/password_confirmation";"user/data/is_active";"user/data/role_id/dataSet";"isDuplicated";"constraint";"user/data/current_password" -"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"Administrators";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserSuccessLogin"; "123123q" -"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Inactive";"Administrators";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserWrongCredentialsMessage"; "123123q" -"-";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"Administrators";"username";"assertUserDuplicateMessage"; "123123q" -"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"-";"123123q";"123123q";"Active";"Administrators";"email";"assertUserDuplicateMessage"; "123123q" -"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"-";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserWrongCredentialsMessage"; "123123q" -"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.cim";"123123q";"123123q";"Active";"-";"-";"assertUserInvalidEmailMessage"; "123123q" +"user/data/username";"user/data/firstname";"user/data/lastname";"user/data/email";"user/data/password";"user/data/password_confirmation";"user/data/is_active";"user/data/role_id/dataSet";"isDuplicated";"constraint";"user/data/current_password";"issue" +"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"Administrators";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserSuccessLogin"; "123123q";"" +"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Inactive";"Administrators";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserWrongCredentialsMessage"; "123123q";"" +"-";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"Administrators";"username";"assertUserDuplicateMessage"; "123123q";"" +"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"-";"123123q";"123123q";"Active";"Administrators";"email";"assertUserDuplicateMessage"; "123123q";"" +"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.com";"123123q";"123123q";"Active";"-";"-";"assertUserSuccessSaveMessage, assertUserInGrid, assertUserSuccessLogOut, assertUserWrongCredentialsMessage"; "123123q";"" +"AdminUser%isolation%";"FirstName%isolation%";"LastName%isolation%";"email%isolation%@example.cim";"123123q";"123123q";"Active";"-";"-";"assertUserInvalidEmailMessage"; "123123q";"Bug: MAGETWO-28875" diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php new file mode 100644 index 00000000000..5681cd35255 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest.php @@ -0,0 +1,165 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\User\Test\TestCase; + +use Magento\User\Test\Fixture\AdminUserRole; +use Magento\User\Test\Fixture\User; +use Magento\User\Test\Page\Adminhtml\UserEdit; +use Magento\User\Test\Page\Adminhtml\UserIndex; +use Magento\User\Test\Page\Adminhtml\UserRoleEditRole; +use Magento\User\Test\Page\Adminhtml\UserRoleIndex; +use Mtf\Fixture\FixtureFactory; +use Mtf\TestCase\Injectable; +use Magento\Backend\Test\Page\Adminhtml\Dashboard; + +/** + * Test that user can login from the first attempt just after his permissions were changed. + * + * Test Flow: + * 1. Log in as default admin user + * 2. Go to System>Permissions>User Roles + * 3. Press "+" button to start create New Role + * 4. Fill in all data according to data set + * 5. Save role + * 6. Go to System-Permissions-All Users + * 7. Press "+" button to start create new admin user + * 8. Fill in all data according to data set + * 9. Save user + * 10. Go to System>Permissions>User Roles + * 11. Open created role, and change permissions to 'all' + * 12. Log out + * 13. Log in using new admin user (before the bug was fixed, it was impossible to log in from the first attempt) + * 14. Perform assertions + * + * @group ACL_(MX) + * @ZephyrId MAGETWO-28828 + */ +class UserLoginAfterChangingPermissionsTest extends Injectable +{ + /** + * User edit page + * + * @var UserRoleIndex + */ + protected $userRoleIndex; + + /** + * Role edit page + * + * @var UserRoleEditRole + */ + protected $userRoleEditRole; + + /** + * User grid page + * + * @var UserIndex + */ + protected $userIndexPage; + + /** + * User new/edit page + * + * @var UserEdit + */ + protected $userEditPage; + + /** + * Dashboard panel + * + * @var Dashboard + */ + protected $dashboard; + + /** + * Factory for Fixtures + * + * @var FixtureFactory + */ + protected $fixtureFactory; + + /** + * Preconditions for test + * + * @param FixtureFactory $fixtureFactory + */ + public function __prepare(FixtureFactory $fixtureFactory) + { + $this->fixtureFactory = $fixtureFactory; + } + + /** + * Setup necessary data for test + * + * @param UserIndex $userIndex + * @param UserEdit $userEdit + * @param UserRoleIndex $userRoleIndex + * @param UserRoleEditRole $userRoleEditRole + * @param Dashboard $dashboard + * @return void + */ + public function __inject( + UserIndex $userIndex, + UserEdit $userEdit, + UserRoleIndex $userRoleIndex, + UserRoleEditRole $userRoleEditRole, + Dashboard $dashboard + ) { + $this->userIndexPage = $userIndex; + $this->userEditPage = $userEdit; + $this->userRoleIndex = $userRoleIndex; + $this->userRoleEditRole = $userRoleEditRole; + $this->dashboard = $dashboard; + } + + /** + * @param AdminUserRole $role + * @param AdminUserRole $updatedRole + * @param User $user + * @return void + */ + public function testLoginAfterChangingPermissions( + AdminUserRole $role, + AdminUserRole $updatedRole, + User $user + ) { + /** Create role and a new user with this role */ + $role->persist(); + /** @var User $user */ + $user = $this->fixtureFactory->create( + 'Magento\User\Test\Fixture\User', + ['data' => array_merge($user->getData(), ['role_id' => ['role' => $role]])] + ); + $user->persist(); + + /** Change the scope of resources available for the role created earlier */ + $filter = ['rolename' => $role->getRoleName()]; + $this->userRoleIndex->open(); + $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter); + $this->userRoleEditRole->getRoleFormTabs()->fill($updatedRole); + $this->userRoleEditRole->getPageActions()->save(); + $this->dashboard->getAdminPanelHeader()->logOut(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest/testLoginAfterChangingPermissions.csv b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest/testLoginAfterChangingPermissions.csv new file mode 100644 index 00000000000..5e9b09b42cc --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/UserLoginAfterChangingPermissionsTest/testLoginAfterChangingPermissions.csv @@ -0,0 +1,2 @@ +"user/dataSet";"role/data/rolename";"role/data/resource_access";"role/data/roles_resources";"updatedRole/data/rolename";"updatedRole/data/resource_access";"constraint" +"";AdminRole%isolation%;Custom;Sales;UpdatedAdminRole%isolation%;All;"assertUserSuccessLogin" diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php index d9cde22eebd..cd36571276d 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist.php @@ -60,6 +60,13 @@ class Wishlist extends Block */ protected $updateButton = '.action.update'; + /** + * Empty block css selector + * + * @var string + */ + protected $empty = '.message.info.empty'; + /** * Click button "Share Wish List" * @@ -102,4 +109,14 @@ class Wishlist extends Block { $this->_rootElement->find($this->updateButton)->click(); } + + /** + * Check empty block visible + * + * @return bool + */ + public function isEmptyBlockVisible() + { + return $this->_rootElement->find($this->empty)->isVisible(); + } } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php index 483c564b7e7..2a07337e597 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items.php @@ -27,6 +27,7 @@ namespace Magento\Wishlist\Test\Block\Customer\Wishlist; use Mtf\Block\Block; use Mtf\Client\Element; use Mtf\Client\Element\Locator; +use Mtf\Fixture\FixtureInterface; use Magento\Wishlist\Test\Block\Customer\Wishlist\Items\Product; /** @@ -42,18 +43,38 @@ class Items extends Block */ protected $itemBlock = '//li[.//a[contains(.,"%s")]]'; + /** + * Selector for 'Remove item' button + * + * @var string + */ + protected $remove = '[data-role="remove"]'; + /** * Get item product block * - * @param string $productName + * @param FixtureInterface $product * @return Product */ - public function getItemProductByName($productName) + public function getItemProduct(FixtureInterface $product) { - $productBlock = sprintf($this->itemBlock, $productName); + $productBlock = sprintf($this->itemBlock, $product->getName()); return $this->blockFactory->create( 'Magento\Wishlist\Test\Block\Customer\Wishlist\Items\Product', ['element' => $this->_rootElement->find($productBlock, Locator::SELECTOR_XPATH)] ); } + + /** + * Remove all products from wish list + * + * @return void + */ + public function removeAllProducts() + { + while ($this->_rootElement->find($this->remove)->isVisible()) { + $this->_rootElement->find($this->remove)->click(); + $this->reinitRootElement(); + } + } } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php index 55709268310..8c0ff30f8ef 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Customer/Wishlist/Items/Product.php @@ -39,6 +39,13 @@ class Product extends Form */ protected $addToCart = '.action.tocart'; + /** + * Selector for 'Remove item' button + * + * @var string + */ + protected $remove = '[data-role="remove"]'; + /** * Fill item product details * @@ -60,4 +67,14 @@ class Product extends Form { $this->_rootElement->find($this->addToCart)->click(); } + + /** + * Remove product from wish list + * + * @return void + */ + public function remove() + { + $this->_rootElement->find($this->remove)->click(); + } } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php index c7e997387af..d4ee1321842 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertProductsIsAbsentInWishlist.php @@ -74,10 +74,9 @@ class AssertProductsIsAbsentInWishlist extends AbstractConstraint $itemBlock = $wishlistIndex->getWishlistBlock()->getProductItemsBlock(); foreach ($products as $itemProduct) { - $productName = $itemProduct->getName(); \PHPUnit_Framework_Assert::assertFalse( - $itemBlock->getItemProductByName($productName)->isVisible(), - 'Product \'' . $productName . '\' is present in Wishlist on Frontend.' + $itemBlock->getItemProduct($itemProduct)->isVisible(), + 'Product \'' . $itemProduct->getName() . '\' is present in Wishlist on Frontend.' ); } } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php index 70a9e86d12f..681d1ed9210 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Constraint/AssertWishlistIsEmpty.php @@ -24,14 +24,13 @@ namespace Magento\Wishlist\Test\Constraint; -use Mtf\Fixture\InjectableFixture; use Magento\Cms\Test\Page\CmsIndex; use Mtf\Constraint\AbstractConstraint; use Magento\Wishlist\Test\Page\WishlistIndex; /** * Class AssertWishlistIsEmpty - * Check that there are no Products in Wishlist + * Assert wish list is empty on 'My Account' page */ class AssertWishlistIsEmpty extends AbstractConstraint { @@ -43,22 +42,19 @@ class AssertWishlistIsEmpty extends AbstractConstraint protected $severeness = 'low'; /** - * Check that there are no Products in Wishlist + * Assert wish list is empty * - * @param InjectableFixture[] $products * @param CmsIndex $cmsIndex * @param WishlistIndex $wishlistIndex * @return void */ - public function processAssert(array $products, CmsIndex $cmsIndex, WishlistIndex $wishlistIndex) + public function processAssert(CmsIndex $cmsIndex, WishlistIndex $wishlistIndex) { $cmsIndex->getLinksBlock()->openLink("My Wish List"); - foreach ($products as $itemProduct) { - \PHPUnit_Framework_Assert::assertFalse( - $wishlistIndex->getItemsBlock()->getItemProductByName($itemProduct->getName())->isVisible(), - '"' . $itemProduct->getName() . '" product is present in Wishlist.' - ); - } + \PHPUnit_Framework_Assert::assertTrue( + $wishlistIndex->getWishlistBlock()->isEmptyBlockVisible(), + 'Wish list is not empty.' + ); } /** @@ -68,6 +64,6 @@ class AssertWishlistIsEmpty extends AbstractConstraint */ public function toString() { - return 'Wishlist is empty.'; + return 'Wish list is empty.'; } } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml index 9404f7bcfe1..8a67c020d66 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Page/WishlistIndex.xml @@ -35,5 +35,10 @@ <locator>#wishlist-view-form</locator> <strategy>css selector</strategy> </wishlistBlock> + <itemsBlock> + <class>Magento\Wishlist\Test\Block\Customer\Wishlist\Items</class> + <locator>.products-grid.wishlist</locator> + <strategy>css selector</strategy> + </itemsBlock> </blocks> </page> diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistOnFrontend.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistOnFrontend.php new file mode 100644 index 00000000000..65e05ac75bc --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AbstractWishlistOnFrontend.php @@ -0,0 +1,155 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Wishlist\Test\TestCase; + +use Mtf\ObjectManager; +use Mtf\Client\Browser; +use Mtf\TestCase\Injectable; +use Mtf\Fixture\FixtureFactory; +use Magento\Cms\Test\Page\CmsIndex; +use Magento\Wishlist\Test\Page\WishlistIndex; +use Magento\Customer\Test\Fixture\CustomerInjectable; +use Magento\Catalog\Test\Page\Product\CatalogProductView; + +/** + * Class AbstractWishlistOnFrontend + * Abstract class for wish list on frontend tests + */ +abstract class AbstractWishlistOnFrontend extends Injectable +{ + /** + * Object Manager + * + * @var ObjectManager + */ + protected $objectManager; + + /** + * Cms index page + * + * @var CmsIndex + */ + protected $cmsIndex; + + /** + * Product view page + * + * @var CatalogProductView + */ + protected $catalogProductView; + + /** + * Fixture factory + * + * @var FixtureFactory + */ + protected $fixtureFactory; + + /** + * Browser + * + * @var Browser + */ + protected $browser; + + /** + * Wishlist index page + * + * @var WishlistIndex + */ + protected $wishlistIndex; + + /** + * Injection data + * + * @param CmsIndex $cmsIndex + * @param CatalogProductView $catalogProductView + * @param FixtureFactory $fixtureFactory + * @param Browser $browser + * @param WishlistIndex $wishlistIndex + * @param ObjectManager $objectManager + * @return void + */ + public function __inject( + CmsIndex $cmsIndex, + CatalogProductView $catalogProductView, + FixtureFactory $fixtureFactory, + Browser $browser, + WishlistIndex $wishlistIndex, + ObjectManager $objectManager + ) { + $this->cmsIndex = $cmsIndex; + $this->catalogProductView = $catalogProductView; + $this->fixtureFactory = $fixtureFactory; + $this->browser = $browser; + $this->wishlistIndex = $wishlistIndex; + $this->objectManager = $objectManager; + } + + /** + * Login customer + * + * @param CustomerInjectable $customer + * @return void + */ + protected function loginCustomer(CustomerInjectable $customer) + { + $loginCustomerOnFrontendStep = $this->objectManager->create( + 'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep', + ['customer' => $customer] + ); + $loginCustomerOnFrontendStep->run(); + } + + /** + * Create products + * + * @param string $products + * @return array + */ + protected function createProducts($products) + { + $createProductsStep = $this->objectManager->create( + 'Magento\Catalog\Test\TestStep\CreateProductsStep', + ['products' => $products] + ); + + return $createProductsStep->run()['products']; + } + + /** + * Add products to wish list + * + * @param array $products + * @return void + */ + protected function addToWishlist(array $products) + { + foreach ($products as $product) { + $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); + $this->catalogProductView->getViewBlock()->addToWishlist(); + } + } +} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php index cd9bcf388f7..7398ee2c6d7 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.php @@ -25,14 +25,8 @@ namespace Magento\Wishlist\Test\TestCase; use Mtf\ObjectManager; -use Mtf\Client\Browser; -use Mtf\TestCase\Injectable; -use Mtf\Fixture\FixtureFactory; -use Magento\Cms\Test\Page\CmsIndex; use Magento\Checkout\Test\Fixture\Cart; -use Magento\Wishlist\Test\Page\WishlistIndex; use Magento\Customer\Test\Fixture\CustomerInjectable; -use Magento\Catalog\Test\Page\Product\CatalogProductView; /** * Test Creation for Adding products from Wishlist to Cart @@ -53,77 +47,8 @@ use Magento\Catalog\Test\Page\Product\CatalogProductView; * @group Wishlist_(CS) * @ZephyrId MAGETWO-25268 */ -class AddProductsToCartFromCustomerWishlistOnFrontendTest extends Injectable +class AddProductsToCartFromCustomerWishlistOnFrontendTest extends AbstractWishlistOnFrontend { - /** - * Object Manager - * - * @var ObjectManager - */ - protected $objectManager; - - /** - * Cms index page - * - * @var CmsIndex - */ - protected $cmsIndex; - - /** - * Product view page - * - * @var CatalogProductView - */ - protected $catalogProductView; - - /** - * Fixture factory - * - * @var FixtureFactory - */ - protected $fixtureFactory; - - /** - * Browser - * - * @var Browser - */ - protected $browser; - - /** - * Wishlist index page - * - * @var WishlistIndex - */ - protected $wishlistIndex; - - /** - * Injection data - * - * @param CmsIndex $cmsIndex - * @param CatalogProductView $catalogProductView - * @param FixtureFactory $fixtureFactory - * @param Browser $browser - * @param WishlistIndex $wishlistIndex - * @param ObjectManager $objectManager - * @return void - */ - public function __inject( - CmsIndex $cmsIndex, - CatalogProductView $catalogProductView, - FixtureFactory $fixtureFactory, - Browser $browser, - WishlistIndex $wishlistIndex, - ObjectManager $objectManager - ) { - $this->cmsIndex = $cmsIndex; - $this->catalogProductView = $catalogProductView; - $this->fixtureFactory = $fixtureFactory; - $this->browser = $browser; - $this->wishlistIndex = $wishlistIndex; - $this->objectManager = $objectManager; - } - /** * Run suggest searching result test * @@ -149,51 +74,6 @@ class AddProductsToCartFromCustomerWishlistOnFrontendTest extends Injectable return ['products' => $products, 'customer' => $customer, 'cart' => $cart]; } - /** - * Login customer - * - * @param CustomerInjectable $customer - * @return void - */ - protected function loginCustomer(CustomerInjectable $customer) - { - $loginCustomerOnFrontendStep = $this->objectManager->create( - 'Magento\Customer\Test\TestStep\LoginCustomerOnFrontendStep', - ['customer' => $customer] - ); - $loginCustomerOnFrontendStep->run(); - } - - /** - * Create products - * - * @param string $products - * @return array - */ - protected function createProducts($products) - { - $createProductsStep = $this->objectManager->create( - 'Magento\Catalog\Test\TestStep\CreateProductsStep', - ['products' => $products] - ); - - return $createProductsStep->run()['products']; - } - - /** - * Add products to wish list - * - * @param array $products - * @return void - */ - protected function addToWishlist(array $products) - { - foreach ($products as $product) { - $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); - $this->catalogProductView->getViewBlock()->addToWishlist(); - } - } - /** * Add products from wish list to cart * @@ -206,11 +86,10 @@ class AddProductsToCartFromCustomerWishlistOnFrontendTest extends Injectable foreach ($products as $product) { $this->cmsIndex->getLinksBlock()->openLink("My Wish List"); if ($qty != '-') { - $this->wishlistIndex->getItemsBlock()->getItemProductByName($product->getName()) - ->fillProduct(['qty' => $qty]); + $this->wishlistIndex->getItemsBlock()->getItemProduct($product)->fillProduct(['qty' => $qty]); $this->wishlistIndex->getWishlistBlock()->clickUpdateWishlist(); } - $this->wishlistIndex->getItemsBlock()->getItemProductByName($product->getName())->clickAddToCart(); + $this->wishlistIndex->getItemsBlock()->getItemProduct($product)->clickAddToCart(); if (strpos($this->browser->getUrl(), 'checkout/cart/') === false) { $this->catalogProductView->getViewBlock()->addToCart($product); } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest/test.csv index 3a96f1fbf2b..b40743fd363 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest/test.csv +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest/test.csv @@ -2,3 +2,8 @@ "catalogProductSimple::100_dollar_product";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" "catalogProductVirtual::50_dollar_product";"1";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" "catalogProductSimple::default,catalogProductVirtual::50_dollar_product,catalogProductSimple::default,catalogProductVirtual::50_dollar_product";"-";"assertProductQtyInShoppingCart, assertWishlistIsEmpty" +"groupedProductInjectable::three_simple_products";"-";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" +"downloadableProductInjectable::with_two_separately_links";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" +"configurableProductInjectable::default";"3";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" +"bundleProduct::bundle_dynamic_product";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" +"bundleProduct::bundle_fixed_product";"2";"assertProductQtyInShoppingCart, assertProductsIsAbsentInWishlist" diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php new file mode 100644 index 00000000000..82731761118 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest.php @@ -0,0 +1,96 @@ +<?php +/** + * Magento + * + * NOTICE OF LICENSE + * + * This source file is subject to the Open Software License (OSL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/osl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@magentocommerce.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade Magento to newer + * versions in the future. If you wish to customize Magento for your + * needs please refer to http://www.magentocommerce.com for more information. + * + * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) + * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) + */ + +namespace Magento\Wishlist\Test\TestCase; + +use Magento\Customer\Test\Fixture\CustomerInjectable; + +/** + * Test Creation for DeleteProductsFromWishlist + * + * Test Flow: + * + * Preconditions: + * 1. Customer registered + * 2. Products are created + * + * Steps: + * 1. Login as customer + * 2. Add products to Wishlist + * 3. Navigate to My Account -> My Wishlist + * 4. Click "Remove item" + * 5. Perform all assertions + * + * @group Wishlist_(CS) + * @ZephyrId MAGETWO-28874 + */ +class DeleteProductsFromWishlistOnFrontendTest extends AbstractWishlistOnFrontend +{ + /** + * Delete products form default wish list + * + * @param CustomerInjectable $customer + * @param string $products + * @param string $removedProductsIndex [optional] + * @return array + */ + public function test(CustomerInjectable $customer, $products, $removedProductsIndex = null) + { + // Preconditions + $customer->persist(); + $this->loginCustomer($customer); + $products = $this->createProducts($products); + $this->addToWishlist($products); + + // Steps + $this->cmsIndex->getLinksBlock()->openLink("My Wish List"); + $removeProducts = $this->removeProducts($products, $removedProductsIndex); + + return ['products' => $removeProducts, 'customer' => $customer]; + } + + /** + * Remove products from wish list + * + * @param array $products + * @param string $removedProductsIndex + * @return array + */ + protected function removeProducts(array $products, $removedProductsIndex) + { + $removeProducts = []; + if ($removedProductsIndex) { + $removedProductsIndex = explode(',', $removedProductsIndex); + foreach ($removedProductsIndex as $index) { + $this->wishlistIndex->getItemsBlock()->getItemProduct($products[--$index])->remove(); + $removeProducts[] = $products[$index]; + } + } else { + $this->wishlistIndex->getItemsBlock()->removeAllProducts(); + $removeProducts = $products; + } + + return $removeProducts; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest/test.csv b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest/test.csv new file mode 100644 index 00000000000..a07c9bb3ae2 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/DeleteProductsFromWishlistOnFrontendTest/test.csv @@ -0,0 +1,9 @@ +"products";"removedProductsIndex";"constraint" +"catalogProductSimple::100_dollar_product,catalogProductVirtual::50_dollar_product";"1";"assertProductsIsAbsentInWishlist" +"catalogProductVirtual::50_dollar_product";"1";"assertWishlistIsEmpty" +"catalogProductSimple::default,catalogProductVirtual::50_dollar_product,catalogProductSimple::default,catalogProductVirtual::50_dollar_product";"";"assertWishlistIsEmpty" +"bundleProduct::bundle_dynamic_product";"1";"assertWishlistIsEmpty" +"bundleProduct::bundle_fixed_product";"1";"assertWishlistIsEmpty" +"configurableProductInjectable::default";"1";"assertWishlistIsEmpty" +"downloadableProductInjectable::with_two_separately_links";"1";"assertWishlistIsEmpty" +"groupedProductInjectable::three_simple_products";"1";"assertWishlistIsEmpty" diff --git a/dev/tests/integration/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php b/dev/tests/integration/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php index 1d3538e9684..3ae21e32bfd 100755 --- a/dev/tests/integration/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php +++ b/dev/tests/integration/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php @@ -29,6 +29,7 @@ use Magento\Customer\Service\V1; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Service\V1\Data\SearchCriteria; +use Magento\Framework\Exception\State\ExpiredException; use Magento\TestFramework\Helper\Bootstrap; /** @@ -407,15 +408,11 @@ class CustomerAccountServiceTest extends \PHPUnit_Framework_TestCase $password = 'new_password'; $this->setResetPasswordData($resetToken, 'Y-m-d'); - $this->_customerAccountService->resetPassword(1, $resetToken, $password); - //TODO assert + $this->assertTrue($this->_customerAccountService->resetPassword(1, $resetToken, $password)); } - - /** * @magentoDataFixture Magento/Customer/_files/customer.php - * @expectedException \Magento\Framework\Exception\State\ExpiredException */ public function testResetPasswordTokenExpired() { @@ -423,7 +420,12 @@ class CustomerAccountServiceTest extends \PHPUnit_Framework_TestCase $password = 'new_password'; $this->setResetPasswordData($resetToken, '1970-01-01'); - $this->_customerAccountService->resetPassword(1, $resetToken, $password); + try { + $this->_customerAccountService->resetPassword(1, $resetToken, $password); + $this->fail('Expected exception not thrown.'); + } catch (ExpiredException $e) { + $this->assertEquals('Reset password token expired.', $e->getMessage()); + } } /** diff --git a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php index feaaac019cd..f7b8fa6fd8e 100644 --- a/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/ConfigurableProduct/Service/V1/Product/Option/WriteServiceTest.php @@ -61,6 +61,11 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase */ protected $optionBuilder; + /** + * @var \Magento\ConfigurableProduct\Service\V1\Data\Option\ValueBuilder + */ + protected $optionValueBuilder; + /** * @var \Magento\ConfigurableProduct\Service\V1\Product\Option\WriteService */ @@ -164,8 +169,12 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase ] ); - $this->optionBuilder = $this->objectManager - ->getObject('Magento\ConfigurableProduct\Service\V1\Data\OptionBuilder'); + $this->optionBuilder = $this->objectManager->getObject( + 'Magento\ConfigurableProduct\Service\V1\Data\OptionBuilder' + ); + $this->optionValueBuilder = $this->objectManager->getObject( + 'Magento\ConfigurableProduct\Service\V1\Data\Option\ValueBuilder' + ); } /** @@ -518,9 +527,9 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \Magento\Webapi\Exception + * @expectedException \Magento\Framework\Exception\InputException */ - public function testRemoveWebApiException() + public function testRemoveInputException() { $productSku = 'productSku'; @@ -543,19 +552,20 @@ class WriteServiceTest extends \PHPUnit_Framework_TestCase */ private function getOption() { + $optionValueData = [ + 'index' => 1, + 'price' => 12, + 'percent' => true + ]; + $optionValue = $this->optionValueBuilder->populateWithArray($optionValueData)->create(); $data = [ Option::ID => 1, Option::ATTRIBUTE_ID => 2, Option::LABEL => 'Test Label', Option::POSITION => 1, + Option::TYPE => 'select', Option::USE_DEFAULT => true, - Option::VALUES => [ - [ - 'index' => 1, - 'price' => 12, - 'percent' => true - ] - ] + Option::VALUES => [$optionValue] ]; return $this->optionBuilder->populateWithArray($data)->create(); diff --git a/dev/tests/unit/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php b/dev/tests/unit/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php index 3064eb42201..71be3818d05 100755 --- a/dev/tests/unit/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php +++ b/dev/tests/unit/testsuite/Magento/Customer/Service/V1/CustomerAccountServiceTest.php @@ -907,7 +907,7 @@ class CustomerAccountServiceTest extends \PHPUnit_Framework_TestCase $customerService = $this->_createService(); - $customerService->resetPassword(self::ID, $resetToken, $password); + $this->assertTrue($customerService->resetPassword(self::ID, $resetToken, $password)); } public function testResetPasswordShortPassword() diff --git a/dev/tests/unit/testsuite/Magento/Integration/Oauth/OauthTest.php b/dev/tests/unit/testsuite/Magento/Integration/Oauth/OauthTest.php index 6464cf29a30..bc0e716f2a4 100644 --- a/dev/tests/unit/testsuite/Magento/Integration/Oauth/OauthTest.php +++ b/dev/tests/unit/testsuite/Magento/Integration/Oauth/OauthTest.php @@ -299,12 +299,11 @@ class OauthTest extends \PHPUnit_Framework_TestCase /** * \Magento\Framework\Oauth\OauthInterface::ERR_TIMESTAMP_REFUSED * - * @expectedException \Magento\Framework\Oauth\OauthInputException + * @expectedException \Magento\Framework\Oauth\Exception * @dataProvider dataProviderForGetRequestTokenNonceTimestampRefusedTest */ public function testGetRequestTokenOauthTimestampRefused($timestamp) { - $this->markTestIncomplete('MAGETWO-19388'); $this->_setupConsumer(); $this->_makeValidExpirationPeriod(); @@ -316,7 +315,11 @@ class OauthTest extends \PHPUnit_Framework_TestCase public function dataProviderForGetRequestTokenNonceTimestampRefusedTest() { - return array(array(0), array(time() + \Magento\Integration\Model\Oauth\Nonce\Generator::TIME_DEVIATION * 2)); + return array( + array(0), + //Adding one day deviation + array(time() + \Magento\Integration\Model\Oauth\Nonce\Generator::TIME_DEVIATION + 86400) + ); } protected function _setupNonce($isUsed = false, $timestamp = 0) diff --git a/dev/tests/unit/testsuite/Magento/Paypal/Model/ObserverTest.php b/dev/tests/unit/testsuite/Magento/Paypal/Model/ObserverTest.php index 4ebab2db2d6..8e7d2561c52 100644 --- a/dev/tests/unit/testsuite/Magento/Paypal/Model/ObserverTest.php +++ b/dev/tests/unit/testsuite/Magento/Paypal/Model/ObserverTest.php @@ -93,6 +93,7 @@ class ObserverTest extends \PHPUnit_Framework_TestCase array('createBlock') )->disableOriginalConstructor()->getMock(); $blocks = [ + 'Magento\Paypal\Block\Express\ShortcutContainer' => 'Magento\Paypal\Block\Express\Shortcut', 'Magento\Paypal\Block\Express\Shortcut' => 'Magento\Paypal\Block\Express\Shortcut', 'Magento\Paypal\Block\PayflowExpress\Shortcut' => 'Magento\Paypal\Block\Express\Shortcut', 'Magento\Paypal\Block\Bml\Shortcut' => 'Magento\Paypal\Block\Bml\Shortcut', @@ -127,10 +128,6 @@ class ObserverTest extends \PHPUnit_Framework_TestCase } $this->_event->setContainer($shortcutButtonsMock); $this->_model->addPaypalShortcuts($this->_observer); - - foreach ($blockInstances as $instance) { - $this->assertEquals(\Magento\Paypal\Model\Observer::SHORTCUT_TEMPLATE, $instance->getTemplate()); - } } public function testAddBillingAgreementToSessionNoData() diff --git a/lib/internal/Magento/Framework/AppInterface.php b/lib/internal/Magento/Framework/AppInterface.php index 99077829922..d77e3162d14 100644 --- a/lib/internal/Magento/Framework/AppInterface.php +++ b/lib/internal/Magento/Framework/AppInterface.php @@ -35,7 +35,7 @@ interface AppInterface /** * Magento version */ - const VERSION = '0.1.0-alpha97'; + const VERSION = '0.1.0-alpha98'; /** * Launch application diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json index 4d1fc04ca6b..3474d1778fd 100644 --- a/lib/internal/Magento/Framework/composer.json +++ b/lib/internal/Magento/Framework/composer.json @@ -2,7 +2,7 @@ "name": "magento/framework", "description": "N/A", "type": "magento2-library", - "version": "0.1.0-alpha97", + "version": "0.1.0-alpha98", "require": { "php": "~5.4.11|~5.5.0", "ext-spl": "*", -- GitLab