From 732870356847dfbcb771571a98fbd20a489472fd Mon Sep 17 00:00:00 2001
From: Eugene Tulika <etulika@ebay.com>
Date: Tue, 29 Sep 2015 15:42:53 -0500
Subject: [PATCH 001/162] MAGETWO-40845 Web Setup Wizard: Add support for
 metapackage updates

- show "Update" dropdown element for the metapackage
---
 setup/src/Magento/Setup/Controller/ComponentGrid.php | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/setup/src/Magento/Setup/Controller/ComponentGrid.php b/setup/src/Magento/Setup/Controller/ComponentGrid.php
index cb68dc558aa..d3d053572eb 100644
--- a/setup/src/Magento/Setup/Controller/ComponentGrid.php
+++ b/setup/src/Magento/Setup/Controller/ComponentGrid.php
@@ -99,9 +99,10 @@ class ComponentGrid extends AbstractActionController
             $components[$component['name']]['update'] = false;
             $components[$component['name']]['uninstall'] = false;
             $components[$component['name']]['moduleName'] = $this->packageInfo->getModuleName($component['name']);
-            if ($this->composerInformation->isPackageInComposerJson($component['name'])
-                && ($component['type'] !== ComposerInformation::METAPACKAGE_PACKAGE_TYPE)) {
-                $components[$component['name']]['uninstall'] = true;
+            if ($this->composerInformation->isPackageInComposerJson($component['name'])) {
+                if ($component['type'] !== ComposerInformation::METAPACKAGE_PACKAGE_TYPE) {
+                    $components[$component['name']]['uninstall'] = true;
+                }
                 if (isset($lastSyncData['packages'][$component['name']]['latestVersion'])
                     && version_compare(
                         $lastSyncData['packages'][$component['name']]['latestVersion'],
-- 
GitLab


From 9f635569ebfac4c7ecc67e3ea9df9d1299ad44c6 Mon Sep 17 00:00:00 2001
From: Safwan Khan <safwkhan@ebay.com>
Date: Wed, 30 Sep 2015 12:16:49 -0500
Subject: [PATCH 002/162] MAGETWO-41807: Segmentation fault on setup:rollback

- Fixed the another issue related to rollback - unable rollback db backup file taken in GUI.
---
 lib/internal/Magento/Framework/Setup/BackupRollback.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/internal/Magento/Framework/Setup/BackupRollback.php b/lib/internal/Magento/Framework/Setup/BackupRollback.php
index b992827bff9..4433c7b655a 100644
--- a/lib/internal/Magento/Framework/Setup/BackupRollback.php
+++ b/lib/internal/Magento/Framework/Setup/BackupRollback.php
@@ -227,7 +227,7 @@ class BackupRollback
      */
     public function dbRollback($rollbackFile)
     {
-        if (preg_match('/[0-9]_(db).(gz)$/', $rollbackFile) !== 1) {
+        if (preg_match('/[0-9]_(db)(.*?).(gz)$/', $rollbackFile) !== 1) {
             throw new LocalizedException(new Phrase('Invalid rollback file.'));
         }
         if (!$this->file->isExists($this->backupsDir . '/' . $rollbackFile)) {
-- 
GitLab


From 8f3142cd4d5b81ea89e1e5cde335491167a5daab Mon Sep 17 00:00:00 2001
From: Maddy Chellathurai <mchellathura@ebay.com>
Date: Mon, 5 Oct 2015 18:49:25 -0500
Subject: [PATCH 003/162] MAGETWO-41701: [Github] Move ext- and lib- from
 require-dev in composer.json to require section

- moving to require
---
 composer.json                                 | 16 ++++----
 composer.lock                                 | 39 +++++++++----------
 .../_files/testFromClone/composer.json        | 16 ++++----
 .../testFromCreateProject/composer.json       | 11 ------
 4 files changed, 35 insertions(+), 47 deletions(-)

diff --git a/composer.json b/composer.json
index 7548136c397..e2fa29a61e3 100644
--- a/composer.json
+++ b/composer.json
@@ -49,13 +49,7 @@
         "symfony/event-dispatcher": "~2.1",
         "phpseclib/phpseclib": "~0.3",
         "tedivm/jshrink": "~1.0.1",
-        "magento/composer": "~1.0.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "4.1.0",
-        "squizlabs/php_codesniffer": "1.5.3",
-        "phpmd/phpmd": "@stable",
-        "pdepend/pdepend": "2.0.6",
+        "magento/composer": "~1.0.0",
         "lib-libxml": "*",
         "ext-ctype": "*",
         "ext-gd": "*",
@@ -68,7 +62,13 @@
         "ext-iconv": "*",
         "ext-intl": "*",
         "ext-xsl": "*",
-        "ext-mbstring": "*",
+        "ext-mbstring": "*"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "4.1.0",
+        "squizlabs/php_codesniffer": "1.5.3",
+        "phpmd/phpmd": "@stable",
+        "pdepend/pdepend": "2.0.6",
         "sjparkinson/static-review": "~4.1",
         "fabpot/php-cs-fixer": "~1.2",
         "lusitanian/oauth": "~0.3"
diff --git a/composer.lock b/composer.lock
index 265f51694fc..7a7af860304 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "3544fbc9568fdcc58279fcc2de51e6ec",
-    "content-hash": "963e7bfad082098b3a82bfb445c272d9",
+    "hash": "1e972f74ba4e62737e324c7bfc1738d6",
+    "content-hash": "cc0dfc42e4d933d9cabafc7c52fb20af",
     "packages": [
         {
             "name": "braintree/braintree_php",
@@ -188,16 +188,16 @@
         },
         {
             "name": "magento/composer",
-            "version": "1.0.1",
+            "version": "1.0.2",
             "dist": {
                 "type": "zip",
-                "url": "https://packages.magento.com/_packages/composer-1.0.1.zip",
+                "url": "https://packages.magento.com/_packages/composer-1.0.2.zip",
                 "reference": null,
-                "shasum": "a4ecd6bc55c6b53a74a75a3624d30b529710c4a3"
+                "shasum": "79156c3e7317af1ff64a482ba90ec81c66b82c73"
             },
             "require": {
                 "composer/composer": "1.0.0-alpha10",
-                "php": "~5.5.0|~5.6.0",
+                "php": "~5.5.0|~5.6.0|~7.0.0",
                 "symfony/console": "~2.3 <2.7"
             },
             "require-dev": {
@@ -2674,16 +2674,16 @@
         },
         {
             "name": "lusitanian/oauth",
-            "version": "v0.6.0",
+            "version": "v0.6.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Lusitanian/PHPoAuthLib.git",
-                "reference": "74a5a62457568176d9c1af41a900dd3389b70414"
+                "reference": "4e710c294f41857752b370f16aeff52ba76d48b9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/74a5a62457568176d9c1af41a900dd3389b70414",
-                "reference": "74a5a62457568176d9c1af41a900dd3389b70414",
+                "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/4e710c294f41857752b370f16aeff52ba76d48b9",
+                "reference": "4e710c294f41857752b370f16aeff52ba76d48b9",
                 "shasum": ""
             },
             "require": {
@@ -2737,7 +2737,7 @@
                 "oauth",
                 "security"
             ],
-            "time": "2015-09-24 00:18:45"
+            "time": "2015-09-30 23:32:37"
         },
         {
             "name": "pdepend/pdepend",
@@ -3157,16 +3157,16 @@
         },
         {
             "name": "phpunit/phpunit-mock-objects",
-            "version": "2.3.7",
+            "version": "2.3.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "5e2645ad49d196e020b85598d7c97e482725786a"
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5e2645ad49d196e020b85598d7c97e482725786a",
-                "reference": "5e2645ad49d196e020b85598d7c97e482725786a",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
+                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
                 "shasum": ""
             },
             "require": {
@@ -3209,7 +3209,7 @@
                 "mock",
                 "xunit"
             ],
-            "time": "2015-08-19 09:14:08"
+            "time": "2015-10-02 06:51:40"
         },
         {
             "name": "sebastian/comparator",
@@ -3926,9 +3926,7 @@
     "prefer-stable": true,
     "prefer-lowest": false,
     "platform": {
-        "php": "~5.5.0|~5.6.0|~7.0.0"
-    },
-    "platform-dev": {
+        "php": "~5.5.0|~5.6.0|~7.0.0",
         "lib-libxml": "*",
         "ext-ctype": "*",
         "ext-gd": "*",
@@ -3942,5 +3940,6 @@
         "ext-intl": "*",
         "ext-xsl": "*",
         "ext-mbstring": "*"
-    }
+    },
+    "platform-dev": []
 }
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json
index 438e99d692d..437b304fa98 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json
+++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json
@@ -37,13 +37,7 @@
         "tubalmartin/cssmin": "2.4.8-p4",
         "magento/magento-composer-installer": "*",
         "phpseclib/phpseclib": "~0.3",
-        "symfony/console": "~2.3"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "4.1.0",
-        "squizlabs/php_codesniffer": "1.5.3",
-        "phpmd/phpmd": "@stable",
-        "pdepend/pdepend": "2.0.6",
+        "symfony/console": "~2.3",
         "lib-libxml": "*",
         "ext-ctype": "*",
         "ext-gd": "*",
@@ -54,7 +48,13 @@
         "ext-hash": "*",
         "ext-curl": "*",
         "ext-iconv": "*",
-        "ext-intl": "*",
+        "ext-intl": "*"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "4.1.0",
+        "squizlabs/php_codesniffer": "1.5.3",
+        "phpmd/phpmd": "@stable",
+        "pdepend/pdepend": "2.0.6",
         "sjparkinson/static-review": "~4.1",
         "fabpot/php-cs-fixer": "~1.2",
         "lusitanian/oauth": "~0.3"
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json
index e7403b54be9..7ca0399b8ce 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json
+++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json
@@ -15,17 +15,6 @@
         "squizlabs/php_codesniffer": "1.5.3",
         "phpmd/phpmd": "@stable",
         "pdepend/pdepend": "2.0.6",
-        "lib-libxml": "*",
-        "ext-ctype": "*",
-        "ext-gd": "*",
-        "ext-spl": "*",
-        "ext-dom": "*",
-        "ext-simplexml": "*",
-        "ext-mcrypt": "*",
-        "ext-hash": "*",
-        "ext-curl": "*",
-        "ext-iconv": "*",
-        "ext-intl": "*",
         "sjparkinson/static-review": "~4.1",
         "fabpot/php-cs-fixer": "~1.2",
         "lusitanian/oauth": "~0.3"
-- 
GitLab


From f1fadc9fe7021ee064b5e184e1441c028f02e772 Mon Sep 17 00:00:00 2001
From: Safwan Khan <safwkhan@ebay.com>
Date: Tue, 6 Oct 2015 15:06:12 -0500
Subject: [PATCH 004/162] MAGETWO-40374: [GitHub] Grammar error in Error
 message when a file is not writable #1507

- Fixed the messages.
---
 lib/internal/Magento/Framework/Filesystem/Io/File.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/internal/Magento/Framework/Filesystem/Io/File.php b/lib/internal/Magento/Framework/Filesystem/Io/File.php
index b504f54b173..b050199e4d1 100644
--- a/lib/internal/Magento/Framework/Filesystem/Io/File.php
+++ b/lib/internal/Magento/Framework/Filesystem/Io/File.php
@@ -463,12 +463,12 @@ class File extends AbstractIo
 
         if (file_exists($filename)) {
             if (!is_writeable($filename)) {
-                printf('File %s don\'t writeable', $filename);
+                printf('The file %s is not writable', $filename);
                 return false;
             }
         } else {
             if (!is_writable(dirname($filename))) {
-                printf('Folder %s don\'t writeable', dirname($filename));
+                printf('The folder %s is not writable', dirname($filename));
                 return false;
             }
         }
-- 
GitLab


From bda76d754711d6475eef0d5744d431c91fa011b2 Mon Sep 17 00:00:00 2001
From: Safwan Khan <safwkhan@ebay.com>
Date: Tue, 6 Oct 2015 18:18:53 -0500
Subject: [PATCH 005/162] MAGETWO-40374: [GitHub] Grammar error in Error
 message when a file is not writable #1507

- Fix based on CR comment.
---
 lib/internal/Magento/Framework/Filesystem/Io/File.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/internal/Magento/Framework/Filesystem/Io/File.php b/lib/internal/Magento/Framework/Filesystem/Io/File.php
index b050199e4d1..875f960126d 100644
--- a/lib/internal/Magento/Framework/Filesystem/Io/File.php
+++ b/lib/internal/Magento/Framework/Filesystem/Io/File.php
@@ -468,7 +468,7 @@ class File extends AbstractIo
             }
         } else {
             if (!is_writable(dirname($filename))) {
-                printf('The folder %s is not writable', dirname($filename));
+                printf('The directory %s is not writable', dirname($filename));
                 return false;
             }
         }
-- 
GitLab


From 4d423ca121df634994a940df447b26828d88422c Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Fri, 9 Oct 2015 17:00:22 -0500
Subject: [PATCH 006/162] MAGETWO-43906: Long database prefix length breaks
 setup

- fixed
---
 setup/src/Magento/Setup/Validator/DbValidator.php | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/setup/src/Magento/Setup/Validator/DbValidator.php b/setup/src/Magento/Setup/Validator/DbValidator.php
index 1470ecf6c18..d74c5e60863 100644
--- a/setup/src/Magento/Setup/Validator/DbValidator.php
+++ b/setup/src/Magento/Setup/Validator/DbValidator.php
@@ -15,6 +15,9 @@ use Magento\Setup\Module\ConnectionFactory;
  */
 class DbValidator
 {
+
+    const DB_PREFIX_LENGTH = 10;
+
     /**
      * DB connection factory
      *
@@ -47,6 +50,12 @@ class DbValidator
             throw new \InvalidArgumentException('Please correct the table prefix format.');
         }
 
+        if (strlen($prefix) > self::DB_PREFIX_LENGTH) {
+            throw new \InvalidArgumentException(
+                'Table prefix length can\'t be more then ' . self::DB_PREFIX_LENGTH . ' characters.'
+            );
+        }
+
         return true;
     }
 
-- 
GitLab


From 94097e9e51de94209d415085cfdfd1d781219a2a Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Fri, 9 Oct 2015 17:12:14 -0500
Subject: [PATCH 007/162] MAGETWO-43906: Long database prefix length breaks
 setup

- added test-case
---
 .../Setup/Test/Unit/Validator/DbValidatorTest.php    | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php b/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
index 3f833f10a80..3822e9fd2ea 100644
--- a/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
@@ -87,6 +87,18 @@ class DbValidatorTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(true, $this->dbValidator->checkDatabaseTablePrefix('_wrong_format'));
     }
 
+    /**
+     * @expectedException \InvalidArgumentException
+     * @expectedExceptionMessage Table prefix length can't be more then
+     */
+    public function testCheckDatabaseTablePrefixWrongLength()
+    {
+        $this->assertEquals(
+            true,
+            $this->dbValidator->checkDatabaseTablePrefix('mvbXzXzItSIr0wrZW3gqgV2UKrWiK1Mj7bkBlW72rZW3gqgV2UKrWiK1M')
+        );
+    }
+
     /**
      * @expectedException \Magento\Setup\Exception
      * @expectedExceptionMessage Database connection failure.
-- 
GitLab


From 9861ef93e6e2936f0193fbb756541dd72e9372d2 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Mon, 12 Oct 2015 13:01:24 +0300
Subject: [PATCH 008/162] MAGETWO-43929: Regression scope functional tests
 maintenance

 - Fixes for AddProductToShoppingCart
---
 .../Constraint/AssertGrandTotalInShoppingCart.php    |  1 +
 .../TestCase/AddProductsToShoppingCartEntityTest.xml | 12 ++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php
index ee7f596cc05..13068aa03c6 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertGrandTotalInShoppingCart.php
@@ -28,6 +28,7 @@ class AssertGrandTotalInShoppingCart extends AbstractConstraint
     {
         if ($requireReload) {
             $checkoutCart->open();
+            $checkoutCart->getTotalsBlock()->waitForUpdatedTotals();
         }
 
         $fixtureGrandTotal = number_format($cart->getGrandTotal(), 2);
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
index 69ab253de55..87bb8d8e3b9 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/TestCase/AddProductsToShoppingCartEntityTest.xml
@@ -9,7 +9,7 @@
     <testCase name="Magento\Checkout\Test\TestCase\AddProductsToShoppingCartEntityTest" summary="Add Products to Shopping Cart" ticketId="MAGETWO-25382">
         <variation name="AddProductsToShoppingCartEntityTestVariation1">
             <data name="productsData" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
-            <data name="cart/data/grand_total" xsi:type="string">200</data>
+            <data name="cart/data/grand_total" xsi:type="string">210</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
@@ -18,7 +18,7 @@
         </variation>
         <variation name="AddProductsToShoppingCartEntityTestVariation2">
             <data name="productsData" xsi:type="string">bundleProduct::bundle_fixed_product</data>
-            <data name="cart/data/grand_total" xsi:type="string">756</data>
+            <data name="cart/data/grand_total" xsi:type="string">761</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
@@ -27,7 +27,7 @@
         </variation>
         <variation name="AddProductsToShoppingCartEntityTestVariation3">
             <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option</data>
-            <data name="cart/data/grand_total" xsi:type="string">340</data>
+            <data name="cart/data/grand_total" xsi:type="string">345</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
@@ -45,7 +45,7 @@
         </variation>
         <variation name="AddProductsToShoppingCartEntityTestVariation5">
             <data name="productsData" xsi:type="string">configurableProduct::default</data>
-            <data name="cart/data/grand_total" xsi:type="string">120</data>
+            <data name="cart/data/grand_total" xsi:type="string">135</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
@@ -63,7 +63,7 @@
         </variation>
         <variation name="AddProductsToShoppingCartEntityTestVariation7">
             <data name="productsData" xsi:type="string">groupedProduct::three_simple_products</data>
-            <data name="cart/data/grand_total" xsi:type="string">1920</data>
+            <data name="cart/data/grand_total" xsi:type="string">1950</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
@@ -72,7 +72,7 @@
         </variation>
         <variation name="AddProductsToShoppingCartEntityTestVariation8">
             <data name="productsData" xsi:type="string">catalogProductSimple::with_two_custom_option, catalogProductVirtual::product_50_dollar, downloadableProduct::with_two_separately_links, groupedProduct::three_simple_products, configurableProduct::default, bundleProduct::bundle_dynamic_product, bundleProduct::bundle_dynamic_product</data>
-            <data name="cart/data/grand_total" xsi:type="string">2852.43</data>
+            <data name="cart/data/grand_total" xsi:type="string">2922.43</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertPriceInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Checkout\Test\Constraint\AssertSubtotalInShoppingCart" />
-- 
GitLab


From d02e4195a3580a5e7c5ffbcf39703bd10480bce8 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Tue, 13 Oct 2015 15:49:20 +0300
Subject: [PATCH 009/162] MAGETWO-43929: Regression scope functional tests
 maintenance

 - Fixes for CheckoutWithGiftMessagesTest
---
 .../Test/Block/Cart/GiftOptions.php           | 40 ++++++++++++++-
 .../Test/Block/Cart/Item/GiftOptions.php      | 49 ++++++++++++++++---
 .../AssertGiftMessageInFrontendOrderItems.php | 10 +---
 .../TestCase/CheckoutWithGiftMessagesTest.xml |  4 +-
 .../Magento/GiftMessage/Test/etc/testcase.xml | 15 +++---
 5 files changed, 91 insertions(+), 27 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php
index 0cdd46da28e..00a96731c13 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/GiftOptions.php
@@ -7,7 +7,12 @@
 namespace Magento\GiftMessage\Test\Block\Cart;
 
 use Magento\GiftMessage\Test\Fixture\GiftMessage;
+use Magento\Mtf\Block\BlockFactory;
 use Magento\Mtf\Block\Form;
+use Magento\Mtf\Block\Mapper;
+use Magento\Mtf\Client\BrowserInterface;
+use Magento\Mtf\Client\Element\SimpleElement;
+use Magento\Mtf\Fixture\FixtureFactory;
 
 /**
  * Class GiftOptions
@@ -43,6 +48,33 @@ class GiftOptions extends Form
      */
     protected $giftMessageSummary = ".gift-message-summary";
 
+    /**
+     * Fixture factory.
+     *
+     * @var FixtureFactory
+     */
+    protected $fixtureFactory;
+
+    /**
+     * @param SimpleElement $element
+     * @param BlockFactory $blockFactory
+     * @param Mapper $mapper
+     * @param BrowserInterface $browser
+     * @param FixtureFactory $fixtureFactory
+     * @param array $config [optional]
+     */
+    public function __construct(
+        SimpleElement $element,
+        BlockFactory $blockFactory,
+        Mapper $mapper,
+        BrowserInterface $browser,
+        FixtureFactory $fixtureFactory,
+        array $config = []
+    ) {
+        $this->fixtureFactory = $fixtureFactory;
+        parent::__construct($element, $blockFactory, $mapper, $browser, $config);
+    }
+
     /**
      * Fill gift message form on order level
      *
@@ -58,7 +90,13 @@ class GiftOptions extends Form
                 'Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm',
                 ['element' => $this->_rootElement->find($this->giftMessageOrderForm)]
             );
-            $giftMessageForm->fill($giftMessage);
+            $formData = [
+                'sender' => $giftMessage->getSender(),
+                'recipient' => $giftMessage->getRecipient(),
+                'message' => $giftMessage->getMessage()
+            ];
+            $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]);
+            $giftMessageForm->fill($formData);
             $this->_rootElement->find($this->giftMessageOrderButton)->click();
             $this->waitForElementVisible($this->giftMessageSummary);
         }
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
index 54432742486..e6683a07d4c 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
@@ -6,9 +6,14 @@
 
 namespace Magento\GiftMessage\Test\Block\Cart\Item;
 
+use Magento\Mtf\Block\BlockFactory;
 use Magento\GiftMessage\Test\Fixture\GiftMessage;
 use Magento\Mtf\Block\Form;
+use Magento\Mtf\Block\Mapper;
+use Magento\Mtf\Client\BrowserInterface;
+use Magento\Mtf\Client\Element\SimpleElement;
 use Magento\Mtf\Client\Locator;
+use Magento\Mtf\Fixture\FixtureFactory;
 
 /**
  * Add gift options on checkout cart item level
@@ -20,7 +25,7 @@ class GiftOptions extends Form
      *
      * @var string
      */
-    protected $giftMessageItemForm = '//div[@class="gift-message"]//fieldset[ancestor::tbody[contains(.,"%s")]]';
+    protected $giftMessageItemForm = '.gift-message fieldset';
 
     /**
      * Allow Gift Options for items
@@ -43,6 +48,33 @@ class GiftOptions extends Form
      */
     protected $giftMessageSummary = '//div[@class="gift-message-summary"][ancestor::tbody[contains(.,"%s")]]';
 
+    /**
+     * Fixture factory.
+     *
+     * @var FixtureFactory
+     */
+    protected $fixtureFactory;
+
+    /**
+     * @param SimpleElement $element
+     * @param BlockFactory $blockFactory
+     * @param Mapper $mapper
+     * @param BrowserInterface $browser
+     * @param FixtureFactory $fixtureFactory
+     * @param array $config [optional]
+     */
+    public function __construct(
+        SimpleElement $element,
+        BlockFactory $blockFactory,
+        Mapper $mapper,
+        BrowserInterface $browser,
+        FixtureFactory $fixtureFactory,
+        array $config = []
+    ) {
+        $this->fixtureFactory = $fixtureFactory;
+        parent::__construct($element, $blockFactory, $mapper, $browser, $config);
+    }
+
     /**
      * Fill gift message form on item level
      *
@@ -62,14 +94,15 @@ class GiftOptions extends Form
                     )->click();
                     $giftMessageForm = $this->blockFactory->create(
                         'Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm',
-                        [
-                            'element' => $this->_rootElement->find(
-                                sprintf($this->giftMessageItemForm, $product->getName()),
-                                Locator::SELECTOR_XPATH
-                            )
-                        ]
+                        ['element' => $this->_rootElement->find($this->giftMessageItemForm)]
                     );
-                    $giftMessageForm->fill($giftMessage);
+                    $formData = [
+                        'sender' => $giftMessage->getSender(),
+                        'recipient' => $giftMessage->getRecipient(),
+                        'message' => $giftMessage->getMessage()
+                    ];
+                    $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]);
+                    $giftMessageForm->fill($formData);
                     $this->_rootElement->find($this->giftMessageItemButton)->click();
                     $this->waitForElementVisible(
                         sprintf($this->giftMessageSummary, $product->getName()),
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
index 9adbac82bef..c5fea6f7719 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
@@ -53,15 +53,7 @@ class AssertGiftMessageInFrontendOrderItems extends AbstractConstraint
         $orderHistory->open();
         $orderHistory->getOrderHistoryBlock()->openOrderById($orderId);
 
-        foreach ($giftMessage->getItems() as $key => $itemGiftMessage) {
-            $product = $products[$key];
-            if ($giftMessage->hasData('items')) {
-                $expectedData = [
-                    'sender' => $itemGiftMessage->getSender(),
-                    'recipient' => $itemGiftMessage->getRecipient(),
-                    'message' => $itemGiftMessage->getMessage(),
-                ];
-            }
+        foreach ($products as $product) {
             if ($product->getProductHasWeight() !== 'Yes') {
                 $expectedData = [];
             }
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
index 1aa0128c20a..1937fd24c0c 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
@@ -10,7 +10,7 @@
         <variation name="CheckoutWithGiftMessagesTestVariation1">
             <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
             <data name="customer/dataset" xsi:type="string">default</data>
-            <data name="billingAddress/dataset" xsi:type="string">US_address_1</data>
+            <data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
             <data name="checkoutMethod" xsi:type="string">login</data>
             <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
             <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
@@ -27,7 +27,7 @@
         <variation name="CheckoutWithGiftMessagesTestVariation2">
             <data name="products" xsi:type="string">catalogProductSimple::default, catalogProductVirtual::default</data>
             <data name="customer/dataset" xsi:type="string">default</data>
-            <data name="billingAddress/dataset" xsi:type="string">US_address_1</data>
+            <data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
             <data name="checkoutMethod" xsi:type="string">login</data>
             <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
             <data name="shipping/shipping_method" xsi:type="string">Fixed</data>
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
index 0dfdf20437f..fcd1c8bf416 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
@@ -11,15 +11,16 @@
             <item name="configData" value="cashondelivery, enable_gift_messages" />
         </step>
         <step name="createProducts" module="Magento_Catalog" next="createCustomer" />
-        <step name="createCustomer" module="Magento_Customer" next="loginCustomerOnFrontend" />
-        <step name="loginCustomerOnFrontend" module="Magento_Customer" next="addProductsToTheCart" />
+        <step name="createCustomer" module="Magento_Customer" next="addProductsToTheCart" />
         <step name="addProductsToTheCart" module="Magento_Checkout" next="addGiftMessage" />
         <step name="addGiftMessage" module="Magento_GiftMessage" next="proceedToCheckout" />
-        <step name="proceedToCheckout" module="Magento_Checkout" next="fillBillingInformation" />
-        <step name="fillBillingInformation" module="Magento_Checkout" next="fillShippingMethod" />
-        <step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod" />
-        <step name="selectPaymentMethod" module="Magento_Checkout" next="placeOrder" />
-        <step name="placeOrder" module="Magento_Checkout" />
+        <step name="proceedToCheckout" module="Magento_Checkout" next="selectCheckoutMethod" />
+        <step name="selectCheckoutMethod" module="Magento_Checkout" next="fillShippingAddress"/>
+        <step name="fillShippingAddress" module="Magento_Checkout" next="fillShippingMethod"/>
+        <step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod"/>
+        <step name="selectPaymentMethod" module="Magento_Checkout" next="fillBillingInformation"/>
+        <step name="fillBillingInformation" module="Magento_Checkout" next="placeOrder"/>
+        <step name="placeOrder" module="Magento_Checkout"/>
     </scenario>
     <scenario name="CreateGiftMessageOnBackendTest" firstStep="setupConfiguration">
         <step name="setupConfiguration" module="Magento_Config" next="createProducts" />
-- 
GitLab


From df8ce6c46a1553bdf6ea378ac2a861b32c6c7913 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Tue, 13 Oct 2015 16:02:11 +0300
Subject: [PATCH 010/162] MAGETWO-43929: Regression scope functional tests
 maintenance

 - Improved checkout payment method selection
---
 .../app/Magento/Checkout/Test/Block/Onepage/Payment.php  | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
index cc62ddd13e1..4eb6d81d6f5 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
@@ -81,10 +81,11 @@ class Payment extends Block
      */
     public function selectPaymentMethod(array $payment, CreditCard $creditCard = null)
     {
-        $paymentSelector = $this->_rootElement->find(sprintf($this->paymentMethodInput, $payment['method']));
-        if ($paymentSelector->isVisible()) {
-            $paymentSelector->click();
-        } else {
+        $paymentSelector = sprintf($this->paymentMethodInput, $payment['method']);
+        try {
+            $this->waitForElementVisible($paymentSelector);
+            $this->_rootElement->find($paymentSelector)->click();
+        } catch (\Exception $exception) {
             $paymentLabel = $this->_rootElement->find(sprintf($this->paymentMethodLabel, $payment['method']));
             $this->waitForElementNotVisible($this->waitElement);
             if (!$paymentLabel->isVisible()) {
-- 
GitLab


From 14c9f5670aaa8900cfa0dee56cd27ec66bdca2d4 Mon Sep 17 00:00:00 2001
From: Olga Matviienko <omatviienko@ebay.com>
Date: Tue, 13 Oct 2015 16:02:56 +0300
Subject: [PATCH 011/162] MAGETWO-41780: Update .less files with changes put
 into CSS

---
 .../app/setup/styles/less/pages/_common.less  |  20 ++++
 .../styles/less/pages/_readiness-check.less   |   2 +-
 .../web/app/setup/styles/less/setup.less      |   1 +
 .../updater/styles/less/components/_menu.less |   7 ++
 .../updater/styles/less/pages/_common.less    |   1 +
 .../updater/styles/less/source/_forms.less    |   2 +-
 .../styles/less/source/_typography.less       |   2 -
 .../styles/less/source/_variables.less        |   2 +-
 .../css/source/actions/_actions-switcher.less | 110 ++++++++++++++++++
 setup/pub/styles/setup.css                    |   2 +-
 setup/view/magento/setup/select-version.phtml |  11 +-
 11 files changed, 149 insertions(+), 11 deletions(-)
 create mode 100644 app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-switcher.less

diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_common.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_common.less
index c743005c076..2665555a635 100644
--- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_common.less
+++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_common.less
@@ -19,6 +19,12 @@
     padding-top: @main__indent-top;
 }
 
+.menu-wrapper {
+    .logo-static {
+        pointer-events: none;
+    }
+}
+
 //
 //  Header
 //  _____________________________________________
@@ -44,6 +50,10 @@
 //  Titles
 //  _____________________________________________
 
+.page-title {
+    margin-bottom: @indent__s;
+}
+
 .page-sub-title {
     font-size: 2rem;
     margin-bottom: 1.3em;
@@ -59,3 +69,13 @@
         margin-top: 1.5rem;
     }
 }
+
+//  Spinner modification for installer
+.spinner {
+    &.side {
+        float: left;
+        font-size: 2.4rem;
+        margin-left: 2rem;
+        margin-top: -5px;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less
index cde931e2c71..68932713975 100644
--- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less
+++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less
@@ -56,7 +56,7 @@
 .readiness-check-icon {
     float: left;
     margin-left: 1.7rem;
-    margin-top: .7rem;
+    margin-top: .3rem;
 }
 
 //
diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less
index c2bbaf8f432..f315d89cba1 100644
--- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less
+++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less
@@ -52,6 +52,7 @@
 
 //  Inherit Backend components
 @import '../../../../css/source/_actions.less';
+@import '../../../../css/source/actions/_actions-switcher.less'; // ToDo UI: remove when yes/no switcher is integrated to the backend
 @import '../../../../css/source/components/_messages.less';
 @import '../../../../css/source/components/_modals_extend.less';
 @import '../../../../css/source/components/_spinner.less';
diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/components/_menu.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/components/_menu.less
index e2fb2952d45..0d8e187946d 100644
--- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/components/_menu.less
+++ b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/components/_menu.less
@@ -25,6 +25,13 @@
                     top: -1.6rem;
                 }
             }
+            &._active {
+                > a {
+                    &:after {
+                        display: block;
+                    }
+                }
+            }
         }
         > a {
             padding-top: 1.3rem;
diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_common.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_common.less
index a404bd2a8a9..7748463ab88 100644
--- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_common.less
+++ b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_common.less
@@ -13,6 +13,7 @@
 
 .page-sub-title {
     margin-bottom: 2.1rem;
+    margin-top: @indent__l;
 }
 
 .multiselect-custom {
diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_forms.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_forms.less
index 22833d4d0ce..0f44d221ef7 100644
--- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_forms.less
+++ b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_forms.less
@@ -15,4 +15,4 @@
     letter-spacing: @letter-spacing__small;
     margin-left: .4rem;
     margin-bottom: .4rem;
-}
\ No newline at end of file
+}
diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_typography.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_typography.less
index d11865d6989..0fc83eb059c 100644
--- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_typography.less
+++ b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_typography.less
@@ -42,5 +42,3 @@
         margin-right: 2.4rem;
     }
 }
-
-
diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_variables.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_variables.less
index ff92bb10842..6d14e0a707d 100644
--- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_variables.less
+++ b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/source/_variables.less
@@ -36,4 +36,4 @@
 //
 //  Tables
 //  ---------------------------------------------
-@table__color: @color-very-dark-gray-black;
\ No newline at end of file
+@table__color: @color-very-dark-gray-black;
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-switcher.less b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-switcher.less
new file mode 100644
index 00000000000..1dd211f38ba
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/web/css/source/actions/_actions-switcher.less
@@ -0,0 +1,110 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Yes/no switcher
+//  _____________________________________________
+
+//  ToDo UI: integrate the switcher to the backend
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@actions-switcher-background-color: @color-gray89;
+@actions-switcher-border-radius: 12px;
+@actions-switcher-border: 1px solid @color-gray65-lighten;
+@actions-switcher-control-background-color: @color-white;
+@actions-switcher-height: 20px;
+@actions-switcher-width: 37px;
+
+//
+
+.actions-switch {
+    -webkit-user-select: none;
+       -moz-user-select: none;
+        -ms-user-select: none;
+    height: @actions-switcher-height;
+    margin-right: 30px;
+    position: relative;
+    width: @actions-switcher-width;
+}
+
+.actions-switch-label {
+    background: @actions-switcher-background-color;
+    border-radius: @actions-switcher-border-radius;
+    border: @actions-switcher-border;
+    cursor: pointer;
+    display: block;
+    overflow: hidden;
+}
+
+.actions-switch-inner {
+    display: block;
+    margin-left: -100%;
+    transition: margin 0.3s ease-in 0s;
+    width: 200%;
+    &:before,
+    &:after {
+        border-radius: @actions-switcher-border-radius;
+        color: @color-white;
+        display: block;
+        float: left;
+        height: @actions-switcher-height;
+        line-height: 22px;
+        padding: 0;
+        width: 50%;
+    }
+    &:before {
+        background-color: @color-green-apple;
+        content: "";
+    }
+    &:after {
+        content: "";
+        text-align: right;
+    }
+}
+
+.actions-switch-indicator {
+    background: @actions-switcher-control-background-color;
+    border-radius: @actions-switcher-border-radius;
+    border: @actions-switcher-border;
+    bottom: -2px;
+    display: block;
+    position: absolute;
+    right: 15px;
+    top: 0;
+    transition: all 0.3s ease-in 0s;
+    width: 22px;
+}
+
+.actions-switch-text {
+    &:after {
+        content: attr(data-label-no);
+        display: block;
+        left: 32px;
+        margin-left: 12px;
+        position: absolute;
+    }
+}
+
+.actions-switch-checkbox {
+    display: none;
+    &:checked {
+        + .actions-switch-label {
+            .actions-switch-inner {
+                margin-left: 0;
+            }
+            .actions-switch-indicator {
+                right: 0;
+            }
+            .actions-switch-text {
+                &:after {
+                    content: attr(data-label-yes);
+                }
+            }
+        }
+    }
+}
diff --git a/setup/pub/styles/setup.css b/setup/pub/styles/setup.css
index ebfc3c33616..37dbf409f7a 100644
--- a/setup/pub/styles/setup.css
+++ b/setup/pub/styles/setup.css
@@ -3,4 +3,4 @@
  * See COPYING.txt for license details.
  */
 
-.abs-action-delete,.abs-icon,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.validation-symbol:after{content:'*';color:#e22626;font-weight:400;margin-left:3px}.abs-modal-overlay,.modals-overlay{background:rgba(0,0,0,.35);bottom:0;left:0;position:fixed;right:0;top:0}.abs-action-delete>span,.abs-visually-hidden,.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option)>.admin__field-label,.admin__field-tooltip .admin__field-tooltip-action span,.selectmenu .action-delete>span,.selectmenu .action-edit>span,.selectmenu .action-save>span,.selectmenu-toggle span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.abs-visually-hidden-reset{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.abs-clearfix:after,.abs-clearfix:before,.action-multicheck-wrap:after,.action-multicheck-wrap:before,.actions-split:after,.actions-split:before,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:before,.admin__data-grid-filters-footer:after,.admin__data-grid-filters-footer:before,.admin__data-grid-filters:after,.admin__data-grid-filters:before,.admin__data-grid-header-row:after,.admin__data-grid-header-row:before,.page-actions._fixed:after,.page-actions._fixed:before,.page-content:after,.page-content:before,.page-header-actions:after,.page-header-actions:before,.page-main-actions:not(._hidden):after,.page-main-actions:not(._hidden):before{content:'';display:table}.abs-clearfix:after,.action-multicheck-wrap:after,.actions-split:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-filters-footer:after,.admin__data-grid-filters:after,.admin__data-grid-header-row:after,.page-actions._fixed:after,.page-content:after,.page-header-actions:after,.page-main-actions:not(._hidden):after{clear:both}.abs-list-reset-styles{margin:0;padding:0;list-style:none}.abs-draggable-handle{cursor:-webkit-grab;cursor:move;font-size:0;margin-top:-4px;padding:0 1rem 0 0;vertical-align:middle;display:inline-block;text-decoration:none}.abs-draggable-handle:before{-webkit-font-smoothing:antialiased;font-size:1.8rem;line-height:inherit;color:#9e9e9e;content:'\e617';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.abs-draggable-handle:hover:before{color:#858585}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:focus{box-shadow:none;outline:0}._keyfocus :focus{box-shadow:0 0 0 1px #008bdb}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}embed,img,object,video{max-width:100%}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/light/opensans-300.eot);src:url(../fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../fonts/opensans/light/opensans-300.woff) format('woff'),url(../fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/regular/opensans-400.eot);src:url(../fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../fonts/opensans/regular/opensans-400.woff) format('woff'),url(../fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/semibold/opensans-600.eot);src:url(../fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/bold/opensans-700.eot);src:url(../fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../fonts/opensans/bold/opensans-700.woff) format('woff'),url(../fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#333;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.36;font-size:1.4rem}h1{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2.8rem}h2{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2rem}h3{margin:0 0 2rem;color:#41362f;font-weight:600;line-height:1.2;font-size:1.7rem}h4,h5,h6{font-weight:600;margin-top:0}p{margin:0 0 1em}small{font-size:1.2rem}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}dl,ol,ul{padding-left:0}nav ol,nav ul{list-style:none;margin:0;padding:0}html{height:100%}body{background-color:#fff;min-height:100%;min-width:102.4rem}.page-wrapper{background-color:#fff;display:inline-block;margin-left:-4px;vertical-align:top;width:calc(100% - 8.8rem)}.page-content{padding-bottom:3rem;padding-left:3rem;padding-right:3rem}.notices-wrapper{margin:0 3rem}.notices-wrapper .messages{margin-bottom:0}@media (min-width:1024px){html{width:100vw}body{overflow-x:hidden}}.row{margin-left:0;margin-right:0}.row:after{clear:both;content:'';display:table}.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9,.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}.row-gutter{margin-left:-1.5rem;margin-right:-1.5rem}.row-gutter>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.abs-clearer:after,.component-manager-content:after,.component-manager-title:after,.form-row:after,.header:after,.nav:after,body:after{clear:both;content:'';display:table}.ng-cloak{display:none!important}.hide.hide{display:none}.show.show{display:block}.text-center{text-align:center}.text-right{text-align:right}@font-face{font-family:Icons;src:url(../fonts/icons/icons.eot);src:url(../fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons/icons.woff2) format('woff2'),url(../fonts/icons/icons.woff) format('woff'),url(../fonts/icons/icons.ttf) format('truetype'),url(../fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}.icon-failed:before,.icon-success:before,[class*=icon-]:after{font-family:Icons}.icon-success{color:#79a22e}.icon-success:before{content:'\e62d'}.icon-failed{color:#e22626}.icon-failed:before{content:'\e632'}.icon-success-thick:after{content:'\e62d'}.icon-collapse:after{content:'\e615'}.icon-failed-thick:after{content:'\e632'}.icon-expand:after{content:'\e616'}.icon-warning:after{content:'\e623'}.icon-failed-round,.icon-success-round{border-radius:100%;color:#fff;font-size:2.5rem;height:1em;position:relative;text-align:center;width:1em}.icon-failed-round:after,.icon-success-round:after{bottom:0;font-size:.5em;left:0;position:absolute;right:0;top:.45em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e62d'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e632'}dl,ol,ul{margin-top:0}.list{padding-left:0}.list>li{display:block;margin-bottom:.75em;position:relative}.list>li>.icon-failed,.list>li>.icon-success{font-size:1.6em;left:-.1em;position:absolute;top:0}.list>li>.icon-success{color:#79a22e}.list>li>.icon-failed{color:#e22626}.list-item-failed,.list-item-icon,.list-item-success,.list-item-warning{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{left:-.1em;position:absolute}.list-item-success:before{color:#79a22e}.list-item-failed:before{color:#e22626}.list-item-warning:before{color:#ef672f}.list-definition{margin:0 0 3rem;padding:0}.list-definition>dt{clear:left;float:left}.list-definition>dd{margin-bottom:1em;margin-left:20rem}.btn-wrap{margin:0 auto}.btn-wrap .btn{width:100%}.btn{background:#e3e3e3;border:none;color:#514943;display:inline-block;font-size:1.6rem;font-weight:600;padding:.45em .9em;text-align:center}.btn:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.btn:active{background-color:#d6d6d6}.btn.disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.ie9 .btn.disabled,.ie9 .btn[disabled]{background-color:#f0f0f0;opacity:1;text-shadow:none}.btn-large{padding:.75em 1.25em}.btn-medium{font-size:1.4rem;padding:.5em 1.5em .6em}.btn-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.btn-link:active,.btn-link:focus,.btn-link:hover{background-color:transparent;color:#0fa7ff}.btn-prime{background-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.btn-prime:focus,.btn-prime:hover{background-color:#f65405;background-repeat:repeat-x;background-image:linear-gradient(to right,#e04f00 0,#f65405 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e04f00', endColorstr='#f65405', GradientType=1);color:#fff}.btn-prime:active{background-color:#e04f00;background-repeat:repeat-x;background-image:linear-gradient(to right,#f65405 0,#e04f00 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f65405', endColorstr='#e04f00', GradientType=1);color:#fff}.ie9 .btn-prime.disabled,.ie9 .btn-prime[disabled]{background-color:#fd6e23}.ie9 .btn-prime.disabled:active,.ie9 .btn-prime.disabled:hover,.ie9 .btn-prime[disabled]:active,.ie9 .btn-prime[disabled]:hover{background-color:#fd6e23;-webkit-filter:none;filter:none}.btn-secondary{background-color:#514943;color:#fff}.btn-secondary:hover{background-color:#5f564f;color:#fff}.btn-secondary:active,.btn-secondary:focus{background-color:#574e48;color:#fff}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary[disabled]:active{background-color:#514943;-webkit-filter:none;filter:none}[class*=btn-wrap-triangle]{overflow:hidden;position:relative}[class*=btn-wrap-triangle] .btn:after{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.btn-wrap-triangle-right{display:inline-block;padding-right:1.74rem;position:relative}.btn-wrap-triangle-right .btn{text-indent:.92rem}.btn-wrap-triangle-right .btn:after{border-color:transparent transparent transparent #e3e3e3;border-width:1.84rem 0 1.84rem 1.84rem;left:100%;margin-left:-1.74rem}.btn-wrap-triangle-right .btn:focus:after,.btn-wrap-triangle-right .btn:hover:after{border-left-color:#dbdbdb}.btn-wrap-triangle-right .btn:active:after{border-left-color:#d6d6d6}.btn-wrap-triangle-right .btn:not(.disabled):active,.btn-wrap-triangle-right .btn:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn.disabled:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:after{border-color:transparent transparent transparent #f0f0f0}.ie9 .btn-wrap-triangle-right .btn.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn.disabled:focus:after,.ie9 .btn-wrap-triangle-right .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:focus:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:hover:after{border-left-color:#f0f0f0}.btn-wrap-triangle-right .btn-prime:after{border-color:transparent transparent transparent #eb5202}.btn-wrap-triangle-right .btn-prime:focus:after,.btn-wrap-triangle-right .btn-prime:hover:after{border-left-color:#f65405}.btn-wrap-triangle-right .btn-prime:active:after{border-left-color:#e04f00}.btn-wrap-triangle-right .btn-prime:not(.disabled):active,.btn-wrap-triangle-right .btn-prime:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:after{border-color:transparent transparent transparent #fd6e23}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:hover:after{border-left-color:#fd6e23}.btn-wrap-triangle-left{display:inline-block;padding-left:1.74rem}.btn-wrap-triangle-left .btn{text-indent:-.92rem}.btn-wrap-triangle-left .btn:after{border-color:transparent #e3e3e3 transparent transparent;border-width:1.84rem 1.84rem 1.84rem 0;margin-right:-1.74rem;right:100%}.btn-wrap-triangle-left .btn:focus:after,.btn-wrap-triangle-left .btn:hover:after{border-right-color:#dbdbdb}.btn-wrap-triangle-left .btn:active:after{border-right-color:#d6d6d6}.btn-wrap-triangle-left .btn:not(.disabled):active,.btn-wrap-triangle-left .btn:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn.disabled:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:after{border-color:transparent #f0f0f0 transparent transparent}.ie9 .btn-wrap-triangle-left .btn.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:hover:after{border-right-color:#f0f0f0}.btn-wrap-triangle-left .btn-prime:after{border-color:transparent #eb5202 transparent transparent}.btn-wrap-triangle-left .btn-prime:focus:after,.btn-wrap-triangle-left .btn-prime:hover:after{border-right-color:#e04f00}.btn-wrap-triangle-left .btn-prime:active:after{border-right-color:#f65405}.btn-wrap-triangle-left .btn-prime:not(.disabled):active,.btn-wrap-triangle-left .btn-prime:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:after{border-color:transparent #fd6e23 transparent transparent}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:hover:after{border-right-color:#fd6e23}.btn-expand{background-color:transparent;border:none;color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;padding:0;position:relative}.btn-expand.expanded:after{border-color:transparent transparent #303030;border-width:0 .285em .36em}.btn-expand.expanded:hover:after{border-color:transparent transparent #3d3d3d}.btn-expand:hover{background-color:transparent;border:none;color:#3d3d3d}.btn-expand:hover:after{border-color:#3d3d3d transparent transparent}.btn-expand:after{border-color:#303030 transparent transparent;border-style:solid;border-width:.36em .285em 0;content:'';height:0;left:100%;margin-left:.5em;margin-top:-.18em;position:absolute;top:50%;width:0}[class*=col-] .form-el-input,[class*=col-] .form-el-select{width:100%}.form-fieldset{border:none;margin:0 0 1em;padding:0}.form-row{margin-bottom:2.2rem}.form-row .form-row{margin-bottom:.4rem}.form-row .form-label{display:block;font-weight:600;padding:.6rem 2.1em 0 0;text-align:right}.form-row .form-label.required{position:relative}.form-row .form-label.required:after{color:#eb5202;content:'*';font-size:1.15em;position:absolute;right:.7em;top:.5em}.form-row .form-el-checkbox+.form-label:before,.form-row .form-el-radio+.form-label:before{top:.7rem}.form-row .form-el-checkbox+.form-label:after,.form-row .form-el-radio+.form-label:after{top:1.1rem}.form-row.form-row-text{padding-top:.6rem}.form-row.form-row-text .action-sign-out{font-size:1.2rem;margin-left:1rem}.form-note{font-size:1.2rem;font-weight:600;margin-top:1rem}.form-el-dummy{display:none}.fieldset{border:0;margin:0;min-width:0;padding:0}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.form-el-input:required{box-shadow:none}.form-label{margin-bottom:.5em}[class*=form-label][for]{cursor:pointer}.form-el-insider-wrap{display:table;width:100%}.form-el-insider-input{display:table-cell;width:100%}.form-el-insider{border-radius:2px;display:table-cell;vertical-align:top;padding:.43em .55em .5em 0}.form-legend,.form-legend-expand,.form-legend-light{display:block;margin:0}.form-legend,.form-legend-expand{margin-bottom:2.5em;padding-top:1.5em;font-weight:600;font-size:1.25em}.form-legend{width:100%;border-top:1px solid #ccc}.form-legend-light{margin-bottom:1.5em;font-size:1em}.form-legend-expand{cursor:pointer;transition:opacity .2s linear}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e615'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e616';vertical-align:sub}.form-el-checkbox,.form-el-radio{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-el-checkbox.disabled+.form-label,.form-el-checkbox.disabled+.form-label:before,.form-el-checkbox[disabled]+.form-label,.form-el-checkbox[disabled]+.form-label:before,.form-el-radio.disabled+.form-label,.form-el-radio.disabled+.form-label:before,.form-el-radio[disabled]+.form-label,.form-el-radio[disabled]+.form-label:before{cursor:default;opacity:.5;pointer-events:none}.form-el-checkbox:not(.disabled)+.form-label:hover:before,.form-el-checkbox:not([disabled])+.form-label:hover:before,.form-el-radio:not(.disabled)+.form-label:hover:before,.form-el-radio:not([disabled])+.form-label:hover:before{border-color:#514943}.form-el-checkbox+.form-label,.form-el-radio+.form-label{font-weight:400;padding-left:2em;padding-right:0;position:relative;text-align:left;transition:border-color .1s linear}.form-el-checkbox+.form-label:before,.form-el-radio+.form-label:before{border:1px solid;content:'';left:0;position:absolute;top:.1rem;transition:border-color .1s linear}.form-el-checkbox+.form-label:before{background-color:#fff;border-color:#adadad;border-radius:2px;height:1.6rem;line-height:1.2;width:1.6rem;font-size:1.2rem}.form-el-checkbox:checked+.form-label::before{content:'\e62d';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.8rem;width:1.8rem}.form-el-radio+.form-label:after{background:0 0;border:.5rem solid transparent;border-radius:100%;content:'';height:0;left:.4rem;position:absolute;top:.5rem;transition:background .3s linear;width:0}.form-el-radio:checked+.form-label{cursor:default}.form-el-radio:checked+.form-label:after{border-color:#514943}.form-select-label{border:1px solid #adadad;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative;z-index:0}.form-select-label:hover,.form-select-label:hover:after{border-color:#949494}.form-select-label:active,.form-select-label:active:after,.form-select-label:focus,.form-select-label:focus:after{border-color:#008bdb}.form-select-label:after{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:2.36em;z-index:-2}.ie9 .form-select-label:after{display:none}.form-select-label:before{border-color:#303030 transparent transparent;border-style:solid;border-width:5px 4px 0;content:'';height:0;margin-right:-4px;margin-top:-2.5px;position:absolute;right:1.18em;top:50%;width:0;z-index:-1}.ie9 .form-select-label:before{display:none}.form-select-label .form-el-select{background:0 0;border:none;border-radius:0;content:'';display:block;margin:0;padding:.35em calc(2.36em + 10%) .5em .55em;width:110%}.ie9 .form-select-label .form-el-select{padding-right:.55em;width:100%}.form-el-select{background:#fff;border:1px solid #adadad;border-radius:2px;color:#303030;display:block;padding:.35em .55em}.multiselect-custom{position:relative;height:45.2rem;border:1px solid #adadad;overflow:auto;margin:0 0 1.5rem}.multiselect-custom ul{margin:0;padding:0;list-style:none;min-width:29rem}.multiselect-custom .item{padding:1rem 1.4rem}.multiselect-custom .selected{background-color:#e0f6fe}.multiselect-custom .form-label{margin-bottom:0}[class*=form-el-].invalid{border-color:#e22626}[class*=form-el-].invalid+.error-container{display:block}.error-container{background-color:#fffbbb;border:1px solid #ee7d7d;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.8rem 1rem .9rem}.check-result-message{margin-left:.5em;min-height:3.68rem;-webkit-align-items:center;-ms-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.check-result-text{margin-left:.5em}body:not([class]){min-width:0}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0}.abs-action-delete,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.text-stretch{margin-bottom:1.5em}.page-title-jumbo{font-size:4rem;font-weight:300;letter-spacing:-.05em;margin-bottom:2.9rem}.page-title-jumbo-success:before{color:#79a22e;content:'\e62d';font-size:3.9rem;margin-left:-.3rem;margin-right:2.4rem}.list{margin-bottom:3rem}.list-dot .list-item{display:list-item;list-style-position:inside;margin-bottom:1.2rem}.list-title{color:#333;font-size:1.4rem;font-weight:700;letter-spacing:.025em;margin-bottom:1.2rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{font-family:Icons;font-size:1.6rem;top:0}.list-item-success:before{content:'\e62d';font-size:1.6rem}.list-item-failed:before{content:'\e632';font-size:1.4rem;left:.1rem;top:.2rem}.list-item-warning:before{content:'\e623';font-size:1.3rem;left:.2rem}.form-wrap{padding-top:2.1rem;margin-bottom:3.6rem}.form-el-label-horizontal{display:inline-block;font-size:1.3rem;font-weight:600;letter-spacing:.025em;margin-left:.4rem;margin-bottom:.4rem}.app-updater{min-width:768px}body._has-modal{height:100%;overflow:hidden;width:100%}.modals-overlay{z-index:899}.modal-popup,.modal-slide{bottom:0;min-width:0;pointer-events:none;position:fixed;right:0;top:0;visibility:hidden}.modal-popup._show,.modal-slide._show{visibility:visible}.modal-popup._show .modal-inner-wrap,.modal-slide._show .modal-inner-wrap{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-popup .modal-inner-wrap,.modal-slide .modal-inner-wrap{background-color:#fff;box-shadow:0 0 12px 2px rgba(0,0,0,.35);opacity:1;pointer-events:auto}.modal-slide{left:14.8rem;z-index:900}.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto}.modal-slide._inner-scroll .modal-inner-wrap{overflow-y:visible;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.modal-slide._inner-scroll .modal-footer,.modal-slide._inner-scroll .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-slide._inner-scroll .modal-content{overflow-y:auto}.modal-slide._inner-scroll .modal-footer{margin-top:auto}.modal-slide .modal-content,.modal-slide .modal-footer,.modal-slide .modal-header{padding:0 2.6rem 2.6rem}.modal-slide .modal-header{padding-bottom:2.1rem;padding-top:2.1rem}.modal-popup{left:0;overflow-y:auto;z-index:900}.modal-popup._show .modal-inner-wrap{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.modal-popup .modal-inner-wrap{box-sizing:border-box;height:auto;left:0;margin:5rem auto;position:absolute;right:0;-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%);transition-duration:.2s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:75%}.modal-popup._inner-scroll{overflow-y:visible}.ie10 .modal-popup._inner-scroll,.ie9 .modal-popup._inner-scroll{overflow-y:auto}.modal-popup._inner-scroll .modal-inner-wrap{max-height:90%}.ie10 .modal-popup._inner-scroll .modal-inner-wrap,.ie9 .modal-popup._inner-scroll .modal-inner-wrap{max-height:none}.modal-popup._inner-scroll .modal-content{overflow-y:auto}.modal-popup .modal-content,.modal-popup .modal-footer,.modal-popup .modal-header{padding-left:3rem;padding-right:3rem}.modal-popup .modal-footer,.modal-popup .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-popup .modal-header{padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer{margin-top:auto;padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer-actions{text-align:right}.modal-popup.confirm .modal-inner-wrap{left:50%;margin-left:-25rem;width:50rem}.modal-popup.confirm .modal-footer{text-align:right}.modal-popup._image-box .modal-inner-wrap{margin:5rem auto;max-width:78rem;position:static}.modal-popup._image-box .thumbnail-preview{padding-bottom:3rem;text-align:center}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image-block{border:1px solid #ccc;margin:0 auto 2rem;max-width:58rem;padding:2rem}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image{max-height:54rem}@media (max-width:768px){.modal-popup.modal-slide{left:14.8rem;z-index:900}.modal-popup.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-popup.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto;margin:0;max-height:none}}.admin__action-dropdown-wrap{display:inline-block;position:relative}.admin__action-dropdown-wrap .admin__action-dropdown-text:after{left:-6px;right:0}.admin__action-dropdown-wrap .admin__action-dropdown-menu{left:auto;right:0}.admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__action-dropdown-wrap.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin__action-dropdown-wrap._active .admin__action-dropdown-text:after,.admin__action-dropdown-wrap.active .admin__action-dropdown-text:after{background-color:#fff;content:'';height:6px;position:absolute;top:100%}.admin__action-dropdown-wrap._active .admin__action-dropdown-menu,.admin__action-dropdown-wrap.active .admin__action-dropdown-menu{display:block}.admin__action-dropdown-wrap._disabled .admin__action-dropdown{cursor:default}.admin__action-dropdown-wrap._disabled:hover .admin__action-dropdown{color:#333}.admin__action-dropdown{background-color:#fff;border:1px solid transparent;border-bottom:none;border-radius:0;box-shadow:none;color:#333;display:inline-block;font-size:1.3rem;font-weight:400;letter-spacing:-.025em;padding:.7rem 3.3rem .8rem 1.5rem;position:relative;vertical-align:baseline;z-index:2}.admin__action-dropdown._active:after,.admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .admin__action-dropdown:after,.active .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin__action-dropdown:focus,.admin__action-dropdown:hover{background-color:#fff;color:#000;text-decoration:none}.admin__action-dropdown:after{right:1.5rem}.admin__action-dropdown:before{margin-right:1rem}.admin__action-dropdown-menu{background-color:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;line-height:1.36;margin-top:-1px;min-width:120%;padding:.5rem 1rem;position:absolute;top:100%;transition:all .15s ease;z-index:1}.admin__action-dropdown-menu>li{display:block}.admin__action-dropdown-menu>li>a{color:#333;display:block;text-decoration:none;padding:.6rem .5rem}.selectmenu{display:inline-block;position:relative;text-align:left;z-index:1}.selectmenu._active{z-index:500;border-color:#007bdb}.selectmenu .action-delete,.selectmenu .action-edit,.selectmenu .action-save{background-color:transparent;border-color:transparent;box-shadow:none;padding:0 1rem}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover,.selectmenu .action-save:hover{background-color:transparent;border-color:transparent;box-shadow:none}.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before{content:'\e630'}.selectmenu .action-delete,.selectmenu .action-edit{border:0 solid #fff;border-left-width:1px;bottom:0;position:absolute;right:0;top:0;z-index:1}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover{border:0 solid #fff;border-left-width:1px}.selectmenu .action-save:before{content:'\e625'}.selectmenu .action-edit:before{content:'\e631'}.selectmenu-value{display:inline-block}.selectmenu-value input[type=text]{-moz-appearance:none;-webkit-appearance:none;appearance:none;border:0;display:inline;margin:0;width:6rem}body._keyfocus .selectmenu-value input[type=text]:focus{box-shadow:none}.selectmenu-toggle{padding-right:3rem;background:0 0;border-width:0;bottom:0;float:right;position:absolute;right:0;top:0;width:0}.selectmenu-toggle._active:after,.selectmenu-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.1rem;top:50%;transition:all .2s linear;width:0}._active .selectmenu-toggle:after,.active .selectmenu-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:hover:after{border-color:#000 transparent transparent}.selectmenu-toggle:active,.selectmenu-toggle:focus,.selectmenu-toggle:hover{background:0 0}.selectmenu._active .selectmenu-toggle:before{border-color:#007bdb}body._keyfocus .selectmenu-toggle:focus{box-shadow:none}.selectmenu-toggle:before{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';display:block;position:absolute;right:0;top:0;width:3.2rem}.selectmenu-items{background:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;float:left;left:-1px;margin-top:3px;max-width:20rem;min-width:calc(100% + 2px);position:absolute;top:100%}.selectmenu-items._active{display:block}.selectmenu-items ul{float:left;list-style-type:none;margin:0;min-width:100%;padding:0}.selectmenu-items li{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;transition:background .2s linear}.selectmenu-items li:hover{background:#e3e3e3}.selectmenu-items li:last-child .selectmenu-item-action,.selectmenu-items li:last-child .selectmenu-item-action:visited{color:#008bdb;text-decoration:none}.selectmenu-items li:last-child .selectmenu-item-action:hover{color:#0fa7ff;text-decoration:underline}.selectmenu-items li:last-child .selectmenu-item-action:active{color:#ff5501;text-decoration:underline}.selectmenu-item{position:relative;width:100%;z-index:1}li._edit>.selectmenu-item{display:none}.selectmenu-item-edit{display:none;padding:.3rem 4rem .3rem .4rem;position:relative;white-space:nowrap;z-index:1}li:last-child .selectmenu-item-edit{padding-right:.4rem}.selectmenu-item-edit .admin__control-text{width:5.4rem;margin:0}li._edit .selectmenu-item-edit{display:block}.selectmenu-item-action{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:0;color:#333;display:block;font-size:1.4rem;font-weight:400;min-width:100%;padding:1rem 6rem 1rem 1.5rem;text-align:left;transition:background .2s linear;width:5rem}.selectmenu-item-action:focus,.selectmenu-item-action:hover{background:#e3e3e3}.abs-actions-split-xl .action-default,.page-actions .actions-split .action-default{margin-right:4rem}.abs-actions-split-xl .action-toggle,.page-actions .actions-split .action-toggle{padding-right:4rem}.abs-actions-split-xl .action-toggle:after,.page-actions .actions-split .action-toggle:after{border-width:.9rem .6rem 0;margin-top:-.3rem;right:1.4rem}.actions-split{position:relative;z-index:200}.actions-split._active,.actions-split.active,.actions-split:hover{box-shadow:0 0 0 1px #007bdb}.actions-split._active .action-toggle.action-primary,.actions-split._active .action-toggle.primary,.actions-split.active .action-toggle.action-primary,.actions-split.active .action-toggle.primary{background-color:#ba4000;border-color:#ba4000}.actions-split._active .dropdown-menu,.actions-split.active .dropdown-menu{opacity:1;visibility:visible;display:block}.actions-split .action-default,.actions-split .action-toggle{float:left;margin:0}.actions-split .action-default._active,.actions-split .action-default.active,.actions-split .action-default:hover,.actions-split .action-toggle._active,.actions-split .action-toggle.active,.actions-split .action-toggle:hover{box-shadow:none}.actions-split .action-default{margin-right:3.2rem;min-width:9.3rem}.actions-split .action-toggle{padding-right:3.2rem;border-left-color:rgba(0,0,0,.2);bottom:0;padding-left:0;position:absolute;right:0;top:0}.actions-split .action-toggle._active:after,.actions-split .action-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .actions-split .action-toggle:after,.active .actions-split .action-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:hover:after{border-color:#000 transparent transparent}.actions-split .action-toggle.action-primary:after,.actions-split .action-toggle.action-secondary:after,.actions-split .action-toggle.primary:after,.actions-split .action-toggle.secondary:after{border-color:#fff transparent transparent}.actions-split .action-toggle>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-select-wrap{display:inline-block;position:relative}.action-select-wrap .action-select{padding-right:3.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;font-weight:400;text-align:left}.action-select-wrap .action-select._active:after,.action-select-wrap .action-select.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .action-select-wrap .action-select:after,.active .action-select-wrap .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:hover:after{border-color:#000 transparent transparent}.action-select-wrap .action-select:hover,.action-select-wrap .action-select:hover:before{border-color:#878787}.action-select-wrap .action-select:before{background-color:#e3e3e3;border:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:3.2rem}.action-select-wrap .action-select._active{border-color:#007bdb}.action-select-wrap .action-select._active:before{border-color:#007bdb #007bdb #007bdb #adadad}.action-select-wrap .action-select[disabled]{color:#333}.action-select-wrap .action-select[disabled]:after{border-color:#333 transparent transparent}.action-select-wrap._active{z-index:500}.action-select-wrap._active .action-select,.action-select-wrap._active .action-select:before{border-color:#007bdb}.action-select-wrap._active .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .abs-action-menu .action-submenu,.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu,.action-select-wrap .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:45rem;overflow-y:auto}.action-select-wrap .action-menu-items{left:0;position:absolute;right:0;top:100%}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu{min-width:100%;position:static}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{position:absolute}.action-multicheck-wrap{display:inline-block;height:1.6rem;padding-top:1px;position:relative;width:3.1rem;z-index:200}.action-multicheck-wrap:hover .action-multicheck-toggle,.action-multicheck-wrap:hover .admin__control-checkbox+label:before{border-color:#878787}.action-multicheck-wrap._active .action-multicheck-toggle,.action-multicheck-wrap._active .admin__control-checkbox+label:before{border-color:#007bdb}.action-multicheck-wrap._active .abs-action-menu .action-submenu,.action-multicheck-wrap._active .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .action-menu,.action-multicheck-wrap._active .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu .action-submenu{opacity:1;visibility:visible;display:block}.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{background-color:#fff}.action-multicheck-wrap._disabled .action-multicheck-toggle,.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{border-color:#adadad;opacity:1}.action-multicheck-wrap .action-multicheck-toggle,.action-multicheck-wrap .admin__control-checkbox,.action-multicheck-wrap .admin__control-checkbox+label{float:left}.action-multicheck-wrap .action-multicheck-toggle{border-radius:0 1px 1px 0;height:1.6rem;margin-left:-1px;padding:0;position:relative;transition:border-color .1s linear;width:1.6rem}.action-multicheck-wrap .action-multicheck-toggle._active:after,.action-multicheck-wrap .action-multicheck-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .action-multicheck-wrap .action-multicheck-toggle:after,.active .action-multicheck-wrap .action-multicheck-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:hover:after{border-color:#000 transparent transparent}.action-multicheck-wrap .action-multicheck-toggle:focus{border-color:#007bdb}.action-multicheck-wrap .action-multicheck-toggle:after{right:.3rem}.action-multicheck-wrap .action-multicheck-toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.action-multicheck-wrap .abs-action-menu .action-submenu,.action-multicheck-wrap .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap .action-menu,.action-multicheck-wrap .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{left:-1.2rem;margin-top:1px;right:auto;text-align:left}.action-multicheck-wrap .action-menu-item{white-space:nowrap}.admin__action-multiselect-wrap{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.admin__action-multiselect-wrap.action-select-wrap:focus{box-shadow:none}.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .action-menu,.admin__action-multiselect-wrap.action-select-wrap .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:none;overflow-y:inherit}.admin__action-multiselect-wrap .action-menu-item{transition:background-color .1s linear}.admin__action-multiselect-wrap .action-menu-item._selected{background-color:#e3e3e3}.admin__action-multiselect-wrap .action-menu-item._hover{background-color:#e0f6fe}.admin__action-multiselect-wrap .admin__action-multiselect{border:1px solid #adadad;cursor:pointer;min-height:3.2rem;padding:.7rem 3.6rem .6rem 1em;white-space:normal}.admin__action-multiselect-wrap .admin__action-multiselect:after{bottom:1.25rem;top:auto}.admin__action-multiselect-wrap .admin__action-multiselect:before{height:3.2rem;top:auto;width:3.2rem}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{text-align:left}.admin__action-multiselect-label{position:relative;z-index:1}.admin__action-multiselect-label:before{margin-right:.5rem}.admin__action-multiselect-search-wrap{margin-bottom:1rem;padding:1rem;position:relative}.admin__action-multiselect-search-wrap+.admin__action-multiselect-menu-inner{border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;margin-bottom:1rem}.admin__action-multiselect-menu-inner{margin-bottom:0;max-height:17.2rem;overflow-y:auto}.admin__action-multiselect-search{padding-right:3rem;width:100%}.admin__action-multiselect-search-label{display:block;font-size:1.5rem;height:1em;overflow:hidden;position:absolute;right:2.2rem;top:1.7rem;width:1em}.admin__action-multiselect-search-label:before{content:'\e60c'}.admin__action-multiselect-actions-wrap{text-align:center}.admin__action-multiselect-actions-wrap .action-default{font-size:1.3rem;min-width:13rem}.admin__action-multiselect-crumb{background-color:#f5f5f5;border:1px solid #a79d95;border-radius:1px;display:inline-block;font-size:1.2rem;margin:-.3rem .9rem .5rem -1.1rem;padding:.3rem 2.4rem .4rem 1rem;position:relative;transition:border-color .1s linear}.admin__action-multiselect-crumb:hover{border-color:#908379}.admin__action-multiselect-crumb .action-close{bottom:0;font-size:.5em;position:absolute;right:0;top:0;width:2rem}.admin__action-multiselect-crumb .action-close:hover{color:#000}.admin__action-multiselect-crumb .action-close:active,.admin__action-multiselect-crumb .action-close:focus{background-color:transparent}.admin__action-multiselect-crumb .action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.abs-action-delete,.abs-action-reset,.action-close,.notifications-close,.search-global-field._active .search-global-action{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0}.abs-action-delete:hover,.abs-action-reset:hover,.action-close:hover,.notifications-close:hover,.search-global-field._active .search-global-action:hover{background-color:transparent;border:none;box-shadow:none}.abs-action-default,.abs-action-pattern,.abs-action-primary,.abs-action-quaternary,.abs-action-secondary,.abs-action-tertiary,.action-default,.action-primary,.action-quaternary,.action-secondary,.action-tertiary,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button,.page-actions>button.action-primary,.page-actions>button.primary,button,button.primary,button.secondary,button.tertiary{border:1px solid;border-radius:0;display:inline-block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:1.36;padding:.6rem 1em;text-align:center;vertical-align:baseline}.abs-action-default.disabled,.abs-action-default[disabled],.abs-action-pattern.disabled,.abs-action-pattern[disabled],.abs-action-primary.disabled,.abs-action-primary[disabled],.abs-action-quaternary.disabled,.abs-action-quaternary[disabled],.abs-action-secondary.disabled,.abs-action-secondary[disabled],.abs-action-tertiary.disabled,.abs-action-tertiary[disabled],.action-default.disabled,.action-default[disabled],.action-primary.disabled,.action-primary[disabled],.action-quaternary.disabled,.action-quaternary[disabled],.action-secondary.disabled,.action-secondary[disabled],.action-tertiary.disabled,.action-tertiary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.disabled,.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions .page-actions-buttons>button[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.disabled,.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],.page-actions>button[disabled],button.disabled,button.primary.disabled,button.primary[disabled],button.secondary.disabled,button.secondary[disabled],button.tertiary.disabled,button.tertiary[disabled],button[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-l,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions button,.page-actions>button.action-primary,.page-actions>button.primary{font-size:1.6rem;letter-spacing:.025em;padding-bottom:.6875em;padding-top:.6875em}.abs-action-delete{display:inline-block;font-size:1.6rem;margin-left:1.2rem;padding-top:.7rem;text-decoration:none;vertical-align:middle}.abs-action-delete:after{color:#666;content:'\e630'}.abs-action-delete:hover:after{color:#35302c}.abs-action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.abs-action-default:active,.abs-action-default:focus,.abs-action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.abs-action-primary,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary,button.primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.abs-action-primary:active,.abs-action-primary:focus,.abs-action-primary:hover,.page-actions .page-actions-buttons>button.action-primary:active,.page-actions .page-actions-buttons>button.action-primary:focus,.page-actions .page-actions-buttons>button.action-primary:hover,.page-actions .page-actions-buttons>button.primary:active,.page-actions .page-actions-buttons>button.primary:focus,.page-actions .page-actions-buttons>button.primary:hover,.page-actions>button.action-primary:active,.page-actions>button.action-primary:focus,.page-actions>button.action-primary:hover,.page-actions>button.primary:active,.page-actions>button.primary:focus,.page-actions>button.primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-primary.disabled,.abs-action-primary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],button.primary.disabled,button.primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-secondary,button.secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.abs-action-secondary:active,.abs-action-secondary:focus,.abs-action-secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-secondary:active,button.secondary:active{background-color:#35302c}.abs-action-tertiary,button.tertiary{background-color:transparent;border-color:transparent;text-shadow:none;color:#008bdb}.abs-action-tertiary:active,.abs-action-tertiary:focus,.abs-action-tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#0fa7ff;text-decoration:underline}.abs-action-quaternary,.page-actions .page-actions-buttons>button,.page-actions>button{background-color:transparent;border-color:transparent;text-shadow:none;color:#333}.abs-action-quaternary:active,.abs-action-quaternary:focus,.abs-action-quaternary:hover,.page-actions .page-actions-buttons>button:active,.page-actions .page-actions-buttons>button:focus,.page-actions .page-actions-buttons>button:hover,.page-actions>button:active,.page-actions>button:focus,.page-actions>button:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#1a1a1a}.abs-action-menu,.actions-split .abs-action-menu .action-submenu,.actions-split .abs-action-menu .action-submenu .action-submenu,.actions-split .action-menu,.actions-split .action-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.actions-split .dropdown-menu{text-align:left;background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu._active,.actions-split .abs-action-menu .action-submenu .action-submenu._active,.actions-split .abs-action-menu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .action-menu._active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .actions-split .dropdown-menu .action-submenu._active,.actions-split .dropdown-menu._active{display:block}.abs-action-menu>li,.actions-split .abs-action-menu .action-submenu .action-submenu>li,.actions-split .abs-action-menu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .action-menu>li,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .actions-split .dropdown-menu .action-submenu>li,.actions-split .dropdown-menu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu>li>a:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .abs-action-menu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .action-menu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu>li>a:hover{text-decoration:none}.abs-action-menu>li._visible,.abs-action-menu>li:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu .action-submenu>li:hover,.actions-split .abs-action-menu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .action-menu>li._visible,.actions-split .action-menu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu>li:hover,.actions-split .dropdown-menu>li._visible,.actions-split .dropdown-menu>li:hover{background-color:#e3e3e3}.abs-action-menu>li:active,.actions-split .abs-action-menu .action-submenu .action-submenu>li:active,.actions-split .abs-action-menu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .action-menu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu>li:active,.actions-split .dropdown-menu>li:active{background-color:#cacaca}.abs-action-menu>li._parent,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent,.actions-split .abs-action-menu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .action-menu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent,.actions-split .dropdown-menu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-menu-item,.abs-action-menu .item,.actions-split .abs-action-menu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .item,.actions-split .abs-action-menu .action-submenu .item,.actions-split .action-menu .action-menu-item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .item,.actions-split .action-menu .item,.actions-split .actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .actions-split .dropdown-menu .action-submenu .item,.actions-split .dropdown-menu .action-menu-item,.actions-split .dropdown-menu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu a.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .abs-action-menu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .action-menu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu a.action-menu-item{color:#333}.abs-action-menu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.abs-action-wrap-triangle{position:relative}.abs-action-wrap-triangle .action-default{width:100%}.abs-action-wrap-triangle .action-default:after,.abs-action-wrap-triangle .action-default:before{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.abs-action-wrap-triangle .action-default:active,.abs-action-wrap-triangle .action-default:focus,.abs-action-wrap-triangle .action-default:hover{box-shadow:none}._keyfocus .abs-action-wrap-triangle .action-default:focus{box-shadow:0 0 0 1px #007bdb}.ie10 .abs-action-wrap-triangle .action-default.disabled,.ie10 .abs-action-wrap-triangle .action-default[disabled],.ie9 .abs-action-wrap-triangle .action-default.disabled,.ie9 .abs-action-wrap-triangle .action-default[disabled]{background-color:#fcfcfc;opacity:1;text-shadow:none}.abs-action-wrap-triangle-right{display:inline-block;padding-right:1.6rem;position:relative}.abs-action-wrap-triangle-right .action-default:after,.abs-action-wrap-triangle-right .action-default:before{border-color:transparent transparent transparent #e3e3e3;border-width:1.7rem 0 1.6rem 1.7rem;left:100%;margin-left:-1.7rem}.abs-action-wrap-triangle-right .action-default:before{border-left-color:#949494;right:-1px}.abs-action-wrap-triangle-right .action-default:active:after,.abs-action-wrap-triangle-right .action-default:focus:after,.abs-action-wrap-triangle-right .action-default:hover:after{border-left-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-right .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-right .action-default[disabled]:after{border-color:transparent transparent transparent #fcfcfc}.abs-action-wrap-triangle-right .action-primary:after{border-color:transparent transparent transparent #eb5202}.abs-action-wrap-triangle-right .action-primary:active:after,.abs-action-wrap-triangle-right .action-primary:focus:after,.abs-action-wrap-triangle-right .action-primary:hover:after{border-left-color:#ba4000}.abs-action-wrap-triangle-left{display:inline-block;padding-left:1.6rem}.abs-action-wrap-triangle-left .action-default{text-indent:-.85rem}.abs-action-wrap-triangle-left .action-default:after,.abs-action-wrap-triangle-left .action-default:before{border-color:transparent #e3e3e3 transparent transparent;border-width:1.7rem 1.7rem 1.6rem 0;margin-right:-1.7rem;right:100%}.abs-action-wrap-triangle-left .action-default:before{border-right-color:#949494;left:-1px}.abs-action-wrap-triangle-left .action-default:active:after,.abs-action-wrap-triangle-left .action-default:focus:after,.abs-action-wrap-triangle-left .action-default:hover:after{border-right-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-left .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-left .action-default[disabled]:after{border-color:transparent #fcfcfc transparent transparent}.abs-action-wrap-triangle-left .action-primary:after{border-color:transparent #eb5202 transparent transparent}.abs-action-wrap-triangle-left .action-primary:active:after,.abs-action-wrap-triangle-left .action-primary:focus:after,.abs-action-wrap-triangle-left .action-primary:hover:after{border-right-color:#ba4000}.action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.action-default:active,.action-default:focus,.action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.action-primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.action-primary:active,.action-primary:focus,.action-primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-primary.disabled,.action-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.action-secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.action-secondary:active,.action-secondary:focus,.action-secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-secondary:active{background-color:#35302c}.action-quaternary,.action-tertiary{background-color:transparent;border-color:transparent;text-shadow:none}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover,.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none}.action-tertiary{color:#008bdb}.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{color:#0fa7ff;text-decoration:underline}.action-quaternary{color:#333}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover{color:#1a1a1a}.action-close>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.action-close:before{content:'\e62f';transition:color .1s linear}.action-close:hover{cursor:pointer;text-decoration:none}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu .action-submenu .action-submenu._active,.abs-action-menu .action-submenu._active,.action-menu .action-submenu._active,.action-menu._active,.actions-split .action-menu .action-submenu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .dropdown-menu .action-submenu._active{display:block}.abs-action-menu .action-submenu .action-submenu>li,.abs-action-menu .action-submenu>li,.action-menu .action-submenu>li,.action-menu>li,.actions-split .action-menu .action-submenu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .dropdown-menu .action-submenu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu .action-submenu .action-submenu>li>a:hover,.abs-action-menu .action-submenu>li>a:hover,.action-menu .action-submenu>li>a:hover,.action-menu>li>a:hover,.actions-split .action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu>li>a:hover{text-decoration:none}.abs-action-menu .action-submenu .action-submenu>li._visible,.abs-action-menu .action-submenu .action-submenu>li:hover,.abs-action-menu .action-submenu>li._visible,.abs-action-menu .action-submenu>li:hover,.action-menu .action-submenu>li._visible,.action-menu .action-submenu>li:hover,.action-menu>li._visible,.action-menu>li:hover,.actions-split .action-menu .action-submenu .action-submenu>li._visible,.actions-split .action-menu .action-submenu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu>li:hover{background-color:#e3e3e3}.abs-action-menu .action-submenu .action-submenu>li:active,.abs-action-menu .action-submenu>li:active,.action-menu .action-submenu>li:active,.action-menu>li:active,.actions-split .action-menu .action-submenu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu>li:active{background-color:#cacaca}.abs-action-menu .action-submenu .action-submenu>li._parent,.abs-action-menu .action-submenu>li._parent,.action-menu .action-submenu>li._parent,.action-menu>li._parent,.actions-split .action-menu .action-submenu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.abs-action-menu .action-submenu>li._parent>.action-menu-item,.action-menu .action-submenu>li._parent>.action-menu-item,.action-menu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .item,.abs-action-menu .action-submenu .item,.action-menu .action-menu-item,.action-menu .action-submenu .action-menu-item,.action-menu .action-submenu .item,.action-menu .item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .item,.actions-split .action-menu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu .action-submenu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu .action-submenu,.ie9 .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .action-menu .action-submenu,.ie9 .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu .action-submenu .action-submenu a.action-menu-item,.abs-action-menu .action-submenu a.action-menu-item,.action-menu .action-submenu a.action-menu-item,.action-menu a.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu a.action-menu-item{color:#333}.abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.abs-action-menu .action-submenu a.action-menu-item:focus,.action-menu .action-submenu a.action-menu-item:focus,.action-menu a.action-menu-item:focus,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.messages .message:last-child{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:1.4rem;margin:0 0 1px;padding:1.8rem 4rem 1.8rem 5.5rem;position:relative;text-shadow:none}.message:before{background:0 0;border:0;color:#007bdb;content:'\e61a';font-family:Icons;font-size:1.9rem;font-style:normal;font-weight:400;height:auto;left:1.9rem;line-height:inherit;margin-top:-1.3rem;position:absolute;speak:none;text-shadow:none;top:50%;width:auto}.message-notice:before{color:#007bdb;content:'\e61a'}.message-warning:before{color:#eb5202;content:'\e623'}.message-error{background:#fcc}.message-error:before{color:#e22626;content:'\e632';font-size:1.5rem;left:2.2rem;margin-top:-1rem}.message-success:before{color:#79a22e;content:'\e62d'}.message-spinner:before{display:none}.message-spinner .spinner{font-size:2.5rem;left:1.5rem;position:absolute;top:1.5rem}.message-in-rating-edit{margin-left:1.8rem;margin-right:1.8rem}.modal-popup .action-close,.modal-slide .action-close{color:#736963;position:absolute;right:0;top:0}.modal-popup .action-close:active,.modal-slide .action-close:active{-webkit-transform:none;-ms-transform:none;transform:none}.modal-popup .action-close:active:before,.modal-slide .action-close:active:before{font-size:1.8rem}.modal-popup .action-close:hover:before,.modal-slide .action-close:hover:before{color:#58504b}.modal-popup .action-close:before,.modal-slide .action-close:before{font-size:2rem}.modal-popup .modal-title{font-size:2.4rem;margin-right:6.4rem}.modal-popup .action-close{padding:3rem}.modal-popup .action-close:active,.modal-popup .action-close:focus{background:0 0;padding-right:3.1rem;padding-top:3.1rem}.modal-slide .modal-title{font-size:2.1rem;margin-right:5.7rem}.modal-slide .action-close{padding:2.1rem 2.6rem}.modal-slide .action-close:active{padding-right:2.7rem;padding-top:2.2rem}.modal-slide .page-main-actions{margin-bottom:.6rem;margin-top:2.1rem}.modal-title{font-weight:400;margin-bottom:0;min-height:1em}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;animation-delay:.27s;-webkit-transform:rotate(-315deg);-ms-transform:rotate(-315deg);transform:rotate(-315deg)}.spinner>span:nth-child(2){-webkit-animation-delay:.36s;animation-delay:.36s;-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner>span:nth-child(3){-webkit-animation-delay:.45s;animation-delay:.45s;-webkit-transform:rotate(-225deg);-ms-transform:rotate(-225deg);transform:rotate(-225deg)}.spinner>span:nth-child(4){-webkit-animation-delay:.54s;animation-delay:.54s;-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner>span:nth-child(5){-webkit-animation-delay:.63s;animation-delay:.63s;-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.spinner>span:nth-child(6){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner>span:nth-child(7){-webkit-animation-delay:.81s;animation-delay:.81s;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spinner>span:nth-child(8){-webkit-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span{-webkit-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);-webkit-animation-name:fade;animation-name:fade;-webkit-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:linear;animation-direction:linear;background-color:#fff;border-radius:6px;clip:rect(0 .28571429em .1em 0);height:.1em;margin-top:.5em;position:absolute;width:1em}.ie9 .spinner{background:url(../images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.popup-loading{background:rgba(255,255,255,.8);border-color:#ef672f;color:#ef672f;font-size:14px;font-weight:700;left:50%;margin-left:-100px;padding:100px 0 10px;position:fixed;text-align:center;top:40%;width:200px;z-index:1003}.popup-loading:after{background-image:url(../images/loader-1.gif);content:'';height:64px;left:50%;margin:-32px 0 0 -32px;position:absolute;top:40%;width:64px;z-index:2}.loading-mask,.loading-old{background:rgba(255,255,255,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2003}.loading-mask img,.loading-old img{display:none}.loading-mask p,.loading-old p{margin-top:118px}.loading-mask .loader,.loading-old .loader{background:url(../images/loader-1.gif) 50% 30% no-repeat #e5e2dd;border-radius:5px;bottom:0;color:#5e5b56;font-size:14px;font-weight:700;height:160px;left:0;margin:auto;opacity:.95;position:absolute;right:0;text-align:center;top:0;width:160px}.admin-user{float:right;line-height:1.36;margin-left:.3rem;z-index:390}.admin-user._active .admin__action-dropdown,.admin-user.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin-user .admin__action-dropdown{height:3.3rem;padding:.7rem 2.8rem .4rem 4rem}.admin-user .admin__action-dropdown._active:after,.admin-user .admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:after{border-color:#777 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.3rem;top:50%;transition:all .2s linear;width:0}._active .admin-user .admin__action-dropdown:after,.active .admin-user .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin-user .admin__action-dropdown:before{color:#777;content:'\e600';font-size:2rem;left:1.1rem;margin-top:-1.1rem;position:absolute;top:50%}.admin-user .admin__action-dropdown:hover:before{color:#333}.admin-user .admin__action-dropdown-menu{min-width:20rem;padding-left:1rem;padding-right:1rem}.admin-user .admin__action-dropdown-menu>li>a{padding-right:1.8rem;padding-left:.5em;white-space:nowrap;transition:background-color .1s linear}.admin-user .admin__action-dropdown-menu>li>a:hover{background-color:#e0f6fe;color:#333}.admin-user .admin__action-dropdown-menu>li>a:active{background-color:#c7effd;bottom:-1px;position:relative}.admin-user .admin__action-dropdown-menu .admin-user-name{text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:20rem;overflow:hidden;vertical-align:top}.admin-user-account-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:11.2rem}.search-global{float:right;margin-right:-.3rem;position:relative;z-index:380}.search-global-field{min-width:5rem}.search-global-field._active .search-global-input{background-color:#fff;border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);padding-right:4rem;width:25rem}.search-global-field._active .search-global-action{display:block;height:3.3rem;position:absolute;right:0;text-indent:-100%;top:0;width:5rem;z-index:3}.search-global-field .autocomplete-results{height:3.3rem;position:absolute;right:0;top:0;width:25rem}.search-global-field .search-global-menu{border:1px solid #007bdb;border-top-color:transparent;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin-top:-2px;padding:0;position:absolute;right:0;top:100%;z-index:2}.search-global-field .search-global-menu:after{background-color:#fff;content:'';height:5px;left:0;position:absolute;right:0;top:-5px}.search-global-field .search-global-menu>li{background-color:#fff;border-top:1px solid #ddd;display:block;font-size:1.2rem;padding:.75rem 1.4rem .55rem}.search-global-field .search-global-menu>li._active{background-color:#e0f6fe}.search-global-field .search-global-menu .title{display:block;font-size:1.4rem}.search-global-field .search-global-menu .type{color:#1a1a1a;display:block}.search-global-label{cursor:pointer;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;z-index:2}.search-global-label:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.search-global-label:hover:before{color:#000}.search-global-label:before{color:#777;content:'\e60c';font-size:2rem}.search-global-input{background-color:transparent;border:1px solid transparent;font-size:1.4rem;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;transition:all .1s linear,width .3s linear;width:5rem;z-index:1}.search-global-action{display:none}.notifications-wrapper{float:right;line-height:1;position:relative}.notifications-wrapper.active{z-index:400}.notifications-wrapper.active .notifications-action{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.notifications-wrapper.active .notifications-action:after{border:none;background-color:#fff;content:'';display:block;height:6px;left:-6px;margin-top:0;position:absolute;right:0;top:100%;width:auto}.notifications-wrapper .admin__action-dropdown-menu{padding:1rem 0 0;width:32rem}.notifications-action{color:#777;height:3.3rem;padding:.75rem 2rem .65rem}.notifications-action:after{display:none}.notifications-action:before{content:'\e607';font-size:1.9rem;margin-right:0}.notifications-action:active:before{position:relative;top:1px}.notifications-action .notifications-counter{background-color:#e22626;border-radius:1em;color:#fff;display:inline-block;font-size:1.1rem;font-weight:700;left:50%;margin-left:.3em;margin-top:-1.1em;padding:.3em .5em;position:absolute;top:50%}.notifications-entry{line-height:1.36;padding:.6rem 2rem .8rem;position:relative;transition:background-color .1s linear}.notifications-entry:hover{background-color:#e0f6fe}.notifications-entry.notifications-entry-last{margin:0 2rem;padding:.3rem 0 1.3rem;text-align:center}.notifications-entry.notifications-entry-last:hover{background-color:transparent}.notifications-entry+.notifications-entry-last{border-top:1px solid #ddd;padding-bottom:.6rem}.notifications-entry ._cutted{cursor:pointer}.notifications-entry ._cutted .notifications-entry-description-start:after{content:'...'}.notifications-entry-title{color:#ef672f;display:block;font-size:1.1rem;font-weight:700;margin-bottom:.7rem;margin-right:1em}.notifications-entry-description{color:#333;font-size:1.1rem;margin-bottom:.8rem}.notifications-entry-description-end{display:none}.notifications-entry-description-end._show{display:inline}.notifications-entry-time{color:#777;font-size:1.1rem}.notifications-close{line-height:1;padding:1rem;position:absolute;right:0;top:.6rem}.notifications-close:before{color:#ccc;content:'\e620';transition:color .1s linear}.notifications-close:hover:before{color:#b3b3b3}.notifications-close:active{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.page-header-actions{padding-top:1.1rem}.page-header-hgroup{padding-right:1.5rem}.page-title{color:#333;font-size:2.8rem;margin-bottom:0}.page-header{padding:1.5rem 3rem}.menu-wrapper{display:inline-block;position:relative;width:8.8rem;z-index:700}.menu-wrapper:before{background-color:#373330;bottom:0;content:'';left:0;position:fixed;top:0;width:8.8rem;z-index:699}.menu-wrapper._fixed{left:0;position:fixed;top:0}.menu-wrapper._fixed~.page-wrapper{margin-left:8.8rem}.menu-wrapper .logo{display:block;height:8.8rem;padding:2.4rem 0 2.2rem;position:relative;text-align:center;z-index:700}._keyfocus .menu-wrapper .logo:focus{background-color:#4a4542;box-shadow:none}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a{background-color:#373330}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a:after{display:none}.menu-wrapper .logo:hover .logo-img{-webkit-filter:brightness(1.1);filter:brightness(1.1)}.menu-wrapper .logo:active .logo-img{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.menu-wrapper .logo .logo-img{height:4.2rem;transition:-webkit-filter .2s linear,filter .2s linear,transform .1s linear;width:3.5rem}.abs-menu-separator,.admin__menu .item-partners>a:after,.admin__menu .level-0:first-child>a:after{background-color:#736963;content:'';display:block;height:1px;left:0;margin-left:16%;position:absolute;top:0;width:68%}.admin__menu li{display:block}.admin__menu .level-0:first-child>a{position:relative}.admin__menu .level-0:first-child._active>a:after{display:none}.admin__menu .level-0._active>a,.admin__menu .level-0:hover>a{color:#f7f3eb}.admin__menu .level-0._active>a{background-color:#524d49}.admin__menu .level-0:hover>a{background-color:#4a4542}.admin__menu .level-0>a{color:#aaa6a0;display:block;font-size:1rem;letter-spacing:.025em;min-height:6.2rem;padding:1.2rem .5rem .5rem;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;transition:background-color .1s linear;word-wrap:break-word;z-index:700}.admin__menu .level-0>a:focus{box-shadow:none}.admin__menu .level-0>a:before{content:'\e63a';display:block;font-size:2.2rem;height:2.2rem}.admin__menu .level-0>.submenu{background-color:#4a4542;box-shadow:0 0 3px #000;left:100%;min-height:calc(8.8rem + 2rem + 100%);padding:2rem 0 0;position:absolute;top:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-duration:.3s;transition-timing-function:ease-in-out;visibility:hidden;z-index:697}.admin__menu .level-0._show>.submenu{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);visibility:visible;z-index:698}.admin__menu .level-1{margin-left:1.5rem;margin-right:1.5rem}.admin__menu [class*=level-]:not(.level-0) a{display:block;padding:1.25rem 1.5rem}.admin__menu [class*=level-]:not(.level-0) a:hover{background-color:#403934}.admin__menu [class*=level-]:not(.level-0) a:active{padding-top:1.35rem;padding-bottom:1.15rem;background-color:#322c29}.admin__menu .submenu li{min-width:23.8rem}.admin__menu .submenu a{color:#fcfcfc;transition:background-color .1s linear}.admin__menu .submenu a:focus,.admin__menu .submenu a:hover{box-shadow:none;text-decoration:none}._keyfocus .admin__menu .submenu a:focus{background-color:#403934}._keyfocus .admin__menu .submenu a:active{background-color:#322c29}.admin__menu .submenu .parent{margin-bottom:4.5rem}.admin__menu .submenu .parent .submenu-group-title,.admin__menu .submenu .parent>a{color:#a79d95;display:block;font-size:1.6rem;font-weight:600;margin-bottom:.7rem;padding:1.25rem 1.5rem;pointer-events:none}.admin__menu .submenu .column{display:table-cell}.admin__menu .submenu-title{color:#fff;display:block;font-size:2.2rem;font-weight:600;margin-bottom:4.2rem;margin-left:3rem;margin-right:5.8rem}.admin__menu .submenu-sub-title{color:#fff;display:block;font-size:1.2rem;margin:-3.8rem 5.8rem 3.8rem 3rem}.admin__menu .action-close{padding:2.4rem 2.8rem;position:absolute;right:0;top:0}.admin__menu .action-close:before{color:#a79d95;font-size:1.7rem}.admin__menu .action-close:hover:before{color:#fff}.admin__menu .item-dashboard>a:before{content:'\e604';font-size:1.8rem;padding-top:.4rem}.admin__menu .item-sales>a:before{content:'\e60b'}.admin__menu .item-catalog>a:before{content:'\e608'}.admin__menu .item-customer>a:before{content:'\e603';font-size:2.6rem;position:relative;top:-.4rem}.admin__menu .item-marketing>a:before{content:'\e609';font-size:2rem;padding-top:.2rem}.admin__menu .item-content>a:before{content:'\e602';font-size:2.4rem;position:relative;top:-.2rem}.admin__menu .item-report>a:before{content:'\e60a'}.admin__menu .item-stores>a:before{content:'\e60d';font-size:1.9rem;padding-top:.3rem}.admin__menu .item-system>a:before{content:'\e60e'}.admin__menu .item-partners>a{padding-bottom:1rem}.admin__menu .item-partners>a:before{content:'\e612'}.admin__menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:697}.store-switcher{color:#333;float:left;font-size:1.3rem;margin-top:.7rem}.store-switcher .admin__action-dropdown{margin-left:.5em;background-color:#f8f8f8}.store-switcher .dropdown{display:inline-block;position:relative}.store-switcher .dropdown:after,.store-switcher .dropdown:before{content:'';display:table}.store-switcher .dropdown:after{clear:both}.store-switcher .dropdown .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e607';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle:active:after,.store-switcher .dropdown .action.toggle:hover:after{color:#333}.store-switcher .dropdown .action.toggle.active{display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle.active:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e618';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle.active:active:after,.store-switcher .dropdown .action.toggle.active:hover:after{color:#333}.store-switcher .dropdown .dropdown-menu{background:#fff;border:1px solid #ada89e;z-index:100;margin:4px 0 0;padding:0;list-style:none;box-sizing:border-box;position:absolute;top:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);min-width:19.5rem;display:none}.store-switcher .dropdown .dropdown-menu li{margin:0;padding:0}.store-switcher .dropdown .dropdown-menu li:hover{background:0 0;cursor:pointer}.store-switcher .dropdown.active{overflow:visible}.store-switcher .dropdown.active .dropdown-menu{display:block}.store-switcher .dropdown-menu{left:0;margin-top:.5em;padding-top:.25em}.store-switcher .dropdown-menu li{border:0;cursor:default}.store-switcher .dropdown-menu li:hover{cursor:default}.store-switcher .dropdown-menu li a,.store-switcher .dropdown-menu li span{color:#333;display:block;padding:.5rem 1.3rem}.store-switcher .dropdown-menu li a{text-decoration:none}.store-switcher .dropdown-menu li a:hover{background:#e9e9e9}.store-switcher .dropdown-menu li span{color:#adadad;cursor:default}.store-switcher .dropdown-menu li.current span{background:#eee;color:#333}.store-switcher .dropdown-menu .store-switcher-store a,.store-switcher .dropdown-menu .store-switcher-store span{padding-left:2.6rem}.store-switcher .dropdown-menu .store-switcher-store-view a,.store-switcher .dropdown-menu .store-switcher-store-view span{padding-left:3.9rem}.store-switcher .dropdown-menu .dropdown-toolbar{border-top:1px solid #ebebeb;margin-top:1rem}.store-switcher .dropdown-menu .dropdown-toolbar a:before{content:'\e60e';margin-right:.25em;position:relative;top:1px}.store-switcher-label{font-weight:700}.store-switcher-alt{display:inline-block;position:relative}.store-switcher-alt.active .dropdown-menu{display:block}.store-switcher-alt .dropdown-menu{margin-top:2px;white-space:nowrap}.store-switcher-alt .dropdown-menu ul{list-style:none;margin:0;padding:0}.store-switcher-alt strong{color:#a6a098;display:block;font-size:14px;font-weight:500;line-height:1.333;padding:5px 10px}.store-switcher-alt .store-selected{color:#676056;cursor:pointer;font-size:12px;font-weight:400;line-height:1.333}.store-switcher-alt .store-selected:after{color:#b3b0ad;content:'\e02c';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;margin:0 0 0 3px;speak:none;vertical-align:text-top}.store-switcher-alt .store-switcher-store,.store-switcher-alt .store-switcher-website{padding:0}.store-switcher-alt .store-switcher-store:hover,.store-switcher-alt .store-switcher-website:hover{background:0 0}.store-switcher-alt .manage-stores,.store-switcher-alt .store-switcher-all,.store-switcher-alt .store-switcher-store-view{padding:0}.store-switcher-alt .manage-stores>a,.store-switcher-alt .store-switcher-all>a{color:#676056;display:block;font-size:12px;padding:8px 15px;text-decoration:none}.store-switcher-website{margin:5px 0 0}.store-switcher-website>strong{padding-left:13px}.store-switcher-store{margin:1px 0 0}.store-switcher-store>strong{padding-left:20px}.store-switcher-store>ul{margin-top:1px}.store-switcher-store-view:first-child{border-top:1px solid #e5e5e5}.store-switcher-store-view>a{color:#333;display:block;font-size:13px;padding:5px 15px 5px 24px;text-decoration:none}.tooltip{margin-left:.5em}.tooltip .help a,.tooltip .help span{cursor:pointer;display:inline-block;height:22px;position:relative;vertical-align:middle;width:22px;z-index:2}.tooltip .help a:before,.tooltip .help span:before{color:#333;content:'\e633';font-size:1.7rem}.tooltip .help a span,.tooltip .help span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tooltip .help a:hover{text-decoration:none}.tooltip .tooltip-content{background:#000;border-radius:3px;color:#fff;display:none;margin-left:-19px;margin-top:10px;max-width:200px;padding:4px 8px;position:absolute;text-shadow:none;z-index:20}.tooltip .tooltip-content:before{border-bottom:5px solid #000;border-left:5px solid transparent;border-right:5px solid transparent;content:'';height:0;left:20px;opacity:.8;position:absolute;top:-5px;width:0}.tooltip .tooltip-content.loading{position:absolute}.tooltip .tooltip-content.loading:before{border-bottom-color:rgba(0,0,0,.3)}.tooltip:hover>.tooltip-content{display:block}.page-actions._fixed,.page-main-actions:not(._hidden){background:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;padding:1.5rem}.page-main-actions{margin:0 0 3rem}.page-main-actions._hidden .store-switcher{display:none}.page-actions{float:right}.page-main-actions .page-actions._fixed{left:8.8rem;position:fixed;right:0;top:0;z-index:400}.page-main-actions .page-actions._fixed .page-actions-inner:before{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;content:attr(data-title);float:left;font-size:2.8rem;margin-top:.3rem;max-width:50%}.page-actions .page-actions-buttons>button,.page-actions>button{float:right;margin-left:1.3rem}.page-actions .page-actions-buttons>button.action-back,.page-actions .page-actions-buttons>button.back,.page-actions>button.action-back,.page-actions>button.back{float:left;-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before{content:'\e626';margin-right:.5em;position:relative;top:1px}.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary{-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .page-actions-buttons>button.save:not(.primary),.page-actions>button.save:not(.primary){-ms-flex-order:1;-webkit-order:1;order:1}.page-actions .page-actions-buttons>button.delete,.page-actions>button.delete{-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .actions-split{float:right;margin-left:1.3rem;-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .actions-split .dropdown-menu .item{display:block}.page-actions-buttons{float:right;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex}.customer-index-edit .page-actions-buttons{background-color:transparent}.admin__page-nav{background:#f1f1f1;border:1px solid #e3e3e3}.admin__page-nav._collapsed:first-child{border-bottom:none}.admin__page-nav._collapsed._show{border-bottom:1px solid #e3e3e3}.admin__page-nav._collapsed._show ._collapsible{background:#f1f1f1}.admin__page-nav._collapsed._show ._collapsible:after{content:'\e62b'}.admin__page-nav._collapsed._show ._collapsible+.admin__page-nav-items{display:block}.admin__page-nav._collapsed._hide .admin__page-nav-title-messages,.admin__page-nav._collapsed._hide .admin__page-nav-title-messages ._active{display:inline-block}.admin__page-nav+._collapsed{border-bottom:none;border-top:none}.admin__page-nav-title{border-bottom:1px solid #e3e3e3;color:#303030;display:block;font-size:1.4rem;line-height:1.2;margin:0 0 -1px;padding:1.8rem 1.5rem;position:relative;text-transform:uppercase}.admin__page-nav-title._collapsible{background:#fff;cursor:pointer;margin:0;padding-right:3.5rem;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-title._collapsible+.admin__page-nav-items{display:none;margin-top:-1px}.admin__page-nav-title._collapsible:after{content:'\e628';font-size:1.3rem;font-weight:700;position:absolute;right:1.8rem;top:2rem}.admin__page-nav-title._collapsible:hover{background:#f1f1f1}.admin__page-nav-title._collapsible:last-child{margin:0 0 -1px}.admin__page-nav-title strong{font-weight:700}.admin__page-nav-title .admin__page-nav-title-messages{display:none}.admin__page-nav-items{list-style-type:none;margin:0;padding:1rem 0 1.3rem}.admin__page-nav-item{border-left:3px solid transparent;margin-left:.7rem;padding:0;position:relative;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-item:hover{border-color:#e4e4e4}.admin__page-nav-item:hover .admin__page-nav-link{background:#e4e4e4;color:#303030;text-decoration:none}.admin__page-nav-item._active,.admin__page-nav-item.ui-state-active{border-color:#eb5202}.admin__page-nav-item._active .admin__page-nav-link,.admin__page-nav-item.ui-state-active .admin__page-nav-link{background:#fff;border-color:#e3e3e3;border-right:1px solid #fff;color:#303030;margin-right:-1px;font-weight:600}.admin__page-nav-item._loading:before,.admin__page-nav-item.ui-tabs-loading:before{display:none}.admin__page-nav-item._loading .admin__page-nav-item-message-loader,.admin__page-nav-item.ui-tabs-loading .admin__page-nav-item-message-loader{display:inline-block}.admin__page-nav-link{border:1px solid transparent;border-width:1px 0;color:#303030;display:block;font-weight:500;line-height:1.2;margin:0 0 -1px;padding:2rem 4rem 2rem 1rem;transition:border-color .1s ease-out,background-color .1s ease-out;word-wrap:break-word}.admin__page-nav-item-messages,.admin__page-nav-link._changed .admin__page-nav-item-message._changed,.admin__page-nav-link._error .admin__page-nav-item-message._error{display:inline-block}.admin__page-nav-item-messages .admin__page-nav-item-message{position:relative}.admin__page-nav-item-messages .admin__page-nav-item-message:hover{z-index:500}.admin__page-nav-item-messages .admin__page-nav-item-message:hover .admin__page-nav-item-message-tooltip{display:block}.admin__page-nav-item-messages .admin__page-nav-item-message._changed,.admin__page-nav-item-messages .admin__page-nav-item-message._error{display:none}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon{display:inline-block;font-size:1.4rem;padding-left:.8em;vertical-align:top}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon:after,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#666;content:'\e631'}.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#eb5202;content:'\e623'}.admin__page-nav-item-messages .admin__page-nav-item-message-loader{display:none;margin-top:-1rem;position:absolute;right:0;top:50%}.admin__page-nav-item-messages .admin__page-nav-item-message-loader .spinner{font-size:2rem;margin-right:1.5rem}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip{background:#f1f1f1;border:1px solid #f1f1f1;border-radius:1px;bottom:3.7rem;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;left:-1rem;line-height:1.36;padding:2rem;position:absolute;text-transform:none;width:27rem;word-break:normal;z-index:2}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after,.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border:15px solid transparent;height:0;width:0;border-top-color:#f1f1f1;content:'';display:block;left:2rem;position:absolute;top:100%;z-index:3}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after{border-top-color:#f1f1f1;margin-top:-1px;z-index:4}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border-top-color:#bfbfbf}.admin__data-grid-wrap-static .data-grid{box-sizing:border-box}.admin__data-grid-wrap-static .data-grid thead{color:#333}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td{background-color:#f5f5f5}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td._dragging{background-color:rgba(245,245,245,.95)}.admin__data-grid-wrap-static .data-grid ul{padding-left:1rem;margin-left:1rem}.admin__data-grid-wrap-static .admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:0;position:absolute;right:0;top:0;z-index:401}.admin__data-grid-wrap-static .admin__data-grid-loading-mask .grid-loader{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-filters-actions-wrap{float:right}.data-grid-search-control-wrap{float:left;max-width:45.5rem;position:relative;width:50%}.data-grid-search-control-wrap :-ms-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-webkit-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-moz-placeholder{font-style:italic}.data-grid-search-control-wrap .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:.6rem 2rem .2rem;position:absolute;right:0;top:1px}.data-grid-search-control-wrap .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.data-grid-search-control-wrap .action-submit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.data-grid-search-control-wrap .action-submit:hover:before{color:#1a1a1a}._keyfocus .data-grid-search-control-wrap .action-submit:focus{box-shadow:0 0 0 1px #008bdb}.data-grid-search-control-wrap .action-submit:before{content:'\e60c';font-size:2rem;transition:color .1s linear}.data-grid-search-control-wrap .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.data-grid-search-control-wrap .abs-action-menu .action-submenu,.data-grid-search-control-wrap .abs-action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .action-menu,.data-grid-search-control-wrap .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{z-index:400;max-height:19.25rem;overflow-y:auto}.data-grid-search-control-wrap .action-menu-item._selected{background-color:#e0f6fe}.data-grid-search-control-wrap .data-grid-search-label{display:none}.data-grid-search-control{padding-right:6rem;width:100%}.data-grid-filters-action-wrap{float:left;padding-left:2rem}.data-grid-filters-action-wrap .action-default{font-size:1.3rem;margin-bottom:1rem;padding-left:1.7rem;padding-right:2.1rem;padding-top:.7rem}.data-grid-filters-action-wrap .action-default._active{background-color:#fff;border-bottom-color:#fff;border-right-color:#ccc;font-weight:600;margin:-.1rem 0 0;padding-bottom:1.6rem;padding-top:.8rem;position:relative;z-index:281}.data-grid-filters-action-wrap .action-default._active:after{background-color:#eb5202;bottom:100%;content:'';height:3px;left:-1px;position:absolute;right:-1px}.data-grid-filters-action-wrap .action-default:before{color:#333;content:'\e605';font-size:1.8rem;margin-right:.4rem;position:relative;top:-1px;vertical-align:top}.data-grid-filters-action-wrap .filters-active{display:none}.admin__data-grid-filters-wrap{opacity:0;visibility:hidden;clear:both;font-size:1.3rem;transition:opacity .3s ease}.admin__data-grid-filters-wrap._show{opacity:1;visibility:visible;border-bottom:1px solid #ccc;border-top:1px solid #ccc;margin-bottom:.7rem;padding:3.6rem 0 3rem;position:relative;top:-1px;z-index:280}.admin__data-grid-filters-wrap._show .admin__data-grid-filters,.admin__data-grid-filters-wrap._show .admin__data-grid-filters-footer{display:block}.admin__data-grid-filters-wrap .admin__form-field-label,.admin__data-grid-filters-wrap .admin__form-field-legend{display:block;font-weight:700;margin:0 0 .3rem;text-align:left}.admin__data-grid-filters-wrap .admin__form-field{display:inline-block;margin-bottom:2em;margin-left:0;padding-left:2rem;padding-right:2rem;vertical-align:top;width:calc(100% / 4 - 4px)}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field{display:block;float:none;margin-bottom:1.5rem;padding-left:0;padding-right:0;width:auto}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field:last-child{margin-bottom:0}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-label{border:1px solid transparent;float:left;font-weight:400;line-height:1.36;margin-bottom:0;padding-bottom:.6rem;padding-right:1em;padding-top:.6rem;width:25%}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-control{margin-left:25%}.admin__data-grid-filters-wrap .admin__action-multiselect,.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text,.admin__data-grid-filters-wrap .admin__form-field-label{font-size:1.3rem}.admin__data-grid-filters-wrap .admin__control-select{padding-top:.5rem;height:3.2rem}.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text.hasDatepicker{width:100%}.admin__data-grid-filters{display:none;margin-left:-2rem;margin-right:-2rem}.admin__filters-legend{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-filters-footer{display:none;font-size:1.4rem}.admin__data-grid-filters-footer .admin__footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-filters-footer .admin__footer-secondary-actions{float:left;width:50%}.admin__data-grid-filters-current{border-bottom:.1rem solid #ccc;border-top:.1rem solid #ccc;display:none;font-size:1.3rem;margin-bottom:.9rem;padding-bottom:.8rem;padding-top:1.1rem;width:100%}.admin__data-grid-filters-current._show{display:table;position:relative;top:-1px;z-index:3}.admin__data-grid-filters-current._show+.admin__data-grid-filters-wrap._show{margin-top:-1rem}.admin__current-filters-actions-wrap,.admin__current-filters-list-wrap,.admin__current-filters-title-wrap{display:table-cell;vertical-align:top}.admin__current-filters-title{margin-right:1em;white-space:nowrap}.admin__current-filters-list-wrap{width:100%}.admin__current-filters-list{margin-bottom:0}.admin__current-filters-list>li{display:inline-block;font-weight:600;margin:0 1rem .5rem;padding-right:2.6rem;position:relative}.admin__current-filters-list .action-remove{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0;line-height:1;position:absolute;right:0;top:1px}.admin__current-filters-list .action-remove:hover{background-color:transparent;border:none;box-shadow:none}.admin__current-filters-list .action-remove:hover:before{color:#949494}.admin__current-filters-list .action-remove:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__current-filters-list .action-remove:before{color:#adadad;content:'\e620';font-size:1.6rem;transition:color .1s linear}.admin__current-filters-list .action-remove>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__current-filters-actions-wrap .action-clear{border:none;padding-bottom:0;padding-top:0;white-space:nowrap}.admin__data-grid-pager-wrap{text-align:right}.admin__data-grid-pager{display:inline-block;margin-left:3rem}.admin__data-grid-pager .admin__control-text::-webkit-inner-spin-button,.admin__data-grid-pager .admin__control-text::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin__data-grid-pager .admin__control-text{-moz-appearance:textfield;text-align:center;width:4.4rem}.action-next,.action-previous{width:4.4rem}.action-next:before,.action-previous:before{font-weight:700}.action-next>span,.action-previous>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-previous{margin-right:2.5rem;text-indent:-.25em}.action-previous:before{content:'\e629'}.action-next{margin-left:1.5rem;text-indent:.1em}.action-next:before{content:'\e62a'}.admin__data-grid-action-bookmarks{opacity:.98}.admin__data-grid-action-bookmarks .admin__action-dropdown-text:after{right:-6px;left:0}.admin__data-grid-action-bookmarks._active{z-index:290}.admin__data-grid-action-bookmarks .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;max-width:15rem;min-width:4.9rem;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown:before{content:'\e60f'}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu{font-size:1.3rem;left:0;padding:1rem 0;right:auto}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li{padding:0 5rem 0 0;position:relative;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action){transition:background-color .1s linear}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action):hover{background-color:#e3e3e3}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item{max-width:23rem;min-width:18rem;white-space:normal;word-break:break-all}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit{display:none;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit .action-dropdown-menu-item-actions{padding-bottom:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action{padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action+.action-dropdown-menu-item-last{padding-top:.5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a{color:#008bdb;text-decoration:none;display:inline-block;padding-left:1.1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a:hover{color:#0fa7ff;text-decoration:underline}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-last{padding-bottom:0}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item{display:none}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item-edit{display:block}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._active .action-dropdown-menu-link{font-weight:600}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{font-size:1.3rem;min-width:15rem;width:calc(100% - 4rem)}.ie9 .admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{width:15rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-actions{border-left:1px solid #fff;bottom:0;position:absolute;right:0;top:0;width:5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-link{color:#333;display:block;text-decoration:none;padding:1rem 1rem 1rem 2.1rem}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit,.admin__data-grid-action-bookmarks .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;vertical-align:top}.admin__data-grid-action-bookmarks .action-delete:hover,.admin__data-grid-action-bookmarks .action-edit:hover,.admin__data-grid-action-bookmarks .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before{font-size:1.7rem}.admin__data-grid-action-bookmarks .action-delete>span,.admin__data-grid-action-bookmarks .action-edit>span,.admin__data-grid-action-bookmarks .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit{padding:.6rem 1.4rem}.admin__data-grid-action-bookmarks .action-delete:active,.admin__data-grid-action-bookmarks .action-edit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__data-grid-action-bookmarks .action-submit{padding:.6rem 1rem .6rem .8rem}.admin__data-grid-action-bookmarks .action-submit:active{position:relative;right:-1px}.admin__data-grid-action-bookmarks .action-submit:before{content:'\e625'}.admin__data-grid-action-bookmarks .action-delete:before{content:'\e630'}.admin__data-grid-action-bookmarks .action-edit{padding-top:.8rem}.admin__data-grid-action-bookmarks .action-edit:before{content:'\e631'}.admin__data-grid-action-columns._active{opacity:.98;z-index:290}.admin__data-grid-action-columns .admin__action-dropdown:before{content:'\e60e';font-size:1.8rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-columns-menu{color:#303030;font-size:1.3rem;overflow:hidden;padding:2.2rem 3.5rem 1rem;z-index:1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-header{border-bottom:1px solid #d1d1d1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-content{width:49.2rem}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-footer{border-top:1px solid #d1d1d1;padding-top:2.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content{max-height:22.85rem;overflow-y:auto;padding-top:1.5rem;position:relative;width:47.4rem}.admin__data-grid-action-columns-menu .admin__field-option{height:1.9rem;float:left;margin-bottom:1.5rem;padding:0 1rem 0 0;width:15.8rem}.admin__data-grid-action-columns-menu .admin__field-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-header{padding-bottom:1.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-footer{padding:1rem 0 2rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-secondary-actions{float:left;margin-left:-1em}.admin__data-grid-action-export._active{opacity:.98;z-index:290}.admin__data-grid-action-export .admin__action-dropdown:before{content:'\e635';font-size:1.7rem;left:.3rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-export-menu{padding-left:2rem;padding-right:2rem;padding-top:1rem}.admin__data-grid-action-export-menu .admin__action-dropdown-footer-main-actions{padding-bottom:2rem;padding-top:2.5rem;white-space:nowrap}.sticky-header{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:8.8rem;right:0;margin-top:-1px;padding:.5rem 3rem 0;position:fixed;top:77px;z-index:400}.sticky-header .admin__data-grid-wrap{margin-bottom:0;overflow-x:visible;padding-bottom:0}.sticky-header .admin__data-grid-header-row{position:relative;text-align:right}.sticky-header .admin__data-grid-header-row:last-child{margin:0}.sticky-header .admin__data-grid-actions-wrap,.sticky-header .admin__data-grid-filters-wrap,.sticky-header .admin__data-grid-pager-wrap,.sticky-header .data-grid-filters-actions-wrap,.sticky-header .data-grid-search-control-wrap{display:inline-block;float:none;vertical-align:top}.sticky-header .action-select-wrap{float:left;margin-right:1.5rem;width:16.66666667%}.sticky-header .admin__control-support-text{float:left}.sticky-header .data-grid-search-control-wrap{margin:-.5rem 0 0 1.1rem;width:auto}.sticky-header .data-grid-search-control-wrap .data-grid-search-label{box-sizing:border-box;cursor:pointer;display:block;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;position:relative;text-align:center}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before{color:#333;content:'\e60c';font-size:2rem;transition:color .1s linear}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:hover:before{color:#000}.sticky-header .data-grid-search-control-wrap .data-grid-search-label span{display:none}.sticky-header .data-grid-filters-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-left:0;position:relative}.sticky-header .data-grid-filters-actions-wrap .action-default{background-color:transparent;border:1px solid transparent;box-sizing:border-box;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;text-align:center;transition:all .15s ease}.sticky-header .data-grid-filters-actions-wrap .action-default span{display:none}.sticky-header .data-grid-filters-actions-wrap .action-default:before{margin:0}.sticky-header .data-grid-filters-actions-wrap .action-default._active{background-color:#fff;border-color:#adadad #adadad #fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);z-index:210}.sticky-header .data-grid-filters-actions-wrap .action-default._active:after{background-color:#fff;content:'';height:6px;left:-2px;position:absolute;right:-6px;top:100%}.sticky-header .data-grid-filters-action-wrap{padding:0}.sticky-header .admin__data-grid-filters-wrap{background-color:#fff;border:1px solid #adadad;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:0;padding-left:3.5rem;padding-right:3.5rem;position:absolute;top:100%;width:100%;z-index:209}.sticky-header .admin__data-grid-filters-current+.admin__data-grid-filters-wrap._show{margin-top:-6px}.sticky-header .filters-active{background-color:#e04f00;border-radius:10px;color:#fff;display:block;font-size:1.4rem;font-weight:700;padding:.1rem .7rem;position:absolute;right:-7px;top:0;z-index:211}.sticky-header .filters-active:empty{padding-top:0;padding-bottom:0}.sticky-header .admin__data-grid-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-right:.3rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown{background-color:transparent;box-sizing:border-box;min-width:3.8rem;padding-left:.6rem;padding-right:.6rem;text-align:center}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;min-width:0;max-width:0;overflow:hidden}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:before{margin:0}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap{margin-right:1.1rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after,.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:after{display:none}.sticky-header .admin__data-grid-actions-wrap ._active .admin__action-dropdown{background-color:#fff}.sticky-header .admin__data-grid-action-bookmarks .admin__action-dropdown:before{position:relative;top:-3px}.sticky-header .admin__data-grid-filters-current{border-top:0;border-bottom:0;margin-bottom:0;padding-bottom:0;padding-top:0}.sticky-header .admin__data-grid-pager .admin__control-text,.sticky-header .admin__data-grid-pager-wrap .admin__control-support-text,.sticky-header .data-grid-search-control-wrap .action-submit,.sticky-header .data-grid-search-control-wrap .data-grid-search-control{display:none}.sticky-header .action-next{margin:0}.sticky-header .data-grid{margin-bottom:-1px}.data-grid-cap-left,.data-grid-cap-right{background-color:#f8f8f8;bottom:-2px;position:absolute;top:6rem;width:3rem;z-index:201}.data-grid-cap-left{left:0}.data-grid-cap-right{right:0}.admin__data-grid-header{font-size:1.4rem}.admin__data-grid-header-row+.admin__data-grid-header-row{margin-top:1.1rem}.admin__data-grid-header-row:last-child{margin-bottom:0}.admin__data-grid-header-row .action-select-wrap{display:block}.admin__data-grid-header-row .action-select{width:100%}.admin__data-grid-actions-wrap{float:right;margin-left:1.1rem;margin-top:-.5rem;text-align:right}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap{position:relative;text-align:left}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._hide+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:first-child:after{display:none}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown-menu{border-color:#adadad}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after{border-left:1px solid #ccc;content:'';height:3.2rem;left:0;position:absolute;top:.5rem;z-index:3}.admin__data-grid-actions-wrap .admin__action-dropdown{padding-bottom:1.7rem;padding-top:1.2rem}.admin__data-grid-actions-wrap .admin__action-dropdown:after{margin-top:-.4rem}.admin__data-grid-outer-wrap{min-height:8rem;position:relative}.admin__data-grid-wrap{margin-bottom:2rem;max-width:100%;overflow-x:auto;padding-bottom:1rem;padding-top:2rem}.admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:-3rem;position:absolute;right:-3rem;top:0;z-index:401}.admin__data-grid-loading-mask .spinner{font-size:4rem;left:50%;margin-left:-2rem;margin-top:-2rem;position:absolute;top:50%}.ie9 .admin__data-grid-loading-mask .spinner{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-cell-content{overflow:hidden;width:100%;display:inline-block}body._in-resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}body._in-resize *,body._in-resize .data-grid-th,body._in-resize .data-grid-th._draggable,body._in-resize .data-grid-th._sortable{cursor:col-resize!important}._layout-fixed{table-layout:fixed}.data-grid{border:none;font-size:1.3rem;margin-bottom:0;max-width:100%;width:100%}.data-grid:not(._dragging-copy) ._odd-row td._dragging{background-color:#d0d0d0}.data-grid:not(._dragging-copy) ._dragging{background-color:#d9d9d9;color:rgba(48,48,48,.95)}.data-grid:not(._dragging-copy) ._dragging a{color:rgba(0,139,219,.95)}.data-grid:not(._dragging-copy) ._dragging a:hover{color:rgba(15,167,255,.95)}.data-grid thead{background-color:transparent}.data-grid tfoot th{padding:1rem}.data-grid tr._odd-row td{background-color:#f5f5f5}.data-grid tr.data-grid-tr-no-data:hover td{background-color:#fff;cursor:default}.data-grid tr:active td{background-color:#e0f6fe}.data-grid tr:hover td{background-color:#e5f7fe}.data-grid tr:not(.data-grid-editable-row):last-child td{border-bottom:.1rem solid #d6d6d6}.data-grid tr ._clickable,.data-grid tr._clickable{cursor:pointer}.data-grid td,.data-grid th{font-size:1.3rem;line-height:1.36;transition:background-color .1s linear;vertical-align:top}.data-grid td._resizing,.data-grid th._resizing{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid td{background-color:#fff;border-left:.1rem dashed #d6d6d6;border-right:.1rem dashed #d6d6d6;color:#303030;padding:1rem}.data-grid td:first-child{border-left-style:solid}.data-grid td:last-child{border-right-style:solid}.data-grid td .action-select-wrap{position:static}.data-grid td .action-select{background-color:transparent;border:none;font-size:1.3rem;position:relative;color:#008bdb;text-decoration:none;padding:0 3rem 0 0}.data-grid td .action-select:hover{color:#0fa7ff;text-decoration:underline}.data-grid td .action-select:hover:after{border-color:#0fa7ff transparent transparent}.data-grid td .action-select:after{border-color:#008bdb transparent transparent;margin:.6rem 0 0 .7rem;right:auto;top:auto}.data-grid td .action-select:before{display:none}.data-grid td .abs-action-menu .action-submenu,.data-grid td .abs-action-menu .action-submenu .action-submenu,.data-grid td .action-menu,.data-grid td .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu .action-submenu{left:auto;min-width:10rem;right:0;text-align:left;top:auto;z-index:1}.data-grid th{background-color:#514943;border:.1rem solid #8a837f;border-left-color:transparent;color:#fff;font-weight:600;padding:0;text-align:left}.data-grid th:first-child{border-left-color:#8a837f}.data-grid th._dragover-left{box-shadow:inset 3px 0 0 0 #fff;z-index:2}.data-grid th._dragover-right{box-shadow:inset -3px 0 0 0 #fff}.data-grid .shadow-div{cursor:col-resize;height:100%;margin-right:-5px;position:absolute;right:0;top:0;width:10px}.data-grid .data-grid-th{background-clip:padding-box;color:#fff;padding:1rem;position:relative;vertical-align:middle}.data-grid .data-grid-th._resize-visible .shadow-div{cursor:auto;display:none}.data-grid .data-grid-th._draggable{cursor:-webkit-grab;cursor:grab}.data-grid .data-grid-th._sortable{cursor:pointer;transition:background-color .1s linear;z-index:1}.data-grid .data-grid-th._sortable:focus,.data-grid .data-grid-th._sortable:hover{background-color:#5f564f}.data-grid .data-grid-th._sortable:active{padding-bottom:.9rem;padding-top:1.1rem}.data-grid .data-grid-th.required>span:after{color:#f38a5e;content:'*';margin-left:.3rem}.data-grid .data-grid-checkbox-cell{padding:0;vertical-align:top;width:5.2rem}.data-grid .data-grid-checkbox-cell:hover{cursor:default}.data-grid .data-grid-thumbnail-cell{text-align:center;width:7rem}.data-grid .data-grid-thumbnail-cell img{border:1px solid #d6d6d6;max-width:5rem}.data-grid .data-grid-multicheck-cell{padding:1rem 1rem .9rem;text-align:center;vertical-align:middle}.data-grid .data-grid-actions-cell{padding-left:2rem;padding-right:2rem;text-align:center;width:1%}.data-grid._hidden{display:none}.data-grid._dragging-copy{box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;opacity:.95;position:fixed;top:0;z-index:1000}.data-grid._dragging-copy .data-grid-th{border:1px solid #007bdb;border-bottom:none}.data-grid._dragging-copy .data-grid-th,.data-grid._dragging-copy .data-grid-th._sortable{cursor:-webkit-grabbing;cursor:grabbing}.data-grid._dragging-copy tr:last-child td{border-bottom:1px solid #007bdb}.data-grid._dragging-copy td{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:rgba(255,251,230,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td,.data-grid._dragging-copy._in-edit .data-grid-editable-row:hover td{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:after,.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{left:0;right:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:only-child{border-left:1px solid #007bdb;border-right:1px solid #007bdb;left:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-select,.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-text{opacity:.5}.data-grid._in-edit tr:hover td{background-color:#e6e6e6}.data-grid._in-edit ._odd-row.data-grid-editable-row td,.data-grid._in-edit ._odd-row.data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit ._odd-row td,.data-grid._in-edit ._odd-row:hover td{background-color:#dcdcdc}.data-grid._in-edit .data-grid-editable-row-actions td,.data-grid._in-edit .data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid._in-edit td{background-color:#e6e6e6;pointer-events:none}.data-grid._in-edit .data-grid-checkbox-cell{pointer-events:auto}.data-grid._in-edit .data-grid-editable-row{border:.1rem solid #adadad;border-bottom-color:#c2c2c2}.data-grid._in-edit .data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit .data-grid-editable-row td{background-color:#fff;border-bottom-color:#fff;border-left-style:hidden;border-right-style:hidden;border-top-color:#fff;pointer-events:auto;vertical-align:middle}.data-grid._in-edit .data-grid-editable-row td:first-child{border-left-color:#adadad;border-left-style:solid}.data-grid._in-edit .data-grid-editable-row td:first-child:after,.data-grid._in-edit .data-grid-editable-row td:first-child:before{left:0}.data-grid._in-edit .data-grid-editable-row td:last-child{border-right-color:#adadad;border-right-style:solid;left:-.1rem}.data-grid._in-edit .data-grid-editable-row td:last-child:after,.data-grid._in-edit .data-grid-editable-row td:last-child:before{right:0}.data-grid._in-edit .data-grid-editable-row .admin__control-select,.data-grid._in-edit .data-grid-editable-row .admin__control-text{width:100%}.data-grid._in-edit .data-grid-bulk-edit-panel td{vertical-align:bottom}.data-grid .data-grid-editable-row td{border-left-color:#fff;border-left-style:solid;position:relative;z-index:1}.data-grid .data-grid-editable-row td:after{bottom:0;box-shadow:0 5px 5px rgba(0,0,0,.25);content:'';height:.9rem;left:0;margin-top:-1rem;position:absolute;right:0}.data-grid .data-grid-editable-row td:before{background-color:#fff;bottom:0;content:'';height:1rem;left:-10px;position:absolute;right:-10px;z-index:1}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td,.data-grid .data-grid-editable-row.data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:first-child{border-left-color:#fff;border-right-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:last-child{left:0}.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:#fffbe6}.data-grid .data-grid-editable-row-actions{left:50%;margin-left:-12.5rem;margin-top:-2px;position:absolute;text-align:center}.data-grid .data-grid-editable-row-actions td{width:25rem}.data-grid .data-grid-editable-row-actions [class*=action-]{min-width:9rem}.data-grid-th._sortable._ascend,.data-grid-th._sortable._descend{padding-right:2.7rem}.data-grid-th._sortable._ascend:before,.data-grid-th._sortable._descend:before{margin-top:-1em;position:absolute;right:1rem;top:50%}.data-grid-th._sortable._ascend:before{content:'\2193'}.data-grid-th._sortable._descend:before{content:'\2191'}.data-grid-checkbox-cell-inner{display:block;padding:1.1rem 1.8rem .9rem;text-align:right}.data-grid-checkbox-cell-inner:hover{cursor:pointer}.data-grid-row-parent._active>td .data-grid-checkbox-cell-inner:before{content:'\e62b'}.data-grid-row-parent>td .data-grid-checkbox-cell-inner{padding-left:3.7rem;position:relative}.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before{content:'\e628';font-size:1rem;font-weight:700;left:1.35rem;position:absolute;top:1.6rem}.data-grid-th._col-xs{width:1%}.data-grid-info-panel{box-shadow:0 0 5px rgba(0,0,0,.5);margin:2rem .1rem -2rem;padding:1rem}.data-grid-info-panel .messages{margin-bottom:1rem}.data-grid-info-panel-actions{text-align:right}.data-grid-editable-row .admin__field-control{position:relative}.data-grid-editable-row .admin__field-control._error:after{border-color:transparent #ee7d7d transparent transparent;border-style:solid;border-width:0 12px 12px 0;content:'';position:absolute;right:0;top:0}.data-grid-editable-row .admin__field-control._error .admin__control-text{border-color:#ee7d7d}.data-grid-editable-row .admin__field-control._focus:after{display:none}.data-grid-editable-row .admin__field-error{bottom:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin:0 auto 1.5rem;max-width:32rem;position:absolute;right:0}.data-grid-editable-row .admin__field-error:after,.data-grid-editable-row .admin__field-error:before{border-style:solid;content:'';left:50%;position:absolute;top:100%}.data-grid-editable-row .admin__field-error:after{border-color:#fffbbb transparent transparent;border-width:10px 10px 0;margin-left:-10px;z-index:1}.data-grid-editable-row .admin__field-error:before{border-color:#ee7d7d transparent transparent;border-width:11px 12px 0;margin-left:-12px}.data-grid-bulk-edit-panel .admin__field-label-vertical{display:block;font-size:1.2rem;margin-bottom:.5rem;text-align:left}.data-grid-row-changed{cursor:default;display:block;opacity:.5;position:relative;width:100%;z-index:1}.data-grid-row-changed:after{content:'\e631';display:inline-block}.data-grid-row-changed .data-grid-row-changed-tooltip{background:#f1f1f1;border-radius:1px;border:1px solid #f1f1f1;bottom:100%;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;line-height:1.36;margin-bottom:1.5rem;padding:1rem;position:absolute;right:-1rem;text-transform:none;width:27rem;word-break:normal;z-index:2}.data-grid-row-changed._changed{opacity:1;z-index:3}.data-grid-row-changed._changed:hover .data-grid-row-changed-tooltip{display:block}.data-grid-row-changed._changed:hover:before{background:#f1f1f1;border:1px solid #f1f1f1;bottom:100%;box-shadow:4px 4px 3px -1px rgba(0,0,0,.15);content:'';display:block;height:1.6rem;left:50%;margin:0 0 .7rem -.8rem;position:absolute;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:1.6rem;z-index:3}.ie9 .data-grid-row-changed._changed:hover:before{display:none}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before,.admin__control-file-label :before,.admin__control-multiselect,.admin__control-select,.admin__control-text,.admin__control-textarea,.selectmenu{background-color:#fff;border-radius:1px;border:1px solid #adadad;color:#303030;font-size:1.4rem;font-weight:400;line-height:1.36;height:auto;width:auto;padding:.6rem 1rem;transition:border-color .1s linear;vertical-align:baseline}.admin__control-multiselect:hover,.admin__control-select:hover,.admin__control-text:hover,.admin__control-textarea:hover,.selectmenu:hover,.selectmenu:hover .selectmenu-toggle:before{border-color:#878787}.admin__control-addon [class*=admin__control-][type]:focus+[class*=admin__addon-]:before,.admin__control-file:active+.admin__control-file-label :before,.admin__control-file:focus+.admin__control-file-label :before,.admin__control-multiselect:focus,.admin__control-select:focus,.admin__control-text:focus,.admin__control-textarea:focus,.selectmenu._focus,.selectmenu._focus .selectmenu-toggle:before{border-color:#007bdb;box-shadow:none;outline:0}.admin__control-addon [class*=admin__control-][type][disabled]+[class*=admin__addon-]:before,.admin__control-file[disabled]+.admin__control-file-label :before,.admin__control-multiselect[disabled],.admin__control-select[disabled],.admin__control-text[disabled],.admin__control-textarea[disabled]{background-color:#e9e9e9;border-color:#adadad;color:#303030;opacity:.5;cursor:not-allowed}.admin__fieldset>.admin__field.admin__field-wide[class]>.admin__field-control{float:none;clear:left;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label{display:block;line-height:1.4rem;margin-bottom:.86rem;margin-top:-.14rem;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label:before{display:none}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span{padding-left:1.5rem}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span:after{left:0;margin-left:30px;top:.2rem}.admin__legend{font-size:1.8rem;font-weight:600;margin-bottom:3rem}.admin__control-checkbox,.admin__control-radio{cursor:pointer;opacity:.01;overflow:hidden;position:absolute;vertical-align:top}.admin__control-checkbox:after,.admin__control-radio:after{display:none}.admin__control-checkbox+label,.admin__control-radio+label{cursor:pointer;display:inline-block}.admin__control-checkbox+label:before,.admin__control-radio+label:before{background-color:#fff;border:1px solid #adadad;color:transparent;float:left;height:1.6rem;text-align:center;vertical-align:top;width:1.6rem}.admin__control-checkbox+.admin__field-label,.admin__control-radio+.admin__field-label{padding-left:2.6rem}.admin__control-checkbox+.admin__field-label:before,.admin__control-radio+.admin__field-label:before{margin:1px 1rem 0 -2.6rem}.admin__control-checkbox:checked+label:before,.admin__control-radio:checked+label:before{color:#514943}.admin__control-checkbox.disabled+label,.admin__control-checkbox[disabled]+label,.admin__control-radio.disabled+label,.admin__control-radio[disabled]+label{cursor:default;color:#303030;opacity:.5}.admin__control-checkbox.disabled+label:before,.admin__control-checkbox[disabled]+label:before,.admin__control-radio.disabled+label:before,.admin__control-radio[disabled]+label:before{background-color:#e9e9e9;border-color:#adadad;cursor:default}._keyfocus .admin__control-checkbox:not(.disabled):focus+label:before,._keyfocus .admin__control-checkbox:not([disabled]):focus+label:before,._keyfocus .admin__control-radio:not(.disabled):focus+label:before,._keyfocus .admin__control-radio:not([disabled]):focus+label:before{border-color:#007bdb}.admin__control-checkbox:not(.disabled):hover+label:before,.admin__control-checkbox:not([disabled]):hover+label:before,.admin__control-radio:not(.disabled):hover+label:before,.admin__control-radio:not([disabled]):hover+label:before{border-color:#878787}.admin__control-radio+label:before{border-radius:1.6rem;content:'\e637';font-size:1rem;transition:border-color .1s linear,color .1s ease-in}.admin__control-radio.admin__control-radio+label:before{line-height:140%}.admin__control-radio:checked:not(.disabled):hover,.admin__control-radio:checked:not(.disabled):hover+label,.admin__control-radio:checked:not([disabled]):hover,.admin__control-radio:checked:not([disabled]):hover+label{cursor:default}.admin__control-radio:checked:not(.disabled):hover+label:before,.admin__control-radio:checked:not([disabled]):hover+label:before{border-color:#adadad}.admin__control-checkbox+label:before{border-radius:1px;content:'';font-size:0;transition:font-size .1s ease-out,color .1s ease-out,border-color .1s linear}.admin__control-checkbox:checked+label:before{content:'\e62d';font-size:1.1rem;line-height:125%}.admin__control-checkbox:not(:checked)._indeterminate+label:before,.admin__control-checkbox:not(:checked):indeterminate+label:before{color:#514943;content:'-';font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700}input[type=checkbox].admin__control-checkbox,input[type=radio].admin__control-checkbox{position:absolute;margin:0}.admin__control-select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-repeat:no-repeat;background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#adadad,#adadad);background-position:calc(100% - 12px) -34px,100%,calc(100% - 3.2rem) 0;background-size:auto,3.2rem 100%,1px 100%;padding-bottom:.5rem;padding-right:4.4rem;padding-top:.5rem;transition:border-color .1s linear}.admin__control-select:hover{border-color:#878787;cursor:pointer}.admin__control-select:focus{background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#007bdb,#007bdb);background-position:calc(100% - 12px) 13px,100%,calc(100% - 3.2rem) 0;border-color:#007bdb}.admin__control-select::-ms-expand{display:none}.ie9 .admin__control-select{background-image:none;padding-right:1rem}option:empty{display:none}.admin__control-multiselect{height:auto;padding:.6rem 1rem}.admin__control-file-wrapper{display:inline-block;padding:.5rem 1rem;position:relative;z-index:1}.admin__control-file-label :before{content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__control-file{position:relative;z-index:1;background:0 0;border:0;width:auto}.admin__control-support-text{border:1px solid transparent;display:inline-block;font-size:1.4rem;line-height:1.36;padding-top:.6rem;padding-bottom:.6rem}.admin__control-support-text+[class*=admin__control-],[class*=admin__control-]+.admin__control-support-text{margin-left:.7rem}.admin__control-textarea{height:8.48rem;line-height:1.18;padding-top:.8rem;resize:vertical}.admin__control-addon{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;display:inline-flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;position:relative;width:100%;z-index:1}.admin__control-addon>[class*=admin__addon-],.admin__control-addon>[class*=admin__control-]{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:relative;z-index:1}.admin__control-addon [class*=admin__control-][type]{appearence:none;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;box-shadow:none;background-color:transparent;border-color:transparent;-webkit-order:1;-ms-flex-order:1;order:1;vertical-align:top;width:auto}.admin__control-addon [class*=admin__control-][type] :focus{box-shadow:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]{padding-left:1rem;position:static!important;z-index:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]>*{position:relative;vertical-align:top;z-index:2}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before{bottom:0;box-sizing:border-box;content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__addon-prefix,.admin__addon-suffix{border:0;box-sizing:border-box;color:#858585;display:inline-block;font-size:1.4rem;font-weight:400;height:3.2rem;line-height:3.2rem;padding:0}.admin__addon-suffix{-webkit-order:3;-ms-flex-order:3;order:3}.admin__addon-suffix:last-child{padding-right:1rem}.admin__addon-prefix{-webkit-order:0;-ms-flex-order:0;order:0}.ie9 .admin__control-addon:after{clear:both;content:'';display:block;height:0;overflow:hidden}.ie9 .admin__addon{min-width:0;overflow:hidden;text-align:right;white-space:nowrap;width:auto}.ie9 .admin__addon [class*=admin__control-]{display:inline}.ie9 .admin__addon-prefix{float:left}.ie9 .admin__addon-suffix{float:right}.admin__control-table-wrapper{max-width:100%;overflow-x:auto;overflow-y:hidden}.admin__control-table{width:100%}.admin__control-table thead{background-color:transparent}.admin__control-table tbody td{vertical-align:middle}.admin__control-table tfoot th{padding-bottom:1.3rem}.admin__control-table tr:last-child td,.admin__control-table tr:last-child th{border-bottom:none}.admin__control-table td,.admin__control-table th{background-color:#efefef;border:0;border-bottom:1px solid #fff;padding:1.3rem 2.5rem 1.3rem 0;text-align:left;vertical-align:top}.admin__control-table td:first-child,.admin__control-table th:first-child{padding-left:1.5rem}.admin__control-table th{border:0;vertical-align:bottom;color:#303030;font-size:1.4rem;font-weight:600;padding-bottom:0}.admin__control-table th._required span:after{color:#eb5202;content:'*'}.admin__control-table .control-table-actions-th{white-space:nowrap}.admin__control-table .control-table-actions-cell{padding-top:1.8rem;text-align:center;width:1%}.admin__control-table .col-draggable{padding-top:2.2rem;width:1%}.admin__control-table .action-delete,.admin__control-table .action-delete:hover{background-color:transparent;border-color:transparent;box-shadow:none}.admin__control-table .action-delete:before{content:'\e630'}.admin__control-table .action-delete>span{display:none}.admin__field-tooltip{display:inline-block;margin-top:5px;overflow:visible;vertical-align:top;width:0}.admin__field-tooltip:hover{position:relative;z-index:500}.admin__field-option .admin__field-tooltip{margin-top:10px}.admin__field-tooltip .admin__field-tooltip-action{margin-left:20px;display:inline-block;text-decoration:none}.admin__field-tooltip .admin__field-tooltip-action:before{-webkit-font-smoothing:antialiased;font-size:2.2rem;line-height:1;color:#514943;content:'\e633';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.admin__field-tooltip .admin__control-text:focus+.admin__field-tooltip-content,.admin__field-tooltip:hover .admin__field-tooltip-content{display:block}.admin__field-tooltip .admin__field-tooltip-content{bottom:42px;display:none;right:-70px}.admin__field-tooltip .admin__field-tooltip-content:after,.admin__field-tooltip .admin__field-tooltip-content:before{border:16px solid transparent;height:0;width:0;border-top-color:#afadac;content:"";display:block;position:absolute;right:20px;top:100%;z-index:3}.admin__field-tooltip .admin__field-tooltip-content:after{border-top-color:#fffbbb;margin-top:-1px;z-index:4}.abs-admin__field-tooltip-content,.admin__field-tooltip .admin__field-tooltip-content{box-shadow:0 2px 8px 0 rgba(0,0,0,.3);background:#fffbbb;border-radius:1px;border:1px solid #afadac;padding:15px 25px;position:absolute;width:320px;z-index:1}.admin__fieldset{border:0;margin:0;min-width:0;padding:0}.admin__fieldset>.admin__field{border:0;margin:0 0 0 -30px;padding:0}.admin__fieldset>.admin__field:after{clear:both;content:'';display:table}.admin__fieldset>.admin__field>.admin__field-control{width:calc((100%) * .4444444444444444 - 30px);float:left;margin-left:30px}.admin__fieldset>.admin__field>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px}.admin__form-field{border:0;margin:0;padding:0}.admin__field-control .admin__control-text,.admin__field-control .admin__control-textarea,.admin__form-field-control .admin__control-text,.admin__form-field-control .admin__control-textarea{width:100%}.admin__field-label{color:#303030;margin:0;text-align:right}.admin__field-label+br{display:none}.admin__field:not(.admin__field-option)>.admin__field-label{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:3.2rem;padding:0;white-space:nowrap;word-wrap:break-word}.admin__field:not(.admin__field-option)>.admin__field-label:before{opacity:0;visibility:hidden;content:'.';margin-left:-7px;overflow:hidden}.admin__field:not(.admin__field-option)>.admin__field-label span{display:inline-block;line-height:1.2;vertical-align:middle;white-space:normal}._required>.admin__field-label span:after{color:#eb5202;content:'*';display:inline-block;font-size:1.6rem;font-weight:500;line-height:1;margin-left:10px;position:absolute;top:1.2rem;z-index:1}._disabled>.admin__field-label{color:#999}.admin__field{margin-bottom:0}.admin__field+.admin__field{margin-top:1.5rem}.admin__field:not(.admin__field-option)~.admin__field-option{margin-top:.5rem}.admin__field.admin__field-option~.admin__field-option{margin-top:.9rem}.admin__field~.admin__field-option:last-child{margin-bottom:.8rem}.admin__fieldset>.admin__field{margin-bottom:3rem;position:relative}.admin__field[data-config-scope]:before{color:gray;content:attr(data-config-scope);display:inline-block;font-size:1.2rem;left:calc((100%) * .7777777777777778 - 30px);line-height:3.2rem;margin-left:60px;position:absolute;width:calc((100%) * .2222222222222222 - 30px)}.admin__field-control .admin__field[data-config-scope]:nth-child(n+2):before{content:''}.admin__field._error .admin__field-control [class*=admin__addon-]:before,.admin__field._error .admin__field-control>[class*=admin__control-]{border-color:#e22626}.admin__field-control+.admin__field-control{margin-top:1.5rem}.admin__field-error{background:#fffbbb;border:1px solid #ee7d7d;box-sizing:border-box;color:#555;display:block;font-size:1.2rem;font-weight:400;line-height:1.2;margin:.2rem 0 0;padding:.8rem 1rem .9rem}.admin__field-note{color:#303030;font-size:1.2rem;margin:10px 0 0;padding:0}.admin__field-option{padding-top:.8rem}.admin__field-option .admin__field-label{text-align:left}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2),.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1){display:inline-block}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option{display:inline-block;margin-left:41px;margin-top:0}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option:before,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option:before{background:#cacaca;content:'';display:inline-block;height:20px;margin-left:-20px;position:absolute;width:1px}.admin__field-value{padding-top:.8rem}.admin__control-fields>.admin__field:first-child,[class*=admin__control-grouped]>.admin__field:first-child{position:static}.admin__control-fields>.admin__field:first-child>.admin__field-label,[class*=admin__control-grouped]>.admin__field:first-child>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px;cursor:pointer;left:0;opacity:0;position:absolute;top:0}.admin__control-fields .admin__field-label~.admin__field-control{width:100%}[class*=admin__control-grouped]{box-sizing:border-box;display:table;table-layout:fixed;width:100%}[class*=admin__control-grouped]>.admin__field{display:table-cell;vertical-align:top;width:50%}[class*=admin__control-grouped]>.admin__field>.admin__field-control{float:none;width:100%}[class*=admin__control-grouped]>.admin__field:nth-child(n+2){padding-left:20px}[class*=admin__control-grouped]>.admin__field:nth-child(n+2):not(.admin__field-option) .admin__field-label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.admin__field-control-group{margin-top:.8rem}.admin__field-control-group>.admin__field{padding:0}.admin__legend{float:left;position:static;width:100%}.admin__legend+br{display:block;height:0;overflow:hidden;clear:left}.message{margin-bottom:3rem}.message-icon-top:before{margin-top:0;top:1.8rem}.nav{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;display:none;margin-bottom:3rem;padding:2.2rem 1.5rem 0 0}.nav .btn-group,.nav-bar-outer-actions{float:right;margin-bottom:1.7rem}.nav .btn-group .btn-wrap,.nav-bar-outer-actions .btn-wrap{float:right;margin-left:.5rem;margin-right:.5rem}.nav .btn-group .btn-wrap .btn,.nav-bar-outer-actions .btn-wrap .btn{padding-left:.5rem;padding-right:.5rem}.nav-bar-outer-actions{margin-top:-10.6rem;padding-right:1.5rem}.btn-wrap-try-again{width:9.5rem}.btn-wrap-next,.btn-wrap-prev{width:8.5rem}.nav-bar{counter-reset:i;float:left;margin:0 1rem 1.7rem 0;padding:0;position:relative;white-space:nowrap}.nav-bar:before{background-color:#d4d4d4;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#d1d1d1 0,#d4d4d4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#d4d4d4', GradientType=0);border-bottom:1px solid #d9d9d9;border-top:1px solid #bfbfbf;content:'';height:1rem;left:5.15rem;position:absolute;right:5.15rem;top:.7rem}.nav-bar>li{display:inline-block;font-size:0;position:relative;vertical-align:top;width:10.3rem}.nav-bar>li:first-child:after{display:none}.nav-bar>li:after{background-color:#514943;content:'';height:.5rem;left:calc(-50% + .25rem);position:absolute;right:calc(50% + .7rem);top:.9rem}.nav-bar>li.disabled:before,.nav-bar>li.ui-state-disabled:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after,.nav-bar>li.ui-state-active~li:after{display:none}.nav-bar>li.active~li a:after,.nav-bar>li.ui-state-active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a,.nav-bar>li.ui-state-active a{color:#000}.nav-bar>li.active a:hover,.nav-bar>li.ui-state-active a:hover{cursor:default}.nav-bar>li.active a:after,.nav-bar>li.ui-state-active a:after{background-color:#fff;content:''}.nav-bar a{color:#514943;display:block;font-size:1.2rem;font-weight:600;line-height:1.2;overflow:hidden;padding:3rem .5em 0;position:relative;text-align:center;text-overflow:ellipsis}.nav-bar a:hover{text-decoration:none}.nav-bar a:after{background-color:#514943;border:.4rem solid #514943;border-radius:100%;color:#fff;content:counter(i);counter-increment:i;height:1.5rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:1.5rem}.nav-bar a:before{background-color:#d6d6d6;border:1px solid transparent;border-bottom-color:#d9d9d9;border-radius:100%;border-top-color:#bfbfbf;content:'';height:2.3rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.3rem}.tooltip{display:block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.19rem;font-weight:400;line-height:1.4;opacity:0;position:absolute;visibility:visible;z-index:10}.tooltip.in{opacity:.9}.tooltip.top{margin-top:-4px;padding:8px 0}.tooltip.right{margin-left:4px;padding:0 8px}.tooltip.bottom{margin-top:4px;padding:8px 0}.tooltip.left{margin-left:-4px;padding:0 8px}.tooltip p:last-child{margin-bottom:0}.tooltip-inner{background-color:#fff;border:1px solid #adadad;border-radius:0;box-shadow:1px 1px 1px #ccc;color:#41362f;max-width:20rem;padding:.5em 1em;text-decoration:none}.tooltip-arrow,.tooltip-arrow:after{border:solid transparent;height:0;position:absolute;width:0}.tooltip-arrow:after{content:'';position:absolute}.tooltip.top .tooltip-arrow,.tooltip.top .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:50%;margin-left:-8px}.tooltip.top-left .tooltip-arrow,.tooltip.top-left .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;margin-bottom:-8px;right:8px}.tooltip.top-right .tooltip-arrow,.tooltip.top-right .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:8px;margin-bottom:-8px}.tooltip.right .tooltip-arrow,.tooltip.right .tooltip-arrow:after{border-right-color:#949494;border-width:8px 8px 8px 0;left:1px;margin-top:-8px;top:50%}.tooltip.right .tooltip-arrow:after{border-right-color:#fff;border-width:6px 7px 6px 0;margin-left:0;margin-top:-6px}.tooltip.left .tooltip-arrow,.tooltip.left .tooltip-arrow:after{border-left-color:#949494;border-width:8px 0 8px 8px;margin-top:-8px;right:0;top:50%}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:50%;margin-left:-8px;top:0}.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;margin-top:-8px;right:8px;top:0}.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:8px;margin-top:-8px;top:0}.password-strength{display:block;margin:0 -.3rem 1em;white-space:nowrap}.password-strength.password-strength-too-short .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child+.password-strength-item{background-color:#e22626}.password-strength.password-strength-fair .password-strength-item:first-child,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item+.password-strength-item{background-color:#ef672f}.password-strength.password-strength-good .password-strength-item:first-child,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item+.password-strength-item,.password-strength.password-strength-strong .password-strength-item{background-color:#79a22e}.password-strength .password-strength-item{background-color:#ccc;display:inline-block;font-size:0;height:1.4rem;margin-right:.3rem;width:calc(20% - .6rem)}@-webkit-keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}.progress{background-color:#fafafa;border:1px solid #ccc;clear:left;height:3rem;margin-bottom:3rem;overflow:hidden}.progress-bar{background-color:#79a22e;color:#fff;float:left;font-size:1.19rem;height:100%;line-height:3rem;text-align:center;transition:width .6s ease;width:0}.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-text-description{margin-bottom:1.6rem}.progress-bar-text-progress{text-align:right}.page-columns .page-inner-sidebar{margin:0 0 3rem}.page-header{margin-bottom:2.7rem;padding-bottom:2.9rem;position:relative}.page-header:before{border-bottom:1px solid #e3e3e3;bottom:0;content:'';display:block;height:1px;left:3rem;position:absolute;right:3rem}.container .page-header:before{content:normal}.page-header .message{margin-bottom:1.8rem}.page-header .message+.message{margin-top:-1.5rem}.page-header .admin__action-dropdown,.page-header .search-global-input{transition:none}.container .page-header{margin-bottom:0}.page-title-wrapper{margin-top:1.1rem}.container .page-title-wrapper{background:url(../../pub/images/logo.svg) no-repeat;min-height:41px;padding:4px 0 0 45px}.admin__menu .level-0:first-child>a{margin-top:1.6rem}.admin__menu .level-0:first-child>a:after{top:-1.6rem}.admin__menu .level-0>a{padding-top:1.3rem;padding-bottom:1.3rem}.admin__menu .level-0>a:before{margin-bottom:.7rem}.admin__menu .item-home>a:before{content:'\e611';font-size:2.3rem;padding-top:-.1rem}.admin__menu .item-component>a:before{content:'\e612'}.admin__menu .item-upgrade>a:before{content:'\e614'}.admin__menu .item-system-config>a:before{content:'\e610'}.admin__menu .item-tools>a:before{content:'\e613'}.modal-sub-title{font-size:1.7rem;font-weight:600}.modal-connect-signin .modal-inner-wrap{max-width:80rem}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{-webkit-overflow-scrolling:touch;bottom:0;box-sizing:border-box;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:999}.ngdialog *,.ngdialog:after,.ngdialog:before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation *{-webkit-animation:none!important;animation:none!important}.ngdialog.ngdialog-closing .ngdialog-content,.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;background:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0}.ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}body.ngdialog-open{overflow:hidden}.component-indicator{border-radius:50%;cursor:help;display:inline-block;height:20px;text-align:center;width:20px}.component-indicator::after,.component-indicator::before{background:#fff;display:block;opacity:0;position:absolute;transition:opacity .2s linear .1s;visibility:hidden}.component-indicator::before{border-radius:1px;border:1px solid #adadad;box-shadow:0 0 2px rgba(0,0,0,.4);content:attr(data-label);font-size:1.2rem;margin:34px 0 0 -10px;min-width:50px;padding:4px 5px}.component-indicator::after{border:1px solid #999;border-width:1px 0 0 1px;box-shadow:-1px -1px 1px rgba(0,0,0,.1);content:'';height:10px;margin:9px 0 0 5px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:10px}.component-indicator:hover::after,.component-indicator:hover::before{opacity:1;transition:opacity .2s linear;visibility:visible}.component-indicator span{display:block;height:20px;overflow:hidden;width:20px}.component-indicator span:before{content:'';display:block;font-family:Icons;font-size:20px;height:100%;line-height:20px;width:100%}.component-indicator._on{background:#79a22e}.component-indicator._off{background:#e22626}.component-indicator._off span:before{background:#fff;height:4px;margin:8px auto 20px;width:12px}.component-indicator._info{background:0 0}.component-indicator._info span{width:21px}.component-indicator._info span:before{color:#008bdb;content:'\e61a';font-family:Icons;font-size:21px}.app-updater .nav{display:block;margin-bottom:3.1rem;margin-top:-2.8rem}.app-updater .nav-bar-outer-actions{margin-top:1rem;padding-right:0}.app-updater .nav-bar-outer-actions .btn-wrap-cancel{margin-right:2.6rem}.main{padding-bottom:2rem;padding-top:3rem}.header{display:none}.header .logo{float:left;height:4.1rem;width:3.5rem}.header-title{font-size:2.8rem;letter-spacing:.02em;line-height:1.4;margin:2.5rem 0 3.5rem 5rem}.page-sub-title{font-size:2rem}.accent-box{margin-bottom:2rem}.accent-box .btn-prime{margin-top:1.5rem}.page-landing{margin:7.6% auto 0;max-width:44rem;text-align:center}.page-landing .logo{height:5.6rem;margin-bottom:2rem;width:19.2rem}.page-landing .text-version{margin-bottom:3rem}.page-landing .text-welcome{margin-bottom:6.5rem}.page-landing .text-terms{margin-bottom:2.5rem;text-align:center}.page-landing .btn-submit,.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.readiness-check-item{margin-bottom:4rem;min-height:2.5rem}.readiness-check-item .spinner{font-size:2.5rem;float:left;margin:-.4rem 0 0 1.7rem}.readiness-check-title{font-size:1.4rem;font-weight:700;margin-bottom:.1rem;margin-left:5.7rem}.readiness-check-content{margin-left:5.7rem;margin-right:22rem}.readiness-check-content .readiness-check-title{margin-left:0}.readiness-check-content .list{margin-top:-.3rem}.readiness-check-side{float:right;padding-left:2.4rem;width:22rem}.readiness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left;margin-left:1.7rem;margin-top:.7rem}.page-web-configuration .form-el-insider-wrap{width:auto}.page-web-configuration .form-el-insider{width:15.4rem}.page-web-configuration .form-el-insider-input .form-el-input{width:16.5rem}.customize-your-store .customize-your-store-default .legend{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.customize-your-store .advanced-modules-count,.customize-your-store .advanced-modules-select{padding-left:1.5rem}.customize-your-store .customize-your-store-advanced{min-width:0}.customize-your-store .message-error:before{margin-top:0;top:1.8rem}.customize-your-store .message-error a{color:#333;text-decoration:underline}.customize-your-store .message-error .form-label:before{background:#fff}.customize-your-store .customize-database-clean p{margin-top:2.5rem}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;height:20rem;margin:1rem 0 2rem;overflow-y:auto;padding:1.5rem 2rem 2rem;resize:vertical}.console .text-danger{color:#e22626}.console .text-success{color:#090}.console .hidden{display:none}.content-success .btn-prime{margin-top:1.5rem}.jumbo-title{font-size:3.6rem}.jumbo-title .jumbo-icon{font-size:3.8rem;margin-right:.25em;position:relative;top:.15em}.install-database-clean{margin-top:4rem}.install-database-clean .btn{margin-right:1rem}.page-sub-title{margin-bottom:2.1rem}.multiselect-custom{max-width:71.1rem}.content-install{margin-top:3.7rem}.home-page-inner-wrap{margin:0 auto;max-width:91rem}.setup-home-title{margin-bottom:3.9rem;padding-top:1.8rem;text-align:center}.setup-home-item{background-color:#fafafa;border:1px solid #ccc;color:#333;display:block;margin-bottom:2rem;margin-left:1.3rem;margin-right:1.3rem;min-height:30rem;padding:2rem;text-align:center}.setup-home-item:hover{border-color:#8c8c8c;color:#333;text-decoration:none;transition:border-color .1s linear}.setup-home-item:active{-webkit-transform:scale(0.99);-ms-transform:scale(0.99);transform:scale(0.99)}.setup-home-item:before{display:block;font-size:7rem;margin-bottom:3.3rem;margin-top:4rem}.setup-home-item-component:before{content:'\e612'}.setup-home-item-upgrade:before{content:'\e614'}.setup-home-item-configuration:before{content:'\e610'}.setup-home-item-title{display:block;font-size:1.8rem;letter-spacing:.025em;margin-bottom:1rem}.setup-home-item-description{display:block}.componenet-manager-wrap{border:1px solid #bbb;margin:0 0 4rem}.componenet-manager-wrap .componenet-manager-account{font-size:1.4rem;float:right;padding:.6rem 0 0}.componenet-manager-wrap .componenet-manager-account .sign-in-out{margin-left:2rem}.component-manager-title{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;color:#41362f;font-size:2rem;line-height:1.2;padding:2rem}.component-manager-content{padding:2.5rem 2rem 2rem}.componenet-manager-items{list-style:none;margin:0;text-align:center}.componenet-manager-items .btn{border:1px solid #adadad}.componenet-manager-items .item-title{margin:0 0 1.5rem}.componenet-manager-items .item-number{font-size:6rem;line-height:.8;margin:0 0 1.5rem}.componenet-manager-items .item-date{margin:0 0 3.7rem}.componenet-manager-items .item-install{margin:0 0 2rem}.componenet-manager-items .item-install .btn{line-height:1.36;margin:0;padding:0;color:#008bdb;text-decoration:none;background:0 0;border:0;display:inline;font-size:1.4rem;font-weight:400}.componenet-manager-items .item-install .btn:visited{color:#008bdb;text-decoration:none}.componenet-manager-items .item-install .btn:hover{text-decoration:underline}.componenet-manager-items .item-install .btn:active{color:#ff5501;text-decoration:underline}.componenet-manager-items .item-install .btn:hover{color:#0fa7ff}.componenet-manager-items .item-install .btn:active,.componenet-manager-items .item-install .btn:focus,.componenet-manager-items .item-install .btn:hover{background:0 0;border:0}.componenet-manager-items .item-install .btn.disabled,.componenet-manager-items .item-install .btn[disabled],fieldset[disabled] .componenet-manager-items .item-install .btn{color:#008bdb;opacity:.5;cursor:default;pointer-events:none;text-decoration:underline}.componenet-manager-items .item-install .btn.disabled{text-decoration:none}.sync-login-wrap{margin:-2.5rem 0 0;padding:0 10% 4rem}.sync-login-wrap .legend{font-size:2.6rem;color:#eb5202;float:left;font-weight:300;line-height:1.2;margin:-1rem 0 2.5rem;position:static;width:100%}.sync-login-wrap .legend._hidden{display:none}.sync-login-wrap .login-header{font-size:3.4rem;font-weight:300;margin:0 0 2rem}.sync-login-wrap .login-header span{display:inline-block;padding:.9rem 0 0;vertical-align:top}.sync-login-wrap .form-row .form-label{display:inline-block}.sync-login-wrap .form-row .form-label.required{padding-left:1.5rem}.sync-login-wrap .form-row .form-label.required:after{left:0;position:absolute;right:auto}.sync-login-wrap .form-row{max-width:28rem}.sync-login-wrap .form-actions{display:table;margin-top:-1.3rem}.sync-login-wrap .form-actions .links{display:table-header-group}.sync-login-wrap .form-actions .actions{padding:3rem 0 0}@media all and (max-width:1047px){.admin__menu .submenu li{min-width:19.8rem}.nav{padding-bottom:5.38rem;padding-left:1.5rem;text-align:center}.nav-bar{display:inline-block;float:none;margin-right:0;vertical-align:top}.nav .btn-group,.nav-bar-outer-actions{display:inline-block;float:none;margin-top:-8.48rem;text-align:center;vertical-align:top;width:100%}.nav-bar-outer-actions{padding-right:0}.nav-bar-outer-actions .outer-actions-inner-wrap{display:inline-block}.app-updater .nav{padding-bottom:1.7rem}.app-updater .nav-bar-outer-actions{margin-top:2rem}}@media all and (min-width:768px){.page-layout-admin-2columns-left .page-columns{margin-left:-30px}.page-layout-admin-2columns-left .page-columns:after{clear:both;content:'';display:table}.page-layout-admin-2columns-left .page-columns .main-col{width:calc((100%) * .75 - 30px);float:right}.page-layout-admin-2columns-left .page-columns .side-col{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9{float:left}.col-m-12{width:100%}.col-m-11{width:91.66666667%}.col-m-10{width:83.33333333%}.col-m-9{width:75%}.col-m-8{width:66.66666667%}.col-m-7{width:58.33333333%}.col-m-6{width:50%}.col-m-5{width:41.66666667%}.col-m-4{width:33.33333333%}.col-m-3{width:25%}.col-m-2{width:16.66666667%}.col-m-1{width:8.33333333%}.col-m-pull-12{right:100%}.col-m-pull-11{right:91.66666667%}.col-m-pull-10{right:83.33333333%}.col-m-pull-9{right:75%}.col-m-pull-8{right:66.66666667%}.col-m-pull-7{right:58.33333333%}.col-m-pull-6{right:50%}.col-m-pull-5{right:41.66666667%}.col-m-pull-4{right:33.33333333%}.col-m-pull-3{right:25%}.col-m-pull-2{right:16.66666667%}.col-m-pull-1{right:8.33333333%}.col-m-pull-0{right:auto}.col-m-push-12{left:100%}.col-m-push-11{left:91.66666667%}.col-m-push-10{left:83.33333333%}.col-m-push-9{left:75%}.col-m-push-8{left:66.66666667%}.col-m-push-7{left:58.33333333%}.col-m-push-6{left:50%}.col-m-push-5{left:41.66666667%}.col-m-push-4{left:33.33333333%}.col-m-push-3{left:25%}.col-m-push-2{left:16.66666667%}.col-m-push-1{left:8.33333333%}.col-m-push-0{left:auto}.col-m-offset-12{margin-left:100%}.col-m-offset-11{margin-left:91.66666667%}.col-m-offset-10{margin-left:83.33333333%}.col-m-offset-9{margin-left:75%}.col-m-offset-8{margin-left:66.66666667%}.col-m-offset-7{margin-left:58.33333333%}.col-m-offset-6{margin-left:50%}.col-m-offset-5{margin-left:41.66666667%}.col-m-offset-4{margin-left:33.33333333%}.col-m-offset-3{margin-left:25%}.col-m-offset-2{margin-left:16.66666667%}.col-m-offset-1{margin-left:8.33333333%}.col-m-offset-0{margin-left:0}.page-columns{margin-left:-30px}.page-columns:after{clear:both;content:'';display:table}.page-columns .page-inner-content{width:calc((100%) * .75 - 30px);float:right}.page-columns .page-inner-sidebar{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}}@media all and (min-width:1048px){.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9{float:left}.col-l-12{width:100%}.col-l-11{width:91.66666667%}.col-l-10{width:83.33333333%}.col-l-9{width:75%}.col-l-8{width:66.66666667%}.col-l-7{width:58.33333333%}.col-l-6{width:50%}.col-l-5{width:41.66666667%}.col-l-4{width:33.33333333%}.col-l-3{width:25%}.col-l-2{width:16.66666667%}.col-l-1{width:8.33333333%}.col-l-pull-12{right:100%}.col-l-pull-11{right:91.66666667%}.col-l-pull-10{right:83.33333333%}.col-l-pull-9{right:75%}.col-l-pull-8{right:66.66666667%}.col-l-pull-7{right:58.33333333%}.col-l-pull-6{right:50%}.col-l-pull-5{right:41.66666667%}.col-l-pull-4{right:33.33333333%}.col-l-pull-3{right:25%}.col-l-pull-2{right:16.66666667%}.col-l-pull-1{right:8.33333333%}.col-l-pull-0{right:auto}.col-l-push-12{left:100%}.col-l-push-11{left:91.66666667%}.col-l-push-10{left:83.33333333%}.col-l-push-9{left:75%}.col-l-push-8{left:66.66666667%}.col-l-push-7{left:58.33333333%}.col-l-push-6{left:50%}.col-l-push-5{left:41.66666667%}.col-l-push-4{left:33.33333333%}.col-l-push-3{left:25%}.col-l-push-2{left:16.66666667%}.col-l-push-1{left:8.33333333%}.col-l-push-0{left:auto}.col-l-offset-12{margin-left:100%}.col-l-offset-11{margin-left:91.66666667%}.col-l-offset-10{margin-left:83.33333333%}.col-l-offset-9{margin-left:75%}.col-l-offset-8{margin-left:66.66666667%}.col-l-offset-7{margin-left:58.33333333%}.col-l-offset-6{margin-left:50%}.col-l-offset-5{margin-left:41.66666667%}.col-l-offset-4{margin-left:33.33333333%}.col-l-offset-3{margin-left:25%}.col-l-offset-2{margin-left:16.66666667%}.col-l-offset-1{margin-left:8.33333333%}.col-l-offset-0{margin-left:0}}@media all and (min-width:1440px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-pull-12{right:100%}.col-xl-pull-11{right:91.66666667%}.col-xl-pull-10{right:83.33333333%}.col-xl-pull-9{right:75%}.col-xl-pull-8{right:66.66666667%}.col-xl-pull-7{right:58.33333333%}.col-xl-pull-6{right:50%}.col-xl-pull-5{right:41.66666667%}.col-xl-pull-4{right:33.33333333%}.col-xl-pull-3{right:25%}.col-xl-pull-2{right:16.66666667%}.col-xl-pull-1{right:8.33333333%}.col-xl-pull-0{right:auto}.col-xl-push-12{left:100%}.col-xl-push-11{left:91.66666667%}.col-xl-push-10{left:83.33333333%}.col-xl-push-9{left:75%}.col-xl-push-8{left:66.66666667%}.col-xl-push-7{left:58.33333333%}.col-xl-push-6{left:50%}.col-xl-push-5{left:41.66666667%}.col-xl-push-4{left:33.33333333%}.col-xl-push-3{left:25%}.col-xl-push-2{left:16.66666667%}.col-xl-push-1{left:8.33333333%}.col-xl-push-0{left:auto}.col-xl-offset-12{margin-left:100%}.col-xl-offset-11{margin-left:91.66666667%}.col-xl-offset-10{margin-left:83.33333333%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-8{margin-left:66.66666667%}.col-xl-offset-7{margin-left:58.33333333%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-5{margin-left:41.66666667%}.col-xl-offset-4{margin-left:33.33333333%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-2{margin-left:16.66666667%}.col-xl-offset-1{margin-left:8.33333333%}.col-xl-offset-0{margin-left:0}}@media all and (max-width:767px){.list-definition>dt{float:none}.list-definition>dd{margin-left:0}.form-row .form-label{text-align:left}.form-row .form-label.required:after{position:static}.nav{padding-bottom:0;padding-left:0;padding-right:0}.nav-bar-outer-actions{margin-top:0}.nav-bar{display:block;margin-bottom:0;margin-left:auto;margin-right:auto;width:30.9rem}.nav-bar:before{display:none}.nav-bar>li{float:left;min-height:9rem}.nav-bar>li:after{display:none}.nav-bar>li:nth-child(4n){clear:both}.nav-bar a{line-height:1.4}.tooltip{display:none!important}.readiness-check-content{margin-right:2rem}.form-el-insider,.form-el-insider-wrap,.page-web-configuration .form-el-insider-input,.page-web-configuration .form-el-insider-input .form-el-input{display:block;width:100%}}@media all and (max-width:479px){.nav-bar{width:23.175rem}.nav-bar>li{width:7.725rem}.nav .btn-group .btn-wrap-try-again,.nav-bar-outer-actions .btn-wrap-try-again{clear:both;display:block;float:none;margin-left:auto;margin-right:auto;margin-top:1rem;padding-top:1rem}}
\ No newline at end of file
+.abs-action-delete,.abs-icon,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.validation-symbol:after{content:'*';color:#e22626;font-weight:400;margin-left:3px}.abs-modal-overlay,.modals-overlay{background:rgba(0,0,0,.35);bottom:0;left:0;position:fixed;right:0;top:0}.abs-action-delete>span,.abs-visually-hidden,.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option)>.admin__field-label,.admin__field-tooltip .admin__field-tooltip-action span,.selectmenu .action-delete>span,.selectmenu .action-edit>span,.selectmenu .action-save>span,.selectmenu-toggle span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.abs-visually-hidden-reset{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.abs-clearfix:after,.abs-clearfix:before,.action-multicheck-wrap:after,.action-multicheck-wrap:before,.actions-split:after,.actions-split:before,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:before,.admin__data-grid-filters-footer:after,.admin__data-grid-filters-footer:before,.admin__data-grid-filters:after,.admin__data-grid-filters:before,.admin__data-grid-header-row:after,.admin__data-grid-header-row:before,.page-actions._fixed:after,.page-actions._fixed:before,.page-content:after,.page-content:before,.page-header-actions:after,.page-header-actions:before,.page-main-actions:not(._hidden):after,.page-main-actions:not(._hidden):before{content:'';display:table}.abs-clearfix:after,.action-multicheck-wrap:after,.actions-split:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-filters-footer:after,.admin__data-grid-filters:after,.admin__data-grid-header-row:after,.page-actions._fixed:after,.page-content:after,.page-header-actions:after,.page-main-actions:not(._hidden):after{clear:both}.abs-list-reset-styles{margin:0;padding:0;list-style:none}.abs-draggable-handle{cursor:-webkit-grab;cursor:move;font-size:0;margin-top:-4px;padding:0 1rem 0 0;vertical-align:middle;display:inline-block;text-decoration:none}.abs-draggable-handle:before{-webkit-font-smoothing:antialiased;font-size:1.8rem;line-height:inherit;color:#9e9e9e;content:'\e617';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.abs-draggable-handle:hover:before{color:#858585}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:focus{box-shadow:none;outline:0}._keyfocus :focus{box-shadow:0 0 0 1px #008bdb}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}embed,img,object,video{max-width:100%}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/light/opensans-300.eot);src:url(../fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../fonts/opensans/light/opensans-300.woff) format('woff'),url(../fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/regular/opensans-400.eot);src:url(../fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../fonts/opensans/regular/opensans-400.woff) format('woff'),url(../fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/semibold/opensans-600.eot);src:url(../fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/bold/opensans-700.eot);src:url(../fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../fonts/opensans/bold/opensans-700.woff) format('woff'),url(../fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#333;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.36;font-size:1.4rem}h1{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2.8rem}h2{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2rem}h3{margin:0 0 2rem;color:#41362f;font-weight:600;line-height:1.2;font-size:1.7rem}h4,h5,h6{font-weight:600;margin-top:0}p{margin:0 0 1em}small{font-size:1.2rem}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}dl,ol,ul{padding-left:0}nav ol,nav ul{list-style:none;margin:0;padding:0}html{height:100%}body{background-color:#fff;min-height:100%;min-width:102.4rem}.page-wrapper{background-color:#fff;display:inline-block;margin-left:-4px;vertical-align:top;width:calc(100% - 8.8rem)}.page-content{padding-bottom:3rem;padding-left:3rem;padding-right:3rem}.notices-wrapper{margin:0 3rem}.notices-wrapper .messages{margin-bottom:0}@media (min-width:1024px){html{width:100vw}body{overflow-x:hidden}}.row{margin-left:0;margin-right:0}.row:after{clear:both;content:'';display:table}.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9,.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}.row-gutter{margin-left:-1.5rem;margin-right:-1.5rem}.row-gutter>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.abs-clearer:after,.component-manager-content:after,.component-manager-title:after,.form-row:after,.header:after,.nav:after,body:after{clear:both;content:'';display:table}.ng-cloak{display:none!important}.hide.hide{display:none}.show.show{display:block}.text-center{text-align:center}.text-right{text-align:right}@font-face{font-family:Icons;src:url(../fonts/icons/icons.eot);src:url(../fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons/icons.woff2) format('woff2'),url(../fonts/icons/icons.woff) format('woff'),url(../fonts/icons/icons.ttf) format('truetype'),url(../fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}.icon-failed:before,.icon-success:before,[class*=icon-]:after{font-family:Icons}.icon-success{color:#79a22e}.icon-success:before{content:'\e62d'}.icon-failed{color:#e22626}.icon-failed:before{content:'\e632'}.icon-success-thick:after{content:'\e62d'}.icon-collapse:after{content:'\e615'}.icon-failed-thick:after{content:'\e632'}.icon-expand:after{content:'\e616'}.icon-warning:after{content:'\e623'}.icon-failed-round,.icon-success-round{border-radius:100%;color:#fff;font-size:2.5rem;height:1em;position:relative;text-align:center;width:1em}.icon-failed-round:after,.icon-success-round:after{bottom:0;font-size:.5em;left:0;position:absolute;right:0;top:.45em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e62d'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e632'}dl,ol,ul{margin-top:0}.list{padding-left:0}.list>li{display:block;margin-bottom:.75em;position:relative}.list>li>.icon-failed,.list>li>.icon-success{font-size:1.6em;left:-.1em;position:absolute;top:0}.list>li>.icon-success{color:#79a22e}.list>li>.icon-failed{color:#e22626}.list-item-failed,.list-item-icon,.list-item-success,.list-item-warning{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{left:-.1em;position:absolute}.list-item-success:before{color:#79a22e}.list-item-failed:before{color:#e22626}.list-item-warning:before{color:#ef672f}.list-definition{margin:0 0 3rem;padding:0}.list-definition>dt{clear:left;float:left}.list-definition>dd{margin-bottom:1em;margin-left:20rem}.btn-wrap{margin:0 auto}.btn-wrap .btn{width:100%}.btn{background:#e3e3e3;border:none;color:#514943;display:inline-block;font-size:1.6rem;font-weight:600;padding:.45em .9em;text-align:center}.btn:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.btn:active{background-color:#d6d6d6}.btn.disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.ie9 .btn.disabled,.ie9 .btn[disabled]{background-color:#f0f0f0;opacity:1;text-shadow:none}.btn-large{padding:.75em 1.25em}.btn-medium{font-size:1.4rem;padding:.5em 1.5em .6em}.btn-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.btn-link:active,.btn-link:focus,.btn-link:hover{background-color:transparent;color:#0fa7ff}.btn-prime{background-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.btn-prime:focus,.btn-prime:hover{background-color:#f65405;background-repeat:repeat-x;background-image:linear-gradient(to right,#e04f00 0,#f65405 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e04f00', endColorstr='#f65405', GradientType=1);color:#fff}.btn-prime:active{background-color:#e04f00;background-repeat:repeat-x;background-image:linear-gradient(to right,#f65405 0,#e04f00 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f65405', endColorstr='#e04f00', GradientType=1);color:#fff}.ie9 .btn-prime.disabled,.ie9 .btn-prime[disabled]{background-color:#fd6e23}.ie9 .btn-prime.disabled:active,.ie9 .btn-prime.disabled:hover,.ie9 .btn-prime[disabled]:active,.ie9 .btn-prime[disabled]:hover{background-color:#fd6e23;-webkit-filter:none;filter:none}.btn-secondary{background-color:#514943;color:#fff}.btn-secondary:hover{background-color:#5f564f;color:#fff}.btn-secondary:active,.btn-secondary:focus{background-color:#574e48;color:#fff}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary[disabled]:active{background-color:#514943;-webkit-filter:none;filter:none}[class*=btn-wrap-triangle]{overflow:hidden;position:relative}[class*=btn-wrap-triangle] .btn:after{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.btn-wrap-triangle-right{display:inline-block;padding-right:1.74rem;position:relative}.btn-wrap-triangle-right .btn{text-indent:.92rem}.btn-wrap-triangle-right .btn:after{border-color:transparent transparent transparent #e3e3e3;border-width:1.84rem 0 1.84rem 1.84rem;left:100%;margin-left:-1.74rem}.btn-wrap-triangle-right .btn:focus:after,.btn-wrap-triangle-right .btn:hover:after{border-left-color:#dbdbdb}.btn-wrap-triangle-right .btn:active:after{border-left-color:#d6d6d6}.btn-wrap-triangle-right .btn:not(.disabled):active,.btn-wrap-triangle-right .btn:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn.disabled:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:after{border-color:transparent transparent transparent #f0f0f0}.ie9 .btn-wrap-triangle-right .btn.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn.disabled:focus:after,.ie9 .btn-wrap-triangle-right .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:focus:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:hover:after{border-left-color:#f0f0f0}.btn-wrap-triangle-right .btn-prime:after{border-color:transparent transparent transparent #eb5202}.btn-wrap-triangle-right .btn-prime:focus:after,.btn-wrap-triangle-right .btn-prime:hover:after{border-left-color:#f65405}.btn-wrap-triangle-right .btn-prime:active:after{border-left-color:#e04f00}.btn-wrap-triangle-right .btn-prime:not(.disabled):active,.btn-wrap-triangle-right .btn-prime:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:after{border-color:transparent transparent transparent #fd6e23}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:hover:after{border-left-color:#fd6e23}.btn-wrap-triangle-left{display:inline-block;padding-left:1.74rem}.btn-wrap-triangle-left .btn{text-indent:-.92rem}.btn-wrap-triangle-left .btn:after{border-color:transparent #e3e3e3 transparent transparent;border-width:1.84rem 1.84rem 1.84rem 0;margin-right:-1.74rem;right:100%}.btn-wrap-triangle-left .btn:focus:after,.btn-wrap-triangle-left .btn:hover:after{border-right-color:#dbdbdb}.btn-wrap-triangle-left .btn:active:after{border-right-color:#d6d6d6}.btn-wrap-triangle-left .btn:not(.disabled):active,.btn-wrap-triangle-left .btn:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn.disabled:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:after{border-color:transparent #f0f0f0 transparent transparent}.ie9 .btn-wrap-triangle-left .btn.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:hover:after{border-right-color:#f0f0f0}.btn-wrap-triangle-left .btn-prime:after{border-color:transparent #eb5202 transparent transparent}.btn-wrap-triangle-left .btn-prime:focus:after,.btn-wrap-triangle-left .btn-prime:hover:after{border-right-color:#e04f00}.btn-wrap-triangle-left .btn-prime:active:after{border-right-color:#f65405}.btn-wrap-triangle-left .btn-prime:not(.disabled):active,.btn-wrap-triangle-left .btn-prime:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:after{border-color:transparent #fd6e23 transparent transparent}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:hover:after{border-right-color:#fd6e23}.btn-expand{background-color:transparent;border:none;color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;padding:0;position:relative}.btn-expand.expanded:after{border-color:transparent transparent #303030;border-width:0 .285em .36em}.btn-expand.expanded:hover:after{border-color:transparent transparent #3d3d3d}.btn-expand:hover{background-color:transparent;border:none;color:#3d3d3d}.btn-expand:hover:after{border-color:#3d3d3d transparent transparent}.btn-expand:after{border-color:#303030 transparent transparent;border-style:solid;border-width:.36em .285em 0;content:'';height:0;left:100%;margin-left:.5em;margin-top:-.18em;position:absolute;top:50%;width:0}[class*=col-] .form-el-input,[class*=col-] .form-el-select{width:100%}.form-fieldset{border:none;margin:0 0 1em;padding:0}.form-row{margin-bottom:2.2rem}.form-row .form-row{margin-bottom:.4rem}.form-row .form-label{display:block;font-weight:600;padding:.6rem 2.1em 0 0;text-align:right}.form-row .form-label.required{position:relative}.form-row .form-label.required:after{color:#eb5202;content:'*';font-size:1.15em;position:absolute;right:.7em;top:.5em}.form-row .form-el-checkbox+.form-label:before,.form-row .form-el-radio+.form-label:before{top:.7rem}.form-row .form-el-checkbox+.form-label:after,.form-row .form-el-radio+.form-label:after{top:1.1rem}.form-row.form-row-text{padding-top:.6rem}.form-row.form-row-text .action-sign-out{font-size:1.2rem;margin-left:1rem}.form-note{font-size:1.2rem;font-weight:600;margin-top:1rem}.form-el-dummy{display:none}.fieldset{border:0;margin:0;min-width:0;padding:0}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.form-el-input:required{box-shadow:none}.form-label{margin-bottom:.5em}[class*=form-label][for]{cursor:pointer}.form-el-insider-wrap{display:table;width:100%}.form-el-insider-input{display:table-cell;width:100%}.form-el-insider{border-radius:2px;display:table-cell;vertical-align:top;padding:.43em .55em .5em 0}.form-legend,.form-legend-expand,.form-legend-light{display:block;margin:0}.form-legend,.form-legend-expand{margin-bottom:2.5em;padding-top:1.5em;font-weight:600;font-size:1.25em}.form-legend{width:100%;border-top:1px solid #ccc}.form-legend-light{margin-bottom:1.5em;font-size:1em}.form-legend-expand{cursor:pointer;transition:opacity .2s linear}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e615'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e616';vertical-align:sub}.form-el-checkbox,.form-el-radio{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-el-checkbox.disabled+.form-label,.form-el-checkbox.disabled+.form-label:before,.form-el-checkbox[disabled]+.form-label,.form-el-checkbox[disabled]+.form-label:before,.form-el-radio.disabled+.form-label,.form-el-radio.disabled+.form-label:before,.form-el-radio[disabled]+.form-label,.form-el-radio[disabled]+.form-label:before{cursor:default;opacity:.5;pointer-events:none}.form-el-checkbox:not(.disabled)+.form-label:hover:before,.form-el-checkbox:not([disabled])+.form-label:hover:before,.form-el-radio:not(.disabled)+.form-label:hover:before,.form-el-radio:not([disabled])+.form-label:hover:before{border-color:#514943}.form-el-checkbox+.form-label,.form-el-radio+.form-label{font-weight:400;padding-left:2em;padding-right:0;position:relative;text-align:left;transition:border-color .1s linear}.form-el-checkbox+.form-label:before,.form-el-radio+.form-label:before{border:1px solid;content:'';left:0;position:absolute;top:.1rem;transition:border-color .1s linear}.form-el-checkbox+.form-label:before{background-color:#fff;border-color:#adadad;border-radius:2px;height:1.6rem;line-height:1.2;width:1.6rem;font-size:1.2rem}.form-el-checkbox:checked+.form-label::before{content:'\e62d';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.8rem;width:1.8rem}.form-el-radio+.form-label:after{background:0 0;border:.5rem solid transparent;border-radius:100%;content:'';height:0;left:.4rem;position:absolute;top:.5rem;transition:background .3s linear;width:0}.form-el-radio:checked+.form-label{cursor:default}.form-el-radio:checked+.form-label:after{border-color:#514943}.form-select-label{border:1px solid #adadad;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative;z-index:0}.form-select-label:hover,.form-select-label:hover:after{border-color:#949494}.form-select-label:active,.form-select-label:active:after,.form-select-label:focus,.form-select-label:focus:after{border-color:#008bdb}.form-select-label:after{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:2.36em;z-index:-2}.ie9 .form-select-label:after{display:none}.form-select-label:before{border-color:#303030 transparent transparent;border-style:solid;border-width:5px 4px 0;content:'';height:0;margin-right:-4px;margin-top:-2.5px;position:absolute;right:1.18em;top:50%;width:0;z-index:-1}.ie9 .form-select-label:before{display:none}.form-select-label .form-el-select{background:0 0;border:none;border-radius:0;content:'';display:block;margin:0;padding:.35em calc(2.36em + 10%) .5em .55em;width:110%}.ie9 .form-select-label .form-el-select{padding-right:.55em;width:100%}.form-el-select{background:#fff;border:1px solid #adadad;border-radius:2px;color:#303030;display:block;padding:.35em .55em}.multiselect-custom{position:relative;height:45.2rem;border:1px solid #adadad;overflow:auto;margin:0 0 1.5rem}.multiselect-custom ul{margin:0;padding:0;list-style:none;min-width:29rem}.multiselect-custom .item{padding:1rem 1.4rem}.multiselect-custom .selected{background-color:#e0f6fe}.multiselect-custom .form-label{margin-bottom:0}[class*=form-el-].invalid{border-color:#e22626}[class*=form-el-].invalid+.error-container{display:block}.error-container{background-color:#fffbbb;border:1px solid #ee7d7d;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.8rem 1rem .9rem}.check-result-message{margin-left:.5em;min-height:3.68rem;-webkit-align-items:center;-ms-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.check-result-text{margin-left:.5em}body:not([class]){min-width:0}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0}.abs-action-delete,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.text-stretch{margin-bottom:1.5em}.page-title-jumbo{font-size:4rem;font-weight:300;letter-spacing:-.05em;margin-bottom:2.9rem}.page-title-jumbo-success:before{color:#79a22e;content:'\e62d';font-size:3.9rem;margin-left:-.3rem;margin-right:2.4rem}.list{margin-bottom:3rem}.list-dot .list-item{display:list-item;list-style-position:inside;margin-bottom:1.2rem}.list-title{color:#333;font-size:1.4rem;font-weight:700;letter-spacing:.025em;margin-bottom:1.2rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{font-family:Icons;font-size:1.6rem;top:0}.list-item-success:before{content:'\e62d';font-size:1.6rem}.list-item-failed:before{content:'\e632';font-size:1.4rem;left:.1rem;top:.2rem}.list-item-warning:before{content:'\e623';font-size:1.3rem;left:.2rem}.form-wrap{padding-top:2.1rem;margin-bottom:3.6rem}.form-el-label-horizontal{display:inline-block;font-size:1.3rem;font-weight:600;letter-spacing:.025em;margin-left:.4rem;margin-bottom:.4rem}.app-updater{min-width:768px}body._has-modal{height:100%;overflow:hidden;width:100%}.modals-overlay{z-index:899}.modal-popup,.modal-slide{bottom:0;min-width:0;pointer-events:none;position:fixed;right:0;top:0;visibility:hidden}.modal-popup._show,.modal-slide._show{visibility:visible}.modal-popup._show .modal-inner-wrap,.modal-slide._show .modal-inner-wrap{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-popup .modal-inner-wrap,.modal-slide .modal-inner-wrap{background-color:#fff;box-shadow:0 0 12px 2px rgba(0,0,0,.35);opacity:1;pointer-events:auto}.modal-slide{left:14.8rem;z-index:900}.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto}.modal-slide._inner-scroll .modal-inner-wrap{overflow-y:visible;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.modal-slide._inner-scroll .modal-footer,.modal-slide._inner-scroll .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-slide._inner-scroll .modal-content{overflow-y:auto}.modal-slide._inner-scroll .modal-footer{margin-top:auto}.modal-slide .modal-content,.modal-slide .modal-footer,.modal-slide .modal-header{padding:0 2.6rem 2.6rem}.modal-slide .modal-header{padding-bottom:2.1rem;padding-top:2.1rem}.modal-popup{left:0;overflow-y:auto;z-index:900}.modal-popup._show .modal-inner-wrap{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.modal-popup .modal-inner-wrap{box-sizing:border-box;height:auto;left:0;margin:5rem auto;position:absolute;right:0;-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%);transition-duration:.2s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:75%}.modal-popup._inner-scroll{overflow-y:visible}.ie10 .modal-popup._inner-scroll,.ie9 .modal-popup._inner-scroll{overflow-y:auto}.modal-popup._inner-scroll .modal-inner-wrap{max-height:90%}.ie10 .modal-popup._inner-scroll .modal-inner-wrap,.ie9 .modal-popup._inner-scroll .modal-inner-wrap{max-height:none}.modal-popup._inner-scroll .modal-content{overflow-y:auto}.modal-popup .modal-content,.modal-popup .modal-footer,.modal-popup .modal-header{padding-left:3rem;padding-right:3rem}.modal-popup .modal-footer,.modal-popup .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-popup .modal-header{padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer{margin-top:auto;padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer-actions{text-align:right}.modal-popup.confirm .modal-inner-wrap{left:50%;margin-left:-25rem;width:50rem}.modal-popup.confirm .modal-footer{text-align:right}.modal-popup._image-box .modal-inner-wrap{margin:5rem auto;max-width:78rem;position:static}.modal-popup._image-box .thumbnail-preview{padding-bottom:3rem;text-align:center}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image-block{border:1px solid #ccc;margin:0 auto 2rem;max-width:58rem;padding:2rem}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image{max-height:54rem}@media (max-width:768px){.modal-popup.modal-slide{left:14.8rem;z-index:900}.modal-popup.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-popup.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto;margin:0;max-height:none}}.admin__action-dropdown-wrap{display:inline-block;position:relative}.admin__action-dropdown-wrap .admin__action-dropdown-text:after{left:-6px;right:0}.admin__action-dropdown-wrap .admin__action-dropdown-menu{left:auto;right:0}.admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__action-dropdown-wrap.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin__action-dropdown-wrap._active .admin__action-dropdown-text:after,.admin__action-dropdown-wrap.active .admin__action-dropdown-text:after{background-color:#fff;content:'';height:6px;position:absolute;top:100%}.admin__action-dropdown-wrap._active .admin__action-dropdown-menu,.admin__action-dropdown-wrap.active .admin__action-dropdown-menu{display:block}.admin__action-dropdown-wrap._disabled .admin__action-dropdown{cursor:default}.admin__action-dropdown-wrap._disabled:hover .admin__action-dropdown{color:#333}.admin__action-dropdown{background-color:#fff;border:1px solid transparent;border-bottom:none;border-radius:0;box-shadow:none;color:#333;display:inline-block;font-size:1.3rem;font-weight:400;letter-spacing:-.025em;padding:.7rem 3.3rem .8rem 1.5rem;position:relative;vertical-align:baseline;z-index:2}.admin__action-dropdown._active:after,.admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .admin__action-dropdown:after,.active .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin__action-dropdown:focus,.admin__action-dropdown:hover{background-color:#fff;color:#000;text-decoration:none}.admin__action-dropdown:after{right:1.5rem}.admin__action-dropdown:before{margin-right:1rem}.admin__action-dropdown-menu{background-color:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;line-height:1.36;margin-top:-1px;min-width:120%;padding:.5rem 1rem;position:absolute;top:100%;transition:all .15s ease;z-index:1}.admin__action-dropdown-menu>li{display:block}.admin__action-dropdown-menu>li>a{color:#333;display:block;text-decoration:none;padding:.6rem .5rem}.selectmenu{display:inline-block;position:relative;text-align:left;z-index:1}.selectmenu._active{z-index:500;border-color:#007bdb}.selectmenu .action-delete,.selectmenu .action-edit,.selectmenu .action-save{background-color:transparent;border-color:transparent;box-shadow:none;padding:0 1rem}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover,.selectmenu .action-save:hover{background-color:transparent;border-color:transparent;box-shadow:none}.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before{content:'\e630'}.selectmenu .action-delete,.selectmenu .action-edit{border:0 solid #fff;border-left-width:1px;bottom:0;position:absolute;right:0;top:0;z-index:1}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover{border:0 solid #fff;border-left-width:1px}.selectmenu .action-save:before{content:'\e625'}.selectmenu .action-edit:before{content:'\e631'}.selectmenu-value{display:inline-block}.selectmenu-value input[type=text]{-moz-appearance:none;-webkit-appearance:none;appearance:none;border:0;display:inline;margin:0;width:6rem}body._keyfocus .selectmenu-value input[type=text]:focus{box-shadow:none}.selectmenu-toggle{padding-right:3rem;background:0 0;border-width:0;bottom:0;float:right;position:absolute;right:0;top:0;width:0}.selectmenu-toggle._active:after,.selectmenu-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.1rem;top:50%;transition:all .2s linear;width:0}._active .selectmenu-toggle:after,.active .selectmenu-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:hover:after{border-color:#000 transparent transparent}.selectmenu-toggle:active,.selectmenu-toggle:focus,.selectmenu-toggle:hover{background:0 0}.selectmenu._active .selectmenu-toggle:before{border-color:#007bdb}body._keyfocus .selectmenu-toggle:focus{box-shadow:none}.selectmenu-toggle:before{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';display:block;position:absolute;right:0;top:0;width:3.2rem}.selectmenu-items{background:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;float:left;left:-1px;margin-top:3px;max-width:20rem;min-width:calc(100% + 2px);position:absolute;top:100%}.selectmenu-items._active{display:block}.selectmenu-items ul{float:left;list-style-type:none;margin:0;min-width:100%;padding:0}.selectmenu-items li{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;transition:background .2s linear}.selectmenu-items li:hover{background:#e3e3e3}.selectmenu-items li:last-child .selectmenu-item-action,.selectmenu-items li:last-child .selectmenu-item-action:visited{color:#008bdb;text-decoration:none}.selectmenu-items li:last-child .selectmenu-item-action:hover{color:#0fa7ff;text-decoration:underline}.selectmenu-items li:last-child .selectmenu-item-action:active{color:#ff5501;text-decoration:underline}.selectmenu-item{position:relative;width:100%;z-index:1}li._edit>.selectmenu-item{display:none}.selectmenu-item-edit{display:none;padding:.3rem 4rem .3rem .4rem;position:relative;white-space:nowrap;z-index:1}li:last-child .selectmenu-item-edit{padding-right:.4rem}.selectmenu-item-edit .admin__control-text{width:5.4rem;margin:0}li._edit .selectmenu-item-edit{display:block}.selectmenu-item-action{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:0;color:#333;display:block;font-size:1.4rem;font-weight:400;min-width:100%;padding:1rem 6rem 1rem 1.5rem;text-align:left;transition:background .2s linear;width:5rem}.selectmenu-item-action:focus,.selectmenu-item-action:hover{background:#e3e3e3}.abs-actions-split-xl .action-default,.page-actions .actions-split .action-default{margin-right:4rem}.abs-actions-split-xl .action-toggle,.page-actions .actions-split .action-toggle{padding-right:4rem}.abs-actions-split-xl .action-toggle:after,.page-actions .actions-split .action-toggle:after{border-width:.9rem .6rem 0;margin-top:-.3rem;right:1.4rem}.actions-split{position:relative;z-index:200}.actions-split._active,.actions-split.active,.actions-split:hover{box-shadow:0 0 0 1px #007bdb}.actions-split._active .action-toggle.action-primary,.actions-split._active .action-toggle.primary,.actions-split.active .action-toggle.action-primary,.actions-split.active .action-toggle.primary{background-color:#ba4000;border-color:#ba4000}.actions-split._active .dropdown-menu,.actions-split.active .dropdown-menu{opacity:1;visibility:visible;display:block}.actions-split .action-default,.actions-split .action-toggle{float:left;margin:0}.actions-split .action-default._active,.actions-split .action-default.active,.actions-split .action-default:hover,.actions-split .action-toggle._active,.actions-split .action-toggle.active,.actions-split .action-toggle:hover{box-shadow:none}.actions-split .action-default{margin-right:3.2rem;min-width:9.3rem}.actions-split .action-toggle{padding-right:3.2rem;border-left-color:rgba(0,0,0,.2);bottom:0;padding-left:0;position:absolute;right:0;top:0}.actions-split .action-toggle._active:after,.actions-split .action-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .actions-split .action-toggle:after,.active .actions-split .action-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:hover:after{border-color:#000 transparent transparent}.actions-split .action-toggle.action-primary:after,.actions-split .action-toggle.action-secondary:after,.actions-split .action-toggle.primary:after,.actions-split .action-toggle.secondary:after{border-color:#fff transparent transparent}.actions-split .action-toggle>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-select-wrap{display:inline-block;position:relative}.action-select-wrap .action-select{padding-right:3.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;font-weight:400;text-align:left}.action-select-wrap .action-select._active:after,.action-select-wrap .action-select.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .action-select-wrap .action-select:after,.active .action-select-wrap .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:hover:after{border-color:#000 transparent transparent}.action-select-wrap .action-select:hover,.action-select-wrap .action-select:hover:before{border-color:#878787}.action-select-wrap .action-select:before{background-color:#e3e3e3;border:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:3.2rem}.action-select-wrap .action-select._active{border-color:#007bdb}.action-select-wrap .action-select._active:before{border-color:#007bdb #007bdb #007bdb #adadad}.action-select-wrap .action-select[disabled]{color:#333}.action-select-wrap .action-select[disabled]:after{border-color:#333 transparent transparent}.action-select-wrap._active{z-index:500}.action-select-wrap._active .action-select,.action-select-wrap._active .action-select:before{border-color:#007bdb}.action-select-wrap._active .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .abs-action-menu .action-submenu,.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu,.action-select-wrap .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:45rem;overflow-y:auto}.action-select-wrap .action-menu-items{left:0;position:absolute;right:0;top:100%}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu{min-width:100%;position:static}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{position:absolute}.action-multicheck-wrap{display:inline-block;height:1.6rem;padding-top:1px;position:relative;width:3.1rem;z-index:200}.action-multicheck-wrap:hover .action-multicheck-toggle,.action-multicheck-wrap:hover .admin__control-checkbox+label:before{border-color:#878787}.action-multicheck-wrap._active .action-multicheck-toggle,.action-multicheck-wrap._active .admin__control-checkbox+label:before{border-color:#007bdb}.action-multicheck-wrap._active .abs-action-menu .action-submenu,.action-multicheck-wrap._active .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .action-menu,.action-multicheck-wrap._active .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu .action-submenu{opacity:1;visibility:visible;display:block}.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{background-color:#fff}.action-multicheck-wrap._disabled .action-multicheck-toggle,.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{border-color:#adadad;opacity:1}.action-multicheck-wrap .action-multicheck-toggle,.action-multicheck-wrap .admin__control-checkbox,.action-multicheck-wrap .admin__control-checkbox+label{float:left}.action-multicheck-wrap .action-multicheck-toggle{border-radius:0 1px 1px 0;height:1.6rem;margin-left:-1px;padding:0;position:relative;transition:border-color .1s linear;width:1.6rem}.action-multicheck-wrap .action-multicheck-toggle._active:after,.action-multicheck-wrap .action-multicheck-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .action-multicheck-wrap .action-multicheck-toggle:after,.active .action-multicheck-wrap .action-multicheck-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:hover:after{border-color:#000 transparent transparent}.action-multicheck-wrap .action-multicheck-toggle:focus{border-color:#007bdb}.action-multicheck-wrap .action-multicheck-toggle:after{right:.3rem}.action-multicheck-wrap .action-multicheck-toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.action-multicheck-wrap .abs-action-menu .action-submenu,.action-multicheck-wrap .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap .action-menu,.action-multicheck-wrap .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{left:-1.2rem;margin-top:1px;right:auto;text-align:left}.action-multicheck-wrap .action-menu-item{white-space:nowrap}.admin__action-multiselect-wrap{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.admin__action-multiselect-wrap.action-select-wrap:focus{box-shadow:none}.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .action-menu,.admin__action-multiselect-wrap.action-select-wrap .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:none;overflow-y:inherit}.admin__action-multiselect-wrap .action-menu-item{transition:background-color .1s linear}.admin__action-multiselect-wrap .action-menu-item._selected{background-color:#e3e3e3}.admin__action-multiselect-wrap .action-menu-item._hover{background-color:#e0f6fe}.admin__action-multiselect-wrap .admin__action-multiselect{border:1px solid #adadad;cursor:pointer;min-height:3.2rem;padding:.7rem 3.6rem .6rem 1em;white-space:normal}.admin__action-multiselect-wrap .admin__action-multiselect:after{bottom:1.25rem;top:auto}.admin__action-multiselect-wrap .admin__action-multiselect:before{height:3.2rem;top:auto;width:3.2rem}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{text-align:left}.admin__action-multiselect-label{position:relative;z-index:1}.admin__action-multiselect-label:before{margin-right:.5rem}.admin__action-multiselect-search-wrap{margin-bottom:1rem;padding:1rem;position:relative}.admin__action-multiselect-search-wrap+.admin__action-multiselect-menu-inner{border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;margin-bottom:1rem}.admin__action-multiselect-menu-inner{margin-bottom:0;max-height:17.2rem;overflow-y:auto}.admin__action-multiselect-search{padding-right:3rem;width:100%}.admin__action-multiselect-search-label{display:block;font-size:1.5rem;height:1em;overflow:hidden;position:absolute;right:2.2rem;top:1.7rem;width:1em}.admin__action-multiselect-search-label:before{content:'\e60c'}.admin__action-multiselect-actions-wrap{text-align:center}.admin__action-multiselect-actions-wrap .action-default{font-size:1.3rem;min-width:13rem}.admin__action-multiselect-crumb{background-color:#f5f5f5;border:1px solid #a79d95;border-radius:1px;display:inline-block;font-size:1.2rem;margin:-.3rem .9rem .5rem -1.1rem;padding:.3rem 2.4rem .4rem 1rem;position:relative;transition:border-color .1s linear}.admin__action-multiselect-crumb:hover{border-color:#908379}.admin__action-multiselect-crumb .action-close{bottom:0;font-size:.5em;position:absolute;right:0;top:0;width:2rem}.admin__action-multiselect-crumb .action-close:hover{color:#000}.admin__action-multiselect-crumb .action-close:active,.admin__action-multiselect-crumb .action-close:focus{background-color:transparent}.admin__action-multiselect-crumb .action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.abs-action-delete,.abs-action-reset,.action-close,.notifications-close,.search-global-field._active .search-global-action{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0}.abs-action-delete:hover,.abs-action-reset:hover,.action-close:hover,.notifications-close:hover,.search-global-field._active .search-global-action:hover{background-color:transparent;border:none;box-shadow:none}.abs-action-default,.abs-action-pattern,.abs-action-primary,.abs-action-quaternary,.abs-action-secondary,.abs-action-tertiary,.action-default,.action-primary,.action-quaternary,.action-secondary,.action-tertiary,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button,.page-actions>button.action-primary,.page-actions>button.primary,button,button.primary,button.secondary,button.tertiary{border:1px solid;border-radius:0;display:inline-block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:1.36;padding:.6rem 1em;text-align:center;vertical-align:baseline}.abs-action-default.disabled,.abs-action-default[disabled],.abs-action-pattern.disabled,.abs-action-pattern[disabled],.abs-action-primary.disabled,.abs-action-primary[disabled],.abs-action-quaternary.disabled,.abs-action-quaternary[disabled],.abs-action-secondary.disabled,.abs-action-secondary[disabled],.abs-action-tertiary.disabled,.abs-action-tertiary[disabled],.action-default.disabled,.action-default[disabled],.action-primary.disabled,.action-primary[disabled],.action-quaternary.disabled,.action-quaternary[disabled],.action-secondary.disabled,.action-secondary[disabled],.action-tertiary.disabled,.action-tertiary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.disabled,.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions .page-actions-buttons>button[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.disabled,.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],.page-actions>button[disabled],button.disabled,button.primary.disabled,button.primary[disabled],button.secondary.disabled,button.secondary[disabled],button.tertiary.disabled,button.tertiary[disabled],button[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-l,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions button,.page-actions>button.action-primary,.page-actions>button.primary{font-size:1.6rem;letter-spacing:.025em;padding-bottom:.6875em;padding-top:.6875em}.abs-action-delete{display:inline-block;font-size:1.6rem;margin-left:1.2rem;padding-top:.7rem;text-decoration:none;vertical-align:middle}.abs-action-delete:after{color:#666;content:'\e630'}.abs-action-delete:hover:after{color:#35302c}.abs-action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.abs-action-default:active,.abs-action-default:focus,.abs-action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.abs-action-primary,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary,button.primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.abs-action-primary:active,.abs-action-primary:focus,.abs-action-primary:hover,.page-actions .page-actions-buttons>button.action-primary:active,.page-actions .page-actions-buttons>button.action-primary:focus,.page-actions .page-actions-buttons>button.action-primary:hover,.page-actions .page-actions-buttons>button.primary:active,.page-actions .page-actions-buttons>button.primary:focus,.page-actions .page-actions-buttons>button.primary:hover,.page-actions>button.action-primary:active,.page-actions>button.action-primary:focus,.page-actions>button.action-primary:hover,.page-actions>button.primary:active,.page-actions>button.primary:focus,.page-actions>button.primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-primary.disabled,.abs-action-primary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],button.primary.disabled,button.primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-secondary,button.secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.abs-action-secondary:active,.abs-action-secondary:focus,.abs-action-secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-secondary:active,button.secondary:active{background-color:#35302c}.abs-action-tertiary,button.tertiary{background-color:transparent;border-color:transparent;text-shadow:none;color:#008bdb}.abs-action-tertiary:active,.abs-action-tertiary:focus,.abs-action-tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#0fa7ff;text-decoration:underline}.abs-action-quaternary,.page-actions .page-actions-buttons>button,.page-actions>button{background-color:transparent;border-color:transparent;text-shadow:none;color:#333}.abs-action-quaternary:active,.abs-action-quaternary:focus,.abs-action-quaternary:hover,.page-actions .page-actions-buttons>button:active,.page-actions .page-actions-buttons>button:focus,.page-actions .page-actions-buttons>button:hover,.page-actions>button:active,.page-actions>button:focus,.page-actions>button:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#1a1a1a}.abs-action-menu,.actions-split .abs-action-menu .action-submenu,.actions-split .abs-action-menu .action-submenu .action-submenu,.actions-split .action-menu,.actions-split .action-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.actions-split .dropdown-menu{text-align:left;background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu._active,.actions-split .abs-action-menu .action-submenu .action-submenu._active,.actions-split .abs-action-menu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .action-menu._active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .actions-split .dropdown-menu .action-submenu._active,.actions-split .dropdown-menu._active{display:block}.abs-action-menu>li,.actions-split .abs-action-menu .action-submenu .action-submenu>li,.actions-split .abs-action-menu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .action-menu>li,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .actions-split .dropdown-menu .action-submenu>li,.actions-split .dropdown-menu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu>li>a:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .abs-action-menu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .action-menu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu>li>a:hover{text-decoration:none}.abs-action-menu>li._visible,.abs-action-menu>li:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu .action-submenu>li:hover,.actions-split .abs-action-menu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .action-menu>li._visible,.actions-split .action-menu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu>li:hover,.actions-split .dropdown-menu>li._visible,.actions-split .dropdown-menu>li:hover{background-color:#e3e3e3}.abs-action-menu>li:active,.actions-split .abs-action-menu .action-submenu .action-submenu>li:active,.actions-split .abs-action-menu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .action-menu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu>li:active,.actions-split .dropdown-menu>li:active{background-color:#cacaca}.abs-action-menu>li._parent,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent,.actions-split .abs-action-menu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .action-menu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent,.actions-split .dropdown-menu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-menu-item,.abs-action-menu .item,.actions-split .abs-action-menu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .item,.actions-split .abs-action-menu .action-submenu .item,.actions-split .action-menu .action-menu-item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .item,.actions-split .action-menu .item,.actions-split .actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .actions-split .dropdown-menu .action-submenu .item,.actions-split .dropdown-menu .action-menu-item,.actions-split .dropdown-menu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu a.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .abs-action-menu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .action-menu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu a.action-menu-item{color:#333}.abs-action-menu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.abs-action-wrap-triangle{position:relative}.abs-action-wrap-triangle .action-default{width:100%}.abs-action-wrap-triangle .action-default:after,.abs-action-wrap-triangle .action-default:before{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.abs-action-wrap-triangle .action-default:active,.abs-action-wrap-triangle .action-default:focus,.abs-action-wrap-triangle .action-default:hover{box-shadow:none}._keyfocus .abs-action-wrap-triangle .action-default:focus{box-shadow:0 0 0 1px #007bdb}.ie10 .abs-action-wrap-triangle .action-default.disabled,.ie10 .abs-action-wrap-triangle .action-default[disabled],.ie9 .abs-action-wrap-triangle .action-default.disabled,.ie9 .abs-action-wrap-triangle .action-default[disabled]{background-color:#fcfcfc;opacity:1;text-shadow:none}.abs-action-wrap-triangle-right{display:inline-block;padding-right:1.6rem;position:relative}.abs-action-wrap-triangle-right .action-default:after,.abs-action-wrap-triangle-right .action-default:before{border-color:transparent transparent transparent #e3e3e3;border-width:1.7rem 0 1.6rem 1.7rem;left:100%;margin-left:-1.7rem}.abs-action-wrap-triangle-right .action-default:before{border-left-color:#949494;right:-1px}.abs-action-wrap-triangle-right .action-default:active:after,.abs-action-wrap-triangle-right .action-default:focus:after,.abs-action-wrap-triangle-right .action-default:hover:after{border-left-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-right .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-right .action-default[disabled]:after{border-color:transparent transparent transparent #fcfcfc}.abs-action-wrap-triangle-right .action-primary:after{border-color:transparent transparent transparent #eb5202}.abs-action-wrap-triangle-right .action-primary:active:after,.abs-action-wrap-triangle-right .action-primary:focus:after,.abs-action-wrap-triangle-right .action-primary:hover:after{border-left-color:#ba4000}.abs-action-wrap-triangle-left{display:inline-block;padding-left:1.6rem}.abs-action-wrap-triangle-left .action-default{text-indent:-.85rem}.abs-action-wrap-triangle-left .action-default:after,.abs-action-wrap-triangle-left .action-default:before{border-color:transparent #e3e3e3 transparent transparent;border-width:1.7rem 1.7rem 1.6rem 0;margin-right:-1.7rem;right:100%}.abs-action-wrap-triangle-left .action-default:before{border-right-color:#949494;left:-1px}.abs-action-wrap-triangle-left .action-default:active:after,.abs-action-wrap-triangle-left .action-default:focus:after,.abs-action-wrap-triangle-left .action-default:hover:after{border-right-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-left .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-left .action-default[disabled]:after{border-color:transparent #fcfcfc transparent transparent}.abs-action-wrap-triangle-left .action-primary:after{border-color:transparent #eb5202 transparent transparent}.abs-action-wrap-triangle-left .action-primary:active:after,.abs-action-wrap-triangle-left .action-primary:focus:after,.abs-action-wrap-triangle-left .action-primary:hover:after{border-right-color:#ba4000}.action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.action-default:active,.action-default:focus,.action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.action-primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.action-primary:active,.action-primary:focus,.action-primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-primary.disabled,.action-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.action-secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.action-secondary:active,.action-secondary:focus,.action-secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-secondary:active{background-color:#35302c}.action-quaternary,.action-tertiary{background-color:transparent;border-color:transparent;text-shadow:none}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover,.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none}.action-tertiary{color:#008bdb}.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{color:#0fa7ff;text-decoration:underline}.action-quaternary{color:#333}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover{color:#1a1a1a}.action-close>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.action-close:before{content:'\e62f';transition:color .1s linear}.action-close:hover{cursor:pointer;text-decoration:none}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu .action-submenu .action-submenu._active,.abs-action-menu .action-submenu._active,.action-menu .action-submenu._active,.action-menu._active,.actions-split .action-menu .action-submenu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .dropdown-menu .action-submenu._active{display:block}.abs-action-menu .action-submenu .action-submenu>li,.abs-action-menu .action-submenu>li,.action-menu .action-submenu>li,.action-menu>li,.actions-split .action-menu .action-submenu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .dropdown-menu .action-submenu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu .action-submenu .action-submenu>li>a:hover,.abs-action-menu .action-submenu>li>a:hover,.action-menu .action-submenu>li>a:hover,.action-menu>li>a:hover,.actions-split .action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu>li>a:hover{text-decoration:none}.abs-action-menu .action-submenu .action-submenu>li._visible,.abs-action-menu .action-submenu .action-submenu>li:hover,.abs-action-menu .action-submenu>li._visible,.abs-action-menu .action-submenu>li:hover,.action-menu .action-submenu>li._visible,.action-menu .action-submenu>li:hover,.action-menu>li._visible,.action-menu>li:hover,.actions-split .action-menu .action-submenu .action-submenu>li._visible,.actions-split .action-menu .action-submenu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu>li:hover{background-color:#e3e3e3}.abs-action-menu .action-submenu .action-submenu>li:active,.abs-action-menu .action-submenu>li:active,.action-menu .action-submenu>li:active,.action-menu>li:active,.actions-split .action-menu .action-submenu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu>li:active{background-color:#cacaca}.abs-action-menu .action-submenu .action-submenu>li._parent,.abs-action-menu .action-submenu>li._parent,.action-menu .action-submenu>li._parent,.action-menu>li._parent,.actions-split .action-menu .action-submenu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.abs-action-menu .action-submenu>li._parent>.action-menu-item,.action-menu .action-submenu>li._parent>.action-menu-item,.action-menu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .item,.abs-action-menu .action-submenu .item,.action-menu .action-menu-item,.action-menu .action-submenu .action-menu-item,.action-menu .action-submenu .item,.action-menu .item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .item,.actions-split .action-menu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu .action-submenu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu .action-submenu,.ie9 .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .action-menu .action-submenu,.ie9 .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu .action-submenu .action-submenu a.action-menu-item,.abs-action-menu .action-submenu a.action-menu-item,.action-menu .action-submenu a.action-menu-item,.action-menu a.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu a.action-menu-item{color:#333}.abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.abs-action-menu .action-submenu a.action-menu-item:focus,.action-menu .action-submenu a.action-menu-item:focus,.action-menu a.action-menu-item:focus,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.actions-switch{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;height:20px;margin-right:30px;position:relative;width:37px}.actions-switch-label{background:#e3e3e3;border-radius:12px;border:1px solid #aaa6a0;cursor:pointer;display:block;overflow:hidden}.actions-switch-inner{display:block;width:200%;margin-left:-100%;transition:margin .3s ease-in 0s}.actions-switch-inner:after,.actions-switch-inner:before{color:#fff;border-radius:12px;display:block;float:left;height:20px;line-height:22px;padding:0;width:50%}.actions-switch-inner:before{background-color:#79a22e;content:""}.actions-switch-inner:after{content:"";text-align:right}.actions-switch-indicator{background:#fff;border-radius:12px;border:1px solid #aaa6a0;bottom:-2px;display:block;position:absolute;right:15px;top:0;transition:all .3s ease-in 0s;width:22px}.actions-switch-text:after{content:attr(data-label-no);display:block;left:32px;margin-left:12px;position:absolute}.actions-switch-checkbox{display:none}.actions-switch-checkbox:checked+.actions-switch-label .actions-switch-inner{margin-left:0}.actions-switch-checkbox:checked+.actions-switch-label .actions-switch-indicator{right:0}.actions-switch-checkbox:checked+.actions-switch-label .actions-switch-text:after{content:attr(data-label-yes)}.messages .message:last-child{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:1.4rem;margin:0 0 1px;padding:1.8rem 4rem 1.8rem 5.5rem;position:relative;text-shadow:none}.message:before{background:0 0;border:0;color:#007bdb;content:'\e61a';font-family:Icons;font-size:1.9rem;font-style:normal;font-weight:400;height:auto;left:1.9rem;line-height:inherit;margin-top:-1.3rem;position:absolute;speak:none;text-shadow:none;top:50%;width:auto}.message-notice:before{color:#007bdb;content:'\e61a'}.message-warning:before{color:#eb5202;content:'\e623'}.message-error{background:#fcc}.message-error:before{color:#e22626;content:'\e632';font-size:1.5rem;left:2.2rem;margin-top:-1rem}.message-success:before{color:#79a22e;content:'\e62d'}.message-spinner:before{display:none}.message-spinner .spinner{font-size:2.5rem;left:1.5rem;position:absolute;top:1.5rem}.message-in-rating-edit{margin-left:1.8rem;margin-right:1.8rem}.modal-popup .action-close,.modal-slide .action-close{color:#736963;position:absolute;right:0;top:0}.modal-popup .action-close:active,.modal-slide .action-close:active{-webkit-transform:none;-ms-transform:none;transform:none}.modal-popup .action-close:active:before,.modal-slide .action-close:active:before{font-size:1.8rem}.modal-popup .action-close:hover:before,.modal-slide .action-close:hover:before{color:#58504b}.modal-popup .action-close:before,.modal-slide .action-close:before{font-size:2rem}.modal-popup .modal-title{font-size:2.4rem;margin-right:6.4rem}.modal-popup .action-close{padding:3rem}.modal-popup .action-close:active,.modal-popup .action-close:focus{background:0 0;padding-right:3.1rem;padding-top:3.1rem}.modal-slide .modal-title{font-size:2.1rem;margin-right:5.7rem}.modal-slide .action-close{padding:2.1rem 2.6rem}.modal-slide .action-close:active{padding-right:2.7rem;padding-top:2.2rem}.modal-slide .page-main-actions{margin-bottom:.6rem;margin-top:2.1rem}.modal-title{font-weight:400;margin-bottom:0;min-height:1em}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;animation-delay:.27s;-webkit-transform:rotate(-315deg);-ms-transform:rotate(-315deg);transform:rotate(-315deg)}.spinner>span:nth-child(2){-webkit-animation-delay:.36s;animation-delay:.36s;-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner>span:nth-child(3){-webkit-animation-delay:.45s;animation-delay:.45s;-webkit-transform:rotate(-225deg);-ms-transform:rotate(-225deg);transform:rotate(-225deg)}.spinner>span:nth-child(4){-webkit-animation-delay:.54s;animation-delay:.54s;-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner>span:nth-child(5){-webkit-animation-delay:.63s;animation-delay:.63s;-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.spinner>span:nth-child(6){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner>span:nth-child(7){-webkit-animation-delay:.81s;animation-delay:.81s;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spinner>span:nth-child(8){-webkit-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span{-webkit-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);-webkit-animation-name:fade;animation-name:fade;-webkit-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:linear;animation-direction:linear;background-color:#fff;border-radius:6px;clip:rect(0 .28571429em .1em 0);height:.1em;margin-top:.5em;position:absolute;width:1em}.ie9 .spinner{background:url(../images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.popup-loading{background:rgba(255,255,255,.8);border-color:#ef672f;color:#ef672f;font-size:14px;font-weight:700;left:50%;margin-left:-100px;padding:100px 0 10px;position:fixed;text-align:center;top:40%;width:200px;z-index:1003}.popup-loading:after{background-image:url(../images/loader-1.gif);content:'';height:64px;left:50%;margin:-32px 0 0 -32px;position:absolute;top:40%;width:64px;z-index:2}.loading-mask,.loading-old{background:rgba(255,255,255,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2003}.loading-mask img,.loading-old img{display:none}.loading-mask p,.loading-old p{margin-top:118px}.loading-mask .loader,.loading-old .loader{background:url(../images/loader-1.gif) 50% 30% no-repeat #e5e2dd;border-radius:5px;bottom:0;color:#5e5b56;font-size:14px;font-weight:700;height:160px;left:0;margin:auto;opacity:.95;position:absolute;right:0;text-align:center;top:0;width:160px}.admin-user{float:right;line-height:1.36;margin-left:.3rem;z-index:390}.admin-user._active .admin__action-dropdown,.admin-user.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin-user .admin__action-dropdown{height:3.3rem;padding:.7rem 2.8rem .4rem 4rem}.admin-user .admin__action-dropdown._active:after,.admin-user .admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:after{border-color:#777 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.3rem;top:50%;transition:all .2s linear;width:0}._active .admin-user .admin__action-dropdown:after,.active .admin-user .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin-user .admin__action-dropdown:before{color:#777;content:'\e600';font-size:2rem;left:1.1rem;margin-top:-1.1rem;position:absolute;top:50%}.admin-user .admin__action-dropdown:hover:before{color:#333}.admin-user .admin__action-dropdown-menu{min-width:20rem;padding-left:1rem;padding-right:1rem}.admin-user .admin__action-dropdown-menu>li>a{padding-right:1.8rem;padding-left:.5em;white-space:nowrap;transition:background-color .1s linear}.admin-user .admin__action-dropdown-menu>li>a:hover{background-color:#e0f6fe;color:#333}.admin-user .admin__action-dropdown-menu>li>a:active{background-color:#c7effd;bottom:-1px;position:relative}.admin-user .admin__action-dropdown-menu .admin-user-name{text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:20rem;overflow:hidden;vertical-align:top}.admin-user-account-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:11.2rem}.search-global{float:right;margin-right:-.3rem;position:relative;z-index:380}.search-global-field{min-width:5rem}.search-global-field._active .search-global-input{background-color:#fff;border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);padding-right:4rem;width:25rem}.search-global-field._active .search-global-action{display:block;height:3.3rem;position:absolute;right:0;text-indent:-100%;top:0;width:5rem;z-index:3}.search-global-field .autocomplete-results{height:3.3rem;position:absolute;right:0;top:0;width:25rem}.search-global-field .search-global-menu{border:1px solid #007bdb;border-top-color:transparent;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin-top:-2px;padding:0;position:absolute;right:0;top:100%;z-index:2}.search-global-field .search-global-menu:after{background-color:#fff;content:'';height:5px;left:0;position:absolute;right:0;top:-5px}.search-global-field .search-global-menu>li{background-color:#fff;border-top:1px solid #ddd;display:block;font-size:1.2rem;padding:.75rem 1.4rem .55rem}.search-global-field .search-global-menu>li._active{background-color:#e0f6fe}.search-global-field .search-global-menu .title{display:block;font-size:1.4rem}.search-global-field .search-global-menu .type{color:#1a1a1a;display:block}.search-global-label{cursor:pointer;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;z-index:2}.search-global-label:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.search-global-label:hover:before{color:#000}.search-global-label:before{color:#777;content:'\e60c';font-size:2rem}.search-global-input{background-color:transparent;border:1px solid transparent;font-size:1.4rem;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;transition:all .1s linear,width .3s linear;width:5rem;z-index:1}.search-global-action{display:none}.notifications-wrapper{float:right;line-height:1;position:relative}.notifications-wrapper.active{z-index:400}.notifications-wrapper.active .notifications-action{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.notifications-wrapper.active .notifications-action:after{border:none;background-color:#fff;content:'';display:block;height:6px;left:-6px;margin-top:0;position:absolute;right:0;top:100%;width:auto}.notifications-wrapper .admin__action-dropdown-menu{padding:1rem 0 0;width:32rem}.notifications-action{color:#777;height:3.3rem;padding:.75rem 2rem .65rem}.notifications-action:after{display:none}.notifications-action:before{content:'\e607';font-size:1.9rem;margin-right:0}.notifications-action:active:before{position:relative;top:1px}.notifications-action .notifications-counter{background-color:#e22626;border-radius:1em;color:#fff;display:inline-block;font-size:1.1rem;font-weight:700;left:50%;margin-left:.3em;margin-top:-1.1em;padding:.3em .5em;position:absolute;top:50%}.notifications-entry{line-height:1.36;padding:.6rem 2rem .8rem;position:relative;transition:background-color .1s linear}.notifications-entry:hover{background-color:#e0f6fe}.notifications-entry.notifications-entry-last{margin:0 2rem;padding:.3rem 0 1.3rem;text-align:center}.notifications-entry.notifications-entry-last:hover{background-color:transparent}.notifications-entry+.notifications-entry-last{border-top:1px solid #ddd;padding-bottom:.6rem}.notifications-entry ._cutted{cursor:pointer}.notifications-entry ._cutted .notifications-entry-description-start:after{content:'...'}.notifications-entry-title{color:#ef672f;display:block;font-size:1.1rem;font-weight:700;margin-bottom:.7rem;margin-right:1em}.notifications-entry-description{color:#333;font-size:1.1rem;margin-bottom:.8rem}.notifications-entry-description-end{display:none}.notifications-entry-description-end._show{display:inline}.notifications-entry-time{color:#777;font-size:1.1rem}.notifications-close{line-height:1;padding:1rem;position:absolute;right:0;top:.6rem}.notifications-close:before{color:#ccc;content:'\e620';transition:color .1s linear}.notifications-close:hover:before{color:#b3b3b3}.notifications-close:active{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.page-header-actions{padding-top:1.1rem}.page-header-hgroup{padding-right:1.5rem}.page-title{color:#333;font-size:2.8rem}.page-header{padding:1.5rem 3rem}.menu-wrapper{display:inline-block;position:relative;width:8.8rem;z-index:700}.menu-wrapper:before{background-color:#373330;bottom:0;content:'';left:0;position:fixed;top:0;width:8.8rem;z-index:699}.menu-wrapper._fixed{left:0;position:fixed;top:0}.menu-wrapper._fixed~.page-wrapper{margin-left:8.8rem}.menu-wrapper .logo{display:block;height:8.8rem;padding:2.4rem 0 2.2rem;position:relative;text-align:center;z-index:700}._keyfocus .menu-wrapper .logo:focus{background-color:#4a4542;box-shadow:none}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a{background-color:#373330}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a:after{display:none}.menu-wrapper .logo:hover .logo-img{-webkit-filter:brightness(1.1);filter:brightness(1.1)}.menu-wrapper .logo:active .logo-img{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.menu-wrapper .logo .logo-img{height:4.2rem;transition:-webkit-filter .2s linear,filter .2s linear,transform .1s linear;width:3.5rem}.abs-menu-separator,.admin__menu .item-partners>a:after,.admin__menu .level-0:first-child>a:after{background-color:#736963;content:'';display:block;height:1px;left:0;margin-left:16%;position:absolute;top:0;width:68%}.admin__menu li{display:block}.admin__menu .level-0:first-child>a{position:relative}.admin__menu .level-0._active>a,.admin__menu .level-0:hover>a{color:#f7f3eb}.admin__menu .level-0._active>a{background-color:#524d49}.admin__menu .level-0:hover>a{background-color:#4a4542}.admin__menu .level-0>a{color:#aaa6a0;display:block;font-size:1rem;letter-spacing:.025em;min-height:6.2rem;padding:1.2rem .5rem .5rem;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;transition:background-color .1s linear;word-wrap:break-word;z-index:700}.admin__menu .level-0>a:focus{box-shadow:none}.admin__menu .level-0>a:before{content:'\e63a';display:block;font-size:2.2rem;height:2.2rem}.admin__menu .level-0>.submenu{background-color:#4a4542;box-shadow:0 0 3px #000;left:100%;min-height:calc(8.8rem + 2rem + 100%);padding:2rem 0 0;position:absolute;top:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-duration:.3s;transition-timing-function:ease-in-out;visibility:hidden;z-index:697}.admin__menu .level-0._show>.submenu{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);visibility:visible;z-index:698}.admin__menu .level-1{margin-left:1.5rem;margin-right:1.5rem}.admin__menu [class*=level-]:not(.level-0) a{display:block;padding:1.25rem 1.5rem}.admin__menu [class*=level-]:not(.level-0) a:hover{background-color:#403934}.admin__menu [class*=level-]:not(.level-0) a:active{padding-top:1.35rem;padding-bottom:1.15rem;background-color:#322c29}.admin__menu .submenu li{min-width:23.8rem}.admin__menu .submenu a{color:#fcfcfc;transition:background-color .1s linear}.admin__menu .submenu a:focus,.admin__menu .submenu a:hover{box-shadow:none;text-decoration:none}._keyfocus .admin__menu .submenu a:focus{background-color:#403934}._keyfocus .admin__menu .submenu a:active{background-color:#322c29}.admin__menu .submenu .parent{margin-bottom:4.5rem}.admin__menu .submenu .parent .submenu-group-title,.admin__menu .submenu .parent>a{color:#a79d95;display:block;font-size:1.6rem;font-weight:600;margin-bottom:.7rem;padding:1.25rem 1.5rem;pointer-events:none}.admin__menu .submenu .column{display:table-cell}.admin__menu .submenu-title{color:#fff;display:block;font-size:2.2rem;font-weight:600;margin-bottom:4.2rem;margin-left:3rem;margin-right:5.8rem}.admin__menu .submenu-sub-title{color:#fff;display:block;font-size:1.2rem;margin:-3.8rem 5.8rem 3.8rem 3rem}.admin__menu .action-close{padding:2.4rem 2.8rem;position:absolute;right:0;top:0}.admin__menu .action-close:before{color:#a79d95;font-size:1.7rem}.admin__menu .action-close:hover:before{color:#fff}.admin__menu .item-dashboard>a:before{content:'\e604';font-size:1.8rem;padding-top:.4rem}.admin__menu .item-sales>a:before{content:'\e60b'}.admin__menu .item-catalog>a:before{content:'\e608'}.admin__menu .item-customer>a:before{content:'\e603';font-size:2.6rem;position:relative;top:-.4rem}.admin__menu .item-marketing>a:before{content:'\e609';font-size:2rem;padding-top:.2rem}.admin__menu .item-content>a:before{content:'\e602';font-size:2.4rem;position:relative;top:-.2rem}.admin__menu .item-report>a:before{content:'\e60a'}.admin__menu .item-stores>a:before{content:'\e60d';font-size:1.9rem;padding-top:.3rem}.admin__menu .item-system>a:before{content:'\e60e'}.admin__menu .item-partners>a{padding-bottom:1rem}.admin__menu .item-partners>a:before{content:'\e612'}.admin__menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:697}.store-switcher{color:#333;float:left;font-size:1.3rem;margin-top:.7rem}.store-switcher .admin__action-dropdown{margin-left:.5em;background-color:#f8f8f8}.store-switcher .dropdown{display:inline-block;position:relative}.store-switcher .dropdown:after,.store-switcher .dropdown:before{content:'';display:table}.store-switcher .dropdown:after{clear:both}.store-switcher .dropdown .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e607';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle:active:after,.store-switcher .dropdown .action.toggle:hover:after{color:#333}.store-switcher .dropdown .action.toggle.active{display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle.active:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e618';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle.active:active:after,.store-switcher .dropdown .action.toggle.active:hover:after{color:#333}.store-switcher .dropdown .dropdown-menu{background:#fff;border:1px solid #ada89e;z-index:100;margin:4px 0 0;padding:0;list-style:none;box-sizing:border-box;position:absolute;top:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);min-width:19.5rem;display:none}.store-switcher .dropdown .dropdown-menu li{margin:0;padding:0}.store-switcher .dropdown .dropdown-menu li:hover{background:0 0;cursor:pointer}.store-switcher .dropdown.active{overflow:visible}.store-switcher .dropdown.active .dropdown-menu{display:block}.store-switcher .dropdown-menu{left:0;margin-top:.5em;padding-top:.25em}.store-switcher .dropdown-menu li{border:0;cursor:default}.store-switcher .dropdown-menu li:hover{cursor:default}.store-switcher .dropdown-menu li a,.store-switcher .dropdown-menu li span{color:#333;display:block;padding:.5rem 1.3rem}.store-switcher .dropdown-menu li a{text-decoration:none}.store-switcher .dropdown-menu li a:hover{background:#e9e9e9}.store-switcher .dropdown-menu li span{color:#adadad;cursor:default}.store-switcher .dropdown-menu li.current span{background:#eee;color:#333}.store-switcher .dropdown-menu .store-switcher-store a,.store-switcher .dropdown-menu .store-switcher-store span{padding-left:2.6rem}.store-switcher .dropdown-menu .store-switcher-store-view a,.store-switcher .dropdown-menu .store-switcher-store-view span{padding-left:3.9rem}.store-switcher .dropdown-menu .dropdown-toolbar{border-top:1px solid #ebebeb;margin-top:1rem}.store-switcher .dropdown-menu .dropdown-toolbar a:before{content:'\e60e';margin-right:.25em;position:relative;top:1px}.store-switcher-label{font-weight:700}.store-switcher-alt{display:inline-block;position:relative}.store-switcher-alt.active .dropdown-menu{display:block}.store-switcher-alt .dropdown-menu{margin-top:2px;white-space:nowrap}.store-switcher-alt .dropdown-menu ul{list-style:none;margin:0;padding:0}.store-switcher-alt strong{color:#a6a098;display:block;font-size:14px;font-weight:500;line-height:1.333;padding:5px 10px}.store-switcher-alt .store-selected{color:#676056;cursor:pointer;font-size:12px;font-weight:400;line-height:1.333}.store-switcher-alt .store-selected:after{color:#b3b0ad;content:'\e02c';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;margin:0 0 0 3px;speak:none;vertical-align:text-top}.store-switcher-alt .store-switcher-store,.store-switcher-alt .store-switcher-website{padding:0}.store-switcher-alt .store-switcher-store:hover,.store-switcher-alt .store-switcher-website:hover{background:0 0}.store-switcher-alt .manage-stores,.store-switcher-alt .store-switcher-all,.store-switcher-alt .store-switcher-store-view{padding:0}.store-switcher-alt .manage-stores>a,.store-switcher-alt .store-switcher-all>a{color:#676056;display:block;font-size:12px;padding:8px 15px;text-decoration:none}.store-switcher-website{margin:5px 0 0}.store-switcher-website>strong{padding-left:13px}.store-switcher-store{margin:1px 0 0}.store-switcher-store>strong{padding-left:20px}.store-switcher-store>ul{margin-top:1px}.store-switcher-store-view:first-child{border-top:1px solid #e5e5e5}.store-switcher-store-view>a{color:#333;display:block;font-size:13px;padding:5px 15px 5px 24px;text-decoration:none}.tooltip{margin-left:.5em}.tooltip .help a,.tooltip .help span{cursor:pointer;display:inline-block;height:22px;position:relative;vertical-align:middle;width:22px;z-index:2}.tooltip .help a:before,.tooltip .help span:before{color:#333;content:'\e633';font-size:1.7rem}.tooltip .help a span,.tooltip .help span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tooltip .help a:hover{text-decoration:none}.tooltip .tooltip-content{background:#000;border-radius:3px;color:#fff;display:none;margin-left:-19px;margin-top:10px;max-width:200px;padding:4px 8px;position:absolute;text-shadow:none;z-index:20}.tooltip .tooltip-content:before{border-bottom:5px solid #000;border-left:5px solid transparent;border-right:5px solid transparent;content:'';height:0;left:20px;opacity:.8;position:absolute;top:-5px;width:0}.tooltip .tooltip-content.loading{position:absolute}.tooltip .tooltip-content.loading:before{border-bottom-color:rgba(0,0,0,.3)}.tooltip:hover>.tooltip-content{display:block}.page-actions._fixed,.page-main-actions:not(._hidden){background:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;padding:1.5rem}.page-main-actions{margin:0 0 3rem}.page-main-actions._hidden .store-switcher{display:none}.page-actions{float:right}.page-main-actions .page-actions._fixed{left:8.8rem;position:fixed;right:0;top:0;z-index:400}.page-main-actions .page-actions._fixed .page-actions-inner:before{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;content:attr(data-title);float:left;font-size:2.8rem;margin-top:.3rem;max-width:50%}.page-actions .page-actions-buttons>button,.page-actions>button{float:right;margin-left:1.3rem}.page-actions .page-actions-buttons>button.action-back,.page-actions .page-actions-buttons>button.back,.page-actions>button.action-back,.page-actions>button.back{float:left;-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before{content:'\e626';margin-right:.5em;position:relative;top:1px}.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary{-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .page-actions-buttons>button.save:not(.primary),.page-actions>button.save:not(.primary){-ms-flex-order:1;-webkit-order:1;order:1}.page-actions .page-actions-buttons>button.delete,.page-actions>button.delete{-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .actions-split{float:right;margin-left:1.3rem;-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .actions-split .dropdown-menu .item{display:block}.page-actions-buttons{float:right;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex}.customer-index-edit .page-actions-buttons{background-color:transparent}.admin__page-nav{background:#f1f1f1;border:1px solid #e3e3e3}.admin__page-nav._collapsed:first-child{border-bottom:none}.admin__page-nav._collapsed._show{border-bottom:1px solid #e3e3e3}.admin__page-nav._collapsed._show ._collapsible{background:#f1f1f1}.admin__page-nav._collapsed._show ._collapsible:after{content:'\e62b'}.admin__page-nav._collapsed._show ._collapsible+.admin__page-nav-items{display:block}.admin__page-nav._collapsed._hide .admin__page-nav-title-messages,.admin__page-nav._collapsed._hide .admin__page-nav-title-messages ._active{display:inline-block}.admin__page-nav+._collapsed{border-bottom:none;border-top:none}.admin__page-nav-title{border-bottom:1px solid #e3e3e3;color:#303030;display:block;font-size:1.4rem;line-height:1.2;margin:0 0 -1px;padding:1.8rem 1.5rem;position:relative;text-transform:uppercase}.admin__page-nav-title._collapsible{background:#fff;cursor:pointer;margin:0;padding-right:3.5rem;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-title._collapsible+.admin__page-nav-items{display:none;margin-top:-1px}.admin__page-nav-title._collapsible:after{content:'\e628';font-size:1.3rem;font-weight:700;position:absolute;right:1.8rem;top:2rem}.admin__page-nav-title._collapsible:hover{background:#f1f1f1}.admin__page-nav-title._collapsible:last-child{margin:0 0 -1px}.admin__page-nav-title strong{font-weight:700}.admin__page-nav-title .admin__page-nav-title-messages{display:none}.admin__page-nav-items{list-style-type:none;margin:0;padding:1rem 0 1.3rem}.admin__page-nav-item{border-left:3px solid transparent;margin-left:.7rem;padding:0;position:relative;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-item:hover{border-color:#e4e4e4}.admin__page-nav-item:hover .admin__page-nav-link{background:#e4e4e4;color:#303030;text-decoration:none}.admin__page-nav-item._active,.admin__page-nav-item.ui-state-active{border-color:#eb5202}.admin__page-nav-item._active .admin__page-nav-link,.admin__page-nav-item.ui-state-active .admin__page-nav-link{background:#fff;border-color:#e3e3e3;border-right:1px solid #fff;color:#303030;margin-right:-1px;font-weight:600}.admin__page-nav-item._loading:before,.admin__page-nav-item.ui-tabs-loading:before{display:none}.admin__page-nav-item._loading .admin__page-nav-item-message-loader,.admin__page-nav-item.ui-tabs-loading .admin__page-nav-item-message-loader{display:inline-block}.admin__page-nav-link{border:1px solid transparent;border-width:1px 0;color:#303030;display:block;font-weight:500;line-height:1.2;margin:0 0 -1px;padding:2rem 4rem 2rem 1rem;transition:border-color .1s ease-out,background-color .1s ease-out;word-wrap:break-word}.admin__page-nav-item-messages,.admin__page-nav-link._changed .admin__page-nav-item-message._changed,.admin__page-nav-link._error .admin__page-nav-item-message._error{display:inline-block}.admin__page-nav-item-messages .admin__page-nav-item-message{position:relative}.admin__page-nav-item-messages .admin__page-nav-item-message:hover{z-index:500}.admin__page-nav-item-messages .admin__page-nav-item-message:hover .admin__page-nav-item-message-tooltip{display:block}.admin__page-nav-item-messages .admin__page-nav-item-message._changed,.admin__page-nav-item-messages .admin__page-nav-item-message._error{display:none}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon{display:inline-block;font-size:1.4rem;padding-left:.8em;vertical-align:top}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon:after,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#666;content:'\e631'}.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#eb5202;content:'\e623'}.admin__page-nav-item-messages .admin__page-nav-item-message-loader{display:none;margin-top:-1rem;position:absolute;right:0;top:50%}.admin__page-nav-item-messages .admin__page-nav-item-message-loader .spinner{font-size:2rem;margin-right:1.5rem}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip{background:#f1f1f1;border:1px solid #f1f1f1;border-radius:1px;bottom:3.7rem;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;left:-1rem;line-height:1.36;padding:2rem;position:absolute;text-transform:none;width:27rem;word-break:normal;z-index:2}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after,.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border:15px solid transparent;height:0;width:0;border-top-color:#f1f1f1;content:'';display:block;left:2rem;position:absolute;top:100%;z-index:3}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after{border-top-color:#f1f1f1;margin-top:-1px;z-index:4}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border-top-color:#bfbfbf}.admin__data-grid-wrap-static .data-grid{box-sizing:border-box}.admin__data-grid-wrap-static .data-grid thead{color:#333}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td{background-color:#f5f5f5}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td._dragging{background-color:rgba(245,245,245,.95)}.admin__data-grid-wrap-static .data-grid ul{padding-left:1rem;margin-left:1rem}.admin__data-grid-wrap-static .admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:0;position:absolute;right:0;top:0;z-index:401}.admin__data-grid-wrap-static .admin__data-grid-loading-mask .grid-loader{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-filters-actions-wrap{float:right}.data-grid-search-control-wrap{float:left;max-width:45.5rem;position:relative;width:50%}.data-grid-search-control-wrap :-ms-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-webkit-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-moz-placeholder{font-style:italic}.data-grid-search-control-wrap .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:.6rem 2rem .2rem;position:absolute;right:0;top:1px}.data-grid-search-control-wrap .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.data-grid-search-control-wrap .action-submit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.data-grid-search-control-wrap .action-submit:hover:before{color:#1a1a1a}._keyfocus .data-grid-search-control-wrap .action-submit:focus{box-shadow:0 0 0 1px #008bdb}.data-grid-search-control-wrap .action-submit:before{content:'\e60c';font-size:2rem;transition:color .1s linear}.data-grid-search-control-wrap .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.data-grid-search-control-wrap .abs-action-menu .action-submenu,.data-grid-search-control-wrap .abs-action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .action-menu,.data-grid-search-control-wrap .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{z-index:400;max-height:19.25rem;overflow-y:auto}.data-grid-search-control-wrap .action-menu-item._selected{background-color:#e0f6fe}.data-grid-search-control-wrap .data-grid-search-label{display:none}.data-grid-search-control{padding-right:6rem;width:100%}.data-grid-filters-action-wrap{float:left;padding-left:2rem}.data-grid-filters-action-wrap .action-default{font-size:1.3rem;margin-bottom:1rem;padding-left:1.7rem;padding-right:2.1rem;padding-top:.7rem}.data-grid-filters-action-wrap .action-default._active{background-color:#fff;border-bottom-color:#fff;border-right-color:#ccc;font-weight:600;margin:-.1rem 0 0;padding-bottom:1.6rem;padding-top:.8rem;position:relative;z-index:281}.data-grid-filters-action-wrap .action-default._active:after{background-color:#eb5202;bottom:100%;content:'';height:3px;left:-1px;position:absolute;right:-1px}.data-grid-filters-action-wrap .action-default:before{color:#333;content:'\e605';font-size:1.8rem;margin-right:.4rem;position:relative;top:-1px;vertical-align:top}.data-grid-filters-action-wrap .filters-active{display:none}.admin__data-grid-filters-wrap{opacity:0;visibility:hidden;clear:both;font-size:1.3rem;transition:opacity .3s ease}.admin__data-grid-filters-wrap._show{opacity:1;visibility:visible;border-bottom:1px solid #ccc;border-top:1px solid #ccc;margin-bottom:.7rem;padding:3.6rem 0 3rem;position:relative;top:-1px;z-index:280}.admin__data-grid-filters-wrap._show .admin__data-grid-filters,.admin__data-grid-filters-wrap._show .admin__data-grid-filters-footer{display:block}.admin__data-grid-filters-wrap .admin__form-field-label,.admin__data-grid-filters-wrap .admin__form-field-legend{display:block;font-weight:700;margin:0 0 .3rem;text-align:left}.admin__data-grid-filters-wrap .admin__form-field{display:inline-block;margin-bottom:2em;margin-left:0;padding-left:2rem;padding-right:2rem;vertical-align:top;width:calc(100% / 4 - 4px)}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field{display:block;float:none;margin-bottom:1.5rem;padding-left:0;padding-right:0;width:auto}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field:last-child{margin-bottom:0}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-label{border:1px solid transparent;float:left;font-weight:400;line-height:1.36;margin-bottom:0;padding-bottom:.6rem;padding-right:1em;padding-top:.6rem;width:25%}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-control{margin-left:25%}.admin__data-grid-filters-wrap .admin__action-multiselect,.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text,.admin__data-grid-filters-wrap .admin__form-field-label{font-size:1.3rem}.admin__data-grid-filters-wrap .admin__control-select{padding-top:.5rem;height:3.2rem}.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text.hasDatepicker{width:100%}.admin__data-grid-filters{display:none;margin-left:-2rem;margin-right:-2rem}.admin__filters-legend{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-filters-footer{display:none;font-size:1.4rem}.admin__data-grid-filters-footer .admin__footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-filters-footer .admin__footer-secondary-actions{float:left;width:50%}.admin__data-grid-filters-current{border-bottom:.1rem solid #ccc;border-top:.1rem solid #ccc;display:none;font-size:1.3rem;margin-bottom:.9rem;padding-bottom:.8rem;padding-top:1.1rem;width:100%}.admin__data-grid-filters-current._show{display:table;position:relative;top:-1px;z-index:3}.admin__data-grid-filters-current._show+.admin__data-grid-filters-wrap._show{margin-top:-1rem}.admin__current-filters-actions-wrap,.admin__current-filters-list-wrap,.admin__current-filters-title-wrap{display:table-cell;vertical-align:top}.admin__current-filters-title{margin-right:1em;white-space:nowrap}.admin__current-filters-list-wrap{width:100%}.admin__current-filters-list{margin-bottom:0}.admin__current-filters-list>li{display:inline-block;font-weight:600;margin:0 1rem .5rem;padding-right:2.6rem;position:relative}.admin__current-filters-list .action-remove{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0;line-height:1;position:absolute;right:0;top:1px}.admin__current-filters-list .action-remove:hover{background-color:transparent;border:none;box-shadow:none}.admin__current-filters-list .action-remove:hover:before{color:#949494}.admin__current-filters-list .action-remove:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__current-filters-list .action-remove:before{color:#adadad;content:'\e620';font-size:1.6rem;transition:color .1s linear}.admin__current-filters-list .action-remove>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__current-filters-actions-wrap .action-clear{border:none;padding-bottom:0;padding-top:0;white-space:nowrap}.admin__data-grid-pager-wrap{text-align:right}.admin__data-grid-pager{display:inline-block;margin-left:3rem}.admin__data-grid-pager .admin__control-text::-webkit-inner-spin-button,.admin__data-grid-pager .admin__control-text::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin__data-grid-pager .admin__control-text{-moz-appearance:textfield;text-align:center;width:4.4rem}.action-next,.action-previous{width:4.4rem}.action-next:before,.action-previous:before{font-weight:700}.action-next>span,.action-previous>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-previous{margin-right:2.5rem;text-indent:-.25em}.action-previous:before{content:'\e629'}.action-next{margin-left:1.5rem;text-indent:.1em}.action-next:before{content:'\e62a'}.admin__data-grid-action-bookmarks{opacity:.98}.admin__data-grid-action-bookmarks .admin__action-dropdown-text:after{right:-6px;left:0}.admin__data-grid-action-bookmarks._active{z-index:290}.admin__data-grid-action-bookmarks .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;max-width:15rem;min-width:4.9rem;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown:before{content:'\e60f'}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu{font-size:1.3rem;left:0;padding:1rem 0;right:auto}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li{padding:0 5rem 0 0;position:relative;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action){transition:background-color .1s linear}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action):hover{background-color:#e3e3e3}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item{max-width:23rem;min-width:18rem;white-space:normal;word-break:break-all}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit{display:none;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit .action-dropdown-menu-item-actions{padding-bottom:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action{padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action+.action-dropdown-menu-item-last{padding-top:.5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a{color:#008bdb;text-decoration:none;display:inline-block;padding-left:1.1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a:hover{color:#0fa7ff;text-decoration:underline}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-last{padding-bottom:0}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item{display:none}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item-edit{display:block}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._active .action-dropdown-menu-link{font-weight:600}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{font-size:1.3rem;min-width:15rem;width:calc(100% - 4rem)}.ie9 .admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{width:15rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-actions{border-left:1px solid #fff;bottom:0;position:absolute;right:0;top:0;width:5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-link{color:#333;display:block;text-decoration:none;padding:1rem 1rem 1rem 2.1rem}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit,.admin__data-grid-action-bookmarks .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;vertical-align:top}.admin__data-grid-action-bookmarks .action-delete:hover,.admin__data-grid-action-bookmarks .action-edit:hover,.admin__data-grid-action-bookmarks .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before{font-size:1.7rem}.admin__data-grid-action-bookmarks .action-delete>span,.admin__data-grid-action-bookmarks .action-edit>span,.admin__data-grid-action-bookmarks .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit{padding:.6rem 1.4rem}.admin__data-grid-action-bookmarks .action-delete:active,.admin__data-grid-action-bookmarks .action-edit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__data-grid-action-bookmarks .action-submit{padding:.6rem 1rem .6rem .8rem}.admin__data-grid-action-bookmarks .action-submit:active{position:relative;right:-1px}.admin__data-grid-action-bookmarks .action-submit:before{content:'\e625'}.admin__data-grid-action-bookmarks .action-delete:before{content:'\e630'}.admin__data-grid-action-bookmarks .action-edit{padding-top:.8rem}.admin__data-grid-action-bookmarks .action-edit:before{content:'\e631'}.admin__data-grid-action-columns._active{opacity:.98;z-index:290}.admin__data-grid-action-columns .admin__action-dropdown:before{content:'\e60e';font-size:1.8rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-columns-menu{color:#303030;font-size:1.3rem;overflow:hidden;padding:2.2rem 3.5rem 1rem;z-index:1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-header{border-bottom:1px solid #d1d1d1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-content{width:49.2rem}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-footer{border-top:1px solid #d1d1d1;padding-top:2.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content{max-height:22.85rem;overflow-y:auto;padding-top:1.5rem;position:relative;width:47.4rem}.admin__data-grid-action-columns-menu .admin__field-option{height:1.9rem;float:left;margin-bottom:1.5rem;padding:0 1rem 0 0;width:15.8rem}.admin__data-grid-action-columns-menu .admin__field-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-header{padding-bottom:1.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-footer{padding:1rem 0 2rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-secondary-actions{float:left;margin-left:-1em}.admin__data-grid-action-export._active{opacity:.98;z-index:290}.admin__data-grid-action-export .admin__action-dropdown:before{content:'\e635';font-size:1.7rem;left:.3rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-export-menu{padding-left:2rem;padding-right:2rem;padding-top:1rem}.admin__data-grid-action-export-menu .admin__action-dropdown-footer-main-actions{padding-bottom:2rem;padding-top:2.5rem;white-space:nowrap}.sticky-header{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:8.8rem;right:0;margin-top:-1px;padding:.5rem 3rem 0;position:fixed;top:77px;z-index:400}.sticky-header .admin__data-grid-wrap{margin-bottom:0;overflow-x:visible;padding-bottom:0}.sticky-header .admin__data-grid-header-row{position:relative;text-align:right}.sticky-header .admin__data-grid-header-row:last-child{margin:0}.sticky-header .admin__data-grid-actions-wrap,.sticky-header .admin__data-grid-filters-wrap,.sticky-header .admin__data-grid-pager-wrap,.sticky-header .data-grid-filters-actions-wrap,.sticky-header .data-grid-search-control-wrap{display:inline-block;float:none;vertical-align:top}.sticky-header .action-select-wrap{float:left;margin-right:1.5rem;width:16.66666667%}.sticky-header .admin__control-support-text{float:left}.sticky-header .data-grid-search-control-wrap{margin:-.5rem 0 0 1.1rem;width:auto}.sticky-header .data-grid-search-control-wrap .data-grid-search-label{box-sizing:border-box;cursor:pointer;display:block;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;position:relative;text-align:center}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before{color:#333;content:'\e60c';font-size:2rem;transition:color .1s linear}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:hover:before{color:#000}.sticky-header .data-grid-search-control-wrap .data-grid-search-label span{display:none}.sticky-header .data-grid-filters-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-left:0;position:relative}.sticky-header .data-grid-filters-actions-wrap .action-default{background-color:transparent;border:1px solid transparent;box-sizing:border-box;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;text-align:center;transition:all .15s ease}.sticky-header .data-grid-filters-actions-wrap .action-default span{display:none}.sticky-header .data-grid-filters-actions-wrap .action-default:before{margin:0}.sticky-header .data-grid-filters-actions-wrap .action-default._active{background-color:#fff;border-color:#adadad #adadad #fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);z-index:210}.sticky-header .data-grid-filters-actions-wrap .action-default._active:after{background-color:#fff;content:'';height:6px;left:-2px;position:absolute;right:-6px;top:100%}.sticky-header .data-grid-filters-action-wrap{padding:0}.sticky-header .admin__data-grid-filters-wrap{background-color:#fff;border:1px solid #adadad;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:0;padding-left:3.5rem;padding-right:3.5rem;position:absolute;top:100%;width:100%;z-index:209}.sticky-header .admin__data-grid-filters-current+.admin__data-grid-filters-wrap._show{margin-top:-6px}.sticky-header .filters-active{background-color:#e04f00;border-radius:10px;color:#fff;display:block;font-size:1.4rem;font-weight:700;padding:.1rem .7rem;position:absolute;right:-7px;top:0;z-index:211}.sticky-header .filters-active:empty{padding-top:0;padding-bottom:0}.sticky-header .admin__data-grid-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-right:.3rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown{background-color:transparent;box-sizing:border-box;min-width:3.8rem;padding-left:.6rem;padding-right:.6rem;text-align:center}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;min-width:0;max-width:0;overflow:hidden}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:before{margin:0}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap{margin-right:1.1rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after,.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:after{display:none}.sticky-header .admin__data-grid-actions-wrap ._active .admin__action-dropdown{background-color:#fff}.sticky-header .admin__data-grid-action-bookmarks .admin__action-dropdown:before{position:relative;top:-3px}.sticky-header .admin__data-grid-filters-current{border-top:0;border-bottom:0;margin-bottom:0;padding-bottom:0;padding-top:0}.sticky-header .admin__data-grid-pager .admin__control-text,.sticky-header .admin__data-grid-pager-wrap .admin__control-support-text,.sticky-header .data-grid-search-control-wrap .action-submit,.sticky-header .data-grid-search-control-wrap .data-grid-search-control{display:none}.sticky-header .action-next{margin:0}.sticky-header .data-grid{margin-bottom:-1px}.data-grid-cap-left,.data-grid-cap-right{background-color:#f8f8f8;bottom:-2px;position:absolute;top:6rem;width:3rem;z-index:201}.data-grid-cap-left{left:0}.data-grid-cap-right{right:0}.admin__data-grid-header{font-size:1.4rem}.admin__data-grid-header-row+.admin__data-grid-header-row{margin-top:1.1rem}.admin__data-grid-header-row:last-child{margin-bottom:0}.admin__data-grid-header-row .action-select-wrap{display:block}.admin__data-grid-header-row .action-select{width:100%}.admin__data-grid-actions-wrap{float:right;margin-left:1.1rem;margin-top:-.5rem;text-align:right}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap{position:relative;text-align:left}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._hide+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:first-child:after{display:none}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown-menu{border-color:#adadad}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after{border-left:1px solid #ccc;content:'';height:3.2rem;left:0;position:absolute;top:.5rem;z-index:3}.admin__data-grid-actions-wrap .admin__action-dropdown{padding-bottom:1.7rem;padding-top:1.2rem}.admin__data-grid-actions-wrap .admin__action-dropdown:after{margin-top:-.4rem}.admin__data-grid-outer-wrap{min-height:8rem;position:relative}.admin__data-grid-wrap{margin-bottom:2rem;max-width:100%;overflow-x:auto;padding-bottom:1rem;padding-top:2rem}.admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:-3rem;position:absolute;right:-3rem;top:0;z-index:401}.admin__data-grid-loading-mask .spinner{font-size:4rem;left:50%;margin-left:-2rem;margin-top:-2rem;position:absolute;top:50%}.ie9 .admin__data-grid-loading-mask .spinner{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-cell-content{overflow:hidden;width:100%;display:inline-block}body._in-resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}body._in-resize *,body._in-resize .data-grid-th,body._in-resize .data-grid-th._draggable,body._in-resize .data-grid-th._sortable{cursor:col-resize!important}._layout-fixed{table-layout:fixed}.data-grid{border:none;font-size:1.3rem;margin-bottom:0;max-width:100%;width:100%}.data-grid:not(._dragging-copy) ._odd-row td._dragging{background-color:#d0d0d0}.data-grid:not(._dragging-copy) ._dragging{background-color:#d9d9d9;color:rgba(48,48,48,.95)}.data-grid:not(._dragging-copy) ._dragging a{color:rgba(0,139,219,.95)}.data-grid:not(._dragging-copy) ._dragging a:hover{color:rgba(15,167,255,.95)}.data-grid thead{background-color:transparent}.data-grid tfoot th{padding:1rem}.data-grid tr._odd-row td{background-color:#f5f5f5}.data-grid tr.data-grid-tr-no-data:hover td{background-color:#fff;cursor:default}.data-grid tr:active td{background-color:#e0f6fe}.data-grid tr:hover td{background-color:#e5f7fe}.data-grid tr:not(.data-grid-editable-row):last-child td{border-bottom:.1rem solid #d6d6d6}.data-grid tr ._clickable,.data-grid tr._clickable{cursor:pointer}.data-grid td,.data-grid th{font-size:1.3rem;line-height:1.36;transition:background-color .1s linear;vertical-align:top}.data-grid td._resizing,.data-grid th._resizing{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid td{background-color:#fff;border-left:.1rem dashed #d6d6d6;border-right:.1rem dashed #d6d6d6;color:#303030;padding:1rem}.data-grid td:first-child{border-left-style:solid}.data-grid td:last-child{border-right-style:solid}.data-grid td .action-select-wrap{position:static}.data-grid td .action-select{background-color:transparent;border:none;font-size:1.3rem;position:relative;color:#008bdb;text-decoration:none;padding:0 3rem 0 0}.data-grid td .action-select:hover{color:#0fa7ff;text-decoration:underline}.data-grid td .action-select:hover:after{border-color:#0fa7ff transparent transparent}.data-grid td .action-select:after{border-color:#008bdb transparent transparent;margin:.6rem 0 0 .7rem;right:auto;top:auto}.data-grid td .action-select:before{display:none}.data-grid td .abs-action-menu .action-submenu,.data-grid td .abs-action-menu .action-submenu .action-submenu,.data-grid td .action-menu,.data-grid td .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu .action-submenu{left:auto;min-width:10rem;right:0;text-align:left;top:auto;z-index:1}.data-grid th{background-color:#514943;border:.1rem solid #8a837f;border-left-color:transparent;color:#fff;font-weight:600;padding:0;text-align:left}.data-grid th:first-child{border-left-color:#8a837f}.data-grid th._dragover-left{box-shadow:inset 3px 0 0 0 #fff;z-index:2}.data-grid th._dragover-right{box-shadow:inset -3px 0 0 0 #fff}.data-grid .shadow-div{cursor:col-resize;height:100%;margin-right:-5px;position:absolute;right:0;top:0;width:10px}.data-grid .data-grid-th{background-clip:padding-box;color:#fff;padding:1rem;position:relative;vertical-align:middle}.data-grid .data-grid-th._resize-visible .shadow-div{cursor:auto;display:none}.data-grid .data-grid-th._draggable{cursor:-webkit-grab;cursor:grab}.data-grid .data-grid-th._sortable{cursor:pointer;transition:background-color .1s linear;z-index:1}.data-grid .data-grid-th._sortable:focus,.data-grid .data-grid-th._sortable:hover{background-color:#5f564f}.data-grid .data-grid-th._sortable:active{padding-bottom:.9rem;padding-top:1.1rem}.data-grid .data-grid-th.required>span:after{color:#f38a5e;content:'*';margin-left:.3rem}.data-grid .data-grid-checkbox-cell{padding:0;vertical-align:top;width:5.2rem}.data-grid .data-grid-checkbox-cell:hover{cursor:default}.data-grid .data-grid-thumbnail-cell{text-align:center;width:7rem}.data-grid .data-grid-thumbnail-cell img{border:1px solid #d6d6d6;max-width:5rem}.data-grid .data-grid-multicheck-cell{padding:1rem 1rem .9rem;text-align:center;vertical-align:middle}.data-grid .data-grid-onoff-label>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.data-grid .data-grid-actions-cell{padding-left:2rem;padding-right:2rem;text-align:center;width:1%}.data-grid._hidden{display:none}.data-grid._dragging-copy{box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;opacity:.95;position:fixed;top:0;z-index:1000}.data-grid._dragging-copy .data-grid-th{border:1px solid #007bdb;border-bottom:none}.data-grid._dragging-copy .data-grid-th,.data-grid._dragging-copy .data-grid-th._sortable{cursor:-webkit-grabbing;cursor:grabbing}.data-grid._dragging-copy tr:last-child td{border-bottom:1px solid #007bdb}.data-grid._dragging-copy td{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:rgba(255,251,230,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td,.data-grid._dragging-copy._in-edit .data-grid-editable-row:hover td{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:after,.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{left:0;right:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:only-child{border-left:1px solid #007bdb;border-right:1px solid #007bdb;left:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-select,.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-text{opacity:.5}.data-grid._in-edit tr:hover td{background-color:#e6e6e6}.data-grid._in-edit ._odd-row.data-grid-editable-row td,.data-grid._in-edit ._odd-row.data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit ._odd-row td,.data-grid._in-edit ._odd-row:hover td{background-color:#dcdcdc}.data-grid._in-edit .data-grid-editable-row-actions td,.data-grid._in-edit .data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid._in-edit td{background-color:#e6e6e6;pointer-events:none}.data-grid._in-edit .data-grid-checkbox-cell{pointer-events:auto}.data-grid._in-edit .data-grid-editable-row{border:.1rem solid #adadad;border-bottom-color:#c2c2c2}.data-grid._in-edit .data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit .data-grid-editable-row td{background-color:#fff;border-bottom-color:#fff;border-left-style:hidden;border-right-style:hidden;border-top-color:#fff;pointer-events:auto;vertical-align:middle}.data-grid._in-edit .data-grid-editable-row td:first-child{border-left-color:#adadad;border-left-style:solid}.data-grid._in-edit .data-grid-editable-row td:first-child:after,.data-grid._in-edit .data-grid-editable-row td:first-child:before{left:0}.data-grid._in-edit .data-grid-editable-row td:last-child{border-right-color:#adadad;border-right-style:solid;left:-.1rem}.data-grid._in-edit .data-grid-editable-row td:last-child:after,.data-grid._in-edit .data-grid-editable-row td:last-child:before{right:0}.data-grid._in-edit .data-grid-editable-row .admin__control-select,.data-grid._in-edit .data-grid-editable-row .admin__control-text{width:100%}.data-grid._in-edit .data-grid-bulk-edit-panel td{vertical-align:bottom}.data-grid .data-grid-editable-row td{border-left-color:#fff;border-left-style:solid;position:relative;z-index:1}.data-grid .data-grid-editable-row td:after{bottom:0;box-shadow:0 5px 5px rgba(0,0,0,.25);content:'';height:.9rem;left:0;margin-top:-1rem;position:absolute;right:0}.data-grid .data-grid-editable-row td:before{background-color:#fff;bottom:0;content:'';height:1rem;left:-10px;position:absolute;right:-10px;z-index:1}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td,.data-grid .data-grid-editable-row.data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:first-child{border-left-color:#fff;border-right-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:last-child{left:0}.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:#fffbe6}.data-grid .data-grid-editable-row-actions{left:50%;margin-left:-12.5rem;margin-top:-2px;position:absolute;text-align:center}.data-grid .data-grid-editable-row-actions td{width:25rem}.data-grid .data-grid-editable-row-actions [class*=action-]{min-width:9rem}.data-grid-th._sortable._ascend,.data-grid-th._sortable._descend{padding-right:2.7rem}.data-grid-th._sortable._ascend:before,.data-grid-th._sortable._descend:before{margin-top:-1em;position:absolute;right:1rem;top:50%}.data-grid-th._sortable._ascend:before{content:'\2193'}.data-grid-th._sortable._descend:before{content:'\2191'}.data-grid-checkbox-cell-inner{display:block;padding:1.1rem 1.8rem .9rem;text-align:right}.data-grid-checkbox-cell-inner:hover{cursor:pointer}.data-grid-row-parent._active>td .data-grid-checkbox-cell-inner:before{content:'\e62b'}.data-grid-row-parent>td .data-grid-checkbox-cell-inner{padding-left:3.7rem;position:relative}.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before{content:'\e628';font-size:1rem;font-weight:700;left:1.35rem;position:absolute;top:1.6rem}.data-grid-th._col-xs{width:1%}.data-grid-info-panel{box-shadow:0 0 5px rgba(0,0,0,.5);margin:2rem .1rem -2rem;padding:1rem}.data-grid-info-panel .messages{margin-bottom:1rem}.data-grid-info-panel-actions{text-align:right}.data-grid-editable-row .admin__field-control{position:relative}.data-grid-editable-row .admin__field-control._error:after{border-color:transparent #ee7d7d transparent transparent;border-style:solid;border-width:0 12px 12px 0;content:'';position:absolute;right:0;top:0}.data-grid-editable-row .admin__field-control._error .admin__control-text{border-color:#ee7d7d}.data-grid-editable-row .admin__field-control._focus:after{display:none}.data-grid-editable-row .admin__field-error{bottom:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin:0 auto 1.5rem;max-width:32rem;position:absolute;right:0}.data-grid-editable-row .admin__field-error:after,.data-grid-editable-row .admin__field-error:before{border-style:solid;content:'';left:50%;position:absolute;top:100%}.data-grid-editable-row .admin__field-error:after{border-color:#fffbbb transparent transparent;border-width:10px 10px 0;margin-left:-10px;z-index:1}.data-grid-editable-row .admin__field-error:before{border-color:#ee7d7d transparent transparent;border-width:11px 12px 0;margin-left:-12px}.data-grid-bulk-edit-panel .admin__field-label-vertical{display:block;font-size:1.2rem;margin-bottom:.5rem;text-align:left}.data-grid-row-changed{cursor:default;display:block;opacity:.5;position:relative;width:100%;z-index:1}.data-grid-row-changed:after{content:'\e631';display:inline-block}.data-grid-row-changed .data-grid-row-changed-tooltip{background:#f1f1f1;border-radius:1px;border:1px solid #f1f1f1;bottom:100%;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;line-height:1.36;margin-bottom:1.5rem;padding:1rem;position:absolute;right:-1rem;text-transform:none;width:27rem;word-break:normal;z-index:2}.data-grid-row-changed._changed{opacity:1;z-index:3}.data-grid-row-changed._changed:hover .data-grid-row-changed-tooltip{display:block}.data-grid-row-changed._changed:hover:before{background:#f1f1f1;border:1px solid #f1f1f1;bottom:100%;box-shadow:4px 4px 3px -1px rgba(0,0,0,.15);content:'';display:block;height:1.6rem;left:50%;margin:0 0 .7rem -.8rem;position:absolute;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:1.6rem;z-index:3}.ie9 .data-grid-row-changed._changed:hover:before{display:none}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before,.admin__control-file-label :before,.admin__control-multiselect,.admin__control-select,.admin__control-text,.admin__control-textarea,.selectmenu{background-color:#fff;border-radius:1px;border:1px solid #adadad;color:#303030;font-size:1.4rem;font-weight:400;line-height:1.36;height:auto;width:auto;padding:.6rem 1rem;transition:border-color .1s linear;vertical-align:baseline}.admin__control-multiselect:hover,.admin__control-select:hover,.admin__control-text:hover,.admin__control-textarea:hover,.selectmenu:hover,.selectmenu:hover .selectmenu-toggle:before{border-color:#878787}.admin__control-addon [class*=admin__control-][type]:focus+[class*=admin__addon-]:before,.admin__control-file:active+.admin__control-file-label :before,.admin__control-file:focus+.admin__control-file-label :before,.admin__control-multiselect:focus,.admin__control-select:focus,.admin__control-text:focus,.admin__control-textarea:focus,.selectmenu._focus,.selectmenu._focus .selectmenu-toggle:before{border-color:#007bdb;box-shadow:none;outline:0}.admin__control-addon [class*=admin__control-][type][disabled]+[class*=admin__addon-]:before,.admin__control-file[disabled]+.admin__control-file-label :before,.admin__control-multiselect[disabled],.admin__control-select[disabled],.admin__control-text[disabled],.admin__control-textarea[disabled]{background-color:#e9e9e9;border-color:#adadad;color:#303030;opacity:.5;cursor:not-allowed}.admin__fieldset>.admin__field.admin__field-wide[class]>.admin__field-control{float:none;clear:left;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label{display:block;line-height:1.4rem;margin-bottom:.86rem;margin-top:-.14rem;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label:before{display:none}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span{padding-left:1.5rem}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span:after{left:0;margin-left:30px;top:.2rem}.admin__legend{font-size:1.8rem;font-weight:600;margin-bottom:3rem}.admin__control-checkbox,.admin__control-radio{cursor:pointer;opacity:.01;overflow:hidden;position:absolute;vertical-align:top}.admin__control-checkbox:after,.admin__control-radio:after{display:none}.admin__control-checkbox+label,.admin__control-radio+label{cursor:pointer;display:inline-block}.admin__control-checkbox+label:before,.admin__control-radio+label:before{background-color:#fff;border:1px solid #adadad;color:transparent;float:left;height:1.6rem;text-align:center;vertical-align:top;width:1.6rem}.admin__control-checkbox+.admin__field-label,.admin__control-radio+.admin__field-label{padding-left:2.6rem}.admin__control-checkbox+.admin__field-label:before,.admin__control-radio+.admin__field-label:before{margin:1px 1rem 0 -2.6rem}.admin__control-checkbox:checked+label:before,.admin__control-radio:checked+label:before{color:#514943}.admin__control-checkbox.disabled+label,.admin__control-checkbox[disabled]+label,.admin__control-radio.disabled+label,.admin__control-radio[disabled]+label{cursor:default;color:#303030;opacity:.5}.admin__control-checkbox.disabled+label:before,.admin__control-checkbox[disabled]+label:before,.admin__control-radio.disabled+label:before,.admin__control-radio[disabled]+label:before{background-color:#e9e9e9;border-color:#adadad;cursor:default}._keyfocus .admin__control-checkbox:not(.disabled):focus+label:before,._keyfocus .admin__control-checkbox:not([disabled]):focus+label:before,._keyfocus .admin__control-radio:not(.disabled):focus+label:before,._keyfocus .admin__control-radio:not([disabled]):focus+label:before{border-color:#007bdb}.admin__control-checkbox:not(.disabled):hover+label:before,.admin__control-checkbox:not([disabled]):hover+label:before,.admin__control-radio:not(.disabled):hover+label:before,.admin__control-radio:not([disabled]):hover+label:before{border-color:#878787}.admin__control-radio+label:before{border-radius:1.6rem;content:'\e637';font-size:1rem;transition:border-color .1s linear,color .1s ease-in}.admin__control-radio.admin__control-radio+label:before{line-height:140%}.admin__control-radio:checked:not(.disabled):hover,.admin__control-radio:checked:not(.disabled):hover+label,.admin__control-radio:checked:not([disabled]):hover,.admin__control-radio:checked:not([disabled]):hover+label{cursor:default}.admin__control-radio:checked:not(.disabled):hover+label:before,.admin__control-radio:checked:not([disabled]):hover+label:before{border-color:#adadad}.admin__control-checkbox+label:before{border-radius:1px;content:'';font-size:0;transition:font-size .1s ease-out,color .1s ease-out,border-color .1s linear}.admin__control-checkbox:checked+label:before{content:'\e62d';font-size:1.1rem;line-height:125%}.admin__control-checkbox:not(:checked)._indeterminate+label:before,.admin__control-checkbox:not(:checked):indeterminate+label:before{color:#514943;content:'-';font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700}input[type=checkbox].admin__control-checkbox,input[type=radio].admin__control-checkbox{position:absolute;margin:0}.admin__control-select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-repeat:no-repeat;background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#adadad,#adadad);background-position:calc(100% - 12px) -34px,100%,calc(100% - 3.2rem) 0;background-size:auto,3.2rem 100%,1px 100%;padding-bottom:.5rem;padding-right:4.4rem;padding-top:.5rem;transition:border-color .1s linear}.admin__control-select:hover{border-color:#878787;cursor:pointer}.admin__control-select:focus{background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#007bdb,#007bdb);background-position:calc(100% - 12px) 13px,100%,calc(100% - 3.2rem) 0;border-color:#007bdb}.admin__control-select::-ms-expand{display:none}.ie9 .admin__control-select{background-image:none;padding-right:1rem}option:empty{display:none}.admin__control-multiselect{height:auto;padding:.6rem 1rem}.admin__control-file-wrapper{display:inline-block;padding:.5rem 1rem;position:relative;z-index:1}.admin__control-file-label :before{content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__control-file{position:relative;z-index:1;background:0 0;border:0;width:auto}.admin__control-support-text{border:1px solid transparent;display:inline-block;font-size:1.4rem;line-height:1.36;padding-top:.6rem;padding-bottom:.6rem}.admin__control-support-text+[class*=admin__control-],[class*=admin__control-]+.admin__control-support-text{margin-left:.7rem}.admin__control-textarea{height:8.48rem;line-height:1.18;padding-top:.8rem;resize:vertical}.admin__control-addon{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;display:inline-flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;position:relative;width:100%;z-index:1}.admin__control-addon>[class*=admin__addon-],.admin__control-addon>[class*=admin__control-]{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:relative;z-index:1}.admin__control-addon [class*=admin__control-][type]{appearence:none;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;box-shadow:none;background-color:transparent;border-color:transparent;-webkit-order:1;-ms-flex-order:1;order:1;vertical-align:top;width:auto}.admin__control-addon [class*=admin__control-][type] :focus{box-shadow:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]{padding-left:1rem;position:static!important;z-index:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]>*{position:relative;vertical-align:top;z-index:2}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before{bottom:0;box-sizing:border-box;content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__addon-prefix,.admin__addon-suffix{border:0;box-sizing:border-box;color:#858585;display:inline-block;font-size:1.4rem;font-weight:400;height:3.2rem;line-height:3.2rem;padding:0}.admin__addon-suffix{-webkit-order:3;-ms-flex-order:3;order:3}.admin__addon-suffix:last-child{padding-right:1rem}.admin__addon-prefix{-webkit-order:0;-ms-flex-order:0;order:0}.ie9 .admin__control-addon:after{clear:both;content:'';display:block;height:0;overflow:hidden}.ie9 .admin__addon{min-width:0;overflow:hidden;text-align:right;white-space:nowrap;width:auto}.ie9 .admin__addon [class*=admin__control-]{display:inline}.ie9 .admin__addon-prefix{float:left}.ie9 .admin__addon-suffix{float:right}.admin__control-table-wrapper{max-width:100%;overflow-x:auto;overflow-y:hidden}.admin__control-table{width:100%}.admin__control-table thead{background-color:transparent}.admin__control-table tbody td{vertical-align:middle}.admin__control-table tfoot th{padding-bottom:1.3rem}.admin__control-table tr:last-child td,.admin__control-table tr:last-child th{border-bottom:none}.admin__control-table td,.admin__control-table th{background-color:#efefef;border:0;border-bottom:1px solid #fff;padding:1.3rem 2.5rem 1.3rem 0;text-align:left;vertical-align:top}.admin__control-table td:first-child,.admin__control-table th:first-child{padding-left:1.5rem}.admin__control-table th{border:0;vertical-align:bottom;color:#303030;font-size:1.4rem;font-weight:600;padding-bottom:0}.admin__control-table th._required span:after{color:#eb5202;content:'*'}.admin__control-table .control-table-actions-th{white-space:nowrap}.admin__control-table .control-table-actions-cell{padding-top:1.8rem;text-align:center;width:1%}.admin__control-table .col-draggable{padding-top:2.2rem;width:1%}.admin__control-table .action-delete,.admin__control-table .action-delete:hover{background-color:transparent;border-color:transparent;box-shadow:none}.admin__control-table .action-delete:before{content:'\e630'}.admin__control-table .action-delete>span{display:none}.admin__field-tooltip{display:inline-block;margin-top:5px;overflow:visible;vertical-align:top;width:0}.admin__field-tooltip:hover{position:relative;z-index:500}.admin__field-option .admin__field-tooltip{margin-top:10px}.admin__field-tooltip .admin__field-tooltip-action{margin-left:20px;display:inline-block;text-decoration:none}.admin__field-tooltip .admin__field-tooltip-action:before{-webkit-font-smoothing:antialiased;font-size:2.2rem;line-height:1;color:#514943;content:'\e633';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.admin__field-tooltip .admin__control-text:focus+.admin__field-tooltip-content,.admin__field-tooltip:hover .admin__field-tooltip-content{display:block}.admin__field-tooltip .admin__field-tooltip-content{bottom:42px;display:none;right:-70px}.admin__field-tooltip .admin__field-tooltip-content:after,.admin__field-tooltip .admin__field-tooltip-content:before{border:16px solid transparent;height:0;width:0;border-top-color:#afadac;content:"";display:block;position:absolute;right:20px;top:100%;z-index:3}.admin__field-tooltip .admin__field-tooltip-content:after{border-top-color:#fffbbb;margin-top:-1px;z-index:4}.abs-admin__field-tooltip-content,.admin__field-tooltip .admin__field-tooltip-content{box-shadow:0 2px 8px 0 rgba(0,0,0,.3);background:#fffbbb;border-radius:1px;border:1px solid #afadac;padding:15px 25px;position:absolute;width:320px;z-index:1}.admin__fieldset{border:0;margin:0;min-width:0;padding:0}.admin__fieldset>.admin__field{border:0;margin:0 0 0 -30px;padding:0}.admin__fieldset>.admin__field:after{clear:both;content:'';display:table}.admin__fieldset>.admin__field>.admin__field-control{width:calc((100%) * .4444444444444444 - 30px);float:left;margin-left:30px}.admin__fieldset>.admin__field>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px}.admin__form-field{border:0;margin:0;padding:0}.admin__field-control .admin__control-text,.admin__field-control .admin__control-textarea,.admin__form-field-control .admin__control-text,.admin__form-field-control .admin__control-textarea{width:100%}.admin__field-label{color:#303030;margin:0;text-align:right}.admin__field-label+br{display:none}.admin__field:not(.admin__field-option)>.admin__field-label{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:3.2rem;padding:0;white-space:nowrap;word-wrap:break-word}.admin__field:not(.admin__field-option)>.admin__field-label:before{opacity:0;visibility:hidden;content:'.';margin-left:-7px;overflow:hidden}.admin__field:not(.admin__field-option)>.admin__field-label span{display:inline-block;line-height:1.2;vertical-align:middle;white-space:normal}._required>.admin__field-label span:after{color:#eb5202;content:'*';display:inline-block;font-size:1.6rem;font-weight:500;line-height:1;margin-left:10px;position:absolute;top:1.2rem;z-index:1}._disabled>.admin__field-label{color:#999}.admin__field{margin-bottom:0}.admin__field+.admin__field{margin-top:1.5rem}.admin__field:not(.admin__field-option)~.admin__field-option{margin-top:.5rem}.admin__field.admin__field-option~.admin__field-option{margin-top:.9rem}.admin__field~.admin__field-option:last-child{margin-bottom:.8rem}.admin__fieldset>.admin__field{margin-bottom:3rem;position:relative}.admin__field[data-config-scope]:before{color:gray;content:attr(data-config-scope);display:inline-block;font-size:1.2rem;left:calc((100%) * .7777777777777778 - 30px);line-height:3.2rem;margin-left:60px;position:absolute;width:calc((100%) * .2222222222222222 - 30px)}.admin__field-control .admin__field[data-config-scope]:nth-child(n+2):before{content:''}.admin__field._error .admin__field-control [class*=admin__addon-]:before,.admin__field._error .admin__field-control>[class*=admin__control-]{border-color:#e22626}.admin__field-control+.admin__field-control{margin-top:1.5rem}.admin__field-error{background:#fffbbb;border:1px solid #ee7d7d;box-sizing:border-box;color:#555;display:block;font-size:1.2rem;font-weight:400;line-height:1.2;margin:.2rem 0 0;padding:.8rem 1rem .9rem}.admin__field-note{color:#303030;font-size:1.2rem;margin:10px 0 0;padding:0}.admin__field-option{padding-top:.8rem}.admin__field-option .admin__field-label{text-align:left}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2),.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1){display:inline-block}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option{display:inline-block;margin-left:41px;margin-top:0}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option:before,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option:before{background:#cacaca;content:'';display:inline-block;height:20px;margin-left:-20px;position:absolute;width:1px}.admin__field-value{padding-top:.8rem}.admin__control-fields>.admin__field:first-child,[class*=admin__control-grouped]>.admin__field:first-child{position:static}.admin__control-fields>.admin__field:first-child>.admin__field-label,[class*=admin__control-grouped]>.admin__field:first-child>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px;cursor:pointer;left:0;opacity:0;position:absolute;top:0}.admin__control-fields .admin__field-label~.admin__field-control{width:100%}[class*=admin__control-grouped]{box-sizing:border-box;display:table;table-layout:fixed;width:100%}[class*=admin__control-grouped]>.admin__field{display:table-cell;vertical-align:top;width:50%}[class*=admin__control-grouped]>.admin__field>.admin__field-control{float:none;width:100%}[class*=admin__control-grouped]>.admin__field:nth-child(n+2){padding-left:20px}[class*=admin__control-grouped]>.admin__field:nth-child(n+2):not(.admin__field-option) .admin__field-label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.admin__field-control-group{margin-top:.8rem}.admin__field-control-group>.admin__field{padding:0}.admin__legend{float:left;position:static;width:100%}.admin__legend+br{display:block;height:0;overflow:hidden;clear:left}.message{margin-bottom:3rem}.message-icon-top:before{margin-top:0;top:1.8rem}.nav{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;display:none;margin-bottom:3rem;padding:2.2rem 1.5rem 0 0}.nav .btn-group,.nav-bar-outer-actions{float:right;margin-bottom:1.7rem}.nav .btn-group .btn-wrap,.nav-bar-outer-actions .btn-wrap{float:right;margin-left:.5rem;margin-right:.5rem}.nav .btn-group .btn-wrap .btn,.nav-bar-outer-actions .btn-wrap .btn{padding-left:.5rem;padding-right:.5rem}.nav-bar-outer-actions{margin-top:-10.6rem;padding-right:1.5rem}.btn-wrap-try-again{width:9.5rem}.btn-wrap-next,.btn-wrap-prev{width:8.5rem}.nav-bar{counter-reset:i;float:left;margin:0 1rem 1.7rem 0;padding:0;position:relative;white-space:nowrap}.nav-bar:before{background-color:#d4d4d4;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#d1d1d1 0,#d4d4d4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#d4d4d4', GradientType=0);border-bottom:1px solid #d9d9d9;border-top:1px solid #bfbfbf;content:'';height:1rem;left:5.15rem;position:absolute;right:5.15rem;top:.7rem}.nav-bar>li{display:inline-block;font-size:0;position:relative;vertical-align:top;width:10.3rem}.nav-bar>li:first-child:after{display:none}.nav-bar>li:after{background-color:#514943;content:'';height:.5rem;left:calc(-50% + .25rem);position:absolute;right:calc(50% + .7rem);top:.9rem}.nav-bar>li.disabled:before,.nav-bar>li.ui-state-disabled:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after,.nav-bar>li.ui-state-active~li:after{display:none}.nav-bar>li.active~li a:after,.nav-bar>li.ui-state-active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a,.nav-bar>li.ui-state-active a{color:#000}.nav-bar>li.active a:hover,.nav-bar>li.ui-state-active a:hover{cursor:default}.nav-bar>li.active a:after,.nav-bar>li.ui-state-active a:after{background-color:#fff;content:''}.nav-bar a{color:#514943;display:block;font-size:1.2rem;font-weight:600;line-height:1.2;overflow:hidden;padding:3rem .5em 0;position:relative;text-align:center;text-overflow:ellipsis}.nav-bar a:hover{text-decoration:none}.nav-bar a:after{background-color:#514943;border:.4rem solid #514943;border-radius:100%;color:#fff;content:counter(i);counter-increment:i;height:1.5rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:1.5rem}.nav-bar a:before{background-color:#d6d6d6;border:1px solid transparent;border-bottom-color:#d9d9d9;border-radius:100%;border-top-color:#bfbfbf;content:'';height:2.3rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.3rem}.tooltip{display:block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.19rem;font-weight:400;line-height:1.4;opacity:0;position:absolute;visibility:visible;z-index:10}.tooltip.in{opacity:.9}.tooltip.top{margin-top:-4px;padding:8px 0}.tooltip.right{margin-left:4px;padding:0 8px}.tooltip.bottom{margin-top:4px;padding:8px 0}.tooltip.left{margin-left:-4px;padding:0 8px}.tooltip p:last-child{margin-bottom:0}.tooltip-inner{background-color:#fff;border:1px solid #adadad;border-radius:0;box-shadow:1px 1px 1px #ccc;color:#41362f;max-width:20rem;padding:.5em 1em;text-decoration:none}.tooltip-arrow,.tooltip-arrow:after{border:solid transparent;height:0;position:absolute;width:0}.tooltip-arrow:after{content:'';position:absolute}.tooltip.top .tooltip-arrow,.tooltip.top .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:50%;margin-left:-8px}.tooltip.top-left .tooltip-arrow,.tooltip.top-left .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;margin-bottom:-8px;right:8px}.tooltip.top-right .tooltip-arrow,.tooltip.top-right .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:8px;margin-bottom:-8px}.tooltip.right .tooltip-arrow,.tooltip.right .tooltip-arrow:after{border-right-color:#949494;border-width:8px 8px 8px 0;left:1px;margin-top:-8px;top:50%}.tooltip.right .tooltip-arrow:after{border-right-color:#fff;border-width:6px 7px 6px 0;margin-left:0;margin-top:-6px}.tooltip.left .tooltip-arrow,.tooltip.left .tooltip-arrow:after{border-left-color:#949494;border-width:8px 0 8px 8px;margin-top:-8px;right:0;top:50%}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:50%;margin-left:-8px;top:0}.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;margin-top:-8px;right:8px;top:0}.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:8px;margin-top:-8px;top:0}.password-strength{display:block;margin:0 -.3rem 1em;white-space:nowrap}.password-strength.password-strength-too-short .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child+.password-strength-item{background-color:#e22626}.password-strength.password-strength-fair .password-strength-item:first-child,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item+.password-strength-item{background-color:#ef672f}.password-strength.password-strength-good .password-strength-item:first-child,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item+.password-strength-item,.password-strength.password-strength-strong .password-strength-item{background-color:#79a22e}.password-strength .password-strength-item{background-color:#ccc;display:inline-block;font-size:0;height:1.4rem;margin-right:.3rem;width:calc(20% - .6rem)}@-webkit-keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}.progress{background-color:#fafafa;border:1px solid #ccc;clear:left;height:3rem;margin-bottom:3rem;overflow:hidden}.progress-bar{background-color:#79a22e;color:#fff;float:left;font-size:1.19rem;height:100%;line-height:3rem;text-align:center;transition:width .6s ease;width:0}.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-text-description{margin-bottom:1.6rem}.progress-bar-text-progress{text-align:right}.page-columns .page-inner-sidebar{margin:0 0 3rem}.page-header{margin-bottom:2.7rem;padding-bottom:2.9rem;position:relative}.page-header:before{border-bottom:1px solid #e3e3e3;bottom:0;content:'';display:block;height:1px;left:3rem;position:absolute;right:3rem}.container .page-header:before{content:normal}.page-header .message{margin-bottom:1.8rem}.page-header .message+.message{margin-top:-1.5rem}.page-header .admin__action-dropdown,.page-header .search-global-input{transition:none}.container .page-header{margin-bottom:0}.page-title-wrapper{margin-top:1.1rem}.container .page-title-wrapper{background:url(../../pub/images/logo.svg) no-repeat;min-height:41px;padding:4px 0 0 45px}.admin__menu .level-0:first-child>a{margin-top:1.6rem}.admin__menu .level-0:first-child>a:after{top:-1.6rem}.admin__menu .level-0:first-child._active>a:after{display:block}.admin__menu .level-0>a{padding-top:1.3rem;padding-bottom:1.3rem}.admin__menu .level-0>a:before{margin-bottom:.7rem}.admin__menu .item-home>a:before{content:'\e611';font-size:2.3rem;padding-top:-.1rem}.admin__menu .item-component>a:before{content:'\e612'}.admin__menu .item-upgrade>a:before{content:'\e614'}.admin__menu .item-system-config>a:before{content:'\e610'}.admin__menu .item-tools>a:before{content:'\e613'}.modal-sub-title{font-size:1.7rem;font-weight:600}.modal-connect-signin .modal-inner-wrap{max-width:80rem}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{-webkit-overflow-scrolling:touch;bottom:0;box-sizing:border-box;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:999}.ngdialog *,.ngdialog:after,.ngdialog:before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation *{-webkit-animation:none!important;animation:none!important}.ngdialog.ngdialog-closing .ngdialog-content,.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;background:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0}.ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}body.ngdialog-open{overflow:hidden}.component-indicator{border-radius:50%;cursor:help;display:inline-block;height:20px;text-align:center;width:20px}.component-indicator::after,.component-indicator::before{background:#fff;display:block;opacity:0;position:absolute;transition:opacity .2s linear .1s;visibility:hidden}.component-indicator::before{border-radius:1px;border:1px solid #adadad;box-shadow:0 0 2px rgba(0,0,0,.4);content:attr(data-label);font-size:1.2rem;margin:34px 0 0 -10px;min-width:50px;padding:4px 5px}.component-indicator::after{border:1px solid #999;border-width:1px 0 0 1px;box-shadow:-1px -1px 1px rgba(0,0,0,.1);content:'';height:10px;margin:9px 0 0 5px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:10px}.component-indicator:hover::after,.component-indicator:hover::before{opacity:1;transition:opacity .2s linear;visibility:visible}.component-indicator span{display:block;height:20px;overflow:hidden;width:20px}.component-indicator span:before{content:'';display:block;font-family:Icons;font-size:20px;height:100%;line-height:20px;width:100%}.component-indicator._on{background:#79a22e}.component-indicator._off{background:#e22626}.component-indicator._off span:before{background:#fff;height:4px;margin:8px auto 20px;width:12px}.component-indicator._info{background:0 0}.component-indicator._info span{width:21px}.component-indicator._info span:before{color:#008bdb;content:'\e61a';font-family:Icons;font-size:21px}.app-updater .nav{display:block;margin-bottom:3.1rem;margin-top:-2.8rem}.app-updater .nav-bar-outer-actions{margin-top:1rem;padding-right:0}.app-updater .nav-bar-outer-actions .btn-wrap-cancel{margin-right:2.6rem}.main{padding-bottom:2rem;padding-top:3rem}.menu-wrapper .logo-static{pointer-events:none}.header{display:none}.header .logo{float:left;height:4.1rem;width:3.5rem}.header-title{font-size:2.8rem;letter-spacing:.02em;line-height:1.4;margin:2.5rem 0 3.5rem 5rem}.page-title{margin-bottom:1rem}.page-sub-title{font-size:2rem}.accent-box{margin-bottom:2rem}.accent-box .btn-prime{margin-top:1.5rem}.spinner.side{float:left;font-size:2.4rem;margin-left:2rem;margin-top:-5px}.page-landing{margin:7.6% auto 0;max-width:44rem;text-align:center}.page-landing .logo{height:5.6rem;margin-bottom:2rem;width:19.2rem}.page-landing .text-version{margin-bottom:3rem}.page-landing .text-welcome{margin-bottom:6.5rem}.page-landing .text-terms{margin-bottom:2.5rem;text-align:center}.page-landing .btn-submit,.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.readiness-check-item{margin-bottom:4rem;min-height:2.5rem}.readiness-check-item .spinner{font-size:2.5rem;float:left;margin:-.4rem 0 0 1.7rem}.readiness-check-title{font-size:1.4rem;font-weight:700;margin-bottom:.1rem;margin-left:5.7rem}.readiness-check-content{margin-left:5.7rem;margin-right:22rem}.readiness-check-content .readiness-check-title{margin-left:0}.readiness-check-content .list{margin-top:-.3rem}.readiness-check-side{float:right;padding-left:2.4rem;width:22rem}.readiness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left;margin-left:1.7rem;margin-top:.3rem}.page-web-configuration .form-el-insider-wrap{width:auto}.page-web-configuration .form-el-insider{width:15.4rem}.page-web-configuration .form-el-insider-input .form-el-input{width:16.5rem}.customize-your-store .customize-your-store-default .legend{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.customize-your-store .advanced-modules-count,.customize-your-store .advanced-modules-select{padding-left:1.5rem}.customize-your-store .customize-your-store-advanced{min-width:0}.customize-your-store .message-error:before{margin-top:0;top:1.8rem}.customize-your-store .message-error a{color:#333;text-decoration:underline}.customize-your-store .message-error .form-label:before{background:#fff}.customize-your-store .customize-database-clean p{margin-top:2.5rem}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;height:20rem;margin:1rem 0 2rem;overflow-y:auto;padding:1.5rem 2rem 2rem;resize:vertical}.console .text-danger{color:#e22626}.console .text-success{color:#090}.console .hidden{display:none}.content-success .btn-prime{margin-top:1.5rem}.jumbo-title{font-size:3.6rem}.jumbo-title .jumbo-icon{font-size:3.8rem;margin-right:.25em;position:relative;top:.15em}.install-database-clean{margin-top:4rem}.install-database-clean .btn{margin-right:1rem}.page-sub-title{margin-bottom:2.1rem;margin-top:3rem}.multiselect-custom{max-width:71.1rem}.content-install{margin-top:3.7rem}.home-page-inner-wrap{margin:0 auto;max-width:91rem}.setup-home-title{margin-bottom:3.9rem;padding-top:1.8rem;text-align:center}.setup-home-item{background-color:#fafafa;border:1px solid #ccc;color:#333;display:block;margin-bottom:2rem;margin-left:1.3rem;margin-right:1.3rem;min-height:30rem;padding:2rem;text-align:center}.setup-home-item:hover{border-color:#8c8c8c;color:#333;text-decoration:none;transition:border-color .1s linear}.setup-home-item:active{-webkit-transform:scale(0.99);-ms-transform:scale(0.99);transform:scale(0.99)}.setup-home-item:before{display:block;font-size:7rem;margin-bottom:3.3rem;margin-top:4rem}.setup-home-item-component:before{content:'\e612'}.setup-home-item-upgrade:before{content:'\e614'}.setup-home-item-configuration:before{content:'\e610'}.setup-home-item-title{display:block;font-size:1.8rem;letter-spacing:.025em;margin-bottom:1rem}.setup-home-item-description{display:block}.componenet-manager-wrap{border:1px solid #bbb;margin:0 0 4rem}.componenet-manager-wrap .componenet-manager-account{font-size:1.4rem;float:right;padding:.6rem 0 0}.componenet-manager-wrap .componenet-manager-account .sign-in-out{margin-left:2rem}.component-manager-title{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;color:#41362f;font-size:2rem;line-height:1.2;padding:2rem}.component-manager-content{padding:2.5rem 2rem 2rem}.componenet-manager-items{list-style:none;margin:0;text-align:center}.componenet-manager-items .btn{border:1px solid #adadad}.componenet-manager-items .item-title{margin:0 0 1.5rem}.componenet-manager-items .item-number{font-size:6rem;line-height:.8;margin:0 0 1.5rem}.componenet-manager-items .item-date{margin:0 0 3.7rem}.componenet-manager-items .item-install{margin:0 0 2rem}.componenet-manager-items .item-install .btn{line-height:1.36;margin:0;padding:0;color:#008bdb;text-decoration:none;background:0 0;border:0;display:inline;font-size:1.4rem;font-weight:400}.componenet-manager-items .item-install .btn:visited{color:#008bdb;text-decoration:none}.componenet-manager-items .item-install .btn:hover{text-decoration:underline}.componenet-manager-items .item-install .btn:active{color:#ff5501;text-decoration:underline}.componenet-manager-items .item-install .btn:hover{color:#0fa7ff}.componenet-manager-items .item-install .btn:active,.componenet-manager-items .item-install .btn:focus,.componenet-manager-items .item-install .btn:hover{background:0 0;border:0}.componenet-manager-items .item-install .btn.disabled,.componenet-manager-items .item-install .btn[disabled],fieldset[disabled] .componenet-manager-items .item-install .btn{color:#008bdb;opacity:.5;cursor:default;pointer-events:none;text-decoration:underline}.componenet-manager-items .item-install .btn.disabled{text-decoration:none}.sync-login-wrap{margin:-2.5rem 0 0;padding:0 10% 4rem}.sync-login-wrap .legend{font-size:2.6rem;color:#eb5202;float:left;font-weight:300;line-height:1.2;margin:-1rem 0 2.5rem;position:static;width:100%}.sync-login-wrap .legend._hidden{display:none}.sync-login-wrap .login-header{font-size:3.4rem;font-weight:300;margin:0 0 2rem}.sync-login-wrap .login-header span{display:inline-block;padding:.9rem 0 0;vertical-align:top}.sync-login-wrap .form-row .form-label{display:inline-block}.sync-login-wrap .form-row .form-label.required{padding-left:1.5rem}.sync-login-wrap .form-row .form-label.required:after{left:0;position:absolute;right:auto}.sync-login-wrap .form-row{max-width:28rem}.sync-login-wrap .form-actions{display:table;margin-top:-1.3rem}.sync-login-wrap .form-actions .links{display:table-header-group}.sync-login-wrap .form-actions .actions{padding:3rem 0 0}@media all and (max-width:1047px){.admin__menu .submenu li{min-width:19.8rem}.nav{padding-bottom:5.38rem;padding-left:1.5rem;text-align:center}.nav-bar{display:inline-block;float:none;margin-right:0;vertical-align:top}.nav .btn-group,.nav-bar-outer-actions{display:inline-block;float:none;margin-top:-8.48rem;text-align:center;vertical-align:top;width:100%}.nav-bar-outer-actions{padding-right:0}.nav-bar-outer-actions .outer-actions-inner-wrap{display:inline-block}.app-updater .nav{padding-bottom:1.7rem}.app-updater .nav-bar-outer-actions{margin-top:2rem}}@media all and (min-width:768px){.page-layout-admin-2columns-left .page-columns{margin-left:-30px}.page-layout-admin-2columns-left .page-columns:after{clear:both;content:'';display:table}.page-layout-admin-2columns-left .page-columns .main-col{width:calc((100%) * .75 - 30px);float:right}.page-layout-admin-2columns-left .page-columns .side-col{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9{float:left}.col-m-12{width:100%}.col-m-11{width:91.66666667%}.col-m-10{width:83.33333333%}.col-m-9{width:75%}.col-m-8{width:66.66666667%}.col-m-7{width:58.33333333%}.col-m-6{width:50%}.col-m-5{width:41.66666667%}.col-m-4{width:33.33333333%}.col-m-3{width:25%}.col-m-2{width:16.66666667%}.col-m-1{width:8.33333333%}.col-m-pull-12{right:100%}.col-m-pull-11{right:91.66666667%}.col-m-pull-10{right:83.33333333%}.col-m-pull-9{right:75%}.col-m-pull-8{right:66.66666667%}.col-m-pull-7{right:58.33333333%}.col-m-pull-6{right:50%}.col-m-pull-5{right:41.66666667%}.col-m-pull-4{right:33.33333333%}.col-m-pull-3{right:25%}.col-m-pull-2{right:16.66666667%}.col-m-pull-1{right:8.33333333%}.col-m-pull-0{right:auto}.col-m-push-12{left:100%}.col-m-push-11{left:91.66666667%}.col-m-push-10{left:83.33333333%}.col-m-push-9{left:75%}.col-m-push-8{left:66.66666667%}.col-m-push-7{left:58.33333333%}.col-m-push-6{left:50%}.col-m-push-5{left:41.66666667%}.col-m-push-4{left:33.33333333%}.col-m-push-3{left:25%}.col-m-push-2{left:16.66666667%}.col-m-push-1{left:8.33333333%}.col-m-push-0{left:auto}.col-m-offset-12{margin-left:100%}.col-m-offset-11{margin-left:91.66666667%}.col-m-offset-10{margin-left:83.33333333%}.col-m-offset-9{margin-left:75%}.col-m-offset-8{margin-left:66.66666667%}.col-m-offset-7{margin-left:58.33333333%}.col-m-offset-6{margin-left:50%}.col-m-offset-5{margin-left:41.66666667%}.col-m-offset-4{margin-left:33.33333333%}.col-m-offset-3{margin-left:25%}.col-m-offset-2{margin-left:16.66666667%}.col-m-offset-1{margin-left:8.33333333%}.col-m-offset-0{margin-left:0}.page-columns{margin-left:-30px}.page-columns:after{clear:both;content:'';display:table}.page-columns .page-inner-content{width:calc((100%) * .75 - 30px);float:right}.page-columns .page-inner-sidebar{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}}@media all and (min-width:1048px){.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9{float:left}.col-l-12{width:100%}.col-l-11{width:91.66666667%}.col-l-10{width:83.33333333%}.col-l-9{width:75%}.col-l-8{width:66.66666667%}.col-l-7{width:58.33333333%}.col-l-6{width:50%}.col-l-5{width:41.66666667%}.col-l-4{width:33.33333333%}.col-l-3{width:25%}.col-l-2{width:16.66666667%}.col-l-1{width:8.33333333%}.col-l-pull-12{right:100%}.col-l-pull-11{right:91.66666667%}.col-l-pull-10{right:83.33333333%}.col-l-pull-9{right:75%}.col-l-pull-8{right:66.66666667%}.col-l-pull-7{right:58.33333333%}.col-l-pull-6{right:50%}.col-l-pull-5{right:41.66666667%}.col-l-pull-4{right:33.33333333%}.col-l-pull-3{right:25%}.col-l-pull-2{right:16.66666667%}.col-l-pull-1{right:8.33333333%}.col-l-pull-0{right:auto}.col-l-push-12{left:100%}.col-l-push-11{left:91.66666667%}.col-l-push-10{left:83.33333333%}.col-l-push-9{left:75%}.col-l-push-8{left:66.66666667%}.col-l-push-7{left:58.33333333%}.col-l-push-6{left:50%}.col-l-push-5{left:41.66666667%}.col-l-push-4{left:33.33333333%}.col-l-push-3{left:25%}.col-l-push-2{left:16.66666667%}.col-l-push-1{left:8.33333333%}.col-l-push-0{left:auto}.col-l-offset-12{margin-left:100%}.col-l-offset-11{margin-left:91.66666667%}.col-l-offset-10{margin-left:83.33333333%}.col-l-offset-9{margin-left:75%}.col-l-offset-8{margin-left:66.66666667%}.col-l-offset-7{margin-left:58.33333333%}.col-l-offset-6{margin-left:50%}.col-l-offset-5{margin-left:41.66666667%}.col-l-offset-4{margin-left:33.33333333%}.col-l-offset-3{margin-left:25%}.col-l-offset-2{margin-left:16.66666667%}.col-l-offset-1{margin-left:8.33333333%}.col-l-offset-0{margin-left:0}}@media all and (min-width:1440px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-pull-12{right:100%}.col-xl-pull-11{right:91.66666667%}.col-xl-pull-10{right:83.33333333%}.col-xl-pull-9{right:75%}.col-xl-pull-8{right:66.66666667%}.col-xl-pull-7{right:58.33333333%}.col-xl-pull-6{right:50%}.col-xl-pull-5{right:41.66666667%}.col-xl-pull-4{right:33.33333333%}.col-xl-pull-3{right:25%}.col-xl-pull-2{right:16.66666667%}.col-xl-pull-1{right:8.33333333%}.col-xl-pull-0{right:auto}.col-xl-push-12{left:100%}.col-xl-push-11{left:91.66666667%}.col-xl-push-10{left:83.33333333%}.col-xl-push-9{left:75%}.col-xl-push-8{left:66.66666667%}.col-xl-push-7{left:58.33333333%}.col-xl-push-6{left:50%}.col-xl-push-5{left:41.66666667%}.col-xl-push-4{left:33.33333333%}.col-xl-push-3{left:25%}.col-xl-push-2{left:16.66666667%}.col-xl-push-1{left:8.33333333%}.col-xl-push-0{left:auto}.col-xl-offset-12{margin-left:100%}.col-xl-offset-11{margin-left:91.66666667%}.col-xl-offset-10{margin-left:83.33333333%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-8{margin-left:66.66666667%}.col-xl-offset-7{margin-left:58.33333333%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-5{margin-left:41.66666667%}.col-xl-offset-4{margin-left:33.33333333%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-2{margin-left:16.66666667%}.col-xl-offset-1{margin-left:8.33333333%}.col-xl-offset-0{margin-left:0}}@media all and (max-width:767px){.list-definition>dt{float:none}.list-definition>dd{margin-left:0}.form-row .form-label{text-align:left}.form-row .form-label.required:after{position:static}.nav{padding-bottom:0;padding-left:0;padding-right:0}.nav-bar-outer-actions{margin-top:0}.nav-bar{display:block;margin-bottom:0;margin-left:auto;margin-right:auto;width:30.9rem}.nav-bar:before{display:none}.nav-bar>li{float:left;min-height:9rem}.nav-bar>li:after{display:none}.nav-bar>li:nth-child(4n){clear:both}.nav-bar a{line-height:1.4}.tooltip{display:none!important}.readiness-check-content{margin-right:2rem}.form-el-insider,.form-el-insider-wrap,.page-web-configuration .form-el-insider-input,.page-web-configuration .form-el-insider-input .form-el-input{display:block;width:100%}}@media all and (max-width:479px){.nav-bar{width:23.175rem}.nav-bar>li{width:7.725rem}.nav .btn-group .btn-wrap-try-again,.nav-bar-outer-actions .btn-wrap-try-again{clear:both;display:block;float:none;margin-left:auto;margin-right:auto;margin-top:1rem;padding-top:1rem}}
\ No newline at end of file
diff --git a/setup/view/magento/setup/select-version.phtml b/setup/view/magento/setup/select-version.phtml
index b1a8367978e..eb981f49151 100644
--- a/setup/view/magento/setup/select-version.phtml
+++ b/setup/view/magento/setup/select-version.phtml
@@ -186,14 +186,15 @@
                 <tbody>
             <tr ng-repeat="component in displayComponents | limitTo:rowLimit">
                     <td class="data-grid-indicator-cell">
-                        <div class="onoffswitch">
+                        <div class="actions-switch">
                             <input type="checkbox" name="{{component.checkboxId}}"
-                                   class="onoffswitch-checkbox" id="{{component.checkboxId}}"
+                                   class="actions-switch-checkbox" id="{{component.checkboxId}}"
                                    ng-click="AddRemoveComponentOnSliderMove(component)"
                                    ng-checked="isSelected(component.name)">
-                            <label class="onoffswitch-label" for="{{component.checkboxId}}">
-                                <span class="onoffswitch-inner"></span>
-                                <span class="onoffswitch-switch"></span>
+                            <label class="actions-switch-label" for="{{component.checkboxId}}">
+                                <span class="actions-switch-inner"></span>
+                                <span class="actions-switch-indicator"></span>
+                                <span class="actions-switch-text" data-label-yes="Yes" data-label-no="No"></span>
                             </label>
                         </div>
                     </td>
-- 
GitLab


From 9dd412dbccd06abcecf03d5294f34e52b2f6f390 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Tue, 13 Oct 2015 09:38:03 -0500
Subject: [PATCH 012/162] MAGETWO-43906: Long database prefix length breaks
 setup

- changes according to CR
---
 .../Setup/Test/Unit/Validator/DbValidatorTest.php      |  2 +-
 setup/src/Magento/Setup/Validator/DbValidator.php      | 10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php b/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
index 3822e9fd2ea..60de1e4f236 100644
--- a/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Validator/DbValidatorTest.php
@@ -89,7 +89,7 @@ class DbValidatorTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Table prefix length can't be more then
+     * @expectedExceptionMessage Table prefix length can't be more than
      */
     public function testCheckDatabaseTablePrefixWrongLength()
     {
diff --git a/setup/src/Magento/Setup/Validator/DbValidator.php b/setup/src/Magento/Setup/Validator/DbValidator.php
index d74c5e60863..645710fde9e 100644
--- a/setup/src/Magento/Setup/Validator/DbValidator.php
+++ b/setup/src/Magento/Setup/Validator/DbValidator.php
@@ -16,6 +16,9 @@ use Magento\Setup\Module\ConnectionFactory;
 class DbValidator
 {
 
+    /**
+     * Db prefix max length
+     */
     const DB_PREFIX_LENGTH = 10;
 
     /**
@@ -47,12 +50,15 @@ class DbValidator
         //The table prefix should contain only letters (a-z), numbers (0-9) or underscores (_);
         // the first character should be a letter.
         if ($prefix !== '' && !preg_match('/^([a-zA-Z])([[:alnum:]_]+)$/', $prefix)) {
-            throw new \InvalidArgumentException('Please correct the table prefix format.');
+            throw new \InvalidArgumentException(
+                'Please correct the table prefix format, should contain only numbers, letters or underscores.'
+                .' The first character should be a letter.'
+            );
         }
 
         if (strlen($prefix) > self::DB_PREFIX_LENGTH) {
             throw new \InvalidArgumentException(
-                'Table prefix length can\'t be more then ' . self::DB_PREFIX_LENGTH . ' characters.'
+                'Table prefix length can\'t be more than ' . self::DB_PREFIX_LENGTH . ' characters.'
             );
         }
 
-- 
GitLab


From 64c72658f2819c24828484f3a63ceaa15e211b9d Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Tue, 13 Oct 2015 17:49:11 +0300
Subject: [PATCH 013/162] MAGETWO-43929: Regression scope functional tests
 maintenance

---
 .../tests/app/Magento/Backend/Test/Block/Widget/Grid.php         | 1 +
 1 file changed, 1 insertion(+)

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 8e1e7be0371..ff465a72391 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
@@ -252,6 +252,7 @@ abstract class Grid extends Block
         } else {
             throw new \Exception("Searched item was not found by filter\n" . print_r($filter, true));
         }
+        $this->waitLoader();
     }
 
     /**
-- 
GitLab


From c6034ce9dfdcddac9d31e0cf97cad9fecf2506c2 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Tue, 13 Oct 2015 11:00:28 -0500
Subject: [PATCH 014/162] MAGETWO-43906: Long database prefix length breaks
 setup

- modified max lenght for db prefix
---
 setup/src/Magento/Setup/Validator/DbValidator.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup/src/Magento/Setup/Validator/DbValidator.php b/setup/src/Magento/Setup/Validator/DbValidator.php
index 645710fde9e..be90f6eadef 100644
--- a/setup/src/Magento/Setup/Validator/DbValidator.php
+++ b/setup/src/Magento/Setup/Validator/DbValidator.php
@@ -19,7 +19,7 @@ class DbValidator
     /**
      * Db prefix max length
      */
-    const DB_PREFIX_LENGTH = 10;
+    const DB_PREFIX_LENGTH = 5;
 
     /**
      * DB connection factory
-- 
GitLab


From 797556ac477b63bbc0369df9cfd0b525881a7341 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Tue, 13 Oct 2015 13:08:19 -0500
Subject: [PATCH 015/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Backup/Model/Config/Backend/Cron.php      |  7 +-
 .../Config/Backend/Countrycreditcard.php      |  4 +-
 .../Catalog/Model/Config/Backend/Category.php |  6 +-
 .../Model/Config/CatalogClone/Media/Image.php |  4 +-
 .../Category/Flat/System/Config/Mode.php      |  6 +-
 .../Product/Flat/System/Config/Mode.php       |  6 +-
 .../Price/System/Config/PriceScope.php        |  8 ++-
 .../Backend/Catalog/Url/Rewrite/Suffix.php    |  8 ++-
 .../Model/Config/Backend/AbstractValue.php    |  4 +-
 .../Model/Config/Backend/Backorders.php       |  2 +-
 .../Model/Config/Backend/Managestock.php      |  2 +-
 .../System/Config/Backend/Minsaleqty.php      |  4 +-
 .../System/Config/Backend/Engine.php          |  4 +-
 .../Model/Config/Backend/Admin/Custom.php     |  6 +-
 .../Model/Config/Backend/Admin/Robots.php     |  4 +-
 .../Model/Config/Backend/Admin/Usecustom.php  |  6 +-
 .../Config/Backend/Admin/Usesecretkey.php     |  6 +-
 .../Config/Model/Config/Backend/Baseurl.php   |  7 +-
 .../Backend/Currency/AbstractCurrency.php     | 33 +--------
 .../Model/Config/Backend/Currency/Allow.php   |  8 +--
 .../Model/Config/Backend/Currency/Base.php    |  8 +--
 .../Model/Config/Backend/Currency/Cron.php    |  7 +-
 .../Backend/Currency/DefaultCurrency.php      |  2 +-
 .../Config/Model/Config/Backend/Encrypted.php |  4 +-
 .../Config/Model/Config/Backend/File.php      |  5 +-
 .../Model/Config/Backend/Image/Adapter.php    |  4 +-
 .../Config/Model/Config/Backend/Locale.php    |  6 +-
 .../Config/Model/Config/Backend/Log/Cron.php  |  7 +-
 .../Config/Model/Config/Backend/Secure.php    |  7 +-
 .../Model/Config/Backend/Serialized.php       |  3 +-
 .../Backend/Serialized/ArraySerialized.php    |  4 +-
 .../Config/Model/Config/Backend/Store.php     |  7 +-
 .../Config/Model/Config/Backend/Translate.php | 67 ++-----------------
 .../Unit/Model/Config/Backend/BaseurlTest.php | 30 +++------
 .../Unit/Model/Config/Backend/SecureTest.php  | 30 +++------
 .../Model/System/Config/Backend/LinksTest.php | 10 +--
 .../Cookie/Model/Config/Backend/Domain.php    |  4 +-
 .../Cookie/Model/Config/Backend/Lifetime.php  |  7 +-
 .../Cookie/Model/Config/Backend/Path.php      |  4 +-
 .../Model/Config/Backend/Product/Alert.php    | 10 ++-
 .../Cron/Model/Config/Backend/Sitemap.php     |  7 +-
 .../Model/Config/Backend/Address/Street.php   |  6 +-
 .../DisableAutoGroupAssignDefault.php         |  4 +-
 .../Model/Config/Backend/Show/Customer.php    |  4 +-
 .../Magento/Customer/Model/Config/Share.php   |  4 +-
 .../Model/Config/Backend/AllowedIps.php       |  4 +-
 .../Config/Backend/AbstractConversion.php     |  4 +-
 .../Config/Backend/Storage/Media/Database.php |  6 +-
 .../Model/Config/Backend/Tablerate.php        |  7 +-
 .../Model/System/Config/Backend/Cert.php      |  6 +-
 .../Model/System/Config/Backend/Cron.php      |  4 +-
 .../System/Config/Backend/MerchantCountry.php |  4 +-
 .../Rss/Model/System/Config/Backend/Links.php | 32 +--------
 .../Magento/Tax/Model/Config/Notification.php |  8 ++-
 .../Magento/Tax/Model/Config/TaxClass.php     | 10 +--
 .../Theme/Model/Design/Backend/Exceptions.php |  4 +-
 .../Theme/Model/Design/Backend/Theme.php      | 37 +++++++++-
 .../Model/Design/Backend/ExceptionsTest.php   | 56 ++++------------
 .../Unit/Model/Design/Backend/ThemeTest.php   | 56 ++++------------
 app/code/Magento/Theme/etc/config.xml         |  5 ++
 .../Magento/Framework/App/Config/Value.php    | 24 +++++++
 61 files changed, 312 insertions(+), 341 deletions(-)

diff --git a/app/code/Magento/Backup/Model/Config/Backend/Cron.php b/app/code/Magento/Backup/Model/Config/Backend/Cron.php
index e4204f26879..ed8ae69bbf0 100644
--- a/app/code/Magento/Backup/Model/Config/Backend/Cron.php
+++ b/app/code/Magento/Backup/Model/Config/Backend/Cron.php
@@ -32,6 +32,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -42,6 +43,7 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -50,13 +52,13 @@ class Cron extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Cron settings after save
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function afterSave()
@@ -102,5 +104,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Magento\Framework\Exception\LocalizedException(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
index 17291f11bc9..f88ad1f405d 100644
--- a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
+++ b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php
@@ -16,6 +16,7 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Math\Random $mathRandom
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Math\Random $mathRandom,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->mathRandom = $mathRandom;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Config/Backend/Category.php b/app/code/Magento/Catalog/Model/Config/Backend/Category.php
index 31baf9603a0..70e2937bc4e 100644
--- a/app/code/Magento/Catalog/Model/Config/Backend/Category.php
+++ b/app/code/Magento/Catalog/Model/Config/Backend/Category.php
@@ -25,6 +25,7 @@ class Category extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\Category $catalogCategory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -34,13 +35,14 @@ class Category extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\Category $catalogCategory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_catalogCategory = $catalogCategory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -67,6 +69,6 @@ class Category extends \Magento\Framework\App\Config\Value
                 $this->_catalogCategory->setStoreId($storeId)->save();
             }
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
index 2fd92365d14..3df22c0bfa5 100644
--- a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
+++ b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php
@@ -30,6 +30,7 @@ class Image extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -40,6 +41,7 @@ class Image extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -48,7 +50,7 @@ class Image extends \Magento\Framework\App\Config\Value
     ) {
         $this->_attributeCollectionFactory = $attributeCollectionFactory;
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
index 3d6eb24ce7d..d3d499d7d8f 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php
@@ -20,6 +20,7 @@ class Mode extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Indexer\Model\Indexer\State $indexerState
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -30,13 +31,14 @@ class Mode extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Indexer\Model\Indexer\State $indexerState,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->indexerRegistry = $indexerRegistry;
         $this->indexerState = $indexerState;
     }
@@ -49,7 +51,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
index e35b88dc0e7..977ed6ed73f 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php
@@ -24,6 +24,7 @@ class Mode extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor
      * @param \Magento\Indexer\Model\Indexer\State $indexerState
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -34,6 +35,7 @@ class Mode extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor,
         \Magento\Indexer\Model\Indexer\State $indexerState,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -42,7 +44,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     ) {
         $this->_productFlatIndexerProcessor = $productFlatIndexerProcessor;
         $this->indexerState = $indexerState;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -53,7 +55,7 @@ class Mode extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
index f66ac598d46..c19ee05a358 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php
@@ -17,6 +17,7 @@ class PriceScope extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -26,24 +27,25 @@ class PriceScope extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->indexerRegistry = $indexerRegistry;
     }
 
     /**
      * Set after commit callback
      *
-     * @return \Magento\Catalog\Model\Indexer\Product\Price\System\Config\PriceScope
+     * @return $this
      */
     public function afterSave()
     {
         $this->_getResource()->addCommitCallback([$this, 'processValue']);
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
index 42ddbde393f..b4ea3dd8c5b 100644
--- a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
+++ b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php
@@ -39,12 +39,13 @@ class Suffix extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\UrlRewrite\Helper\UrlRewrite $urlRewriteHelper
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Framework\App\ResourceConnection $appResource
      * @param \Magento\UrlRewrite\Model\UrlFinderInterface $urlFinder
+     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
      * @param array $data
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
@@ -52,6 +53,7 @@ class Suffix extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\UrlRewrite\Helper\UrlRewrite $urlRewriteHelper,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Framework\App\ResourceConnection $appResource,
@@ -60,7 +62,7 @@ class Suffix extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->urlRewriteHelper = $urlRewriteHelper;
         $this->connection = $appResource->getConnection();
         $this->urlFinder = $urlFinder;
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
index 58c52b89377..ffe4998c15a 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php
@@ -25,6 +25,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex
      * @param \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -35,6 +36,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex,
         \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,6 +45,6 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value
     ) {
         $this->_stockIndexerProcessor = $stockIndexerProcessor;
         $this->stockIndex = $stockIndex;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
index d5a890c3d54..383a8b911d8 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/Backorders.php
@@ -28,6 +28,6 @@ class Backorders extends AbstractValue
             $this->stockIndex->rebuild();
             $this->_stockIndexerProcessor->markIndexerAsInvalid();
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
index 4b377112acc..efbc166208a 100644
--- a/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
+++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/Managestock.php
@@ -23,6 +23,6 @@ class Managestock extends AbstractValue
             $this->stockIndex->rebuild();
             $this->_stockIndexerProcessor->markIndexerAsInvalid();
         }
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
index ea89069d8c5..19a6877e505 100644
--- a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
+++ b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php
@@ -21,6 +21,7 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,13 +31,14 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_catalogInventoryMinsaleqty = $catalogInventoryMinsaleqty;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
index cf56ff5dc49..831a0ee8040 100644
--- a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
+++ b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php
@@ -17,6 +17,7 @@ class Engine extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -26,13 +27,14 @@ class Engine extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->indexerRegistry = $indexerRegistry;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
index 21ce20f6174..59bb6074d69 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php
@@ -58,6 +58,7 @@ class Custom extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -67,13 +68,14 @@ class Custom extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configWriter = $configWriter;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -122,6 +124,6 @@ class Custom extends \Magento\Framework\App\Config\Value
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
index 0fe5834b863..31df36606c6 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php
@@ -27,6 +27,7 @@ class Robots extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Filesystem $filesystem
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -36,12 +37,13 @@ class Robots extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Filesystem $filesystem,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_directory = $filesystem->getDirectoryWrite(DirectoryList::ROOT);
         $this->_file = 'robots.txt';
     }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
index 2b2de392e7d..6b7a585dd35 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php
@@ -22,6 +22,7 @@ class Usecustom extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Usecustom extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configWriter = $configWriter;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -81,6 +83,6 @@ class Usecustom extends \Magento\Framework\App\Config\Value
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
index 49298cb9288..283cfc3eb63 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php
@@ -20,6 +20,7 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Backend\Model\UrlInterface $backendUrl
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +30,14 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Backend\Model\UrlInterface $backendUrl,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_backendUrl = $backendUrl;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -44,6 +46,6 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value
     public function afterSave()
     {
         $this->_backendUrl->renewSecretUrls();
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
index 9f9db6d0a99..b066e0669d9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php
@@ -16,6 +16,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\Asset\MergeService $mergeService
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class Baseurl extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\Asset\MergeService $mergeService,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_mergeService = $mergeService;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -198,7 +200,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value
     /**
      * Clean compiled JS/CSS when updating url configuration settings
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
@@ -212,5 +214,6 @@ class Baseurl extends \Magento\Framework\App\Config\Value
                     break;
             }
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
index 02ffa58b6b2..42c589c06a9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php
@@ -15,37 +15,6 @@ namespace Magento\Config\Model\Config\Backend\Currency;
 
 abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value
 {
-    /**
-     * Core store config
-     *
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
-     */
-    protected $_scopeConfig;
-
-    /**
-     * Constructor
-     *
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_scopeConfig = $scopeConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
     /**
      * Retrieve allowed currencies for current scope
      *
@@ -75,7 +44,7 @@ abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value
     {
         return explode(
             ',',
-            $this->_scopeConfig->getValue(
+            $this->_config->getValue(
                 'system/currency/installed',
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE
             )
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
index f38db8cc6dd..fecb0710472 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
@@ -21,7 +21,7 @@ class Allow extends AbstractCurrency
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,14 +31,14 @@ class Allow extends AbstractCurrency
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Locale\CurrencyInterface $localeCurrency,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $scopeConfig, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
     }
 
     /**
@@ -71,6 +71,6 @@ class Allow extends AbstractCurrency
             throw new \Magento\Framework\Exception\LocalizedException(__(join("\n", $exceptions)));
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
index 8b000db0117..fe32b71564f 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
@@ -19,7 +19,7 @@ class Base extends AbstractCurrency
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +29,13 @@ class Base extends AbstractCurrency
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Directory\Model\CurrencyFactory $currencyFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $scopeConfig, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
         $this->currencyFactory = $currencyFactory;
     }
 
@@ -55,6 +55,6 @@ class Base extends AbstractCurrency
         }
 
         $this->currencyFactory->create()->saveRates([$value =>[$value => 1]]);
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
index 2575a80ec73..273a8accec1 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php
@@ -21,6 +21,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,17 +31,18 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -69,5 +71,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php b/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
index 35e8e5688ca..a086a674570 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/DefaultCurrency.php
@@ -33,6 +33,6 @@ class DefaultCurrency extends AbstractCurrency
             );
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
index 51a78e6f188..d12edd3ffdb 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php
@@ -22,6 +22,7 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Encryption\EncryptorInterface $encryptor,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_encryptor = $encryptor;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/File.php b/app/code/Magento/Config/Model/Config/Backend/File.php
index 1b03ae15671..9496bc6ab3a 100644
--- a/app/code/Magento/Config/Model/Config/Backend/File.php
+++ b/app/code/Magento/Config/Model/Config/Backend/File.php
@@ -13,6 +13,7 @@ use Magento\Framework\Filesystem;
  * System config file field backend model
  *
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 class File extends \Magento\Framework\App\Config\Value
 {
@@ -47,6 +48,7 @@ class File extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory
      * @param \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData
      * @param Filesystem $filesystem
@@ -58,6 +60,7 @@ class File extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory,
         \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData,
         Filesystem $filesystem,
@@ -69,7 +72,7 @@ class File extends \Magento\Framework\App\Config\Value
         $this->_requestData = $requestData;
         $this->_filesystem = $filesystem;
         $this->_mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA);
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
index 486df64d2fc..a1f1fc2f8e9 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php
@@ -22,6 +22,7 @@ class Adapter extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Image\AdapterFactory $imageFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,12 +32,13 @@ class Adapter extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Image\AdapterFactory $imageFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_imageFactory = $imageFactory;
     }
 
diff --git a/app/code/Magento/Config/Model/Config/Backend/Locale.php b/app/code/Magento/Config/Model/Config/Backend/Locale.php
index 6c7fca6df42..bed8303d776 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Locale.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Locale.php
@@ -37,6 +37,7 @@ class Locale extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configsFactory
      * @param \Magento\Store\Model\WebsiteFactory $websiteFactory
      * @param \Magento\Store\Model\StoreFactory $storeFactory
@@ -51,6 +52,7 @@ class Locale extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config\Data\CollectionFactory $configsFactory,
         \Magento\Store\Model\WebsiteFactory $websiteFactory,
         \Magento\Store\Model\StoreFactory $storeFactory,
@@ -63,7 +65,7 @@ class Locale extends \Magento\Framework\App\Config\Value
         $this->_websiteFactory = $websiteFactory;
         $this->_storeFactory = $storeFactory;
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -120,6 +122,6 @@ class Locale extends \Magento\Framework\App\Config\Value
             throw new \Magento\Framework\Exception\LocalizedException(__(join("\n", $exceptions)));
         }
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
index 83ae49a6cf7..01eebb5ce2b 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php
@@ -29,6 +29,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -39,6 +40,7 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -47,13 +49,13 @@ class Cron extends \Magento\Framework\App\Config\Value
     ) {
         $this->_configValueFactory = $configValueFactory;
         $this->_runModelPath = $runModelPath;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Cron settings after save
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function afterSave()
@@ -91,5 +93,6 @@ class Cron extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Magento\Framework\Exception\LocalizedException(__('We can\'t save the Cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Secure.php b/app/code/Magento/Config/Model/Config/Backend/Secure.php
index 7eab9b7846f..25ccf26b560 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Secure.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Secure.php
@@ -15,6 +15,7 @@ class Secure extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\Asset\MergeService $mergeService
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -24,24 +25,26 @@ class Secure extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\Asset\MergeService $mergeService,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_mergeService = $mergeService;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Clean compiled JS/CSS when updating configuration settings
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
         if ($this->isValueChanged()) {
             $this->_mergeService->cleanMergedJsCss();
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Serialized.php b/app/code/Magento/Config/Model/Config/Backend/Serialized.php
index 28353119f97..08cb7030742 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Serialized.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Serialized.php
@@ -19,12 +19,13 @@ class Serialized extends \Magento\Framework\App\Config\Value
     }
 
     /**
-     * @return void
+     * @return $this
      */
     public function beforeSave()
     {
         if (is_array($this->getValue())) {
             $this->setValue(serialize($this->getValue()));
         }
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php b/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
index cdfd0653ec7..2a012697da3 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Serialized/ArraySerialized.php
@@ -15,7 +15,7 @@ class ArraySerialized extends \Magento\Config\Model\Config\Backend\Serialized
     /**
      * Unset array element with '__empty' key
      *
-     * @return void
+     * @return $this
      */
     public function beforeSave()
     {
@@ -24,6 +24,6 @@ class ArraySerialized extends \Magento\Config\Model\Config\Backend\Serialized
             unset($value['__empty']);
         }
         $this->setValue($value);
-        parent::beforeSave();
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Store.php b/app/code/Magento/Config/Model/Config/Backend/Store.php
index 85c10c62a18..bf34f2aa09d 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Store.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Store.php
@@ -20,6 +20,7 @@ class Store extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,17 +30,18 @@ class Store extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_mutableConfig = $mutableConfig;
     }
 
     /**
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
@@ -49,5 +51,6 @@ class Store extends \Magento\Framework\App\Config\Value
             \Magento\Store\Model\ScopeInterface::SCOPE_STORE
         );
         $this->_cacheManager->clean();
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Model/Config/Backend/Translate.php b/app/code/Magento/Config/Model/Config/Backend/Translate.php
index e91a44e91ae..665a7e68e1a 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Translate.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Translate.php
@@ -3,77 +3,24 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+namespace Magento\Rss\Model\System\Config\Backend;
 
 /**
- * System config translate inline fields backend model
+ * Cache cleaner backend model
+ *
  */
-namespace Magento\Config\Model\Config\Backend;
-
-class Translate extends \Magento\Framework\App\Config\Value
+class Links extends \Magento\Framework\App\Config\Value
 {
     /**
-     * @var \Magento\Framework\App\Cache\TypeListInterface
-     */
-    protected $_cacheTypeList;
-
-    /**
-     * Path to config node with list of caches
-     *
-     * @var string
-     */
-    const XML_PATH_INVALID_CACHES = 'dev/translate_inline/invalid_caches';
-
-    /**
-     * Core store config
-     *
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface
-     */
-    protected $_scopeConfig;
-
-    /**
-     * Constructor
-     *
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
-        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_scopeConfig = $scopeConfig;
-        $this->_cacheTypeList = $cacheTypeList;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
-    /**
-     * Set status 'invalidate' for blocks and other output caches
+     * Invalidate cache type, when value was changed
      *
      * @return $this
      */
     public function afterSave()
     {
-        $types = array_keys(
-            $this->_scopeConfig->getValue(
-                self::XML_PATH_INVALID_CACHES,
-                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-            )
-        );
         if ($this->isValueChanged()) {
-            $this->_cacheTypeList->invalidate($types);
+            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
         }
-
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
index 38b195ac336..8f9d418356e 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/BaseurlTest.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Config\Test\Unit\Model\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Store\Model\StoreManagerInterface;
 use Magento\Store\Model\Store;
 
@@ -12,25 +13,8 @@ class BaseurlTest extends \PHPUnit_Framework_TestCase
 {
     public function testSaveMergedJsCssMustBeCleaned()
     {
-        $eventDispatcher = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
-        $appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
-        $cacheManager = $this->getMock('Magento\Framework\App\CacheInterface');
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $actionValidatorMock = $this->getMock(
-            'Magento\Framework\Model\ActionValidator\RemoveAction',
-            [],
-            [],
-            '',
-            false
-        );
 
-        $context = new \Magento\Framework\Model\Context(
-            $logger,
-            $eventDispatcher,
-            $cacheManager,
-            $appState,
-            $actionValidatorMock
-        );
+        $context = (new ObjectManager($this))->getObject('Magento\Framework\Model\Context');
 
         $resource = $this->getMock('Magento\Config\Model\ResourceModel\Config\Data', [], [], '', false);
         $resource->expects($this->any())->method('addCommitCallback')->will($this->returnValue($resource));
@@ -40,12 +24,18 @@ class BaseurlTest extends \PHPUnit_Framework_TestCase
         $mergeService = $this->getMock('Magento\Framework\View\Asset\MergeService', [], [], '', false);
         $coreRegistry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
         $coreConfig = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
-
+        $cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $model = $this->getMock(
             'Magento\Config\Model\Config\Backend\Baseurl',
             ['getOldValue'],
-            [$context, $coreRegistry, $coreConfig, $mergeService, $resource, $resourceCollection]
+            [$context, $coreRegistry, $coreConfig, $cacheTypeListMock, $mergeService, $resource, $resourceCollection]
         );
+        $cacheTypeListMock->expects($this->once())
+            ->method('invalidate')
+            ->with(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER)
+            ->willReturn($model);
         $mergeService->expects($this->once())->method('cleanMergedJsCss');
 
         $model->setValue('http://example.com/')->setPath(Store::XML_PATH_UNSECURE_BASE_URL);
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
index 25280b8967d..16bd95fa825 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/SecureTest.php
@@ -5,28 +5,13 @@
  */
 namespace Magento\Config\Test\Unit\Model\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+
 class SecureTest extends \PHPUnit_Framework_TestCase
 {
     public function testSaveMergedJsCssMustBeCleaned()
     {
-        $eventDispatcher = $this->getMock('Magento\Framework\Event\ManagerInterface', [], [], '', false);
-        $appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
-        $cacheManager = $this->getMock('Magento\Framework\App\CacheInterface');
-        $logger = $this->getMock('Psr\Log\LoggerInterface');
-        $actionValidatorMock = $this->getMock(
-            '\Magento\Framework\Model\ActionValidator\RemoveAction',
-            [],
-            [],
-            '',
-            false
-        );
-        $context = new \Magento\Framework\Model\Context(
-            $logger,
-            $eventDispatcher,
-            $cacheManager,
-            $appState,
-            $actionValidatorMock
-        );
+        $context = (new ObjectManager($this))->getObject('Magento\Framework\Model\Context');
 
         $resource = $this->getMock('Magento\Config\Model\ResourceModel\Config\Data', [], [], '', false);
         $resource->expects($this->any())->method('addCommitCallback')->will($this->returnValue($resource));
@@ -36,12 +21,19 @@ class SecureTest extends \PHPUnit_Framework_TestCase
         $mergeService = $this->getMock('Magento\Framework\View\Asset\MergeService', [], [], '', false);
         $coreRegistry = $this->getMock('Magento\Framework\Registry', [], [], '', false);
         $coreConfig = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
+        $cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
 
         $model = $this->getMock(
             'Magento\Config\Model\Config\Backend\Secure',
             ['getOldValue'],
-            [$context, $coreRegistry, $coreConfig, $mergeService, $resource, $resourceCollection]
+            [$context, $coreRegistry, $coreConfig, $cacheTypeListMock, $mergeService, $resource, $resourceCollection]
         );
+        $cacheTypeListMock->expects($this->once())
+            ->method('invalidate')
+            ->with(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER)
+            ->willReturn($model);
         $mergeService->expects($this->once())->method('cleanMergedJsCss');
 
         $model->setValue('new_value');
diff --git a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
index 5a2c469bf10..4ed7d555234 100644
--- a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Contact\Test\Unit\Model\System\Config\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+
 class LinksTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -14,13 +16,7 @@ class LinksTest extends \PHPUnit_Framework_TestCase
 
     public function setUp()
     {
-        $this->_model = new \Magento\Contact\Model\System\Config\Backend\Links(
-            $this->getMock('\Magento\Framework\Model\Context', [], [], '', false),
-            $this->getMock('\Magento\Framework\Registry', [], [], '', false),
-            $this->getMockForAbstractClass('\Magento\Framework\App\Config\ScopeConfigInterface', [], '', false),
-            $this->getMockForAbstractClass('\Magento\Framework\Model\ModelResource\AbstractResource', [], '', false),
-            $this->getMock('\Magento\Framework\Data\Collection\AbstractDb', [], [], '', false)
-        );
+        $this->_model = (new ObjectManager($this))->getObject('Magento\Contact\Model\System\Config\Backend\Links');
     }
 
     public function testGetIdentities()
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
index 0d8fb666c75..d656941e6da 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php
@@ -17,6 +17,7 @@ class Domain extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Domain extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
index 3170aadb8f5..b5b5a4d3ec3 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php
@@ -17,6 +17,7 @@ class Lifetime extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,19 +28,20 @@ class Lifetime extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Validate a domain name value
      *
-     * @return void
+     * @return $this
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function beforeSave()
@@ -50,5 +52,6 @@ class Lifetime extends \Magento\Framework\App\Config\Value
             $msg = __('Invalid cookie lifetime: ' . join('; ', $this->configValidator->getMessages()));
             throw new \Magento\Framework\Exception\LocalizedException($msg);
         }
+        return parent::beforeSave();
     }
 }
diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Path.php b/app/code/Magento/Cookie/Model/Config/Backend/Path.php
index 7130085fbd8..bc2661e4657 100644
--- a/app/code/Magento/Cookie/Model/Config/Backend/Path.php
+++ b/app/code/Magento/Cookie/Model/Config/Backend/Path.php
@@ -17,6 +17,7 @@ class Path extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Path extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->configValidator = $configValidator;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
index 7427d72f392..fc1989ef261 100644
--- a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
+++ b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php
@@ -37,6 +37,7 @@ class Alert extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -47,6 +48,7 @@ class Alert extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -55,11 +57,13 @@ class Alert extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * {@inheritdoc}
+     *
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -97,5 +101,7 @@ class Alert extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the cron expression.'));
         }
+
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
index c49176ab625..13e59f4d730 100644
--- a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
+++ b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php
@@ -37,6 +37,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -47,6 +48,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -55,11 +57,11 @@ class Sitemap extends \Magento\Framework\App\Config\Value
     ) {
         $this->_runModelPath = $runModelPath;
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return void
+     * @return $this
      * @throws \Exception
      */
     public function afterSave()
@@ -97,5 +99,6 @@ class Sitemap extends \Magento\Framework\App\Config\Value
         } catch (\Exception $e) {
             throw new \Exception(__('We can\'t save the cron expression.'));
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
index 014c25e8ea9..dd149276adf 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php
@@ -26,6 +26,7 @@ class Street extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class Street extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class Street extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_storeManager = $storeManager;
     }
 
@@ -71,7 +73,7 @@ class Street extends \Magento\Framework\App\Config\Value
                 break;
         }
         $attribute->save();
-        return $this;
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
index 2c39ad5de00..363fe4cd200 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php
@@ -16,6 +16,7 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -25,13 +26,14 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
index 2957d9ae35f..a4a9b336e9c 100644
--- a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
+++ b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php
@@ -26,6 +26,7 @@ class Customer extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Eav\Model\Config $eavConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class Customer extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Eav\Model\Config $eavConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class Customer extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->_eavConfig = $eavConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->storeManager = $storeManager;
     }
 
diff --git a/app/code/Magento/Customer/Model/Config/Share.php b/app/code/Magento/Customer/Model/Config/Share.php
index 5c8010c95b2..f7e6be108a9 100644
--- a/app/code/Magento/Customer/Model/Config/Share.php
+++ b/app/code/Magento/Customer/Model/Config/Share.php
@@ -40,6 +40,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -50,6 +51,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Customer\Model\ResourceModel\Customer $customerResource,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -58,7 +60,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram
     ) {
         $this->_storeManager = $storeManager;
         $this->_customerResource = $customerResource;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
index e4552761129..19852067353 100644
--- a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
+++ b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php
@@ -30,6 +30,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Message\ManagerInterface $messageManager
      * @param \Magento\Framework\Escaper $escaper
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -40,6 +41,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Message\ManagerInterface $messageManager,
         \Magento\Framework\Escaper $escaper,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -48,7 +50,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value
     ) {
         $this->messageManager = $messageManager;
         $this->escaper = $escaper;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
index f072d2114d6..f70ffd207dd 100644
--- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
+++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php
@@ -26,6 +26,7 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory
      * @param \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,13 +37,14 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory,
         \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
 
         $this->_validatorFactory = $validatorFactory;
         $this->_validatorComposite = $validatorCompositeFactory->create();
diff --git a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
index 95f4d6c2165..0b1ebbd8317 100644
--- a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
+++ b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php
@@ -18,6 +18,7 @@ class Database extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\MediaStorage\Helper\File\Storage $coreFileStorage
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -27,13 +28,14 @@ class Database extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\MediaStorage\Helper\File\Storage $coreFileStorage,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_coreFileStorage = $coreFileStorage;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -46,6 +48,6 @@ class Database extends \Magento\Framework\App\Config\Value
         $helper = $this->_coreFileStorage;
         $helper->getStorageModel(null, ['init' => true]);
 
-        return $this;
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
index e48b75956b3..605afa75833 100644
--- a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
+++ b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php
@@ -23,6 +23,7 @@ class Tablerate extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -32,22 +33,24 @@ class Tablerate extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_tablerateFactory = $tablerateFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
-     * @return \Magento\Framework\Model\AbstractModel|void
+     * @return $this
      */
     public function afterSave()
     {
         /** @var \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate $tableRate */
         $tableRate = $this->_tablerateFactory->create();
         $tableRate->uploadAndImport($this);
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
index 5edc101cc02..48569dd3bc3 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php
@@ -10,6 +10,8 @@ use Magento\Framework\Filesystem\DirectoryList;
 
 /**
  * Backend model for saving certificate file in case of using certificate based authentication
+ *
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 class Cert extends \Magento\Framework\App\Config\Value
 {
@@ -32,6 +34,7 @@ class Cert extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Paypal\Model\CertFactory $certFactory
      * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
      * @param \Magento\Framework\Filesystem $filesystem
@@ -43,6 +46,7 @@ class Cert extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Paypal\Model\CertFactory $certFactory,
         \Magento\Framework\Encryption\EncryptorInterface $encryptor,
         \Magento\Framework\Filesystem $filesystem,
@@ -53,7 +57,7 @@ class Cert extends \Magento\Framework\App\Config\Value
         $this->_certFactory = $certFactory;
         $this->_encryptor = $encryptor;
         $this->_tmpDirectory = $filesystem->getDirectoryRead(DirectoryList::SYS_TMP);
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
index dda1f596559..0603fe3ee40 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php
@@ -20,6 +20,7 @@ class Cron extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -29,13 +30,14 @@ class Cron extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\App\Config\ValueFactory $configValueFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_configValueFactory = $configValueFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
index bef8a6e42b4..d02e68e1bf0 100644
--- a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
+++ b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php
@@ -26,6 +26,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Directory\Helper\Data $directoryHelper
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -36,6 +37,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
         \Magento\Directory\Helper\Data $directoryHelper,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -43,7 +45,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value
         array $data = []
     ) {
         $this->directoryHelper = $directoryHelper;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->_storeManager = $storeManager;
     }
 
diff --git a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
index c86f176a373..665a7e68e1a 100644
--- a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
+++ b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php
@@ -11,42 +11,16 @@ namespace Magento\Rss\Model\System\Config\Backend;
  */
 class Links extends \Magento\Framework\App\Config\Value
 {
-    /**
-     * @var \Magento\Framework\App\Cache\TypeListInterface
-     */
-    protected $_cacheTypeList;
-
-    /**
-     * @param \Magento\Framework\Model\Context $context
-     * @param \Magento\Framework\Registry $registry
-     * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
-     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Framework\Model\Context $context,
-        \Magento\Framework\Registry $registry,
-        \Magento\Framework\App\Config\ScopeConfigInterface $config,
-        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
-        \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
-        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
-        array $data = []
-    ) {
-        $this->_cacheTypeList = $cacheTypeList;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
-    }
-
     /**
      * Invalidate cache type, when value was changed
      *
-     * @return void
+     * @return $this
      */
     public function afterSave()
     {
         if ($this->isValueChanged()) {
-            $this->_cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
+            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
         }
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Tax/Model/Config/Notification.php b/app/code/Magento/Tax/Model/Config/Notification.php
index 1c830caee47..25b1cde5df6 100644
--- a/app/code/Magento/Tax/Model/Config/Notification.php
+++ b/app/code/Magento/Tax/Model/Config/Notification.php
@@ -21,6 +21,7 @@ class Notification extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -30,19 +31,20 @@ class Notification extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config $resourceConfig,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->resourceConfig = $resourceConfig;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Prepare and store cron settings after save
      *
-     * @return \Magento\Tax\Model\Config\Notification
+     * @return $this
      */
     public function afterSave()
     {
@@ -50,7 +52,7 @@ class Notification extends \Magento\Framework\App\Config\Value
             $this->_resetNotificationFlag(\Magento\Tax\Model\Config::XML_PATH_TAX_NOTIFICATION_IGNORE_DISCOUNT);
             $this->_resetNotificationFlag(\Magento\Tax\Model\Config::XML_PATH_TAX_NOTIFICATION_IGNORE_PRICE_DISPLAY);
         }
-        return parent::afterSave($this);
+        return parent::afterSave();
     }
 
     /**
diff --git a/app/code/Magento/Tax/Model/Config/TaxClass.php b/app/code/Magento/Tax/Model/Config/TaxClass.php
index 2d2503c8c3e..2d47f9aae7b 100644
--- a/app/code/Magento/Tax/Model/Config/TaxClass.php
+++ b/app/code/Magento/Tax/Model/Config/TaxClass.php
@@ -24,6 +24,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
      * @param \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
@@ -34,6 +35,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Config\Model\ResourceModel\Config $resourceConfig,
         \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
@@ -42,15 +44,15 @@ class TaxClass extends \Magento\Framework\App\Config\Value
     ) {
         $this->resourceConfig = $resourceConfig;
         $this->attributeFactory = $attributeFactory;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
      * Update the default product tax class
      *
-     * @return \Magento\Tax\Model\Config\TaxClass
+     * @return $this
      */
-    protected function _afterSave()
+    public function afterSave()
     {
         $attributeCode = "tax_class_id";
 
@@ -62,6 +64,6 @@ class TaxClass extends \Magento\Framework\App\Config\Value
         $attribute->setData("default_value", $this->getData('value'));
         $attribute->save();
 
-        return parent::_afterSave($this);
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
index 948f64ef6a7..44a2e63bc7f 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php
@@ -22,6 +22,7 @@ class Exceptions extends ArraySerialized
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\DesignInterface $design
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
@@ -31,13 +32,14 @@ class Exceptions extends ArraySerialized
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\DesignInterface $design,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_design = $design;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index 5e85a547c37..d77f694b4b4 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,28 +16,37 @@ class Theme extends Value
      */
     protected $_design = null;
 
+    /**
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
+
     /**
      * Initialize dependencies
      *
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\View\DesignInterface $design
-     * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
      * @param array $data
      */
     public function __construct(
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\View\DesignInterface $design,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_design = $design;
-        parent::__construct($context, $registry, $config, $resource, $resourceCollection, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
@@ -53,4 +62,26 @@ class Theme extends Value
         }
         return parent::beforeSave();
     }
+
+    /**
+     * {@inheritdoc}
+     *
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
+     *
+     * @return $this
+     */
+    public function afterSave()
+    {
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
+        if ($this->isValueChanged()) {
+            $this->cacheTypeList->invalidate($types);
+        }
+
+        return parent::afterSave();
+    }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
index 47a9acad4ee..74760ac7a77 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ExceptionsTest.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Theme\Test\Unit\Model\Design\Backend;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Theme\Model\Design\Backend\Exceptions;
 use Magento\Framework\App\Area;
 
@@ -18,60 +19,29 @@ class ExceptionsTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
-
-    /**
-     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $registry;
-
-    /**
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $config;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $design;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resource;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design\Collection|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resourceCollection;
+    protected $designMock;
 
     protected function setUp()
     {
-        $this->context = $this->getMockBuilder('Magento\Framework\Model\Context')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->registry = $this->getMockBuilder('Magento\Framework\Registry')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->config = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
-        $this->design = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-        $this->resource = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->resourceCollection = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design\Collection')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->context->expects($this->once())
+        $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
 
-        $this->model = new Exceptions(
-            $this->context,
-            $this->registry,
-            $this->config,
-            $this->design,
-            $this->resource,
-            $this->resourceCollection
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Theme\Model\Design\Backend\Exceptions',
+            [
+                'context' => $this->contextMock,
+                'design' => $this->designMock,
+            ]
         );
     }
 
@@ -86,7 +56,7 @@ class ExceptionsTest extends \PHPUnit_Framework_TestCase
     public function testBeforeSave()
     {
         $value = ['__empty' => '', 'test' => ['search' => '1qwe', 'value' => '#val#', 'regexp' => '[a-zA-Z0-9]*']];
-        $this->design->expects($this->once())
+        $this->designMock->expects($this->once())
             ->method('setDesignTheme')
             ->with('#val#', Area::AREA_FRONTEND);
         $this->model->setValue($value);
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index f6ac670502a..14e25f82611 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -7,6 +7,7 @@
 namespace Magento\Theme\Test\Unit\Model\Design\Backend;
 
 use Magento\Framework\App\Area;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Theme\Model\Design\Backend\Theme;
 
 class ThemeTest extends \PHPUnit_Framework_TestCase
@@ -19,60 +20,29 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
-
-    /**
-     * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $registry;
-
-    /**
-     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $config;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $design;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resource;
-
-    /**
-     * @var \Magento\Theme\Model\ResourceModel\Design\Collection|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $resourceCollection;
+    protected $designMock;
 
     protected function setUp()
     {
-        $this->context = $this->getMockBuilder('Magento\Framework\Model\Context')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->registry = $this->getMockBuilder('Magento\Framework\Registry')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->config = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
-        $this->design = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-        $this->resource = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->resourceCollection = $this->getMockBuilder('Magento\Theme\Model\ResourceModel\Design\Collection')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->context->expects($this->once())
+        $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
 
-        $this->model = new Theme(
-            $this->context,
-            $this->registry,
-            $this->config,
-            $this->design,
-            $this->resource,
-            $this->resourceCollection
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Theme\Model\Design\Backend\Theme',
+            [
+                'design' => $this->designMock,
+                'context' => $this->contextMock,
+            ]
         );
     }
 
@@ -84,7 +54,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     public function testBeforeSave()
     {
-        $this->design->expects($this->once())
+        $this->designMock->expects($this->once())
             ->method('setDesignTheme')
             ->with('some_value', Area::AREA_FRONTEND);
         $this->model->setValue('some_value');
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 332043e56df..4f25cd7e2ab 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,6 +8,11 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
+            <invalid_caches>
+                <block_html />
+                <layout />
+                <translate />
+            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
diff --git a/lib/internal/Magento/Framework/App/Config/Value.php b/lib/internal/Magento/Framework/App/Config/Value.php
index 1065c8f1f19..629b066aa35 100644
--- a/lib/internal/Magento/Framework/App/Config/Value.php
+++ b/lib/internal/Magento/Framework/App/Config/Value.php
@@ -42,10 +42,16 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
      */
     protected $_config;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface
+     */
+    protected $cacheTypeList;
+
     /**
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
+     * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
      * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource
      * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
      * @param array $data
@@ -54,12 +60,14 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         \Magento\Framework\Model\Context $context,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\App\Config\ScopeConfigInterface $config,
+        \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
         \Magento\Framework\Model\ModelResource\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
         $this->_config = $config;
         parent::__construct($context, $registry, $resource, $resourceCollection, $data);
+        $this->cacheTypeList = $cacheTypeList;
     }
 
     /**
@@ -107,4 +115,20 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         $data = $this->_getData('fieldset_data');
         return is_array($data) && isset($data[$key]) ? $data[$key] : null;
     }
+
+    /**
+     * {@inheritdoc}
+     *
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for config caches
+     *
+     * @return $this
+     */
+    public function afterSave()
+    {
+        if ($this->isValueChanged()) {
+            $this->cacheTypeList->invalidate(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER);
+        }
+
+        return parent::afterSave();
+    }
 }
-- 
GitLab


From 323630196ea4fd0e7a856aa6be458783749c8ccc Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Tue, 13 Oct 2015 15:12:16 -0500
Subject: [PATCH 016/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Model/Config/Backend/Currency/Allow.php   |  2 +-
 .../Model/Config/Backend/Currency/Base.php    |  2 +-
 .../Config/Model/Config/Backend/Translate.php | 26 ++++++++++++++-----
 .../Model/Config/Backend/ManagestockTest.php  |  1 +
 .../Config/Backend/Image/AdapterTest.php      |  1 +
 .../Model/Config/Backend/DomainTest.php       |  1 +
 .../Model/Config/Backend/AllowedIpsTest.php   |  1 +
 7 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
index fecb0710472..61ed9ef5266 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php
@@ -38,7 +38,7 @@ class Allow extends AbstractCurrency
         array $data = []
     ) {
         $this->_localeCurrency = $localeCurrency;
-        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
     }
 
     /**
diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
index fe32b71564f..abff700c120 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php
@@ -35,7 +35,7 @@ class Base extends AbstractCurrency
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        parent::__construct($context, $registry, $config, $cacheTypeList, $resourceCollection, $resource, $data);
+        parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
         $this->currencyFactory = $currencyFactory;
     }
 
diff --git a/app/code/Magento/Config/Model/Config/Backend/Translate.php b/app/code/Magento/Config/Model/Config/Backend/Translate.php
index 665a7e68e1a..6f6ae7071c7 100644
--- a/app/code/Magento/Config/Model/Config/Backend/Translate.php
+++ b/app/code/Magento/Config/Model/Config/Backend/Translate.php
@@ -3,24 +3,38 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Rss\Model\System\Config\Backend;
 
 /**
- * Cache cleaner backend model
- *
+ * System config translate inline fields backend model
  */
-class Links extends \Magento\Framework\App\Config\Value
+namespace Magento\Config\Model\Config\Backend;
+
+class Translate extends \Magento\Framework\App\Config\Value
 {
     /**
-     * Invalidate cache type, when value was changed
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'dev/translate_inline/invalid_caches';
+
+    /**
+     * Set status 'invalidate' for blocks and other output caches
      *
      * @return $this
      */
     public function afterSave()
     {
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
         if ($this->isValueChanged()) {
-            $this->cacheTypeList->invalidate(\Magento\Framework\View\Element\AbstractBlock::CACHE_GROUP);
+            $this->cacheTypeList->invalidate($types);
         }
+
         return parent::afterSave();
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
index 07fcc69d89c..8f63143bddc 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogInventory/Model/Config/Backend/ManagestockTest.php
@@ -54,6 +54,7 @@ class ManagestockTest extends \PHPUnit_Framework_TestCase
             Bootstrap::getObjectManager()->get('Magento\Framework\Model\Context'),
             Bootstrap::getObjectManager()->get('Magento\Framework\Registry'),
             Bootstrap::getObjectManager()->get('Magento\Framework\App\Config\ScopeConfigInterface'),
+            Bootstrap::getObjectManager()->get('Magento\Framework\App\Cache\TypeListInterface'),
             $stockManagement,
             Bootstrap::getObjectManager()->get('Magento\CatalogInventory\Model\Indexer\Stock\Processor'),
             Bootstrap::getObjectManager()->get('Magento\Config\Model\ResourceModel\Config')
diff --git a/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php b/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
index fc7c961049d..3bdc1817762 100644
--- a/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
+++ b/dev/tests/integration/testsuite/Magento/Config/Model/Config/Backend/Image/AdapterTest.php
@@ -18,6 +18,7 @@ class AdapterTest extends \PHPUnit_Framework_TestCase
         $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Config\Model\Config\Backend\Image\Adapter'
         );
+        $this->_model->setPath('path');
     }
 
     /**
diff --git a/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php b/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
index 7f469f42e7b..5f24039ee05 100644
--- a/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
+++ b/dev/tests/integration/testsuite/Magento/Cookie/Model/Config/Backend/DomainTest.php
@@ -27,6 +27,7 @@ class DomainTest extends \PHPUnit_Framework_TestCase
             'Magento\Cookie\Model\Config\Backend\Domain'
         );
         $domain->setValue($value);
+        $domain->setPath('path');
         try {
             $domain->save();
             if ($exceptionMessage) {
diff --git a/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php b/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
index d34c64a96dc..3b23c65d06b 100644
--- a/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
+++ b/dev/tests/integration/testsuite/Magento/Developer/Model/Config/Backend/AllowedIpsTest.php
@@ -22,6 +22,7 @@ class AllowedIpsTest extends \PHPUnit_Framework_TestCase
             'Magento\Developer\Model\Config\Backend\AllowedIps'
         );
         $model->setValue($value);
+        $model->setPath('path');
         $model->beforeSave();
         $model->save();
         $this->assertEquals($expected, $model->getValue());
-- 
GitLab


From d6189dd4c6bb4c149b2f9bdbd71d03ac58cfa1ef Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 14 Oct 2015 15:40:25 -0500
Subject: [PATCH 017/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Unit/Model/Design/Backend/ThemeTest.php   | 56 +++++++++++++++++++
 .../App/Test/Unit/Config/ValueTest.php        | 43 ++++++++++++--
 2 files changed, 94 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 14e25f82611..e83a4e4ca30 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -27,21 +27,37 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $designMock;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheTypeListMock;
+
+    /**
+     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $configMock;
+
     protected function setUp()
     {
         $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
+        $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $this->contextMock->expects($this->once())
             ->method('getEventDispatcher')
             ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
+        $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
         $this->model = (new ObjectManager($this))->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
                 'context' => $this->contextMock,
+                'cacheTypeList' => $this->cacheTypeListMock,
+                'config' => $this->configMock,
             ]
         );
     }
@@ -60,4 +76,44 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->beforeSave());
     }
+
+    /**
+     * @param int $callNumber
+     * @param string $oldValue
+     * @dataProvider afterSaveDataProvider
+     */
+    public function testAfterSave($callNumber, $oldValue)
+    {
+        $this->cacheTypeListMock->expects($this->exactly($callNumber))
+            ->method('invalidate');
+        $this->configMock->expects($this->any())
+            ->method('getValue')
+            ->willReturnMap(
+                [
+                    [
+                        Theme::XML_PATH_INVALID_CACHES,
+                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                        null,
+                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
+                    ],
+                    [
+                        null,
+                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
+                        null,
+                        $oldValue
+                    ],
+
+                ]
+            );
+        $this->model->setValue('some_value');
+        $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
+    }
+
+    public function afterSaveDataProvider()
+    {
+        return [
+            [0, 'some_value'],
+            [2, 'other_value'],
+        ];
+    }
 }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
index db103705fef..175509af622 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/ValueTest.php
@@ -15,27 +15,36 @@ class ValueTest extends \PHPUnit_Framework_TestCase
     /**
      * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $eventManager;
+    protected $eventManagerMock;
 
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $configMock;
 
+    /**
+     * @var \Magento\Framework\App\Cache\TypeListInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheTypeListMock;
+
     /**
      * @return void
      */
     protected function setUp()
     {
         $this->configMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
-        $this->eventManager = $this->getMock('Magento\Framework\Event\ManagerInterface');
+        $this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface');
+        $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
 
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $this->model = $objectManager->getObject(
             'Magento\Framework\App\Config\Value',
             [
                 'config' => $this->configMock,
-                'eventDispatcher' => $this->eventManager,
+                'eventDispatcher' => $this->eventManagerMock,
+                'cacheTypeList' => $this->cacheTypeListMock,
             ]
         );
     }
@@ -99,7 +108,7 @@ class ValueTest extends \PHPUnit_Framework_TestCase
      */
     public function testAfterLoad()
     {
-        $this->eventManager->expects(
+        $this->eventManagerMock->expects(
             $this->at(0)
         )->method(
             'dispatch'
@@ -107,7 +116,7 @@ class ValueTest extends \PHPUnit_Framework_TestCase
             'model_load_after',
             ['object' => $this->model]
         );
-        $this->eventManager->expects(
+        $this->eventManagerMock->expects(
             $this->at(1)
         )->method(
             'dispatch'
@@ -158,4 +167,28 @@ class ValueTest extends \PHPUnit_Framework_TestCase
             ],
         ];
     }
+
+    /**
+     * @param int $callNumber
+     * @param string $oldValue
+     * @dataProvider afterSaveDataProvider
+     */
+    public function testAfterSave($callNumber, $oldValue)
+    {
+        $this->cacheTypeListMock->expects($this->exactly($callNumber))
+            ->method('invalidate');
+        $this->configMock->expects($this->any())
+            ->method('getValue')
+            ->willReturn($oldValue);
+        $this->model->setValue('some_value');
+        $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
+    }
+
+    public function afterSaveDataProvider()
+    {
+        return [
+            [0, 'some_value'],
+            [1, 'other_value'],
+        ];
+    }
 }
-- 
GitLab


From 032004cf6fa432260085ff6b1572325ddde5ae03 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Thu, 15 Oct 2015 18:02:38 +0300
Subject: [PATCH 018/162] MAGETWO-43929: Regression scope functional tests
 maintenance

---
 .../AssertGiftMessageInBackendOrder.php       | 19 +++++++++++++++----
 .../AssertGiftMessageInFrontendOrderItems.php | 10 +++++++++-
 .../TestCase/CheckoutWithGiftMessagesTest.xml |  1 +
 .../TestStep/AddGiftMessageBackendStep.php    | 13 ++++++++-----
 .../Magento/GiftMessage/Test/etc/testcase.xml |  3 +--
 .../Test/Block/Adminhtml/Order/Create.php     | 10 +++++++++-
 .../Adminhtml/Order/Create/Billing/Method.php |  2 --
 .../Order/Create/Shipping/Method.php          |  2 --
 8 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php
index 7ebe75449ad..32447e0181a 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInBackendOrder.php
@@ -10,6 +10,7 @@ use Magento\GiftMessage\Test\Fixture\GiftMessage;
 use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
 use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
 use Magento\Mtf\Constraint\AbstractAssertForm;
+use Magento\Mtf\Fixture\FixtureFactory;
 
 /**
  * Assert that message from dataset is displayed on order(s) view page on backend.
@@ -34,6 +35,7 @@ class AssertGiftMessageInBackendOrder extends AbstractAssertForm
      * @param GiftMessage $giftMessage
      * @param SalesOrderView $salesOrderView
      * @param OrderIndex $orderIndex
+     * @param FixtureFactory $fixtureFactory
      * @param array $products
      * @param string $orderId
      * @return void
@@ -42,6 +44,7 @@ class AssertGiftMessageInBackendOrder extends AbstractAssertForm
         GiftMessage $giftMessage,
         SalesOrderView $salesOrderView,
         OrderIndex $orderIndex,
+        FixtureFactory $fixtureFactory,
         array $products,
         $orderId
     ) {
@@ -49,12 +52,20 @@ class AssertGiftMessageInBackendOrder extends AbstractAssertForm
         $actualData = [];
         $orderIndex->open()->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]);
 
-        if ($giftMessage->getAllowGiftMessagesForOrder()) {
-            $expectedData[] = $giftMessage->getData();
-            $actualData[] = $salesOrderView->getGiftOptionsBlock()->getData($giftMessage);
+        if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') {
+            $formData = [
+                'sender' => $giftMessage->getSender(),
+                'recipient' => $giftMessage->getRecipient(),
+                'message' => $giftMessage->getMessage()
+            ];
+            $giftMessageForm = $fixtureFactory->createByCode('giftMessage', ['data' => $formData]);
+
+            $expectedData[] = $giftMessageForm->getData();
+            $actualData[] = $salesOrderView->getGiftOptionsBlock()->getData($giftMessageForm);
+
         }
 
-        if ($giftMessage->getAllowGiftOptionsForItems()) {
+        if ($giftMessage->getAllowGiftOptionsForItems() === 'Yes') {
             foreach ($giftMessage->getItems() as $key => $giftMessageItem) {
                 $expectedData[] = $giftMessageItem->getData();
                 $product = $products[$key];
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
index c5fea6f7719..9adbac82bef 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Constraint/AssertGiftMessageInFrontendOrderItems.php
@@ -53,7 +53,15 @@ class AssertGiftMessageInFrontendOrderItems extends AbstractConstraint
         $orderHistory->open();
         $orderHistory->getOrderHistoryBlock()->openOrderById($orderId);
 
-        foreach ($products as $product) {
+        foreach ($giftMessage->getItems() as $key => $itemGiftMessage) {
+            $product = $products[$key];
+            if ($giftMessage->hasData('items')) {
+                $expectedData = [
+                    'sender' => $itemGiftMessage->getSender(),
+                    'recipient' => $itemGiftMessage->getRecipient(),
+                    'message' => $itemGiftMessage->getMessage(),
+                ];
+            }
             if ($product->getProductHasWeight() !== 'Yes') {
                 $expectedData = [];
             }
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
index 1937fd24c0c..d91f2b5a101 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestCase/CheckoutWithGiftMessagesTest.xml
@@ -37,6 +37,7 @@
             <data name="giftMessage/data/sender" xsi:type="string">John Doe</data>
             <data name="giftMessage/data/recipient" xsi:type="string">Jane Doe</data>
             <data name="giftMessage/data/message" xsi:type="string">text_gift_message</data>
+            <data name="giftMessage/data/items/datasets" xsi:type="string">default</data>
             <data name="payment/method" xsi:type="string">cashondelivery</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" />
             <constraint name="Magento\GiftMessage\Test\Constraint\AssertGiftMessageInFrontendOrderItems" />
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php
index 18848d9e75d..e089fb4bf7c 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageBackendStep.php
@@ -60,12 +60,15 @@ class AddGiftMessageBackendStep implements TestStepInterface
      */
     public function run()
     {
-        if ($this->giftMessage->getAllowGiftMessagesForOrder()) {
-            $this->orderCreateIndex->getGiftMessageForOrderBlock()->fill($this->giftMessage);
+        if ($this->giftMessage->getAllowGiftMessagesForOrder() === 'Yes') {
+            $giftMessageForOrderBlock = $this->orderCreateIndex->getGiftMessageForOrderBlock();
+            $giftMessageForOrderBlock->fill($this->giftMessage);
+            $giftMessageForOrderBlock->waitForElementNotVisible('.loading-mask');
         }
-        if ($this->giftMessage->getAllowGiftOptionsForItems()) {
-            $this->orderCreateIndex->getCreateGiftMessageBlock()
-                ->fillGiftMessageForItems($this->products, $this->giftMessage);
+        if ($this->giftMessage->getAllowGiftOptionsForItems() === 'Yes') {
+            $giftMessageBlock = $this->orderCreateIndex->getCreateGiftMessageBlock();
+            $giftMessageBlock->fillGiftMessageForItems($this->products, $this->giftMessage);
+            $giftMessageBlock->waitForElementNotVisible('.loading-mask');
         }
 
         return ['giftMessage' => $this->giftMessage];
diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
index fcd1c8bf416..b4bf95dc501 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/etc/testcase.xml
@@ -31,8 +31,7 @@
         <step name="selectCustomerOrder" module="Magento_Sales" next="selectStore" />
         <step name="selectStore" module="Magento_Sales" next="addProducts" />
         <step name="addProducts" module="Magento_Sales" next="addGiftMessageBackend" />
-        <step name="addGiftMessageBackend" module="Magento_GiftMessage" next="fillBillingAddress" />
-        <step name="fillBillingAddress" module="Magento_Sales" next="selectPaymentMethodForOrder" />
+        <step name="addGiftMessageBackend" module="Magento_GiftMessage" next="selectPaymentMethodForOrder" />
         <step name="selectPaymentMethodForOrder" module="Magento_Sales" next="selectShippingMethodForOrder" />
         <step name="selectShippingMethodForOrder" module="Magento_Sales" next="submitOrder" />
         <step name="submitOrder" module="Magento_Sales" />
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
index 6eb392b6d8c..5949d930822 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create.php
@@ -101,6 +101,13 @@ class Create extends Block
      */
     protected $accountInformationBlock = '#order-form_account';
 
+    /**
+     * Payment and Shipping methods block.
+     *
+     * @var string
+     */
+    protected $orderMethodsSelector = '#order-methods';
+
     /**
      * Getter for order selected products grid.
      *
@@ -278,6 +285,7 @@ class Create extends Block
      */
     public function selectShippingMethod(array $shippingMethod)
     {
+        $this->_rootElement->find($this->orderMethodsSelector)->click();
         $this->getShippingMethodBlock()->selectShippingMethod($shippingMethod);
         $this->getTemplateBlock()->waitLoader();
     }
@@ -291,7 +299,7 @@ class Create extends Block
     public function selectPaymentMethod(array $paymentCode)
     {
         $this->getTemplateBlock()->waitLoader();
-        $this->_rootElement->click();
+        $this->_rootElement->find($this->orderMethodsSelector)->click();
         $this->getBillingMethodBlock()->selectPaymentMethod($paymentCode);
         $this->getTemplateBlock()->waitLoader();
     }
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php
index 6397d53754a..24b42e5020a 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Billing/Method.php
@@ -35,8 +35,6 @@ class Method extends Block
      */
     public function selectPaymentMethod(array $paymentCode)
     {
-        // Click on rootElement to solve overlapping inner elements by header menu.
-        $this->_rootElement->click();
         $paymentInput = $this->_rootElement->find(sprintf($this->paymentMethod, $paymentCode['method']));
         if ($paymentInput->isVisible()) {
             $paymentInput->click();
diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php
index 4f9877eeca5..25deecd31de 100644
--- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php
+++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/Shipping/Method.php
@@ -36,8 +36,6 @@ class Method extends Block
      */
     public function selectShippingMethod(array $shippingMethod)
     {
-        // Click on rootElement to solve overlapping inner elements by header menu.
-        $this->_rootElement->click();
         $this->_rootElement->find($this->shippingMethodsLink)->click();
         $selector = sprintf(
             $this->shippingMethod,
-- 
GitLab


From 7dfd4afcbed337e04430e18dc55f778861401197 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Thu, 15 Oct 2015 18:24:27 +0300
Subject: [PATCH 019/162] MAGETWO-43929: Regression scope functional tests
 maintenance

---
 .../app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
index e6683a07d4c..9281d05031b 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/Block/Cart/Item/GiftOptions.php
@@ -96,6 +96,7 @@ class GiftOptions extends Form
                         'Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm',
                         ['element' => $this->_rootElement->find($this->giftMessageItemForm)]
                     );
+                    $giftMessage = $giftMessage->getItems()[0];
                     $formData = [
                         'sender' => $giftMessage->getSender(),
                         'recipient' => $giftMessage->getRecipient(),
-- 
GitLab


From 83423597d8335979932d79ac9b4848dd8d4270ff Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Thu, 15 Oct 2015 19:06:40 +0300
Subject: [PATCH 020/162] MAGETWO-43929: Regression scope functional tests
 maintenance

---
 .../GiftMessage/Test/TestStep/AddGiftMessageStep.php        | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php
index 35c7994df9e..6cb87dd9d4a 100644
--- a/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php
+++ b/dev/tests/functional/tests/app/Magento/GiftMessage/Test/TestStep/AddGiftMessageStep.php
@@ -51,14 +51,16 @@ class AddGiftMessageStep implements TestStepInterface
     }
 
     /**
-     * Add gift message to order
+     * Add gift message to items and/or order.
      *
-     * @return void
+     * @return array
      */
     public function run()
     {
         $this->checkoutCart->open();
         $this->checkoutCart->getGiftMessagesItemBlock()->fillGiftMessageItem($this->giftMessage, $this->products);
         $this->checkoutCart->getGiftMessagesOrderBlock()->fillGiftMessageOrder($this->giftMessage, $this->products);
+
+        return ['giftMessage' => $this->giftMessage];
     }
 }
-- 
GitLab


From 2c5ecc7967640c4d6988cac130048db208d44003 Mon Sep 17 00:00:00 2001
From: Ankur Kaneria <akaneria@ebay.com>
Date: Thu, 15 Oct 2015 14:23:43 -0500
Subject: [PATCH 021/162] MAGETWO-44112: [php7]*.htaccess  incompatibility with
 php 7

- Added section to check for php7 module
---
 .htaccess                      | 26 ++++++++++++++++++++++++
 dev/tests/functional/.htaccess | 37 ++++++++++++++++++++++++++++++++++
 pub/.htaccess                  | 26 ++++++++++++++++++++++++
 pub/media/.htaccess            |  5 +++++
 pub/static/.htaccess           |  4 ++++
 5 files changed, 98 insertions(+)

diff --git a/.htaccess b/.htaccess
index a0d1710a8aa..1636ce4bc50 100644
--- a/.htaccess
+++ b/.htaccess
@@ -58,6 +58,32 @@
 
 </IfModule>
 
+<IfModule mod_php7.c>
+
+############################################
+## adjust memory limit
+
+    php_value memory_limit 768M
+    php_value max_execution_time 18000
+
+############################################
+## disable automatic session start
+## before autoload was initialized
+
+    php_flag session.auto_start off
+
+############################################
+## enable resulting html compression
+
+    #php_flag zlib.output_compression on
+
+###########################################
+## disable user agent verification to not break multiple image upload
+
+    php_flag suhosin.session.cryptua off
+
+</IfModule>
+
 <IfModule mod_security.c>
 ###########################################
 ## disable POST processing to not break multiple image upload
diff --git a/dev/tests/functional/.htaccess b/dev/tests/functional/.htaccess
index 0fe8af43b87..b20b4dc2e4e 100644
--- a/dev/tests/functional/.htaccess
+++ b/dev/tests/functional/.htaccess
@@ -63,6 +63,43 @@
 
 </IfModule>
 
+<IfModule mod_php7.c>
+
+############################################
+## adjust memory limit
+
+#    php_value memory_limit 64M
+    php_value memory_limit 256M
+    php_value max_execution_time 18000
+
+############################################
+## disable magic quotes for php request vars
+
+    php_flag magic_quotes_gpc off
+
+############################################
+## disable automatic session start
+## before autoload was initialized
+
+    php_flag session.auto_start off
+
+############################################
+## enable resulting html compression
+
+    #php_flag zlib.output_compression on
+
+###########################################
+# disable user agent verification to not break multiple image upload
+
+    php_flag suhosin.session.cryptua off
+
+###########################################
+# turn off compatibility with PHP4 when dealing with objects
+
+    php_flag zend.ze1_compatibility_mode Off
+
+</IfModule>
+
 <IfModule mod_security.c>
 ###########################################
 # disable POST processing to not break multiple image upload
diff --git a/pub/.htaccess b/pub/.htaccess
index 6e6f63c4358..120d7eb5a08 100644
--- a/pub/.htaccess
+++ b/pub/.htaccess
@@ -57,6 +57,32 @@
 
 </IfModule>
 
+<IfModule mod_php7.c>
+
+############################################
+## adjust memory limit
+
+    php_value memory_limit 256M
+    php_value max_execution_time 18000
+
+############################################
+## disable automatic session start
+## before autoload was initialized
+
+    php_flag session.auto_start off
+
+############################################
+## enable resulting html compression
+
+    #php_flag zlib.output_compression on
+
+###########################################
+# disable user agent verification to not break multiple image upload
+
+    php_flag suhosin.session.cryptua off
+
+</IfModule>
+
 <IfModule mod_security.c>
 ###########################################
 # disable POST processing to not break multiple image upload
diff --git a/pub/media/.htaccess b/pub/media/.htaccess
index f2751570906..865ebd31b52 100644
--- a/pub/media/.htaccess
+++ b/pub/media/.htaccess
@@ -1,8 +1,13 @@
 Options All -Indexes
+
 <IfModule mod_php5.c>
 php_flag engine 0
 </IfModule>
 
+<IfModule mod_php7.c>
+php_flag engine 0
+</IfModule>
+
 AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
 Options -ExecCGI
 
diff --git a/pub/static/.htaccess b/pub/static/.htaccess
index c96881a49c6..56ceaf05709 100644
--- a/pub/static/.htaccess
+++ b/pub/static/.htaccess
@@ -2,6 +2,10 @@
 php_flag engine 0
 </IfModule>
 
+<IfModule mod_php7.c>
+php_flag engine 0
+</IfModule>
+
 # To avoid situation when web server automatically adds extension to path
 Options -MultiViews
 
-- 
GitLab


From b165f7860b4765fd38dd8968a35fd34aaa2d5c20 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 16 Oct 2015 15:59:26 -0500
Subject: [PATCH 022/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 lib/internal/Magento/Framework/App/Config/Value.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/internal/Magento/Framework/App/Config/Value.php b/lib/internal/Magento/Framework/App/Config/Value.php
index 629b066aa35..32bb526b015 100644
--- a/lib/internal/Magento/Framework/App/Config/Value.php
+++ b/lib/internal/Magento/Framework/App/Config/Value.php
@@ -66,8 +66,8 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F
         array $data = []
     ) {
         $this->_config = $config;
-        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
         $this->cacheTypeList = $cacheTypeList;
+        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
     }
 
     /**
-- 
GitLab


From cce202203b96742c7b5045bf89f299078fd5e7d6 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Sat, 17 Oct 2015 13:31:23 +0300
Subject: [PATCH 023/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 app/code/Magento/ConfigurableProduct/Setup/InstallData.php | 1 -
 1 file changed, 1 deletion(-)

diff --git a/app/code/Magento/ConfigurableProduct/Setup/InstallData.php b/app/code/Magento/ConfigurableProduct/Setup/InstallData.php
index 1d6705846db..8b29c11bc2b 100644
--- a/app/code/Magento/ConfigurableProduct/Setup/InstallData.php
+++ b/app/code/Magento/ConfigurableProduct/Setup/InstallData.php
@@ -47,7 +47,6 @@ class InstallData implements InstallDataInterface
             'minimal_price',
             'msrp',
             'msrp_display_actual_price_type',
-            'price',
             'special_price',
             'special_from_date',
             'special_to_date',
-- 
GitLab


From 4c3a9e416bd9e201615771ec8c96863a84787058 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Sat, 17 Oct 2015 16:34:05 +0300
Subject: [PATCH 024/162] =?UTF-8?q?MAGETWO-43627:=20[github]=20Admin=20Pro?=
 =?UTF-8?q?duct=20Page=20is=20broken:=20=C2=ABElement=20with=20ID=20'catal?=
 =?UTF-8?q?og.product.edit.tab.downloadable.links'=20already=20exists?=
 =?UTF-8?q?=C2=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Magento/Backend/Block/Widget/Tabs.php     |  3 ++
 .../Eav/Model/Entity/Attribute/Group.php      | 48 ++++++++++++++++++-
 app/code/Magento/Eav/Setup/EavSetup.php       |  8 ++++
 app/code/Magento/Eav/Setup/InstallSchema.php  |  2 +-
 .../Unit/Model/Entity/Attribute/GroupTest.php |  6 +++
 5 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Backend/Block/Widget/Tabs.php b/app/code/Magento/Backend/Block/Widget/Tabs.php
index e7b21aa01ab..0354554e3e2 100644
--- a/app/code/Magento/Backend/Block/Widget/Tabs.php
+++ b/app/code/Magento/Backend/Block/Widget/Tabs.php
@@ -111,6 +111,9 @@ class Tabs extends \Magento\Backend\Block\Widget
      */
     public function addTab($tabId, $tab)
     {
+        if (empty($tabId)) {
+            throw new \Exception(__('Please correct the tab configuration and try again. Tab Id should be not empry'));
+        }
         if (is_array($tab)) {
             $this->_tabs[$tabId] = new \Magento\Framework\DataObject($tab);
         } elseif ($tab instanceof \Magento\Framework\DataObject) {
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Group.php b/app/code/Magento/Eav/Model/Entity/Attribute/Group.php
index b8c123718f8..b0603a54ebc 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Group.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Group.php
@@ -6,6 +6,8 @@
 
 namespace Magento\Eav\Model\Entity\Attribute;
 
+use Magento\Framework\Api\AttributeValueFactory;
+
 /**
  * @author      Magento Core Team <core@magentocommerce.com>
  *
@@ -23,6 +25,43 @@ namespace Magento\Eav\Model\Entity\Attribute;
 class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements
     \Magento\Eav\Api\Data\AttributeGroupInterface
 {
+    /**
+     * @var \Magento\Framework\Filter\Translit
+     */
+    private $translitFilter;
+
+    /**
+     * @param \Magento\Framework\Model\Context $context
+     * @param \Magento\Framework\Registry $registry
+     * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
+     * @param AttributeValueFactory $customAttributeFactory
+     * @param \Magento\Framework\Filter\Translit $translitFilter
+     * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param array $data
+     */
+    public function __construct(
+        \Magento\Framework\Model\Context $context,
+        \Magento\Framework\Registry $registry,
+        \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
+        AttributeValueFactory $customAttributeFactory,
+        \Magento\Framework\Filter\Translit $translitFilter,
+        \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
+        \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
+        array $data = []
+    ) {
+        parent::__construct(
+            $context,
+            $registry,
+            $extensionFactory,
+            $customAttributeFactory,
+            $resource,
+            $resourceCollection,
+            $data
+        );
+        $this->translitFilter = $translitFilter;
+    }
+
     /**
      * Resource initialization
      *
@@ -66,7 +105,14 @@ class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements
         if (!$this->getAttributeGroupCode()) {
             $groupName = $this->getAttributeGroupName();
             if ($groupName) {
-                $attributeGroupCode = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($groupName)), '-');
+                $attributeGroupCode = trim(
+                    preg_replace(
+                        '/[^a-z0-9]+/',
+                        '-',
+                        $this->translitFilter->filter(strtolower($groupName))
+                    ),
+                    '-'
+                );
                 if (empty($attributeGroupCode)) {
                     // in the following code md5 is not used for security purposes
                     $attributeGroupCode = md5($groupName);
diff --git a/app/code/Magento/Eav/Setup/EavSetup.php b/app/code/Magento/Eav/Setup/EavSetup.php
index a1dba20110f..3c67b8f97b9 100644
--- a/app/code/Magento/Eav/Setup/EavSetup.php
+++ b/app/code/Magento/Eav/Setup/EavSetup.php
@@ -527,6 +527,14 @@ class EavSetup
             if ($sortOrder === null) {
                 $data['sort_order'] = $this->getAttributeGroupSortOrder($entityTypeId, $setId, $sortOrder);
             }
+            if (empty($data['attribute_group_code'])) {
+                $attributeGroupCode = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($name)), '-');
+                if (empty($attributeGroupCode)) {
+                    // in the following code md5 is not used for security purposes
+                    $attributeGroupCode = md5($name);
+                }
+                $data['attribute_group_code'] = $attributeGroupCode;
+            }
             $this->setup->getConnection()->insert($this->setup->getTable('eav_attribute_group'), $data);
         }
 
diff --git a/app/code/Magento/Eav/Setup/InstallSchema.php b/app/code/Magento/Eav/Setup/InstallSchema.php
index 24c041c7e2c..75ae06b1a30 100644
--- a/app/code/Magento/Eav/Setup/InstallSchema.php
+++ b/app/code/Magento/Eav/Setup/InstallSchema.php
@@ -895,7 +895,7 @@ class InstallSchema implements InstallSchemaInterface
             'attribute_group_code',
             \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
             255,
-            ['default' => null],
+            ['nullable' => false],
             'Attribute Group Code'
         )->addColumn(
             'tab_group_code',
diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php
index a9a9eff9b9e..cde8db9b424 100644
--- a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php
+++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php
@@ -34,11 +34,17 @@ class GroupTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
+        $translitFilter = $this->getMockBuilder(\Magento\Framework\Filter\Translit::class)
+            ->disableOriginalConstructor()
+            ->getMock();
+        $translitFilter->expects($this->atLeastOnce())->method('filter')->willReturnArgument(0);
+
         $this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface');
         $contextMock = $this->getMock('Magento\Framework\Model\Context', [], [], '', false);
         $contextMock->expects($this->any())->method('getEventDispatcher')->willReturn($this->eventManagerMock);
         $constructorArguments = [
             'resource' => $this->resourceMock,
+            'translitFilter' => $translitFilter,
             'context' => $contextMock,
         ];
         $objectManager = new ObjectManager($this);
-- 
GitLab


From 90cf850cda455f2b2e8bde4da34f86161055ac91 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Sat, 17 Oct 2015 17:10:27 +0300
Subject: [PATCH 025/162] =?UTF-8?q?MAGETWO-43627:=20[github]=20Admin=20Pro?=
 =?UTF-8?q?duct=20Page=20is=20broken:=20=C2=ABElement=20with=20ID=20'catal?=
 =?UTF-8?q?og.product.edit.tab.downloadable.links'=20already=20exists?=
 =?UTF-8?q?=C2=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Magento/Catalog/Model/Product/Attribute/Group.php     | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Group.php b/app/code/Magento/Catalog/Model/Product/Attribute/Group.php
index ba141dc370c..4fb0b521c22 100644
--- a/app/code/Magento/Catalog/Model/Product/Attribute/Group.php
+++ b/app/code/Magento/Catalog/Model/Product/Attribute/Group.php
@@ -18,13 +18,15 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group
     protected $_attributeCollectionFactory;
 
     /**
+     * Group constructor.
      * @param \Magento\Framework\Model\Context $context
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
      * @param AttributeValueFactory $customAttributeFactory
+     * @param \Magento\Framework\Filter\Translit $translitFilter
      * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory
-     * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
-     * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
+     * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
+     * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
      * @param array $data
      */
     public function __construct(
@@ -32,6 +34,7 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group
         \Magento\Framework\Registry $registry,
         \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
         AttributeValueFactory $customAttributeFactory,
+        \Magento\Framework\Filter\Translit $translitFilter,
         \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory,
         \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
@@ -43,6 +46,7 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group
             $registry,
             $extensionFactory,
             $customAttributeFactory,
+            $translitFilter,
             $resource,
             $resourceCollection,
             $data
-- 
GitLab


From 1ddcfd55f6e3c2234d5ba5a0723f92ce9b778a65 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Mon, 19 Oct 2015 15:48:32 +0300
Subject: [PATCH 026/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Test/TestCase/CreateConfigurableProductEntityTest.xml   | 6 ------
 .../Test/TestCase/UpdateConfigurableProductEntityTest.xml   | 5 -----
 2 files changed, 11 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
index b7fdd48cd16..653ce4286e5 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
@@ -14,7 +14,6 @@
             <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="product/data/price/value" xsi:type="string">100</data>
             <data name="product/data/price/dataset" xsi:type="string">default</data>
             <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
@@ -39,7 +38,6 @@
             <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="product/data/price/value" xsi:type="string">100</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="product/data/weight" xsi:type="string">2</data>
@@ -60,7 +58,6 @@
             <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="product/data/price/value" xsi:type="string">100</data>
             <data name="product/data/special_price" xsi:type="string">10</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data>
@@ -83,7 +80,6 @@
             <data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_options_with_assigned_product</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="product/data/price/value" xsi:type="string">100</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="product/data/weight" xsi:type="string">2</data>
@@ -102,7 +98,6 @@
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
             <data name="product/data/tax_class_id" xsi:type="string">Taxable Goods</data>
-            <data name="product/data/price/value" xsi:type="string">10</data>
             <data name="product/data/price/dataset" xsi:type="string">MAGETWO-12620</data>
             <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data>
             <data name="product/data/weight" xsi:type="string">1</data>
@@ -116,7 +111,6 @@
             <data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_searchable_options</data>
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="product/data/price/value" xsi:type="string">100</data>
             <data name="product/data/price/dataset" xsi:type="string">default</data>
             <data name="product/data/category_ids/new_category" xsi:type="string">no</data>
             <data name="product/data/category_ids/dataset" xsi:type="string">default_subcategory</data>
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
index 543ffade21f..e57a8d0a7c2 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/UpdateConfigurableProductEntityTest.xml
@@ -17,7 +17,6 @@
             <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">153</data>
             <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
             <data name="updatedProduct/data/category_ids/dataset" xsi:type="string">default_subcategory</data>
             <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
@@ -42,7 +41,6 @@
             <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">154</data>
             <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
             <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="updatedProduct/data/weight" xsi:type="string">3</data>
@@ -65,7 +63,6 @@
             <data name="updatedProduct/data/checkout_data/cartItem/price" xsi:type="string">112</data>
             <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
             <data name="updatedProduct/data/category_ids/dataset" xsi:type="string">default_subcategory</data>
             <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
@@ -88,7 +85,6 @@
             <data name="updatedProduct/data/checkout_data/dataset" xsi:type="string">configurable_two_attributes</data>
             <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
             <data name="updatedProduct/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="updatedProduct/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="updatedProduct/data/weight" xsi:type="string">3</data>
@@ -106,7 +102,6 @@
             <data name="updatedProduct/data/configurable_attributes_data/dataset" xsi:type="string">one_new_options</data>
             <data name="updatedProduct/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="updatedProduct/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
-            <data name="updatedProduct/data/price/value" xsi:type="string">99</data>
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
             <constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductPage" />
         </variation>
-- 
GitLab


From 0728d75bf60c40accf04bd0315590b1e9f88279a Mon Sep 17 00:00:00 2001
From: Ankur Kaneria <akaneria@ebay.com>
Date: Mon, 19 Oct 2015 10:09:18 -0500
Subject: [PATCH 027/162] MAGETWO-44112: [php7]*.htaccess  incompatibility with
 php 7

- Removed magic_quotes_gpc which is no longer supported by PHP
---
 dev/tests/functional/.htaccess | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/dev/tests/functional/.htaccess b/dev/tests/functional/.htaccess
index b20b4dc2e4e..ae57d9073f2 100644
--- a/dev/tests/functional/.htaccess
+++ b/dev/tests/functional/.htaccess
@@ -35,11 +35,6 @@
     php_value memory_limit 256M
     php_value max_execution_time 18000
 
-############################################
-## disable magic quotes for php request vars
-
-    php_flag magic_quotes_gpc off
-
 ############################################
 ## disable automatic session start
 ## before autoload was initialized
@@ -72,11 +67,6 @@
     php_value memory_limit 256M
     php_value max_execution_time 18000
 
-############################################
-## disable magic quotes for php request vars
-
-    php_flag magic_quotes_gpc off
-
 ############################################
 ## disable automatic session start
 ## before autoload was initialized
-- 
GitLab


From ebe19486a065db137ea5e65a342856f179cc7cd1 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Mon, 19 Oct 2015 10:56:42 -0500
Subject: [PATCH 028/162] MAGETWO-43265: An exception if try to get to the Web
 Wizard without writable file permissions

- simplified check if application is installed in setup to avoid using ObjectManager
- moved dependency related checks from Environment to DependencyCheck controller
---
 setup/config/di.config.php                    |   1 +
 setup/pub/magento/setup/readiness-check.js    |   6 +-
 .../Setup/Controller/DependencyCheck.php      | 159 ++++++++++++++++++
 .../Magento/Setup/Controller/Environment.php  | 141 +---------------
 setup/src/Magento/Setup/Controller/Index.php  |  17 +-
 setup/src/Magento/Setup/Model/Navigation.php  |   6 +-
 .../Test/Unit/Controller/EnvironmentTest.php  |  42 +----
 7 files changed, 181 insertions(+), 191 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Controller/DependencyCheck.php

diff --git a/setup/config/di.config.php b/setup/config/di.config.php
index e7f0ac693af..ada024a3dcb 100644
--- a/setup/config/di.config.php
+++ b/setup/config/di.config.php
@@ -19,6 +19,7 @@ return [
             'Magento\Setup\Controller\ReadinessCheckInstaller',
             'Magento\Setup\Controller\ReadinessCheckUpdater',
             'Magento\Setup\Controller\Environment',
+            'Magento\Setup\Controller\DependencyCheck',
             'Magento\Setup\Controller\DatabaseCheck',
             'Magento\Setup\Controller\AddDatabase',
             'Magento\Setup\Controller\WebConfiguration',
diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js
index f2b8cf9e48c..e4ae0fae6c3 100644
--- a/setup/pub/magento/setup/readiness-check.js
+++ b/setup/pub/magento/setup/readiness-check.js
@@ -24,14 +24,14 @@ angular.module('readiness-check', [])
         };
         switch ($state.current.type) {
             case 'uninstall':
-                $scope.dependencyUrl = 'index.php/environment/uninstall-dependency-check';
+                $scope.dependencyUrl = 'index.php/dependency-check/uninstall-dependency-check';
                 if ($localStorage.packages) {
                     $scope.componentDependency.packages = $localStorage.packages;
                 }
                 break;
             case 'enable':
             case 'disable':
-                $scope.dependencyUrl = 'index.php/environment/enable-disable-dependency-check';
+                $scope.dependencyUrl = 'index.php/dependency-check/enable-disable-dependency-check';
                 if ($localStorage.packages) {
                     $scope.componentDependency.packages = {
                         type: $state.current.type,
@@ -40,7 +40,7 @@ angular.module('readiness-check', [])
                 }
                 break;
             default:
-                $scope.dependencyUrl = 'index.php/environment/component-dependency';
+                $scope.dependencyUrl = 'index.php/dependency-check/component-dependency';
                 if ($localStorage.packages) {
                     $scope.componentDependency.packages = $localStorage.packages;
                 }
diff --git a/setup/src/Magento/Setup/Controller/DependencyCheck.php b/setup/src/Magento/Setup/Controller/DependencyCheck.php
new file mode 100644
index 00000000000..6f865e16678
--- /dev/null
+++ b/setup/src/Magento/Setup/Controller/DependencyCheck.php
@@ -0,0 +1,159 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Controller;
+
+use Magento\Setup\Model\DependencyReadinessCheck;
+use Magento\Setup\Model\UninstallDependencyCheck;
+use Zend\Json\Json;
+use Zend\Mvc\Controller\AbstractActionController;
+use Zend\View\Model\JsonModel;
+use Magento\Framework\Filesystem;
+use Magento\Setup\Model\ModuleStatusFactory;
+use Magento\Framework\Module\Status;
+
+/**
+ * Class DependencyCheck
+ *
+ * Checks dependencies.
+ */
+class DependencyCheck extends AbstractActionController
+{
+    /**
+     * Dependency Readiness Check
+     *
+     * @var DependencyReadinessCheck
+     */
+    protected $dependencyReadinessCheck;
+
+    /**
+     * Uninstall Dependency Readiness Check
+     *
+     * @var UninstallDependencyCheck
+     */
+    protected $uninstallDependencyCheck;
+
+    /**
+     * Module/Status Object
+     *
+     * @var Status
+     */
+    protected $moduleStatus;
+
+    /**
+     * Constructor
+     *
+     * @param DependencyReadinessCheck $dependencyReadinessCheck
+     * @param UninstallDependencyCheck $uninstallDependencyCheck
+     * @param ModuleStatusFactory $moduleStatusFactory
+     */
+    public function __construct(
+        DependencyReadinessCheck $dependencyReadinessCheck,
+        UninstallDependencyCheck $uninstallDependencyCheck,
+        ModuleStatusFactory $moduleStatusFactory
+    ) {
+        $this->dependencyReadinessCheck = $dependencyReadinessCheck;
+        $this->uninstallDependencyCheck = $uninstallDependencyCheck;
+        $this->moduleStatus = $moduleStatusFactory->create();
+    }
+
+    /**
+     * Verifies component dependency
+     *
+     * @return JsonModel
+     */
+    public function componentDependencyAction()
+    {
+        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
+        $packages = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
+        $data = [];
+        foreach ($packages as $package) {
+            $data[] = implode(' ', $package);
+        }
+        $dependencyCheck = $this->dependencyReadinessCheck->runReadinessCheck($data);
+        $data = [];
+        if (!$dependencyCheck['success']) {
+            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+            $data['errorMessage'] = $dependencyCheck['error'];
+        }
+        $data['responseType'] = $responseType;
+        return new JsonModel($data);
+    }
+
+    /**
+     * Verifies component dependency for uninstall
+     *
+     * @return JsonModel
+     */
+    public function uninstallDependencyCheckAction()
+    {
+        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
+        $packages = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
+
+        $packagesToDelete = [];
+        foreach ($packages as $package) {
+            $packagesToDelete[] = $package['name'];
+        }
+
+        $dependencyCheck = $this->uninstallDependencyCheck->runUninstallReadinessCheck($packagesToDelete);
+        $data = [];
+        if (!$dependencyCheck['success']) {
+            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+            $data['errorMessage'] = $dependencyCheck['error'];
+        }
+        $data['responseType'] = $responseType;
+        return new JsonModel($data);
+    }
+
+    /**
+     * Verifies component dependency for enable/disable actions
+     *
+     * @return JsonModel
+     */
+    public function enableDisableDependencyCheckAction()
+    {
+        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
+        $data = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
+
+        try {
+            if (empty($data['packages'])) {
+                throw new \Exception('No packages have been found.');
+            }
+
+            if (empty($data['type'])) {
+                throw new \Exception('Can not determine the flow.');
+            }
+
+            $modules = $data['packages'];
+
+            $isEnable = ($data['type'] !== 'disable');
+
+            $modulesToChange = [];
+            foreach ($modules as $module) {
+                if (!isset($module['name'])) {
+                    throw new \Exception('Can not find module name.');
+                }
+                $modulesToChange[] = $module['name'];
+            }
+
+            $constraints = $this->moduleStatus->checkConstraints($isEnable, $modulesToChange);
+            $data = [];
+
+            if ($constraints) {
+                $data['errorMessage'] = "Unable to change status of modules because of the following constraints: "
+                    . implode("<br>", $constraints);
+                $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+            }
+
+        } catch (\Exception $e) {
+            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
+            $data['errorMessage'] = $e->getMessage();
+        }
+
+        $data['responseType'] = $responseType;
+        return new JsonModel($data);
+    }
+}
diff --git a/setup/src/Magento/Setup/Controller/Environment.php b/setup/src/Magento/Setup/Controller/Environment.php
index 57c8a509aba..88cc5a97226 100644
--- a/setup/src/Magento/Setup/Controller/Environment.php
+++ b/setup/src/Magento/Setup/Controller/Environment.php
@@ -7,24 +7,17 @@ namespace Magento\Setup\Controller;
 
 use Magento\Setup\Model\Cron\ReadinessCheck;
 use Magento\Setup\Model\CronScriptReadinessCheck;
-use Magento\Setup\Model\DependencyReadinessCheck;
-use Magento\Setup\Model\UninstallDependencyCheck;
 use Magento\Setup\Model\PhpReadinessCheck;
-use Zend\Json\Json;
 use Zend\Mvc\Controller\AbstractActionController;
 use Zend\View\Model\JsonModel;
 use Magento\Setup\Model\FilePermissions;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\Filesystem;
-use Magento\Setup\Model\ModuleStatusFactory;
-use Magento\Framework\Module\Status;
 
 /**
  * Class Environment
  *
  * Provides information and checks about the environment.
- *
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class Environment extends AbstractActionController
 {
@@ -33,6 +26,11 @@ class Environment extends AbstractActionController
      */
     const UPDATER_DIR = 'update';
 
+    /**
+     * Path to Magento config
+     */
+    const PATH_TO_CONFIG = '/app/etc/config.php';
+
     /**
      * File system
      *
@@ -47,20 +45,6 @@ class Environment extends AbstractActionController
      */
     protected $cronScriptReadinessCheck;
 
-    /**
-     * Dependency Readiness Check
-     *
-     * @var DependencyReadinessCheck
-     */
-    protected $dependencyReadinessCheck;
-
-    /**
-     * Uninstall Dependency Readiness Check
-     *
-     * @var UninstallDependencyCheck
-     */
-    protected $uninstallDependencyCheck;
-
     /**
      * PHP Readiness Check
      *
@@ -68,40 +52,24 @@ class Environment extends AbstractActionController
      */
     protected $phpReadinessCheck;
 
-    /**
-     * Module/Status Object
-     *
-     * @var Status
-     */
-    protected $moduleStatus;
-
     /**
      * Constructor
      *
      * @param FilePermissions $permissions
      * @param Filesystem $filesystem
      * @param CronScriptReadinessCheck $cronScriptReadinessCheck
-     * @param DependencyReadinessCheck $dependencyReadinessCheck
-     * @param UninstallDependencyCheck $uninstallDependencyCheck
      * @param PhpReadinessCheck $phpReadinessCheck
-     * @param ModuleStatusFactory $moduleStatusFactory
      */
     public function __construct(
         FilePermissions $permissions,
         Filesystem $filesystem,
         CronScriptReadinessCheck $cronScriptReadinessCheck,
-        DependencyReadinessCheck $dependencyReadinessCheck,
-        UninstallDependencyCheck $uninstallDependencyCheck,
-        PhpReadinessCheck $phpReadinessCheck,
-        ModuleStatusFactory $moduleStatusFactory
+        PhpReadinessCheck $phpReadinessCheck
     ) {
         $this->permissions = $permissions;
         $this->filesystem = $filesystem;
         $this->cronScriptReadinessCheck = $cronScriptReadinessCheck;
-        $this->dependencyReadinessCheck = $dependencyReadinessCheck;
-        $this->uninstallDependencyCheck = $uninstallDependencyCheck;
         $this->phpReadinessCheck = $phpReadinessCheck;
-        $this->moduleStatus = $moduleStatusFactory->create();
     }
 
     /**
@@ -249,101 +217,4 @@ class Environment extends AbstractActionController
         $data['responseType'] = $responseType;
         return new JsonModel($data);
     }
-
-    /**
-     * Verifies component dependency
-     *
-     * @return JsonModel
-     */
-    public function componentDependencyAction()
-    {
-        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
-        $packages = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
-        $data = [];
-        foreach ($packages as $package) {
-            $data[] = implode(' ', $package);
-        }
-        $dependencyCheck = $this->dependencyReadinessCheck->runReadinessCheck($data);
-        $data = [];
-        if (!$dependencyCheck['success']) {
-            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
-            $data['errorMessage'] = $dependencyCheck['error'];
-        }
-        $data['responseType'] = $responseType;
-        return new JsonModel($data);
-    }
-
-    /**
-     * Verifies component dependency for uninstall
-     *
-     * @return JsonModel
-     */
-    public function uninstallDependencyCheckAction()
-    {
-        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
-        $packages = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
-
-        $packagesToDelete = [];
-        foreach ($packages as $package) {
-            $packagesToDelete[] = $package['name'];
-        }
-
-        $dependencyCheck = $this->uninstallDependencyCheck->runUninstallReadinessCheck($packagesToDelete);
-        $data = [];
-        if (!$dependencyCheck['success']) {
-            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
-            $data['errorMessage'] = $dependencyCheck['error'];
-        }
-        $data['responseType'] = $responseType;
-        return new JsonModel($data);
-    }
-
-    /**
-     * Verifies component dependency for enable/disable actions
-     *
-     * @return JsonModel
-     */
-    public function enableDisableDependencyCheckAction()
-    {
-        $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS;
-        $data = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
-
-        try {
-            if (empty($data['packages'])) {
-                throw new \Exception('No packages have been found.');
-            }
-
-            if (empty($data['type'])) {
-                throw new \Exception('Can not determine the flow.');
-            }
-
-            $modules = $data['packages'];
-
-            $isEnable = ($data['type'] !== 'disable');
-
-            $modulesToChange = [];
-            foreach ($modules as $module) {
-                if (!isset($module['name'])) {
-                    throw new \Exception('Can not find module name.');
-                }
-                $modulesToChange[] = $module['name'];
-            }
-
-            $constraints = $this->moduleStatus->checkConstraints($isEnable, $modulesToChange);
-            $data = [];
-
-            if ($constraints) {
-                $data['errorMessage'] = "Unable to change status of modules because of the following constraints: "
-                    . implode("<br>", $constraints);
-                $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
-            }
-
-        } catch (\Exception $e) {
-            $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR;
-            $data['errorMessage'] = $e->getMessage();
-        }
-
-        $data['responseType'] = $responseType;
-        return new JsonModel($data);
-    }
 }
diff --git a/setup/src/Magento/Setup/Controller/Index.php b/setup/src/Magento/Setup/Controller/Index.php
index 1c239ab77aa..6e75f68504c 100644
--- a/setup/src/Magento/Setup/Controller/Index.php
+++ b/setup/src/Magento/Setup/Controller/Index.php
@@ -16,9 +16,9 @@ use Magento\Setup\Model\ObjectManagerProvider;
 class Index extends AbstractActionController
 {
     /**
-     * @var \Magento\Framework\ObjectManagerInterface
+     * @var \Magento\Setup\Model\ObjectManagerProvider
      */
-    private $objectManager;
+    private $objectManagerProvider;
 
     /**
      * @param ObjectManagerProvider $objectManagerProvider
@@ -26,7 +26,7 @@ class Index extends AbstractActionController
     public function __construct(
         ObjectManagerProvider $objectManagerProvider
     ) {
-        $this->objectManager = $objectManagerProvider->get();
+        $this->objectManagerProvider = $objectManagerProvider;
     }
 
     /**
@@ -34,19 +34,20 @@ class Index extends AbstractActionController
      */
     public function indexAction()
     {
-        if ($this->objectManager->get('Magento\Framework\App\DeploymentConfig')->isAvailable()) {
+        if (file_exists(BP . \Magento\Setup\Controller\Environment::PATH_TO_CONFIG)) {
+            $objectManager = $this->objectManagerProvider->get();
             /** @var \Magento\Framework\App\State $adminAppState */
-            $adminAppState = $this->objectManager->get('Magento\Framework\App\State');
+            $adminAppState = $objectManager->get('Magento\Framework\App\State');
             $adminAppState->setAreaCode(\Magento\Framework\App\Area::AREA_ADMIN);
 
-            $this->objectManager->create(
+            $objectManager->create(
                 'Magento\Backend\Model\Auth\Session',
                 [
-                    'sessionConfig' => $this->objectManager->get('Magento\Backend\Model\Session\AdminConfig'),
+                    'sessionConfig' => $objectManager->get('Magento\Backend\Model\Session\AdminConfig'),
                     'appState' => $adminAppState
                 ]
             );
-            if (!$this->objectManager->get('Magento\Backend\Model\Auth')->isLoggedIn()) {
+            if (!$objectManager->get('Magento\Backend\Model\Auth')->isLoggedIn()) {
                 $view = new ViewModel();
                 $view->setTemplate('/error/401.phtml');
                 $this->getResponse()->setStatusCode(\Zend\Http\Response::STATUS_CODE_401);
diff --git a/setup/src/Magento/Setup/Model/Navigation.php b/setup/src/Magento/Setup/Model/Navigation.php
index a5e4e35fcd8..ff7699d0828 100644
--- a/setup/src/Magento/Setup/Model/Navigation.php
+++ b/setup/src/Magento/Setup/Model/Navigation.php
@@ -34,12 +34,10 @@ class Navigation
 
     /**
      * @param ServiceLocatorInterface $serviceLocator
-     * @param ObjectManagerProvider $objectManagerProvider
      */
-    public function __construct(ServiceLocatorInterface $serviceLocator, ObjectManagerProvider $objectManagerProvider)
+    public function __construct(ServiceLocatorInterface $serviceLocator)
     {
-        $objectManager = $objectManagerProvider->get();
-        if ($objectManager->get('Magento\Framework\App\DeploymentConfig')->isAvailable()) {
+        if (file_exists(BP . \Magento\Setup\Controller\Environment::PATH_TO_CONFIG)) {
             $this->navStates = $serviceLocator->get('config')[self::NAV_UPDATER];
             $this->navType = self::NAV_UPDATER;
             $this->titles = $serviceLocator->get('config')[self::NAV_UPDATER . 'Titles'];
diff --git a/setup/src/Magento/Setup/Test/Unit/Controller/EnvironmentTest.php b/setup/src/Magento/Setup/Test/Unit/Controller/EnvironmentTest.php
index fc3fee7684e..0d8f640576a 100644
--- a/setup/src/Magento/Setup/Test/Unit/Controller/EnvironmentTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Controller/EnvironmentTest.php
@@ -28,26 +28,11 @@ class EnvironmentTest extends \PHPUnit_Framework_TestCase
      */
     private $cronScriptReadinessCheck;
 
-    /**
-     * @var \Magento\Setup\Model\DependencyReadinessCheck|\PHPUnit_Framework_MockObject_MockObject
-     */
-    private $dependencyReadinessCheck;
-
     /**
      * @var \Magento\Setup\Model\PhpReadinessCheck|\PHPUnit_Framework_MockObject_MockObject
      */
     private $phpReadinessCheck;
 
-    /**
-     * @var \Magento\Setup\Model\UninstallDependencyCheck|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $uninstallDependencyCheck;
-
-    /**
-     * @var \Magento\Setup\Model\ModuleStatusFactory|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $moduleStatusFactory;
-
     /**
      * @var Environment
      */
@@ -57,7 +42,6 @@ class EnvironmentTest extends \PHPUnit_Framework_TestCase
     {
         $this->filesystem = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
         $this->permissions = $this->getMock('Magento\Setup\Model\FilePermissions', [], [], '', false);
-
         $this->cronScriptReadinessCheck = $this->getMock(
             'Magento\Setup\Model\CronScriptReadinessCheck',
             [],
@@ -65,36 +49,12 @@ class EnvironmentTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->dependencyReadinessCheck = $this->getMock(
-            'Magento\Setup\Model\DependencyReadinessCheck',
-            [],
-            [],
-            '',
-            false
-        );
         $this->phpReadinessCheck = $this->getMock('Magento\Setup\Model\PhpReadinessCheck', [], [], '', false);
-        $this->uninstallDependencyCheck = $this->getMock(
-            'Magento\Setup\Model\UninstallDependencyCheck',
-            [],
-            [],
-            '',
-            false
-        );
-        $this->moduleStatusFactory = $this->getMock(
-            'Magento\Setup\Model\ModuleStatusFactory',
-            [],
-            [],
-            '',
-            false
-        );
         $this->environment = new Environment(
             $this->permissions,
             $this->filesystem,
             $this->cronScriptReadinessCheck,
-            $this->dependencyReadinessCheck,
-            $this->uninstallDependencyCheck,
-            $this->phpReadinessCheck,
-            $this->moduleStatusFactory
+            $this->phpReadinessCheck
         );
     }
 
-- 
GitLab


From 98e1ebabf2100ed94719ea75783e6ae5fddad608 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Mon, 19 Oct 2015 12:13:30 -0500
Subject: [PATCH 029/162] MAGETWO-43265: An exception if try to get to the Web
 Wizard without writable file permissions

- fixed CouplingBetweenObjects static test
---
 .../Magento/Setup/Controller/Environment.php  | 25 ++++++++-----------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/setup/src/Magento/Setup/Controller/Environment.php b/setup/src/Magento/Setup/Controller/Environment.php
index 88cc5a97226..c5101d62016 100644
--- a/setup/src/Magento/Setup/Controller/Environment.php
+++ b/setup/src/Magento/Setup/Controller/Environment.php
@@ -6,11 +6,8 @@
 namespace Magento\Setup\Controller;
 
 use Magento\Setup\Model\Cron\ReadinessCheck;
-use Magento\Setup\Model\CronScriptReadinessCheck;
-use Magento\Setup\Model\PhpReadinessCheck;
 use Zend\Mvc\Controller\AbstractActionController;
 use Zend\View\Model\JsonModel;
-use Magento\Setup\Model\FilePermissions;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\Filesystem;
 
@@ -34,37 +31,37 @@ class Environment extends AbstractActionController
     /**
      * File system
      *
-     * @var Filesystem
+     * @var \Magento\Framework\Filesystem
      */
     protected $filesystem;
 
     /**
      * Cron Script Readiness Check
      *
-     * @var CronScriptReadinessCheck
+     * @var \Magento\Setup\Model\CronScriptReadinessCheck
      */
     protected $cronScriptReadinessCheck;
 
     /**
      * PHP Readiness Check
      *
-     * @var PhpReadinessCheck
+     * @var \Magento\Setup\Model\PhpReadinessCheck
      */
     protected $phpReadinessCheck;
 
     /**
      * Constructor
      *
-     * @param FilePermissions $permissions
-     * @param Filesystem $filesystem
-     * @param CronScriptReadinessCheck $cronScriptReadinessCheck
-     * @param PhpReadinessCheck $phpReadinessCheck
+     * @param \Magento\Setup\Model\FilePermissions $permissions
+     * @param \Magento\Framework\Filesystem $filesystem
+     * @param \Magento\Setup\Model\CronScriptReadinessCheck $cronScriptReadinessCheck
+     * @param \Magento\Setup\Model\PhpReadinessCheck $phpReadinessCheck
      */
     public function __construct(
-        FilePermissions $permissions,
-        Filesystem $filesystem,
-        CronScriptReadinessCheck $cronScriptReadinessCheck,
-        PhpReadinessCheck $phpReadinessCheck
+        \Magento\Setup\Model\FilePermissions $permissions,
+        \Magento\Framework\Filesystem $filesystem,
+        \Magento\Setup\Model\CronScriptReadinessCheck $cronScriptReadinessCheck,
+        \Magento\Setup\Model\PhpReadinessCheck $phpReadinessCheck
     ) {
         $this->permissions = $permissions;
         $this->filesystem = $filesystem;
-- 
GitLab


From 52001cf99b5b2b362621466fd5148c7621f564bc Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Mon, 19 Oct 2015 16:44:03 -0500
Subject: [PATCH 030/162] MAGETWO-43265: An exception if try to get to the Web
 Wizard without writable file permissions

- added model wrapper over file_exists
- fixed unit-tests
---
 .../Magento/Setup/Controller/Environment.php  |  5 --
 setup/src/Magento/Setup/Controller/Index.php  | 13 +++-
 setup/src/Magento/Setup/Model/Navigation.php  |  4 +-
 .../Setup/Test/Unit/Controller/IndexTest.php  | 70 +++++++++++++++++--
 .../Setup/Test/Unit/Model/NavigationTest.php  | 19 ++---
 5 files changed, 86 insertions(+), 25 deletions(-)

diff --git a/setup/src/Magento/Setup/Controller/Environment.php b/setup/src/Magento/Setup/Controller/Environment.php
index c5101d62016..df99f0513d9 100644
--- a/setup/src/Magento/Setup/Controller/Environment.php
+++ b/setup/src/Magento/Setup/Controller/Environment.php
@@ -23,11 +23,6 @@ class Environment extends AbstractActionController
      */
     const UPDATER_DIR = 'update';
 
-    /**
-     * Path to Magento config
-     */
-    const PATH_TO_CONFIG = '/app/etc/config.php';
-
     /**
      * File system
      *
diff --git a/setup/src/Magento/Setup/Controller/Index.php b/setup/src/Magento/Setup/Controller/Index.php
index 6e75f68504c..10ed8905166 100644
--- a/setup/src/Magento/Setup/Controller/Index.php
+++ b/setup/src/Magento/Setup/Controller/Index.php
@@ -9,6 +9,7 @@ namespace Magento\Setup\Controller;
 use Zend\Mvc\Controller\AbstractActionController;
 use Zend\View\Model\ViewModel;
 use Magento\Setup\Model\ObjectManagerProvider;
+use Magento\Setup\Model\ApplicationStatus;
 
 /**
  * Main controller of the Setup Wizard
@@ -20,13 +21,21 @@ class Index extends AbstractActionController
      */
     private $objectManagerProvider;
 
+    /**
+     * @var \Magento\Setup\Model\ApplicationStatus
+     */
+    private $applicationStatus;
+
     /**
      * @param ObjectManagerProvider $objectManagerProvider
+     * @param ApplicationStatus $applicationStatus
      */
     public function __construct(
-        ObjectManagerProvider $objectManagerProvider
+        ObjectManagerProvider $objectManagerProvider,
+        ApplicationStatus $applicationStatus
     ) {
         $this->objectManagerProvider = $objectManagerProvider;
+        $this->applicationStatus = $applicationStatus;
     }
 
     /**
@@ -34,7 +43,7 @@ class Index extends AbstractActionController
      */
     public function indexAction()
     {
-        if (file_exists(BP . \Magento\Setup\Controller\Environment::PATH_TO_CONFIG)) {
+        if ($this->applicationStatus->isApplicationInstalled()) {
             $objectManager = $this->objectManagerProvider->get();
             /** @var \Magento\Framework\App\State $adminAppState */
             $adminAppState = $objectManager->get('Magento\Framework\App\State');
diff --git a/setup/src/Magento/Setup/Model/Navigation.php b/setup/src/Magento/Setup/Model/Navigation.php
index ff7699d0828..ca4e57c7b64 100644
--- a/setup/src/Magento/Setup/Model/Navigation.php
+++ b/setup/src/Magento/Setup/Model/Navigation.php
@@ -35,9 +35,9 @@ class Navigation
     /**
      * @param ServiceLocatorInterface $serviceLocator
      */
-    public function __construct(ServiceLocatorInterface $serviceLocator)
+    public function __construct(ServiceLocatorInterface $serviceLocator, ApplicationStatus $applicationStatus)
     {
-        if (file_exists(BP . \Magento\Setup\Controller\Environment::PATH_TO_CONFIG)) {
+        if ($applicationStatus->isApplicationInstalled()) {
             $this->navStates = $serviceLocator->get('config')[self::NAV_UPDATER];
             $this->navType = self::NAV_UPDATER;
             $this->titles = $serviceLocator->get('config')[self::NAV_UPDATER . 'Titles'];
diff --git a/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php b/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
index e5a3e2829cc..fbdaeed4354 100644
--- a/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
@@ -21,11 +21,21 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     private $objectManager;
 
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\DeploymentConfig
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Model\ApplicationStatus
      */
-    private $deploymentConfig;
+    private $applicationStatus;
 
-    public function testIndexAction()
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\State
+     */
+    private $appState;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Backend\Model\Auth
+     */
+    private $auth;
+
+    public function setUp()
     {
         $this->objectManager = $this->getMockForAbstractClass('Magento\Framework\ObjectManagerInterface');
         $this->objectManagerProvider = $this->getMock(
@@ -35,12 +45,58 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->deploymentConfig = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
+        $this->applicationStatus = $this->getMock(
+            'Magento\Setup\Model\ApplicationStatus',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->appState = $this->getMock(
+            'Magento\Framework\App\State',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->auth = $this->getMock(
+            'Magento\Backend\Model\Auth',
+            [],
+            [],
+            '',
+            false
+        );
+    }
+
+    public function testIndexActionInstalled()
+    {
+        $this->applicationStatus->expects($this->once())->method('isApplicationInstalled')->willReturn(true);
         $this->objectManagerProvider->expects($this->once())->method('get')->willReturn($this->objectManager);
-        $this->objectManager->expects($this->once())->method('get')->willReturn($this->deploymentConfig);
-        $this->deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(false);
+        $this->appState->expects($this->once())->method('setAreaCode');
+        $this->auth->expects($this->once())->method('isLoggedIn');
+        $this->objectManager->expects($this->any())
+            ->method('get')
+            ->will(
+                $this->returnValueMap(
+                    [
+                        ['Magento\Framework\App\State', $this->appState],
+                        ['Magento\Backend\Model\Auth', $this->auth]
+                    ]
+                )
+            );
+        /** @var $controller Index */
+        $controller = new Index($this->objectManagerProvider, $this->applicationStatus);
+        $viewModel = $controller->indexAction();
+        $this->assertInstanceOf('Zend\View\Model\ViewModel', $viewModel);
+        $this->assertFalse($viewModel->terminate());
+    }
+
+    public function testIndexActionNotInstalled()
+    {
+        $this->applicationStatus->expects($this->once())->method('isApplicationInstalled')->willReturn(false);
+        $this->objectManagerProvider->expects($this->exactly(0))->method('get');
         /** @var $controller Index */
-        $controller = new Index($this->objectManagerProvider);
+        $controller = new Index($this->objectManagerProvider, $this->applicationStatus);
         $viewModel = $controller->indexAction();
         $this->assertInstanceOf('Zend\View\Model\ViewModel', $viewModel);
         $this->assertFalse($viewModel->terminate());
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php b/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
index 818c4feffda..7292b9a6eef 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
@@ -16,9 +16,9 @@ class NavigationTest extends \PHPUnit_Framework_TestCase
     private $serviceLocatorMock;
 
     /**
-     * @var \Magento\Setup\Model\ObjectManagerProvider|\PHPUnit_Framework_MockObject_MockObject
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Model\ApplicationStatus
      */
-    private $objectManagerProvider;
+    private $applicationStatus;
 
     /**
      * @var Navigation
@@ -29,12 +29,6 @@ class NavigationTest extends \PHPUnit_Framework_TestCase
     {
         $this->serviceLocatorMock =
             $this->getMockForAbstractClass('Zend\ServiceManager\ServiceLocatorInterface', ['get']);
-        $deploymentConfig = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
-        $deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(false);
-        $objectManager = $this->getMock('Magento\Framework\ObjectManagerInterface', [], [], '', false);
-        $objectManager->expects($this->once())->method('get')->willReturn($deploymentConfig);
-        $this->objectManagerProvider = $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false);
-        $this->objectManagerProvider->expects($this->once())->method('get')->willReturn($objectManager);
         $this->serviceLocatorMock
             ->expects($this->exactly(2))
             ->method('get')
@@ -54,7 +48,14 @@ class NavigationTest extends \PHPUnit_Framework_TestCase
                     ['main' => false],
                 ]
             ]));
-        $this->navigation = new Navigation($this->serviceLocatorMock, $this->objectManagerProvider);
+        $this->applicationStatus = $this->getMock(
+            'Magento\Setup\Model\ApplicationStatus',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->navigation = new Navigation($this->serviceLocatorMock, $this->applicationStatus);
     }
 
     public function testGetType()
-- 
GitLab


From 37b746ff5a384b48047475ef05aae31c06e09b52 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Mon, 19 Oct 2015 16:45:07 -0500
Subject: [PATCH 031/162] MAGETWO-43265: An exception if try to get to the Web
 Wizard without writable file permissions

- added model wrapper over file_exists
- fixed unit-tests
---
 .../Magento/Setup/Model/ApplicationStatus.php | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 setup/src/Magento/Setup/Model/ApplicationStatus.php

diff --git a/setup/src/Magento/Setup/Model/ApplicationStatus.php b/setup/src/Magento/Setup/Model/ApplicationStatus.php
new file mode 100644
index 00000000000..4c9ba635bc8
--- /dev/null
+++ b/setup/src/Magento/Setup/Model/ApplicationStatus.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Model;
+
+/**
+ * Class ApplicationStatus
+ * Returns status of application
+ */
+class ApplicationStatus
+{
+    /**
+     * Path to Magento config
+     */
+    const PATH_TO_CONFIG = '/app/etc/config.php';
+
+    /**
+     * Returns status of application
+     *
+     * @return bool
+     */
+    public function isApplicationInstalled()
+    {
+        return file_exists(BP . self::PATH_TO_CONFIG);
+    }
+}
-- 
GitLab


From 345a88f7316eb04ec08e6fb39d384e0fb76cbf4f Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Mon, 19 Oct 2015 16:58:37 -0500
Subject: [PATCH 032/162] MAGETWO-43265: An exception if try to get to the Web
 Wizard without writable file permissions

- instantiating DeploymentConfig via Zend Service Locator
- Changed tests according to changes
---
 setup/src/Magento/Setup/Controller/Index.php  | 14 ++++-----
 .../Magento/Setup/Model/ApplicationStatus.php | 29 -------------------
 setup/src/Magento/Setup/Model/Navigation.php  |  6 ++--
 .../Setup/Test/Unit/Controller/IndexTest.php  | 17 ++++++-----
 .../Setup/Test/Unit/Model/NavigationTest.php  | 10 +++----
 5 files changed, 25 insertions(+), 51 deletions(-)
 delete mode 100644 setup/src/Magento/Setup/Model/ApplicationStatus.php

diff --git a/setup/src/Magento/Setup/Controller/Index.php b/setup/src/Magento/Setup/Controller/Index.php
index 10ed8905166..2f80b4b860f 100644
--- a/setup/src/Magento/Setup/Controller/Index.php
+++ b/setup/src/Magento/Setup/Controller/Index.php
@@ -9,7 +9,7 @@ namespace Magento\Setup\Controller;
 use Zend\Mvc\Controller\AbstractActionController;
 use Zend\View\Model\ViewModel;
 use Magento\Setup\Model\ObjectManagerProvider;
-use Magento\Setup\Model\ApplicationStatus;
+use Magento\Framework\App\DeploymentConfig;
 
 /**
  * Main controller of the Setup Wizard
@@ -22,20 +22,20 @@ class Index extends AbstractActionController
     private $objectManagerProvider;
 
     /**
-     * @var \Magento\Setup\Model\ApplicationStatus
+     * @var \Magento\Framework\App\DeploymentConfig
      */
-    private $applicationStatus;
+    private $deploymentConfig;
 
     /**
      * @param ObjectManagerProvider $objectManagerProvider
-     * @param ApplicationStatus $applicationStatus
+     * @param DeploymentConfig $deploymentConfig
      */
     public function __construct(
         ObjectManagerProvider $objectManagerProvider,
-        ApplicationStatus $applicationStatus
+        DeploymentConfig $deploymentConfig
     ) {
         $this->objectManagerProvider = $objectManagerProvider;
-        $this->applicationStatus = $applicationStatus;
+        $this->deploymentConfig = $deploymentConfig;
     }
 
     /**
@@ -43,7 +43,7 @@ class Index extends AbstractActionController
      */
     public function indexAction()
     {
-        if ($this->applicationStatus->isApplicationInstalled()) {
+        if ($this->deploymentConfig->isAvailable()) {
             $objectManager = $this->objectManagerProvider->get();
             /** @var \Magento\Framework\App\State $adminAppState */
             $adminAppState = $objectManager->get('Magento\Framework\App\State');
diff --git a/setup/src/Magento/Setup/Model/ApplicationStatus.php b/setup/src/Magento/Setup/Model/ApplicationStatus.php
deleted file mode 100644
index 4c9ba635bc8..00000000000
--- a/setup/src/Magento/Setup/Model/ApplicationStatus.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Setup\Model;
-
-/**
- * Class ApplicationStatus
- * Returns status of application
- */
-class ApplicationStatus
-{
-    /**
-     * Path to Magento config
-     */
-    const PATH_TO_CONFIG = '/app/etc/config.php';
-
-    /**
-     * Returns status of application
-     *
-     * @return bool
-     */
-    public function isApplicationInstalled()
-    {
-        return file_exists(BP . self::PATH_TO_CONFIG);
-    }
-}
diff --git a/setup/src/Magento/Setup/Model/Navigation.php b/setup/src/Magento/Setup/Model/Navigation.php
index ca4e57c7b64..9564e311e37 100644
--- a/setup/src/Magento/Setup/Model/Navigation.php
+++ b/setup/src/Magento/Setup/Model/Navigation.php
@@ -7,6 +7,7 @@
 namespace Magento\Setup\Model;
 
 use Zend\ServiceManager\ServiceLocatorInterface;
+use Magento\Framework\App\DeploymentConfig;
 
 class Navigation
 {
@@ -34,10 +35,11 @@ class Navigation
 
     /**
      * @param ServiceLocatorInterface $serviceLocator
+     * @param DeploymentConfig $deploymentConfig
      */
-    public function __construct(ServiceLocatorInterface $serviceLocator, ApplicationStatus $applicationStatus)
+    public function __construct(ServiceLocatorInterface $serviceLocator, DeploymentConfig $deploymentConfig)
     {
-        if ($applicationStatus->isApplicationInstalled()) {
+        if ($deploymentConfig->isAvailable()) {
             $this->navStates = $serviceLocator->get('config')[self::NAV_UPDATER];
             $this->navType = self::NAV_UPDATER;
             $this->titles = $serviceLocator->get('config')[self::NAV_UPDATER . 'Titles'];
diff --git a/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php b/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
index fbdaeed4354..13baa28e0d0 100644
--- a/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Controller/IndexTest.php
@@ -21,9 +21,10 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     private $objectManager;
 
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Model\ApplicationStatus
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\DeploymentConfig
      */
-    private $applicationStatus;
+    private $deploymentConfig;
+
 
     /**
      * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\State
@@ -45,8 +46,8 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->applicationStatus = $this->getMock(
-            'Magento\Setup\Model\ApplicationStatus',
+        $this->deploymentConfig = $this->getMock(
+            'Magento\Framework\App\DeploymentConfig',
             [],
             [],
             '',
@@ -70,7 +71,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
     public function testIndexActionInstalled()
     {
-        $this->applicationStatus->expects($this->once())->method('isApplicationInstalled')->willReturn(true);
+        $this->deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(true);
         $this->objectManagerProvider->expects($this->once())->method('get')->willReturn($this->objectManager);
         $this->appState->expects($this->once())->method('setAreaCode');
         $this->auth->expects($this->once())->method('isLoggedIn');
@@ -85,7 +86,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
                 )
             );
         /** @var $controller Index */
-        $controller = new Index($this->objectManagerProvider, $this->applicationStatus);
+        $controller = new Index($this->objectManagerProvider, $this->deploymentConfig);
         $viewModel = $controller->indexAction();
         $this->assertInstanceOf('Zend\View\Model\ViewModel', $viewModel);
         $this->assertFalse($viewModel->terminate());
@@ -93,10 +94,10 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
     public function testIndexActionNotInstalled()
     {
-        $this->applicationStatus->expects($this->once())->method('isApplicationInstalled')->willReturn(false);
+        $this->deploymentConfig->expects($this->once())->method('isAvailable')->willReturn(false);
         $this->objectManagerProvider->expects($this->exactly(0))->method('get');
         /** @var $controller Index */
-        $controller = new Index($this->objectManagerProvider, $this->applicationStatus);
+        $controller = new Index($this->objectManagerProvider, $this->deploymentConfig);
         $viewModel = $controller->indexAction();
         $this->assertInstanceOf('Zend\View\Model\ViewModel', $viewModel);
         $this->assertFalse($viewModel->terminate());
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php b/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
index 7292b9a6eef..6b23c410cc7 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/NavigationTest.php
@@ -16,9 +16,9 @@ class NavigationTest extends \PHPUnit_Framework_TestCase
     private $serviceLocatorMock;
 
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Model\ApplicationStatus
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\DeploymentConfig
      */
-    private $applicationStatus;
+    private $deploymentConfig;
 
     /**
      * @var Navigation
@@ -48,14 +48,14 @@ class NavigationTest extends \PHPUnit_Framework_TestCase
                     ['main' => false],
                 ]
             ]));
-        $this->applicationStatus = $this->getMock(
-            'Magento\Setup\Model\ApplicationStatus',
+        $this->deploymentConfig = $this->getMock(
+            'Magento\Framework\App\DeploymentConfig',
             [],
             [],
             '',
             false
         );
-        $this->navigation = new Navigation($this->serviceLocatorMock, $this->applicationStatus);
+        $this->navigation = new Navigation($this->serviceLocatorMock, $this->deploymentConfig);
     }
 
     public function testGetType()
-- 
GitLab


From 39a287a4bf0472a391cca358e4397e13eae0b9dd Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Tue, 20 Oct 2015 16:30:37 +0300
Subject: [PATCH 033/162] MAGETWO-44332: After click to add video button
 appears alert message

Fix alert
---
 .../Block/Adminhtml/Product/Edit/NewVideo.php | 58 +++++++++++++++++--
 .../ProductVideo/etc/adminhtml/system.xml     |  4 +-
 .../adminhtml/web/js/get-video-information.js |  7 ---
 .../web/css/source/_module.less               |  3 +
 4 files changed, 59 insertions(+), 13 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
index fbc2132db49..82c7ac0de8a 100644
--- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
+++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
@@ -12,11 +12,21 @@ use Magento\Framework\Data\Form\Element\Fieldset;
  */
 class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
 {
+    /**
+     * Anchor is product video
+     */
+    const PATH_ANCHOR_PRODUCT_VIDEO = 'catalog_product_video-link';
+
     /**
      * @var \Magento\ProductVideo\Helper\Media
      */
     protected $mediaHelper;
 
+    /**
+     * @var \Magento\Framework\UrlInterface
+     */
+    protected $_urlBuilder;
+
     /**
      * @var \Magento\Framework\Json\EncoderInterface
      */
@@ -25,6 +35,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     /**
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\ProductVideo\Helper\Media $mediaHelper
+     * @param \Magento\Framework\UrlInterface $urlBuilder
      * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\Data\FormFactory $formFactory
@@ -32,14 +43,16 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
      */
     public function __construct(
         \Magento\Backend\Block\Template\Context $context,
+        \Magento\ProductVideo\Helper\Media $mediaHelper,
+        \Magento\Framework\UrlInterface $urlBuilder,
+        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\Data\FormFactory $formFactory,
-        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
-        \Magento\ProductVideo\Helper\Media $mediaHelper,
         array $data = []
     ) {
         parent::__construct($context, $registry, $formFactory, $data);
         $this->mediaHelper = $mediaHelper;
+        $this->_urlBuilder = $urlBuilder;
         $this->jsonEncoder = $jsonEncoder;
         $this->setUseContainer(true);
     }
@@ -104,7 +117,8 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
                 'title' => __('Url'),
                 'required' => true,
                 'name' => 'video_url',
-                'note' => 'Youtube or Vimeo supported',
+                'note' => $this->getNoteVideoUrl(),
+
             ]
         );
 
@@ -158,7 +172,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
                 'label' => '',
                 'title' => __('Get Video Information'),
                 'name' => 'new_video_get',
-                'value' => 'Get Video Information',
+                'value' => __('Get Video Information'),
                 'class' => 'action-default'
             ]
         );
@@ -248,4 +262,40 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
         }
         return $this;
     }
+
+    /**
+     * Get note for video url
+     *
+     * @return \Magento\Framework\Phrase
+     */
+    protected function getNoteVideoUrl()
+    {
+        $result = __('Youtube or Vimeo supported');
+        if (is_null($this->mediaHelper->getYouTubeApiKey())) {
+            $result = __(
+                '<div class="note_youtube_api_key">'
+                . 'Vimeo supported. '
+                . '<br>In order to add YouTube video please <a href="%1">add YouTube API key</a> in video configuration settings.'
+                . '</div>',
+                $this->getConfigApiKeyUrl()
+            );
+        }
+        return $result;
+    }
+
+    /**
+     * Get url for config params
+     *
+     * @return string
+     */
+    protected function getConfigApiKeyUrl()
+    {
+        return $this->_urlBuilder->getUrl(
+            'adminhtml/system_config/edit',
+            [
+                'section' => 'catalog',
+                '_fragment' => self::PATH_ANCHOR_PRODUCT_VIDEO
+            ]
+        );
+    }
 }
diff --git a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
index f475ab5b70d..5d828ad2cdb 100644
--- a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
+++ b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
@@ -8,9 +8,9 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
     <system>
         <section id="catalog">
-            <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="1">
+            <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="0">
                 <label>Product Video</label>
-                <field id="youtube_api_key" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
+                <field id="youtube_api_key" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="0">
                     <label>YouTube API key</label>
                 </field>
             </group>
diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
index 52171f1537a..136a6dde21c 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
@@ -323,8 +323,6 @@ require([
         $.widget('mage.videoData', {
             options: {
                 youtubeKey: '',
-                noKeyErrorTxt: 'You have not entered youtube API key. ' +
-                'No information about youtube video will be retrieved.',
                 eventSource: '' //where is data going from - focus out or click on button
             },
 
@@ -340,11 +338,6 @@ require([
              * @private
              */
             _init: function () {
-                if (!this.options.youtubeKey && this.options.eventSource === 'click') {
-                    alert({
-                        content: this.options.noKeyErrorTxt
-                    });
-                }
                 this._onRequestHandler();
             },
 
diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
index 7f4e8a590ac..032185bc423 100644
--- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
@@ -234,3 +234,6 @@
 .image.base-image:hover .image-label {
     display: none;
 }
+.note .note_youtube_api_key {
+    background-color: #fffbbb;
+}
-- 
GitLab


From 7a164e215e20be788c61d369c1efebfb70792e2b Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Tue, 20 Oct 2015 16:45:59 +0300
Subject: [PATCH 034/162] MAGETWO-44332: After click to add video button
 appears alert message

Fix text
---
 .../Block/Adminhtml/Product/Edit/NewVideo.php         | 11 ++++++-----
 .../Magento/ProductVideo/etc/adminhtml/system.xml     |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
index 82c7ac0de8a..b04602152ee 100644
--- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
+++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
@@ -270,15 +270,16 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
      */
     protected function getNoteVideoUrl()
     {
-        $result = __('Youtube or Vimeo supported');
+        $result = __('Youtube and Vimeo services are supported.');
         if (is_null($this->mediaHelper->getYouTubeApiKey())) {
             $result = __(
-                '<div class="note_youtube_api_key">'
-                . 'Vimeo supported. '
-                . '<br>In order to add YouTube video please <a href="%1">add YouTube API key</a> in video configuration settings.'
-                . '</div>',
+                'The vimeo service is supported,'
+                . ' in order to add an support for the youtube service'
+                . ' please <a href="%1">specify</a> an youtube API key within a system configurations.'
+                ,
                 $this->getConfigApiKeyUrl()
             );
+            $result = '<div class="note_youtube_api_key">' . $result . '</div>';
         }
         return $result;
     }
diff --git a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
index 5d828ad2cdb..11884674b83 100644
--- a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
+++ b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
@@ -11,7 +11,7 @@
             <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="0">
                 <label>Product Video</label>
                 <field id="youtube_api_key" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="0">
-                    <label>YouTube API key</label>
+                    <label>Youtube API key</label>
                 </field>
             </group>
         </section>
-- 
GitLab


From 5ef31f3204e73a8e831c15bcdf97d34e1b497919 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Tue, 20 Oct 2015 09:11:36 -0500
Subject: [PATCH 035/162] MAGETWO-43906: Long database prefix length breaks
 setup

- added prefix length rule description to tooltip
---
 setup/view/magento/setup/add-database.phtml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup/view/magento/setup/add-database.phtml b/setup/view/magento/setup/add-database.phtml
index 193630700bb..2417dca08b5 100644
--- a/setup/view/magento/setup/add-database.phtml
+++ b/setup/view/magento/setup/add-database.phtml
@@ -335,7 +335,7 @@
             id="dbTablePrefix"
             class="form-el-input"
             tooltip-placement="right"
-            tooltip="Enter a prefix for database tables created in this installation. Use letters, numbers or underscores, and begin with a letter (Ex: ‘mg1_’)"
+            tooltip="Enter a prefix for database tables created in this installation. Use letters, numbers or underscores, and begin with a letter (Ex: ‘mg1_’). Table prefix length can't be more than 5 characters."
             tooltip-trigger="focus"
             tooltip-append-to-body="true"
             type="text"
-- 
GitLab


From 8be61694ba781a7ea0ebf2d2b0400842fb41904b Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Tue, 20 Oct 2015 10:22:55 -0500
Subject: [PATCH 036/162] MAGETWO-43907 Custom admin URL breaks admin log in
 after installation

- added validation for magento admin URL suffix
---
 setup/view/magento/setup/web-configuration.phtml | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/setup/view/magento/setup/web-configuration.phtml b/setup/view/magento/setup/web-configuration.phtml
index a87a668915f..0b91a4f2f7e 100644
--- a/setup/view/magento/setup/web-configuration.phtml
+++ b/setup/view/magento/setup/web-configuration.phtml
@@ -20,7 +20,7 @@ $hints = [
     ),
     'admin' => sprintf(
         '<p>%s</p>',
-        'A unique URL helps keep store and customer info safer.'
+        'A unique URL helps keep store and customer info safer. Use letters, numbers or underscores.'
     )
 ];
 ?>
@@ -101,6 +101,7 @@ $hints = [
                         class="form-el-input"
                         type="text"
                         name="admin"
+                        ng-pattern="/^[a-zA-Z0-9_]+$/"
                         ng-model="config.address.admin"
                         ng-class="{'invalid' : webconfig.admin.$invalid && webconfig.submitted }"
                         ng-init="config.address.admin = '<?php echo $this->autoAdminPath ?>';"
@@ -111,8 +112,8 @@ $hints = [
                         tooltip-append-to-body="true"
                         >
                     <div class="error-container">
-                        <span ng-show="webconfig.admin.$error.required">
-                            Please enter a valid admin URL path.
+                        <span ng-show="webconfig.admin.$error">
+                            Please enter a valid admin URL path. Use letters, numbers or underscores.
                         </span>
                     </div>
                 </div>
-- 
GitLab


From b7ed155b56c737cfb26f087d547701d761be1a5a Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Wed, 21 Oct 2015 11:22:44 +0300
Subject: [PATCH 037/162] MAGETWO-44261: Bug fixed; MAGETWO-44253: Bug fixed

---
 .../web/js/fotorama-add-video-events.js       | 23 ++++++++++++++++++-
 .../web/css/source/_module.less               |  4 ++--
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index 3fa62c44903..c2795990c58 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -96,6 +96,7 @@ define([
         VI: 'vimeo', // [CONST]
         FTVC: 'fotorama__video-close',
         FTAR: 'fotorama__arr',
+        isFullscreen: 0,
         Base: 0, //on check for video is base this setting become true if there is any video with base role
         MobileMaxWidth: 767,
         GP: 'gallery-placeholder', //gallery placeholder class is needed to find and erase <script> tag
@@ -106,6 +107,7 @@ define([
          */
         _init: function () {
             if (this._checkForVideoExist()) {
+                this._checkFullscreen();
                 this._checkForVimeo();
                 this._isVideoBase();
                 this._initFotoramaVideo();
@@ -113,6 +115,16 @@ define([
             }
         },
 
+        /**
+         *
+         * @private
+         */
+        _checkFullscreen: function () {
+            if ($(this.element).find('.fotorama__fullscreen-icon')) {
+                this.isFullscreen = true;
+            }
+        },
+
         /**
          *
          * @param {Object} inputData
@@ -367,6 +379,11 @@ define([
             $(this.element).on('fotorama:showend', $.proxy(function (e, fotorama) {
                 this._startPrepareForPlayer(e, fotorama);
             }, this));
+
+            $(this.element).on('fotorama:fullscreenexit', $.proxy(function (e, fotorama) {
+                fotorama.activeFrame.$stageFrame.parent().find('.' + this.PV).remove();
+                this._startPrepareForPlayer(e, fotorama);
+            }, this));
         },
 
         /**
@@ -403,6 +420,7 @@ define([
             if ($image && videoData && videoData.mediaType === this.VID) {
                 $(fotorama.activeFrame.$stageFrame).removeAttr('href');
                 this._prepareForVideoContainer($image, videoData, fotorama, number);
+                $('.fotorama-video-container').addClass('video-unplayed');
             }
         },
 
@@ -470,7 +488,10 @@ define([
                 if ($(this).hasClass('video-unplayed') && $(this).find('iframe').length === 0) {
                     $(this).removeClass('video-unplayed');
                     $(this).find('.' + PV).productVideoLoader();
-                    self._showCloseVideo();
+
+                    if (!self.isFullscreen) {
+                        self._showCloseVideo();
+                    }
                 }
             });
             this._handleBaseVideo(fotorama, number); //check for video is it base and handle it if it's base
diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
index d51b978a97e..50983ca119e 100644
--- a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
@@ -45,8 +45,8 @@
 }
 
 .product-video {
-    height: 85%;
-    margin-top: 15%;
+    height: 93%;
+    margin-top: 5%;
     position: absolute;
     top: 0;
     width: 100%;
-- 
GitLab


From 0274021ca2b7b6d4835040a20a88d2c9ccea6d20 Mon Sep 17 00:00:00 2001
From: Mikalai Shostka <mikalai_shostka@epam.com>
Date: Wed, 21 Oct 2015 12:31:07 +0300
Subject: [PATCH 038/162] MAGETWO-44332: After click to add video button
 appears alert message

Fix text
---
 .../Block/Adminhtml/Product/Edit/NewVideo.php             | 8 +++-----
 app/code/Magento/ProductVideo/etc/adminhtml/system.xml    | 2 +-
 .../Magento_ProductVideo/web/css/source/_module.less      | 3 ---
 3 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
index b04602152ee..0cc9119d506 100644
--- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
+++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
@@ -270,16 +270,14 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
      */
     protected function getNoteVideoUrl()
     {
-        $result = __('Youtube and Vimeo services are supported.');
+        $result = __('YouTube and Vimeo supported.');
         if (is_null($this->mediaHelper->getYouTubeApiKey())) {
             $result = __(
-                'The vimeo service is supported,'
-                . ' in order to add an support for the youtube service'
-                . ' please <a href="%1">specify</a> an youtube API key within a system configurations.'
+                'Vimeo supported.<br>'
+                . 'To add YouTube video, please <a href="%1">enter YouTube API Key</a> first.'
                 ,
                 $this->getConfigApiKeyUrl()
             );
-            $result = '<div class="note_youtube_api_key">' . $result . '</div>';
         }
         return $result;
     }
diff --git a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
index 11884674b83..d00f9a78e6b 100644
--- a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
+++ b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml
@@ -11,7 +11,7 @@
             <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="0">
                 <label>Product Video</label>
                 <field id="youtube_api_key" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="0">
-                    <label>Youtube API key</label>
+                    <label>YouTube API Key</label>
                 </field>
             </group>
         </section>
diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
index 032185bc423..7f4e8a590ac 100644
--- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
@@ -234,6 +234,3 @@
 .image.base-image:hover .image-label {
     display: none;
 }
-.note .note_youtube_api_key {
-    background-color: #fffbbb;
-}
-- 
GitLab


From a6e09a53b509090cb6add70279a030d8877ca3f5 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Wed, 21 Oct 2015 13:34:35 +0300
Subject: [PATCH 039/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Product/Indexer/Price/DefaultPrice.php    | 37 ++++++++++---
 .../Adapter/Mysql/Dynamic/DataProvider.php    |  5 +-
 .../Product/Indexer/Price/Configurable.php    | 52 +++++++++++++++++--
 3 files changed, 81 insertions(+), 13 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
index 0df889441d2..c5eb2405bcb 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
@@ -224,6 +224,20 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     protected function _prepareFinalPriceData($entityIds = null)
+    {
+       return $this->prepareFinalPriceDataForType($entityIds, $this->getTypeId());
+    }
+
+    /**
+     * Prepare products default final price in temporary index table
+     *
+     * @param int|array $entityIds the entity ids limitation
+     * @param string|null $type product type, all if null
+     * @return $this
+     * @throws \Magento\Framework\Exception\LocalizedException
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
+     */
+    protected function prepareFinalPriceDataForType($entityIds, $type)
     {
         $this->_prepareDefaultFinalPriceTable();
 
@@ -260,10 +274,13 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
             'tp.entity_id = e.entity_id AND tp.website_id = cw.website_id' .
             ' AND tp.customer_group_id = cg.customer_group_id',
             []
-        )->where(
-            'e.type_id = ?',
-            $this->getTypeId()
         );
+        if ($type !== null){
+            $select->where(
+                'e.type_id = ?',
+                $type
+            );
+        }
 
         // add enable products limitation
         $statusCond = $connection->quoteInto(
@@ -299,10 +316,10 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
 
         $select->columns(
             [
-                'orig_price' => $price,
-                'price' => $finalPrice,
-                'min_price' => $finalPrice,
-                'max_price' => $finalPrice,
+                'orig_price' => $connection->getIfNullSql($price, 0),
+                'price' => $connection->getIfNullSql($finalPrice, 0),
+                'min_price' => $connection->getIfNullSql($finalPrice, 0),
+                'max_price' => $connection->getIfNullSql($finalPrice, 0),
                 'tier_price' => new \Zend_Db_Expr('tp.min_price'),
                 'base_tier' => new \Zend_Db_Expr('tp.min_price'),
             ]
@@ -556,7 +573,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
      *
      * @return $this
      */
-    protected function _movePriceDataToIndexTable()
+    protected function _movePriceDataToIndexTable($entityIds = null)
     {
         $columns = [
             'entity_id' => 'entity_id',
@@ -574,6 +591,10 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
         $table = $this->_getDefaultFinalPriceTable();
         $select = $connection->select()->from($table, $columns);
 
+        if ($entityIds !== null) {
+            $select->where('entity_id in (?)', $entityIds);
+        }
+
         $query = $select->insertFromSelect($this->getIdxTable(), [], false);
         $connection->query($query);
 
diff --git a/app/code/Magento/CatalogSearch/Model/Adapter/Mysql/Dynamic/DataProvider.php b/app/code/Magento/CatalogSearch/Model/Adapter/Mysql/Dynamic/DataProvider.php
index b486feeafb6..cedd874dbde 100644
--- a/app/code/Magento/CatalogSearch/Model/Adapter/Mysql/Dynamic/DataProvider.php
+++ b/app/code/Magento/CatalogSearch/Model/Adapter/Mysql/Dynamic/DataProvider.php
@@ -135,7 +135,10 @@ class DataProvider implements DataProviderInterface
         $column = $select->getPart(Select::COLUMNS)[0];
         $select->reset(Select::COLUMNS);
         $rangeExpr = new \Zend_Db_Expr(
-            $this->connection->quoteInto('(FLOOR(' . $column[1] . ' / ? ) + 1)', $range)
+            $this->connection->getIfNullSql(
+                $this->connection->quoteInto('FLOOR(' . $column[1] . ' / ? ) + 1', $range),
+                1
+            )
         );
 
         $select
diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index 814508cd629..d21d0931218 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -48,14 +48,58 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
     protected function reindex($entityIds = null)
     {
         if ($this->hasEntity() || !empty($entityIds)) {
-            $this->_prepareFinalPriceData($entityIds);
+            if (!empty($entityIds)) {
+                $allEntityIds = $this->getRelatedProduct($entityIds);
+                $this->prepareFinalPriceDataForType($allEntityIds, null);
+            } else {
+                $this->_prepareFinalPriceData($entityIds);
+            }
             $this->_applyCustomOption();
-            $this->_applyConfigurableOption();
-            $this->_movePriceDataToIndexTable();
+            $this->_applyConfigurableOption($entityIds);
+            $this->_movePriceDataToIndexTable($entityIds);
         }
         return $this;
     }
 
+    /**
+     * Get related product
+     *
+     * @param int[] $entityIds
+     */
+    private function getRelatedProduct($entityIds)
+    {
+        $select = $this->getConnection()->select()->union([
+            $this->getConnection()
+                ->select()
+                ->from(
+                    $this->getTable('catalog_product_super_link'),
+                    'parent_id'
+                )->where(
+                    'parent_id in (?)', $entityIds
+                ),
+            $this->getConnection()
+                ->select()
+                ->from(
+                    $this->getTable('catalog_product_super_link'),
+                    'product_id'
+                )->where(
+                    'parent_id in (?)', $entityIds
+                ),
+            $this->getConnection()
+                 ->select()
+                 ->from(
+                     $this->getTable('catalog_product_super_link'),
+                     'product_id'
+                 )->where(
+                     'product_id in (?)', $entityIds
+                 )
+        ]);
+        return array_map(
+            'intval',
+             $this->getConnection()->fetchCol($select)
+        );
+    }
+
     /**
      * Retrieve table name for custom option temporary aggregation data
      *
@@ -105,7 +149,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
      * @return \Magento\ConfigurableProduct\Model\ResourceModel\Product\Indexer\Price\Configurable
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    protected function _applyConfigurableOption()
+    protected function _applyConfigurableOption($entityIds)
     {
         $connection = $this->getConnection();
         $coaTable = $this->_getConfigurableOptionAggregateTable();
-- 
GitLab


From 755583225d9fccf133211de18a06768bb15e526f Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Wed, 21 Oct 2015 16:49:17 +0300
Subject: [PATCH 040/162] MAGETWO-40789: Incorrectly calculated Regular price
 for simple product with Custom option of Percent type

---
 .../Magento/Catalog/Block/Product/View.php    |  1 -
 .../Catalog/Block/Product/View/Options.php    |  3 +-
 .../Catalog/Model/Product/Option/Value.php    | 15 +++++
 .../Block/Product/View/OptionsTest.php        | 54 +++++++++++++++--
 .../_files/product_with_dropdown_option.php   | 60 +++++++++++++++++++
 .../product_with_dropdown_option_rollback.php | 21 +++++++
 6 files changed, 146 insertions(+), 8 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
 create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option_rollback.php

diff --git a/app/code/Magento/Catalog/Block/Product/View.php b/app/code/Magento/Catalog/Block/Product/View.php
index 5a2ceac3be7..193dee6b511 100644
--- a/app/code/Magento/Catalog/Block/Product/View.php
+++ b/app/code/Magento/Catalog/Block/Product/View.php
@@ -219,7 +219,6 @@ class View extends AbstractProduct implements \Magento\Framework\DataObject\Iden
         /* @var $product \Magento\Catalog\Model\Product */
         $product = $this->getProduct();
 
-        $config = [];
         if (!$this->hasOptions()) {
             $config = [
                 'productId' => $product->getId(),
diff --git a/app/code/Magento/Catalog/Block/Product/View/Options.php b/app/code/Magento/Catalog/Block/Product/View/Options.php
index 5e4efdb8e56..e23b253872e 100644
--- a/app/code/Magento/Catalog/Block/Product/View/Options.php
+++ b/app/code/Magento/Catalog/Block/Product/View/Options.php
@@ -162,7 +162,7 @@ class Options extends \Magento\Framework\View\Element\Template
         $data = [
             'prices' => [
                 'oldPrice' => [
-                    'amount' => $this->pricingHelper->currency($option->getPrice(false), false, false),
+                    'amount' => $this->pricingHelper->currency($option->getRegularPrice(), false, false),
                     'adjustments' => [],
                 ],
                 'basePrice' => [
@@ -208,7 +208,6 @@ class Options extends \Magento\Framework\View\Element\Template
         $config = [];
         foreach ($this->getOptions() as $option) {
             /* @var $option \Magento\Catalog\Model\Product\Option */
-            $priceValue = 0;
             if ($option->getGroupByType() == \Magento\Catalog\Model\Product\Option::OPTION_GROUP_SELECT) {
                 $tmpPriceValues = [];
                 foreach ($option->getValues() as $value) {
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Value.php b/app/code/Magento/Catalog/Model/Product/Option/Value.php
index 863c3a374b1..9a84ec22921 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Value.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Value.php
@@ -238,6 +238,21 @@ class Value extends AbstractModel implements \Magento\Catalog\Api\Data\ProductCu
         return $this->_getData(self::KEY_PRICE);
     }
 
+    /**
+     * Return regular price.
+     *
+     * @return float|int
+     */
+    public function getRegularPrice()
+    {
+        if ($this->getPriceType() == self::TYPE_PERCENT) {
+            $basePrice = $this->getOption()->getProduct()->getPriceInfo()->getPrice('regular_price')->getAmount()->getValue();
+            $price = $basePrice * ($this->_getData(self::KEY_PRICE) / 100);
+            return $price;
+        }
+        return $this->_getData(self::KEY_PRICE);
+    }
+
     /**
      * Enter description here...
      *
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/View/OptionsTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/View/OptionsTest.php
index 5f715b8c674..5d7fd4623aa 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/View/OptionsTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/View/OptionsTest.php
@@ -7,8 +7,6 @@ namespace Magento\Catalog\Block\Product\View;
 
 /**
  * Test class for \Magento\Catalog\Block\Product\View\Options.
- *
- * @magentoDataFixture Magento/Catalog/_files/product_simple.php
  */
 class OptionsTest extends \PHPUnit_Framework_TestCase
 {
@@ -39,6 +37,9 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
         );
     }
 
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/product_simple.php
+     */
     public function testSetGetProduct()
     {
         $this->assertSame($this->_product, $this->_block->getProduct());
@@ -50,11 +51,17 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
         $this->assertSame($product, $this->_block->getProduct());
     }
 
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/product_simple.php
+     */
     public function testGetGroupOfOption()
     {
         $this->assertEquals('default', $this->_block->getGroupOfOption('test'));
     }
 
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/product_simple.php
+     */
     public function testGetOptions()
     {
         $options = $this->_block->getOptions();
@@ -64,15 +71,52 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/product_simple.php
+     */
     public function testHasOptions()
     {
         $this->assertTrue($this->_block->hasOptions());
     }
 
+    /**
+     * @magentoDataFixture Magento/Catalog/_files/product_with_dropdown_option.php
+     */
     public function testGetJsonConfig()
     {
-        $config = json_decode($this->_block->getJsonConfig());
-        $this->assertNotNull($config);
-        $this->assertNotEmpty($config);
+        $config = json_decode($this->_block->getJsonConfig(), true);
+        $configValues = array_values($config);
+        $this->assertEquals($this->getExpectedJsonConfig(), array_values($configValues[0]));
+    }
+
+    /**
+     * Expected data for testGetJsonConfig
+     *
+     * @return array
+     */
+    private function getExpectedJsonConfig()
+    {
+        return [
+            0 =>
+                ['prices' =>
+                    ['oldPrice' =>
+                        ['amount' => 10, 'adjustments' => []],
+                        'basePrice' => ['amount' => 10],
+                        'finalPrice' => ['amount' => 10]
+                    ],
+                    'type' => 'fixed',
+                    'name' => 'drop_down option 1',
+                ],
+            1 =>
+                ['prices' =>
+                    ['oldPrice' =>
+                        ['amount' => 40, 'adjustments' => []],
+                        'basePrice' => ['amount' => 40],
+                        'finalPrice' => ['amount' => 40],
+                    ],
+                    'type' => 'percent',
+                    'name' => 'drop_down option 2',
+                ],
+        ];
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
new file mode 100644
index 00000000000..9fe6ead6d9c
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var $product \Magento\Catalog\Model\Product */
+$product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Catalog\Model\Product');
+$product->setTypeId(
+    'simple'
+)->setId(
+    1
+)->setAttributeSetId(
+    4
+)->setWebsiteIds(
+    [1]
+)->setName(
+    'Simple Product With Custom Options'
+)->setSku(
+    'simple'
+)->setPrice(
+    200
+)->setMetaTitle(
+    'meta title'
+)->setMetaKeyword(
+    'meta keyword'
+)->setMetaDescription(
+    'meta description'
+)->setVisibility(
+    \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH
+)->setStatus(
+    \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED
+)->setCanSaveCustomOptions(
+    true
+)->setProductOptions(
+    [
+        [
+            'title' => 'drop_down option',
+            'type' => 'drop_down',
+            'is_require' => true,
+            'sort_order' => 4,
+            'values' => [
+                [
+                    'title' => 'drop_down option 1',
+                    'price' => 10,
+                    'price_type' => 'fixed',
+                    'sku' => 'drop_down option 1 sku',
+                    'sort_order' => 1,
+                ],
+                [
+                    'title' => 'drop_down option 2',
+                    'price' => 20,
+                    'price_type' => 'percent',
+                    'sku' => 'drop_down option 2 sku',
+                    'sort_order' => 2,
+                ],
+            ],
+        ]
+    ]
+)->save();
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option_rollback.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option_rollback.php
new file mode 100644
index 00000000000..5bc5625837d
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option_rollback.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var \Magento\Framework\Registry $registry */
+$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry');
+
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', true);
+
+/** @var $product \Magento\Catalog\Model\Product */
+$product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Catalog\Model\Product');
+$product->load(1);
+if ($product->getId()) {
+    $product->delete();
+}
+
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', false);
-- 
GitLab


From 13bcc629eabaa77960b3ec5246a5c4744863c7e4 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Wed, 21 Oct 2015 16:56:57 +0300
Subject: [PATCH 041/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Product/Indexer/Price/DefaultPrice.php            | 11 +++++------
 .../Product/Indexer/Price/Configurable.php            |  3 ++-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
index c5eb2405bcb..dd5a49a9af6 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
@@ -225,7 +225,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
      */
     protected function _prepareFinalPriceData($entityIds = null)
     {
-       return $this->prepareFinalPriceDataForType($entityIds, $this->getTypeId());
+        return $this->prepareFinalPriceDataForType($entityIds, $this->getTypeId());
     }
 
     /**
@@ -275,11 +275,9 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
             ' AND tp.customer_group_id = cg.customer_group_id',
             []
         );
-        if ($type !== null){
-            $select->where(
-                'e.type_id = ?',
-                $type
-            );
+
+        if ($type !== null) {
+            $select->where('e.type_id = ?', $type);
         }
 
         // add enable products limitation
@@ -571,6 +569,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
     /**
      * Mode Final Prices index to primary temporary index table
      *
+     * @param int[]|null $entityIds
      * @return $this
      */
     protected function _movePriceDataToIndexTable($entityIds = null)
diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index d21d0931218..662ac5e6091 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -65,6 +65,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
      * Get related product
      *
      * @param int[] $entityIds
+     * @return int[]
      */
     private function getRelatedProduct($entityIds)
     {
@@ -149,7 +150,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
      * @return \Magento\ConfigurableProduct\Model\ResourceModel\Product\Indexer\Price\Configurable
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    protected function _applyConfigurableOption($entityIds)
+    protected function _applyConfigurableOption()
     {
         $connection = $this->getConnection();
         $coaTable = $this->_getConfigurableOptionAggregateTable();
-- 
GitLab


From b593fb9aa836d5b9bb4b6282de77e6c6b8e7c979 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Wed, 21 Oct 2015 17:06:30 +0300
Subject: [PATCH 042/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Product/Indexer/Price/Configurable.php    | 53 +++++++++----------
 1 file changed, 26 insertions(+), 27 deletions(-)

diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index 662ac5e6091..d4719318ae8 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -69,35 +69,34 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
      */
     private function getRelatedProduct($entityIds)
     {
-        $select = $this->getConnection()->select()->union([
-            $this->getConnection()
-                ->select()
-                ->from(
-                    $this->getTable('catalog_product_super_link'),
-                    'parent_id'
-                )->where(
-                    'parent_id in (?)', $entityIds
-                ),
-            $this->getConnection()
-                ->select()
-                ->from(
-                    $this->getTable('catalog_product_super_link'),
-                    'product_id'
-                )->where(
-                    'parent_id in (?)', $entityIds
-                ),
-            $this->getConnection()
-                 ->select()
-                 ->from(
-                     $this->getTable('catalog_product_super_link'),
-                     'product_id'
-                 )->where(
-                     'product_id in (?)', $entityIds
-                 )
-        ]);
+        $select = $this->getConnection()->select()->union(
+            [
+                $this->getConnection()->select()->from(
+                        $this->getTable('catalog_product_super_link'),
+                        'parent_id'
+                    )->where(
+                        'parent_id in (?)',
+                        $entityIds
+                    ),
+                $this->getConnection()->select()->from(
+                        $this->getTable('catalog_product_super_link'),
+                        'product_id'
+                    )->where(
+                        'parent_id in (?)',
+                        $entityIds
+                    ),
+                $this->getConnection()->select()->from(
+                        $this->getTable('catalog_product_super_link'),
+                        'product_id'
+                    )->where(
+                        'product_id in (?)',
+                        $entityIds
+                    ),
+            ]
+        );
         return array_map(
             'intval',
-             $this->getConnection()->fetchCol($select)
+            $this->getConnection()->fetchCol($select)
         );
     }
 
-- 
GitLab


From 59cb5455cb735753ed13616a5da869ee88764a43 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Wed, 21 Oct 2015 17:13:47 +0300
Subject: [PATCH 043/162] MAGETWO-44332: After click to add video button
 appears alert message

Fix text
---
 .../view/adminhtml/web/js/get-video-information.js            | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
index 136a6dde21c..f926f8c5e61 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
@@ -395,7 +395,7 @@ require([
                             errReason = tmpError.reason;
 
                             if (['keyInvalid'].indexOf(errReason) !== -1) {
-                                errorsMessage.push('Youtube API key is an invalid');
+                                errorsMessage.push('Youtube API key is invalid');
 
                                 break;
                             }
@@ -403,7 +403,7 @@ require([
                             errorsMessage.push(tmpError.message);
                         }
 
-                        return 'Video can\'t be shown by reason: ' + $.unique(errorsMessage).join(', ');
+                        return 'Video cannot be shown due to the following reason: ' + $.unique(errorsMessage).join(', ');
                     };
 
                     if (data.error && data.error.code === 400) {
-- 
GitLab


From 5857035c5e52bbadc5b8bdd58b98e051de885040 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Wed, 21 Oct 2015 17:30:46 +0300
Subject: [PATCH 044/162] MAGETWO-44261: slightly changed style

---
 .../blank/Magento_ProductVideo/web/css/source/_module.less      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
index 50983ca119e..880d0f6fbda 100644
--- a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
@@ -45,7 +45,7 @@
 }
 
 .product-video {
-    height: 93%;
+    height: 90%;
     margin-top: 5%;
     position: absolute;
     top: 0;
-- 
GitLab


From ba972c7ac9a6ef2719998311ac9d1e3416176cb4 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Wed, 21 Oct 2015 17:56:01 +0300
Subject: [PATCH 045/162] MAGETWO-44405: Unable to change item cart qty from
 item configure page

---
 .../view/frontend/layout/catalog_product_view.xml             | 4 ----
 .../Magento/ProductVideo/view/frontend/requirejs-config.js    | 3 ++-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml
index 18417e1619d..59d2ef3e2cd 100644
--- a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml
+++ b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml
@@ -6,10 +6,6 @@
 */
 -->
 <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
-    <head>
-        <link src="Magento_ProductVideo::js/fotorama-add-video-events.js"/>
-        <link src="Magento_ProductVideo::js/load-player.js"/>
-    </head>
     <body>
         <referenceContainer name="product.info.media">
             <block class="Magento\ProductVideo\Block\Product\View\Gallery" name="product.info.media.video" after="product.info.media.image" template="product/view/gallery.phtml"/>
diff --git a/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js b/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js
index e19b89135b4..7f488a2fa2f 100644
--- a/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js
+++ b/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js
@@ -6,7 +6,8 @@
 var config = {
     map: {
         '*': {
-            loadPlayer: 'Magento_ProductVideo/js/load-player'
+            loadPlayer: 'Magento_ProductVideo/js/load-player',
+            fotoramaVideoEvents: 'Magento_ProductVideo/js/fotorama-add-video-events'
         }
     }
 };
-- 
GitLab


From 1d3fb90a8e2908b3da2a203004645d76117b0eac Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Wed, 21 Oct 2015 18:06:16 +0300
Subject: [PATCH 046/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Product/Indexer/Price/Configurable.php    | 30 ++++++-------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index d4719318ae8..bc74ed80980 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -71,27 +71,15 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
     {
         $select = $this->getConnection()->select()->union(
             [
-                $this->getConnection()->select()->from(
-                        $this->getTable('catalog_product_super_link'),
-                        'parent_id'
-                    )->where(
-                        'parent_id in (?)',
-                        $entityIds
-                    ),
-                $this->getConnection()->select()->from(
-                        $this->getTable('catalog_product_super_link'),
-                        'product_id'
-                    )->where(
-                        'parent_id in (?)',
-                        $entityIds
-                    ),
-                $this->getConnection()->select()->from(
-                        $this->getTable('catalog_product_super_link'),
-                        'product_id'
-                    )->where(
-                        'product_id in (?)',
-                        $entityIds
-                    ),
+                $this->getConnection()->select()
+                    ->from( $this->getTable('catalog_product_super_link'), 'parent_id')
+                    ->where('parent_id in (?)', $entityIds),
+                $this->getConnection()->select()
+                    ->from($this->getTable('catalog_product_super_link'), 'product_id')
+                    ->where('parent_id in (?)', $entityIds),
+                $this->getConnection()->select()
+                    ->from($this->getTable('catalog_product_super_link'), 'product_id')
+                    ->where('product_id in (?)', $entityIds),
             ]
         );
         return array_map(
-- 
GitLab


From b37faa38de69e26ed0a549916066b18d25de6fd0 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Wed, 21 Oct 2015 18:23:00 +0300
Subject: [PATCH 047/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Model/ResourceModel/Product/Indexer/Price/Configurable.php  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index bc74ed80980..d81a4e96af0 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -72,7 +72,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
         $select = $this->getConnection()->select()->union(
             [
                 $this->getConnection()->select()
-                    ->from( $this->getTable('catalog_product_super_link'), 'parent_id')
+                    ->from($this->getTable('catalog_product_super_link'), 'parent_id')
                     ->where('parent_id in (?)', $entityIds),
                 $this->getConnection()->select()
                     ->from($this->getTable('catalog_product_super_link'), 'product_id')
-- 
GitLab


From 43f1fbcd10b98f6b7886ae51397369eee6ebe54a Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Wed, 21 Oct 2015 18:27:17 +0300
Subject: [PATCH 048/162] MAGETWO-44274: SQL error appears if Save & Duplicate
 product with images

Fix duplicate images
---
 .../Model/ResourceModel/Product/Attribute/Backend/Media.php     | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
index a77ea68ae16..1edaa8d87fd 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
@@ -345,7 +345,9 @@ class Media extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
 
         foreach ($this->getConnection()->fetchAll($select) as $row) {
             $row['value_id'] = $valueIdMap[$row['value_id']];
+            unset($row['record_id']);
             $this->insertGalleryValueInStore($row);
+            $this->bindValueToEntity($row['value_id'], $newProductId);
         }
 
         return $this;
-- 
GitLab


From d85e46d5f1dbdb1e02f20f47375c9684185da0d4 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Wed, 21 Oct 2015 10:58:06 -0500
Subject: [PATCH 049/162] MAGETWO-43907 Custom admin URL breaks admin log in
 after installation

- improved error message
---
 setup/view/magento/setup/web-configuration.phtml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/setup/view/magento/setup/web-configuration.phtml b/setup/view/magento/setup/web-configuration.phtml
index 0b91a4f2f7e..1522962968d 100644
--- a/setup/view/magento/setup/web-configuration.phtml
+++ b/setup/view/magento/setup/web-configuration.phtml
@@ -20,7 +20,7 @@ $hints = [
     ),
     'admin' => sprintf(
         '<p>%s</p>',
-        'A unique URL helps keep store and customer info safer. Use letters, numbers or underscores.'
+        'A unique URL helps keep store and customer info safer. Use only letters, numbers, and underscore characters.'
     )
 ];
 ?>
@@ -113,7 +113,7 @@ $hints = [
                         >
                     <div class="error-container">
                         <span ng-show="webconfig.admin.$error">
-                            Please enter a valid admin URL path. Use letters, numbers or underscores.
+                            Please enter a valid admin URL path. Use only letters, numbers, and underscore characters.
                         </span>
                     </div>
                 </div>
-- 
GitLab


From 462d4defd34a229ec7399db7a9af40f276e3a8fd Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Wed, 21 Oct 2015 11:57:36 -0500
Subject: [PATCH 050/162] MAGETWO-43907 Custom admin URL breaks admin log in
 after installation

- improved error message
---
 setup/view/magento/setup/web-configuration.phtml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup/view/magento/setup/web-configuration.phtml b/setup/view/magento/setup/web-configuration.phtml
index 1522962968d..5101643a6de 100644
--- a/setup/view/magento/setup/web-configuration.phtml
+++ b/setup/view/magento/setup/web-configuration.phtml
@@ -20,7 +20,7 @@ $hints = [
     ),
     'admin' => sprintf(
         '<p>%s</p>',
-        'A unique URL helps keep store and customer info safer. Use only letters, numbers, and underscore characters.'
+        'A unique URL helps keep your store and customers safer. Use only letters, numbers, and underscore characters.'
     )
 ];
 ?>
-- 
GitLab


From 462893481c481f0138f23f0c250646ced07dd747 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 21 Oct 2015 16:30:58 -0500
Subject: [PATCH 051/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php      | 14 ++----
 .../Unit/Model/Design/Backend/ThemeTest.php   | 47 +++++++++----------
 app/code/Magento/Theme/etc/config.xml         |  5 --
 3 files changed, 25 insertions(+), 41 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index d77f694b4b4..4b5f23bcf34 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -66,22 +66,16 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
+     * {@inheritdoc}. In addition, it cleans all
      *
      * @return $this
      */
     public function afterSave()
     {
-        $types = array_keys(
-            $this->_config->getValue(
-                self::XML_PATH_INVALID_CACHES,
-                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-            )
-        );
+        parent::afterSave();
         if ($this->isValueChanged()) {
-            $this->cacheTypeList->invalidate($types);
+            $this->_cacheManager->clean();
         }
-
-        return parent::afterSave();
+        return $this;
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index e83a4e4ca30..75530869fa5 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -18,9 +18,9 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Model\Context
      */
-    protected $contextMock;
+    protected $context;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -32,6 +32,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
+    /**
+     * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cacheManagerMock;
+
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -39,23 +44,27 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
+        $objectManager = new ObjectManager($this);
+        $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->context = $objectManager->getObject(
+            'Magento\Framework\Model\Context',
+            ['cacheManager' => $this->cacheManagerMock,]
+        );
+
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
         $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->contextMock->expects($this->once())
-            ->method('getEventDispatcher')
-            ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
         $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
-        $this->model = (new ObjectManager($this))->getObject(
+
+        $this->model = $objectManager->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
-                'context' => $this->contextMock,
+                'context' => $this->context,
                 'cacheTypeList' => $this->cacheTypeListMock,
                 'config' => $this->configMock,
             ]
@@ -86,25 +95,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         $this->cacheTypeListMock->expects($this->exactly($callNumber))
             ->method('invalidate');
+        $this->cacheManagerMock->expects($this->exactly($callNumber))
+            ->method('clean');
         $this->configMock->expects($this->any())
             ->method('getValue')
-            ->willReturnMap(
-                [
-                    [
-                        Theme::XML_PATH_INVALID_CACHES,
-                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
-                        null,
-                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
-                    ],
-                    [
-                        null,
-                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
-                        null,
-                        $oldValue
-                    ],
-
-                ]
-            );
+            ->willReturn($oldValue);
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
@@ -113,7 +108,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         return [
             [0, 'some_value'],
-            [2, 'other_value'],
+            [1, 'other_value'],
         ];
     }
 }
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 4f25cd7e2ab..332043e56df 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,11 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
-            <invalid_caches>
-                <block_html />
-                <layout />
-                <translate />
-            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
-- 
GitLab


From 96878e4e3bf4f07d86be7587d8b28f04f683e0b6 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 21 Oct 2015 18:42:07 -0500
Subject: [PATCH 052/162] MAGETWO-44189: Does not work to switch the language
 in the admin area  - remove locale switcher from backend

---
 .../Magento/Backend/Block/Page/Locale.php     | 94 -------------------
 .../Backend/view/adminhtml/layout/default.xml |  3 +-
 .../adminhtml/templates/page/locale.phtml     | 31 ------
 3 files changed, 1 insertion(+), 127 deletions(-)
 delete mode 100644 app/code/Magento/Backend/Block/Page/Locale.php
 delete mode 100644 app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml

diff --git a/app/code/Magento/Backend/Block/Page/Locale.php b/app/code/Magento/Backend/Block/Page/Locale.php
deleted file mode 100644
index d6d279ac760..00000000000
--- a/app/code/Magento/Backend/Block/Page/Locale.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Backend locale switcher block
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Backend\Block\Page;
-
-use Magento\Framework\App\ActionInterface;
-
-class Locale extends \Magento\Backend\Block\Template
-{
-    /**
-     * Path to template file in theme
-     *
-     * @var string
-     */
-    protected $_template = 'page/locale.phtml';
-
-    /**
-     * @var \Magento\Framework\Locale\ListsInterface
-     */
-    protected $_localeLists;
-
-    /**
-     * @var \Magento\Framework\Locale\ResolverInterface
-     */
-    protected $_localeResolver;
-
-    /**
-     * @var \Magento\Framework\Url\Helper\Data
-     */
-    protected $_urlHelper;
-
-    /**
-     * @param \Magento\Backend\Block\Template\Context $context
-     * @param \Magento\Framework\Locale\ListsInterface $localeLists
-     * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
-     * @param \Magento\Framework\Url\Helper\Data $urlHelper
-     * @param array $data
-     */
-    public function __construct(
-        \Magento\Backend\Block\Template\Context $context,
-        \Magento\Framework\Locale\ListsInterface $localeLists,
-        \Magento\Framework\Locale\ResolverInterface $localeResolver,
-        \Magento\Framework\Url\Helper\Data $urlHelper,
-        array $data = []
-    ) {
-        $this->_localeLists = $localeLists;
-        $this->_localeResolver = $localeResolver;
-        $this->_urlHelper = $urlHelper;
-        parent::__construct($context, $data);
-    }
-
-    /**
-     * Prepare URL for change locale
-     *
-     * @return string
-     */
-    public function getChangeLocaleUrl()
-    {
-        return $this->getUrl('adminhtml/index/changeLocale');
-    }
-
-    /**
-     * Prepare current URL for referer
-     *
-     * @return string
-     */
-    public function getUrlForReferer()
-    {
-        return ActionInterface::PARAM_NAME_URL_ENCODED . '/' . $this->_urlHelper->getEncodedUrl();
-    }
-
-    /**
-     * Retrieve locale select element
-     *
-     * @return string
-     */
-    public function getLocaleSelect()
-    {
-        $html = $this->getLayout()->createBlock('Magento\Framework\View\Element\Html\Select')
-            ->setName('locale')
-            ->setId('footer_interface_locale')
-            ->setTitle(__('Interface Language'))
-            ->setClass('admin__control-select')
-            ->setValue($this->_localeResolver->getLocale())
-            ->setOptions($this->_localeLists->getTranslatedOptionLocales())
-            ->getHtml();
-
-        return $html;
-    }
-}
diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index f960316fcc9..56c7c5d553a 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -53,8 +53,7 @@
             <block class="Magento\Framework\View\Element\Template" name="page.actions.toolbar" template="Magento_Backend::pageactions.phtml" after="-"/>
         </referenceContainer>
         <referenceContainer name="footer">
-            <block class="Magento\Backend\Block\Page\Locale" name="locale.switcher" template="Magento_Backend::page/locale.phtml"/>
-            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-6 col-m-offset-1">
+            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-12">
                 <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
                 <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
                 <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
deleted file mode 100644
index 03347fbcbe6..00000000000
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-// @codingStandardsIgnoreFile
-
-?>
-<div class="locale-switcher col-m-5">
-    <label class="label" for="footer_interface_locale"><span><?php /* @escapeNotVerified */ echo __('Interface Locale'); ?></span></label>
-    <?php /* @escapeNotVerified */ echo $block->getLocaleSelect(); ?>
-    <script>
-        require([
-                'mage/validation/url'
-            ],
-            function (urlValidator) {
-                'use strict';
-
-                var elem = document.getElementById('footer_interface_locale');
-
-                function onChange() {
-                    urlValidator.redirect('<?php /* @escapeNotVerified */ echo $block->getChangeLocaleUrl() ?>locale/' +
-                    elem.value +
-                    '/<?php /* @escapeNotVerified */ echo $block->getUrlForReferer() ?>');
-                }
-
-                elem.addEventListener('change', onChange);
-            });
-    </script>
-</div>
-- 
GitLab


From 21ee93ce8e95ffd5d8b736d55a7ee1bb309954ba Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Thu, 22 Oct 2015 12:24:07 +0300
Subject: [PATCH 053/162] MAGETWO-44261: added a little change of style

---
 .../blank/Magento_ProductVideo/web/css/source/_module.less      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
index 880d0f6fbda..b679e32e160 100644
--- a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
@@ -45,7 +45,7 @@
 }
 
 .product-video {
-    height: 90%;
+    height: 88%;
     margin-top: 5%;
     position: absolute;
     top: 0;
-- 
GitLab


From 97a997ec3887cedd746fe99163525d8bb2d135eb Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Thu, 22 Oct 2015 12:24:08 +0300
Subject: [PATCH 054/162] MAGETWO-44417: Mini Cart: Can't clear "qty" field
 with "back space" and "delete" buttons

---
 .../Checkout/view/frontend/web/js/sidebar.js     | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index 34501bbeb10..1f0df987b02 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -64,6 +64,9 @@ define([
                 event.stopPropagation();
                 self._updateItemQty($(event.currentTarget));
             };
+            events['focusout ' + this.options.item.qty] = function(event) {
+                self._validateQty($(event.currentTarget));
+            };
 
             this._on(this.element, events);
             this._calcHeight();
@@ -92,7 +95,6 @@ define([
             if (this._isValidQty(itemQty, elem.val())) {
                 $('#update-cart-item-' + itemId).show('fade', 300);
             } else if (elem.val() == 0) {
-                elem.val(itemQty);
                 this._hideItemButton(elem);
             } else {
                 this._hideItemButton(elem);
@@ -112,6 +114,18 @@ define([
                 && (changed - 0 > 0);
         },
 
+        /**
+         * @param {Object} elem
+         * @private
+         */
+        _validateQty: function(elem) {
+            var itemQty = elem.data('item-qty');
+
+            if (!this._isValidQty(itemQty, elem.val())) {
+                elem.val(itemQty);
+            }
+        },
+
         _hideItemButton: function(elem) {
             var itemId = elem.data('cart-item');
             $('#update-cart-item-' + itemId).hide('fade', 300);
-- 
GitLab


From 18f942f6ab4efc1c5740450ddd57e77d8bd68ad5 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Thu, 22 Oct 2015 12:43:41 +0300
Subject: [PATCH 055/162] MAGETWO-44261: fixed styles for mobile too

---
 .../blank/Magento_ProductVideo/web/css/source/_module.less | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
index b679e32e160..454920e2199 100644
--- a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
@@ -45,11 +45,14 @@
 }
 
 .product-video {
-    height: 88%;
-    margin-top: 5%;
+    height: 75%;
+    left: 0;
     position: absolute;
     top: 0;
     width: 100%;
+    right: 0;
+    bottom: 0;
+    margin: auto;
     iframe {
         height: 100%;
         left: 0;
-- 
GitLab


From ef9a1011ba42feb9cd4382a5f20513989e5d75ed Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Thu, 22 Oct 2015 13:42:35 +0300
Subject: [PATCH 056/162] MAGETWO-44391: Credit Card validation is not
 performed after changing focus from field

---
 app/code/Magento/Payment/view/frontend/web/transparent.js | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/app/code/Magento/Payment/view/frontend/web/transparent.js b/app/code/Magento/Payment/view/frontend/web/transparent.js
index 66b3203d7bc..bbbd6ce1b3a 100644
--- a/app/code/Magento/Payment/view/frontend/web/transparent.js
+++ b/app/code/Magento/Payment/view/frontend/web/transparent.js
@@ -46,6 +46,11 @@ define([
                     .off('click')
                     .on('click', $.proxy(this._placeOrderHandler, this));
             }
+
+            this.element.validation();
+            $('[data-container="' + this.options.gateway + '-cc-number"]').on('focusout', function () {
+                $(this).valid();
+            });
         },
 
         /**
-- 
GitLab


From 42828af1d8ceec9b65a4cde7a4a4e4816e418f8d Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Thu, 22 Oct 2015 13:58:21 +0300
Subject: [PATCH 057/162] MAGETWO-40789: Incorrectly calculated Regular price
 for simple product with Custom option of Percent type

---
 app/code/Magento/Catalog/Model/Product.php    |  6 +-
 .../Magento/Catalog/Model/Product/Option.php  | 75 ++++++++++---------
 .../_files/product_with_dropdown_option.php   |  2 +-
 3 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php
index 99709b513ca..58bdfe24915 100644
--- a/app/code/Magento/Catalog/Model/Product.php
+++ b/app/code/Magento/Catalog/Model/Product.php
@@ -337,7 +337,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
      * @param Product\Link $productLink
      * @param Product\Configuration\Item\OptionFactory $itemOptionFactory
      * @param \Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory $stockItemFactory
-     * @param Product\Option $catalogProductOption
+     * @param Product\OptionFactory $catalogProductOption
      * @param Product\Visibility $catalogProductVisibility
      * @param Product\Attribute\Source\Status $catalogProductStatus
      * @param Product\Media\Config $catalogProductMediaConfig
@@ -376,7 +376,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
         Product\Link $productLink,
         \Magento\Catalog\Model\Product\Configuration\Item\OptionFactory $itemOptionFactory,
         \Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory $stockItemFactory,
-        \Magento\Catalog\Model\Product\Option $catalogProductOption,
+        \Magento\Catalog\Model\Product\OptionFactory $catalogProductOption,
         \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
         \Magento\Catalog\Model\Product\Attribute\Source\Status $catalogProductStatus,
         \Magento\Catalog\Model\Product\Media\Config $catalogProductMediaConfig,
@@ -405,7 +405,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
         $this->metadataService = $metadataService;
         $this->_itemOptionFactory = $itemOptionFactory;
         $this->_stockItemFactory = $stockItemFactory;
-        $this->_optionInstance = $catalogProductOption;
+        $this->_optionInstance = $catalogProductOption->create()->setProduct($this);
         $this->_catalogProductVisibility = $catalogProductVisibility;
         $this->_catalogProductStatus = $catalogProductStatus;
         $this->_catalogProductMediaConfig = $catalogProductMediaConfig;
diff --git a/app/code/Magento/Catalog/Model/Product/Option.php b/app/code/Magento/Catalog/Model/Product/Option.php
index 8b981d6f0b8..cf672e0f29f 100644
--- a/app/code/Magento/Catalog/Model/Product/Option.php
+++ b/app/code/Magento/Catalog/Model/Product/Option.php
@@ -4,15 +4,16 @@
  * See COPYING.txt for license details.
  */
 
-// @codingStandardsIgnoreFile
 
 namespace Magento\Catalog\Model\Product;
 
+use Magento\Catalog\Api\Data\ProductCustomOptionInterface;
 use Magento\Catalog\Api\Data\ProductCustomOptionValuesInterface;
 use Magento\Catalog\Model\Product;
 use Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection;
 use Magento\Catalog\Pricing\Price\BasePrice;
 use Magento\Framework\Exception\LocalizedException;
+use Magento\Framework\Model\AbstractExtensibleModel;
 
 /**
  * Catalog product option model
@@ -25,8 +26,7 @@ use Magento\Framework\Exception\LocalizedException;
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  * @SuppressWarnings(PHPMD.ExcessivePublicCount)
  */
-class Option extends \Magento\Framework\Model\AbstractExtensibleModel
-    implements \Magento\Catalog\Api\Data\ProductCustomOptionInterface
+class Option extends AbstractExtensibleModel implements ProductCustomOptionInterface
 {
     const OPTION_GROUP_TEXT = 'text';
 
@@ -77,31 +77,31 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
     /**
      * @var Product
      */
-    protected $_product;
+    protected $product;
 
     /**
      * @var array
      */
-    protected $_options = [];
+    protected $options = [];
 
     /**
      * @var array
      */
-    protected $_values = null;
+    protected $values = null;
 
     /**
      * Catalog product option value
      *
      * @var Option\Value
      */
-    protected $_productOptionValue;
+    protected $productOptionValue;
 
     /**
      * Product option factory
      *
      * @var \Magento\Catalog\Model\Product\Option\Type\Factory
      */
-    protected $_optionFactory;
+    protected $optionTypeFactory;
 
     /**
      * @var \Magento\Framework\Stdlib\StringUtils
@@ -140,8 +140,8 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
         \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
         array $data = []
     ) {
-        $this->_productOptionValue = $productOptionValue;
-        $this->_optionFactory = $optionFactory;
+        $this->productOptionValue = $productOptionValue;
+        $this->optionTypeFactory = $optionFactory;
         $this->validatorPool = $validatorPool;
         $this->string = $string;
         parent::__construct(
@@ -182,7 +182,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function addValue(Option\Value $value)
     {
-        $this->_values[$value->getId()] = $value;
+        $this->values[$value->getId()] = $value;
         return $this;
     }
 
@@ -194,8 +194,8 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getValueById($valueId)
     {
-        if (isset($this->_values[$valueId])) {
-            return $this->_values[$valueId];
+        if (isset($this->values[$valueId])) {
+            return $this->values[$valueId];
         }
 
         return null;
@@ -206,7 +206,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getValues()
     {
-        return $this->_values;
+        return $this->values;
     }
 
     /**
@@ -216,7 +216,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getValueInstance()
     {
-        return $this->_productOptionValue;
+        return $this->productOptionValue;
     }
 
     /**
@@ -227,7 +227,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function addOption($option)
     {
-        $this->_options[] = $option;
+        $this->options[] = $option;
         return $this;
     }
 
@@ -238,7 +238,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getOptions()
     {
-        return $this->_options;
+        return $this->options;
     }
 
     /**
@@ -249,7 +249,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function setOptions($options)
     {
-        $this->_options = $options;
+        $this->options = $options;
         return $this;
     }
 
@@ -260,7 +260,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function unsetOptions()
     {
-        $this->_options = [];
+        $this->options = [];
         return $this;
     }
 
@@ -271,7 +271,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getProduct()
     {
-        return $this->_product;
+        return $this->product;
     }
 
     /**
@@ -282,7 +282,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function setProduct(Product $product = null)
     {
-        $this->_product = $product;
+        $this->product = $product;
         return $this;
     }
 
@@ -294,7 +294,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getGroupByType($type = null)
     {
-        if (is_null($type)) {
+        if ($type === null) {
             $type = $this->getType();
         }
         $optionGroupsToTypes = [
@@ -324,7 +324,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
     {
         $group = $this->getGroupByType($type);
         if (!empty($group)) {
-            return $this->_optionFactory->create(
+            return $this->optionTypeFactory->create(
                 'Magento\Catalog\Model\Product\Option\Type\\' . $this->string->upperCaseWords($group)
             );
         }
@@ -451,24 +451,24 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
     /**
      * Delete prices of option
      *
-     * @param int $option_id
+     * @param int $optionId
      * @return $this
      */
-    public function deletePrices($option_id)
+    public function deletePrices($optionId)
     {
-        $this->getResource()->deletePrices($option_id);
+        $this->getResource()->deletePrices($optionId);
         return $this;
     }
 
     /**
      * Delete titles of option
      *
-     * @param int $option_id
+     * @param int $optionId
      * @return $this
      */
-    public function deleteTitles($option_id)
+    public function deleteTitles($optionId)
     {
-        $this->getResource()->deleteTitles($option_id);
+        $this->getResource()->deleteTitles($optionId);
         return $this;
     }
 
@@ -480,7 +480,8 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function getProductOptionCollection(Product $product)
     {
-        $collection = $this->getCollection()->addFieldToFilter(
+        $collection = clone $this->getCollection();
+        $collection->addFieldToFilter(
             'product_id',
             $product->getId()
         )->addTitleToResult(
@@ -519,12 +520,12 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      * Get collection of values by given option ids
      *
      * @param array $optionIds
-     * @param int $store_id
+     * @param int $storeId
      * @return Collection
      */
-    public function getOptionValuesByOptionId($optionIds, $store_id)
+    public function getOptionValuesByOptionId($optionIds, $storeId)
     {
-        $collection = $this->_productOptionValue->getValuesByOption($optionIds, $this->getId(), $store_id);
+        $collection = $this->productOptionValue->getValuesByOption($optionIds, $this->getId(), $storeId);
 
         return $collection;
     }
@@ -563,7 +564,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
     protected function _clearData()
     {
         $this->_data = [];
-        $this->_values = null;
+        $this->values = null;
         return $this;
     }
 
@@ -574,8 +575,8 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     protected function _clearReferences()
     {
-        if (!empty($this->_values)) {
-            foreach ($this->_values as $value) {
+        if (!empty($this->values)) {
+            foreach ($this->values as $value) {
                 $value->unsetOption();
             }
         }
@@ -848,7 +849,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel
      */
     public function setValues(array $values = null)
     {
-        $this->_values = $values;
+        $this->values = $values;
         return $this;
     }
 
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
index 9fe6ead6d9c..36ef0b4931f 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_with_dropdown_option.php
@@ -17,7 +17,7 @@ $product->setTypeId(
 )->setName(
     'Simple Product With Custom Options'
 )->setSku(
-    'simple'
+    'simple_dropdown_option'
 )->setPrice(
     200
 )->setMetaTitle(
-- 
GitLab


From 323f697dc3d9d88ca52b875fe2e9f59fbddbc41f Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Thu, 22 Oct 2015 15:15:03 +0300
Subject: [PATCH 058/162] MAGETWO-44106: New created category should be anchor
 by default

---
 app/code/Magento/Catalog/Setup/UpgradeData.php | 6 ++++++
 app/code/Magento/Catalog/etc/module.xml        | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php
index c5963538371..05ad5ca625b 100644
--- a/app/code/Magento/Catalog/Setup/UpgradeData.php
+++ b/app/code/Magento/Catalog/Setup/UpgradeData.php
@@ -139,6 +139,12 @@ class UpgradeData implements UpgradeDataInterface
                 'Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection'
             );
         }
+
+        if (version_compare($context->getVersion(), '2.0.3') < 0) {
+            /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */
+            $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
+            $categorySetup->updateAttribute(3, 51, 'default_value', 1);
+        }
         $setup->endSetup();
     }
 }
diff --git a/app/code/Magento/Catalog/etc/module.xml b/app/code/Magento/Catalog/etc/module.xml
index ee04bbc7431..e5bc1089fc9 100644
--- a/app/code/Magento/Catalog/etc/module.xml
+++ b/app/code/Magento/Catalog/etc/module.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
-    <module name="Magento_Catalog" setup_version="2.0.2">
+    <module name="Magento_Catalog" setup_version="2.0.3">
         <sequence>
             <module name="Magento_Eav"/>
             <module name="Magento_Cms"/>
-- 
GitLab


From 4f70e617c81b33cf13312d04fee87034b34ce303 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Thu, 22 Oct 2015 15:54:48 +0300
Subject: [PATCH 059/162] MAGETWO-44227: revert changes for xsd schema

---
 .../ProductVideo/Model/VideoExtractor.php     |   2 +-
 app/code/Magento/ProductVideo/etc/view.xml    |   2 +-
 app/code/Magento/Swatches/etc/view.xml        |   2 +-
 .../adminhtml/Magento/backend/etc/view.xml    |   2 +-
 .../adminhtml/Magento/backend/etc/view.xsd    |  57 ----
 .../frontend/Magento/blank/etc/view.xml       |   2 +-
 .../frontend/Magento/blank/etc/view.xsd       |  57 ----
 app/design/frontend/Magento/luma/etc/view.xml |   2 +-
 app/design/frontend/Magento/luma/etc/view.xsd |  57 ----
 .../Magento/Framework/Catalog/README.md       |   1 -
 .../Magento/Framework/Catalog/etc/view.xsd    |  57 ----
 .../Magento/Framework/Config/View.php         |  13 +-
 .../Magento/Framework/Config/etc/view.xsd     |  68 ++++-
 .../Magento/Framework/ProductVideo/README.md  |   1 -
 .../Framework/ProductVideo/etc/view.xsd       |  45 ----
 .../Magento/Framework/View/Xsd/Reader.php     | 248 ------------------
 16 files changed, 77 insertions(+), 539 deletions(-)
 delete mode 100644 app/design/adminhtml/Magento/backend/etc/view.xsd
 delete mode 100644 app/design/frontend/Magento/blank/etc/view.xsd
 delete mode 100644 app/design/frontend/Magento/luma/etc/view.xsd
 delete mode 100644 lib/internal/Magento/Framework/Catalog/README.md
 delete mode 100644 lib/internal/Magento/Framework/Catalog/etc/view.xsd
 delete mode 100644 lib/internal/Magento/Framework/ProductVideo/README.md
 delete mode 100644 lib/internal/Magento/Framework/ProductVideo/etc/view.xsd
 delete mode 100644 lib/internal/Magento/Framework/View/Xsd/Reader.php

diff --git a/app/code/Magento/ProductVideo/Model/VideoExtractor.php b/app/code/Magento/ProductVideo/Model/VideoExtractor.php
index be97959b6df..aa9267e5a32 100644
--- a/app/code/Magento/ProductVideo/Model/VideoExtractor.php
+++ b/app/code/Magento/ProductVideo/Model/VideoExtractor.php
@@ -12,7 +12,7 @@ class VideoExtractor implements \Magento\Framework\View\Xsd\Media\TypeDataExtrac
     /**
      * Media Entry type code
      */
-    const MEDIA_TYPE_CODE = 'image';
+    const MEDIA_TYPE_CODE = 'video';
 
     /**
      * Extract configuration data of videos from the DOM structure
diff --git a/app/code/Magento/ProductVideo/etc/view.xml b/app/code/Magento/ProductVideo/etc/view.xml
index 3a09480fc4c..f5ce5d81d6f 100644
--- a/app/code/Magento/ProductVideo/etc/view.xml
+++ b/app/code/Magento/ProductVideo/etc/view.xml
@@ -5,7 +5,7 @@
 * See COPYING.txt for license details.
 */
 -->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ProductVideo/etc/view.xsd">
+<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
     <media>
         <videos module="Magento_ProductVideo">
             <video id="play_if_base" type="play_if_base">
diff --git a/app/code/Magento/Swatches/etc/view.xml b/app/code/Magento/Swatches/etc/view.xml
index b880f30786d..dd20b5cec83 100644
--- a/app/code/Magento/Swatches/etc/view.xml
+++ b/app/code/Magento/Swatches/etc/view.xml
@@ -5,7 +5,7 @@
 * See COPYING.txt for license details.
 */
 -->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Catalog/etc/view.xsd">
+<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
     <media>
         <images module="Magento_Catalog">
             <image id="swatch_image" type="swatch_image">
diff --git a/app/design/adminhtml/Magento/backend/etc/view.xml b/app/design/adminhtml/Magento/backend/etc/view.xml
index a846813648e..eae913a23c2 100644
--- a/app/design/adminhtml/Magento/backend/etc/view.xml
+++ b/app/design/adminhtml/Magento/backend/etc/view.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Catalog/etc/view.xsd">
+<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
     <vars module="Js_Bundle">
         <var name="bundle_size">1MB</var>
     </vars>
diff --git a/app/design/adminhtml/Magento/backend/etc/view.xsd b/app/design/adminhtml/Magento/backend/etc/view.xsd
deleted file mode 100644
index a695016f035..00000000000
--- a/app/design/adminhtml/Magento/backend/etc/view.xsd
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:redefine schemaLocation="urn:magento:framework:Config/etc/view.xsd">
-        <xs:complexType name="mediaType" mixed="true">
-            <xs:complexContent>
-                <xs:extension base="mediaType">
-                    <xs:sequence>
-                        <xs:element name="images" type="imageType" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:redefine>
-
-    <xs:complexType name="imageType">
-        <xs:sequence>
-            <xs:element name="image" maxOccurs="unbounded">
-                <xs:complexType>
-                    <xs:sequence>
-                        <xs:element name="width" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="height" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="constrain" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="aspect_ratio" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="frame" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="transparency" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="background" minOccurs="0">
-                            <xs:simpleType>
-                                <xs:restriction base="xs:string">
-                                    <xs:pattern value="\[(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\]"/>
-                                </xs:restriction>
-                            </xs:simpleType>
-                        </xs:element>
-                    </xs:sequence>
-                    <xs:attribute name="id" type="xs:string" use="required"/>
-                    <xs:attribute name="type">
-                        <xs:simpleType>
-                            <xs:restriction base="xs:string">
-                                <xs:enumeration value="thumbnail"/>
-                                <xs:enumeration value="small_image"/>
-                                <xs:enumeration value="image"/>
-                                <xs:enumeration value="swatch_image"/>
-                                <xs:enumeration value="swatch_thumb"/>
-                            </xs:restriction>
-                        </xs:simpleType>
-                    </xs:attribute>
-                </xs:complexType>
-            </xs:element>
-        </xs:sequence>
-        <xs:attribute name="module" type="xs:string" use="required"/>
-    </xs:complexType>
-</xs:schema>
diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml
index bdb30144699..2e036c02197 100644
--- a/app/design/frontend/Magento/blank/etc/view.xml
+++ b/app/design/frontend/Magento/blank/etc/view.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Catalog/etc/view.xsd">
+<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
     <media>
         <images module="Magento_Catalog">
             <image id="bundled_product_customization_page" type="thumbnail">
diff --git a/app/design/frontend/Magento/blank/etc/view.xsd b/app/design/frontend/Magento/blank/etc/view.xsd
deleted file mode 100644
index a695016f035..00000000000
--- a/app/design/frontend/Magento/blank/etc/view.xsd
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:redefine schemaLocation="urn:magento:framework:Config/etc/view.xsd">
-        <xs:complexType name="mediaType" mixed="true">
-            <xs:complexContent>
-                <xs:extension base="mediaType">
-                    <xs:sequence>
-                        <xs:element name="images" type="imageType" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:redefine>
-
-    <xs:complexType name="imageType">
-        <xs:sequence>
-            <xs:element name="image" maxOccurs="unbounded">
-                <xs:complexType>
-                    <xs:sequence>
-                        <xs:element name="width" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="height" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="constrain" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="aspect_ratio" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="frame" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="transparency" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="background" minOccurs="0">
-                            <xs:simpleType>
-                                <xs:restriction base="xs:string">
-                                    <xs:pattern value="\[(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\]"/>
-                                </xs:restriction>
-                            </xs:simpleType>
-                        </xs:element>
-                    </xs:sequence>
-                    <xs:attribute name="id" type="xs:string" use="required"/>
-                    <xs:attribute name="type">
-                        <xs:simpleType>
-                            <xs:restriction base="xs:string">
-                                <xs:enumeration value="thumbnail"/>
-                                <xs:enumeration value="small_image"/>
-                                <xs:enumeration value="image"/>
-                                <xs:enumeration value="swatch_image"/>
-                                <xs:enumeration value="swatch_thumb"/>
-                            </xs:restriction>
-                        </xs:simpleType>
-                    </xs:attribute>
-                </xs:complexType>
-            </xs:element>
-        </xs:sequence>
-        <xs:attribute name="module" type="xs:string" use="required"/>
-    </xs:complexType>
-</xs:schema>
diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml
index 974c4c9fe5a..e4f42fabb5c 100644
--- a/app/design/frontend/Magento/luma/etc/view.xml
+++ b/app/design/frontend/Magento/luma/etc/view.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Catalog/etc/view.xsd">
+<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/view.xsd">
     <media>
         <images module="Magento_Catalog">
             <image id="bundled_product_customization_page" type="thumbnail">
diff --git a/app/design/frontend/Magento/luma/etc/view.xsd b/app/design/frontend/Magento/luma/etc/view.xsd
deleted file mode 100644
index a695016f035..00000000000
--- a/app/design/frontend/Magento/luma/etc/view.xsd
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:redefine schemaLocation="urn:magento:framework:Config/etc/view.xsd">
-        <xs:complexType name="mediaType" mixed="true">
-            <xs:complexContent>
-                <xs:extension base="mediaType">
-                    <xs:sequence>
-                        <xs:element name="images" type="imageType" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:redefine>
-
-    <xs:complexType name="imageType">
-        <xs:sequence>
-            <xs:element name="image" maxOccurs="unbounded">
-                <xs:complexType>
-                    <xs:sequence>
-                        <xs:element name="width" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="height" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="constrain" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="aspect_ratio" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="frame" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="transparency" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="background" minOccurs="0">
-                            <xs:simpleType>
-                                <xs:restriction base="xs:string">
-                                    <xs:pattern value="\[(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\]"/>
-                                </xs:restriction>
-                            </xs:simpleType>
-                        </xs:element>
-                    </xs:sequence>
-                    <xs:attribute name="id" type="xs:string" use="required"/>
-                    <xs:attribute name="type">
-                        <xs:simpleType>
-                            <xs:restriction base="xs:string">
-                                <xs:enumeration value="thumbnail"/>
-                                <xs:enumeration value="small_image"/>
-                                <xs:enumeration value="image"/>
-                                <xs:enumeration value="swatch_image"/>
-                                <xs:enumeration value="swatch_thumb"/>
-                            </xs:restriction>
-                        </xs:simpleType>
-                    </xs:attribute>
-                </xs:complexType>
-            </xs:element>
-        </xs:sequence>
-        <xs:attribute name="module" type="xs:string" use="required"/>
-    </xs:complexType>
-</xs:schema>
diff --git a/lib/internal/Magento/Framework/Catalog/README.md b/lib/internal/Magento/Framework/Catalog/README.md
deleted file mode 100644
index 6cb1e7b6ec3..00000000000
--- a/lib/internal/Magento/Framework/Catalog/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Library contains schema files used to validate XML files in Magento\Catalog module
diff --git a/lib/internal/Magento/Framework/Catalog/etc/view.xsd b/lib/internal/Magento/Framework/Catalog/etc/view.xsd
deleted file mode 100644
index cc9c4fec4a7..00000000000
--- a/lib/internal/Magento/Framework/Catalog/etc/view.xsd
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:redefine schemaLocation="../../Config/etc/view.xsd">
-        <xs:complexType name="mediaType" mixed="true">
-            <xs:complexContent>
-                <xs:extension base="mediaType">
-                    <xs:sequence>
-                        <xs:element name="images" type="imageType" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:redefine>
-
-    <xs:complexType name="imageType">
-        <xs:sequence>
-            <xs:element name="image" minOccurs="1" maxOccurs="unbounded">
-                <xs:complexType>
-                    <xs:sequence>
-                        <xs:element name="width" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="height" type="xs:positiveInteger" minOccurs="0"/>
-                        <xs:element name="constrain" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="aspect_ratio" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="frame" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="transparency" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="background" minOccurs="0">
-                            <xs:simpleType>
-                                <xs:restriction base="xs:string">
-                                    <xs:pattern value="\[(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\]"/>
-                                </xs:restriction>
-                            </xs:simpleType>
-                        </xs:element>
-                    </xs:sequence>
-                    <xs:attribute name="id" type="xs:string" use="required"/>
-                    <xs:attribute name="type">
-                        <xs:simpleType>
-                            <xs:restriction base="xs:string">
-                                <xs:enumeration value="thumbnail"/>
-                                <xs:enumeration value="small_image"/>
-                                <xs:enumeration value="image"/>
-                                <xs:enumeration value="swatch_image"/>
-                                <xs:enumeration value="swatch_thumb"/>
-                            </xs:restriction>
-                        </xs:simpleType>
-                    </xs:attribute>
-                </xs:complexType>
-            </xs:element>
-        </xs:sequence>
-        <xs:attribute name="module" type="xs:string" use="required"/>
-    </xs:complexType>
-</xs:schema>
diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php
index 98a96140188..d4fdf5f10f8 100644
--- a/lib/internal/Magento/Framework/Config/View.php
+++ b/lib/internal/Magento/Framework/Config/View.php
@@ -10,7 +10,6 @@
 namespace Magento\Framework\Config;
 
 use Magento\Framework\Config\Dom\UrnResolver;
-use Magento\Framework\View\Xsd\Reader;
 use Magento\Framework\View\Xsd\Media\TypeDataExtractorPool;
 
 class View extends \Magento\Framework\Config\AbstractXml
@@ -35,14 +34,12 @@ class View extends \Magento\Framework\Config\AbstractXml
 
     /**
      * @param array $configFiles
-     * @param Reader $xsdReader
      * @param UrnResolver $urnResolver
      * @param TypeDataExtractorPool $extractorPool
      * @param array $xpath
      */
     public function __construct(
         $configFiles,
-        Reader $xsdReader,
         UrnResolver $urnResolver,
         TypeDataExtractorPool $extractorPool,
         $xpath = []
@@ -50,19 +47,17 @@ class View extends \Magento\Framework\Config\AbstractXml
         $this->xpath = $xpath;
         $this->extractorPool = $extractorPool;
         $this->urnResolver = $urnResolver;
-        $this->xsdReader = $xsdReader;
         parent::__construct($configFiles);
     }
-    
+
     /**
-     * Merged file view.xsd
+     * Path to view.xsd
      *
      * @return string
      */
     public function getSchemaFile()
     {
-        $configXsd = $this->xsdReader->read();
-        return $configXsd;
+        return $this->urnResolver->getRealPath('urn:magento:framework:Config/etc/view.xsd');
     }
 
     /**
@@ -97,7 +92,7 @@ class View extends \Magento\Framework\Config\AbstractXml
                                     $mediaNode,
                                     $childNode->tagName
                                 );
-                            $result = array_merge($result, $mediaNodesArray);
+                            $result = array_merge_recursive($result, $mediaNodesArray);
                         }
                     }
                     break;
diff --git a/lib/internal/Magento/Framework/Config/etc/view.xsd b/lib/internal/Magento/Framework/Config/etc/view.xsd
index 1ded09402a6..060ec8b9fe6 100644
--- a/lib/internal/Magento/Framework/Config/etc/view.xsd
+++ b/lib/internal/Magento/Framework/Config/etc/view.xsd
@@ -38,8 +38,74 @@
         <xs:attribute name="value" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="mediaType" mixed="true">
-        <xs:all />
+        <xs:all>
+            <xs:element name="images" type="imageType" minOccurs="0"/>
+            <xs:element name="videos" type="videoType" minOccurs="0"/>
+        </xs:all>
     </xs:complexType>
+
+    <xs:complexType name="imageType">
+        <xs:sequence>
+            <xs:element name="image" minOccurs="1" maxOccurs="unbounded">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="width" type="xs:positiveInteger" minOccurs="0"/>
+                        <xs:element name="height" type="xs:positiveInteger" minOccurs="0"/>
+                        <xs:element name="constrain" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="aspect_ratio" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="frame" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="transparency" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="background" minOccurs="0">
+                            <xs:simpleType>
+                                <xs:restriction base="xs:string">
+                                    <xs:pattern value="\[(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\]"/>
+                                </xs:restriction>
+                            </xs:simpleType>
+                        </xs:element>
+                    </xs:sequence>
+                    <xs:attribute name="id" type="xs:string" use="required"/>
+                    <xs:attribute name="type">
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="thumbnail"/>
+                                <xs:enumeration value="small_image"/>
+                                <xs:enumeration value="image"/>
+                                <xs:enumeration value="swatch_image"/>
+                                <xs:enumeration value="swatch_thumb"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="module" type="xs:string" use="required"/>
+    </xs:complexType>
+
+    <xs:complexType name="videoType">
+        <xs:sequence>
+            <xs:element name="video" minOccurs="1" maxOccurs="unbounded">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="play_if_base" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="show_related" type="xs:boolean" minOccurs="0"/>
+                        <xs:element name="video_auto_restart" type="xs:boolean" minOccurs="0"/>
+                    </xs:sequence>
+                    <xs:attribute name="id" type="xs:string" use="required"/>
+                    <xs:attribute name="type" use="required">
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="play_if_base"/>
+                                <xs:enumeration value="show_related"/>
+                                <xs:enumeration value="video_auto_restart"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="module" type="xs:string" use="required"/>
+    </xs:complexType>
+
     <xs:complexType name="excludeType">
         <xs:sequence>
             <xs:element name="item" type="itemType" maxOccurs="unbounded"/>
diff --git a/lib/internal/Magento/Framework/ProductVideo/README.md b/lib/internal/Magento/Framework/ProductVideo/README.md
deleted file mode 100644
index 88bf074ef92..00000000000
--- a/lib/internal/Magento/Framework/ProductVideo/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Library contains schema files used to validate XML files in Magento\ProductVideo module
diff --git a/lib/internal/Magento/Framework/ProductVideo/etc/view.xsd b/lib/internal/Magento/Framework/ProductVideo/etc/view.xsd
deleted file mode 100644
index e5af826629a..00000000000
--- a/lib/internal/Magento/Framework/ProductVideo/etc/view.xsd
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:redefine schemaLocation="../../Config/etc/view.xsd">
-        <xs:complexType name="mediaType" mixed="true">
-            <xs:complexContent>
-                <xs:extension base="mediaType">
-                    <xs:sequence>
-                        <xs:element name="videos" type="videoType" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:redefine>
-
-    <xs:complexType name="videoType">
-        <xs:sequence>
-            <xs:element name="video" minOccurs="1" maxOccurs="unbounded">
-                <xs:complexType>
-                    <xs:sequence>
-                        <xs:element name="play_if_base" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="show_related" type="xs:boolean" minOccurs="0"/>
-                        <xs:element name="video_auto_restart" type="xs:boolean" minOccurs="0"/>
-                    </xs:sequence>
-                    <xs:attribute name="id" type="xs:string" use="required"/>
-                    <xs:attribute name="type" use="required">
-                        <xs:simpleType>
-                            <xs:restriction base="xs:string">
-                                <xs:enumeration value="play_if_base"/>
-                                <xs:enumeration value="show_related"/>
-                                <xs:enumeration value="video_auto_restart"/>
-                            </xs:restriction>
-                        </xs:simpleType>
-                    </xs:attribute>
-                </xs:complexType>
-            </xs:element>
-        </xs:sequence>
-        <xs:attribute name="module" type="xs:string" use="required"/>
-    </xs:complexType>
-</xs:schema>
\ No newline at end of file
diff --git a/lib/internal/Magento/Framework/View/Xsd/Reader.php b/lib/internal/Magento/Framework/View/Xsd/Reader.php
deleted file mode 100644
index 7891ba7e014..00000000000
--- a/lib/internal/Magento/Framework/View/Xsd/Reader.php
+++ /dev/null
@@ -1,248 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Framework\View\Xsd;
-
-use Magento\Framework\Component\ComponentRegistrar;
-use Magento\Framework\Component\DirSearch;
-use Magento\Framework\Config\Dom\UrnResolver;
-use Magento\Framework\Config\FileIteratorFactory;
-use Magento\Framework\Filesystem;
-
-class Reader implements \Magento\Framework\Config\ReaderInterface
-{
-    /**
-     * @var string
-     */
-    protected $defaultScope;
-
-    /**
-     * @var string
-     */
-    protected $fileName;
-
-    /**
-     * @var DirSearch
-     */
-    protected $componentDirSearch;
-
-    /**
-     * @var string
-     */
-    protected $searchFilesPattern;
-
-    /** @var \Magento\Framework\Config\Dom\UrnResolver */
-    protected $urnResolver;
-
-    /**
-     * @var FileIteratorFactory
-     */
-    private $iteratorFactory;
-
-    /**
-     * @param DirSearch $dirSearch
-     * @param UrnResolver $urnResolver
-     * @param FileIteratorFactory $iteratorFactory
-     * @param string $fileName
-     * @param string $defaultScope
-     * @param string $searchFilesPattern
-     */
-    public function __construct(
-        DirSearch $dirSearch,
-        UrnResolver $urnResolver,
-        FileIteratorFactory $iteratorFactory,
-        $fileName,
-        $defaultScope,
-        $searchFilesPattern
-    ) {
-        $this->componentDirSearch = $dirSearch;
-        $this->urnResolver = $urnResolver;
-        $this->fileName = $fileName;
-        $this->defaultScope = $defaultScope;
-        $this->searchFilesPattern = $searchFilesPattern;
-        $this->iteratorFactory = $iteratorFactory;
-    }
-
-    /**
-     * Get list of xsd files
-     *
-     * @param string $filename
-     * @return array
-     */
-    public function getListXsdFiles($filename)
-    {
-        return $this->iteratorFactory->create(
-            array_merge(
-                $this->componentDirSearch->collectFiles(ComponentRegistrar::MODULE, 'etc/' . $filename),
-                $this->componentDirSearch->collectFiles(ComponentRegistrar::LIBRARY, '*/etc/' . $filename)
-            )
-        );
-    }
-
-    /**
-     * Read xsd files from list
-     *
-     * @param null $scope
-     * @return array
-     * @throws \Magento\Framework\Exception\LocalizedException
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function read($scope = null)
-    {
-        $fileList = $this->getListXsdFiles($this->fileName);
-        if (!count($fileList)) {
-            return [];
-        }
-        $mergeXsd = $this->readXsdFiles($fileList);
-
-        return $mergeXsd;
-    }
-
-    /**
-     * Get merged xsd file
-     *
-     * @param array $fileList
-     * @param string $baseXsd
-     * @return null|string
-     * @throws \Magento\Framework\Exception\LocalizedException
-     */
-    public function readXsdFiles($fileList, $baseXsd = null)
-    {
-        $baseXsd = new \DOMDocument();
-        $baseXsdPath = $this->urnResolver->getRealPath($this->searchFilesPattern . $this->fileName);
-        $baseXsd->load($baseXsdPath);
-        $configMerge = null;
-        foreach ($fileList as $key => $content) {
-            if ($key == $baseXsdPath) {
-                continue;
-            }
-            try {
-                if (!empty($content)) {
-                    if ($configMerge) {
-                        $configMerge = $this->mergeXsd($configMerge, $content);
-                    } else {
-                        $configMerge = $this->mergeXsd($baseXsd->saveXML(), $content);
-                    }
-                }
-            } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
-                throw new \Magento\Framework\Exception\LocalizedException(
-                    new \Magento\Framework\Phrase("Invalid XSD in file %1:\n%2", [$key, $e->getMessage()])
-                );
-            }
-        }
-
-        return $configMerge;
-    }
-
-    /**
-     * Merge xsd files
-     *
-     * @param string $parent
-     * @param string $child
-     * @return string
-     */
-    protected function mergeXsd($parent, $child)
-    {
-        $domParent = $this->createDomInstance($parent);
-        $domChild = $this->createDomInstance($child);
-        $domChild = $domChild->documentElement;
-
-        $domParentElement = $domParent->getElementsByTagName('complexType');
-        $parentDomElements = $this->findDomElement($domParentElement, 'name');
-        foreach ($parentDomElements->childNodes as $findElement) {
-            if ($findElement instanceof \DOMElement) {
-                $domParentNode = $findElement;
-                break;
-            }
-        }
-        $domChildElement = $domChild->getElementsByTagName('extension');
-        $childDomElements = $this->findDomElement($domChildElement, 'base');
-        $domParent = $this->addHeadChildIntoParent($childDomElements, $domParent, $domParentNode);
-        $delete = $domChild->getElementsByTagName('redefine')->item(0);
-        $domChild->removeChild($delete);
-        $domParent = $this->addBodyChildIntoParent($domChild, $domParent);
-
-        return $domParent->saveXML();
-    }
-
-    /**
-     * Create DOM instance
-     *
-     * @param string $source
-     * @return \DOMDocument
-     */
-    protected function createDomInstance($source)
-    {
-        $domInstance = new \DOMDocument('1.0', 'UTF-8');
-        $domInstance->formatOutput = true;
-        $domInstance->loadXML($source);
-        $domInstance->preserveWhiteSpace = true;
-
-        return $domInstance;
-    }
-
-    /**
-     * Find searched element in DOM
-     *
-     * @param \DOMNodeList $domParentElement
-     * @param string $attribute
-     * @return mixed
-     */
-    protected function findDomElement(\DOMNodeList $domParentElement, $attribute)
-    {
-        foreach ($domParentElement as $child) {
-            if ($child->getAttribute($attribute) === 'mediaType'
-                && $child instanceof \DOMElement
-                && $child->hasChildNodes()
-            ) {
-                return $child;
-            }
-        }
-    }
-
-    /**
-     * Add into parent head elements from child
-     *
-     * @param \DOMElement $childDomElements
-     * @param \DOMDocument $domParent
-     * @param \DOMElement $domParentNode
-     * @return \DOMDocument
-     */
-    protected function addHeadChildIntoParent(
-        \DOMElement $childDomElements,
-        \DOMDocument $domParent,
-        \DOMElement $domParentNode
-    ) {
-        foreach ($childDomElements->childNodes as $sequence) {
-            if ($sequence instanceof \DOMElement && $sequence->hasChildNodes()) {
-                foreach ($sequence->childNodes as $findElement) {
-                    if ($findElement instanceof \DOMElement) {
-                        $importedNodes = $domParent->importNode($findElement, true);
-                        $domParentNode->appendChild($importedNodes);
-                    }
-                }
-            }
-        }
-
-        return $domParent;
-    }
-
-    /**
-     * Add into parent body elements from child
-     *
-     * @param \DOMElement $domChild
-     * @param \DOMDocument $domParent
-     * @return \DOMDocument
-     */
-    protected function addBodyChildIntoParent(\DOMElement $domChild, \DOMDocument $domParent)
-    {
-        foreach ($domChild->childNodes as $node) {
-            $importNode = $domParent->importNode($node, true);
-            $domParent->documentElement->appendChild($importNode);
-        }
-
-        return $domParent;
-    }
-}
-- 
GitLab


From 138fd656c5ccd2983d96a6a9076b3524c69463c6 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Thu, 22 Oct 2015 16:45:07 +0300
Subject: [PATCH 060/162] MAGETWO-43929: Regression scope functional tests
 maintenance

---
 .../Magento/Catalog/Test/Block/Product/View.php |  9 ++++++++-
 .../Checkout/Test/Block/Onepage/Payment.php     | 17 ++++++++++-------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
index 3b8c0dac5eb..1495125992d 100755
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View.php
@@ -49,6 +49,13 @@ class View extends AbstractConfigureBlock
      */
     protected $qty = '#qty';
 
+    /**
+     * Add to cart form id.
+     *
+     * @var string
+     */
+    protected $addToCartForm = '#product_addtocart_form';
+
     /**
      * 'Check out with PayPal' button.
      *
@@ -223,7 +230,7 @@ class View extends AbstractConfigureBlock
     public function setQty($qty)
     {
         $this->_rootElement->find($this->qty)->setValue($qty);
-        $this->_rootElement->click();
+        $this->_rootElement->find($this->addToCartForm)->click();
     }
 
     /**
diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
index 4eb6d81d6f5..744e5d27fad 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment.php
@@ -82,16 +82,19 @@ class Payment extends Block
     public function selectPaymentMethod(array $payment, CreditCard $creditCard = null)
     {
         $paymentSelector = sprintf($this->paymentMethodInput, $payment['method']);
+        $paymentLabelSelector = sprintf($this->paymentMethodLabel, $payment['method']);
+
         try {
-            $this->waitForElementVisible($paymentSelector);
-            $this->_rootElement->find($paymentSelector)->click();
+            $this->waitForElementVisible($paymentLabelSelector);
         } catch (\Exception $exception) {
-            $paymentLabel = $this->_rootElement->find(sprintf($this->paymentMethodLabel, $payment['method']));
-            $this->waitForElementNotVisible($this->waitElement);
-            if (!$paymentLabel->isVisible()) {
-                throw new \Exception('Such payment method is absent.');
-            }
+            throw new \Exception('Such payment method is absent.');
+        }
+
+        $paymentRadioButton = $this->_rootElement->find($paymentSelector);
+        if ($paymentRadioButton->isVisible()) {
+            $paymentRadioButton->click();
         }
+
         if ($payment['method'] == "purchaseorder") {
             $this->_rootElement->find($this->purchaseOrderNumber)->setValue($payment['po_number']);
         }
-- 
GitLab


From 2bea2a12115a60ece4d0128e4e948188ca68c3f7 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Thu, 22 Oct 2015 16:46:29 +0300
Subject: [PATCH 061/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../ResourceModel/Product/Indexer/Price/DefaultPrice.php      | 2 +-
 .../ResourceModel/Product/Indexer/Price/Configurable.php      | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
index dd5a49a9af6..8b433296b32 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php
@@ -591,7 +591,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface
         $select = $connection->select()->from($table, $columns);
 
         if ($entityIds !== null) {
-            $select->where('entity_id in (?)', $entityIds);
+            $select->where('entity_id in (?)', count($entityIds) > 0 ? $entityIds : 0);
         }
 
         $query = $select->insertFromSelect($this->getIdxTable(), [], false);
diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
index d81a4e96af0..84395f7f5b1 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Indexer/Price/Configurable.php
@@ -49,7 +49,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
     {
         if ($this->hasEntity() || !empty($entityIds)) {
             if (!empty($entityIds)) {
-                $allEntityIds = $this->getRelatedProduct($entityIds);
+                $allEntityIds = $this->getRelatedProducts($entityIds);
                 $this->prepareFinalPriceDataForType($allEntityIds, null);
             } else {
                 $this->_prepareFinalPriceData($entityIds);
@@ -67,7 +67,7 @@ class Configurable extends \Magento\Catalog\Model\ResourceModel\Product\Indexer\
      * @param int[] $entityIds
      * @return int[]
      */
-    private function getRelatedProduct($entityIds)
+    private function getRelatedProducts($entityIds)
     {
         $select = $this->getConnection()->select()->union(
             [
-- 
GitLab


From 3fe31b7cb6684a12f6c24d8b4d0396ca23bc4b59 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Thu, 22 Oct 2015 09:16:27 -0500
Subject: [PATCH 062/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 75530869fa5..4082cac2232 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -50,7 +50,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $this->context = $objectManager->getObject(
             'Magento\Framework\Model\Context',
-            ['cacheManager' => $this->cacheManagerMock,]
+            ['cacheManager' => $this->cacheManagerMock]
         );
 
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
-- 
GitLab


From 2d189deb01d58025204dd926520705fa273a3a2c Mon Sep 17 00:00:00 2001
From: Olga Kopylova <okopylova@ebay.com>
Date: Mon, 19 Oct 2015 17:10:30 -0500
Subject: [PATCH 063/162] MAGETWO-44119: Module-specific styles are not
 available for EE modules while installing magento via composer

- move theme files to CE themes
---
 .../Magento_Enterprise/layout/default.xml     |  16 +
 .../web/css/source/module.less                |  23 +
 .../web/css/source/module.less                | 271 +++++++++
 .../web/css/source/_module.less               | 146 +++++
 .../web/css/source/_widgets.less              |  88 +++
 .../web/css/source/_widgets.less              |  32 ++
 .../web/css/source/_module.less               | 116 ++++
 .../web/css/source/_widgets.less              | 156 +++++
 .../web/css/source/_module.less               |  46 ++
 .../layout/checkout_cart_index.xml            |  12 +
 .../web/css/source/_module.less               |  41 ++
 .../web/css/source/_module.less               | 253 +++++++++
 .../web/css/source/_widgets.less              |   7 +
 .../web/css/source/_module.less               | 216 +++++++
 .../web/css/source/_module.less               |  48 ++
 .../web/css/source/_module.less               |  55 ++
 .../web/css/source/_module.less               | 494 ++++++++++++++++
 .../web/css/source/_widgets.less              |  10 +
 .../web/css/source/_module.less               |  48 ++
 .../Magento_Rma/web/css/source/_email.less    |  17 +
 .../Magento_Rma/web/css/source/_module.less   | 151 +++++
 .../web/css/source/_widgets.less              |  25 +
 .../web/css/source/_module.less               | 165 ++++++
 .../web/css/source/_widgets.less              |  89 +++
 .../web/css/source/_module.less               |  56 ++
 .../web/css/source/_module.less               | 141 +++++
 .../layout/checkout_cart_index.xml            |  12 +
 .../web/css/source/_module.less               |  58 ++
 .../web/css/source/_module.less               | 364 ++++++++++++
 .../web/css/source/_module.less               | 238 ++++++++
 .../web/css/source/_module.less               | 100 ++++
 .../web/css/source/_module.less               |  75 +++
 .../web/css/source/_module.less               | 534 ++++++++++++++++++
 .../web/css/source/_module.less               |  48 ++
 .../Magento_Rma/web/css/source/_module.less   | 157 +++++
 35 files changed, 4308 insertions(+)
 create mode 100644 app/design/adminhtml/Magento/backend/Magento_Enterprise/layout/default.xml
 create mode 100644 app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
 create mode 100644 app/design/adminhtml/Magento/backend/Magento_VisualMerchandiser/web/css/source/module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_Banner/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftCard/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftCardAccount/layout/checkout_cart_index.xml
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftCardAccount/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GiftWrapping/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_GroupedProduct/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_Invitation/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_Reward/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_email.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/blank/Magento_VersionsCms/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_widgets.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_CustomerBalance/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_GiftCard/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_GiftCardAccount/layout/checkout_cart_index.xml
 create mode 100644 app/design/frontend/Magento/luma/Magento_GiftCardAccount/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_GiftRegistry/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_GiftWrapping/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_GroupedProduct/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_Invitation/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_MultipleWishlist/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_Reward/web/css/source/_module.less
 create mode 100644 app/design/frontend/Magento/luma/Magento_Rma/web/css/source/_module.less

diff --git a/app/design/adminhtml/Magento/backend/Magento_Enterprise/layout/default.xml b/app/design/adminhtml/Magento/backend/Magento_Enterprise/layout/default.xml
new file mode 100644
index 00000000000..39859341ebc
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Enterprise/layout/default.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
+    <body>
+        <referenceBlock name="logo">
+            <arguments>
+                <argument name="edition" xsi:type="string">Enterprise</argument>
+            </arguments>
+        </referenceBlock>
+    </body>
+</page>
diff --git a/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
new file mode 100644
index 00000000000..12ccb3531ea
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
@@ -0,0 +1,23 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  IE9 styles
+//  ---------------------------------------------
+
+.ie9 {
+    .giftcard-info-container {
+        .fieldset {
+            .admin__field {
+                .admin__field-label {
+                    display: table;
+                    span {
+                        display: table-cell;
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_VisualMerchandiser/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_VisualMerchandiser/web/css/source/module.less
new file mode 100644
index 00000000000..33e8affd44b
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_VisualMerchandiser/web/css/source/module.less
@@ -0,0 +1,271 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+#merchandiser-app {
+    .merchandiser-toolbar {
+        float: right;
+    }
+
+    ul.tabs {
+        float: right;
+    }
+
+    .clearfix {
+        clear: both;
+    }
+
+    #catalog_category_merchandiser {
+        div.grid {
+            padding: 0;
+        }
+        div.grid-actions {
+            padding: 10px 0;
+            float: right;
+        }
+    }
+
+    .merchandiser-tab {
+        padding: 0;
+    }
+
+    .tabs {
+        list-style: none;
+        overflow: hidden;
+        li {
+            background-color: #f0f0f0;
+            float: left;
+            > a {
+                border: 1px solid #cccccc;
+                padding: 7px 10px;
+                text-decoration: none;
+                display: block;
+                color: #7d7d7d;
+            }
+        }
+        li:last-child > a {
+            border-left: 0;
+        }
+        li.ui-tabs-active {
+            background-color: #dedede;
+        }
+    }
+
+    #catalog_category_merchandiser_list {
+        overflow: hidden;
+        > li {
+            list-style: none;
+            width: 190px;
+            height: 340px;
+            float: left;
+            border: 1px solid #7d7d7d;
+            margin:0 25px 20px 0;
+            padding: 10px;
+            background-color: #fff;
+        }
+        .image-holder {
+            text-align: center;
+            img {
+                max-height: 130px;
+            }
+        }
+        .controlbar-top {
+            overflow: hidden;
+            a {
+                text-decoration: none;
+                color: #7d7d7d;
+                float:left;
+                display: inline-block;
+            }
+            a:last-child {
+                float:right;
+            }
+        }
+        .info-block {
+            height: 100px;
+        }
+        .controlbar-bottom {
+            .position {
+                border-top: 1px solid #7d7d7d;
+                margin-top: 6px;
+                padding-top: 4px;
+                input {
+                    width: 50px;
+                    height: 25px;
+                    float:left;
+                    margin-right: 5px;
+                }
+                a {
+                    text-decoration: none;
+                    color: #7d7d7d;
+                    margin-right: 5px;
+                    margin-top: -2px;
+                    float: left;
+                    display: block;
+                }
+            }
+        }
+        .selected {
+            background-color: #f5d6c7;
+        }
+    }
+
+    table.data-grid {
+        th.col-draggable-position {
+            width: 10px;
+            margin: 0 auto 0 auto;
+        }
+        td.col-draggable-position span.draggable-handle {
+            width: 8px;
+            height: 14px;
+            line-height: 14px;
+            background: url(../Magento_Backend/images/draggable-handle-vertical.png) no-repeat 0 0;
+            cursor: ns-resize;
+            color: #b2b0ad;
+            display: block;
+        }
+        td.col-position {
+            >* {
+                float: left;
+                margin-right: 5px;
+            }
+            .position input {
+                width: 40px;
+                text-align: center;
+            }
+            a {
+                text-decoration: none;
+                color: #7d7d7d;
+            }
+        }
+        .selected td {
+            background-color: #f5d6c7;
+        }
+
+        tr.on-mouse td {
+            background-color: #e5f7fe;
+        }
+    }
+
+    .mode-tile:before, .mode-grid:before, .icon-gripper:before, .icon-close-mage:before,
+    .icon-backward:before, .icon-forward:before, .block-search .label:before {
+        font-family: 'Admin Icons';
+        -webkit-font-smoothing: antialiased;
+        font-size: 17px;
+        speak: none;
+    }
+    .mode-grid > span,
+    .mode-tile > span,
+    .icon-backward > span,
+    .icon-forward > span,
+    .icon-close-mage > span,
+    .icon-gripper > span {
+        border: 0;
+        clip: rect(0, 0, 0, 0);
+        height: 1px;
+        margin: -1px;
+        overflow: hidden;
+        padding: 0;
+        position: absolute;
+        width: 1px;
+    }
+
+    .mode-tile:before {
+        content: "\e63d";
+    }
+
+    .mode-grid:before {
+        content: "\e63e";
+    }
+
+    .icon-gripper:before {
+        content: "\e617";
+    }
+
+    .icon-close-mage:before {
+        content: "\e62f";
+    }
+
+    .icon-backward:before {
+        content: "\e619";
+    }
+
+    .icon-forward:before {
+        content: "\e618";
+    }
+
+    .hidden {
+        display: none;
+    }
+
+    .smart_category_table {
+        width: 100%;
+        border-collapse:collapse;
+        margin-bottom: 5px;
+        border-spacing:0 5px;
+        overflow: auto;
+        display:block;
+    }
+
+    .smart_category_table tr:nth-of-type(odd) {
+        background:#eee;
+    }
+
+    .smart_category_table th {
+        background: #333;
+        color: white;
+        font-weight: bold;
+    }
+
+    .smart_category_table td, th {
+        padding: 6px;
+        border: 1px solid #ccc;
+        text-align: left;
+    }
+    .smart_category {
+        display:block;
+        clear:both;
+        margin-bottom: 5px;
+    }
+
+    .mode_select {
+        float:right;
+    }
+
+    .add_product_sku {
+        float:left;
+        display: block;
+        margin: 5px;
+    }
+
+    .add_product_sku_buttons {
+        display: block;
+        margin: 5px;
+    }
+}
+
+#catalog_category_add_product_tabs_content {
+    .admin__data-grid-header {
+        .admin__data-grid-pager-wrap {
+            float: right;
+        }
+    }
+    .data-grid-search-control-wrap {
+        .massassign_textarea, .massassign_buttons, .massassign_messages {
+            display:block;
+            margin:5px;
+        }
+    }
+}
+
+.visual_merchandiser_draggable_container {
+    > li {
+        list-style: none;
+        width: 190px;
+        height: 340px;
+        float: left;
+        border: 1px solid #7d7d7d;
+        margin:0 15px 15px 0;
+        padding: 10px;
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_module.less
new file mode 100644
index 00000000000..170ebe4b62b
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_module.less
@@ -0,0 +1,146 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .column {
+        .block-addbysku {
+            .fieldset {
+                margin: 0;
+                .fields {
+                    position: relative;
+                    .field {
+                        display: inline-block;
+                        margin-bottom: @indent__s;
+                        vertical-align: top;
+                    }
+                    .actions-toolbar {
+                        position: absolute;
+                        right: 0;
+                        top: 4px;
+                    }
+                }
+            }
+            .sku {
+                &:extend(.abs-add-box-sizing all);
+                margin-right: -155px;
+                padding-right: 160px;
+                width: 100%;
+            }
+            .skus {
+                > .label {
+                    margin-top: @indent__s;
+                }
+            }
+            .qty {
+                .qty {
+                    &:extend(.abs-input-qty all);
+                    + .mage-error {
+                        width: 80px;
+                    }
+                }
+            }
+            .block-content {
+                &:extend(.abs-add-clearfix-desktop all);
+                .box {
+                    &:extend(.abs-blocks-2columns all);
+                }
+                .actions-toolbar {
+                    clear: both;
+                    .lib-actions-toolbar(
+                    @_actions-toolbar-actions-position: left,
+                    @_actions-toolbar-margin: 0 0 @indent__base
+                    );
+                    .lib-actions-toolbar-clear-floats();
+                    > .secondary {
+                        text-align: left;
+                    }
+                }
+            }
+            .reset {
+                margin: @indent__s 0;
+            }
+            .note {
+                display: block;
+                margin: 0 0 @indent__base;
+            }
+        }
+    }
+
+    .block-cart-failed {
+        margin-top: @indent__xl;
+        &:extend(.abs-shopping-cart-items all);
+        .block-title {
+            .lib-font-size(@h2__font-size);
+            strong {
+                font-weight: @h2__font-weight;
+            }
+        }
+        .actions {
+            text-align: center;
+            .action {
+                margin-bottom: @indent__s;
+                &.tocart {
+                    margin-right: @indent__s;
+                }
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .column {
+        .block-addbysku {
+            .sku {
+                margin-right: -85px;
+                padding-right: 90px;
+            }
+            .action {
+                &.remove {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-remove,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 28px
+                    );
+                    .lib-button-reset();
+                }
+            }
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
+    .column {
+        .block-addbysku {
+            .action {
+                &.remove {
+                    .lib-button-reset();
+                    .lib-button-as-link();
+                    margin-top: 4px;
+                }
+            }
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .block-cart-failed {
+        &:extend(.abs-shopping-cart-items-desktop all);
+        .actions {
+            text-align: left;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_widgets.less
new file mode 100644
index 00000000000..e5fff5791b6
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_AdvancedCheckout/web/css/source/_widgets.less
@@ -0,0 +1,88 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .sidebar {
+        .block-addbysku {
+            .fieldset {
+                margin: 0;
+                .fields {
+                    position: relative;
+                    .field {
+                        display: inline-block;
+                        margin-bottom: @indent__s;
+                        vertical-align: top;
+                        &.sku {
+                            &:extend(.abs-add-box-sizing all);
+                            margin-right: -85px;
+                            padding-right: 90px;
+                            width: 100%;
+                        }
+                        &.qty {
+                            .qty {
+                                &:extend(.abs-input-qty all);
+                                + .mage-error {
+                                    width: 80px;
+                                }
+                            }
+                        }
+                    }
+                    .actions-toolbar {
+                        position: absolute;
+                        right: 0;
+                        top: 6px;
+                    }
+                }
+            }
+            .form-addbysku {
+                .actions-toolbar {
+                    margin-bottom: @indent__base;
+                    .primary {
+                        text-align: left;
+                        .action {
+                            width: auto;
+                        }
+                    }
+                    .secondary {
+                        float: none;
+                        text-align: left;
+                    }
+                }
+            }
+            .action {
+                &.add {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-expand,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 31px
+                    );
+                    line-height: normal;
+                    padding: 2px 0;
+                    width: auto;
+                }
+                &.links {
+                    display: inline-block;
+                    margin: @indent__base 0 0;
+                }
+                &.reset {
+                    margin: @indent__s 0;
+                    display: block;
+                }
+                &.remove {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-remove,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 28px
+                    );
+                    .lib-button-reset();
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Banner/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_Banner/web/css/source/_widgets.less
new file mode 100644
index 00000000000..f79ad22a9e8
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Banner/web/css/source/_widgets.less
@@ -0,0 +1,32 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+
+    .block-banners,
+    .block-banners-inline {
+        &:extend(.abs-margin-for-blocks-and-widgets);
+
+        .banner-items {
+           &:extend(.abs-reset-list all);
+        }
+
+        .banner-item {
+            display: block;
+        }
+
+        .banner-item-content {
+            .lib-css(margin-bottom, @indent__base);
+            img {
+                display: block;
+                margin: 0 auto;
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_module.less
new file mode 100644
index 00000000000..eec3d9c2c76
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_module.less
@@ -0,0 +1,116 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+@catalog-event-background-color: @color-gray94;
+@catalog-event-color: @primary__color;
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+//
+//     Catalog Events
+// --------------------------------------
+.block-category-event {
+    .lib-css(background, @catalog-event-background-color);
+    .lib-css(color, @catalog-event-color);
+    text-align: center;
+    padding: @indent__s 0 15px;
+    &.block:last-child {
+        margin-bottom: @indent__s;
+    }
+    .block-title {
+        margin: 0 0 @indent__s;
+        strong {
+            .lib-font-size(15);
+            font-weight: @font-weight__light;
+        }
+    }
+    .ticker {
+        .lib-list-reset-styles();
+        li {
+            display: none;
+            margin: 0 15px;
+        }
+        .value {
+            .lib-font-size(18);
+            font-weight: @font-weight__light;
+        }
+        .label {
+            display: block;
+            text-transform: lowercase;
+            .lib-font-size(10);
+        }
+    }
+    .dates {
+        .start,
+        .end {
+            display: block;
+        }
+        .date {
+            .lib-font-size(50);
+        }
+        .time {
+            display: block;
+        }
+        .start {
+            &:after {
+                content: "\2013";
+                .lib-font-size(50);
+                display: block;
+            }
+        }
+    }
+}
+
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .block-category-event {
+        &.block:last-child {
+            margin-bottom: @indent__l;
+            padding: @indent__s 0 @indent__l;
+        }
+        .block-title {
+            margin: 0;
+            strong {
+                .lib-font-size(24);
+            }
+        }
+        .ticker {
+            li {
+                display: none;
+                margin: 0 50px;
+            }
+            .value {
+                .lib-font-size(60);
+            }
+            .label {
+                .lib-font-size(14);
+                text-transform: none;
+            }
+        }
+        .dates {
+            .start,
+            .end {
+                display: inline-block;
+            }
+            .start {
+                padding-right: 50px;
+                position: relative;
+                &:after {
+                    position: absolute;
+                    right: 10px;
+                    top: 0;
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
new file mode 100644
index 00000000000..109186faad1
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_CatalogEvent/web/css/source/_widgets.less
@@ -0,0 +1,156 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.block-event {
+    .columns & {
+        position: relative;
+        z-index: 2;
+    }
+    .block-content {
+        position: relative;
+        >  .action {
+            cursor: pointer;
+            margin-top: -6px;
+            position: absolute;
+            top: 50%;
+            z-index: 3;
+            &.backward,
+            &.forward  {
+                opacity: .5;
+                overflow: hidden;
+                width: 20px;
+                .lib-icon-font(
+                    @_icon-font-content: @icon-prev,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 55px,
+                    @_icon-font-line-height: 30px
+                );
+                &:before {
+                    margin-left: -15px;
+                }
+            }
+            &.backward {
+                left: 0;
+            }
+            &.forward {
+                right: 0;
+                .lib-icon-font-symbol(@icon-next);
+            }
+            &.inactive {
+                cursor: default;
+                display: none;
+            }
+            &:hover {
+                opacity: 1;
+            }
+        }
+    }
+    .slider-panel {
+        position: relative;
+        overflow: hidden;
+        z-index: 2;
+        .slider {
+            &:extend(.abs-reset-list all);
+            white-space: nowrap;
+            .item {
+                .lib-css(background, @catalog-event-background-color);
+                display: inline-block;
+                text-align: center;
+                white-space: normal;
+                vertical-align: top;
+                width: 16.35%;
+                .sidebar-main &,
+                .sidebar-additional & {
+                    width: 100%;
+                }
+                img {
+                    max-width: 100%;
+                }
+                .category-name {
+                    display: inline-block;
+                    .lib-font-size(18);
+                    padding-top: 15px;
+                }
+                .ticker {
+                    .lib-list-reset-styles();
+                    li {
+                        display: none;
+                        margin: 0 5px;
+                    }
+                    .value {
+                        .lib-font-size(26);
+                        font-weight: @font-weight__light;
+                    }
+                    .label {
+                        display: block;
+                        .lib-font-size(13);
+                    }
+                }
+                .dates {
+                    font-weight: @font-weight__light;
+                    .start,
+                    .end,
+                    .date {
+                        display: block;
+                    }
+                    .start {
+                        &:after {
+                            content: "\2013";
+                            .lib-font-size(18);
+                            display: block;
+                        }
+                    }
+                    .date {
+                        .lib-font-size(18);
+                        font-weight: @font-weight__light;
+                    }
+                    .time {
+                        .lib-font-size(13);
+                    }
+                }
+                .box-event {
+                    .box-content {
+                        padding: 5px 0 @indent__s;
+                    }
+                    .box-title {
+                        font-weight: @font-weight__light;
+                        display: block;
+                        margin: @indent__s 0 0;
+                    }
+                }
+                .action {
+                    &.show {
+                        &:extend(.abs-add-box-sizing all);
+                        display: block;
+                        padding: 0;
+                        .category.name {
+                            display: inline-block;
+                            padding: 30px 10px 0;
+                        }
+                        img {
+                            display: block;
+                        }
+                    }
+                    &.event {
+                        .lib-button-primary();
+                        &:extend(.abs-action-link-button all);
+                        margin-top: 15px;
+                        &:hover {
+                            text-decoration: none;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GiftCard/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GiftCard/web/css/source/_module.less
new file mode 100644
index 00000000000..5c0f40733da
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftCard/web/css/source/_module.less
@@ -0,0 +1,46 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.cart {
+    &-summary {
+        .block {
+            &.giftcard {
+                .action.check {
+                    .lib-button-s();
+                    &:extend(.abs-action-button-as-link all);
+                    margin-top: @indent__base;
+                }
+            }
+        }
+    }
+}
+.page-product-giftcard {
+    .giftcard-amount {
+        text-align: left;
+        margin-bottom: 0;
+        .field:last-child {
+            padding-bottom: @form-field__vertical-indent;
+        }
+    }
+    .product-options-wrapper .field:first-of-type {
+        margin-top: @form-field__vertical-indent;
+    }
+    .fieldset.giftcard {
+        >.legend {
+            &:extend(.abs-visually-hidden all);
+        }
+        >.legend + br {
+            &:extend(.abs-no-display all);
+        }
+    }
+}
+
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GiftCardAccount/layout/checkout_cart_index.xml b/app/design/frontend/Magento/blank/Magento_GiftCardAccount/layout/checkout_cart_index.xml
new file mode 100644
index 00000000000..56fda77e69b
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftCardAccount/layout/checkout_cart_index.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
+    <body>
+        <move element="checkout.cart.giftcardaccount" destination="cart.summary" after="checkout.cart.coupon" before="checkout.cart.totals.container"/>
+    </body>
+</page>
diff --git a/app/design/frontend/Magento/blank/Magento_GiftCardAccount/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GiftCardAccount/web/css/source/_module.less
new file mode 100644
index 00000000000..033a058c1f0
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftCardAccount/web/css/source/_module.less
@@ -0,0 +1,41 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+
+    .giftcard-account {
+        .please-wait {
+            display: none;
+        }
+        .form-giftcard-redeem {
+            .giftcard.info {
+                margin-bottom: @indent__l;
+            }
+        }
+    }
+
+    .opc-wrapper {
+        .form-giftcard-account {
+            max-width: 500px;
+            .field {
+                margin: 0 0 @indent__base;
+                .label {
+                    &:extend(.abs-visually-hidden all);
+                }
+            }
+        }
+        .giftcard-account-info {
+            margin: 0 0 @indent__base;
+
+            .giftcard-account-number {
+                margin: 0 0 @indent__s;
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_module.less
new file mode 100644
index 00000000000..3419334602f
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_module.less
@@ -0,0 +1,253 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+
+    .form-giftregistry-share,
+    .form-giftregistry-edit {
+        &:extend(.abs-add-fields all);
+        .actions-toolbar:not(:last-child) {
+            margin-bottom: @indent__xl;
+        }
+        .fieldset {
+            .nested {
+                .field:not(.choice) {
+                    .control {
+                        width: 100%;
+                    }
+                }
+            }
+        }
+    }
+
+    .form.giftregistry.items {
+        .actions-toolbar {
+            &:extend(.abs-reset-left-margin all);
+        }
+    }
+
+    .giftregisty-dropdown {
+        &:extend(.abs-dropdown-simple all);
+    }
+
+    .table-giftregistry-items {
+        .field.qty .qty {
+            &:extend(.abs-input-qty all);
+        }
+        .product-image {
+            float: left;
+            .lib-css(margin-right, @indent__s);
+        }
+    }
+
+    .form.giftregistry .fieldset {
+        .cart-summary & {
+            margin: 25px 0 @indent__xs;
+            .field {
+                margin: 0 0 @indent__s;
+                .control {
+                    float: none;
+                    width: auto;
+                }
+            }
+            .action.primary {
+                margin-bottom: 0;
+                &:extend(.abs-revert-secondary-color all);
+                &:extend(.abs-revert-secondary-size all);
+            }
+        }
+    }
+
+    .form-giftregistry-search {
+        margin-bottom: @indent__l*2;
+        .legend {
+            &:extend(.abs-account-title all);
+        }
+        .fields-specific-options {
+            .field {
+                &:nth-last-of-type(1) {
+                    margin-bottom: 0;
+                }
+            }
+            .datetime-picker {
+                &:extend(.abs-field-date-input all);
+            }
+        }
+    }
+
+    .block-giftregistry-results {
+        .block-title {
+            &:extend(.abs-block-title all);
+        }
+
+        .toolbar-giftregistry-results {
+            text-align: center;
+        }
+    }
+
+    .block-giftregistry {
+        .actions-toolbar {
+            margin: 17px 0 0;
+        }
+    }
+
+    .block-giftregistry-shared {
+        .item-options {
+            .item-value {
+                margin: 0 0 @indent__m;
+            }
+        }
+    }
+
+    .block-giftregistry-shared-items {
+        .block-title {
+            &:extend(.abs-block-title all);
+        }
+        .product-image-wrapper {
+            &:extend(.abs-reset-image-wrapper all);
+        }
+        .item {
+            border-bottom: @border-width__base solid @border-color__base;
+        }
+        .qty {
+            .qty {
+                &:extend(.abs-input-qty all);
+            }
+        }
+        .col {
+            padding: @indent__base 8px @indent__s;
+            .price-box {
+                display: inline-block;
+            }
+            .price-wrapper {
+                .lib-font-size(18);
+                display: block;
+                font-weight: @font-weight__bold;
+                white-space: nowrap;
+            }
+        }
+
+        .product {
+            .item-options {
+                &:extend(.abs-product-options-list all);
+                &:extend(.abs-add-clearfix all);
+                margin-bottom: 0;
+            }
+            &-item-photo {
+                display: block;
+                max-width: 65px;
+                padding: @indent__s 0;
+            }
+            &-item-name {
+                display: block;
+                margin: 0 0 @indent__xs;
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .table-giftregistry-items {
+        .col.product {
+            &:before {
+                &:extend(.abs-visually-hidden-mobile all);
+            }
+            &:extend(.abs-add-clearfix-mobile all);
+        }
+        .field.choice,
+        .field.qty {
+            display: inline-block;
+        }
+    }
+    .form-giftregistry-search {
+        .fieldset {
+            margin-bottom: 15px;
+        }
+    }
+
+    .toolbar-giftregistry-results {
+        &:extend(.abs-pager-toolbar-mobile-s all);
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-giftregistry-share,
+    .form-giftregistry-edit {
+        &:extend(.abs-add-fields-desktop all);
+    }
+
+    .form-giftregistry-search {
+        .fieldset {
+            margin-bottom: @form-field__vertical-indent__desktop;
+            > .fields-specific-options {
+                > .field {
+                    .lib-form-field-type-revert();
+                }
+            }
+        }
+    }
+
+    .toolbar-giftregistry-results {
+        &:extend(.abs-pager-toolbar all);
+    }
+
+    .block-giftregistry-shared {
+        .item-options {
+            &:extend(.abs-product-options-list-desktop all);
+            &:extend(.abs-add-clearfix-desktop all);
+        }
+    }
+
+    .block-giftregistry-shared-items {
+        .column.main & {
+            .actions-toolbar {
+                &:extend(.abs-reset-left-margin-desktop all);
+            }
+        }
+        .product {
+            &-item-photo {
+                display: table-cell;
+                max-width: 100%;
+                padding: 0 @indent__base 0 0;
+                vertical-align: top;
+                width: 1%;
+            }
+            &-item-details {
+                display: table-cell;
+                vertical-align: top;
+                width: 99%;
+                word-break: normal;
+            }
+        }
+        .col {
+            &.product {
+                width: 48%;
+            }
+            &:not(.product) {
+                text-align: center;
+            }
+            &.price {
+                padding-top: 17px;
+            }
+        }
+        .input-text {
+            &.qty {
+                margin-top: -4px;
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_widgets.less
new file mode 100644
index 00000000000..b5d0ca095c5
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftRegistry/web/css/source/_widgets.less
@@ -0,0 +1,7 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+.widget.block-giftregistry {
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GiftWrapping/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GiftWrapping/web/css/source/_module.less
new file mode 100644
index 00000000000..7395b73c638
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GiftWrapping/web/css/source/_module.less
@@ -0,0 +1,216 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@gift-wrapping__border-color: @color-gray-light5;
+@gift-wrapping__border-width: @border-width__base;
+
+@gift-wrapping-preview__active__border-color: @color-gray20;
+@gift-wrapping-preview__active__border-width: 3px;
+
+@gift-wrapping-thumbnail__height: 4rem;
+@gift-wrapping-thumbnail__width: @gift-wrapping-thumbnail__height;
+
+@gift-wrapping-no-image__background: @color-gray95;
+@gift-wrapping-no-image-icon__color: @color-gray-darken4;
+@gift-wrapping-no-image-icon__font-size: 38px;
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .gift-wrapping-info {
+        .lib-css(font-weight, @font-weight__light);
+        font-size: @font-size__l;
+        margin: @indent__base 0;
+    }
+
+    .gift-wrapping-list {
+        &:extend(.abs-add-clearfix all);
+        list-style: none;
+        margin: @indent__base 0 @indent__s;
+        padding: 0;
+        .no-image {
+            .lib-css(background, @gift-wrapping-no-image__background);
+            .lib-icon-font(
+            @icon-present,
+            @_icon-font-size: @gift-wrapping-no-image-icon__font-size,
+            @_icon-font-line-height: @gift-wrapping-thumbnail__height,
+            @_icon-font-color: @gift-wrapping-no-image-icon__color,
+            @_icon-font-position: after,
+            @_icon-font-text-hide: true,
+            @_icon-font-vertical-align: middle
+            );
+            &:after {
+                display: block;
+            }
+        }
+    }
+
+    .gift-wrapping-preview,
+    .gift-wrapping-item > span {
+        cursor: pointer;
+        display: block;
+        overflow: hidden;
+        position: relative;
+        z-index: 1;
+    }
+
+    .gift-wrapping-item {
+        float: left;
+        margin: 0 @indent__s @indent__s 0;
+        &:last-child {
+            margin-right: 0;
+        }
+        &._active {
+            span {
+                &:before {
+                    .lib-css(border, @gift-wrapping-preview__active__border-width solid @gift-wrapping-preview__active__border-color);
+                    box-sizing: border-box;
+                    content: '';
+                    display: block;
+                    height: 100%;
+                    position: absolute;
+                    width: 100%;
+                    z-index: 2;
+                }
+            }
+        }
+        > span {
+            height: @gift-wrapping-thumbnail__height;
+            width: @gift-wrapping-thumbnail__width;
+        }
+    }
+
+    .gift-wrapping-title {
+        margin: @indent__s 0;
+        .action-remove {
+            margin-left: @indent__xs;
+        }
+    }
+
+    .gift-options-content {
+        .fieldset {
+            > .field {
+                margin: 0 0 @indent__xs;
+                &:before {
+                    display: none;
+                }
+            }
+        }
+    }
+
+    .gift-wrapping-summary {
+        .gift-wrapping-title {
+            border: 0;
+            display: inline-block;
+            padding: 0;
+        }
+    }
+
+    .opc-wrapper .data.table,
+    .table-order-items,
+    .table-order-review {
+        .gift-wrapping {
+            &:extend(.abs-add-clearfix all);
+            margin: @indent__base 0;
+            .title {
+                float: none;
+            }
+            .content {
+                margin: 0;
+                > img {
+                    float: left;
+                    margin: 0 @indent__s 0 0;
+                    max-height: 50px;
+                    max-width: 50px;
+                }
+            }
+        }
+    }
+
+    .gift-summary,
+    .gift-options {
+        .price-box {
+            margin-left: 22px;
+        }
+        .regular-price {
+            &:before {
+                content: attr(data-label)": ";
+            }
+            .price {
+                font-weight: @font-weight__bold;
+            }
+        }
+        &:extend(.abs-adjustment-incl-excl-tax all);
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .gift-wrapping {
+        .lib-css(border-bottom, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+        margin-bottom: @indent__base;
+        padding-bottom: @indent__s;
+    }
+    .gift-wrapping-list {
+        width: 100%;
+    }
+    .gift-wrapping-preview {
+        img {
+            width: 100%;
+        }
+    }
+    .item-actions {
+        .actions-toolbar {
+            .gift-options {
+                .gift-wrapping,
+                .gift-message {
+                    display: block;
+                }
+            }
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .gift-wrapping {
+        .nested {
+            &:extend(.abs-add-clearfix-desktop all);
+        }
+    }
+    .table {
+        .gift-wrapping {
+            .content {
+                &:extend(.abs-add-clearfix-desktop all);
+            }
+        }
+    }
+    .gift-wrapping {
+        .lib-css(border-right, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+        box-sizing: border-box;
+        float: left;
+        padding-right: @indent__base;
+        width: 50%;
+        & + .gift-message {
+            .lib-css(border-left, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+            box-sizing: border-box;
+            float: left;
+            padding-left: 4.5rem;
+            width: 50%;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_GroupedProduct/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GroupedProduct/web/css/source/_module.less
new file mode 100644
index 00000000000..5423cfa8da2
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_GroupedProduct/web/css/source/_module.less
@@ -0,0 +1,48 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.table.grouped {
+    .lib-table-bordered(
+        @_table_type: horizontal
+    );
+    > thead > tr > th {
+        border-bottom: 0;
+    }
+    .product-item-name {
+        font-weight: @font-weight__regular;
+    }
+    .price-box {
+        .price {
+            font-size: @font-size__base;
+        }
+    }
+    .control {
+        .qty {
+            &:extend(.abs-input-qty all);
+        }
+    }
+    .stock.unavailable {
+        font-weight: normal;
+        margin: 0;
+        text-transform: none;
+        white-space: nowrap;
+    }
+    .row-tier-price {
+        td {
+            border-top: 0;
+        }
+        .prices-tier {
+            margin: 0 -10px 10px;
+        }
+    }
+}
+
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Invitation/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Invitation/web/css/source/_module.less
new file mode 100644
index 00000000000..56d690b2e1d
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Invitation/web/css/source/_module.less
@@ -0,0 +1,55 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.form-add-invitations {
+    &:extend(.abs-add-fields all);
+    .action {
+        &.add {
+            .lib-button-icon(
+                @_icon-font-content: @icon-expand,
+                @_icon-font-text-hide: true,
+                @_icon-font-size: 31px
+            );
+            line-height: normal;
+            padding: 2px 0;
+            width: auto;
+        }
+    }
+}
+
+}
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .form-add-invitations {
+        .additional,
+        .field.text {
+            .lib-css(margin-top, @form-field__vertical-indent);
+        }
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-add-invitations {
+        &:extend(.abs-add-fields-desktop all);
+        .additional,
+        .field.text {
+            .lib-css(margin-top, @form-field__vertical-indent__desktop);
+        }
+    }
+    .table-invitations {
+        .col {
+            width: 50%;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_module.less
new file mode 100644
index 00000000000..ee2926d3acf
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_module.less
@@ -0,0 +1,494 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+@desktop-popup-width: 380px;
+@desktop-popup-margin-left: -((@desktop-popup-width+(@popup__padding*2))/2);
+@desktop-popup-position-left: 50%;
+@desktop-popup-position-top: 20%;
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .wishlist {
+        //  Wish list split button
+        &.split.button {
+            .lib-dropdown-split(
+            @_options-selector: ~".items",
+            @_dropdown-split-button-border-radius-fix: true,
+            @_dropdown-split-list-item-padding: 5px 5px 5px 23px,
+            @_dropdown-split-toggle-icon-content: @icon-down,
+            @_dropdown-split-toggle-active-icon-content: @icon-up,
+            @_dropdown-split-toggle-actions-padding: false,
+            @_icon-font-size: 22px,
+            @_icon-font-color: @addto-color,
+            @_icon-font-color-hover: @addto-hover-color,
+            @_dropdown-split-list-pointer-position: left,
+            @_dropdown-split-list-min-width: 200px
+            );
+            vertical-align: middle;
+            .items {
+                text-align: left;
+            }
+            .items .item:last-child {
+                background: @color-gray-darken1;
+                &:hover {
+                    .lib-css(background, @dropdown-list-item__hover);
+                }
+            }
+            &:extend(.abs-dropdown-items-new all);
+
+            .table-comparison &,
+            .product-items & {
+                > .action {
+                    &:extend(.abs-action-button-as-link all);
+                    &.split {
+                        &:extend(.abs-actions-addto-gridlist all);
+                        .lib-icon-font-symbol(
+                        @_icon-font-content: @icon-wishlist-empty
+                        );
+                    }
+                    &:active,
+                    &:focus,
+                    &:hover {
+                        .lib-css(color, @addto-hover-color);
+                    }
+                }
+                > .action.toggle {
+                    &:before {
+                        border-left: 1px solid lighten(@addto-color, 30%);
+                        content: '';
+                        float: left;
+                        height: 15px;
+                        margin-top: 3px;
+                    }
+                }
+            }
+            .product-info-main &,
+            .block-bundle-summary &,
+            .product-add-form &{
+                .action {
+                    &.split,
+                    &.toggle {
+                        .lib-button-s();
+                    }
+                    &.toggle {
+                        padding: 0;
+                    }
+                }
+            }
+            .cart.table-wrapper & {
+                margin-bottom: @indent__s;
+                > .action {
+                    &.split {
+                    }
+                    &.toggle {
+                        padding: 4px @indent__xs;
+                    }
+                }
+            }
+        }
+        &.window.popup {
+            .lib-popup();
+            &.active {
+                display: block;
+            }
+        }
+        &.overlay {
+            .lib-window-overlay();
+            &.active {
+                display: block;
+            }
+        }
+        &-dropdown {
+            &:extend(.abs-dropdown-simple all);
+            &:extend(.abs-dropdown-items-new all);
+        }
+    }
+
+    .block-wishlist-management {
+        position: relative;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                .wishlist-name {
+                    &-label {
+                        font-weight: @font-weight__semibold;
+                        &:extend(.abs-colon all);
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    &:extend(.abs-reset-list all);
+                    &.active {
+                    }
+                }
+            }
+            &-add.item {
+                .action {
+                }
+            }
+            //  Wish list name
+            &-title {
+                margin-bottom: @indent__s;
+                strong {
+                    font-weight: @font-weight__light;
+                    margin-right: @indent__s;
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+            }
+            &-notice {
+                .lib-css(color, @text__color__muted);
+                display: inline-block;
+                margin-right: @indent__base;
+                &.private {
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                &-select,
+                &-actions {
+                    display: inline-block;
+                }
+                &-select {
+                    margin-right: @indent__base;
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+                margin-right: @indent__base;
+            }
+        }
+    }
+
+    .block-wishlist-search-form {
+        .block-title {
+            &:extend(.abs-account-title all);
+        }
+        .form-wishlist-search {
+            .lib-css(margin-bottom, @indent__l*2);
+            max-width: 500px;
+            .fieldset {
+                > .legend {
+                    &:extend(.abs-visually-hidden);
+                }
+            }
+        }
+    }
+
+    .block-wishlist-search-results {
+        .block-title {
+            &:extend(.abs-block-title all);
+        }
+        .toolbar-wishlist-results {
+            text-align: center;
+        }
+    }
+
+    .page-multiple-wishlist {
+        .page-title-wrapper {
+            .page-title {
+                &:extend(.abs-visually-hidden all);
+            }
+        }
+    }
+
+    .block-wishlist-info-items {
+        .block-title {
+            .lib-css(margin-bottom, @indent__base);
+            .lib-font-size(22);
+            > strong {
+                font-weight: @font-weight__light ;
+            }
+        }
+        .product-item {
+            width: 100%;
+        }
+        .product-item-photo {
+            margin-left: @indent__base;
+        }
+        .product-item-info {
+            width: auto;
+            &:hover {
+                .split {
+                    visibility: visible;
+                }
+            }
+        }
+        .price-wrapper {
+            display: block;
+            margin: 0 0 @indent__s;
+        }
+        .split {
+            clear: both;
+            padding: @indent__s 0;
+        }
+        .action {
+            &.towishlist {
+                padding: @indent__s 0;
+            }
+        }
+        .input-text {
+            &.qty {
+                &:extend(.abs-input-qty all);
+                margin-right: @indent__s;
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .block-wishlist-management {
+        clear: both;
+        margin-top: -21px;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                margin: 0 -@layout__width-xs-indent 20px;
+                .wishlist-name {
+                    &:extend(.abs-toggling-title-mobile all);
+                    &-label {
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    border-bottom: @border-width__base solid @border-color__base;
+                    .lib-css(background, @collapsible-nav-background);
+                    display: none;
+                    padding: 15px 0;
+                    &.active {
+                        display: block;
+                    }
+                    .item {
+                        margin: 3px 0 0;
+                        &:first-child {
+                            margin-top: 0;
+                        }
+                        &.current {
+                            display: none;
+                        }
+                        a {
+                            display: block;
+                            padding: @indent__xs 18px;
+                            text-decoration: none;
+                            &:hover {
+                                .lib-css(background, @collapsible-nav-item-hover);
+                            }
+                        }
+                    }
+                }
+            }
+            &-add.item {
+                .add {
+                    &:extend(.abs-icon-add-mobile all);
+                }
+            }
+            //  Wish list name
+            &-title {
+                strong {
+                    .lib-font-size(26);
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+                margin-bottom: 15px;
+            }
+            &-notice {
+                &.private {
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                &-select,
+                &-actions {
+                    margin-bottom: 15px;
+                }
+                &-select {
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+            }
+        }
+    }
+    .products-grid.wishlist {
+        .product {
+            &-item {
+                &-checkbox {
+                    left: 20px;
+                    position: absolute;
+                    top: 20px;
+                }
+                &-photo {
+                    .page-multiple-wishlist & {
+                        margin-left: @indent__m;
+                    }
+                }
+                &-name,
+                &-description,
+                .price-box,
+                &-tooltip {
+                    .page-multiple-wishlist & {
+                        margin-left: 115px;
+                    }
+                }
+            }
+        }
+        .wishlist-dropdown {
+            display: none;
+        }
+    }
+
+    .toolbar-wishlist-results {
+        &:extend(.abs-pager-toolbar-mobile all);
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .wishlist {
+        &.window.popup {
+            bottom: auto;
+            .lib-css(top, @desktop-popup-position-top);
+            .lib-css(left, @desktop-popup-position-left);
+            .lib-css(margin-left, @desktop-popup-margin-left);
+            .lib-css(width, @desktop-popup-width);
+            right: auto;
+            .field {
+                .lib-form-field-type-revert(@_type: block);
+            }
+        }
+    }
+
+    .block-wishlist-management {
+        &:extend(.abs-add-clearfix-desktop all);
+        margin-bottom: @indent__base;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                border-bottom: 1px solid @secondary__color;
+                display: table;
+                margin-bottom: 15px;
+                width: 100%;
+                .wishlist-name {
+                    display: table-cell;
+                    margin-right: @indent__s;
+                    padding: @indent__xs @indent__s @indent__s;
+                    vertical-align: top;
+                    white-space: nowrap;
+                    width: 5%;
+                    span {
+                    }
+                    &.active {
+                    }
+                    &-label {
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    display: table-cell;
+                    padding-right: 160px;
+                    vertical-align: top;
+                    &.active {
+                    }
+                    .item {
+                        display: inline-block;
+                        margin-right: @indent__s;
+                        padding: @indent__xs @indent__s @indent__s;
+                        &:last-child {
+                            margin-right: 0;
+                        }
+                    }
+                    .current {
+                        border-bottom: 3px solid @active__color;
+                        font-weight: @font-weight__semibold;
+                    }
+                }
+                .wishlist-name-current {
+                    display: none;
+                }
+            }
+            &-add.item {
+                position: absolute;
+                right: 0;
+                top: 0;
+            }
+            //  Wish list name
+            &-title {
+                strong {
+                    .lib-font-size(40);
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+                float: left;
+            }
+            &-notice {
+                &.private {
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                float: right;
+                &-select,
+                &-actions {
+                }
+                &-select {
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+            }
+        }
+    }
+
+    .block-wishlist-info-items {
+        .product-item-photo {
+            margin-left: 0;
+        }
+    }
+
+    .products-grid.wishlist {
+        .product {
+            &-item {
+                &-checkbox {
+                    float: left;
+                    + .product-item-name {
+                        margin-left: @indent__m;
+                    }
+                }
+            }
+        }
+    }
+
+    .toolbar-wishlist-results {
+        &:extend(.abs-pager-toolbar all);
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_widgets.less
new file mode 100644
index 00000000000..a8e77fb379b
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_MultipleWishlist/web/css/source/_widgets.less
@@ -0,0 +1,10 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+.block-wishlist-search {
+    .form-wishlist-search {
+        margin: @form-field__vertical-indent 0 0;
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Reward/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Reward/web/css/source/_module.less
new file mode 100644
index 00000000000..47da1a78bd1
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Reward/web/css/source/_module.less
@@ -0,0 +1,48 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.block-reward-info {
+    .reward-rates,
+    .reward-limit,
+    .reward-expiring {
+        &:not(:last-child) {
+            margin-bottom: @indent__m;
+        }
+        .title {
+            display: inline-block;
+            margin-bottom: @indent__s;
+        }
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .reward-settings {
+        + .actions-toolbar {
+            margin-top: 10px;
+        }
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .reward-settings {
+        + .actions-toolbar {
+            margin-top: -32px;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_email.less b/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_email.less
new file mode 100644
index 00000000000..a45fa341306
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_email.less
@@ -0,0 +1,17 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  RMA table styles
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    // Shrink table size on small screens to fit as much as possible without requiring horizontal scrolling
+    .rma-items td,
+    .rma-items th {
+        font-size: @font-size__s !important;
+        padding: 5px !important;
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_module.less
new file mode 100644
index 00000000000..efdb489342a
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_Rma/web/css/source/_module.less
@@ -0,0 +1,151 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.form-create-return {
+    &:extend(.abs-add-fields all);
+    .field {
+        .control > span,
+        address {
+            display: inline-block;
+            padding-top: @form-field-type-label-inline__padding-top;
+        }
+    }
+    .additional {
+        &:first-child {
+            margin-top: 0;
+        }
+        .field:nth-last-child(2) {
+            margin-bottom: 0;
+        }
+        .field:last-child {
+            margin-top: @form-field__vertical-indent;
+        }
+    }
+    .field.comment {
+        margin-top: 55px;
+    }
+}
+
+.block-returns-comments {
+    .returns-comments {
+        dt,
+        dd {
+            margin: 0;
+        }
+        dt {
+            font-weight: @font-weight__regular;
+        }
+        dd {
+            margin-bottom: 15px;
+            &:last-child {
+                margin-bottom: 0;
+            }
+        }
+    }
+    .fieldset {
+        margin-bottom: 20px;
+    }
+}
+
+.return-status {
+    &:extend(.abs-status all);
+}
+
+.magento-rma-returns-returns,
+.magento-rma-guest-returns,
+.magento-rma-returns-view {
+    .page-title-wrapper {
+        .page-title {
+            margin-right: 25px;
+        }
+    }
+}
+
+//
+//    Guest return view page
+//--------------------------------------
+.magento-rma-guest-returns {
+    .column.main {
+        .block:not(.widget) {
+            &:extend(.abs-account-blocks all);
+        }
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .form-create-return {
+        .fieldset {
+            > .actions-toolbar {
+                &:extend(.abs-add-clearfix-mobile-m all);
+            }
+        }
+    }
+    .account {
+        .column.main {
+            .returns-details-items {
+                .block-returns-tracking {
+                    .block-title {
+                        > .action.track {
+                            float: none;
+                            display: block;
+                            margin: @indent__s 0 0;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-create-return {
+        &:extend(.abs-add-fields-desktop all);
+        .additional {
+            .field:last-child {
+                margin-top: @form-field__vertical-indent__desktop;
+            }
+        }
+    }
+    //
+    //    Guest return view page
+    //--------------------------------------
+    .magento-rma-guest-returns  {
+        .column.main {
+            .block:not(.widget) {
+                .block-content {
+                    &:extend(.abs-add-clearfix-desktop all);
+                    .box {
+                        &:extend(.abs-blocks-2columns all);
+                        margin-bottom: @indent__base;
+                    }
+                }
+            }
+        }
+    }
+    .block-returns-tracking {
+        .block-title {
+            .action {
+                margin: 12px 0 0 30px;
+                &.track {
+                    float: right;
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/blank/Magento_VersionsCms/web/css/source/_widgets.less b/app/design/frontend/Magento/blank/Magento_VersionsCms/web/css/source/_widgets.less
new file mode 100644
index 00000000000..776754d62de
--- /dev/null
+++ b/app/design/frontend/Magento/blank/Magento_VersionsCms/web/css/source/_widgets.less
@@ -0,0 +1,25 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.block-cms-hierarchy-link {
+    &.widget {
+        display: block;
+        margin-bottom: @indent__base;
+    }
+
+}
+.block-cms-hierarchy-link-inline {
+    &.widget {
+        margin: 0;
+    }
+}
+
+}
diff --git a/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_module.less
new file mode 100644
index 00000000000..c7df4ba9874
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_module.less
@@ -0,0 +1,165 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .column {
+        .block-addbysku {
+            .fieldset {
+                margin: 0;
+                .fields {
+                    position: relative;
+                    .field {
+                        display: inline-block;
+                        margin-bottom: @indent__s;
+                        vertical-align: top;
+                    }
+                    .actions-toolbar {
+                        position: absolute;
+                        right: 0;
+                        top: 7px;
+                    }
+                }
+            }
+            .sku {
+                &:extend(.abs-add-box-sizing all);
+                margin-right: -155px;
+                padding-right: 160px;
+                width: 100%;
+            }
+            .qty {
+                .qty {
+                    &:extend(.abs-input-qty all);
+                    + .mage-error {
+                        width: 80px;
+                    }
+                }
+            }
+            .block-content {
+                &:extend(.abs-add-clearfix-desktop all);
+                .box {
+                    &:extend(.abs-blocks-2columns all);
+                }
+                .actions-toolbar {
+                    clear: both;
+                    .lib-actions-toolbar(
+                    @_actions-toolbar-actions-position: left,
+                    @_actions-toolbar-margin: 0 0 @indent__base
+                    );
+                    .lib-actions-toolbar-clear-floats();
+                    > .secondary {
+                        text-align: left;
+                    }
+                }
+            }
+            .action {
+                &.add {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-expand,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 20px
+                    );
+                    line-height: normal;
+                    padding: 4px;
+                    width: auto;
+                }
+            }
+            .reset {
+                margin: 7px 0;
+            }
+            .note {
+                display: block;
+                margin: 0 0 @indent__base;
+                padding-top: @indent__s;
+            }
+        }
+    }
+
+    .block-cart-failed {
+        margin: @indent__xl 0;
+        &:extend(.abs-shopping-cart-items all);
+        .block-title {
+            .lib-font-size(@h2__font-size);
+            strong {
+                font-weight: @h2__font-weight;
+            }
+        }
+        .actions.secondary {
+            text-align: center;
+            .action {
+                display: block;
+                margin: 0 auto @indent__s;
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .column {
+        .block-addbysku {
+            .sku {
+                margin-right: -85px;
+                padding-right: 90px;
+            }
+            .action {
+                &.remove {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-trash,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 18px,
+                    @_icon-font-color: @minicart-icons-color
+                    );
+                    .lib-button-reset();
+                }
+            }
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .block-cart-failed {
+        .block-title {
+            margin: 0 @indent__base @indent__base;
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
+    .column {
+        .block-addbysku {
+            .action {
+                &.remove {
+                    .lib-button-reset();
+                    .lib-button-as-link();
+                    margin-top: 4px;
+                }
+            }
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .block-cart-failed {
+        &:extend(.abs-shopping-cart-items-desktop all);
+        .actions.secondary {
+            text-align: right;
+            .action {
+                display: inline-block;
+                margin: 0 0 0 @indent__s;
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_widgets.less b/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_widgets.less
new file mode 100644
index 00000000000..bd1d1bf8248
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_AdvancedCheckout/web/css/source/_widgets.less
@@ -0,0 +1,89 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .sidebar {
+        .block-addbysku {
+            .fieldset {
+                margin: 0;
+                .fields {
+                    position: relative;
+                    .field {
+                        display: inline-block;
+                        margin-bottom: @indent__s;
+                        vertical-align: top;
+                        &.sku {
+                            &:extend(.abs-add-box-sizing all);
+                            margin-right: -85px;
+                            padding-right: 90px;
+                            width: 100%;
+                        }
+                        &.qty {
+                            .qty {
+                                &:extend(.abs-input-qty all);
+                                + .mage-error {
+                                    width: 80px;
+                                }
+                            }
+                        }
+                    }
+                    .actions-toolbar {
+                        position: absolute;
+                        top: 7px;
+                        right: 0;
+                    }
+                }
+            }
+            .form-addbysku {
+                .actions-toolbar {
+                    margin-bottom: @indent__base;
+                    .primary {
+                        text-align: left;
+                        .action {
+                            width: auto;
+                        }
+                    }
+                    .secondary {
+                        float: none;
+                        text-align: left;
+                    }
+                }
+            }
+            .action {
+                &.add {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-expand,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 18px
+                    );
+                    line-height: normal;
+                    padding: 4px;
+                    width: auto;
+                }
+                &.links {
+                    display: inline-block;
+                    margin: @indent__base 0 0;
+                }
+                &.reset {
+                    display: block;
+                    margin: @indent__s 0;
+                }
+                &.remove {
+                    .lib-button-icon(
+                    @_icon-font-content: @icon-remove,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 12px,
+                    @_icon-font-color: @color-gray60
+                    );
+                    .lib-button-reset();
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_CustomerBalance/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_CustomerBalance/web/css/source/_module.less
new file mode 100644
index 00000000000..93feda14b83
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_CustomerBalance/web/css/source/_module.less
@@ -0,0 +1,56 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.block-balance {
+    .balance-price-label {
+        &:extend(.abs-visually-hidden all);
+    }
+    .price {
+        .lib-font-size(32);
+        line-height: 32px;
+        display: inline-block;
+        .lib-css(margin-top, -@indent__s);
+    }
+}
+
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .storecredit {
+        .block {
+            &:extend(.abs-blocks-2columns all);
+        }
+        .block-balance-history {
+            width: 100%;
+        }
+    }
+    .table-balance-history {
+        .col {
+            width: 25%;
+        }
+    }
+    .table-wrapper.balance-history {
+        &:extend(.abs-account-table-margin-desktop all);
+    }
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .table-wrapper.balance-history {
+        &:extend(.abs-account-table-margin-mobile all);
+        &:extend(.abs-no-border-top all);
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_GiftCard/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GiftCard/web/css/source/_module.less
new file mode 100644
index 00000000000..48be33cd964
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GiftCard/web/css/source/_module.less
@@ -0,0 +1,141 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+
+    .page-product-giftcard {
+        .giftcard-amount {
+            text-align: left;
+            margin-bottom: 0;
+            clear: both;
+            border-top: 1px @color-gray-light5 solid;
+            padding-top: 15px;
+            .field:last-child {
+                padding-bottom: @form-field__vertical-indent !important;
+            }
+        }
+        .product-info-main {
+            .price-box {
+                .old-price {
+                    font-size: 20px;
+                }
+                .price-container.price-final_price {
+                    > span {
+                        display: block;
+                        margin-bottom: @indent__xs;
+                        &:last-child {
+                            margin-bottom: 0;
+                        }
+                    }
+                    .price {
+                        font-size: 22px;
+                        line-height: 22px;
+                        font-weight: @font-weight__semibold;
+                    }
+                }
+                & + .giftcard.form {
+                    border-top: 1px @color-gray-light5 solid;
+                    padding-top: 15px;
+                }
+            }
+        }
+        .product-info-stock-sku {
+            display: block;
+        }
+        .product-add-form {
+            clear: none;
+            border: 0;
+            padding-top: 0;
+            .product-options-wrapper .field:not(.text) {
+                margin-top: @form-field__vertical-indent;
+                margin-bottom: @form-field__vertical-indent;
+            }
+        }
+        .giftcard.form {
+            clear: both;
+        }
+        .price-box {
+            margin-bottom: 10px;
+        }
+        .product-info-price {
+            float: right;
+            width: auto;
+            display: block;
+            white-space: nowrap;
+            border: 0;
+        }
+        .fieldset.giftcard {
+            >.legend {
+                &:extend(.abs-visually-hidden all);
+            }
+            >.legend + br {
+                &:extend(.abs-no-display all);
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .cart-discount {
+        .giftcard .content {
+            padding-bottom: 35px;
+        }
+        .actions-toolbar {
+            .secondary {
+                bottom: 17px;
+            }
+        }
+    }
+    .field.open-amount {
+        width: 100%;
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .page-product-giftcard {
+        .product-info-main {
+            .price-box {
+                .price-container.price-final_price {
+                    font-size: @font-size__xl;
+                    .price {
+                        font-size: 36px;
+                        line-height: 36px;
+                    }
+                }
+            }
+        }
+        .product-add-form {
+            .field:not(.text) {
+                .lib-form-field(
+                    @_type: block,
+                    @_column: true
+                );
+                &:nth-child(odd) {
+                    padding-right: 25px;
+                }
+                &:nth-child(even) {
+                    padding-right: 0;
+                }
+            }
+            .product-options-wrapper {
+                .field:not(.date) > .control {
+                    width: auto;
+                }
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_GiftCardAccount/layout/checkout_cart_index.xml b/app/design/frontend/Magento/luma/Magento_GiftCardAccount/layout/checkout_cart_index.xml
new file mode 100644
index 00000000000..79d15de6b67
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GiftCardAccount/layout/checkout_cart_index.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
+    <body>
+        <move element="checkout.cart.giftcardaccount" destination="cart.discount" after="-"/>
+    </body>
+</page>
diff --git a/app/design/frontend/Magento/luma/Magento_GiftCardAccount/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GiftCardAccount/web/css/source/_module.less
new file mode 100644
index 00000000000..b1c67cd2c68
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GiftCardAccount/web/css/source/_module.less
@@ -0,0 +1,58 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .giftcard-account {
+        .please-wait {
+            display: none;
+        }
+        .form-giftcard-redeem {
+            .giftcard.info {
+                margin-bottom: @indent__l;
+            }
+            .fieldset {
+                &:extend(.abs-forms-margin-small all);
+            }
+        }
+    }
+
+    .opc-wrapper {
+        .form-giftcard-account {
+            max-width: 500px;
+            .field {
+                margin: 0 0 @indent__base;
+                .label {
+                    &:extend(.abs-visually-hidden all);
+                }
+            }
+        }
+        .giftcard-account-info {
+            margin: 0 0 @indent__base;
+
+            .giftcard-account-number {
+                margin: 0 0 @indent__s;
+            }
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-giftcard-redeem {
+        &:extend(.abs-forms-general-desktop all);
+    }
+    .block-balance-giftcard {
+        .block-content {
+            &:extend(.abs-account-block-font-size all);
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_GiftRegistry/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GiftRegistry/web/css/source/_module.less
new file mode 100644
index 00000000000..eb1e4d0d92d
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GiftRegistry/web/css/source/_module.less
@@ -0,0 +1,364 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .form-giftregistry-share,
+    .form-giftregistry-edit {
+        &:extend(.abs-add-fields all);
+        .actions-toolbar:not(:last-child) {
+            margin-bottom: @indent__xl;
+        }
+        .fieldset {
+            .nested {
+                .field:not(.choice) {
+                    .control {
+                        width: 100%;
+                    }
+                }
+            }
+        }
+    }
+
+    .form.giftregistry.items {
+        .actions-toolbar {
+            &:extend(.abs-reset-left-margin all);
+        }
+    }
+
+    .giftregisty-dropdown {
+        &:extend(.abs-dropdown-simple all);
+        .action.toggle {
+            .lib-css(color, @link__color);
+        }
+    }
+
+    .table-giftregistry-items {
+        .field.qty .qty {
+            &:extend(.abs-input-qty all);
+        }
+        .product-image {
+            .lib-css(margin-right, @indent__s);
+            float: left;
+        }
+    }
+
+    .form.giftregistry .fieldset {
+        .cart-summary & {
+            margin: 15px 0 @indent__xs;
+            text-align: left;
+            .field {
+                margin: 0 0 @indent__s;
+                .control {
+                    float: none;
+                    width: auto;
+                }
+            }
+            .action.primary {
+                &:extend(.abs-revert-to-action-secondary all);
+            }
+        }
+    }
+
+    .form-giftregistry-create {
+        .fieldset {
+            &:extend(.abs-forms-margin-small all);
+        }
+    }
+
+    .form-giftregistry-edit {
+        .giftregistry-type {
+            .lib-css(margin-bottom, @indent__l);
+            .lib-css(margin-top, -@indent__m);
+        }
+        .field.date {
+            &:extend(.abs-field-date all);
+        }
+    }
+
+    .form-giftregistry-search {
+        margin-bottom: @indent__l*2;
+        .legend {
+            &:extend(.abs-account-title all);
+        }
+        .fields-specific-options {
+            .field {
+                &:nth-last-of-type(1) {
+                    margin-bottom: 0;
+                }
+            }
+            .datetime-picker {
+                &:extend(.abs-field-date-input all);
+            }
+        }
+    }
+
+    .block-giftregistry-results {
+        .block-title {
+            &:extend(.abs-account-title all);
+        }
+        .data.table {
+            &:extend(.abs-table-striped all);
+        }
+    }
+
+    .block-giftregistry {
+        .actions-toolbar {
+            margin: 17px 0 0;
+        }
+    }
+
+    .block-giftregistry-shared {
+        .item-options {
+            .item-value {
+                margin: 0 0 @indent__m;
+            }
+        }
+    }
+
+    .block-giftregistry-shared-items {
+        .block-title {
+            &:extend(.abs-account-title all);
+        }
+        .product-image-wrapper {
+            &:extend(.abs-reset-image-wrapper all);
+        }
+        .item {
+            .col {
+                border: 0;
+            }
+        }
+        th {
+            border-bottom: @border-width__base solid @border-color__base;
+        }
+        .col {
+            padding: @cart-item-cell-padding-top 11px 10px;
+            .price-box {
+                display: inline-block;
+            }
+            .price-wrapper {
+                .lib-font-size(18);
+                display: block;
+                font-weight: @font-weight__bold;
+                white-space: nowrap;
+            }
+        }
+
+        .qty {
+            .qty {
+                &:extend(.abs-input-qty all);
+            }
+        }
+
+        .product {
+            .item-options {
+                &:extend(.abs-product-options-list all);
+                &:extend(.abs-add-clearfix all);
+                margin: 0;
+            }
+            &-item-photo {
+                display: block;
+                max-width: 65px;
+                padding: @indent__s 0;
+            }
+            &-item-name {
+                .lib-font-size(18);
+                display: block;
+                margin: 0 0 @indent__xs;
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .account {
+        .table-giftregistry {
+            .col.actions {
+                &:extend(.abs-col-no-prefix all);
+            }
+        }
+    }
+    .table-giftregistry-items {
+        .col.product {
+            &:before {
+                &:extend(.abs-visually-hidden-mobile all);
+            }
+            &:extend(.abs-add-clearfix-mobile all);
+        }
+        .field.choice,
+        .field.qty {
+            display: inline-block;
+        }
+    }
+    .form-giftregistry-search {
+        .fieldset {
+            margin-bottom: @indent__base;
+        }
+    }
+    .block-giftregistry-results {
+        .block-title {
+            margin-bottom: 0;
+        }
+        .table-wrapper {
+            border-top: none;
+        }
+    }
+    .block-giftregistry-shared-items {
+        .block-title {
+            margin-bottom: @indent__s;
+        }
+        .table-wrapper {
+            border-top: 0;
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    //  Shopping cart link
+    .cart.table-wrapper {
+        .action-giftregistry {
+            .lib-icon-font(
+            @icon-gift-registry,
+            @_icon-font-size: 18px,
+            @_icon-font-line-height: 20px,
+            @_icon-font-text-hide: true,
+            @_icon-font-color: @minicart-icons-color,
+            @_icon-font-color-hover: @primary__color,
+            @_icon-font-color-active: @minicart-icons-color
+            );
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-giftregistry-share,
+    .form-giftregistry-edit {
+        &:extend(.abs-add-fields-desktop all);
+        &:extend(.abs-form-field-column-2 all);
+        .fieldset .field {
+            width: 45%;
+        }
+    }
+    .form-giftregistry-edit {
+        .fieldset.shipping_address {
+            .fieldset {
+                margin-top: @form-field__vertical-indent;
+            }
+        }
+    }
+    .form-giftregistry-create {
+        &:extend(.abs-forms-general-desktop all);
+    }
+    .table-giftregistry {
+        .col.create {
+            white-space: nowrap;
+        }
+        .col.message {
+            width: 40%;
+        }
+        .col.actions {
+            width: 30%;
+        }
+    }
+    .table-giftregistry-items {
+        .col.note {
+            width: 30%;
+        }
+        .account .data.table& {
+            .lib-table-bordered(
+            @_table_type: horizontal
+            );
+            th {
+                border-bottom: 0;
+            }
+            > tbody > tr:nth-child(even) {
+                > td,
+                > th {
+                    background: none;
+                }
+            }
+        }
+    }
+    .form-giftregistry-search {
+        .fieldset {
+            margin-bottom: @form-field__vertical-indent__desktop;
+            .field {
+                &.name,
+                &.lastname {
+                    .lib-form-field-column(@_column: true);
+                    margin-bottom: auto;
+                }
+                &.lastname {
+                    padding: 0;
+                }
+            }
+        }
+    }
+
+    .toolbar-giftregistry-results {
+        &:extend(.abs-pager-toolbar all);
+    }
+
+    .block-giftregistry-shared {
+        .item-options {
+            &:extend(.abs-product-options-list-desktop all);
+            &:extend(.abs-add-clearfix-desktop all);
+        }
+    }
+
+    .block-giftregistry-shared-items {
+        .column.main & {
+            .actions-toolbar {
+                &:extend(.abs-reset-left-margin-desktop all);
+            }
+        }
+        .item {
+            border-bottom: @border-width__base solid @border-color__base;
+            border-top: 0;
+        }
+        .product {
+            &-item-photo {
+                display: table-cell;
+                max-width: 100%;
+                padding: 0 @indent__base 0 0;
+                vertical-align: top;
+                width: 1%;
+            }
+            &-item-details {
+                display: table-cell;
+                vertical-align: top;
+                width: 99%;
+                word-break: normal;
+            }
+        }
+        .col {
+            &.product {
+                width: 48%;
+            }
+            &:not(.product) {
+                text-align: center;
+            }
+            &.price {
+                padding-top: 17px;
+            }
+        }
+        .input-text {
+            &.qty {
+                margin-top: -4px;
+            }
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_GiftWrapping/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GiftWrapping/web/css/source/_module.less
new file mode 100644
index 00000000000..e3296daa1bd
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GiftWrapping/web/css/source/_module.less
@@ -0,0 +1,238 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  _____________________________________________
+
+@gift-wrapping__border-color: @color-gray-light5;
+@gift-wrapping__border-width: @border-width__base;
+
+@gift-wrapping-preview__active__border-color: @color-gray20;
+@gift-wrapping-preview__active__border-width: 3px;
+
+@gift-wrapping-thumbnail__height: 4rem;
+@gift-wrapping-thumbnail__width: @gift-wrapping-thumbnail__height;
+
+@gift-wrapping-no-image__background: @color-gray95;
+@gift-wrapping-no-image-icon__color: @color-gray-darken4;
+@gift-wrapping-no-image-icon__font-size: 22px;
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .gift-wrapping-info {
+        .lib-css(font-weight, @font-weight__light);
+        font-size: @font-size__l;
+        margin: @indent__base 0;
+    }
+
+    .gift-wrapping-list {
+        &:extend(.abs-add-clearfix all);
+        list-style: none;
+        margin: @indent__base 0 @indent__s;
+        padding: 0;
+        .no-image {
+            .lib-css(background, @gift-wrapping-no-image__background);
+            .lib-icon-font(
+            @icon-present,
+            @_icon-font-size: @gift-wrapping-no-image-icon__font-size,
+            @_icon-font-line-height: @gift-wrapping-thumbnail__height,
+            @_icon-font-color: @gift-wrapping-no-image-icon__color,
+            @_icon-font-position: after,
+            @_icon-font-text-hide: true,
+            @_icon-font-vertical-align: middle
+            );
+            &:after {
+                display: block;
+            }
+        }
+    }
+
+    .gift-wrapping-preview,
+    .gift-wrapping-item > span {
+        cursor: pointer;
+        display: block;
+        overflow: hidden;
+        position: relative;
+        z-index: 1;
+    }
+
+    .gift-wrapping-item {
+        float: left;
+        margin: 0 @indent__s @indent__s 0;
+        &:last-child {
+            margin-right: 0;
+        }
+        &._active {
+            span {
+                &:before {
+                    .lib-css(border, @gift-wrapping-preview__active__border-width solid @gift-wrapping-preview__active__border-color);
+                    box-sizing: border-box;
+                    content: '';
+                    display: block;
+                    height: 100%;
+                    position: absolute;
+                    width: 100%;
+                    z-index: 2;
+                }
+            }
+        }
+        > span {
+            height: @gift-wrapping-thumbnail__height;
+            width: @gift-wrapping-thumbnail__width;
+        }
+    }
+
+    .gift-wrapping-title {
+        margin: @indent__s 0;
+        .action-remove {
+            &:extend(.abs-action-button-as-link all);
+            margin: -@indent__xs 0 0 @indent__xs;
+            .lib-icon-font(
+            @icon-trash,
+            @_icon-font-size: 18px,
+            @_icon-font-line-height: 20px,
+            @_icon-font-text-hide: true,
+            @_icon-font-color: @minicart-icons-color,
+            @_icon-font-color-hover: @primary__color,
+            @_icon-font-color-active: @minicart-icons-color
+            );
+        }
+    }
+
+    .gift-options-content {
+        .fieldset {
+            .field {
+                margin: @indent__s 0;
+            }
+        }
+    }
+
+    .gift-wrapping-summary {
+        padding-right: 7rem;
+
+        .gift-wrapping-title {
+            border: 0;
+            display: inline-block;
+            padding: 0;
+        }
+    }
+
+    .opc-wrapper {
+        .fieldset.gift-message .field.gift-wrapping {
+            padding: 0;
+            width: 100%;
+        }
+    }
+
+    .opc-wrapper .data.table,
+    .table-order-items {
+        .gift-wrapping {
+            margin: @indent__base 0 0;
+            .title {
+                float: none;
+            }
+            .content {
+                &:extend(.abs-add-clearfix all);
+                margin: 0;
+                > img {
+                    float: left;
+                    margin: 0 @indent__s 0 0;
+                    max-height: 50px;
+                    max-width: 50px;
+                }
+            }
+        }
+    }
+
+    .gift-summary,
+    .gift-options {
+        .price-box {
+            margin-left: 22px;
+        }
+        .regular-price {
+            &:before {
+                content: attr(data-label)": ";
+            }
+            .price {
+                font-weight: @font-weight__bold;
+            }
+        }
+        &:extend(.abs-adjustment-incl-excl-tax all);
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .gift-wrapping {
+        .lib-css(border-bottom, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+        margin-bottom: @indent__base;
+        padding-bottom: @indent__s;
+    }
+    .gift-wrapping-list {
+        width: 100%;
+    }
+    .gift-wrapping-summary {
+        + .gift-message-summary {
+            padding-right: 0;
+        }
+    }
+    .gift-options-cart-item {
+        float: left;
+    }
+    .gift-wrapping-preview {
+        img {
+            width: 100%;
+        }
+    }
+    .item-actions {
+        .actions-toolbar {
+            .gift-options {
+                .gift-wrapping,
+                .gift-message {
+                    display: block;
+                }
+            }
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .data.table {
+        .gift-wrapping {
+            .nested,
+            .content {
+                &:extend(.abs-add-clearfix-desktop all);
+            }
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .gift-wrapping {
+        .lib-css(border-right, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+        box-sizing: border-box;
+        float: left;
+        padding-right: @indent__base;
+        width: 50%;
+        & + .gift-message {
+            .lib-css(border-left, @gift-wrapping__border-width solid @gift-wrapping__border-color);
+            box-sizing: border-box;
+            float: left;
+            padding-left: 4.5rem;
+            width: 50%;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_GroupedProduct/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GroupedProduct/web/css/source/_module.less
new file mode 100644
index 00000000000..d5a3c3b5592
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_GroupedProduct/web/css/source/_module.less
@@ -0,0 +1,100 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.table-wrapper.grouped {
+    width: auto;
+}
+
+.table.grouped {
+    .row-tier-price {
+        > td {
+            border-top: 0;
+        }
+    }
+    .col.item {
+        width: 90%;
+    }
+    .col.qty {
+        width: 10%;
+        .control.qty {
+            .qty {
+                &:extend(.abs-input-qty all);
+            }
+        }
+    }
+    .product-item-name {
+        font-weight: @font-weight__regular;
+        margin-bottom: @indent__s;
+        display: inline-block;
+    }
+    .price-box {
+        p {
+            margin: 0;
+        }
+        .price {
+            font-weight: @font-weight__bold;
+        }
+        .old-price {
+            .price {
+                font-weight: normal;
+            }
+        }
+    }
+    .stock.unavailable {
+        margin: 0;
+        white-space: nowrap;
+        text-transform: none;
+        font-weight: normal;
+    }
+    .row-tier-price {
+    }
+}
+
+.page-product-grouped .product-info-price {
+    float: right;
+    display: block;
+    width: auto;
+    border: 0;
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .table.grouped {
+        > thead > tr > th {
+            display: table-cell;
+            border-bottom: @table__border-width @table__border-style @table__border-color;
+        }
+        > tbody {
+            border-bottom: @table__border-width @table__border-style @table__border-color;
+            > tr > td {
+                &:extend(.abs-col-no-prefix all);
+                border: 0;
+                display: table-cell;
+                padding: @table-cell__padding-vertical @table-cell__padding-horizontal;
+                &:last-child {
+                    border: 0;
+                }
+            }
+        }
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .table-wrapper.grouped {
+        margin-left: -@layout__width-xs-indent;
+        margin-right: -@layout__width-xs-indent;
+    }
+}
+
diff --git a/app/design/frontend/Magento/luma/Magento_Invitation/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Invitation/web/css/source/_module.less
new file mode 100644
index 00000000000..4aa9812a063
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_Invitation/web/css/source/_module.less
@@ -0,0 +1,75 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.form-add-invitations {
+    &:extend(.abs-add-fields all);
+    .fields {
+        .label {
+            &:extend(.abs-visually-hidden all);
+        }
+    }
+    .additional,
+    .field.message {
+        .lib-css(margin-top, @form-field__vertical-indent);
+    }
+    .action {
+        &.remove {
+            top: 4px;
+        }
+        &.add {
+            .lib-button-icon(
+                @_icon-font-content: @icon-expand,
+                @_icon-font-text-hide: true,
+                @_icon-font-size: 18px
+            );
+            line-height: normal;
+            padding: 4px;
+            width: auto;
+        }
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .form-add-invitations {
+        .action {
+            &.remove {
+                .lib-button-icon(
+                    @_icon-font-content: @icon-trash,
+                    @_icon-font-text-hide: true,
+                    @_icon-font-size: 18px,
+                    @_icon-font-color: @minicart-icons-color
+                );
+            }
+        }
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
+    .form-add-invitations {
+        &:extend(.abs-add-fields-desktop all);
+    }
+}
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .table-invitations {
+        .col {
+            width: 50%;
+        }
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_MultipleWishlist/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_MultipleWishlist/web/css/source/_module.less
new file mode 100644
index 00000000000..1bf8d88e340
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_MultipleWishlist/web/css/source/_module.less
@@ -0,0 +1,534 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+@desktop-popup-width: 380px;
+@desktop-popup-margin-left: -((@desktop-popup-width+(@popup__padding*2))/2);
+@desktop-popup-position-left: 50%;
+@desktop-popup-position-top: 20%;
+
+//
+//  Common
+//  _____________________________________________
+
+& when (@media-common = true) {
+    .wishlist {
+        //  Wish list split button
+        &.split.button {
+            .lib-dropdown-split(
+            @_options-selector: ~".items",
+            @_dropdown-split-button-border-radius-fix: false,
+            @_dropdown-split-list-item-padding: 5px 5px 5px 23px,
+            @_dropdown-split-toggle-icon-content: @icon-down,
+            @_dropdown-split-toggle-active-icon-content: @icon-up,
+            @_icon-font-size: 12px,
+            @_icon-font-color: @addto-color,
+            @_icon-font-color-hover: @addto-hover-color,
+            @_icon-font-vertical-align: middle,
+            @_dropdown-split-list-pointer-position: left,
+            @_dropdown-split-list-min-width: 200px
+            );
+            margin-right: 5%;
+            vertical-align: middle;
+            .items {
+                padding: 6px 0;
+            }
+            &:extend(.abs-dropdown-items-new all);
+
+            > .action {
+                &:extend(.abs-action-button-as-link all);
+                &.split {
+                    .lib-icon-font-symbol(
+                    @_icon-font-content: @icon-wishlist-full
+                    );
+                    &:extend(.abs-actions-addto all);
+                    margin-right: 5px;
+                    &:before {
+                        margin: 0;
+                    }
+                }
+                &:active,
+                &:focus,
+                &:hover {
+                    .lib-css(color, @addto-hover-color);
+                }
+            }
+            > .action.toggle {
+                &:before {
+                    border-left: 1px solid @addto-color;
+                    content: '';
+                    float: left;
+                    height: 15px;
+                    margin: 3px 4px 0 0;
+                }
+            }
+            .table-comparison &,
+            .product-items & {
+                > .action {
+                    &.split {
+                        span {
+                            &:extend(.abs-visually-hidden all);
+                        }
+                    }
+                }
+            }
+            .product-info-main &,
+            .block-bundle-summary & {
+                > .action {
+                    &.split {
+                    }
+                }
+            }
+            .cart.table-wrapper & {
+                vertical-align: baseline;
+                > .action {
+                    &.split {
+                        font-weight: normal;
+                        letter-spacing: normal;
+                        text-transform: none;
+                    }
+                    &.toggle {
+                        &:after {
+                            .lib-css(color, @link__color);
+                        }
+                    }
+                    &.split,
+                    &.toggle {
+                        .lib-css(color, @link__color);
+                        &:before {
+                            display: none;
+                        }
+                    }
+                }
+            }
+        }
+        //  Wish list popup
+        &.window.popup {
+            .lib-popup();
+            &.active {
+                display: block;
+            }
+        }
+        &.overlay {
+            .lib-window-overlay();
+            &.active {
+                display: block;
+            }
+        }
+        //  Wish list dropdown
+        &-dropdown {
+            &:extend(.abs-dropdown-simple all);
+            &:extend(.abs-dropdown-items-new all);
+        }
+        &-dropdown.move,
+        &-dropdown.copy {
+            .action.toggle {
+                .lib-css(color, @link__color);
+            }
+        }
+    }
+
+    .page-multiple-wishlist {
+        .page-title-wrapper {
+            .page-title {
+                &:extend(.abs-visually-hidden all);
+            }
+        }
+        .actions-toolbar {
+            > .primary {
+                display: block;
+                float: none;
+                text-align: left;
+                .action.remove {
+                    float: right;
+                }
+            }
+        }
+    }
+
+    .block-wishlist-management {
+        position: relative;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                .wishlist-name {
+                    &-label {
+                        font-weight: @font-weight__semibold;
+                        &:extend(.abs-colon all);
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    &:extend(.abs-reset-list all);
+                    &.active {
+                    }
+                }
+            }
+            &-add.item {
+                .action {
+                }
+            }
+            //  Wish list name
+            &-title {
+                margin-bottom: @indent__s;
+                strong {
+                    font-weight: @font-weight__light;
+                    margin-right: @indent__s;
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+            }
+            &-notice {
+                .lib-css(color, @text__color__muted);
+                display: inline-block;
+                margin-right: @indent__base;
+                &.private {
+                    .lib-icon-font(
+                    @_icon-font-content: @icon-private,
+                    @_icon-font-color: lighten(@text__color__muted, 15%),
+                    @_icon-font-vertical-align: text-bottom,
+                    @_icon-font-margin: 0 @indent__xs 0 0
+                    );
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                &-select,
+                &-actions {
+                    display: inline-block;
+                }
+                &-select {
+                    margin-right: @indent__base;
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+                margin-right: @indent__base;
+            }
+        }
+    }
+
+    .block-wishlist-search-form {
+        .block-title {
+            &:extend(.abs-account-title all);
+        }
+        .form-wishlist-search {
+            .lib-css(margin-bottom, @indent__l*2);
+            max-width: 500px;
+            .fieldset {
+                > .legend {
+                    &:extend(.abs-visually-hidden);
+                }
+            }
+        }
+    }
+
+    .block-wishlist-search-results {
+        .block-title {
+            &:extend(.abs-account-title all);
+        }
+        .data.table {
+            &:extend(.abs-table-striped all);
+        }
+        .table-wrapper {
+            border-top: none;
+        }
+    }
+
+    .block-wishlist-info-items {
+        .block-title {
+            .lib-css(margin-bottom, @indent__base);
+            .lib-font-size(22px);
+            > strong {
+                font-weight: @font-weight__light ;
+            }
+        }
+        .product-item {
+            width: 100%;
+        }
+        .product-item-photo {
+            margin-left: @indent__base;
+        }
+        .product-item-info {
+            width: auto;
+            &:hover {
+                .split {
+                    visibility: visible;
+                }
+            }
+        }
+        .price-wrapper {
+            display: block;
+            margin: 0 0 @indent__s;
+        }
+        .split {
+            clear: both;
+            padding: @indent__s 0;
+            visibility: hidden;
+        }
+        .wishlist-dropdown {
+            .change {
+                .lib-css(color, @link__color);
+            }
+        }
+        .action {
+            &.towishlist {
+                padding: @indent__s 0;
+            }
+        }
+        .input-text {
+            &.qty {
+                &:extend(.abs-input-qty all);
+                margin-right: 10px;
+            }
+        }
+    }
+}
+
+//
+//  Mobile
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
+    .block-wishlist-management {
+        clear: both;
+        margin-top: -21px;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                margin: 0 -@layout__width-xs-indent 20px;
+                .wishlist-name {
+                    .lib-font-size(16);
+                    &:extend(.abs-toggling-title-mobile all);
+                    &-label {
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    border-bottom: @border-width__base solid @border-color__base;
+                    .lib-css(background, @collapsible-nav-background);
+                    display: none;
+                    padding: 15px 0;
+                    &.active {
+                        display: block;
+                    }
+                    .item {
+                        margin: 3px 0 0;
+                        &:first-child {
+                            margin-top: 0;
+                        }
+                        &.current {
+                            display: none;
+                        }
+                        a {
+                            .lib-css(color, @text__color);
+                            display: block;
+                            padding: @indent__xs 18px;
+                            text-decoration: none;
+                            &:hover {
+                                .lib-css(background, @collapsible-nav-item-hover);
+                            }
+                        }
+                    }
+                }
+            }
+            &-add.item {
+                .add {
+                    &:extend(.abs-icon-add-mobile all);
+                }
+            }
+            //  Wish list name
+            &-title {
+                strong {
+                    .lib-font-size(26);
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+                margin-bottom: 15px;
+            }
+            &-notice {
+                &.private {
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                &-select,
+                &-actions {
+                    margin-bottom: 15px;
+                }
+                &-select {
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+            }
+        }
+    }
+    .products-grid.wishlist {
+        .product {
+            &-item {
+                &-checkbox {
+                    left: 20px;
+                    position: absolute;
+                    top: 20px;
+                }
+                &-photo {
+                    .page-multiple-wishlist & {
+                        margin-left: @indent__m;
+                    }
+                }
+                &-name,
+                &-description,
+                .price-box,
+                &-tooltip {
+                    .page-multiple-wishlist & {
+                        margin-left: 115px;
+                    }
+                }
+            }
+        }
+        .wishlist-dropdown {
+            display: none;
+        }
+    }
+}
+
+//
+//  Desktop
+//  _____________________________________________
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .wishlist {
+        &.window.popup {
+            bottom: auto;
+            .lib-css(top, @desktop-popup-position-top);
+            .lib-css(left, @desktop-popup-position-left);
+            .lib-css(margin-left, @desktop-popup-margin-left);
+            .lib-css(width, @desktop-popup-width);
+            right: auto;
+        }
+    }
+
+    .block-wishlist-management {
+        &:extend(.abs-add-clearfix-desktop all);
+        margin-bottom: @indent__base;
+        .wishlist {
+            //  Select wish list
+            &-select {
+                border-bottom: 1px solid @secondary__color;
+                display: table;
+                margin-bottom: 15px;
+                width: 100%;
+                .wishlist-name {
+                    display: table-cell;
+                    margin-right: @indent__s;
+                    padding: @indent__xs @indent__s @indent__s;
+                    vertical-align: top;
+                    white-space: nowrap;
+                    width: 5%;
+                    span {
+                    }
+                    &.active {
+                    }
+                    &-label {
+                    }
+                    &-current {
+                    }
+                }
+                &-items {
+                    display: table-cell;
+                    padding-right: 160px;
+                    vertical-align: top;
+                    &.active {
+                    }
+                    .item {
+                        display: inline-block;
+                        margin-right: @indent__s;
+                        padding: @indent__xs @indent__s @indent__s;
+                        &:last-child {
+                            margin-right: 0;
+                        }
+                    }
+                    .current {
+                        border-bottom: 3px solid @active__color;
+                        font-weight: @font-weight__semibold;
+                    }
+                }
+                .wishlist-name-current {
+                    display: none;
+                }
+            }
+            &-add.item {
+                position: absolute;
+                right: 0;
+                top: 0;
+            }
+            //  Wish list name
+            &-title {
+                strong {
+                    .lib-font-size(40);
+                }
+                .action.edit {
+                }
+            }
+            //  Wish list info
+            &-info {
+                float: left;
+            }
+            &-notice {
+                &.private {
+                }
+            }
+            //  Wish list toolbar
+            &-toolbar {
+                float: right;
+                &-select,
+                &-actions {
+                }
+                &-select {
+                }
+                &-actions {
+                }
+            }
+            //  Wish list toolbar actions
+            &-dropdown.move {
+            }
+        }
+    }
+
+    .block-wishlist-info-items {
+        .product-item-photo {
+            margin-left: 0;
+        }
+    }
+
+    .products-grid.wishlist {
+        .product {
+            &-item {
+                &-checkbox {
+                    float: left;
+                    + .product-item-name {
+                        margin-left: @indent__m;
+                    }
+                }
+            }
+        }
+    }
+
+    .toolbar-wishlist-results {
+        &:extend(.abs-pager-toolbar all);
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_Reward/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Reward/web/css/source/_module.less
new file mode 100644
index 00000000000..943689c0b48
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_Reward/web/css/source/_module.less
@@ -0,0 +1,48 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.block-reward-info {
+    .reward-balance {
+        .lib-font-size(18);
+        margin-bottom: @indent__m;
+    }
+    .reward-rates,
+    .reward-limit,
+    .reward-expiring {
+        &:not(:last-child) {
+            margin-bottom: @indent__m;
+        }
+        .title {
+            display: inline-block;
+            margin-bottom: @indent__s;
+        }
+    }
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .table-wrapper.reward-history {
+        &:extend(.abs-account-table-margin-mobile all);
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .table-wrapper.reward-history {
+        &:extend(.abs-account-table-margin-desktop all);
+    }
+}
diff --git a/app/design/frontend/Magento/luma/Magento_Rma/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Rma/web/css/source/_module.less
new file mode 100644
index 00000000000..45d70d9720a
--- /dev/null
+++ b/app/design/frontend/Magento/luma/Magento_Rma/web/css/source/_module.less
@@ -0,0 +1,157 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//    Common
+//--------------------------------------
+
+& when (@media-common = true) {
+
+.order-details-items.rma {
+    .order-title {
+        display: none;
+        + .toolbar {
+            display: none;
+        }
+    }
+}
+
+.form-create-return {
+    &:extend(.abs-add-fields all);
+    .additional {
+        &:first-child {
+            margin-top: 0;
+        }
+    }
+    .field.comment {
+        margin-top: 55px;
+    }
+    .actions-toolbar {
+        &:extend(.abs-add-clearfix all);
+    }
+}
+
+.return-status {
+    &:extend(.abs-status all);
+}
+
+.block-returns-comments {
+    .returns-comments {
+        dt,
+        dd {
+            margin: 0;
+        }
+        dt {
+            font-weight: @font-weight__regular;
+        }
+        dd {
+            margin-bottom: 15px;
+            &:last-child {
+                margin-bottom: 0;
+            }
+        }
+    }
+    .fieldset {
+        margin-bottom: @indent__base;
+    }
+}
+
+.magento-rma-returns-returns,
+.magento-rma-returns-view {
+    &:extend(.abs-title-orders all);
+}
+
+//
+//    Guest return view page
+//--------------------------------------
+.magento-rma-guest-returns {
+    .column.main {
+        .block:not(.widget) {
+            &:extend(.abs-account-blocks all);
+        }
+    }
+    &:extend(.abs-title-orders all);
+}
+
+}
+
+//
+//    Mobile
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
+    .form-create-return {
+        .additional {
+            .field:nth-last-child(2) {
+                margin-bottom: 0;
+            }
+            .field:last-child {
+                margin-top: @form-field__vertical-indent;
+            }
+        }
+    }
+    .magento-rma-returns-returns,
+    .magento-rma-returns-view {
+        &:extend(.abs-title-orders-mobile all);
+    }
+    .account {
+        .column.main {
+            .returns-details-items {
+                .block-returns-tracking {
+                    .block-title {
+                        > .action.track {
+                            float: none;
+                            display: block;
+                            margin: @indent__s 0 0;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    .table-wrapper.table-returns {
+        &:extend(.abs-no-border-top all);
+    }
+}
+
+//
+//    Desktop
+//--------------------------------------
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .form-create-return {
+        &:extend(.abs-add-fields-desktop all);
+        &:extend(.abs-form-field-column-2 all);
+        .fieldset .field {
+           width: 45%;
+        }
+    }
+    .return-status {
+        &:extend(.abs-status-desktop all);
+    }
+    .magento-rma-returns-returns,
+    .magento-rma-returns-view {
+        &:extend(.abs-title-orders-desktop all);
+    }
+    .magento-rma-guest-returns {
+        .column.main .block.block-order-details-view {
+            &:extend(.abs-add-clearfix-desktop all);
+            .block-content:not(.widget) .box {
+                &:extend(.abs-add-box-sizing-desktop all);
+                clear: none;
+                float: left;
+                width: 100%/4;
+            }
+        }
+    }
+    .block-returns-tracking {
+        .block-title {
+            .action {
+                margin: 12px 0 0 30px;
+                &.track {
+                    float: right;
+                }
+            }
+        }
+    }
+}
-- 
GitLab


From b79c09d71c58cae6590661333678a4093df2e981 Mon Sep 17 00:00:00 2001
From: Iryna Lagno <ilagno@ebay.com>
Date: Thu, 22 Oct 2015 17:42:53 +0300
Subject: [PATCH 064/162] MAGETWO-44229: There is no ability to load products
 using *.csv file

---
 lib/web/mage/validation.js | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/lib/web/mage/validation.js b/lib/web/mage/validation.js
index 98240eb8cfa..36a8db34b3f 100644
--- a/lib/web/mage/validation.js
+++ b/lib/web/mage/validation.js
@@ -1167,11 +1167,26 @@
             },
             'This is a required field.'
         ],
-        'required-if-all-sku-empty': [
+        'required-if-all-sku-empty-and-file-not-loaded': [
             function (value, element, params) {
                 var valid = false;
+                var alternate = $(params.specifiedId);
 
-                $('input[' + params + '=true]').each(function () {
+                if (alternate.length > 0) {
+                    valid = this.check(alternate);
+                    // if valid, it may be blank, so check for that
+                    if (valid) {
+                        var alternateValue = alternate.val();
+                        if (typeof alternateValue == 'undefined' || alternateValue.length === 0) {
+                            valid = false;
+                        }
+                    }
+                }
+
+                if (!valid)
+                    valid = !this.optional(element);
+
+                $('input[' + params.dataSku + '=true]').each(function () {
                     if ($(this).val() !== '') {
                         valid = true;
                     }
-- 
GitLab


From 23d629c60872e1b82b885a59487d3c122c044246 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Thu, 22 Oct 2015 17:53:05 +0300
Subject: [PATCH 065/162] MAGETWO-40150: Empty space is displayed in Mini
 Shopping Cart where the Product was deleted

---
 app/code/Magento/Checkout/view/frontend/web/js/sidebar.js    | 5 +++++
 .../Magento/Checkout/view/frontend/web/js/view/minicart.js   | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index 1f0df987b02..2600ada8b3c 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -163,6 +163,11 @@ define([
          * @private
          */
         _removeItemAfter: function(elem, response) {
+            /** TODO: Extra options support. Should be refactored after MAGETWO-43159. */
+            var self = this;
+            setTimeout(function(){
+                self._calcHeight();
+            }, 500);
         },
         /**
          * @param url - ajax url
diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
index 7c4025a51c2..933b5725638 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
@@ -74,7 +74,7 @@ define([
                 initSidebar();
 
                 /**TODO: Extra options support. Should be refactored after MAGETWO-43159. */
-                setInterval(function(){
+                setTimeout(function(){
                     minicart.trigger('contentUpdated');
                 }, 500);
 
-- 
GitLab


From 2cfa2640e14f20599bb37fafab3d287aeeda7a9f Mon Sep 17 00:00:00 2001
From: Olga Kopylova <okopylova@ebay.com>
Date: Thu, 22 Oct 2015 09:57:51 -0500
Subject: [PATCH 066/162] MAGETWO-44119: Module-specific styles are not
 available for EE modules while installing magento via composer

- skip module-based resolution of view files, if requested module is not registered (to avoid an exception)
---
 .../Magento/Framework/View/Design/Fallback/Rule/Module.php     | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/internal/Magento/Framework/View/Design/Fallback/Rule/Module.php b/lib/internal/Magento/Framework/View/Design/Fallback/Rule/Module.php
index fe6e23dc46c..c62e3d306bb 100644
--- a/lib/internal/Magento/Framework/View/Design/Fallback/Rule/Module.php
+++ b/lib/internal/Magento/Framework/View/Design/Fallback/Rule/Module.php
@@ -59,6 +59,9 @@ class Module implements RuleInterface
             ComponentRegistrar::MODULE,
             $params['module_name']
         );
+        if (empty($params['module_dir'])) {
+            return [];
+        }
         return $this->rule->getPatternDirs($params);
     }
 }
-- 
GitLab


From fda77d0a85f959ae80acf4f48a8b74a80cb39e63 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Thu, 22 Oct 2015 18:07:30 +0300
Subject: [PATCH 067/162] Fix rename tab Image Management

---
 .../Magento/Catalog/Setup/UpgradeData.php     | 25 -------
 .../ProductVideo/Setup/UpgradeData.php        | 71 +++++++++++++++++++
 app/code/Magento/ProductVideo/etc/module.xml  |  2 +-
 3 files changed, 72 insertions(+), 26 deletions(-)
 create mode 100644 app/code/Magento/ProductVideo/Setup/UpgradeData.php

diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php
index c5963538371..68680e8596c 100644
--- a/app/code/Magento/Catalog/Setup/UpgradeData.php
+++ b/app/code/Magento/Catalog/Setup/UpgradeData.php
@@ -40,31 +40,6 @@ class UpgradeData implements UpgradeDataInterface
     public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
     {
         $setup->startSetup();
-        if (version_compare($context->getVersion(), '2.0.1') < 0) {
-            /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */
-            $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
-
-            $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
-            $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
-
-            $attributeGroup = $categorySetup->getAttributeGroup(
-                $entityTypeId,
-                $attributeSetId,
-                'Images',
-                'attribute_group_name'
-            );
-            if (isset($attributeGroup['attribute_group_name']) && $attributeGroup['attribute_group_name'] == 'Images') {
-                // update General Group
-                $categorySetup->updateAttributeGroup(
-                    $entityTypeId,
-                    $attributeSetId,
-                    $attributeGroup['attribute_group_id'],
-                    'attribute_group_name',
-                    'Images and Videos'
-                );
-            }
-        }
-
         if ($context->getVersion()
             && version_compare($context->getVersion(), '2.0.1') < 0
         ) {
diff --git a/app/code/Magento/ProductVideo/Setup/UpgradeData.php b/app/code/Magento/ProductVideo/Setup/UpgradeData.php
new file mode 100644
index 00000000000..ed76fb19199
--- /dev/null
+++ b/app/code/Magento/ProductVideo/Setup/UpgradeData.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\ProductVideo\Setup;
+
+use Magento\Catalog\Setup\CategorySetupFactory;
+use Magento\Framework\Setup\UpgradeDataInterface;
+use Magento\Framework\Setup\ModuleContextInterface;
+use Magento\Framework\Setup\ModuleDataSetupInterface;
+
+/**
+ * Upgrade Data script
+ * @codeCoverageIgnore
+ */
+class UpgradeData implements UpgradeDataInterface
+{
+    /**
+     * Category setup factory
+     *
+     * @var CategorySetupFactory
+     */
+    private $categorySetupFactory;
+
+    /**
+     * Init
+     *
+     * @param CategorySetupFactory $categorySetupFactory
+     */
+    public function __construct(CategorySetupFactory $categorySetupFactory)
+    {
+        $this->categorySetupFactory = $categorySetupFactory;
+    }
+
+    /**
+     * {@inheritdoc}
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
+     */
+    public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
+    {
+        $setup->startSetup();
+        if (version_compare($context->getVersion(), '2.0.0.2') < 0) {
+            /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */
+            $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
+
+            $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY);
+            $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
+
+            $attributeGroup = $categorySetup->getAttributeGroup(
+                $entityTypeId,
+                $attributeSetId,
+                'Image Management'
+            );
+            if (isset($attributeGroup['attribute_group_name']) && $attributeGroup['attribute_group_name'] == 'Image Management') {
+                // update General Group
+                $categorySetup->updateAttributeGroup(
+                    $entityTypeId,
+                    $attributeSetId,
+                    $attributeGroup['attribute_group_id'],
+                    'attribute_group_name',
+                    'Images and Videos'
+                );
+            }
+
+        }
+
+        $setup->endSetup();
+    }
+}
diff --git a/app/code/Magento/ProductVideo/etc/module.xml b/app/code/Magento/ProductVideo/etc/module.xml
index a6bc6bab40b..16107ae938e 100644
--- a/app/code/Magento/ProductVideo/etc/module.xml
+++ b/app/code/Magento/ProductVideo/etc/module.xml
@@ -6,7 +6,7 @@
 */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
-    <module name="Magento_ProductVideo" setup_version="2.0.0.1">
+    <module name="Magento_ProductVideo" setup_version="2.0.0.2">
         <sequence>
             <module name="Magento_Catalog"/>
             <module name="Magento_Backend"/>
-- 
GitLab


From dc1d9f1f1f3bacd73e9abc5288df9b45521522c9 Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Thu, 22 Oct 2015 21:41:19 +0300
Subject: [PATCH 068/162] MAGETWO-40789: Incorrectly calculated Regular price
 for simple product with Custom option of Percent type

---
 app/code/Magento/Catalog/Model/Product.php    | 21 ++++++---
 .../Catalog/Test/Unit/Model/ProductTest.php   | 21 ++++++++-
 .../Catalog/Model/Product/Type/PriceTest.php  | 44 ++++++++++++++++---
 3 files changed, 73 insertions(+), 13 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php
index 58bdfe24915..63658e47ad0 100644
--- a/app/code/Magento/Catalog/Model/Product.php
+++ b/app/code/Magento/Catalog/Model/Product.php
@@ -117,12 +117,19 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
      */
     protected $_errors = [];
 
+    /**
+     * Product option factory
+     *
+     * @var Product\OptionFactory
+     */
+    protected $optionFactory;
+
     /**
      * Product option
      *
      * @var Product\Option
      */
-    protected $_optionInstance;
+    protected $optionInstance;
 
     /**
      * @var array
@@ -337,7 +344,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
      * @param Product\Link $productLink
      * @param Product\Configuration\Item\OptionFactory $itemOptionFactory
      * @param \Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory $stockItemFactory
-     * @param Product\OptionFactory $catalogProductOption
+     * @param Product\OptionFactory $catalogProductOptionFactory
      * @param Product\Visibility $catalogProductVisibility
      * @param Product\Attribute\Source\Status $catalogProductStatus
      * @param Product\Media\Config $catalogProductMediaConfig
@@ -376,7 +383,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
         Product\Link $productLink,
         \Magento\Catalog\Model\Product\Configuration\Item\OptionFactory $itemOptionFactory,
         \Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory $stockItemFactory,
-        \Magento\Catalog\Model\Product\OptionFactory $catalogProductOption,
+        \Magento\Catalog\Model\Product\OptionFactory $catalogProductOptionFactory,
         \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
         \Magento\Catalog\Model\Product\Attribute\Source\Status $catalogProductStatus,
         \Magento\Catalog\Model\Product\Media\Config $catalogProductMediaConfig,
@@ -405,7 +412,7 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
         $this->metadataService = $metadataService;
         $this->_itemOptionFactory = $itemOptionFactory;
         $this->_stockItemFactory = $stockItemFactory;
-        $this->_optionInstance = $catalogProductOption->create()->setProduct($this);
+        $this->optionFactory = $catalogProductOptionFactory;
         $this->_catalogProductVisibility = $catalogProductVisibility;
         $this->_catalogProductStatus = $catalogProductStatus;
         $this->_catalogProductMediaConfig = $catalogProductMediaConfig;
@@ -1889,7 +1896,11 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements
      */
     public function getOptionInstance()
     {
-        return $this->_optionInstance;
+        if (!isset($this->optionInstance)) {
+            $this->optionInstance = $this->optionFactory->create();
+            $this->optionInstance->setProduct($this);
+        }
+        return $this->optionInstance;
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php
index c52c96470fd..e80bbd86826 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php
@@ -250,6 +250,15 @@ class ProductTest extends \PHPUnit_Framework_TestCase
             ->setMethods(['setProduct', 'saveOptions', '__wakeup', '__sleep'])
             ->disableOriginalConstructor()->getMock();
 
+        $optionFactory = $this->getMock(
+            'Magento\Catalog\Model\Product\OptionFactory',
+            ['create'],
+            [],
+            '',
+            false
+        );
+        $optionFactory->expects($this->any())->method('create')->willReturn($this->optionInstanceMock);
+
         $this->resource = $this->getMockBuilder('Magento\Catalog\Model\ResourceModel\Product')
             ->disableOriginalConstructor()
             ->getMock();
@@ -347,7 +356,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
                 'catalogProductType' => $this->productTypeInstanceMock,
                 'productFlatIndexerProcessor' => $this->productFlatProcessor,
                 'productPriceIndexerProcessor' => $this->productPriceProcessor,
-                'catalogProductOption' => $this->optionInstanceMock,
+                'catalogProductOptionFactory' => $optionFactory,
                 'storeManager' => $storeManager,
                 'resource' => $this->resource,
                 'registry' => $this->registry,
@@ -1241,6 +1250,14 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $optionInstanceMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Option')
             ->disableOriginalConstructor()
             ->getMock();
+        $optionFactory = $this->getMock(
+            'Magento\Catalog\Model\Product\OptionFactory',
+            ['create'],
+            [],
+            '',
+            false
+        );
+        $optionFactory->expects($this->any())->method('create')->willReturn($optionInstanceMock);
         $joinProcessorMock = $this->getMockBuilder('Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface')
             ->disableOriginalConstructor()
             ->getMock();
@@ -1249,7 +1266,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $productModel = $this->objectManagerHelper->getObject(
             'Magento\Catalog\Model\Product',
             [
-                'catalogProductOption' => $optionInstanceMock,
+                'catalogProductOptionFactory' => $optionFactory,
                 'joinProcessor' => $joinProcessorMock
             ]
         );
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Type/PriceTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Type/PriceTest.php
index aac0f56cff8..cfdc01a16e4 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Type/PriceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Type/PriceTest.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Catalog\Model\Product\Type;
 
+use Magento\Catalog\Model\Product;
+
 /**
  * @magentoDataFixture Magento/Catalog/_files/product_simple.php
  */
@@ -29,7 +31,7 @@ class PriceTest extends \PHPUnit_Framework_TestCase
 
     public function testGetFinalPrice()
     {
-        /** @var $product \Magento\Catalog\Model\Product */
+        /** @var $product Product */
         $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Catalog\Model\Product'
         );
@@ -42,12 +44,14 @@ class PriceTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(5.0, $this->_model->getFinalPrice(5, $product));
 
         // with options
-        $product->addCustomOption('option_ids', implode(',', array_keys($product->getOptions())));
+        $buyRequest = $this->prepareBuyRequest($product);
+        $product->getTypeInstance()->prepareForCart($buyRequest, $product);
 
-        foreach ($product->getOptions() as $id => $option) {
-            $product->addCustomOption("option_{$id}", $option->getValue());
-        }
-        $this->assertEquals(16.0, $this->_model->getFinalPrice(1, $product));
+        //product price + options price(10+1+2+3+3)
+        $this->assertEquals(19.0, $this->_model->getFinalPrice(1, $product));
+
+        //product tier price + options price(5+1+2+3+3)
+        $this->assertEquals(14.0, $this->_model->getFinalPrice(5, $product));
     }
 
     public function testGetFormatedPrice()
@@ -82,4 +86,32 @@ class PriceTest extends \PHPUnit_Framework_TestCase
     {
         $this->assertTrue($this->_model->isTierPriceFixed());
     }
+
+    /**
+     * Build buy request based on product custom options
+     *
+     * @param Product $product
+     * @return \Magento\Framework\DataObject
+     */
+    private function prepareBuyRequest(Product $product)
+    {
+        $options = [];
+        /** @var $option \Magento\Catalog\Model\Product\Option */
+        foreach ($product->getOptions() as $option) {
+            switch ($option->getGroupByType()) {
+                case \Magento\Catalog\Model\Product\Option::OPTION_GROUP_DATE:
+                    $value = ['year' => 2013, 'month' => 8, 'day' => 9, 'hour' => 13, 'minute' => 35];
+                    break;
+                case \Magento\Catalog\Model\Product\Option::OPTION_GROUP_SELECT:
+                    $value = key($option->getValues());
+                    break;
+                default:
+                    $value = 'test';
+                    break;
+            }
+            $options[$option->getId()] = $value;
+        }
+
+        return new \Magento\Framework\DataObject(['qty' => 1, 'options' => $options]);
+    }
 }
-- 
GitLab


From f6f26912fa2b83e4a3ef955d6fbe8b162cc92eae Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Thu, 22 Oct 2015 14:02:22 -0500
Subject: [PATCH 069/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 app/code/Magento/Theme/Model/Design/Backend/Theme.php | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index cafa2703fd4..d58e9b38242 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,13 +16,6 @@ class Theme extends Value
      */
     protected $_design = null;
 
-    /**
-     * Path to config node with list of caches
-     *
-     * @var string
-     */
-    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
-
     /**
      * Initialize dependencies
      *
@@ -66,7 +59,7 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it cleans all
+     * {@inheritdoc}. In addition, it cleans all Magento cache
      *
      * @return $this
      */
-- 
GitLab


From bc0488f964ebc68996caa6b64c143bb7b377f7a0 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Thu, 22 Oct 2015 15:54:48 +0300
Subject: [PATCH 070/162] MAGETWO-44227: fix unit tests

---
 .../Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php     | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
index e07d3144baa..8cd0300f98c 100644
--- a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
+++ b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
@@ -37,6 +37,8 @@ class NewVideoTest extends \PHPUnit_Framework_TestCase
      */
     protected $jsonEncoderMock;
 
+    protected $mediaHelper;
+
     /**
      * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
      * |\Magento\ProductVideo\Block\Adminhtml\Product\Edit\NewVideo
@@ -46,6 +48,7 @@ class NewVideoTest extends \PHPUnit_Framework_TestCase
     public function setUp()
     {
         $this->contextMock = $this->getMock('\Magento\Backend\Block\Template\Context', [], [], '', false);
+        $this->mediaHelper = $this->getMock('\Magento\ProductVideo\Helper\Media', [], [], '', false);
         $this->mathRandom = $this->getMock('\Magento\Framework\Math\Random', [], [], '', false);
         $this->urlBuilder = $this->getMock('\Magento\Framework\UrlInterface', [], [], '', false);
         $this->contextMock->expects($this->any())->method('getMathRandom')->willReturn($this->mathRandom);
@@ -60,9 +63,11 @@ class NewVideoTest extends \PHPUnit_Framework_TestCase
             '\Magento\ProductVideo\Block\Adminhtml\Product\Edit\NewVideo',
             [
                 'context' => $this->contextMock,
+                'mediaHelper' => $this->mediaHelper,
+                'urlBuilder' => $this->urlBuilder,
+                'jsonEncoder' => $this->jsonEncoderMock,
                 'registry' => $this->registryMock,
                 'formFactory' => $this->formFactoryMock,
-                'jsonEncoder' => $this->jsonEncoderMock
             ]
         );
     }
-- 
GitLab


From 79651d58b901e556c7242fdde62459074aa51ab3 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Thu, 22 Oct 2015 22:21:32 +0300
Subject: [PATCH 071/162] MA-44227: Add comment to property

---
 .../Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php    | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
index 8cd0300f98c..9da5b71dd4d 100644
--- a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
+++ b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php
@@ -37,6 +37,9 @@ class NewVideoTest extends \PHPUnit_Framework_TestCase
      */
     protected $jsonEncoderMock;
 
+    /**
+     * @var \Magento\ProductVideo\Helper\Media|\PHPUnit_Framework_MockObject_MockObject
+     */
     protected $mediaHelper;
 
     /**
-- 
GitLab


From 4adbd2b80e3100a783ab7ed2709cce130b938152 Mon Sep 17 00:00:00 2001
From: Maddy Chellathurai <mchellathura@ebay.com>
Date: Thu, 22 Oct 2015 15:41:44 -0500
Subject: [PATCH 072/162] MAGETWO-41701: [Github] Move ext- and lib- from
 require-dev in composer.json to require section

- adding check for php
---
 .../Magento/Test/Integrity/ComposerTest.php        | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/ComposerTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/ComposerTest.php
index 215df89727a..a3b62afaf0c 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/ComposerTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/ComposerTest.php
@@ -288,12 +288,14 @@ class ComposerTest extends \PHPUnit_Framework_TestCase
      */
     private function assertPhpVersionInSync($name, $phpVersion)
     {
-        $this->assertEquals(
-            self::$rootJson['require']['php'],
-            $phpVersion,
-            "PHP version {$phpVersion} in component {$name} is inconsistent with version "
-            . self::$rootJson['require']['php'] . ' in root composer.json'
-        );
+        if (isset(self::$rootJson['require']['php'])) {
+            $this->assertEquals(
+                self::$rootJson['require']['php'],
+                $phpVersion,
+                "PHP version {$phpVersion} in component {$name} is inconsistent with version "
+                . self::$rootJson['require']['php'] . ' in root composer.json'
+            );
+        }
     }
 
     /**
-- 
GitLab


From 8d1842a0ea6afef4f5db923a06b96f5bf4d9be41 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Thu, 22 Oct 2015 21:30:12 -0500
Subject: [PATCH 073/162] MAGETWO-44470: clear generated files in CLI framework
  - clear var/generation when command is for compilation

---
 .../Magento/Framework/Console/Cli.php         | 27 ++++++--
 .../Console/Command/DiCompileCommand.php      |  6 +-
 .../Command/DiCompileMultiTenantCommand.php   |  5 +-
 .../Setup/Console/CompilerPreparation.php     | 64 +++++++++++++++++++
 4 files changed, 95 insertions(+), 7 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Console/CompilerPreparation.php

diff --git a/lib/internal/Magento/Framework/Console/Cli.php b/lib/internal/Magento/Framework/Console/Cli.php
index 786a658b7e9..8fb5e79d672 100644
--- a/lib/internal/Magento/Framework/Console/Cli.php
+++ b/lib/internal/Magento/Framework/Console/Cli.php
@@ -22,6 +22,27 @@ class Cli extends SymfonyApplication
      */
     const INPUT_KEY_BOOTSTRAP = 'bootstrap';
 
+    /** @var \Zend\ServiceManager\ServiceManager */
+    private $serviceManager;
+
+    /**
+     * @param string $name    The name of the application
+     * @param string $version The version of the application
+     */
+    public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
+    {
+        $this->serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')
+            ->getServiceManager();
+        /**
+         * Temporary workaround until the compiler is able to clear the generation directory. (MAGETWO-44493)
+         */
+        if (class_exists('Magento\Setup\Console\CompilerPreparation')) {
+            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager))->handleCompilerEnvironment();
+        }
+
+        parent::__construct($name, $version);
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -45,14 +66,12 @@ class Cli extends SymfonyApplication
         $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
         $bootstrap = Bootstrap::create(BP, $params);
         $objectManager = $bootstrap->getObjectManager();
-        $serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')
-            ->getServiceManager();
         /** @var \Magento\Setup\Model\ObjectManagerProvider $omProvider */
-        $omProvider = $serviceManager->get('Magento\Setup\Model\ObjectManagerProvider');
+        $omProvider = $this->serviceManager->get('Magento\Setup\Model\ObjectManagerProvider');
         $omProvider->setObjectManager($objectManager);
 
         if (class_exists('Magento\Setup\Console\CommandList')) {
-            $setupCommandList = new \Magento\Setup\Console\CommandList($serviceManager);
+            $setupCommandList = new \Magento\Setup\Console\CommandList($this->serviceManager);
             $setupCommands = $setupCommandList->getCommands();
         }
 
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index b404778db16..8138a0db280 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -28,6 +28,9 @@ use Symfony\Component\Console\Output\OutputInterface;
  */
 class DiCompileCommand extends Command
 {
+    /** Command name */
+    const NAME = 'setup:di:compile';
+
     /** @var DeploymentConfig */
     private $deploymentConfig;
 
@@ -89,7 +92,7 @@ class DiCompileCommand extends Command
      */
     protected function configure()
     {
-        $this->setName('setup:di:compile')
+        $this->setName(self::NAME)
             ->setDescription(
                 'Generates DI configuration and all non-existing interceptors and factories'
             );
@@ -172,7 +175,6 @@ class DiCompileCommand extends Command
             $this->cleanupFilesystem(
                 [
                     DirectoryList::CACHE,
-                    DirectoryList::GENERATION,
                     DirectoryList::DI,
                 ]
             );
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
index 33f8f763ede..ea56ed13dbd 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileMultiTenantCommand.php
@@ -56,6 +56,9 @@ class DiCompileMultiTenantCommand extends AbstractSetupCommand
     const SERIALIZER_VALUE_IGBINARY = 'igbinary';
     /**#@- */
 
+    /** Command name */
+    const NAME = 'setup:di:compile-multi-tenant';
+
     /**
      * Object Manager
      *
@@ -155,7 +158,7 @@ class DiCompileMultiTenantCommand extends AbstractSetupCommand
                 'Allows to exclude Paths from compilation (default is #[\\\\/]m1[\\\\/]#i)'
             ),
         ];
-        $this->setName('setup:di:compile-multi-tenant')
+        $this->setName(self::NAME)
             ->setDescription(
                 'Generates all non-existing proxies and factories, and pre-compile class definitions, '
                 . 'inheritance information and plugin definitions'
diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
new file mode 100644
index 00000000000..457b4f23b37
--- /dev/null
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -0,0 +1,64 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Console;
+
+
+use Magento\Framework\App\Bootstrap;
+use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\Filesystem\Driver\File;
+use Magento\Setup\Console\Command\DiCompileCommand;
+use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
+use Magento\Setup\Mvc\Bootstrap\InitParamListener;
+use Symfony\Component\Console\Input\ArgvInput;
+
+class CompilerPreparation
+{
+    /** @var \Zend\ServiceManager\ServiceManager */
+    private $serviceManager;
+
+    /**
+     * @param \Zend\ServiceManager\ServiceManager $serviceManager
+     */
+    public function __construct(\Zend\ServiceManager\ServiceManager $serviceManager)
+    {
+        $this->serviceManager = $serviceManager;
+    }
+
+    /**
+     * Determine whether a CLI command is for compilation, and if so, clear the directory
+     *
+     * @throws \Magento\Framework\Exception\FileSystemException
+     */
+    public function handleCompilerEnvironment()
+    {
+        $input = new ArgvInput();
+        $compilationCommands = [DiCompileCommand::NAME, DiCompileMultiTenantCommand::NAME];
+        $cmdName = $input->getFirstArgument();
+        $isHelpOption = $input->hasParameterOption('--help') || $input->hasParameterOption('-h');
+
+        if (!in_array($cmdName, $compilationCommands) || $isHelpOption) {
+            return;
+        }
+
+        $generationDir = ($cmdName === DiCompileMultiTenantCommand::NAME)
+            ? $input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            : null;
+
+        if (!$generationDir) {
+            $mageInitParams = $this->serviceManager->get(InitParamListener::BOOTSTRAP_PARAM);
+            $mageDirs = isset($mageInitParams[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS])
+                ? $mageInitParams[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS]
+                : [];
+            $generationDir = (new DirectoryList(BP, $mageDirs))->getPath(DirectoryList::GENERATION);
+        }
+
+        $filesystemDriver = new File();
+        if ($filesystemDriver->isExists($generationDir)) {
+            $filesystemDriver->deleteDirectory($generationDir);
+        }
+    }
+}
-- 
GitLab


From 38bcb3c079b709ccce980ee69b3c9ac49ecb3df9 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Thu, 22 Oct 2015 23:03:18 -0500
Subject: [PATCH 074/162] MAGETWO-44470: clear generated files in CLI framework
  - add unit test coverage  - refactor CompilerPreparation

---
 .../Magento/Framework/Console/Cli.php         |   5 +-
 .../Setup/Console/CompilerPreparation.php     |  30 ++-
 .../Console/Command/DiCompileCommandTest.php  |   1 +
 .../DiCompileMultiTenantCommandTest.php       |  21 ++
 .../Unit/Console/CompilerPreparationTest.php  | 181 ++++++++++++++++++
 5 files changed, 228 insertions(+), 10 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php

diff --git a/lib/internal/Magento/Framework/Console/Cli.php b/lib/internal/Magento/Framework/Console/Cli.php
index 8fb5e79d672..56b792bf85b 100644
--- a/lib/internal/Magento/Framework/Console/Cli.php
+++ b/lib/internal/Magento/Framework/Console/Cli.php
@@ -6,9 +6,11 @@
 
 namespace Magento\Framework\Console;
 
+use Magento\Framework\Filesystem\Driver\File;
 use Symfony\Component\Console\Application as SymfonyApplication;
 use Magento\Framework\App\Bootstrap;
 use Magento\Framework\Shell\ComplexParameter;
+use Symfony\Component\Console\Input\ArgvInput;
 
 /**
  * Magento2 CLI Application. This is the hood for all command line tools supported by Magento.
@@ -37,7 +39,8 @@ class Cli extends SymfonyApplication
          * Temporary workaround until the compiler is able to clear the generation directory. (MAGETWO-44493)
          */
         if (class_exists('Magento\Setup\Console\CompilerPreparation')) {
-            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager))->handleCompilerEnvironment();
+            (new \Magento\Setup\Console\CompilerPreparation($this->serviceManager, new ArgvInput(), new File()))
+                ->handleCompilerEnvironment();
         }
 
         parent::__construct($name, $version);
diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
index 457b4f23b37..23e796bfcec 100644
--- a/setup/src/Magento/Setup/Console/CompilerPreparation.php
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -20,12 +20,26 @@ class CompilerPreparation
     /** @var \Zend\ServiceManager\ServiceManager */
     private $serviceManager;
 
+    /** @var ArgvInput */
+    private $input;
+
+    /** @var File */
+    private $filesystemDriver;
+
     /**
      * @param \Zend\ServiceManager\ServiceManager $serviceManager
+     * @param ArgvInput $input
+     * @param File $filesystemDriver
      */
-    public function __construct(\Zend\ServiceManager\ServiceManager $serviceManager)
+    public function __construct(
+        \Zend\ServiceManager\ServiceManager $serviceManager,
+        \Symfony\Component\Console\Input\ArgvInput $input,
+        \Magento\Framework\Filesystem\Driver\File $filesystemDriver
+    )
     {
-        $this->serviceManager = $serviceManager;
+        $this->serviceManager   = $serviceManager;
+        $this->input            = $input;
+        $this->filesystemDriver = $filesystemDriver;
     }
 
     /**
@@ -35,17 +49,16 @@ class CompilerPreparation
      */
     public function handleCompilerEnvironment()
     {
-        $input = new ArgvInput();
         $compilationCommands = [DiCompileCommand::NAME, DiCompileMultiTenantCommand::NAME];
-        $cmdName = $input->getFirstArgument();
-        $isHelpOption = $input->hasParameterOption('--help') || $input->hasParameterOption('-h');
+        $cmdName = $this->input->getFirstArgument();
+        $isHelpOption = $this->input->hasParameterOption('--help') || $this->input->hasParameterOption('-h');
 
         if (!in_array($cmdName, $compilationCommands) || $isHelpOption) {
             return;
         }
 
         $generationDir = ($cmdName === DiCompileMultiTenantCommand::NAME)
-            ? $input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            ? $this->input->getParameterOption(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
             : null;
 
         if (!$generationDir) {
@@ -56,9 +69,8 @@ class CompilerPreparation
             $generationDir = (new DirectoryList(BP, $mageDirs))->getPath(DirectoryList::GENERATION);
         }
 
-        $filesystemDriver = new File();
-        if ($filesystemDriver->isExists($generationDir)) {
-            $filesystemDriver->deleteDirectory($generationDir);
+        if ($this->filesystemDriver->isExists($generationDir)) {
+            $this->filesystemDriver->deleteDirectory($generationDir);
         }
     }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
index 4230d3a67d8..303e4a80142 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
@@ -149,5 +149,6 @@ class DiCompileCommandTest extends \PHPUnit_Framework_TestCase
             'Generated code and dependency injection configuration successfully.',
             explode(PHP_EOL, $tester->getDisplay())
         );
+        $this->assertSame(DiCompileCommand::NAME, $this->command->getName());
     }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
index 45edf5578c8..c8581808c66 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileMultiTenantCommandTest.php
@@ -6,11 +6,22 @@
 namespace Magento\Setup\Test\Unit\Console\Command;
 
 use Magento\Framework\Component\ComponentRegistrar;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
 use Symfony\Component\Console\Tester\CommandTester;
 
 class DiCompileMultiTenantCommandTest extends \PHPUnit_Framework_TestCase
 {
+    /** @var \Magento\Setup\Console\Command\DiCompileMultiTenantCommand */
+    private $model;
+
+    public function setUp()
+    {
+        $this->model = (new ObjectManager($this))->getObject(
+            '\Magento\Setup\Console\Command\DiCompileMultiTenantCommand'
+        );
+    }
+
     /**
      * @dataProvider validateDataProvider
      * @param array $option
@@ -83,4 +94,14 @@ class DiCompileMultiTenantCommandTest extends \PHPUnit_Framework_TestCase
             ],
         ];
     }
+
+    public function testConfigure()
+    {
+        $methodUnderTest = new \ReflectionMethod($this->model, 'configure');
+        $methodUnderTest->setAccessible(true);
+        $methodUnderTest->invoke($this->model);
+        $this->assertSame(DiCompileMultiTenantCommand::NAME, $this->model->getName());
+        $this->assertNotEmpty($this->model->getDescription());
+        $this->assertCount(6, $this->model->getDefinition()->getOptions());
+    }
 }
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php b/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php
new file mode 100644
index 00000000000..cc46c653e8b
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Console/CompilerPreparationTest.php
@@ -0,0 +1,181 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Console;
+
+
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\Setup\Console\Command\DiCompileCommand;
+use Magento\Setup\Console\Command\DiCompileMultiTenantCommand;
+use Magento\Setup\Mvc\Bootstrap\InitParamListener;
+use Symfony\Component\Console\Input\ArgvInput;
+
+class CompilerPreparationTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\Setup\Console\CompilerPreparation */
+    private $model;
+
+    /** @var \Zend\ServiceManager\ServiceManager | \PHPUnit_Framework_MockObject_MockObject */
+    private $serviceManagerMock;
+
+    /** @var \Symfony\Component\Console\Input\ArgvInput | \PHPUnit_Framework_MockObject_MockObject */
+    private $inputMock;
+
+    /** @var \Magento\Framework\Filesystem\Driver\File | \PHPUnit_Framework_MockObject_MockObject */
+    private $filesystemDriverMock;
+
+    public function setUp()
+    {
+        $this->serviceManagerMock = $this->getMockBuilder('\Zend\ServiceManager\ServiceManager')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->inputMock = $this->getMockBuilder('\Symfony\Component\Console\Input\ArgvInput')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->filesystemDriverMock = $this->getMockBuilder('\Magento\Framework\Filesystem\Driver\File')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->model = (new ObjectManager($this))->getObject(
+            '\Magento\Setup\Console\CompilerPreparation',
+            [
+                'serviceManager' => $this->serviceManagerMock,
+                'input' => $this->inputMock,
+                'filesystemDriver' => $this->filesystemDriverMock
+            ]
+        );
+    }
+
+    /**
+     * @dataProvider commandNameDataProvider
+     * @param $commandName
+     * @param $isCompileCommand
+     * @param $isHelpOption
+     * @param bool|null $dirExists
+     */
+    public function testClearGenerationDirWhenNeeded($commandName, $isCompileCommand, $isHelpOption, $dirExists = false)
+    {
+        $this->inputMock->expects($this->once())->method('getFirstArgument')->willReturn($commandName);
+        $this->inputMock->expects($this->atLeastOnce())
+            ->method('hasParameterOption')
+            ->with(
+                $this->logicalOr('--help', '-h')
+            )->willReturn($isHelpOption);
+        if ($isCompileCommand && !$isHelpOption) {
+            $this->filesystemDriverMock->expects($this->once())
+                ->method('isExists')
+                ->willReturn($dirExists);
+            $this->filesystemDriverMock->expects($this->exactly((int)$dirExists))->method('deleteDirectory');
+        } else {
+            $this->filesystemDriverMock->expects($this->never())->method('isExists');
+            $this->filesystemDriverMock->expects($this->never())->method('deleteDirectory');
+        }
+        $this->model->handleCompilerEnvironment();
+    }
+
+    public function commandNameDataProvider()
+    {
+        return [
+            'ST compiler, directory exists' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => true
+            ],
+            'ST compiler, directory does not exist' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => false
+            ],
+            'ST compiler, help option' => [
+                'commandName' => DiCompileCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => true,
+                'dirExists' => false
+            ],
+            'MT compiler, directory exists' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => true
+            ],
+            'MT compiler, directory does not exist' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => false,
+                'dirExists' => false
+            ],
+            'MT compiler, help option' => [
+                'commandName' => DiCompileMultiTenantCommand::NAME,
+                'isCompileCommand' => true,
+                'isHelpOption' => true,
+                'dirExists' => true
+            ],
+            'Other command' => [
+                'commandName' => 'not:a:compiler',
+                'isCompileCommand' => false,
+                'isHelpOption' => false,
+            ]
+        ];
+    }
+
+    public function testGenerationDirectoryFromInitParams()
+    {
+        $customGenerationDirectory = '/custom/generated/code/directory';
+        $mageInitParams = ['MAGE_DIRS' => ['generation' => ['path' => $customGenerationDirectory]]];
+
+        $this->inputMock->expects($this->once())
+            ->method('getFirstArgument')
+            ->willReturn(DiCompileMultiTenantCommand::NAME);
+
+        // Filesystem mock
+        $this->filesystemDriverMock->expects($this->once())->method('isExists')->willReturn(true);
+        $this->filesystemDriverMock->expects($this->once())
+            ->method('deleteDirectory')
+            ->with($customGenerationDirectory);
+
+        $this->serviceManagerMock->expects($this->once())
+            ->method('get')
+            ->with(InitParamListener::BOOTSTRAP_PARAM)
+            ->willReturn($mageInitParams);
+        $this->model->handleCompilerEnvironment();
+    }
+
+    /**
+     * @dataProvider compilerCommandDataProvider
+     */
+    public function testGenerationDirectoryFromCliOption($commandName)
+    {
+        $customGenerationDirectory = '/custom/generated/code/directory';
+        $useCliOption = $commandName === DiCompileMultiTenantCommand::NAME;
+
+        $this->inputMock->expects($this->once())
+            ->method('getFirstArgument')
+            ->willReturn($commandName);
+        $this->inputMock->expects($this->exactly((int)$useCliOption))
+            ->method('getParameterOption')
+            ->with(DiCompileMultiTenantCommand::INPUT_KEY_GENERATION)
+            ->willReturn($customGenerationDirectory);
+        // Filesystem mock
+        $directoryArgConstraint = $useCliOption
+            ? $this->equalTo($customGenerationDirectory)
+            : $this->logicalNot($this->equalTo($customGenerationDirectory));
+        $this->filesystemDriverMock->expects($this->once())->method('isExists')->willReturn(true);
+        $this->filesystemDriverMock->expects($this->once())
+            ->method('deleteDirectory')
+            ->with($directoryArgConstraint);
+
+        $this->model->handleCompilerEnvironment();
+    }
+
+    public function compilerCommandDataProvider()
+    {
+        return [
+            [DiCompileCommand::NAME],
+            [DiCompileMultiTenantCommand::NAME]
+        ];
+    }
+}
-- 
GitLab


From 87e6182da52a0f971322f460fae3a488de343199 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Fri, 23 Oct 2015 10:40:19 +0300
Subject: [PATCH 075/162] MAGETWO-44070: [GITHUB] Attribute Code issue #1978

 - Changed diagnostic message semantic slightly.
---
 app/code/Magento/Eav/Model/Entity/Attribute.php | 2 +-
 app/code/Magento/Eav/Setup/EavSetup.php         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Eav/Model/Entity/Attribute.php b/app/code/Magento/Eav/Model/Entity/Attribute.php
index e26146bc9aa..2c8cc458caa 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute.php
@@ -242,7 +242,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute\AbstractAttribute im
         )
         ) {
             throw new LocalizedException(
-                __('An attribute code must be fewer than %1 characters.', self::ATTRIBUTE_CODE_MAX_LENGTH)
+                __('An attribute code must not be more than %1 characters.', self::ATTRIBUTE_CODE_MAX_LENGTH)
             );
         }
 
diff --git a/app/code/Magento/Eav/Setup/EavSetup.php b/app/code/Magento/Eav/Setup/EavSetup.php
index a1dba20110f..828523bb0c0 100644
--- a/app/code/Magento/Eav/Setup/EavSetup.php
+++ b/app/code/Magento/Eav/Setup/EavSetup.php
@@ -728,7 +728,7 @@ class EavSetup
             )
         ) {
             throw new LocalizedException(
-                __('An attribute code must be fewer than %1 characters.', $attributeCodeMaxLength)
+                __('An attribute code must not be more than %1 characters.', $attributeCodeMaxLength)
             );
         }
 
-- 
GitLab


From 164bb996b919603fdcce54d2ccb4121d9dcc85e8 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Fri, 23 Oct 2015 11:35:04 +0300
Subject: [PATCH 076/162] MAGETWO-44106: New created category should be anchor
 by default

 - Fixed integration tests
---
 .../testsuite/Magento/Catalog/Controller/CategoryTest.php   | 2 +-
 .../testsuite/Magento/Catalog/Model/CategoryTreeTest.php    | 2 +-
 .../Magento/Catalog/Model/Indexer/Category/ProductTest.php  | 6 +++---
 .../Magento/Catalog/Model/Layer/Filter/CategoryTest.php     | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
index 15afc0d3e63..b3de66e5e90 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/CategoryTest.php
@@ -25,7 +25,7 @@ class CategoryTest extends \Magento\TestFramework\TestCase\AbstractController
         return [
             'category without children' => [
                 'categoryId' => 5,
-                ['catalog_category_view_type_default', 'catalog_category_view_type_default_without_children'],
+                ['catalog_category_view_type_layered', 'catalog_category_view_type_layered_without_children'],
                 [
                     '%acategorypath-category-1-category-1-1-category-1-1-1%a',
                     '%acategory-category-1-1-1%a',
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTreeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTreeTest.php
index 47a06f0b791..3b12d91a0fd 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTreeTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTreeTest.php
@@ -161,7 +161,7 @@ class CategoryTreeTest extends \PHPUnit_Framework_TestCase
     public function testGetAnchorsAbove()
     {
         $this->_model->load(4);
-        $this->assertEmpty($this->_model->getAnchorsAbove());
+        $this->assertContains(3, $this->_model->getAnchorsAbove());
         $this->_model->load(5);
         $this->assertContains(4, $this->_model->getAnchorsAbove());
     }
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php
index ac6c6a79899..b7f3e22a82a 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Category/ProductTest.php
@@ -73,7 +73,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
                 $this->assertTrue((bool)$this->productResource->canBeShowInCategory($product, $categoryId));
             }
 
-            $this->assertFalse(
+            $this->assertTrue(
                 (bool)$this->productResource->canBeShowInCategory($product, $categoryThird->getParentId())
             );
         }
@@ -187,12 +187,12 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $productThird->setCategoryIds([$categorySixth->getId()]);
         $productThird->save();
 
-        $categories = [self::DEFAULT_ROOT_CATEGORY, $categorySixth->getId()];
+        $categories = [self::DEFAULT_ROOT_CATEGORY, $categorySixth->getId(), $categoryFifth->getId()];
         foreach ($categories as $categoryId) {
             $this->assertTrue((bool)$this->productResource->canBeShowInCategory($productThird, $categoryId));
         }
 
-        $categories = [$categoryFifth->getId(), $categorySecond->getId()];
+        $categories = [$categorySecond->getId()];
         foreach ($categories as $categoryId) {
             $this->assertFalse((bool)$this->productResource->canBeShowInCategory($productThird, $categoryId));
         }
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Layer/Filter/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Layer/Filter/CategoryTest.php
index 40f61ec7a56..e9bd1c492e0 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Layer/Filter/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Layer/Filter/CategoryTest.php
@@ -109,6 +109,6 @@ class CategoryTest extends \PHPUnit_Framework_TestCase
         $this->assertSame($modelApplied, $item->getFilter());
         $this->assertEquals('Category 1.1', $item->getLabel());
         $this->assertEquals(4, $item->getValue());
-        $this->assertEquals(1, $item->getCount());
+        $this->assertEquals(2, $item->getCount());
     }
 }
-- 
GitLab


From 02eca9b258199c91f71dfcd6dada61214a708dc7 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Fri, 23 Oct 2015 11:42:20 +0300
Subject: [PATCH 077/162] PV-5: Change validating schema

---
 lib/internal/Magento/Framework/Config/Dom.php | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/lib/internal/Magento/Framework/Config/Dom.php b/lib/internal/Magento/Framework/Config/Dom.php
index 4f512fd7820..1576d3e5025 100644
--- a/lib/internal/Magento/Framework/Config/Dom.php
+++ b/lib/internal/Magento/Framework/Config/Dom.php
@@ -274,11 +274,7 @@ class Dom
         $schema = self::$urnResolver->getRealPath($schema);
         libxml_use_internal_errors(true);
         try {
-            if (file_exists($schema)) {
-                $result = $dom->schemaValidate($schema);
-            } else {
-                $result = $dom->schemaValidateSource($schema);
-            }
+            $result = $dom->schemaValidate($schema);
             $errors = [];
             if (!$result) {
                 $validationErrors = libxml_get_errors();
-- 
GitLab


From b0454bdf173403b3493d5feeb003880cd31422ca Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Fri, 23 Oct 2015 12:18:55 +0300
Subject: [PATCH 078/162] MAGETWO-44111: Setting "Apply Layered Navigation if
 Search Results are Less Than" doesn't work

---
 app/code/Magento/CatalogSearch/etc/adminhtml/system.xml | 5 -----
 app/code/Magento/CatalogSearch/etc/config.xml           | 1 -
 app/code/Magento/Search/etc/adminhtml/system.xml        | 5 -----
 3 files changed, 11 deletions(-)

diff --git a/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml b/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml
index 64c40be45f2..cef7804d7c3 100644
--- a/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml
+++ b/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml
@@ -27,11 +27,6 @@
                     <label>Maximum Query Length</label>
                     <validate>validate-digits</validate>
                 </field>
-                <field id="use_layered_navigation_count" translate="label comment" type="text" sortOrder="25" showInDefault="1" showInWebsite="1" showInStore="1">
-                    <label>Apply Layered Navigation if Search Results are Less Than</label>
-                    <validate>validate-digits</validate>
-                    <comment>Enter "0" to enable layered navigation for any number of results.</comment>
-                </field>
             </group>
         </section>
     </system>
diff --git a/app/code/Magento/CatalogSearch/etc/config.xml b/app/code/Magento/CatalogSearch/etc/config.xml
index 8ff9c9f527d..c4183bb5424 100644
--- a/app/code/Magento/CatalogSearch/etc/config.xml
+++ b/app/code/Magento/CatalogSearch/etc/config.xml
@@ -15,7 +15,6 @@
                 <engine>mysql</engine>
                 <min_query_length>1</min_query_length>
                 <max_query_length>128</max_query_length>
-                <use_layered_navigation_count>0</use_layered_navigation_count>
             </search>
         </catalog>
     </default>
diff --git a/app/code/Magento/Search/etc/adminhtml/system.xml b/app/code/Magento/Search/etc/adminhtml/system.xml
index 90d9943dd9f..d32c75cb1a3 100644
--- a/app/code/Magento/Search/etc/adminhtml/system.xml
+++ b/app/code/Magento/Search/etc/adminhtml/system.xml
@@ -18,11 +18,6 @@
                         <field id="engine">mysql</field>
                     </depends>
                 </field>
-                <field id="use_layered_navigation_count">
-                    <depends>
-                        <field id="engine">mysql</field>
-                    </depends>
-                </field>
             </group>
         </section>
     </system>
-- 
GitLab


From 930a2244c72bc383d18152f679d5485791e28ea7 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Fri, 23 Oct 2015 12:35:05 +0300
Subject: [PATCH 079/162] MAGETWO-44227: fix integrity test for xsd schema

---
 .../Test/Integrity/Modular/ViewConfigFilesTest.php | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
index d65b3fa9d7c..5c248a1d970 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
@@ -13,17 +13,17 @@ class ViewConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testViewConfigFile($file)
     {
-        /** @var \Magento\Framework\View\Xsd\Reader $reader */
-        $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
-            'Magento\Framework\View\Xsd\Reader'
-        );
-        $mergeXsd = $reader->read();
         $domConfig = new \Magento\Framework\Config\Dom($file);
+        $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
         $result = $domConfig->validate(
-            $mergeXsd,
+            $urnResolver->getRealPath('urn:magento:framework:Config/etc/view.xsd'),
             $errors
         );
-        $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
+        $message = "Invalid XML-file: {$file}\n";
+        foreach ($errors as $error) {
+            $message .= "{$error->message} Line: {$error->line}\n";
+        }
+        $this->assertTrue($result, $message);
     }
 
     /**
-- 
GitLab


From c5f066f0d8b2202b85f5baca00e63fb8f1b62aca Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Fri, 23 Oct 2015 13:22:43 +0300
Subject: [PATCH 080/162] MAGETWO-44253: Added fix to read new link format

---
 .../view/adminhtml/web/js/get-video-information.js          | 4 ++--
 .../view/frontend/web/js/fotorama-add-video-events.js       | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
index f926f8c5e61..06ed1098c8d 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
@@ -569,8 +569,8 @@ require([
                     type = 'youtube';
                 } else if (href.host.match(/vimeo\.com/)) {
                     type = 'vimeo';
-                    vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
-                        '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|)(\\d+)(?:$|\\/|\\?)'
+                    vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
+                        '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)'
                     ].join(''));
                     id = href.href.match(vimeoRegex)[3];
                 }
diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index c2795990c58..e9e10af2db3 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -68,8 +68,8 @@ define([
             type = 'youtube';
         } else if (href.host.match(/vimeo\.com/)) {
             type = 'vimeo';
-            vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
-                '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|)(\\d+)(?:$|\\/|\\?)'
+            vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
+                '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)'
             ].join(''));
             id = href.href.match(vimeoRegex)[3];
         }
@@ -327,7 +327,7 @@ define([
                 scriptTag = document.getElementsByTagName('script')[0];
 
             element.async = true;
-            element.src = 'https://f.vimeocdn.com/js/froogaloop2.min.js';
+            element.src = 'https://secure-a.vimeocdn.com/js/froogaloop2.min.js';
             scriptTag.parentNode.insertBefore(element, scriptTag);
         },
 
-- 
GitLab


From 202bbcb43491193bd21eb03628eaf84c1365d831 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Fri, 23 Oct 2015 13:36:08 +0300
Subject: [PATCH 081/162] MAGETWO-44261: fixed style on mobile version

---
 .../Magento_ProductVideo/web/css/source/_module.less   | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
index 454920e2199..f13d4143e5a 100644
--- a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less
@@ -63,6 +63,16 @@
     }
 }
 
+@media only screen
+and (min-device-width : 320px)
+and (max-device-width : 780px)
+and (orientation : landscape) {
+    .product-video {
+        height: 100%;
+        width: 81%;
+    }
+}
+
 .fotorama__arr.hidden-video {
     z-index: -1;
 }
-- 
GitLab


From 2e8446db60d2d089de95eae091ab9b8fbace1946 Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Fri, 23 Oct 2015 15:01:29 +0300
Subject: [PATCH 082/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../Magento/Bundle/Test/Repository/BundleProduct/Price.xml  | 4 ++--
 .../Bundle/Test/TestCase/CreateBundleProductEntityTest.xml  | 2 +-
 .../Catalog/Test/Block/Product/View/CustomOptions.php       | 6 +++---
 .../Test/Block/Adminhtml/Product/ProductForm.xml            | 2 +-
 .../GroupedProduct/Test/Block/Catalog/Product/View.php      | 5 ++---
 5 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml
index db2317905be..4bd3a3f73db 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Repository/BundleProduct/Price.xml
@@ -56,8 +56,8 @@
         </dataset>
 
         <dataset name="fixed-100-custom-options">
-            <field name="price_from" xsi:type="string">244.00</field>
-            <field name="cart_price" xsi:type="string">244.00</field>
+            <field name="price_from" xsi:type="string">270.00</field>
+            <field name="cart_price" xsi:type="string">270.00</field>
         </dataset>
 
         <dataset name="fixed-110">
diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
index 530018bf81c..b18d964c212 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
@@ -214,7 +214,7 @@
             <data name="product/data/sku_type" xsi:type="string">Dynamic</data>
             <data name="product/data/sku" xsi:type="string">sku_bundle_dynamic_%isolation%</data>
             <data name="product/data/price_type" xsi:type="string">Dynamic</data>
-            <data name="product/data/price/dataset" xsi:type="string">dynamic-32</data>
+            <data name="product/data/price/dataset" xsi:type="string">dynamic-40</data>
             <data name="product/data/bundle_selections/dataset" xsi:type="string">default_dynamic</data>
             <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductSimple::product_40_dollar</data>
             <data name="product/data/checkout_data/dataset" xsi:type="string">bundle_default</data>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
index 7e4608bc008..9fcea9e3456 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/View/CustomOptions.php
@@ -30,14 +30,14 @@ class CustomOptions extends Form
      *
      * @var string
      */
-    protected $optionElement = '#product-options-wrapper .field';
+    protected $optionElement = '#product-options-wrapper > * > .field';
 
     /**
      * Selector for title of option
      *
      * @var string
      */
-    protected $title = 'label';
+    protected $title = 'label > span:nth-child(1), legend > span:nth-child(1)';
 
     /**
      * Selector for required option
@@ -381,7 +381,7 @@ class CustomOptions extends Form
      */
     protected function parseOptionText($optionText)
     {
-        preg_match('`^(.*?)\+\$(\d.*?)$`', $optionText, $match);
+        preg_match('`^(.*?) \+ ?\$([\d\.,]*?)$`', $optionText, $match);
         $optionPrice = isset($match[2]) ? str_replace(',', '', $match[2]) : 0;
         $optionTitle = isset($match[1]) ? trim($match[1]) : $optionText;
 
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml
index 19245035879..57aef81a070 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Adminhtml/Product/ProductForm.xml
@@ -8,7 +8,7 @@
 <tabs>
     <downloadable_information>
         <class>\Magento\Downloadable\Test\Block\Adminhtml\Catalog\Product\Edit\Tab\Downloadable</class>
-        <selector>#product_info_tabs_downloadable_items</selector>
+        <selector>#product_info_tabs_product-details</selector>
         <strategy>css selector</strategy>
     </downloadable_information>
 </tabs>
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php
index fd8184a473a..8d36b92575f 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Block/Catalog/Product/View.php
@@ -20,7 +20,7 @@ class View extends ParentView
      *
      * @var string
      */
-    protected $groupedProductBlock = '.table-wrapper.grouped';
+    protected $groupedProductBlock = '[class="table-wrapper grouped"]';
 
     /**
      * This member holds the class name of the tier price block.
@@ -81,8 +81,7 @@ class View extends ParentView
      */
     public function getOptions(FixtureInterface $product)
     {
-        $groupedOptions = $this->getGroupedProductBlock()->getOptions($product);
-        return ['grouped_options' => $groupedOptions] + parent::getOptions($product);
+        return ['grouped_options' => $this->getGroupedProductBlock()->getOptions($product)];
     }
 
     /**
-- 
GitLab


From 06af7b97d858e9d52ac3ab78e3c9d9e32f1bf799 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Fri, 23 Oct 2015 15:39:12 +0300
Subject: [PATCH 083/162] Fixed base video issue for fotorama bug

---
 .../web/js/fotorama-add-video-events.js         | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index e9e10af2db3..597b6bc8bba 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -11,6 +11,8 @@ define([
 ], function ($) {
     'use strict';
 
+    var allowBase = true; //global var is needed because fotorama always fully reloads events in case of fullscreen
+
     /**
      * @private
      */
@@ -309,13 +311,16 @@ define([
 
                 if (
                     videoItem.mediaType === this.VID && videoItem.isBase &&
-                    this.options.VideoSettings[0].playIfBase
+                    this.options.VideoSettings[0].playIfBase && allowBase
                 ) {
                     this.Base = true;
+                    allowBase = false;
                 }
             }
 
-            this._createCloseVideo($(this.element).data('fotorama'), this.Base);
+            if (!this.isFullscreen) {
+                this._createCloseVideo($(this.element).data('fotorama'), this.Base);
+            }
         },
 
         /**
@@ -523,9 +528,11 @@ define([
                             this.Base = false;
                         }
                     }, this), 50);
-                } else { //if not a vimeo - play it immediately
-                    $(this.element).data('fotorama').activeFrame.$stageFrame[0].click();
-                    this.Base = false;
+                } else { //if not a vimeo - play it immediately with a little lag in case for fotorama fullscreen
+                    setTimeout($.proxy(function(){
+                        $(this.element).data('fotorama').activeFrame.$stageFrame[0].click();
+                        this.Base = false;
+                    }, this), 50);
                 }
             }
         },
-- 
GitLab


From 343455e51468eaae46945ba4942d5f0f9408423d Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Fri, 23 Oct 2015 15:40:48 +0300
Subject: [PATCH 084/162] Fixed static JS test

---
 .../view/frontend/web/js/fotorama-add-video-events.js           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index 597b6bc8bba..ff3466480e2 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -529,7 +529,7 @@ define([
                         }
                     }, this), 50);
                 } else { //if not a vimeo - play it immediately with a little lag in case for fotorama fullscreen
-                    setTimeout($.proxy(function(){
+                    setTimeout($.proxy(function () {
                         $(this.element).data('fotorama').activeFrame.$stageFrame[0].click();
                         this.Base = false;
                     }, this), 50);
-- 
GitLab


From f103439ad222041c662cda75ac58edc8ae6dc354 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Fri, 23 Oct 2015 15:41:37 +0300
Subject: [PATCH 085/162] Fixed codestyle

---
 .../view/frontend/web/js/fotorama-add-video-events.js          | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index ff3466480e2..887f9104eb3 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -11,6 +11,9 @@ define([
 ], function ($) {
     'use strict';
 
+    /**
+     * @private
+     */
     var allowBase = true; //global var is needed because fotorama always fully reloads events in case of fullscreen
 
     /**
-- 
GitLab


From d7fb057e8d6a6f455e6b1b450252b23173216320 Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Fri, 23 Oct 2015 15:47:37 +0300
Subject: [PATCH 086/162] MAGETWO-39604: [GITHUB] Doesn't work sorting in the
 search list. #1432

---
 .../Magento/Catalog/Model/Layer/Search/CollectionFilter.php    | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Layer/Search/CollectionFilter.php b/app/code/Magento/Catalog/Model/Layer/Search/CollectionFilter.php
index 958751ae02b..2ae363436b6 100644
--- a/app/code/Magento/Catalog/Model/Layer/Search/CollectionFilter.php
+++ b/app/code/Magento/Catalog/Model/Layer/Search/CollectionFilter.php
@@ -63,7 +63,6 @@ class CollectionFilter implements CollectionFilterInterface
             ->addTaxPercents()
             ->addStoreFilter()
             ->addUrlRewrite()
-            ->setVisibility($this->productVisibility->getVisibleInSearchIds())
-            ->setOrder('relevance', Select::SQL_DESC);
+            ->setVisibility($this->productVisibility->getVisibleInSearchIds());
     }
 }
-- 
GitLab


From 732cc420d90c1be6d71dbba0288ff77942ca79a9 Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Fri, 23 Oct 2015 17:03:26 +0300
Subject: [PATCH 087/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php     | 4 ++++
 .../Test/Constraint/AssertChildProductsInGrid.php             | 4 ++--
 .../Test/Constraint/AssertConfigurableProductPage.php         | 2 +-
 .../Test/TestCase/CreateConfigurableProductEntityTest.xml     | 2 ++
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
index be8653668f1..f8bd1fd052c 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
@@ -283,6 +283,10 @@ class Attribute extends Form
                 $this->getTemplateBlock()->waitLoader();
                 $optionContainer->find('[data-action=save]')->click();
             }
+            //Select option
+            if (!$optionContainer->find('[type="checkbox"]')->isSelected()) {
+                $optionContainer->find('[type="checkbox"]')->click();
+            }
         }
     }
 
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php
index 923e439e039..07dd93b51ee 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertChildProductsInGrid.php
@@ -31,14 +31,14 @@ class AssertChildProductsInGrid extends AbstractConstraint
     public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product)
     {
         $configurableAttributesData = $product->getConfigurableAttributesData();
-        $productType = $product->getProductHasWeight() === "Yes" ? 'Simple Product' : 'Virtual Product';
         $errors = [];
 
         $productGrid->open();
         foreach ($configurableAttributesData['matrix'] as $variation) {
             $filter = [
                 'name' => $variation['name'],
-                'type' => $productType,
+                'type' => (isset($variation['weight']) && (int)$variation['weight'] > 0)
+                    ? 'Simple Product' : 'Virtual Product',
                 'sku' => $variation['sku'],
                 'visibility' => self::NOT_VISIBLE_INDIVIDUALLY,
             ];
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php
index 246f73bb739..f635ef7cc29 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php
@@ -47,7 +47,7 @@ class AssertConfigurableProductPage extends AssertProductPage
 
         if ($fixturePrice != $formPrice) {
             return "Displayed product price on product page(front-end) not equals passed from fixture. "
-            . "Actual: {$fixturePrice}, expected: {$formPrice}.";
+            . "Actual: {$formPrice}, expected: {$fixturePrice}.";
         }
         return null;
     }
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
index b7fdd48cd16..3fe6c3df507 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml
@@ -40,6 +40,7 @@
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
             <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/price/dataset" xsi:type="string">default</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="product/data/weight" xsi:type="string">2</data>
@@ -84,6 +85,7 @@
             <data name="product/data/name" xsi:type="string">Configurable Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">configurable_sku_%isolation%</data>
             <data name="product/data/price/value" xsi:type="string">100</data>
+            <data name="product/data/price/dataset" xsi:type="string">default</data>
             <data name="product/data/short_description" xsi:type="string">Configurable short description</data>
             <data name="product/data/description" xsi:type="string">Configurable Product description %isolation%</data>
             <data name="product/data/weight" xsi:type="string">2</data>
-- 
GitLab


From d4a33b38b2829143af863cd3330ecb3578df5b66 Mon Sep 17 00:00:00 2001
From: Iryna Lagno <ilagno@ebay.com>
Date: Fri, 23 Oct 2015 17:21:27 +0300
Subject: [PATCH 088/162] MAGETWO-44453: Required address attribute is not
 require for checkout flow

---
 .../Checkout/view/frontend/web/js/view/billing-address.js    | 3 +++
 .../Magento/Checkout/view/frontend/web/js/view/shipping.js   | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
index b69365ebc0f..4c77250a872 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
@@ -145,6 +145,9 @@ define(
                 } else {
                     this.source.set('params.invalid', false);
                     this.source.trigger(this.dataScopePrefix + '.data.validate');
+                    if (this.source.get('billingAddress.custom_attributes')) {
+                        this.source.trigger('billingAddress.custom_attributes.data.validate');
+                    };
 
                     if (!this.source.get('params.invalid')) {
                         var addressData = this.source.get(this.dataScopePrefix),
diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js
index 562266434dd..e650f6269c9 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js
@@ -201,7 +201,7 @@ define(
                 }
             },
 
-            validateShippingInformation: function() {
+            validateShippingInformation: function () {
                 var shippingAddress,
                     addressData,
                     loginFormSelector = 'form[data-role=email-with-possible-login]',
@@ -224,6 +224,9 @@ define(
                 if (this.isFormInline) {
                     this.source.set('params.invalid', false);
                     this.source.trigger('shippingAddress.data.validate');
+                    if (this.source.get('shippingAddress.custom_attributes')) {
+                        this.source.trigger('shippingAddress.custom_attributes.data.validate');
+                    };
                     if (this.source.get('params.invalid')
                         || !quote.shippingMethod().method_code
                         || !quote.shippingMethod().carrier_code
-- 
GitLab


From d3c5d3715744c871e52f4e67bc83f0054053a689 Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Fri, 23 Oct 2015 17:21:21 +0300
Subject: [PATCH 089/162] MAGETWO-39588: store_id value is not honored when
 creating simple product through API in multi-websites / multi-stores setup

---
 .../Catalog/Model/ProductRepository.php       |  7 +++-
 .../Model/Indexer/Fulltext/Plugin/Product.php | 34 +++++++++++++------
 app/code/Magento/CatalogSearch/etc/di.xml     |  2 +-
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/ProductRepository.php b/app/code/Magento/Catalog/Model/ProductRepository.php
index ccd62fb3d33..42923ef4310 100644
--- a/app/code/Magento/Catalog/Model/ProductRepository.php
+++ b/app/code/Magento/Catalog/Model/ProductRepository.php
@@ -286,7 +286,12 @@ class ProductRepository implements \Magento\Catalog\Api\ProductRepositoryInterfa
         if ($createNew) {
             $product = $this->productFactory->create();
             if ($this->storeManager->hasSingleStore()) {
-                $product->setWebsiteIds([$this->storeManager->getStore(true)->getWebsite()->getId()]);
+                $product->setWebsiteIds([$this->storeManager->getStore(true)->getWebsiteId()]);
+            } elseif (isset($productData['store_id'])
+                && !empty($productData['store_id'])
+                && $this->storeManager->getStore($productData['store_id'])
+            ) {
+                $product->setWebsiteIds([$this->storeManager->getStore($productData['store_id'])->getWebsiteId()]);
             }
         } else {
             unset($this->instances[$productData['sku']]);
diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Plugin/Product.php b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Plugin/Product.php
index 04c89e9ecf2..ad68fe08998 100644
--- a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Plugin/Product.php
+++ b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Plugin/Product.php
@@ -11,24 +11,38 @@ class Product extends AbstractPlugin
     /**
      * Reindex on product save
      *
-     * @param \Magento\Catalog\Model\Product $product
-     * @return \Magento\Catalog\Model\Product
+     * @param \Magento\Catalog\Model\ResourceModel\Product $productResource
+     * @param \Closure $proceed
+     * @param \Magento\Framework\Model\AbstractModel $product
+     * @return \Magento\Catalog\Model\ResourceModel\Product
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function afterSave(\Magento\Catalog\Model\Product $product)
-    {
+    public function aroundSave(
+        \Magento\Catalog\Model\ResourceModel\Product $productResource,
+        \Closure $proceed,
+        \Magento\Framework\Model\AbstractModel $product
+    ) {
+        $result = $proceed($product);
         $this->reindexRow($product->getId());
-        return $product;
+        return $result;
     }
 
     /**
      * Reindex on product delete
      *
-     * @param \Magento\Catalog\Model\Product $product
-     * @return \Magento\Catalog\Model\Product
+     * @param \Magento\Catalog\Model\ResourceModel\Product $productResource
+     * @param \Closure $proceed
+     * @param \Magento\Framework\Model\AbstractModel $product
+     * @return \Magento\Catalog\Model\ResourceModel\Product
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function afterDelete(\Magento\Catalog\Model\Product $product)
-    {
+    public function aroundDelete(
+        \Magento\Catalog\Model\ResourceModel\Product $productResource,
+        \Closure $proceed,
+        \Magento\Framework\Model\AbstractModel $product
+    ) {
+        $result = $proceed($product);
         $this->reindexRow($product->getId());
-        return $product;
+        return $result;
     }
 }
diff --git a/app/code/Magento/CatalogSearch/etc/di.xml b/app/code/Magento/CatalogSearch/etc/di.xml
index adc76b143fa..815f2b223f0 100644
--- a/app/code/Magento/CatalogSearch/etc/di.xml
+++ b/app/code/Magento/CatalogSearch/etc/di.xml
@@ -33,7 +33,7 @@
             </argument>
         </arguments>
     </type>
-    <type name="Magento\Catalog\Model\Product">
+    <type name="Magento\Catalog\Model\ResourceModel\Product">
         <plugin name="catalogsearchFulltextProduct" type="Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product"/>
     </type>
     <type name="Magento\Catalog\Model\Product\Action">
-- 
GitLab


From be05c581405edd424de2600960c4c2cba7292ae5 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Fri, 23 Oct 2015 17:36:06 +0300
Subject: [PATCH 090/162] Fix bug: Couldn't retrive a remote preview image
 file.

---
 .../Controller/Adminhtml/Product/Gallery/RetrieveImage.php     | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index b0cd6ca9b16..fba8a5b4747 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -131,6 +131,9 @@ class RetrieveImage extends \Magento\Backend\App\Action
         $this->curl->setConfig(['header' => false]);
         $this->curl->write('GET', $fileUrl);
         $image = $this->curl->read();
+        if (empty($image)) {
+            throw new \InvalidArgumentException("Couldn't retrive a remote preview image file. Service is inaccessible.");
+        }
         $this->fileUtility->saveFile($localFilePath, $image);
     }
 
-- 
GitLab


From f13116fab67f3bbbde358feb87ec31cdcde8bd4d Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Fri, 23 Oct 2015 17:37:38 +0300
Subject: [PATCH 091/162] MAGETWO-39588: store_id value is not honored when
 creating simple product through API in multi-websites / multi-stores setup

---
 .../Indexer/Fulltext/Plugin/ProductTest.php   | 49 ++++++++++++++-----
 1 file changed, 37 insertions(+), 12 deletions(-)

diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/Fulltext/Plugin/ProductTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/Fulltext/Plugin/ProductTest.php
index 49f37b71f1a..cb6c83ea3dc 100644
--- a/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/Fulltext/Plugin/ProductTest.php
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/Fulltext/Plugin/ProductTest.php
@@ -16,10 +16,20 @@ class ProductTest extends \PHPUnit_Framework_TestCase
     protected $indexerMock;
 
     /**
-     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\ResourceModel\Product
      */
     protected $subjectMock;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Product
+     */
+    protected $productMock;
+
+    /**
+     * @var \Closure
+     */
+    protected $proceed;
+
     /**
      * @var \Magento\Framework\Indexer\IndexerRegistry|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -32,8 +42,8 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->subjectMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
-
+        $this->productMock = $this->getMock('Magento\Catalog\Model\Product', [], [], '', false);
+        $this->subjectMock = $this->getMock('Magento\Catalog\Model\ResourceModel\Product', [], [], '', false);
         $this->indexerMock = $this->getMockForAbstractClass(
             'Magento\Framework\Indexer\IndexerInterface',
             [],
@@ -43,7 +53,6 @@ class ProductTest extends \PHPUnit_Framework_TestCase
             true,
             ['getId', 'getState', '__wakeup']
         );
-
         $this->indexerRegistryMock = $this->getMock(
             'Magento\Framework\Indexer\IndexerRegistry',
             ['get'],
@@ -52,6 +61,10 @@ class ProductTest extends \PHPUnit_Framework_TestCase
             false
         );
 
+        $this->proceed = function () {
+            return $this->subjectMock;
+        };
+
         $this->model = new Product($this->indexerRegistryMock);
     }
 
@@ -61,9 +74,12 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $this->indexerMock->expects($this->once())->method('reindexRow')->with(1);
         $this->prepareIndexer();
 
-        $this->subjectMock->expects($this->once())->method('getId')->will($this->returnValue(1));
+        $this->productMock->expects($this->once())->method('getId')->will($this->returnValue(1));
 
-        $this->assertEquals($this->subjectMock, $this->model->afterSave($this->subjectMock));
+        $this->assertEquals(
+            $this->subjectMock,
+            $this->model->aroundSave($this->subjectMock, $this->proceed, $this->productMock)
+        );
     }
 
     public function testAfterSaveScheduled()
@@ -72,9 +88,12 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $this->indexerMock->expects($this->never())->method('reindexRow');
         $this->prepareIndexer();
 
-        $this->subjectMock->expects($this->once())->method('getId')->will($this->returnValue(1));
+        $this->productMock->expects($this->once())->method('getId')->will($this->returnValue(1));
 
-        $this->assertEquals($this->subjectMock, $this->model->afterSave($this->subjectMock));
+        $this->assertEquals(
+            $this->subjectMock,
+            $this->model->aroundSave($this->subjectMock, $this->proceed, $this->productMock)
+        );
     }
 
     public function testAfterDeleteNonScheduled()
@@ -83,9 +102,12 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $this->indexerMock->expects($this->once())->method('reindexRow')->with(1);
         $this->prepareIndexer();
 
-        $this->subjectMock->expects($this->once())->method('getId')->will($this->returnValue(1));
+        $this->productMock->expects($this->once())->method('getId')->will($this->returnValue(1));
 
-        $this->assertEquals($this->subjectMock, $this->model->afterDelete($this->subjectMock));
+        $this->assertEquals(
+            $this->subjectMock,
+            $this->model->aroundDelete($this->subjectMock, $this->proceed, $this->productMock)
+        );
     }
 
     public function testAfterDeleteScheduled()
@@ -94,9 +116,12 @@ class ProductTest extends \PHPUnit_Framework_TestCase
         $this->indexerMock->expects($this->never())->method('reindexRow');
         $this->prepareIndexer();
 
-        $this->subjectMock->expects($this->once())->method('getId')->will($this->returnValue(1));
+        $this->productMock->expects($this->once())->method('getId')->will($this->returnValue(1));
 
-        $this->assertEquals($this->subjectMock, $this->model->afterDelete($this->subjectMock));
+        $this->assertEquals(
+            $this->subjectMock,
+            $this->model->aroundDelete($this->subjectMock, $this->proceed, $this->productMock)
+        );
     }
 
     protected function prepareIndexer()
-- 
GitLab


From b676f746c53fbbcb3add677774227ce8ed3ef6b3 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Fri, 23 Oct 2015 18:03:16 +0300
Subject: [PATCH 092/162] Fix bug: Couldn't retrive a remote preview image
 file.

---
 .../Controller/Adminhtml/Product/Gallery/RetrieveImage.php      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index fba8a5b4747..5af6d0976dc 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -132,7 +132,7 @@ class RetrieveImage extends \Magento\Backend\App\Action
         $this->curl->write('GET', $fileUrl);
         $image = $this->curl->read();
         if (empty($image)) {
-            throw new \InvalidArgumentException("Couldn't retrive a remote preview image file. Service is inaccessible.");
+            throw new \InvalidArgumentException(__('Couldn\'t retrive a remote preview image file. Service is inaccessible.'));
         }
         $this->fileUtility->saveFile($localFilePath, $image);
     }
-- 
GitLab


From ca48d029a2435beff1fa650db5a1ada9fe4f4195 Mon Sep 17 00:00:00 2001
From: Vadim Zubovich <vadim_zubovich@epam.com>
Date: Fri, 23 Oct 2015 18:12:31 +0300
Subject: [PATCH 093/162] MAGETWO-44274: The issue fixed

---
 .../Product/Attribute/Backend/Media.php       | 81 +++++++++++++------
 .../ProductVideo/Model/Plugin/BaseImage.php   | 10 +--
 .../Plugin/ExternalVideoEntryProcessor.php    | 12 ++-
 .../Plugin/ExternalVideoResourceBackend.php   | 47 +++++++++++
 .../Model/ResourceModel/Video.php             | 47 +++++++++++
 app/code/Magento/ProductVideo/etc/di.xml      |  3 +
 6 files changed, 167 insertions(+), 33 deletions(-)
 create mode 100644 app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
 create mode 100644 app/code/Magento/ProductVideo/Model/ResourceModel/Video.php

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
index 1edaa8d87fd..5e413d19c57 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
@@ -298,41 +298,29 @@ class Media extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
      * @param array $newFiles
      * @param int $originalProductId
      * @param int $newProductId
-     * @return $this
+     * @return array
      */
     public function duplicate($attributeId, $newFiles, $originalProductId, $newProductId)
     {
-        $mainTableAlias = $this->getMainTableAlias();
+        $mediaGalleryEntities = $this->loadMediaGalleryEntities($attributeId, $originalProductId);
 
-        $select = $this->getConnection()->select()->from(
-            [$mainTableAlias => $this->getMainTable()],
-            ['value_id', 'value']
-        )->joinInner(
-            ['entity' => $this->getTable(self::GALLERY_VALUE_TO_ENTITY_TABLE)],
-            $mainTableAlias . '.value_id = entity.value_id',
-            ['entity_id' => 'entity_id']
-        )->where(
-            'attribute_id = ?',
-            $attributeId
-        )->where(
-            'entity.entity_id = ?',
-            $originalProductId
-        );
-
-        $valueIdMap = [];
         // Duplicate main entries of gallery
-        foreach ($this->getConnection()->fetchAll($select) as $row) {
+        $valueIdMap = [];
+        foreach ($mediaGalleryEntities as $row) {
+            $valueId = $row['value_id'];
             $data = [
                 'attribute_id' => $attributeId,
-                'entity_id' => $newProductId,
-                'value' => isset($newFiles[$row['value_id']]) ? $newFiles[$row['value_id']] : $row['value'],
+                'media_type' => $row['media_type'],
+                'disabled' => $row['disabled'],
+                'value' => isset($newFiles[$valueId]) ? $newFiles[$valueId] : $row['value'],
             ];
-
-            $valueIdMap[$row['value_id']] = $this->insertGallery($data);
+            $valueIdMap[$valueId] = $this->insertGallery($data);
         }
 
+
+
         if (count($valueIdMap) == 0) {
-            return $this;
+            return [];
         }
 
         // Duplicate per store gallery values
@@ -350,6 +338,49 @@ class Media extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
             $this->bindValueToEntity($row['value_id'], $newProductId);
         }
 
-        return $this;
+        return $valueIdMap;
+    }
+
+    /**
+     * @param array $valueIds
+     * @return array
+     * @throws \Magento\Framework\Exception\LocalizedException
+     */
+    public function loadMediaGalleryEntitiesbyId($valueIds)
+    {
+        $select = $this->getConnection()->select()->from(
+            $this->getMainTable()
+        )->where(
+            'value_id IN(?)',
+            $valueIds
+        );
+
+        return $this->getConnection()->fetchAll($select);
+    }
+
+    /**
+     * @param int $attributeId
+     * @param int $productId
+     * @return array
+     * @throws \Magento\Framework\Exception\LocalizedException
+     */
+    public function loadMediaGalleryEntities($attributeId, $productId)
+    {
+        $mainTableAlias = $this->getMainTableAlias();
+        $select = $this->getConnection()->select()->from(
+            [$mainTableAlias => $this->getMainTable()]
+        )->joinInner(
+            ['entity' => $this->getTable(self::GALLERY_VALUE_TO_ENTITY_TABLE)],
+            $mainTableAlias . '.value_id = entity.value_id',
+            ['entity_id' => 'entity_id']
+        )->where(
+            'attribute_id = ?',
+            $attributeId
+        )->where(
+            'entity.entity_id = ?',
+            $productId
+        );
+
+        return $this->getConnection()->fetchAll($select);
     }
 }
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/BaseImage.php b/app/code/Magento/ProductVideo/Model/Plugin/BaseImage.php
index 809da5a9c6b..f9342074f99 100644
--- a/app/code/Magento/ProductVideo/Model/Plugin/BaseImage.php
+++ b/app/code/Magento/ProductVideo/Model/Plugin/BaseImage.php
@@ -6,7 +6,7 @@
 
 namespace Magento\ProductVideo\Model\Plugin;
 
-use Magento\Catalog\Block\Adminhtml\Product\Helper\Form\BaseImage as OriginalBloc;
+use Magento\Catalog\Block\Adminhtml\Product\Helper\Form\BaseImage as OriginalBlock;
 use Magento\Framework\View\Element\Template;
 
 /**
@@ -20,13 +20,13 @@ class BaseImage
     const ELEMENT_OUTPUT_TEMPLATE = 'Magento_ProductVideo::product/edit/base_image.phtml';
 
     /**
-     * @param OriginalBloc $baseImage
+     * @param OriginalBlock $baseImage
      * @param Template $block
      * @return Template
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function afterAssignBlockVariables(OriginalBloc $baseImage, Template $block)
+    public function afterAssignBlockVariables(OriginalBlock $baseImage, Template $block)
     {
         $block->assign([
             'videoPlaceholderText' => __('Click here to add videos.'),
@@ -37,13 +37,13 @@ class BaseImage
     }
 
     /**
-     * @param OriginalBloc $baseImage
+     * @param OriginalBlock $baseImage
      * @param Template $block
      * @return Template
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function afterCreateElementHtmlOutputBlock(OriginalBloc $baseImage, Template $block)
+    public function afterCreateElementHtmlOutputBlock(OriginalBlock $baseImage, Template $block)
     {
         $block->setTemplate(self::ELEMENT_OUTPUT_TEMPLATE);
         return $block;
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
index 935e84de05c..1ac182f9039 100644
--- a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
+++ b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
@@ -41,13 +41,20 @@ class ExternalVideoEntryProcessor
      */
     protected $resourceEntryMediaGallery;
 
+    /**
+     * @var \Magento\ProductVideo\Model\ResourceModel\Video
+     */
+    protected $videoResourceModel;
+
     /**
      * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media $resourceEntryMediaGallery
      */
     public function __construct(
-        \Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media $resourceEntryMediaGallery
+        \Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media $resourceEntryMediaGallery,
+        \Magento\ProductVideo\Model\ResourceModel\Video $videoResourceModel
     ) {
         $this->resourceEntryMediaGallery = $resourceEntryMediaGallery;
+        $this->videoResourceModel = $videoResourceModel;
     }
 
     /**
@@ -141,8 +148,7 @@ class ExternalVideoEntryProcessor
      */
     protected function saveVideoValuesItem(array $item)
     {
-        $this->resourceEntryMediaGallery->saveDataRow(
-            InstallSchema::GALLERY_VALUE_VIDEO_TABLE,
+        $this->videoResourceModel->insertOnDuplicate(
             $this->prepareVideoRowDataForSave($item)
         );
     }
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
new file mode 100644
index 00000000000..d8a9f6232e2
--- /dev/null
+++ b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\ProductVideo\Model\Plugin;
+
+use Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media;
+use Magento\ProductVideo\Setup\InstallSchema;
+
+/**
+ * Attribute Media Resource decorator
+ */
+class ExternalVideoResourceBackend
+{
+    /**
+     * @var \Magento\ProductVideo\Model\ResourceModel\Video
+     */
+    protected $videoResourceModel;
+
+    /**
+     * @param \Magento\ProductVideo\Model\ResourceModel\Video $videoResourceModel
+     */
+    public function __construct(\Magento\ProductVideo\Model\ResourceModel\Video $videoResourceModel)
+    {
+        $this->videoResourceModel = $videoResourceModel;
+    }
+
+    /**
+     * @param Media $originalResourceModel
+     * @param array $valueIdMap
+     * @return array
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function afterDuplicate(Media $originalResourceModel, array $valueIdMap)
+    {
+        $mediaGalleryEntitiesData = $this->videoResourceModel->loadByIds(array_keys($valueIdMap));
+        foreach($mediaGalleryEntitiesData as $row) {
+            $row['value_id'] = $valueIdMap[$row['value_id']];
+            $this->videoResourceModel->insertOnDuplicate($row);
+        }
+
+        return $valueIdMap;
+    }
+}
diff --git a/app/code/Magento/ProductVideo/Model/ResourceModel/Video.php b/app/code/Magento/ProductVideo/Model/ResourceModel/Video.php
new file mode 100644
index 00000000000..3a242f71eb4
--- /dev/null
+++ b/app/code/Magento/ProductVideo/Model/ResourceModel/Video.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\ProductVideo\Model\ResourceModel;
+
+class Video extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
+{
+    /**
+     * Resource initialization
+     *
+     * @return void
+     */
+    public function _construct()
+    {
+        $this->_init(\Magento\ProductVideo\Setup\InstallSchema::GALLERY_VALUE_VIDEO_TABLE, 'value_id');
+    }
+
+    /**
+     * @param array $data
+     * @param array $fields
+     * @return int
+     * @throws \Magento\Framework\Exception\LocalizedException
+     */
+    public function insertOnDuplicate(array $data, array $fields = [])
+    {
+        return $this->getConnection()->insertOnDuplicate($this->getMainTable(), $data, $fields);
+    }
+
+    /**
+     * @param array $ids
+     * @return array
+     * @throws \Magento\Framework\Exception\LocalizedException
+     */
+    public function loadByIds(array $ids)
+    {
+        $select = $this->getConnection()->select()->from(
+            $this->getMainTable()
+        )->where(
+            'value_id IN(?)',
+            $ids
+        );
+
+        return $this->getConnection()->fetchAll($select);
+    }
+}
diff --git a/app/code/Magento/ProductVideo/etc/di.xml b/app/code/Magento/ProductVideo/etc/di.xml
index 99aeef0a725..7f27e06492a 100644
--- a/app/code/Magento/ProductVideo/etc/di.xml
+++ b/app/code/Magento/ProductVideo/etc/di.xml
@@ -39,6 +39,9 @@
     <type name="Magento\Catalog\Model\Product\Attribute\Backend\Media">
         <plugin name="external_video_media_entry_processor" type="Magento\ProductVideo\Model\Plugin\ExternalVideoEntryProcessor" />
     </type>
+    <type name="Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media">
+        <plugin name="external_video_media_resource_backend" type="Magento\ProductVideo\Model\Plugin\ExternalVideoResourceBackend" />
+    </type>
     <type name="Magento\Catalog\Block\Adminhtml\Product\Helper\Form\BaseImage">
         <plugin name="base_image_element_render" type="Magento\ProductVideo\Model\Plugin\BaseImage" />
     </type>
-- 
GitLab


From 18c161f22bfa59ac5217f0f73cf8d09a8ca456a9 Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Fri, 23 Oct 2015 19:01:01 +0300
Subject: [PATCH 094/162] PV-7: Fix fotorama with media on storfront

---
 .../view/frontend/web/js/fotorama-add-video-events.js | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index c2795990c58..3b7b89a4579 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -134,22 +134,17 @@ define([
          */
         _createVideoData: function (inputData, isJSON) {
             var videoData = {},
-                key,
                 dataUrl,
                 tmpVideoData,
                 tmpInputData,
-                inputDataKeys,
                 i;
 
             if (isJSON) {
                 inputData = $.parseJSON(inputData);
             }
 
-            inputDataKeys = Object.keys(inputData);
-
-            for (i = 0; i < inputDataKeys.length; i++) {
-                key = inputDataKeys[i];
-                tmpInputData = inputData[key];
+            for (i = 0; i < inputData.length; i++) {
+                tmpInputData = inputData[i];
                 dataUrl = '';
                 tmpVideoData = {
                     mediaType: '',
@@ -172,7 +167,7 @@ define([
                     tmpVideoData.provider = dataUrl.type;
                 }
 
-                videoData[key] = tmpVideoData;
+                videoData[i] = tmpVideoData;
             }
 
             return videoData;
-- 
GitLab


From b3061c49fc5ed0a2f305d80e1d430783ea80d97a Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 14:51:28 -0500
Subject: [PATCH 095/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Framework/Interception/Config/Config.php  |   2 +-
 .../Test/Unit/Config/ConfigTest.php           |  13 +-
 .../Console/Command/DiCompileCommand.php      |  14 ++-
 .../Operation/ApplicationCodeGenerator.php    |  35 +++++-
 .../Di/App/Task/Operation/Interception.php    |   7 +-
 .../Di/App/Task/Operation/ProxyGenerator.php  |  75 ++++++++++++
 .../Task/Operation/RepositoryGenerator.php    |  10 +-
 .../Module/Di/App/Task/OperationFactory.php   |   8 +-
 .../Console/Command/DiCompileCommandTest.php  |   2 +-
 .../App/Task/ApplicationCodeGeneratorTest.php | 111 ++++++++++++++++++
 .../Module/Di/App/Task/ProxyGeneratorTest.php |  94 +++++++++++++++
 11 files changed, 358 insertions(+), 13 deletions(-)
 create mode 100644 setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
 create mode 100644 setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php

diff --git a/lib/internal/Magento/Framework/Interception/Config/Config.php b/lib/internal/Magento/Framework/Interception/Config/Config.php
index 7c9ede12daf..43be5547c46 100644
--- a/lib/internal/Magento/Framework/Interception/Config/Config.php
+++ b/lib/internal/Magento/Framework/Interception/Config/Config.php
@@ -63,7 +63,7 @@ class Config implements \Magento\Framework\Interception\ConfigInterface
      *
      * @var array
      */
-    protected $_serviceClassTypes = ['Proxy', 'Interceptor'];
+    protected $_serviceClassTypes = ['Interceptor'];
 
     /**
      * @var \Magento\Framework\Config\ScopeListInterface
diff --git a/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php b/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
index 6c127589056..b2bcba673e2 100644
--- a/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
+++ b/lib/internal/Magento/Framework/Interception/Test/Unit/Config/ConfigTest.php
@@ -102,6 +102,10 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
                     ],
+                    [
+                        'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                        'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                    ],
                     [
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy',
                         'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy',
@@ -151,6 +155,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\Item' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\Item\Enhanced' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced' => true,
+            'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy' => true,
             'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemProxy' => false,
             'virtual_custom_item' => true,
         ];
@@ -195,7 +200,13 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             [
                 // the following model has only inherited plugins
                 true,
-                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Enhanced',
+                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
+                ['Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer'],
+            ],
+            [
+                // the following model has only inherited plugins
+                true,
+                'Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer\Proxy',
                 ['Magento\Framework\Interception\Test\Unit\Custom\Module\Model\ItemContainer'],
             ],
             [
diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 8138a0db280..8540a636d63 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -294,6 +294,10 @@ class DiCompileCommand extends Command
         array $dataAttributesIncludePattern
     ) {
         $operations = [
+            OperationFactory::PROXY_GENERATOR => [
+                'paths' => $compiledPathsList['application'],
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+            ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
@@ -303,9 +307,13 @@ class DiCompileCommand extends Command
                 'filePatterns' => $dataAttributesIncludePattern
             ],
             OperationFactory::APPLICATION_CODE_GENERATOR => [
-                $compiledPathsList['application'],
-                $compiledPathsList['library'],
-                $compiledPathsList['generated_helpers'],
+                'paths' => [
+                    $compiledPathsList['application'],
+                    $compiledPathsList['library'],
+                    $compiledPathsList['generated_helpers'],
+                ],
+                'filePatterns' => ['php' => '/\.php$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::INTERCEPTION => [
                 'intercepted_paths' => [
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index 3b412d15cc1..21254457ddf 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -5,8 +5,12 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\App\Bootstrap;
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+use Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner;
+use Magento\Setup\Module\Di\Code\Scanner\PhpScanner;
 
 class ApplicationCodeGenerator implements OperationInterface
 {
@@ -20,16 +24,30 @@ class ApplicationCodeGenerator implements OperationInterface
      */
     private $classesScanner;
 
+    /**
+     * @var PhpScanner
+     */
+    private $phpScanner;
+
+    /**
+     * @var DirectoryScanner
+     */
+    private $directoryScanner;
+
     /**
      * @param ClassesScanner $classesScanner
      * @param array $data
      */
     public function __construct(
         ClassesScanner $classesScanner,
+        PhpScanner $phpScanner,
+        DirectoryScanner $directoryScanner,
         $data = []
     ) {
         $this->data = $data;
         $this->classesScanner = $classesScanner;
+        $this->phpScanner = $phpScanner;
+        $this->directoryScanner = $directoryScanner;
     }
 
     /**
@@ -37,16 +55,27 @@ class ApplicationCodeGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (empty($this->data)) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
-        foreach ($this->data as $paths) {
+        foreach ($this->data['paths'] as $paths) {
             if (!is_array($paths)) {
                 $paths = (array)$paths;
             }
+            $files = [];
             foreach ($paths as $path) {
-                $this->classesScanner->getList($path);
+                try {
+                    $this->classesScanner->getList($path);
+                    $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
+                } catch(FileSystemException $e) {
+                    // skip
+                }
+            }
+            $entities = $this->phpScanner->collectEntities($files['php']);
+            foreach ($entities as $entityName) {
+                class_exists($entityName);
             }
         }
     }
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
index 0c48cd4f519..269e65bb48c 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
@@ -5,6 +5,7 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
 use Magento\Framework\Interception\Code\Generator\Interceptor;
@@ -80,7 +81,11 @@ class Interception implements OperationInterface
                 $paths = (array)$paths;
             }
             foreach ($paths as $path) {
-                $classesList = array_merge($classesList, $this->classesScanner->getList($path));
+                try {
+                    $classesList = array_merge($classesList, $this->classesScanner->getList($path));
+                } catch(FileSystemException $e) {
+                    // skip
+                }
             }
         }
 
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
new file mode 100644
index 00000000000..38751954c9e
--- /dev/null
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Module\Di\App\Task\Operation;
+
+use Magento\Setup\Module\Di\App\Task\OperationInterface;
+use Magento\Setup\Module\Di\Code\Scanner;
+
+class ProxyGenerator implements OperationInterface
+{
+    /**
+     * @var Scanner\DirectoryScanner
+     */
+    private $directoryScanner;
+
+    /**
+     * @var Scanner\XmlScanner
+     */
+    private $proxyScanner;
+
+    /**
+     * @var array
+     */
+    private $data;
+
+    /**
+     * @param Scanner\DirectoryScanner $directoryScanner
+     * @param Scanner\XmlScanner $proxyScanner
+     * @param array $data
+     */
+    public function __construct(
+        Scanner\DirectoryScanner $directoryScanner,
+        Scanner\XmlScanner $proxyScanner,
+        $data = []
+    ) {
+        $this->directoryScanner = $directoryScanner;
+        $this->proxyScanner = $proxyScanner;
+        $this->data = $data;
+    }
+
+    /**
+     * Processes operation task
+     *
+     * @return void
+     */
+    public function doOperation()
+    {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
+            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+            return;
+        }
+
+        $files = [];
+        foreach ($this->data['paths'] as $path) {
+            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+        }
+        $proxies = $this->proxyScanner->collectEntities($files['di']);
+        foreach ($proxies as $entityName) {
+            class_exists($entityName);
+        }
+    }
+
+    /**
+     * Returns operation name
+     *
+     * @return string
+     */
+    public function getName()
+    {
+        return 'Proxies code generation';
+    }
+}
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index cf3c779a3f7..d72b4c932a7 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -6,6 +6,7 @@
 
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
+use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Scanner;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
@@ -62,9 +63,14 @@ class RepositoryGenerator implements OperationInterface
             return;
         }
 
-        foreach ($this->data['paths'] as $path) {
-            $this->classesScanner->getList($path);
+        try {
+            foreach ($this->data['paths'] as $path) {
+                $this->classesScanner->getList($path);
+            }
+        } catch(FileSystemException $e) {
+            // skip
         }
+
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
index dd6bfa1f5ff..cb5c930f6e4 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/OperationFactory.php
@@ -32,6 +32,11 @@ class OperationFactory
      */
     const REPOSITORY_GENERATOR = 'repository_generator';
 
+    /**
+     * Proxy generator
+     */
+    const PROXY_GENERATOR = 'proxy_generator';
+
     /**
      * Service data attributes generator
      */
@@ -53,7 +58,8 @@ class OperationFactory
         self::APPLICATION_CODE_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator',
         self::INTERCEPTION => 'Magento\Setup\Module\Di\App\Task\Operation\Interception',
         self::INTERCEPTION_CACHE => 'Magento\Setup\Module\Di\App\Task\Operation\InterceptionCache',
-        self::REPOSITORY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator'
+        self::REPOSITORY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\RepositoryGenerator',
+        self::PROXY_GENERATOR => 'Magento\Setup\Module\Di\App\Task\Operation\ProxyGenerator',
     ];
 
     /**
diff --git a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
index 303e4a80142..2cbf5cc3f8e 100644
--- a/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Console/Command/DiCompileCommandTest.php
@@ -141,7 +141,7 @@ class DiCompileCommandTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with('Symfony\Component\Console\Helper\ProgressBar')
             ->willReturn($progressBar);
-        $this->manager->expects($this->exactly(6))->method('addOperation');
+        $this->manager->expects($this->exactly(7))->method('addOperation');
         $this->manager->expects($this->once())->method('process');
         $tester = new CommandTester($this->command);
         $tester->execute([]);
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
new file mode 100644
index 00000000000..0a988bb3a51
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ApplicationCodeGeneratorTest.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
+
+use Magento\Setup\Module\Di\App\Task\Operation\ApplicationCodeGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+
+class ApplicationCodeGeneratorTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $directoryScannerMock;
+
+    /**
+     * @var Scanner\PhpScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $phpScannerMock;
+
+    /**
+     * @var ClassesScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $classesScannerMock;
+
+    protected function setUp()
+    {
+        $this->directoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->phpScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\PhpScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->classesScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Reader\ClassesScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+    }
+
+    /**
+     * @param array $data
+     *
+     * @dataProvider doOperationWrongDataDataProvider
+     */
+    public function testDoOperationWrongData($data)
+    {
+        $model = new ApplicationCodeGenerator(
+            $this->classesScannerMock,
+            $this->phpScannerMock,
+            $this->directoryScannerMock,
+            $data
+        );
+
+        $this->classesScannerMock->expects($this->never())
+            ->method('getList');
+        $this->directoryScannerMock->expects($this->never())
+            ->method('scan');
+        $this->phpScannerMock->expects($this->never())
+            ->method('collectEntities');
+
+        $this->assertEmpty($model->doOperation());
+    }
+
+    /**
+     * @return array
+     */
+    public function doOperationWrongDataDataProvider()
+    {
+        return [
+            [[]],
+            [['filePatterns' => ['php' => '*.php']]],
+            [['path' => 'path']],
+        ];
+    }
+
+    public function testDoOperation()
+    {
+        $data = [
+            'paths' => ['path/to/app'],
+            'filePatterns' => ['php' => '.php'],
+            'excludePatterns' => ['/\/Test\//']
+        ];
+        $files = ['php' => []];
+        $model = new ApplicationCodeGenerator(
+            $this->classesScannerMock,
+            $this->phpScannerMock,
+            $this->directoryScannerMock,
+            $data
+        );
+
+        $this->classesScannerMock->expects($this->once())
+            ->method('getList')
+            ->with($data['paths'][0]);
+        $this->directoryScannerMock->expects($this->once())
+            ->method('scan')
+            ->with(
+                $data['paths'][0],
+                $data['filePatterns'],
+                $data['excludePatterns']
+            )->willReturn($files);
+        $this->phpScannerMock->expects($this->once())
+            ->method('collectEntities')
+            ->with($files['php'])
+            ->willReturn([]);
+
+        $this->assertEmpty($model->doOperation());
+    }
+}
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
new file mode 100644
index 00000000000..9b78e237db3
--- /dev/null
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Setup\Test\Unit\Module\Di\App\Task;
+
+use Magento\Setup\Module\Di\App\Task\Operation\ProxyGenerator;
+use Magento\Setup\Module\Di\Code\Scanner;
+use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
+
+class ProxyGeneratorTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $directoryScannerMock;
+
+    /**
+     * @var Scanner\XmlScanner | \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $proxyScannerMock;
+
+    protected function setUp()
+    {
+        $this->directoryScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\DirectoryScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->proxyScannerMock = $this->getMockBuilder('Magento\Setup\Module\Di\Code\Scanner\XmlScanner')
+            ->disableOriginalConstructor()
+            ->getMock();
+    }
+
+    /**
+     * @param array $data
+     *
+     * @dataProvider doOperationWrongDataDataProvider
+     */
+    public function testDoOperationWrongData($data)
+    {
+        $model = new ProxyGenerator(
+            $this->directoryScannerMock,
+            $this->proxyScannerMock,
+            $data
+        );
+
+        $this->directoryScannerMock->expects($this->never())
+            ->method('scan');
+        $this->proxyScannerMock->expects($this->never())
+            ->method('collectEntities');
+
+        $this->assertEmpty($model->doOperation());
+    }
+
+    /**
+     * @return array
+     */
+    public function doOperationWrongDataDataProvider()
+    {
+        return [
+            [[]],
+            [['filePatterns' => ['php' => '*.php']]],
+            [['path' => 'path']],
+        ];
+    }
+
+    public function testDoOperation()
+    {
+        $data = [
+            'paths' => ['path/to/app'],
+            'filePatterns' => ['di' => 'di.xml'],
+        ];
+        $files = ['di' => []];
+        $model = new ProxyGenerator(
+            $this->directoryScannerMock,
+            $this->proxyScannerMock,
+            $data
+        );
+
+        $this->directoryScannerMock->expects($this->once())
+            ->method('scan')
+            ->with(
+                $data['paths'][0],
+                $data['filePatterns']
+            )->willReturn($files);
+        $this->proxyScannerMock->expects($this->once())
+            ->method('collectEntities')
+            ->with($files['di'])
+            ->willReturn([]);
+
+        $this->assertEmpty($model->doOperation());
+    }
+}
-- 
GitLab


From c068c8e5a86f9ee75b48decbc458a7cd1965482b Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Fri, 23 Oct 2015 14:54:38 -0500
Subject: [PATCH 096/162] MAGETWO-44189: Does not work to switch the language
 in the admin area  - apply new  style to  the legal section

---
 .../Backend/view/adminhtml/layout/default.xml | 20 +++++++++++--------
 .../adminhtml/templates/page/copyright.phtml  |  6 ++----
 .../web/css/source/module/_footer.less        | 10 +++-------
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
index 56c7c5d553a..216934514bc 100644
--- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml
+++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml
@@ -53,14 +53,18 @@
             <block class="Magento\Framework\View\Element\Template" name="page.actions.toolbar" template="Magento_Backend::pageactions.phtml" after="-"/>
         </referenceContainer>
         <referenceContainer name="footer">
-            <container name="legal" htmlTag="div" htmlClass="footer-legal col-m-12">
-                <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
-                <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
-                <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
-                    <arguments>
-                        <argument name="bugreport_url" xsi:type="string">https://github.com/magento/magento2/issues</argument>
-                    </arguments>
-                </block>
+            <container name="legal" htmlTag="div" htmlClass="footer-legal">
+                <container name="legal.copyright" htmlTag="p" htmlClass="copyright col-m-6">
+                    <block class="Magento\Backend\Block\Page\Copyright" name="copyright" as="copyright" />
+                </container>
+                <container name="legal.system" htmlTag="div" htmlClass="footer-legal-system col-m-6">
+                    <block class="Magento\Backend\Block\Page\Footer" name="version" as="version" />
+                    <block class="Magento\Framework\View\Element\Template" name="report" as="report" template="Magento_Backend::page/report.phtml">
+                        <arguments>
+                            <argument name="bugreport_url" xsi:type="string">https://github.com/magento/magento2/issues</argument>
+                        </arguments>
+                    </block>
+                </container>
             </container>
         </referenceContainer>
         <referenceContainer name="backend.page">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
index 5612ab20661..41781c9d128 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/page/copyright.phtml
@@ -7,7 +7,5 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<p class="copyright">
-    <a class="link-copyright" href="http://magento.com" target="_blank" title="<?php /* @escapeNotVerified */ echo __('Magento') ?>"></a>
-    <?php /* @escapeNotVerified */ echo __('Copyright &copy; %1 Magento. All rights reserved.', date('Y')) ?>
-</p>
+<a class="link-copyright" href="http://magento.com" target="_blank" title="<?php /* @escapeNotVerified */ echo __('Magento') ?>"></a>
+<?php /* @escapeNotVerified */ echo __('Copyright &copy; %1 Magento. All rights reserved.', date('Y')) ?>
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
index 65e24732ac4..7752b6d2fed 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
@@ -53,6 +53,7 @@
 
 //  Copyright
 .copyright {
+    text-align: left;
     margin-bottom: -.2rem;
     position: relative;
     .link-copyright {
@@ -85,15 +86,10 @@
 
 .footer-legal {
     padding-top: 1rem;
-    text-align: right;
 }
 
-//  Locale switcher
-.locale-switcher {
-    .label {
-        display: block;
-        margin-bottom: 1rem;
-    }
+.footer-legal-system {
+    text-align: right;
 }
 
 //
-- 
GitLab


From bbb9f6c131afcc3ae2f84f6e774b36df3acf7bd4 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 15:10:56 -0500
Subject: [PATCH 097/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php       |  1 +
 .../Unit/Model/Design/Backend/ThemeTest.php    | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index d58e9b38242..108e82528a0 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -68,6 +68,7 @@ class Theme extends Value
         parent::afterSave();
         if ($this->isValueChanged()) {
             $this->_cacheManager->clean();
+            $this->_eventManager->dispatch('adminhtml_cache_flush_system');
         }
         return $this;
     }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index 4082cac2232..e394482d748 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -32,6 +32,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
+    /**
+     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $eventManagerMock;
+
     /**
      * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
      */
@@ -48,9 +53,15 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
         $this->context = $objectManager->getObject(
             'Magento\Framework\Model\Context',
-            ['cacheManager' => $this->cacheManagerMock]
+            [
+                'cacheManager' => $this->cacheManagerMock,
+                'eventDispatcher' => $this->eventManagerMock,
+            ]
         );
 
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
@@ -100,6 +111,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
         $this->configMock->expects($this->any())
             ->method('getValue')
             ->willReturn($oldValue);
+        if ($callNumber) {
+            $this->eventManagerMock->expects($this->at(3))
+                ->method('dispatch')
+                ->with('adminhtml_cache_flush_system');
+        }
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
-- 
GitLab


From 9dcfff78d4d8cc0f6fc54c33e5aa497835cd41ca Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Fri, 23 Oct 2015 15:09:49 -0500
Subject: [PATCH 098/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

---
 .../Adminhtml/Notification/AjaxMarkAsRead.php |  2 +-
 .../Adminhtml/Notification/Index.php          |  2 +-
 .../Adminhtml/Notification/MarkAsRead.php     |  2 +-
 .../Adminhtml/Notification/MassMarkAsRead.php |  2 +-
 .../Adminhtml/Notification/MassRemove.php     |  2 +-
 .../Adminhtml/Notification/Remove.php         |  2 +-
 .../Adminhtml/System/Message/ListAction.php   |  2 +-
 .../Controller/Adminhtml/Export/GetFilter.php |  2 +-
 .../Authorizenet/Directpost/Payment/Place.php |  2 +-
 .../Directpost/Payment/Redirect.php           |  2 +-
 .../Directpost/Payment/ReturnQuote.php        |  2 +-
 .../Directpost/Payment/BackendResponse.php    |  2 +-
 .../Controller/Directpost/Payment/Place.php   |  2 +-
 .../Directpost/Payment/Redirect.php           |  2 +-
 .../Directpost/Payment/Response.php           |  2 +-
 .../Directpost/Payment/ReturnQuote.php        |  2 +-
 .../Directpost/Payment/PlaceTest.php          |  4 ++--
 .../Magento/Backend/App/AbstractAction.php    |  6 +++---
 .../Controller/Adminhtml/Ajax/Translate.php   |  2 +-
 .../Adminhtml/Auth/DeniedIframe.php           |  2 +-
 .../Controller/Adminhtml/Auth/DeniedJson.php  |  2 +-
 .../Controller/Adminhtml/Auth/Login.php       |  2 +-
 .../Controller/Adminhtml/Auth/Logout.php      |  2 +-
 .../Adminhtml/BackendApp/Redirect.php         |  2 +-
 .../Adminhtml/Cache/CleanImages.php           |  2 +-
 .../Controller/Adminhtml/Cache/CleanMedia.php |  2 +-
 .../Adminhtml/Cache/CleanStaticFiles.php      |  2 +-
 .../Controller/Adminhtml/Cache/FlushAll.php   |  2 +-
 .../Adminhtml/Cache/FlushSystem.php           |  2 +-
 .../Controller/Adminhtml/Cache/Index.php      |  2 +-
 .../Adminhtml/Cache/MassDisable.php           |  2 +-
 .../Controller/Adminhtml/Cache/MassEnable.php |  2 +-
 .../Adminhtml/Cache/MassRefresh.php           |  2 +-
 .../Adminhtml/Dashboard/AjaxBlock.php         |  2 +-
 .../Adminhtml/Dashboard/CustomersMost.php     |  2 +-
 .../Adminhtml/Dashboard/CustomersNewest.php   |  2 +-
 .../Controller/Adminhtml/Dashboard/Index.php  |  2 +-
 .../Adminhtml/Dashboard/ProductsViewed.php    |  2 +-
 .../Adminhtml/Dashboard/RefreshStatistics.php |  2 +-
 .../Controller/Adminhtml/Dashboard/Tunnel.php |  2 +-
 .../Backend/Controller/Adminhtml/Denied.php   |  2 +-
 .../Adminhtml/Index/ChangeLocale.php          |  2 +-
 .../Adminhtml/Index/GlobalSearch.php          |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Noroute/Index.php    |  2 +-
 .../Adminhtml/System/Account/Index.php        |  2 +-
 .../Adminhtml/System/Account/Save.php         |  2 +-
 .../Adminhtml/System/Design/Delete.php        |  2 +-
 .../Adminhtml/System/Design/Edit.php          |  2 +-
 .../Adminhtml/System/Design/Grid.php          |  2 +-
 .../Adminhtml/System/Design/Index.php         |  2 +-
 .../Adminhtml/System/Design/NewAction.php     |  2 +-
 .../Adminhtml/System/Design/Save.php          |  2 +-
 .../Controller/Adminhtml/System/Index.php     |  2 +-
 .../Controller/Adminhtml/System/SetStore.php  |  2 +-
 .../Adminhtml/System/Store/DeleteGroup.php    |  2 +-
 .../System/Store/DeleteGroupPost.php          |  2 +-
 .../Adminhtml/System/Store/DeleteStore.php    |  2 +-
 .../System/Store/DeleteStorePost.php          |  2 +-
 .../Adminhtml/System/Store/DeleteWebsite.php  |  2 +-
 .../System/Store/DeleteWebsitePost.php        |  2 +-
 .../Adminhtml/System/Store/EditGroup.php      |  2 +-
 .../Adminhtml/System/Store/EditStore.php      |  2 +-
 .../Adminhtml/System/Store/EditWebsite.php    |  2 +-
 .../Adminhtml/System/Store/Index.php          |  2 +-
 .../Adminhtml/System/Store/NewGroup.php       |  2 +-
 .../Adminhtml/System/Store/NewStore.php       |  2 +-
 .../Adminhtml/System/Store/NewWebsite.php     |  2 +-
 .../Adminhtml/System/Store/Save.php           |  2 +-
 .../Test/Unit/App/Action/Stub/ActionStub.php  |  2 +-
 .../Adminhtml/Cache/CleanStaticFilesTest.php  |  2 +-
 .../Dashboard/RefreshStatisticsTest.php       |  2 +-
 .../Adminhtml/Dashboard/TunnelTest.php        |  6 +++---
 .../Adminhtml/System/Account/SaveTest.php     |  2 +-
 .../Controller/Adminhtml/Index/Create.php     |  2 +-
 .../Controller/Adminhtml/Index/Download.php   |  2 +-
 .../Controller/Adminhtml/Index/Grid.php       |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Index/MassDelete.php |  2 +-
 .../Controller/Adminhtml/Index/Rollback.php   |  2 +-
 .../Adminhtml/Index/DownloadTest.php          |  8 ++++----
 .../Controller/Creditcard/AjaxSave.php        |  2 +-
 .../Controller/Creditcard/Delete.php          |  2 +-
 .../Controller/Creditcard/DeleteConfirm.php   |  2 +-
 .../Braintree/Controller/Creditcard/Edit.php  |  2 +-
 .../Controller/Creditcard/Generate.php        |  2 +-
 .../Braintree/Controller/Creditcard/Index.php |  2 +-
 .../Controller/Creditcard/NewCard.php         |  2 +-
 .../Braintree/Controller/Creditcard/Save.php  |  2 +-
 .../Braintree/Controller/MyCreditCards.php    |  4 ++--
 .../Magento/Braintree/Controller/PayPal.php   |  4 ++--
 .../Controller/PayPal/GetButtonData.php       |  2 +-
 .../Controller/PayPal/PlaceOrder.php          |  2 +-
 .../Braintree/Controller/PayPal/Review.php    |  2 +-
 .../Controller/PayPal/SaveShippingMethod.php  |  2 +-
 .../Controller/PayPal/GetButtonDataTest.php   |  4 ++--
 .../Unit/Controller/PayPal/PlaceOrderTest.php |  4 ++--
 .../Unit/Controller/PayPal/ReviewTest.php     | 14 ++++++-------
 .../PayPal/SaveShippingMethodTest.php         |  4 ++--
 .../Test/Unit/Controller/PayPalTest.php       |  4 ++--
 .../Controller/Stub/MyCreditCardsStub.php     |  2 +-
 .../Test/Unit/Controller/Stub/PayPalStub.php  |  2 +-
 .../Adminhtml/Bundle/Product/Edit/Form.php    |  2 +-
 .../Adminhtml/Bundle/Selection/Grid.php       |  2 +-
 .../Adminhtml/Bundle/Selection/Search.php     |  2 +-
 .../Bundle/Product/Edit/FormTest.php          |  2 +-
 .../Adminhtml/Bundle/Selection/GridTest.php   |  4 ++--
 .../Adminhtml/Bundle/Selection/SearchTest.php |  2 +-
 .../Controller/Adminhtml/Refresh/Refresh.php  |  2 +-
 .../Captcha/Controller/Refresh/Index.php      |  2 +-
 .../Unit/Controller/Refresh/IndexTest.php     |  2 +-
 .../Controller/Adminhtml/Category/Add.php     |  2 +-
 .../Adminhtml/Category/CategoriesJson.php     |  2 +-
 .../Controller/Adminhtml/Category/Delete.php  |  2 +-
 .../Controller/Adminhtml/Category/Edit.php    |  2 +-
 .../Controller/Adminhtml/Category/Grid.php    |  2 +-
 .../Controller/Adminhtml/Category/Index.php   |  2 +-
 .../Controller/Adminhtml/Category/Move.php    |  2 +-
 .../Adminhtml/Category/RefreshPath.php        |  2 +-
 .../Controller/Adminhtml/Category/Save.php    |  2 +-
 .../Adminhtml/Category/SuggestCategories.php  |  2 +-
 .../Controller/Adminhtml/Category/Tree.php    |  2 +-
 .../Category/Widget/CategoriesJson.php        |  2 +-
 .../Adminhtml/Category/Widget/Chooser.php     |  2 +-
 .../Product/Action/Attribute/Edit.php         |  2 +-
 .../Product/Action/Attribute/Save.php         |  2 +-
 .../Product/Action/Attribute/Validate.php     |  2 +-
 .../Product/AddAttributeToTemplate.php        |  2 +-
 .../Adminhtml/Product/AlertsPriceGrid.php     |  2 +-
 .../Adminhtml/Product/AlertsStockGrid.php     |  2 +-
 .../Adminhtml/Product/Attribute.php           |  4 ++--
 .../Adminhtml/Product/Attribute/Delete.php    |  2 +-
 .../Adminhtml/Product/Attribute/Edit.php      |  2 +-
 .../Adminhtml/Product/Attribute/Index.php     |  2 +-
 .../Adminhtml/Product/Attribute/NewAction.php |  2 +-
 .../Adminhtml/Product/Attribute/Save.php      |  2 +-
 .../Adminhtml/Product/Attribute/Validate.php  |  2 +-
 .../Adminhtml/Product/Categories.php          |  2 +-
 .../Adminhtml/Product/Crosssell.php           |  2 +-
 .../Adminhtml/Product/CrosssellGrid.php       |  2 +-
 .../Adminhtml/Product/CustomOptions.php       |  2 +-
 .../Adminhtml/Product/Datafeeds/Index.php     |  2 +-
 .../Adminhtml/Product/Duplicate.php           |  2 +-
 .../Controller/Adminhtml/Product/Edit.php     |  2 +-
 .../Adminhtml/Product/Gallery/Upload.php      |  2 +-
 .../Controller/Adminhtml/Product/Grid.php     |  2 +-
 .../Controller/Adminhtml/Product/GridOnly.php |  2 +-
 .../Adminhtml/Product/Group/Save.php          |  2 +-
 .../Controller/Adminhtml/Product/Index.php    |  2 +-
 .../Adminhtml/Product/MassDelete.php          |  2 +-
 .../Adminhtml/Product/MassStatus.php          |  2 +-
 .../Adminhtml/Product/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Product/Options.php  |  2 +-
 .../Adminhtml/Product/OptionsImportGrid.php   |  2 +-
 .../Controller/Adminhtml/Product/Related.php  |  2 +-
 .../Controller/Adminhtml/Product/Save.php     |  2 +-
 .../Controller/Adminhtml/Product/Set/Add.php  |  2 +-
 .../Adminhtml/Product/Set/Delete.php          |  2 +-
 .../Controller/Adminhtml/Product/Set/Edit.php |  2 +-
 .../Adminhtml/Product/Set/Index.php           |  2 +-
 .../Controller/Adminhtml/Product/Set/Save.php |  2 +-
 .../Adminhtml/Product/Set/SetGrid.php         |  2 +-
 .../Adminhtml/Product/ShowUpdateResult.php    |  2 +-
 .../Adminhtml/Product/SuggestAttributes.php   |  2 +-
 .../Product/SuggestProductTemplates.php       |  2 +-
 .../Controller/Adminhtml/Product/Upsell.php   |  2 +-
 .../Adminhtml/Product/UpsellGrid.php          |  2 +-
 .../Controller/Adminhtml/Product/Validate.php |  2 +-
 .../Adminhtml/Product/Widget/Chooser.php      |  2 +-
 .../Controller/Adminhtml/Product/Wysiwyg.php  |  2 +-
 .../Catalog/Controller/Category/View.php      |  2 +-
 .../Catalog/Controller/Index/Index.php        |  2 +-
 .../Controller/Product/Compare/Add.php        |  2 +-
 .../Controller/Product/Compare/Clear.php      |  2 +-
 .../Controller/Product/Compare/Index.php      |  2 +-
 .../Controller/Product/Compare/Remove.php     |  2 +-
 .../Catalog/Controller/Product/Gallery.php    |  2 +-
 .../Catalog/Controller/Product/View.php       |  2 +-
 .../Adminhtml/Category/DeleteTest.php         |  4 ++--
 .../Adminhtml/Category/SaveTest.php           |  2 +-
 .../Category/Widget/CategoriesJsonTest.php    |  2 +-
 .../Adminhtml/Category/Widget/ChooserTest.php |  2 +-
 .../Product/Action/Attribute/SaveTest.php     |  2 +-
 .../Adminhtml/Product/Attribute/EditTest.php  |  4 ++--
 .../Adminhtml/Product/MassStatusTest.php      |  2 +-
 .../Adminhtml/Product/NewActionTest.php       |  4 ++--
 .../Controller/Adminhtml/Product/SaveTest.php |  2 +-
 .../Product/ShowUpdateResultTest.php          |  2 +-
 .../Adminhtml/Product/ValidateTest.php        |  4 ++--
 .../Unit/Controller/Category/ViewTest.php     |  2 +-
 .../Controller/Product/Compare/IndexTest.php  |  4 ++--
 .../Adminhtml/Promo/Catalog/ApplyRules.php    |  2 +-
 .../Adminhtml/Promo/Catalog/Chooser.php       |  2 +-
 .../Adminhtml/Promo/Catalog/Delete.php        |  2 +-
 .../Adminhtml/Promo/Catalog/Edit.php          |  2 +-
 .../Adminhtml/Promo/Catalog/Index.php         |  2 +-
 .../Adminhtml/Promo/Catalog/NewAction.php     |  2 +-
 .../Adminhtml/Promo/Catalog/NewActionHtml.php |  2 +-
 .../Promo/Catalog/NewConditionHtml.php        |  2 +-
 .../Adminhtml/Promo/Catalog/Save.php          |  2 +-
 .../Controller/Adminhtml/Promo/Index.php      |  2 +-
 .../Adminhtml/Promo/Widget/CategoriesJson.php |  2 +-
 .../Adminhtml/Promo/Widget/Chooser.php        |  2 +-
 .../Controller/Advanced/Index.php             |  2 +-
 .../Controller/Advanced/Result.php            |  2 +-
 .../CatalogSearch/Controller/Result/Index.php |  2 +-
 .../Unit/Controller/Advanced/ResultTest.php   |  2 +-
 .../Adminhtml/Product/Widget/Conditions.php   |  2 +-
 .../Product/Widget/ConditionsTest.php         |  2 +-
 .../Checkout/Controller/Account/Create.php    |  2 +-
 .../Magento/Checkout/Controller/Cart/Add.php  |  2 +-
 .../Checkout/Controller/Cart/Addgroup.php     |  2 +-
 .../Checkout/Controller/Cart/Configure.php    |  2 +-
 .../Checkout/Controller/Cart/CouponPost.php   |  2 +-
 .../Checkout/Controller/Cart/Delete.php       |  2 +-
 .../Checkout/Controller/Cart/EstimatePost.php |  2 +-
 .../Controller/Cart/EstimateUpdatePost.php    |  2 +-
 .../Checkout/Controller/Cart/Index.php        |  2 +-
 .../Controller/Cart/UpdateItemOptions.php     |  2 +-
 .../Checkout/Controller/Cart/UpdatePost.php   |  2 +-
 .../Checkout/Controller/Index/Index.php       |  2 +-
 .../Checkout/Controller/Noroute/Index.php     |  2 +-
 .../Magento/Checkout/Controller/Onepage.php   |  4 ++--
 .../Checkout/Controller/Onepage/Failure.php   |  2 +-
 .../Checkout/Controller/Onepage/SaveOrder.php |  2 +-
 .../Checkout/Controller/Onepage/Success.php   |  2 +-
 .../Controller/ShippingRates/Index.php        |  2 +-
 .../Controller/Sidebar/RemoveItem.php         |  2 +-
 .../Controller/Sidebar/UpdateItemQty.php      |  2 +-
 .../Unit/Controller/Account/CreateTest.php    |  4 ++--
 .../Unit/Controller/Cart/ConfigureTest.php    |  4 ++--
 .../Unit/Controller/Cart/CouponPostTest.php   | 10 +++++-----
 .../Test/Unit/Controller/Cart/IndexTest.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  6 +++---
 .../Test/Unit/Controller/OnepageTest.php      |  2 +-
 .../Controller/Sidebar/RemoveItemTest.php     |  6 +++---
 .../Controller/Sidebar/UpdateItemQtyTest.php  |  6 +++---
 .../Test/Unit/Controller/Stub/OnepageStub.php |  2 +-
 .../Controller/Adminhtml/Agreement/Delete.php |  2 +-
 .../Controller/Adminhtml/Agreement/Edit.php   |  2 +-
 .../Controller/Adminhtml/Agreement/Index.php  |  2 +-
 .../Adminhtml/Agreement/NewAction.php         |  2 +-
 .../Controller/Adminhtml/Agreement/Save.php   |  2 +-
 .../Cms/Controller/Adminhtml/Block/Delete.php |  2 +-
 .../Cms/Controller/Adminhtml/Block/Edit.php   |  2 +-
 .../Cms/Controller/Adminhtml/Block/Index.php  |  2 +-
 .../Controller/Adminhtml/Block/InlineEdit.php |  2 +-
 .../Controller/Adminhtml/Block/MassDelete.php |  2 +-
 .../Controller/Adminhtml/Block/NewAction.php  |  2 +-
 .../Cms/Controller/Adminhtml/Block/Save.php   |  2 +-
 .../Adminhtml/Block/Widget/Chooser.php        |  2 +-
 .../Cms/Controller/Adminhtml/Page/Delete.php  |  2 +-
 .../Cms/Controller/Adminhtml/Page/Edit.php    |  2 +-
 .../Cms/Controller/Adminhtml/Page/Index.php   |  2 +-
 .../Controller/Adminhtml/Page/InlineEdit.php  |  2 +-
 .../Controller/Adminhtml/Page/MassDelete.php  |  2 +-
 .../Controller/Adminhtml/Page/MassDisable.php |  2 +-
 .../Controller/Adminhtml/Page/MassEnable.php  |  2 +-
 .../Controller/Adminhtml/Page/NewAction.php   |  2 +-
 .../Cms/Controller/Adminhtml/Page/Save.php    |  2 +-
 .../Adminhtml/Page/Widget/Chooser.php         |  2 +-
 .../Adminhtml/Wysiwyg/Directive.php           |  2 +-
 .../Adminhtml/Wysiwyg/Images/Contents.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/DeleteFiles.php  |  2 +-
 .../Adminhtml/Wysiwyg/Images/DeleteFolder.php |  2 +-
 .../Adminhtml/Wysiwyg/Images/Index.php        |  2 +-
 .../Adminhtml/Wysiwyg/Images/NewFolder.php    |  2 +-
 .../Adminhtml/Wysiwyg/Images/OnInsert.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/Thumbnail.php    |  2 +-
 .../Adminhtml/Wysiwyg/Images/TreeJson.php     |  2 +-
 .../Adminhtml/Wysiwyg/Images/Upload.php       |  2 +-
 .../Cms/Controller/Index/DefaultNoRoute.php   |  2 +-
 .../Magento/Cms/Controller/Index/Index.php    |  2 +-
 .../Magento/Cms/Controller/Noroute/Index.php  |  2 +-
 app/code/Magento/Cms/Controller/Page/View.php |  2 +-
 .../Controller/Adminhtml/Block/DeleteTest.php |  6 +++---
 .../Controller/Adminhtml/Block/EditTest.php   |  4 ++--
 .../Adminhtml/Block/MassDeleteTest.php        |  2 +-
 .../Controller/Adminhtml/Block/SaveTest.php   | 10 +++++-----
 .../Controller/Adminhtml/Page/DeleteTest.php  |  6 +++---
 .../Adminhtml/Page/InlineEditTest.php         |  8 ++++----
 .../Adminhtml/Page/MassDeleteTest.php         |  2 +-
 .../Adminhtml/Page/MassDisableTest.php        |  2 +-
 .../Adminhtml/Page/MassEnableTest.php         |  2 +-
 .../Adminhtml/Wysiwyg/DirectiveTest.php       |  8 ++++----
 .../Unit/Controller/Block/InlineEditTest.php  |  4 ++--
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Unit/Controller/Noroute/IndexTest.php     |  4 ++--
 .../Test/Unit/Controller/Page/ViewTest.php    |  4 ++--
 .../Adminhtml/System/AbstractConfig.php       |  4 ++--
 .../Adminhtml/System/Config/Edit.php          |  2 +-
 .../Adminhtml/System/Config/Index.php         |  2 +-
 .../Adminhtml/System/Config/Save.php          |  2 +-
 .../Adminhtml/System/Config/State.php         |  2 +-
 .../Adminhtml/System/Config/SaveTest.php      |  8 ++++----
 .../Adminhtml/Product/AddAttribute.php        |  2 +-
 .../Adminhtml/Product/Associated/Grid.php     |  2 +-
 .../Product/Attribute/CreateOptions.php       |  2 +-
 .../Product/Attribute/GetAttributes.php       |  2 +-
 .../SuggestConfigurableAttributes.php         |  2 +-
 .../Adminhtml/Product/AddAttributeTest.php    |  2 +-
 .../SuggestConfigurableAttributesTest.php     |  2 +-
 app/code/Magento/Contact/Controller/Index.php |  4 ++--
 .../Contact/Controller/Index/Index.php        |  2 +-
 .../Magento/Contact/Controller/Index/Post.php |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  2 +-
 .../Test/Unit/Controller/Index/PostTest.php   |  6 +++---
 .../Test/Unit/Controller/IndexTest.php        |  2 +-
 .../Test/Unit/Controller/Stub/IndexStub.php   |  2 +-
 .../Cookie/Controller/Index/NoCookies.php     |  2 +-
 .../Unit/Controller/Index/NoCookiesTest.php   |  6 +++---
 .../Adminhtml/System/Currency/FetchRates.php  |  2 +-
 .../Adminhtml/System/Currency/Index.php       |  2 +-
 .../Adminhtml/System/Currency/SaveRates.php   |  2 +-
 .../Adminhtml/System/Currencysymbol/Index.php |  2 +-
 .../Adminhtml/System/Currencysymbol/Save.php  |  2 +-
 .../System/Currencysymbol/IndexTest.php       |  2 +-
 .../System/Currencysymbol/SaveTest.php        |  2 +-
 .../Customer/Controller/Account/Confirm.php   |  2 +-
 .../Controller/Account/Confirmation.php       |  2 +-
 .../Customer/Controller/Account/Create.php    |  2 +-
 .../Controller/Account/CreatePassword.php     |  2 +-
 .../Controller/Account/CreatePost.php         |  2 +-
 .../Customer/Controller/Account/Edit.php      |  2 +-
 .../Customer/Controller/Account/EditPost.php  |  2 +-
 .../Controller/Account/ForgotPassword.php     |  2 +-
 .../Controller/Account/ForgotPasswordPost.php |  2 +-
 .../Customer/Controller/Account/Index.php     |  2 +-
 .../Customer/Controller/Account/Login.php     |  2 +-
 .../Customer/Controller/Account/LoginPost.php |  2 +-
 .../Customer/Controller/Account/Logout.php    |  2 +-
 .../Controller/Account/LogoutSuccess.php      |  2 +-
 .../Controller/Account/ResetPasswordPost.php  |  2 +-
 .../Magento/Customer/Controller/Address.php   |  4 ++--
 .../Customer/Controller/Address/Delete.php    |  2 +-
 .../Customer/Controller/Address/Edit.php      |  2 +-
 .../Customer/Controller/Address/Form.php      |  2 +-
 .../Customer/Controller/Address/FormPost.php  |  2 +-
 .../Customer/Controller/Address/Index.php     |  2 +-
 .../Customer/Controller/Address/NewAction.php |  2 +-
 .../Cart/Product/Composite/Cart/Configure.php |  2 +-
 .../Cart/Product/Composite/Cart/Update.php    |  2 +-
 .../Adminhtml/Customer/InvalidateToken.php    |  2 +-
 .../Controller/Adminhtml/Group/Delete.php     |  2 +-
 .../Controller/Adminhtml/Group/Edit.php       |  2 +-
 .../Controller/Adminhtml/Group/Index.php      |  2 +-
 .../Controller/Adminhtml/Group/NewAction.php  |  2 +-
 .../Controller/Adminhtml/Group/Save.php       |  2 +-
 .../Adminhtml/Index/AbstractMassAction.php    |  2 +-
 .../Controller/Adminhtml/Index/Cart.php       |  2 +-
 .../Controller/Adminhtml/Index/Carts.php      |  2 +-
 .../Controller/Adminhtml/Index/Delete.php     |  2 +-
 .../Controller/Adminhtml/Index/Edit.php       |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Index/InlineEdit.php |  2 +-
 .../Controller/Adminhtml/Index/LastOrders.php |  2 +-
 .../Controller/Adminhtml/Index/NewAction.php  |  2 +-
 .../Controller/Adminhtml/Index/Newsletter.php |  2 +-
 .../Controller/Adminhtml/Index/Orders.php     |  2 +-
 .../Adminhtml/Index/ProductReviews.php        |  2 +-
 .../Adminhtml/Index/ResetPassword.php         |  2 +-
 .../Controller/Adminhtml/Index/Save.php       |  2 +-
 .../Controller/Adminhtml/Index/Validate.php   |  2 +-
 .../Controller/Adminhtml/Index/ViewCart.php   |  2 +-
 .../Adminhtml/Index/ViewWishlist.php          |  2 +-
 .../Controller/Adminhtml/Index/Viewfile.php   |  2 +-
 .../Controller/Adminhtml/Index/Wishlist.php   |  2 +-
 .../Controller/Adminhtml/Online/Index.php     |  2 +-
 .../System/Config/Validatevat/Validate.php    |  2 +-
 .../Config/Validatevat/ValidateAdvanced.php   |  2 +-
 .../Product/Composite/Wishlist/Configure.php  |  2 +-
 .../Product/Composite/Wishlist/Update.php     |  2 +-
 .../Customer/Controller/Ajax/Login.php        |  2 +-
 .../Customer/Controller/Ajax/Logout.php       |  2 +-
 .../Magento/Customer/Controller/Review.php    |  2 +-
 .../Customer/Controller/Section/Load.php      |  2 +-
 .../Unit/Controller/Account/ConfirmTest.php   |  8 ++++----
 .../Controller/Account/CreatePasswordTest.php |  6 +++---
 .../Controller/Account/CreatePostTest.php     |  8 ++++----
 .../Unit/Controller/Account/CreateTest.php    |  4 ++--
 .../Unit/Controller/Account/EditPostTest.php  | 10 +++++-----
 .../Account/ForgotPasswordPostTest.php        |  8 ++++----
 .../Unit/Controller/Account/LoginPostTest.php | 10 +++++-----
 .../Account/ResetPasswordPostTest.php         |  8 ++++----
 .../Unit/Controller/Address/FormPostTest.php  | 10 +++++-----
 .../Controller/Adminhtml/Index/IndexTest.php  |  8 ++++----
 .../Adminhtml/Index/InlineEditTest.php        |  8 ++++----
 .../Adminhtml/Index/MassAssignGroupTest.php   |  4 ++--
 .../Adminhtml/Index/MassDeleteTest.php        |  4 ++--
 .../Adminhtml/Index/MassSubscribeTest.php     |  4 ++--
 .../Adminhtml/Index/MassUnsubscribeTest.php   |  4 ++--
 .../Adminhtml/Index/NewsletterTest.php        |  2 +-
 .../Adminhtml/Index/ResetPasswordTest.php     | 12 +++++------
 .../Controller/Adminhtml/Index/SaveTest.php   | 20 +++++++++----------
 .../Adminhtml/Index/ValidateTest.php          |  6 +++---
 .../Adminhtml/Index/ViewfileTest.php          |  6 +++---
 .../Config/Validatevat/ValidateTest.php       |  2 +-
 .../Test/Unit/Controller/Ajax/LoginTest.php   |  4 ++--
 .../Controller/Adminhtml/Index/ExportCsv.php  |  2 +-
 .../Controller/Adminhtml/Index/ExportXml.php  |  2 +-
 .../Adminhtml/Json/CountryRegion.php          |  2 +-
 .../Controller/Currency/SwitchAction.php      |  2 +-
 .../Adminhtml/Downloadable/File/Upload.php    |  2 +-
 .../Downloadable/Product/Edit/Form.php        |  2 +-
 .../Downloadable/Product/Edit/Link.php        |  2 +-
 .../Downloadable/Product/Edit/Sample.php      |  2 +-
 .../Controller/Customer/Products.php          |  6 +++---
 .../Downloadable/Controller/Download/Link.php |  2 +-
 .../Controller/Download/LinkSample.php        |  2 +-
 .../Controller/Download/Sample.php            |  2 +-
 .../Downloadable/File/UploadTest.php          |  2 +-
 .../Downloadable/Product/Edit/LinkTest.php    |  4 ++--
 .../Downloadable/Product/Edit/SampleTest.php  |  4 ++--
 .../Controller/Download/LinkSampleTest.php    |  4 ++--
 .../Unit/Controller/Download/LinkTest.php     | 10 +++++-----
 .../Unit/Controller/Download/SampleTest.php   |  4 ++--
 .../Email/Template/DefaultTemplate.php        |  2 +-
 .../Adminhtml/Email/Template/Delete.php       |  2 +-
 .../Adminhtml/Email/Template/Edit.php         |  2 +-
 .../Adminhtml/Email/Template/Grid.php         |  2 +-
 .../Adminhtml/Email/Template/Index.php        |  2 +-
 .../Adminhtml/Email/Template/NewAction.php    |  2 +-
 .../Adminhtml/Email/Template/Preview.php      |  2 +-
 .../Adminhtml/Email/Template/Save.php         |  2 +-
 .../Adminhtml/Email/Template/EditTest.php     |  8 ++++----
 .../Adminhtml/Email/Template/IndexTest.php    |  6 +++---
 .../Controller/Adminhtml/Crypt/Key/Index.php  |  2 +-
 .../Controller/Adminhtml/Crypt/Key/Save.php   |  2 +-
 .../Adminhtml/Crypt/Key/SaveTest.php          |  6 +++---
 .../Controller/Adminhtml/Edit/Popup.php       |  2 +-
 .../Controller/Adminhtml/Edit/PopupTest.php   |  4 ++--
 .../Controller/Adminhtml/Export/Export.php    |  2 +-
 .../Controller/Adminhtml/Export/GetFilter.php |  2 +-
 .../Controller/Adminhtml/Export/Index.php     |  2 +-
 .../Controller/Adminhtml/History/Download.php |  2 +-
 .../Controller/Adminhtml/History/Index.php    |  2 +-
 .../Controller/Adminhtml/Import/Download.php  |  2 +-
 .../Controller/Adminhtml/Import/Index.php     |  2 +-
 .../Controller/Adminhtml/Import/Start.php     |  2 +-
 .../Controller/Adminhtml/Import/Validate.php  |  2 +-
 .../Adminhtml/History/DownloadTest.php        |  4 ++--
 .../Adminhtml/History/IndexTest.php           |  2 +-
 .../Adminhtml/Indexer/ListAction.php          |  2 +-
 .../Adminhtml/Indexer/MassChangelog.php       |  2 +-
 .../Adminhtml/Indexer/MassOnTheFly.php        |  2 +-
 .../Adminhtml/Indexer/ListActionTest.php      |  2 +-
 .../Adminhtml/Indexer/MassChangelogTest.php   |  2 +-
 .../Adminhtml/Indexer/MassOnTheFlyTest.php    |  2 +-
 .../Adminhtml/Integration/Delete.php          |  2 +-
 .../Controller/Adminhtml/Integration/Edit.php |  2 +-
 .../Controller/Adminhtml/Integration/Grid.php |  2 +-
 .../Adminhtml/Integration/Index.php           |  2 +-
 .../Integration/LoginSuccessCallback.php      |  2 +-
 .../Adminhtml/Integration/NewAction.php       |  2 +-
 .../Integration/PermissionsDialog.php         |  2 +-
 .../Controller/Adminhtml/Integration/Save.php |  2 +-
 .../Adminhtml/Integration/TokensDialog.php    |  2 +-
 .../Adminhtml/Integration/TokensExchange.php  |  2 +-
 .../Integration/Controller/Token/Access.php   |  2 +-
 .../Integration/Controller/Token/Request.php  |  2 +-
 .../Adminhtml/Integration/DeleteTest.php      | 12 +++++------
 .../Adminhtml/Integration/EditTest.php        |  8 ++++----
 .../Adminhtml/Integration/IndexTest.php       |  2 +-
 .../Adminhtml/Integration/NewActionTest.php   |  2 +-
 .../Integration/PermissionsDialogTest.php     |  2 +-
 .../Adminhtml/Integration/SaveTest.php        | 10 +++++-----
 .../Integration/TokensDialogTest.php          |  4 ++--
 .../Test/Unit/Controller/Token/AccessTest.php |  2 +-
 .../Unit/Controller/Token/RequestTest.php     |  2 +-
 .../Controller/Adminhtml/Index/Index.php      |  2 +-
 .../Controller/Adminhtml/Partners/Index.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Unit/Controller/Partners/IndexTest.php    |  4 ++--
 .../System/Config/System/Storage/Status.php   |  2 +-
 .../Config/System/Storage/Synchronize.php     |  2 +-
 .../Multishipping/Controller/Checkout.php     | 14 ++++++-------
 .../Controller/Checkout/Address.php           |  4 ++--
 .../Checkout/Address/EditAddress.php          |  2 +-
 .../Checkout/Address/EditBilling.php          |  2 +-
 .../Checkout/Address/EditShipping.php         |  2 +-
 .../Checkout/Address/EditShippingPost.php     |  2 +-
 .../Checkout/Address/NewBilling.php           |  2 +-
 .../Checkout/Address/NewShipping.php          |  2 +-
 .../Checkout/Address/SaveBilling.php          |  2 +-
 .../Checkout/Address/SelectBilling.php        |  2 +-
 .../Checkout/Address/SetBilling.php           |  2 +-
 .../Checkout/Address/ShippingSaved.php        |  2 +-
 .../Controller/Checkout/Addresses.php         |  2 +-
 .../Controller/Checkout/AddressesPost.php     |  2 +-
 .../Controller/Checkout/BackToAddresses.php   |  2 +-
 .../Controller/Checkout/BackToBilling.php     |  2 +-
 .../Controller/Checkout/BackToShipping.php    |  2 +-
 .../Controller/Checkout/Billing.php           |  2 +-
 .../Controller/Checkout/Index.php             |  2 +-
 .../Controller/Checkout/Login.php             |  2 +-
 .../Controller/Checkout/Overview.php          |  2 +-
 .../Controller/Checkout/OverviewPost.php      |  2 +-
 .../Controller/Checkout/Register.php          |  2 +-
 .../Controller/Checkout/RemoveItem.php        |  2 +-
 .../Controller/Checkout/Shipping.php          |  2 +-
 .../Controller/Checkout/ShippingPost.php      |  2 +-
 .../Controller/Checkout/Success.php           |  2 +-
 .../Checkout/Address/EditAddressTest.php      |  4 ++--
 .../Checkout/Address/EditBillingTest.php      |  4 ++--
 .../Checkout/Address/EditShippingTest.php     |  4 ++--
 .../Checkout/Address/NewBillingTest.php       |  4 ++--
 .../Checkout/Address/NewShippingTest.php      |  4 ++--
 .../Checkout/Address/ShippingSavedTest.php    |  4 ++--
 .../Controller/Adminhtml/Problem/Grid.php     |  2 +-
 .../Controller/Adminhtml/Problem/Index.php    |  2 +-
 .../Controller/Adminhtml/Queue/Cancel.php     |  2 +-
 .../Controller/Adminhtml/Queue/Drop.php       |  2 +-
 .../Controller/Adminhtml/Queue/Edit.php       |  2 +-
 .../Controller/Adminhtml/Queue/Grid.php       |  2 +-
 .../Controller/Adminhtml/Queue/Index.php      |  2 +-
 .../Controller/Adminhtml/Queue/Pause.php      |  2 +-
 .../Controller/Adminhtml/Queue/Preview.php    |  2 +-
 .../Controller/Adminhtml/Queue/Resume.php     |  2 +-
 .../Controller/Adminhtml/Queue/Save.php       |  2 +-
 .../Controller/Adminhtml/Queue/Sending.php    |  2 +-
 .../Controller/Adminhtml/Queue/Start.php      |  2 +-
 .../Adminhtml/Subscriber/ExportCsv.php        |  2 +-
 .../Adminhtml/Subscriber/ExportXml.php        |  2 +-
 .../Controller/Adminhtml/Subscriber/Grid.php  |  2 +-
 .../Controller/Adminhtml/Subscriber/Index.php |  2 +-
 .../Adminhtml/Subscriber/MassDelete.php       |  2 +-
 .../Adminhtml/Subscriber/MassUnsubscribe.php  |  2 +-
 .../Controller/Adminhtml/Template/Delete.php  |  2 +-
 .../Controller/Adminhtml/Template/Drop.php    |  2 +-
 .../Controller/Adminhtml/Template/Edit.php    |  2 +-
 .../Controller/Adminhtml/Template/Grid.php    |  2 +-
 .../Controller/Adminhtml/Template/Index.php   |  2 +-
 .../Adminhtml/Template/NewAction.php          |  2 +-
 .../Controller/Adminhtml/Template/Preview.php |  2 +-
 .../Controller/Adminhtml/Template/Save.php    |  2 +-
 .../Magento/Newsletter/Controller/Manage.php  |  4 ++--
 .../Newsletter/Controller/Manage/Index.php    |  2 +-
 .../Newsletter/Controller/Manage/Save.php     |  2 +-
 .../Controller/Subscriber/Confirm.php         |  2 +-
 .../Controller/Subscriber/NewAction.php       |  2 +-
 .../Controller/Subscriber/Unsubscribe.php     |  2 +-
 .../Test/Unit/Controller/Manage/SaveTest.php  |  6 +++---
 .../System/Config/ExportTablerates.php        |  2 +-
 .../PageCache/ExportVarnishConfig.php         |  2 +-
 .../PageCache/Controller/Block/Esi.php        |  2 +-
 .../PageCache/Controller/Block/Render.php     |  2 +-
 .../PageCache/ExportVarnishConfigTest.php     |  2 +-
 .../Test/Unit/Controller/Block/EsiTest.php    |  4 ++--
 .../Test/Unit/Controller/Block/RenderTest.php |  6 +++---
 .../Adminhtml/Billing/Agreement/Cancel.php    |  2 +-
 .../Billing/Agreement/CustomerGrid.php        |  2 +-
 .../Adminhtml/Billing/Agreement/Delete.php    |  2 +-
 .../Adminhtml/Billing/Agreement/Grid.php      |  2 +-
 .../Adminhtml/Billing/Agreement/Index.php     |  2 +-
 .../Billing/Agreement/OrdersGrid.php          |  2 +-
 .../Adminhtml/Billing/Agreement/View.php      |  2 +-
 .../Adminhtml/Paypal/Reports/Details.php      |  2 +-
 .../Adminhtml/Paypal/Reports/Fetch.php        |  2 +-
 .../Adminhtml/Paypal/Reports/Grid.php         |  2 +-
 .../Adminhtml/Paypal/Reports/Index.php        |  2 +-
 .../Paypal/Controller/Billing/Agreement.php   |  6 +++---
 .../Controller/Billing/Agreement/Cancel.php   |  2 +-
 .../Billing/Agreement/CancelWizard.php        |  2 +-
 .../Controller/Billing/Agreement/Index.php    |  2 +-
 .../Billing/Agreement/ReturnWizard.php        |  2 +-
 .../Billing/Agreement/StartWizard.php         |  2 +-
 .../Controller/Billing/Agreement/View.php     |  2 +-
 .../Magento/Paypal/Controller/Bml/Start.php   |  2 +-
 .../Express/AbstractExpress/Cancel.php        |  2 +-
 .../Express/AbstractExpress/Edit.php          |  2 +-
 .../Express/AbstractExpress/PlaceOrder.php    |  2 +-
 .../Express/AbstractExpress/ReturnAction.php  |  2 +-
 .../Express/AbstractExpress/Review.php        |  2 +-
 .../AbstractExpress/SaveShippingMethod.php    |  2 +-
 .../ShippingOptionsCallback.php               |  2 +-
 .../Express/AbstractExpress/Start.php         |  2 +-
 .../AbstractExpress/UpdateShippingMethods.php |  2 +-
 .../Paypal/Controller/Hostedpro/Cancel.php    |  2 +-
 .../Paypal/Controller/Hostedpro/Redirect.php  |  2 +-
 .../Controller/Hostedpro/ReturnAction.php     |  2 +-
 .../Magento/Paypal/Controller/Ipn/Index.php   |  2 +-
 .../Controller/Payflow/CancelPayment.php      |  2 +-
 .../Paypal/Controller/Payflow/Form.php        |  2 +-
 .../Paypal/Controller/Payflow/ReturnUrl.php   |  2 +-
 .../Paypal/Controller/Payflow/SilentPost.php  |  2 +-
 .../Paypal/Controller/Payflowbml/Start.php    |  2 +-
 .../Transparent/RequestSecureToken.php        |  2 +-
 .../Controller/Transparent/Response.php       |  2 +-
 .../Billing/Agreement/CancelTest.php          |  6 +++---
 .../Unit/Controller/Payflow/ReturnUrlTest.php |  4 ++--
 .../Transparent/RequestSecureTokenTest.php    |  6 +++---
 .../Controller/Transparent/ResponseTest.php   |  4 ++--
 .../Controller/Index/ExpressCheckout.php      |  2 +-
 .../Controller/Index/SaveMethod.php           |  2 +-
 .../Controller/Index/UnsetCookie.php          |  2 +-
 .../Magento/ProductAlert/Controller/Add.php   |  4 ++--
 .../ProductAlert/Controller/Add/Price.php     |  2 +-
 .../ProductAlert/Controller/Add/Stock.php     |  2 +-
 .../Controller/Add/TestObserver.php           |  2 +-
 .../Controller/Unsubscribe/Price.php          |  2 +-
 .../Controller/Unsubscribe/PriceAll.php       |  2 +-
 .../Controller/Unsubscribe/Stock.php          |  2 +-
 .../Controller/Unsubscribe/StockAll.php       |  2 +-
 .../Product/Gallery/RetrieveImage.php         |  2 +-
 .../Product/Gallery/RetrieveImageTest.php     |  2 +-
 .../Adminhtml/Report/Customer/Accounts.php    |  2 +-
 .../Report/Customer/ExportAccountsCsv.php     |  2 +-
 .../Report/Customer/ExportAccountsExcel.php   |  2 +-
 .../Report/Customer/ExportOrdersCsv.php       |  2 +-
 .../Report/Customer/ExportOrdersExcel.php     |  2 +-
 .../Report/Customer/ExportTotalsCsv.php       |  2 +-
 .../Report/Customer/ExportTotalsExcel.php     |  2 +-
 .../Adminhtml/Report/Customer/Orders.php      |  2 +-
 .../Adminhtml/Report/Customer/Totals.php      |  2 +-
 .../Adminhtml/Report/Product/Downloads.php    |  2 +-
 .../Report/Product/ExportDownloadsCsv.php     |  2 +-
 .../Report/Product/ExportDownloadsExcel.php   |  2 +-
 .../Report/Product/ExportLowstockCsv.php      |  2 +-
 .../Report/Product/ExportLowstockExcel.php    |  2 +-
 .../Report/Product/ExportSoldCsv.php          |  2 +-
 .../Report/Product/ExportSoldExcel.php        |  2 +-
 .../Report/Product/ExportViewedCsv.php        |  2 +-
 .../Report/Product/ExportViewedExcel.php      |  2 +-
 .../Adminhtml/Report/Product/Lowstock.php     |  2 +-
 .../Adminhtml/Report/Product/Sold.php         |  2 +-
 .../Adminhtml/Report/Product/Viewed.php       |  2 +-
 .../Adminhtml/Report/Review/Customer.php      |  2 +-
 .../Report/Review/ExportCustomerCsv.php       |  2 +-
 .../Report/Review/ExportCustomerExcel.php     |  2 +-
 .../Report/Review/ExportProductCsv.php        |  2 +-
 .../Report/Review/ExportProductDetailCsv.php  |  2 +-
 .../Review/ExportProductDetailExcel.php       |  2 +-
 .../Report/Review/ExportProductExcel.php      |  2 +-
 .../Adminhtml/Report/Review/Product.php       |  2 +-
 .../Adminhtml/Report/Review/ProductDetail.php |  2 +-
 .../Adminhtml/Report/Sales/Bestsellers.php    |  2 +-
 .../Adminhtml/Report/Sales/Coupons.php        |  2 +-
 .../Report/Sales/ExportBestsellersCsv.php     |  2 +-
 .../Report/Sales/ExportBestsellersExcel.php   |  2 +-
 .../Report/Sales/ExportCouponsCsv.php         |  2 +-
 .../Report/Sales/ExportCouponsExcel.php       |  2 +-
 .../Report/Sales/ExportInvoicedCsv.php        |  2 +-
 .../Report/Sales/ExportInvoicedExcel.php      |  2 +-
 .../Report/Sales/ExportRefundedCsv.php        |  2 +-
 .../Report/Sales/ExportRefundedExcel.php      |  2 +-
 .../Adminhtml/Report/Sales/ExportSalesCsv.php |  2 +-
 .../Report/Sales/ExportSalesExcel.php         |  2 +-
 .../Report/Sales/ExportShippingCsv.php        |  2 +-
 .../Report/Sales/ExportShippingExcel.php      |  2 +-
 .../Adminhtml/Report/Sales/ExportTaxCsv.php   |  2 +-
 .../Adminhtml/Report/Sales/ExportTaxExcel.php |  2 +-
 .../Adminhtml/Report/Sales/Invoiced.php       |  2 +-
 .../Report/Sales/RefreshLifetime.php          |  2 +-
 .../Adminhtml/Report/Sales/RefreshRecent.php  |  2 +-
 .../Report/Sales/RefreshStatistics.php        |  2 +-
 .../Adminhtml/Report/Sales/Refunded.php       |  2 +-
 .../Adminhtml/Report/Sales/Sales.php          |  2 +-
 .../Adminhtml/Report/Sales/Shipping.php       |  2 +-
 .../Controller/Adminhtml/Report/Sales/Tax.php |  2 +-
 .../Adminhtml/Report/Shopcart/Abandoned.php   |  2 +-
 .../Adminhtml/Report/Shopcart/Customer.php    |  2 +-
 .../Report/Shopcart/ExportAbandonedCsv.php    |  2 +-
 .../Report/Shopcart/ExportAbandonedExcel.php  |  2 +-
 .../Report/Shopcart/ExportCustomerCsv.php     |  2 +-
 .../Report/Shopcart/ExportCustomerExcel.php   |  2 +-
 .../Report/Shopcart/ExportProductCsv.php      |  2 +-
 .../Report/Shopcart/ExportProductExcel.php    |  2 +-
 .../Adminhtml/Report/Shopcart/Product.php     |  2 +-
 .../Adminhtml/Report/Statistics/Index.php     |  2 +-
 .../Report/Statistics/RefreshLifetime.php     |  2 +-
 .../Report/Statistics/RefreshRecent.php       |  2 +-
 .../Report/Customer/AccountsTest.php          |  2 +-
 .../Report/Customer/ExportAccountsCsvTest.php |  2 +-
 .../Customer/ExportAccountsExcelTest.php      |  2 +-
 .../Report/Customer/ExportOrdersCsvTest.php   |  2 +-
 .../Report/Customer/ExportOrdersExcelTest.php |  2 +-
 .../Report/Customer/ExportTotalsCsvTest.php   |  2 +-
 .../Report/Customer/ExportTotalsExcelTest.php |  2 +-
 .../Adminhtml/Report/Customer/OrdersTest.php  |  2 +-
 .../Adminhtml/Report/Customer/TotalsTest.php  |  2 +-
 .../Report/Product/DownloadsTest.php          |  2 +-
 .../Report/Product/ExportDownloadsCsvTest.php |  2 +-
 .../Product/ExportDownloadsExcelTest.php      |  2 +-
 .../Report/Product/ExportLowstockCsvTest.php  |  2 +-
 .../Product/ExportLowstockExcelTest.php       |  2 +-
 .../Report/Product/ExportSoldCsvTest.php      |  2 +-
 .../Report/Product/ExportSoldExcelTest.php    |  2 +-
 .../Report/Product/ExportViewedCsvTest.php    |  2 +-
 .../Report/Product/ExportViewedExcelTest.php  |  2 +-
 .../Adminhtml/Report/Product/LowstockTest.php |  2 +-
 .../Adminhtml/Report/Product/SoldTest.php     |  2 +-
 .../Adminhtml/Report/Product/ViewedTest.php   |  6 +++---
 .../Controller/Adminhtml/Product/Delete.php   |  2 +-
 .../Controller/Adminhtml/Product/Edit.php     |  2 +-
 .../Controller/Adminhtml/Product/Index.php    |  2 +-
 .../Adminhtml/Product/JsonProductInfo.php     |  2 +-
 .../Adminhtml/Product/MassDelete.php          |  2 +-
 .../Adminhtml/Product/MassUpdateStatus.php    |  2 +-
 .../Adminhtml/Product/MassVisibleIn.php       |  2 +-
 .../Adminhtml/Product/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Product/Pending.php  |  2 +-
 .../Controller/Adminhtml/Product/Post.php     |  2 +-
 .../Adminhtml/Product/ProductGrid.php         |  2 +-
 .../Adminhtml/Product/RatingItems.php         |  2 +-
 .../Adminhtml/Product/ReviewGrid.php          |  2 +-
 .../Adminhtml/Product/Reviews/Grid.php        |  2 +-
 .../Controller/Adminhtml/Product/Save.php     |  2 +-
 .../Controller/Adminhtml/Rating/Delete.php    |  2 +-
 .../Controller/Adminhtml/Rating/Edit.php      |  2 +-
 .../Controller/Adminhtml/Rating/Index.php     |  2 +-
 .../Controller/Adminhtml/Rating/NewAction.php |  2 +-
 .../Controller/Adminhtml/Rating/Save.php      |  2 +-
 .../Magento/Review/Controller/Customer.php    |  4 ++--
 .../Review/Controller/Customer/Index.php      |  2 +-
 .../Review/Controller/Customer/View.php       |  2 +-
 .../Magento/Review/Controller/Product.php     |  6 +++---
 .../Review/Controller/Product/ListAction.php  |  2 +-
 .../Review/Controller/Product/ListAjax.php    |  2 +-
 .../Review/Controller/Product/Post.php        |  2 +-
 .../Review/Controller/Product/View.php        |  2 +-
 .../Controller/Adminhtml/Product/PostTest.php |  2 +-
 .../Test/Unit/Controller/Product/PostTest.php |  2 +-
 .../Rss/Controller/Adminhtml/Feed/Index.php   |  2 +-
 .../Magento/Rss/Controller/Feed/Index.php     |  2 +-
 .../Magento/Rss/Controller/Index/Index.php    |  2 +-
 .../Controller/Adminhtml/Feed/IndexTest.php   |  4 ++--
 .../Test/Unit/Controller/Feed/IndexTest.php   |  4 ++--
 .../AbstractController/PrintAction.php        |  2 +-
 .../AbstractController/PrintCreditmemo.php    |  2 +-
 .../AbstractController/PrintInvoice.php       |  2 +-
 .../AbstractController/PrintShipment.php      |  2 +-
 .../Controller/AbstractController/Reorder.php |  2 +-
 .../Controller/AbstractController/View.php    |  2 +-
 .../Creditmemo/AbstractCreditmemo/Email.php   |  2 +-
 .../Creditmemo/AbstractCreditmemo/Grid.php    |  2 +-
 .../Creditmemo/AbstractCreditmemo/Index.php   |  2 +-
 .../AbstractCreditmemo/PrintAction.php        |  2 +-
 .../Creditmemo/AbstractCreditmemo/View.php    |  2 +-
 .../Controller/Adminhtml/Creditmemo/Index.php |  4 ++--
 .../Invoice/AbstractInvoice/Email.php         |  2 +-
 .../Invoice/AbstractInvoice/Grid.php          |  2 +-
 .../Invoice/AbstractInvoice/Index.php         |  2 +-
 .../Invoice/AbstractInvoice/PrintAction.php   |  2 +-
 .../Invoice/AbstractInvoice/View.php          |  2 +-
 .../Adminhtml/Order/AbstractMassAction.php    |  2 +-
 .../Controller/Adminhtml/Order/AddComment.php |  2 +-
 .../Controller/Adminhtml/Order/Address.php    |  2 +-
 .../Adminhtml/Order/AddressSave.php           |  2 +-
 .../Controller/Adminhtml/Order/Cancel.php     |  2 +-
 .../Adminhtml/Order/CommentsHistory.php       |  2 +-
 .../Adminhtml/Order/Create/AddConfigured.php  |  2 +-
 .../Adminhtml/Order/Create/Cancel.php         |  2 +-
 .../Order/Create/ConfigureProductToAdd.php    |  2 +-
 .../Order/Create/ConfigureQuoteItems.php      |  2 +-
 .../Adminhtml/Order/Create/Index.php          |  2 +-
 .../Adminhtml/Order/Create/LoadBlock.php      |  2 +-
 .../Adminhtml/Order/Create/ProcessData.php    |  2 +-
 .../Adminhtml/Order/Create/Reorder.php        |  2 +-
 .../Adminhtml/Order/Create/Save.php           |  2 +-
 .../Order/Create/ShowUpdateResult.php         |  2 +-
 .../Adminhtml/Order/Create/Start.php          |  2 +-
 .../Adminhtml/Order/Creditmemo/AddComment.php |  2 +-
 .../Adminhtml/Order/Creditmemo/Cancel.php     |  2 +-
 .../Adminhtml/Order/Creditmemo/NewAction.php  |  2 +-
 .../Order/Creditmemo/PrintAction.php          |  4 ++--
 .../Adminhtml/Order/Creditmemo/Save.php       |  2 +-
 .../Adminhtml/Order/Creditmemo/Start.php      |  2 +-
 .../Adminhtml/Order/Creditmemo/UpdateQty.php  |  2 +-
 .../Adminhtml/Order/Creditmemo/View.php       |  2 +-
 .../Adminhtml/Order/Creditmemo/Void.php       |  2 +-
 .../Adminhtml/Order/Creditmemos.php           |  2 +-
 .../Controller/Adminhtml/Order/Edit/Index.php |  2 +-
 .../Controller/Adminhtml/Order/Edit/Start.php |  2 +-
 .../Controller/Adminhtml/Order/Email.php      |  2 +-
 .../Sales/Controller/Adminhtml/Order/Grid.php |  2 +-
 .../Sales/Controller/Adminhtml/Order/Hold.php |  2 +-
 .../Controller/Adminhtml/Order/Index.php      |  2 +-
 .../Adminhtml/Order/Invoice/AddComment.php    |  2 +-
 .../Adminhtml/Order/Invoice/Cancel.php        |  2 +-
 .../Adminhtml/Order/Invoice/Capture.php       |  2 +-
 .../Adminhtml/Order/Invoice/NewAction.php     |  2 +-
 .../Adminhtml/Order/Invoice/Save.php          |  2 +-
 .../Adminhtml/Order/Invoice/Start.php         |  2 +-
 .../Adminhtml/Order/Invoice/UpdateQty.php     |  2 +-
 .../Adminhtml/Order/Invoice/View.php          |  2 +-
 .../Adminhtml/Order/Invoice/Void.php          |  2 +-
 .../Controller/Adminhtml/Order/Invoices.php   |  2 +-
 .../Adminhtml/Order/ReviewPayment.php         |  2 +-
 .../Controller/Adminhtml/Order/Shipments.php  |  2 +-
 .../Adminhtml/Order/Status/Assign.php         |  2 +-
 .../Adminhtml/Order/Status/AssignPost.php     |  2 +-
 .../Adminhtml/Order/Status/Edit.php           |  2 +-
 .../Adminhtml/Order/Status/Index.php          |  2 +-
 .../Adminhtml/Order/Status/NewAction.php      |  2 +-
 .../Adminhtml/Order/Status/Save.php           |  2 +-
 .../Adminhtml/Order/Status/Unassign.php       |  2 +-
 .../Adminhtml/Order/Transactions.php          |  2 +-
 .../Controller/Adminhtml/Order/Unhold.php     |  2 +-
 .../Sales/Controller/Adminhtml/Order/View.php |  2 +-
 .../Adminhtml/Order/View/Giftmessage/Save.php |  2 +-
 .../Adminhtml/Order/VoidPayment.php           |  2 +-
 .../Shipment/AbstractShipment/Index.php       |  2 +-
 .../Shipment/AbstractShipment/PrintAction.php |  2 +-
 .../Shipment/AbstractShipment/View.php        |  2 +-
 .../Adminhtml/Transactions/Fetch.php          |  2 +-
 .../Adminhtml/Transactions/Grid.php           |  2 +-
 .../Adminhtml/Transactions/Index.php          |  2 +-
 .../Adminhtml/Transactions/View.php           |  2 +-
 .../Download/DownloadCustomOption.php         |  2 +-
 .../Magento/Sales/Controller/Guest/Form.php   |  2 +-
 .../Controller/Guest/PrintCreditmemo.php      |  2 +-
 .../Sales/Controller/Guest/PrintInvoice.php   |  2 +-
 .../Sales/Controller/Guest/PrintShipment.php  |  2 +-
 .../Magento/Sales/Controller/Guest/View.php   |  2 +-
 .../Sales/Controller/Order/History.php        |  2 +-
 .../AbstractCreditmemo/EmailTest.php          |  4 ++--
 .../Invoice/AbstractInvoice/EmailTest.php     |  6 +++---
 .../Controller/Adminhtml/Order/CancelTest.php |  2 +-
 .../Order/Create/ProcessDataTest.php          |  2 +-
 .../Order/Creditmemo/AddCommentTest.php       |  8 ++++----
 .../Adminhtml/Order/Creditmemo/CancelTest.php |  8 ++++----
 .../Order/Creditmemo/NewActionTest.php        |  2 +-
 .../Order/Creditmemo/PrintActionTest.php      |  8 ++++----
 .../Order/Creditmemo/UpdateQtyTest.php        |  6 +++---
 .../Adminhtml/Order/Creditmemo/ViewTest.php   |  4 ++--
 .../Adminhtml/Order/Creditmemo/VoidTest.php   |  8 ++++----
 .../Controller/Adminhtml/Order/EmailTest.php  |  4 ++--
 .../Controller/Adminhtml/Order/HoldTest.php   |  2 +-
 .../Order/Invoice/AddCommentTest.php          |  6 +++---
 .../Adminhtml/Order/Invoice/CancelTest.php    |  8 ++++----
 .../Adminhtml/Order/Invoice/CaptureTest.php   |  8 ++++----
 .../Adminhtml/Order/Invoice/NewActionTest.php |  4 ++--
 .../Order/Invoice/PrintActionTest.php         |  2 +-
 .../Adminhtml/Order/Invoice/SaveTest.php      |  2 +-
 .../Adminhtml/Order/Invoice/UpdateQtyTest.php |  6 +++---
 .../Adminhtml/Order/Invoice/ViewTest.php      |  4 ++--
 .../Adminhtml/Order/Invoice/VoidTest.php      |  6 +++---
 .../Adminhtml/Order/MassCancelTest.php        |  6 +++---
 .../Adminhtml/Order/MassHoldTest.php          |  4 ++--
 .../Adminhtml/Order/MassUnholdTest.php        |  4 ++--
 .../Adminhtml/Order/ReviewPaymentTest.php     |  2 +-
 .../Controller/Adminhtml/Order/UnholdTest.php |  2 +-
 .../Controller/Adminhtml/Order/ViewTest.php   | 12 +++++------
 .../Download/DownloadCustomOptionTest.php     |  4 ++--
 .../Test/Unit/Controller/Guest/ViewTest.php   |  4 ++--
 .../Adminhtml/Promo/Quote/ApplyRules.php      |  2 +-
 .../Adminhtml/Promo/Quote/Chooser.php         |  2 +-
 .../Adminhtml/Promo/Quote/CouponsGrid.php     |  2 +-
 .../Promo/Quote/CouponsMassDelete.php         |  2 +-
 .../Adminhtml/Promo/Quote/Delete.php          |  2 +-
 .../Controller/Adminhtml/Promo/Quote/Edit.php |  2 +-
 .../Promo/Quote/ExportCouponsCsv.php          |  2 +-
 .../Promo/Quote/ExportCouponsXml.php          |  2 +-
 .../Adminhtml/Promo/Quote/Generate.php        |  2 +-
 .../Adminhtml/Promo/Quote/Index.php           |  2 +-
 .../Adminhtml/Promo/Quote/NewAction.php       |  2 +-
 .../Adminhtml/Promo/Quote/NewActionHtml.php   |  2 +-
 .../Promo/Quote/NewConditionHtml.php          |  2 +-
 .../Controller/Adminhtml/Promo/Quote/Save.php |  2 +-
 .../Controller/Adminhtml/Term/Delete.php      |  2 +-
 .../Search/Controller/Adminhtml/Term/Edit.php |  2 +-
 .../Adminhtml/Term/ExportSearchCsv.php        |  2 +-
 .../Adminhtml/Term/ExportSearchExcel.php      |  2 +-
 .../Controller/Adminhtml/Term/Index.php       |  2 +-
 .../Controller/Adminhtml/Term/MassDelete.php  |  2 +-
 .../Controller/Adminhtml/Term/NewAction.php   |  2 +-
 .../Controller/Adminhtml/Term/Report.php      |  2 +-
 .../Search/Controller/Adminhtml/Term/Save.php |  2 +-
 .../Search/Controller/Ajax/Suggest.php        |  2 +-
 .../Search/Controller/Term/Popular.php        |  6 +++---
 .../Controller/Adminhtml/Ajax/SuggestTest.php |  4 ++--
 .../Adminhtml/Term/MassDeleteTest.php         |  2 +-
 .../Controller/Adminhtml/Term/SaveTest.php    | 12 +++++------
 .../Magento/SendFriend/Controller/Product.php |  4 ++--
 .../SendFriend/Controller/Product/Send.php    |  2 +-
 .../Controller/Product/Sendmail.php           |  2 +-
 .../Test/Unit/Controller/Product/SendTest.php | 12 +++++------
 .../Unit/Controller/Product/SendmailTest.php  | 16 +++++++--------
 .../Adminhtml/Order/Shipment/AddComment.php   |  2 +-
 .../Adminhtml/Order/Shipment/AddTrack.php     |  2 +-
 .../Adminhtml/Order/Shipment/CreateLabel.php  |  2 +-
 .../Adminhtml/Order/Shipment/Email.php        |  2 +-
 .../Order/Shipment/GetShippingItemsGrid.php   |  2 +-
 .../Adminhtml/Order/Shipment/NewAction.php    |  2 +-
 .../Adminhtml/Order/Shipment/PrintLabel.php   |  2 +-
 .../Adminhtml/Order/Shipment/PrintPackage.php |  2 +-
 .../Adminhtml/Order/Shipment/RemoveTrack.php  |  2 +-
 .../Adminhtml/Order/Shipment/Save.php         |  2 +-
 .../Adminhtml/Order/Shipment/Start.php        |  2 +-
 .../Adminhtml/Order/Shipment/View.php         |  2 +-
 .../Shipping/Controller/Tracking/Popup.php    |  2 +-
 .../Order/Shipment/AddCommentTest.php         |  8 ++++----
 .../Adminhtml/Order/Shipment/AddTrackTest.php |  2 +-
 .../Order/Shipment/CreateLabelTest.php        |  8 ++++----
 .../Adminhtml/Order/Shipment/EmailTest.php    |  2 +-
 .../Shipment/GetShippingItemsGridTest.php     |  2 +-
 .../Order/Shipment/NewActionTest.php          |  2 +-
 .../Order/Shipment/PrintLabelTest.php         |  8 ++++----
 .../Order/Shipment/PrintPackageTest.php       |  4 ++--
 .../Order/Shipment/RemoveTrackTest.php        |  8 ++++----
 .../Adminhtml/Order/Shipment/SaveTest.php     |  4 ++--
 .../Adminhtml/Order/Shipment/ViewTest.php     |  4 ++--
 .../Controller/Adminhtml/Sitemap/Delete.php   |  2 +-
 .../Controller/Adminhtml/Sitemap/Edit.php     |  2 +-
 .../Controller/Adminhtml/Sitemap/Generate.php |  2 +-
 .../Controller/Adminhtml/Sitemap/Index.php    |  2 +-
 .../Adminhtml/Sitemap/NewAction.php           |  2 +-
 .../Controller/Adminhtml/Sitemap/Save.php     |  2 +-
 .../Controller/Adminhtml/Sitemap/SaveTest.php |  4 ++--
 .../Store/Controller/Store/SwitchAction.php   |  2 +-
 .../Swagger/Controller/Index/Index.php        |  2 +-
 .../Controller/Adminhtml/Iframe/Show.php      |  2 +-
 .../Swatches/Controller/Ajax/Media.php        |  2 +-
 .../Controller/Adminhtml/Iframe/ShowTest.php  |  4 ++--
 .../Test/Unit/Controller/Ajax/MediaTest.php   |  4 ++--
 .../Tax/Controller/Adminhtml/Rate/Add.php     |  2 +-
 .../Controller/Adminhtml/Rate/AjaxDelete.php  |  2 +-
 .../Controller/Adminhtml/Rate/AjaxLoad.php    |  2 +-
 .../Controller/Adminhtml/Rate/AjaxSave.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Delete.php  |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Edit.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Index.php   |  2 +-
 .../Tax/Controller/Adminhtml/Rate/Save.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Delete.php  |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Edit.php    |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Index.php   |  2 +-
 .../Controller/Adminhtml/Rule/NewAction.php   |  2 +-
 .../Tax/Controller/Adminhtml/Rule/Save.php    |  2 +-
 .../Controller/Adminhtml/Tax/AjaxDelete.php   |  2 +-
 .../Tax/Controller/Adminhtml/Tax/AjaxSave.php |  2 +-
 .../Adminhtml/Tax/IgnoreTaxNotification.php   |  2 +-
 .../Controller/Adminhtml/Rate/ExportCsv.php   |  2 +-
 .../Controller/Adminhtml/Rate/ExportPost.php  |  2 +-
 .../Controller/Adminhtml/Rate/ExportXml.php   |  2 +-
 .../Adminhtml/Rate/ImportExport.php           |  2 +-
 .../Controller/Adminhtml/Rate/ImportPost.php  |  2 +-
 .../Adminhtml/System/Design/Theme/Delete.php  |  2 +-
 .../System/Design/Theme/DownloadCss.php       |  2 +-
 .../System/Design/Theme/DownloadCustomCss.php |  2 +-
 .../Adminhtml/System/Design/Theme/Edit.php    |  2 +-
 .../Adminhtml/System/Design/Theme/Grid.php    |  2 +-
 .../Adminhtml/System/Design/Theme/Index.php   |  2 +-
 .../System/Design/Theme/NewAction.php         |  2 +-
 .../Adminhtml/System/Design/Theme/Save.php    |  2 +-
 .../System/Design/Theme/UploadCss.php         |  2 +-
 .../System/Design/Theme/UploadJs.php          |  2 +-
 .../System/Design/Wysiwyg/Files/Contents.php  |  2 +-
 .../Design/Wysiwyg/Files/DeleteFiles.php      |  2 +-
 .../Design/Wysiwyg/Files/DeleteFolder.php     |  2 +-
 .../System/Design/Wysiwyg/Files/Index.php     |  2 +-
 .../System/Design/Wysiwyg/Files/NewFolder.php |  2 +-
 .../System/Design/Wysiwyg/Files/OnInsert.php  |  2 +-
 .../Design/Wysiwyg/Files/PreviewImage.php     |  2 +-
 .../System/Design/Wysiwyg/Files/TreeJson.php  |  2 +-
 .../System/Design/Wysiwyg/Files/Upload.php    |  2 +-
 .../System/Design/Theme/DeleteTest.php        |  6 +++---
 .../System/Design/Theme/DownloadCssTest.php   |  4 ++--
 .../Design/Theme/DownloadCustomCssTest.php    |  4 ++--
 .../System/Design/Theme/EditTest.php          |  6 +++---
 .../System/Design/Theme/IndexTest.php         |  2 +-
 .../System/Design/Theme/SaveTest.php          |  2 +-
 .../System/Design/Theme/UploadCssTest.php     |  6 +++---
 .../System/Design/Theme/UploadJsTest.php      |  6 +++---
 .../Design/Wysiwyg/Files/ContentsTest.php     |  2 +-
 .../Design/Wysiwyg/Files/DeleteFilesTest.php  |  4 ++--
 .../Design/Wysiwyg/Files/DeleteFolderTest.php |  2 +-
 .../System/Design/Wysiwyg/Files/IndexTest.php |  2 +-
 .../Design/Wysiwyg/Files/OnInsertTest.php     |  2 +-
 .../Translation/Controller/Ajax/Index.php     |  2 +-
 .../Controller/Adminhtml/AbstractAction.php   |  2 +-
 .../Controller/Adminhtml/Bookmark/Delete.php  |  2 +-
 .../Ui/Controller/Adminhtml/Bookmark/Save.php |  2 +-
 .../Controller/Adminhtml/Export/GridToCsv.php |  2 +-
 .../Controller/Adminhtml/Export/GridToXml.php |  2 +-
 .../Ui/Controller/Adminhtml/Index/Render.php  |  2 +-
 .../Adminhtml/Export/GridToCsvTest.php        |  2 +-
 .../Adminhtml/Export/GridToXmlTest.php        |  2 +-
 .../Adminhtml/Url/Rewrite/CategoriesJson.php  |  2 +-
 .../Adminhtml/Url/Rewrite/CmsPageGrid.php     |  2 +-
 .../Adminhtml/Url/Rewrite/Delete.php          |  2 +-
 .../Controller/Adminhtml/Url/Rewrite/Edit.php |  2 +-
 .../Adminhtml/Url/Rewrite/Index.php           |  2 +-
 .../Adminhtml/Url/Rewrite/ProductGrid.php     |  2 +-
 .../Controller/Adminhtml/Url/Rewrite/Save.php |  2 +-
 .../Adminhtml/Auth/Forgotpassword.php         |  2 +-
 .../Adminhtml/Auth/ResetPassword.php          |  2 +-
 .../Adminhtml/Auth/ResetPasswordPost.php      |  2 +-
 .../User/Controller/Adminhtml/Locks/Grid.php  |  2 +-
 .../User/Controller/Adminhtml/Locks/Index.php |  2 +-
 .../Controller/Adminhtml/Locks/MassUnlock.php |  2 +-
 .../User/Controller/Adminhtml/User/Delete.php |  2 +-
 .../User/Controller/Adminhtml/User/Edit.php   |  2 +-
 .../User/Controller/Adminhtml/User/Index.php  |  2 +-
 .../Adminhtml/User/InvalidateToken.php        |  2 +-
 .../Controller/Adminhtml/User/NewAction.php   |  2 +-
 .../Controller/Adminhtml/User/Role/Delete.php |  2 +-
 .../Adminhtml/User/Role/EditRole.php          |  2 +-
 .../Adminhtml/User/Role/Editrolegrid.php      |  2 +-
 .../Controller/Adminhtml/User/Role/Index.php  |  2 +-
 .../Adminhtml/User/Role/RoleGrid.php          |  2 +-
 .../Adminhtml/User/Role/SaveRole.php          |  2 +-
 .../Controller/Adminhtml/User/RoleGrid.php    |  2 +-
 .../Controller/Adminhtml/User/RolesGrid.php   |  2 +-
 .../User/Controller/Adminhtml/User/Save.php   |  2 +-
 .../Controller/Adminhtml/User/Validate.php    |  2 +-
 .../Adminhtml/System/Variable/Delete.php      |  2 +-
 .../Adminhtml/System/Variable/Edit.php        |  2 +-
 .../Adminhtml/System/Variable/Index.php       |  2 +-
 .../Adminhtml/System/Variable/NewAction.php   |  2 +-
 .../Adminhtml/System/Variable/Save.php        |  2 +-
 .../Adminhtml/System/Variable/Validate.php    |  2 +-
 .../System/Variable/WysiwygPlugin.php         |  2 +-
 .../System/Variable/ValidateTest.php          |  2 +-
 .../Version/Controller/Index/Index.php        |  2 +-
 .../Adminhtml/Widget/BuildWidget.php          |  2 +-
 .../Controller/Adminhtml/Widget/Index.php     |  2 +-
 .../Adminhtml/Widget/Instance/Blocks.php      |  2 +-
 .../Adminhtml/Widget/Instance/Categories.php  |  2 +-
 .../Adminhtml/Widget/Instance/Delete.php      |  2 +-
 .../Adminhtml/Widget/Instance/Edit.php        |  2 +-
 .../Adminhtml/Widget/Instance/Index.php       |  2 +-
 .../Adminhtml/Widget/Instance/NewAction.php   |  2 +-
 .../Adminhtml/Widget/Instance/Products.php    |  2 +-
 .../Adminhtml/Widget/Instance/Save.php        |  2 +-
 .../Adminhtml/Widget/Instance/Template.php    |  2 +-
 .../Adminhtml/Widget/Instance/Validate.php    |  2 +-
 .../Adminhtml/Widget/LoadOptions.php          |  2 +-
 .../Widget/Instance/CategoriesTest.php        |  2 +-
 .../Magento/Wishlist/Controller/Index/Add.php |  2 +-
 .../Wishlist/Controller/Index/Allcart.php     |  2 +-
 .../Wishlist/Controller/Index/Cart.php        |  2 +-
 .../Wishlist/Controller/Index/Configure.php   |  2 +-
 .../Controller/Index/DownloadCustomOption.php |  2 +-
 .../Wishlist/Controller/Index/Fromcart.php    |  2 +-
 .../Wishlist/Controller/Index/Index.php       |  2 +-
 .../Wishlist/Controller/Index/Remove.php      |  2 +-
 .../Wishlist/Controller/Index/Send.php        |  2 +-
 .../Wishlist/Controller/Index/Share.php       |  2 +-
 .../Wishlist/Controller/Index/Update.php      |  2 +-
 .../Controller/Index/UpdateItemOptions.php    |  2 +-
 .../Wishlist/Controller/Shared/Allcart.php    |  2 +-
 .../Wishlist/Controller/Shared/Cart.php       |  2 +-
 .../Wishlist/Controller/Shared/Index.php      |  2 +-
 .../Unit/Controller/Index/AllcartTest.php     |  6 +++---
 .../Test/Unit/Controller/Index/CartTest.php   | 12 +++++------
 .../Unit/Controller/Index/FromcartTest.php    |  8 ++++----
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 ++--
 .../Test/Unit/Controller/Index/RemoveTest.php |  8 ++++----
 .../Test/Unit/Controller/Index/SendTest.php   | 10 +++++-----
 .../Test/Unit/Controller/Index/ShareTest.php  |  4 ++--
 .../Index/UpdateItemOptionsTest.php           | 10 +++++-----
 .../Unit/Controller/Shared/AllcartTest.php    |  4 ++--
 .../Test/Unit/Controller/Shared/CartTest.php  |  8 ++++----
 .../TestModule1/Controller/CookieTester.php   |  2 +-
 .../Backend/Controller/Adminhtml/AuthTest.php | 10 +++++-----
 .../Controller/Adminhtml/IndexTest.php        |  6 +++---
 .../Product/Action/AttributeTest.php          |  4 ++--
 .../Product/Stub/ProductControllerStub.php    |  2 +-
 .../System/Currency/FetchRatesTest.php        |  2 +-
 .../Controller/Billing/AgreementTest.php      |  2 +-
 .../Adminhtml/Order/Stub/OrderCreateStub.php  |  2 +-
 .../Controller/Adminhtml/Noroute.php          |  2 +-
 .../User/Controller/Adminhtml/AuthTest.php    | 14 ++++++-------
 .../Controller/Adminhtml/User/RoleTest.php    |  4 ++--
 .../Magento/Framework/App/Action/Action.php   |  6 +++---
 .../Magento/Framework/App/Action/Forward.php  |  2 +-
 .../Magento/Framework/App/Action/Redirect.php |  2 +-
 .../Magento/Framework/App/ActionInterface.php |  2 +-
 .../Magento/Framework/App/FrontController.php |  2 +-
 .../App/Test/Unit/Action/ActionTest.php       |  4 ++--
 .../App/Test/Unit/Action/ForwardTest.php      |  2 +-
 .../App/Test/Unit/Action/Stub/ActionStub.php  |  2 +-
 .../Framework/Controller/Index/Index.php      |  2 +-
 .../Framework/Controller/Noroute/Index.php    |  2 +-
 1074 files changed, 1408 insertions(+), 1408 deletions(-)

diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
index 793cbe22525..53f8a7fc3ae 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/AjaxMarkAsRead.php
@@ -13,7 +13,7 @@ class AjaxMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Not
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getPostValue()) {
             return;
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
index 15b88e4c2b6..df4b3465ad9 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\AdminNotification\Controller\Adminhtml\Notification
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu(
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
index bcf66825edf..fe11c65da69 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MarkAsRead.php
@@ -11,7 +11,7 @@ class MarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Notific
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $notificationId = (int)$this->getRequest()->getParam('id');
         if ($notificationId) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
index 78090163aa6..3f923e05797 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassMarkAsRead.php
@@ -11,7 +11,7 @@ class MassMarkAsRead extends \Magento\AdminNotification\Controller\Adminhtml\Not
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $ids = $this->getRequest()->getParam('notification');
         if (!is_array($ids)) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
index 4b0068520ba..fd73d3cece4 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/MassRemove.php
@@ -11,7 +11,7 @@ class MassRemove extends \Magento\AdminNotification\Controller\Adminhtml\Notific
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $ids = $this->getRequest()->getParam('notification');
         if (!is_array($ids)) {
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
index b4fe7e0e295..81a62e76134 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/Notification/Remove.php
@@ -11,7 +11,7 @@ class Remove extends \Magento\AdminNotification\Controller\Adminhtml\Notificatio
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($id = $this->getRequest()->getParam('id')) {
             $model = $this->_objectManager->create('Magento\AdminNotification\Model\Inbox')->load($id);
diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
index 4bf51c2df29..e173f1df102 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
@@ -38,7 +38,7 @@ class ListAction extends \Magento\Backend\App\AbstractAction
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $severity = $this->getRequest()->getParam('severity');
         if ($severity) {
diff --git a/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php b/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
index 945c25b67b9..d41f9c69c2a 100644
--- a/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
+++ b/app/code/Magento/AdvancedPricingImportExport/Controller/Adminhtml/Export/GetFilter.php
@@ -17,7 +17,7 @@ class GetFilter extends ExportController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParams();
         if ($this->getRequest()->isXmlHttpRequest() && $data) {
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
index 3da7f100f75..2934f7a00cc 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Place.php
@@ -51,7 +51,7 @@ class Place extends \Magento\Sales\Controller\Adminhtml\Order\Create
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentParam = $this->getRequest()->getParam('payment');
         $controller = $this->getRequest()->getParam('controller');
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
index d147c3d91e1..2387a1bf5b7 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/Redirect.php
@@ -90,7 +90,7 @@ class Redirect extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectParams = $this->getRequest()->getParams();
         $params = [];
diff --git a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
index 7ac7153fecf..ae85af3ad68 100644
--- a/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
+++ b/app/code/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/ReturnQuote.php
@@ -31,7 +31,7 @@ class ReturnQuote extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_returnQuote();
         $this->getResponse()->representJson(
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
index 6f0696fbf9d..5dc96c39a91 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/BackendResponse.php
@@ -14,7 +14,7 @@ class BackendResponse extends \Magento\Authorizenet\Controller\Directpost\Paymen
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_responseAction('adminhtml');
     }
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
index 2cb3ea54210..7a13d0ba6c0 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php
@@ -71,7 +71,7 @@ class Place extends Payment
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentParam = $this->getRequest()->getParam('payment');
         $controller = $this->getRequest()->getParam('controller');
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
index 0a0fc1a9906..421e4f04fe1 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Redirect.php
@@ -15,7 +15,7 @@ class Redirect extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $helper = $this->dataFactory->create('frontend');
 
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
index 7a25db11b46..541571db6d9 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/Response.php
@@ -14,7 +14,7 @@ class Response extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_responseAction('frontend');
     }
diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
index 1cef3b03286..b90112bca7f 100644
--- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
+++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment/ReturnQuote.php
@@ -13,7 +13,7 @@ class ReturnQuote extends \Magento\Authorizenet\Controller\Directpost\Payment
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_returnCustomerQuote();
         $this->getResponse()->representJson(
diff --git a/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php b/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
index 517b9e41f7d..a80b7b41420 100644
--- a/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
+++ b/app/code/Magento/Authorizenet/Test/Unit/Controller/Directpost/Payment/PlaceTest.php
@@ -205,7 +205,7 @@ class PlaceTest extends \PHPUnit_Framework_TestCase
             ->method('jsonEncode')
             ->with($result);
 
-        $this->placeOrderController->execute();
+        $this->placeOrderController->executeInternal();
     }
 
     /**
@@ -243,7 +243,7 @@ class PlaceTest extends \PHPUnit_Framework_TestCase
             ->method('jsonEncode')
             ->with($result);
 
-        $this->placeOrderController->execute();
+        $this->placeOrderController->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Backend/App/AbstractAction.php b/app/code/Magento/Backend/App/AbstractAction.php
index c41338591d3..e84bee226d2 100644
--- a/app/code/Magento/Backend/App/AbstractAction.php
+++ b/app/code/Magento/Backend/App/AbstractAction.php
@@ -200,10 +200,10 @@ abstract class AbstractAction extends \Magento\Framework\App\Action\Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$this->_processUrlKeys()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if ($request->isDispatched() && $request->getActionName() !== 'denied' && !$this->_isAllowed()) {
@@ -223,7 +223,7 @@ abstract class AbstractAction extends \Magento\Framework\App\Action\Action
 
         $this->_processLocaleSettings();
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php b/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
index 143b12d06c3..c8e72073581 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Ajax/Translate.php
@@ -40,7 +40,7 @@ class Translate extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $translate = (array)$this->getRequest()->getPost('translate');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
index 08f81426145..42836b603d0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedIframe.php
@@ -41,7 +41,7 @@ class DeniedIframe extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
index 43062aa6908..bd2d2150076 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/DeniedJson.php
@@ -43,7 +43,7 @@ class DeniedJson extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
index 6aed5e22c52..e29183357ea 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php
@@ -32,7 +32,7 @@ class Login extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_auth->isLoggedIn()) {
             if ($this->_auth->getAuthStorage()->isFirstPageAfterLogin()) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
index 098022bed0a..a8b3973595e 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Logout.php
@@ -13,7 +13,7 @@ class Logout extends \Magento\Backend\Controller\Adminhtml\Auth
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_auth->logout();
         $this->messageManager->addSuccess(__('You have logged out.'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php b/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
index f622e39e491..6ac1f14d193 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/BackendApp/Redirect.php
@@ -39,7 +39,7 @@ class Redirect extends AbstractAction
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if ($this->getRequest()->getParam('app')) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
index 2cb699549bd..75ea9ccaa84 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php
@@ -16,7 +16,7 @@ class CleanImages extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\Catalog\Model\Product\Image')->clearCache();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
index 41174c3c1f2..553e22810c1 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php
@@ -16,7 +16,7 @@ class CleanMedia extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->get('Magento\Framework\View\Asset\MergeService')->cleanMergedJsCss();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
index 4ca025b3ec5..29529085927 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php
@@ -15,7 +15,7 @@ class CleanStaticFiles extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get('Magento\Framework\App\State\CleanupFiles')->clearMaterializedViewFiles();
         $this->_eventManager->dispatch('clean_static_files_cache_after');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
index 049f5fa3cb3..2bdddc1048c 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php
@@ -13,7 +13,7 @@ class FlushAll extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_eventManager->dispatch('adminhtml_cache_flush_all');
         /** @var $cacheFrontend \Magento\Framework\Cache\FrontendInterface */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
index bdd099206ed..35885a93ee9 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php
@@ -13,7 +13,7 @@ class FlushSystem extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $cacheFrontend \Magento\Framework\Cache\FrontendInterface */
         foreach ($this->_cacheFrontendPool as $cacheFrontend) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
index 1078cdf7201..2d0fd902112 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
index 98703f0bfa1..5ed4d74b9e6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassDisable.php
@@ -16,7 +16,7 @@ class MassDisable extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
index 3fd92bc7077..361e4c12a7e 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassEnable.php
@@ -16,7 +16,7 @@ class MassEnable extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
index 420d8757e5b..d44b9996429 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Cache/MassRefresh.php
@@ -16,7 +16,7 @@ class MassRefresh extends \Magento\Backend\Controller\Adminhtml\Cache
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $types = $this->getRequest()->getParam('types');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
index e51999e6fc9..b5823437cd8 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/AjaxBlock.php
@@ -36,7 +36,7 @@ class AjaxBlock extends \Magento\Backend\Controller\Adminhtml\Dashboard
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = '';
         $blockTab = $this->getRequest()->getParam('block');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
index 16f345f31fd..6a942ca15f0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersMost.php
@@ -13,7 +13,7 @@ class CustomersMost extends AjaxBlock
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Customers\Most')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
index d1d460971fb..1e531683a74 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/CustomersNewest.php
@@ -13,7 +13,7 @@ class CustomersNewest extends AjaxBlock
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Customers\Newest')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
index 4b6474bfee4..1c3098e82bc 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Dashboard
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
index 8d5862fcc22..1931f7284d4 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/ProductsViewed.php
@@ -13,7 +13,7 @@ class ProductsViewed extends AjaxBlock
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $output = $this->layoutFactory->create()
             ->createBlock('Magento\Backend\Block\Dashboard\Tab\Products\Viewed')
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
index e9e51cd3f1d..943e8e0d2f6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/RefreshStatistics.php
@@ -27,7 +27,7 @@ class RefreshStatistics extends \Magento\Reports\Controller\Adminhtml\Report\Sta
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = array_values($this->reportTypes);
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
index f738be1e83a..b4e624b0943 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Dashboard/Tunnel.php
@@ -36,7 +36,7 @@ class Tunnel extends \Magento\Backend\Controller\Adminhtml\Dashboard
      *
      * @return  \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $error = __('invalid request');
         $httpCode = 400;
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Denied.php b/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
index c77bb09fb00..478cfa7bca0 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Denied.php
@@ -28,7 +28,7 @@ class Denied extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_auth->isLoggedIn()) {
             /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
index 9505f4b1d6d..cdb9fa361c3 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/ChangeLocale.php
@@ -13,7 +13,7 @@ class ChangeLocale extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectResult = $this->resultRedirectFactory->create();
         $redirectResult->setRefererUrl();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
index afa3019cfd6..8e69d2bc6a2 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/GlobalSearch.php
@@ -40,7 +40,7 @@ class GlobalSearch extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $items = [];
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
index 0298a2b9d36..0fc32f759c1 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Index/Index.php
@@ -14,7 +14,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
index a11957e1b7d..6f8101396f7 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/Noroute/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
index 950b72df2df..4c63db63ef3 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Account
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->prepend(__('My Account'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
index 4607cd61274..31f60ebc84d 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php
@@ -18,7 +18,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Account
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getId();
         $password = (string)$this->getRequest()->getParam('password');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
index cec54abf608..a1cdb07d9f5 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
index 7d3445f51d1..afac63a56c6 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Edit.php
@@ -11,7 +11,7 @@ class Edit extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
index 1c8dca8b425..b0d9594e04a 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Grid.php
@@ -11,7 +11,7 @@ class Grid extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
index b1538003926..0df90982922 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
index 3734ef53d73..6521aa114f7 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
index 1d6cc8c6c23..7e52e57ecad 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php
@@ -28,7 +28,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Design
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
index 4af63776d24..0203351b888 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
index a53452ec158..962a4b882d9 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/SetStore.php
@@ -11,7 +11,7 @@ class SetStore extends \Magento\Backend\Controller\Adminhtml\System
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         if ($storeId) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
index 3604948ee6b..e6066ce3d2a 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroup.php
@@ -11,7 +11,7 @@ class DeleteGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Group')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
index fe67adeca90..28557917199 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteGroupPost.php
@@ -13,7 +13,7 @@ class DeleteGroupPost extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
index 826f8493fa0..82486686752 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStore.php
@@ -11,7 +11,7 @@ class DeleteStore extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Store')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
index c7764a1b204..589be3238e5 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php
@@ -15,7 +15,7 @@ class DeleteStorePost extends \Magento\Backend\Controller\Adminhtml\System\Store
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
 
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
index ea67a101763..b2c88101d37 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsite.php
@@ -11,7 +11,7 @@ class DeleteWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id', null);
         if (!($model = $this->_objectManager->create('Magento\Store\Model\Website')->load($itemId))) {
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
index 6951bc3b3a9..dc705339ddd 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteWebsitePost.php
@@ -13,7 +13,7 @@ class DeleteWebsitePost extends \Magento\Backend\Controller\Adminhtml\System\Sto
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('item_id');
         $model = $this->_objectManager->create('Magento\Store\Model\Website');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
index f7403c9eaa2..4e591b0b106 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditGroup.php
@@ -11,7 +11,7 @@ class EditGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'group');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
index f6521a418f4..0d9465c4b8d 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditStore.php
@@ -13,7 +13,7 @@ class EditStore extends \Magento\Backend\Controller\Adminhtml\System\Store
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_getSession()->getPostData()) {
             $this->_coreRegistry->register('store_post_data', $this->_getSession()->getPostData());
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
index 1fe94f98173..b26692e6f54 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/EditWebsite.php
@@ -11,7 +11,7 @@ class EditWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'website');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
index b1f9cf67309..a91d61bfb20 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->prepend(__('Stores'));
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
index 70f9d8b726b..f020762e613 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewGroup.php
@@ -11,7 +11,7 @@ class NewGroup extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'group');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
index 817c67c8be9..b59df090433 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewStore.php
@@ -11,7 +11,7 @@ class NewStore extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_coreRegistry->registry('store_type')) {
             $this->_coreRegistry->register('store_type', 'store');
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
index 65bdd1ee1ed..cf514c49d02 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/NewWebsite.php
@@ -11,7 +11,7 @@ class NewWebsite extends \Magento\Backend\Controller\Adminhtml\System\Store
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('store_type', 'website');
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
index 7f2152e1e89..de1d131eaf8 100644
--- a/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
+++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Backend\Controller\Adminhtml\System\Store
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
         $redirectResult = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
index fa8eb043b33..d8a8df5bc17 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Stub/ActionStub.php
@@ -8,7 +8,7 @@ namespace Magento\Backend\Test\Unit\App\Action\Stub;
 
 class ActionStub extends \Magento\Backend\App\Action
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
index 0e78f533c85..dfc5059ec47 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanStaticFilesTest.php
@@ -94,6 +94,6 @@ class CleanStaticFilesTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         // Run
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
index 76d670fef54..a224583fe5a 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/RefreshStatisticsTest.php
@@ -128,7 +128,7 @@ class RefreshStatisticsTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->refreshStatisticsController->execute()
+            $this->refreshStatisticsController->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
index 2e5cd51547e..cae77b8ad3c 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/TunnelTest.php
@@ -92,7 +92,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('success_msg')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
         $this->assertEquals('success_msg', $controller->getResponse()->getBody());
     }
 
@@ -112,7 +112,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('Service unavailable: invalid request')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testTunnelAction503()
@@ -164,7 +164,7 @@ class TunnelTest extends \PHPUnit_Framework_TestCase
             ->with('Service unavailable: see error log for details')
             ->willReturnSelf();
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
index b63c4f1e1a5..a68d23ab22c 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/System/Account/SaveTest.php
@@ -199,6 +199,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->_messagesMock->expects($this->once())->method('addSuccess')->with($this->equalTo($testedMessage));
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
index abfd789889b..caa8da583a6 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Create.php
@@ -17,7 +17,7 @@ class Create extends \Magento\Backup\Controller\Adminhtml\Index
      * @return void|\Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             return $this->_redirect('*/*/index');
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
index c9fe2c57586..a5ea380d2b6 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Download.php
@@ -49,7 +49,7 @@ class Download extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void|\Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         /* @var $backup \Magento\Backup\Model\Backup */
         $backup = $this->_backupModelFactory->create(
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
index 0b932103382..f1b60948461 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
index 6d3e4f75f4a..5335d40f9a8 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
index b0c1af3a1f4..c9958e65d66 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends \Magento\Backup\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         $backupIds = $this->getRequest()->getParam('ids', []);
 
diff --git a/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php b/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
index fdb4714f0ac..bd80aff5feb 100644
--- a/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
+++ b/app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php
@@ -19,7 +19,7 @@ class Rollback extends \Magento\Backup\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_objectManager->get('Magento\Backup\Helper\Data')->isRollbackAllowed()) {
             $this->_forward('denied');
diff --git a/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php b/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
index 21d27ef0c5a..6d2c6d515f1 100644
--- a/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
+++ b/app/code/Magento/Backup/Test/Unit/Controller/Adminhtml/Index/DownloadTest.php
@@ -143,7 +143,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::execute
+     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::executeInternal
      */
     public function testExecuteBackupFound()
     {
@@ -201,11 +201,11 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultRawMock);
 
-        $this->assertSame($this->resultRawMock, $this->downloadController->execute());
+        $this->assertSame($this->resultRawMock, $this->downloadController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::execute
+     * @covers \Magento\Backup\Controller\Adminhtml\Index\Download::executeInternal
      * @param int $time
      * @param bool $exists
      * @param int $existsCount
@@ -240,7 +240,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultRedirectMock);
 
-        $this->assertSame($this->resultRedirectMock, $this->downloadController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->downloadController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php b/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
index 0177988ea45..c5d284c62cd 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/AjaxSave.php
@@ -14,7 +14,7 @@ class AjaxSave extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->vault->processNonce(
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Delete.php b/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
index 2dd4c4f9b13..a1f8d5e55a9 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Delete.php
@@ -12,7 +12,7 @@ class Delete extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->hasToken()) {
             if (!$this->vault->storedCard($this->hasToken())) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php b/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
index bef7c62f781..20102ff5c36 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/DeleteConfirm.php
@@ -29,7 +29,7 @@ class DeleteConfirm extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($token = $this->hasToken()) {
             $result = $this->vault->deleteCard($token);
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Edit.php b/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
index 864d53f5563..7e88faeeeed 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->hasToken()) {
             if (!$this->vault->storedCard($this->hasToken())) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Generate.php b/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
index 7bfcdfde5b9..41c13f08cda 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Generate.php
@@ -19,7 +19,7 @@ class Generate extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if ($this->hasToken()) {
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Index.php b/app/code/Magento/Braintree/Controller/Creditcard/Index.php
index db240cda6fc..9e94ccdb307 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Index.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php b/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
index 000ba39e0ab..1ac92a741d1 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/NewCard.php
@@ -12,7 +12,7 @@ class NewCard extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Braintree/Controller/Creditcard/Save.php b/app/code/Magento/Braintree/Controller/Creditcard/Save.php
index d51c3de2828..9080a2a3b65 100644
--- a/app/code/Magento/Braintree/Controller/Creditcard/Save.php
+++ b/app/code/Magento/Braintree/Controller/Creditcard/Save.php
@@ -12,7 +12,7 @@ class Save extends \Magento\Braintree\Controller\MyCreditCards
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addError(__('There was error during saving card data'));
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Braintree/Controller/MyCreditCards.php b/app/code/Magento/Braintree/Controller/MyCreditCards.php
index 122edc79ca2..04ff04202bc 100644
--- a/app/code/Magento/Braintree/Controller/MyCreditCards.php
+++ b/app/code/Magento/Braintree/Controller/MyCreditCards.php
@@ -68,7 +68,7 @@ abstract class MyCreditCards extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $loginUrl = $this->customerUrl->getLoginUrl();
         if (!$this->customerSession->authenticate($loginUrl)) {
@@ -82,7 +82,7 @@ abstract class MyCreditCards extends \Magento\Framework\App\Action\Action
             return $resultRedirect;
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/PayPal.php b/app/code/Magento/Braintree/Controller/PayPal.php
index e24bd47e8d3..b85b605c9ef 100644
--- a/app/code/Magento/Braintree/Controller/PayPal.php
+++ b/app/code/Magento/Braintree/Controller/PayPal.php
@@ -77,7 +77,7 @@ abstract class PayPal extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->braintreePayPalConfig->isActive() || !$this->braintreePayPalConfig->isShortcutCheckoutEnabled()) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
@@ -87,7 +87,7 @@ abstract class PayPal extends \Magento\Framework\App\Action\Action
             return $resultRedirect;
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php b/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
index 4d070aa489d..4be1d5aaebd 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/GetButtonData.php
@@ -37,7 +37,7 @@ class GetButtonData extends \Magento\Framework\App\Action\Action
      * @return ResultInterface
      * @throws LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         $isAjax = $this->_request->getParam('isAjax');
 
diff --git a/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php b/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
index 45041a25ef0..febdcf06fed 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/PlaceOrder.php
@@ -48,7 +48,7 @@ class PlaceOrder extends \Magento\Braintree\Controller\PayPal
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->agreementsValidator->isValid(array_keys($this->getRequest()->getPost('agreement', [])))) {
diff --git a/app/code/Magento/Braintree/Controller/PayPal/Review.php b/app/code/Magento/Braintree/Controller/PayPal/Review.php
index ef01f89b38e..48634e9fe7b 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/Review.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/Review.php
@@ -49,7 +49,7 @@ class Review extends \Magento\Braintree\Controller\PayPal
     /**
      * @return $this|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $paymentMethodNonce = $this->getRequest()->getParam('payment_method_nonce');
         $details = $this->getRequest()->getParam('details');
diff --git a/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php b/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
index d8041b7186e..6ec5b0c18e2 100644
--- a/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
+++ b/app/code/Magento/Braintree/Controller/PayPal/SaveShippingMethod.php
@@ -15,7 +15,7 @@ class SaveShippingMethod extends \Magento\Braintree\Controller\PayPal
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $isAjax = $this->getRequest()->getParam('isAjax');
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
index 75718aa2f9c..ee314f710e2 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/GetButtonDataTest.php
@@ -85,7 +85,7 @@ class GetButtonDataTest extends \PHPUnit_Framework_TestCase
             ->willReturn($data['currency']);
 
         $getButtonData = new GetButtonData($this->contextMock, $this->checkoutSessionMock);
-        $getButtonData->execute();
+        $getButtonData->executeInternal();
     }
 
     /**
@@ -168,7 +168,7 @@ class GetButtonDataTest extends \PHPUnit_Framework_TestCase
         ->method('getQuote');
 
         $getButtonData = new GetButtonData($this->contextMock, $this->checkoutSessionMock);
-        $getButtonData->execute();
+        $getButtonData->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
index e27de2bedd4..1d4fb2a241b 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/PlaceOrderTest.php
@@ -204,7 +204,7 @@ class PlaceOrderTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -234,6 +234,6 @@ class PlaceOrderTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
index bac4378b974..c7fc1da8662 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/ReviewTest.php
@@ -253,7 +253,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->with($paymentMethodNonce, ['email' => $email]);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteWithBillingAddress()
@@ -285,7 +285,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->with($paymentMethodNonce, $details);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteRefresh()
@@ -296,7 +296,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->willReturn(\Magento\Braintree\Model\PaymentMethod\PayPal::METHOD_CODE);
         $resultPageMock = $this->setupReviewPage($quoteMock);
 
-        $this->assertEquals($resultPageMock, $this->controller->execute());
+        $this->assertEquals($resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoPayment()
@@ -328,7 +328,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteIncorrectPaymentMathod()
@@ -352,7 +352,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteValidationFailure()
@@ -400,7 +400,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -447,6 +447,6 @@ class ReviewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
             ->willReturn($resultRedirect);
-        $this->assertEquals($resultRedirect, $this->controller->execute());
+        $this->assertEquals($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
index 38d61187310..c1c5da115fc 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPal/SaveShippingMethodTest.php
@@ -198,7 +198,7 @@ class SaveShippingMethodTest extends \PHPUnit_Framework_TestCase
             ->with(ResultFactory::TYPE_PAGE)
             ->willReturn($responsePageMock);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteException()
@@ -236,6 +236,6 @@ class SaveShippingMethodTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with($html);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
index b20831f92fe..f9d3db87e6d 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/PayPalTest.php
@@ -125,7 +125,7 @@ class PayPalTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->dispatch($this->requestMock));
+        $this->assertEquals($resultRedirect, $this->controller->execute($this->requestMock));
         $this->assertEquals('noRoute', $resultRedirect->getPath()) ;
     }
 
@@ -146,7 +146,7 @@ class PayPalTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($resultRedirect);
 
-        $this->assertEquals($resultRedirect, $this->controller->dispatch($this->requestMock));
+        $this->assertEquals($resultRedirect, $this->controller->execute($this->requestMock));
         $this->assertEquals('noRoute', $resultRedirect->getPath()) ;
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
index 971edb13bfa..b8abdda7eb0 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/MyCreditCardsStub.php
@@ -8,7 +8,7 @@ namespace Magento\Braintree\Test\Unit\Controller\Stub;
 
 class MyCreditCardsStub extends \Magento\Braintree\Controller\MyCreditCards
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
index b0b5a3dc318..ca9248d5e6b 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Stub/PayPalStub.php
@@ -8,7 +8,7 @@ namespace Magento\Braintree\Test\Unit\Controller\Stub;
 
 class PayPalStub extends \Magento\Braintree\Controller\PayPal
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
index 8323781a07c..2f6f5061a79 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Product/Edit/Form.php
@@ -33,7 +33,7 @@ class Form extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->initializationHelper->initialize($this->productBuilder->build($this->getRequest()));
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
index 684eb43e4ad..359f69c72e0 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Grid.php
@@ -11,7 +11,7 @@ class Grid extends \Magento\Backend\App\Action
     /**
      * @return mixed
      */
-    public function execute()
+    public function executeInternal()
     {
         $index = $this->getRequest()->getParam('index');
         if (!preg_match('/^[a-z0-9_.]*$/i', $index)) {
diff --git a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
index 46c2fae16f4..6101d8b9593 100644
--- a/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
+++ b/app/code/Magento/Bundle/Controller/Adminhtml/Bundle/Selection/Search.php
@@ -11,7 +11,7 @@ class Search extends \Magento\Backend\App\Action
     /**
      * @return mixed
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
index 34f249ca2cd..75a14fd13a6 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Product/Edit/FormTest.php
@@ -112,6 +112,6 @@ class FormTest extends \PHPUnit_Framework_TestCase
         $layout->expects($this->once())->method('createBlock')->willReturn($block);
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
index c0a7342f824..49a6c22704e 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/GridTest.php
@@ -88,7 +88,7 @@ class GridTest extends \PHPUnit_Framework_TestCase
         $block->expects($this->once())->method('setIndex')->willReturnSelf();
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->controller->execute());
+        $this->assertEquals($this->response, $this->controller->executeInternal());
     }
 
     /**
@@ -99,6 +99,6 @@ class GridTest extends \PHPUnit_Framework_TestCase
     {
         $this->request->expects($this->once())->method('getParam')->with('index')->willReturn('<index"');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
index 2ef224ab717..7f03eeccfd1 100644
--- a/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
+++ b/app/code/Magento/Bundle/Test/Unit/Controller/Adminhtml/Bundle/Selection/SearchTest.php
@@ -87,6 +87,6 @@ class SearchTest extends \PHPUnit_Framework_TestCase
         $block->expects($this->once())->method('setFirstShow')->with(true)->willReturnSelf();
         $block->expects($this->once())->method('toHtml')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->controller->execute());
+        $this->assertEquals($this->response, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php b/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
index 2c6ad98a280..7dd6846a3fd 100644
--- a/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
+++ b/app/code/Magento/Captcha/Controller/Adminhtml/Refresh/Refresh.php
@@ -13,7 +13,7 @@ class Refresh extends \Magento\Backend\App\Action
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $formId = $this->getRequest()->getPost('formId');
         $captchaModel = $this->_objectManager->get('Magento\Captcha\Helper\Data')->getCaptcha($formId);
diff --git a/app/code/Magento/Captcha/Controller/Refresh/Index.php b/app/code/Magento/Captcha/Controller/Refresh/Index.php
index f12d17afaa9..6e4a78090bd 100644
--- a/app/code/Magento/Captcha/Controller/Refresh/Index.php
+++ b/app/code/Magento/Captcha/Controller/Refresh/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $formId = $this->_request->getPost('formId');
         if (null === $formId) {
diff --git a/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php b/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
index fd47b19ea90..55f33af2161 100644
--- a/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
+++ b/app/code/Magento/Captcha/Test/Unit/Controller/Refresh/IndexTest.php
@@ -100,7 +100,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->responseMock->expects($this->once())->method('representJson')->with(json_encode(['imgSrc' => 'source']));
         $this->flagMock->expects($this->once())->method('set')->with('', 'no-postDispatch', true);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
index 5cd9fffd001..9860f99b826 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Add.php
@@ -30,7 +30,7 @@ class Add extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->unsActiveTabId();
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
index 6f9cf5cc6e5..21c4c2fddbd 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/CategoriesJson.php
@@ -38,7 +38,7 @@ class CategoriesJson extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('expand_all')) {
             $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->setIsTreeWasExpanded(true);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
index cc0e60a82a3..7590c92887c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php
@@ -28,7 +28,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
index 3c308d5deea..4c8f0e0be64 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php
@@ -40,7 +40,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Category
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         $parentId = (int)$this->getRequest()->getParam('parent');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
index fdecd7c3922..6f389e87de6 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Grid.php
@@ -39,7 +39,7 @@ class Grid extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $category = $this->_initCategory(true);
         if (!$category) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
index 1b0bbf347f5..7fb6ab9e956 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
index fb0d48aacc4..28f7d43bec6 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php
@@ -46,7 +46,7 @@ class Move extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * New parent category identifier
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
index 150b0194664..5441e165874 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/RefreshPath.php
@@ -30,7 +30,7 @@ class RefreshPath extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getParam('id');
         if ($categoryId) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
index ac0b303f18d..014bea2cfa3 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
@@ -70,7 +70,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
index 94c8010cc39..6fbed45cc76 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/SuggestCategories.php
@@ -38,7 +38,7 @@ class SuggestCategories extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
index 9acd075bc82..1eee483d716 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Tree.php
@@ -39,7 +39,7 @@ class Tree extends \Magento\Catalog\Controller\Adminhtml\Category
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
         $categoryId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
index 329f786314f..953daaa4607 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/CategoriesJson.php
@@ -42,7 +42,7 @@ class CategoriesJson extends \Magento\Catalog\Controller\Adminhtml\Category\Widg
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getPost('id');
         if ($categoryId) {
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
index fa9b2ab95b2..f65912621ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Widget/Chooser.php
@@ -32,7 +32,7 @@ class Chooser extends \Magento\Catalog\Controller\Adminhtml\Category\Widget
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
index 29f30ad573f..e83384f5f35 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Edit.php
@@ -51,7 +51,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribut
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $this->attributeHelper->setProductIds($collection->getAllIds());
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
index 3661567d5fa..c77b65c71a2 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php
@@ -85,7 +85,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribut
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateProducts()) {
             return $this->resultRedirectFactory->create()->setPath('catalog/product/', ['_current' => true]);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
index a7f2da57762..1b3c6e2ad17 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Validate.php
@@ -40,7 +40,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product\Action\Attr
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = $this->_objectManager->create('Magento\Framework\DataObject');
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
index 7d337411b0a..4f53240f745 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php
@@ -31,7 +31,7 @@ class AddAttributeToTemplate extends \Magento\Catalog\Controller\Adminhtml\Produ
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
index b865313f943..e8b34dde057 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsPriceGrid.php
@@ -14,7 +14,7 @@ class AlertsPriceGrid extends AbstractProductGrid
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
index dc4a3f14470..e6324f21714 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AlertsStockGrid.php
@@ -39,7 +39,7 @@ class AlertsStockGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
index 6d444009f5a..d2bc262e1a8 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute.php
@@ -62,14 +62,14 @@ abstract class Attribute extends \Magento\Backend\App\Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         $this->_entityTypeId = $this->_objectManager->create(
             'Magento\Eav\Model\Entity'
         )->setType(
             \Magento\Catalog\Model\Product::ENTITY
         )->getTypeId();
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
index aa99a78945e..be13157399e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('attribute_id');
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
index bfe598b3d9b..14baeaa2461 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('attribute_id');
         /** @var $model \Magento\Catalog\Model\ResourceModel\Eav\Attribute */
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
index bb264940f4a..b2caa1c5219 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createActionPage();
         $resultPage->addContent(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
index 08e6e33b32f..97886d735b7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/NewAction.php
@@ -34,7 +34,7 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultForwardFactory->create()->forward('edit');
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
index 2d57b6148e5..17bed1b247b 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Save.php
@@ -86,7 +86,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
index bb870c3f8ef..7a529343b1f 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php
@@ -44,7 +44,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product\Attribute
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
index 202f41cda59..f62dc494341 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Categories.php
@@ -32,7 +32,7 @@ class Categories extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         return $this->resultPageFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
index 298dd38b065..a39e81bcb5d 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Crosssell.php
@@ -32,7 +32,7 @@ class Crosssell extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
index 7dd03b84c09..06213df4acd 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CrosssellGrid.php
@@ -32,7 +32,7 @@ class CrosssellGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
index cc5dde10f1a..23546bfe57d 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/CustomOptions.php
@@ -45,7 +45,7 @@ class CustomOptions extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->registry->register('import_option_products', $this->getRequest()->getPost('products'));
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
index f51fb90425a..0abe6282eee 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Datafeeds/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
     }
 }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
index d335b898f71..fa68907d14c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Duplicate.php
@@ -35,7 +35,7 @@ class Duplicate extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
index 30e1299ca17..123117c22a7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php
@@ -39,7 +39,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int) $this->getRequest()->getParam('id');
         $product = $this->productBuilder->build($this->getRequest());
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
index fb6511ec6bb..6e41eed07bb 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php
@@ -38,7 +38,7 @@ class Upload extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $uploader = $this->_objectManager->create(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
index fdda822206b..a9536e615d0 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Grid.php
@@ -32,7 +32,7 @@ class Grid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
index 0732fd041b9..f489d581fe3 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/GridOnly.php
@@ -39,7 +39,7 @@ class GridOnly extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Products'));
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
index 9c4ba567e04..810fa031ba9 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Group/Save.php
@@ -19,7 +19,7 @@ class Save extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $model = $this->_objectManager->create('Magento\Eav\Model\Entity\Attribute\Group');
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
index 2edf364aa66..89051652951 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
index 831fb79fc5f..2140d25e250 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassDelete.php
@@ -46,7 +46,7 @@ class MassDelete extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $productDeleted = 0;
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
index 04f37fda61f..913a1be34b5 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
@@ -75,7 +75,7 @@ class MassStatus extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $productIds = $collection->getAllIds();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
index 47c42d49e3a..d22b64ee03e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php
@@ -51,7 +51,7 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getParam('set')) {
             return $this->resultForwardFactory->create()->forward('noroute');
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
index 2fcd0dcf961..3bd0b5eab8e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Options.php
@@ -32,7 +32,7 @@ class Options extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
index a2b2dbda990..2958d8fb965 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/OptionsImportGrid.php
@@ -13,7 +13,7 @@ class OptionsImportGrid extends AbstractProductGrid
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
index d503a79ff3a..98bc500a023 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Related.php
@@ -31,7 +31,7 @@ class Related extends \Magento\Catalog\Controller\Adminhtml\Product
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
index f37bc324c56..d09ce170e4c 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php
@@ -53,7 +53,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = $this->getRequest()->getParam('store');
         $redirectBack = $this->getRequest()->getParam('back', false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
index 81f61ec8362..d452df55b25 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Add.php
@@ -30,7 +30,7 @@ class Add extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
index 9849dc68847..42ceb88ed7e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Delete.php
@@ -30,7 +30,7 @@ class Delete extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $setId = $this->getRequest()->getParam('id');
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
index d40982a5d56..b4cab4b49ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
         $attributeSet = $this->_objectManager->create('Magento\Eav\Model\Entity\Attribute\Set')
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
index 7b9edb21c7e..131ec6cd61e 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
 
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
index 5870190db02..2535d9b4c65 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
@@ -57,7 +57,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $entityTypeId = $this->_getEntityTypeId();
         $hasError = false;
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
index d58fa4a600a..13a7440a7a7 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/SetGrid.php
@@ -30,7 +30,7 @@ class SetGrid extends \Magento\Catalog\Controller\Adminhtml\Product\Set
     /**
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_setTypeId();
         return $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
index d7e4db8dbb7..c5bda8da562 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/ShowUpdateResult.php
@@ -35,7 +35,7 @@ class ShowUpdateResult extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = false;
         if ($this->_session->hasCompositeProductResult()
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
index 6b60c4f7481..b5db6ac5e07 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestAttributes.php
@@ -40,7 +40,7 @@ class SuggestAttributes extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultJson = $this->resultJsonFactory->create();
         $resultJson->setData(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
index d28b72799e7..2ef7b040654 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/SuggestProductTemplates.php
@@ -38,7 +38,7 @@ class SuggestProductTemplates extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultJson = $this->resultJsonFactory->create();
         $resultJson->setData(
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
index 4c11f14d9f9..09ef399f3ce 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Upsell.php
@@ -32,7 +32,7 @@ class Upsell extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
index 171a1e4694a..b4a6a42d94f 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/UpsellGrid.php
@@ -32,7 +32,7 @@ class UpsellGrid extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->productBuilder->build($this->getRequest());
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
index 82e68cd1c94..be1d2b5b962 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Validate.php
@@ -72,7 +72,7 @@ class Validate extends \Magento\Catalog\Controller\Adminhtml\Product
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
index 1c883ea7989..eeb41e0bea5 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Widget/Chooser.php
@@ -38,7 +38,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         $massAction = $this->getRequest()->getParam('use_massaction', false);
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
index f0f0b5274a6..98daec96d73 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Wysiwyg.php
@@ -40,7 +40,7 @@ class Wysiwyg extends \Magento\Catalog\Controller\Adminhtml\Product
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $elementId = $this->getRequest()->getParam('element_id', md5(microtime()));
         $storeId = $this->getRequest()->getParam('store_id', 0);
diff --git a/app/code/Magento/Catalog/Controller/Category/View.php b/app/code/Magento/Catalog/Controller/Category/View.php
index b0684d90546..bcdea75c74c 100644
--- a/app/code/Magento/Catalog/Controller/Category/View.php
+++ b/app/code/Magento/Catalog/Controller/Category/View.php
@@ -150,7 +150,7 @@ class View extends \Magento\Framework\App\Action\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_request->getParam(\Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED)) {
             return $this->resultRedirectFactory->create()->setUrl($this->_redirect->getRedirectUrl());
diff --git a/app/code/Magento/Catalog/Controller/Index/Index.php b/app/code/Magento/Catalog/Controller/Index/Index.php
index 5ea3a57caf4..d6890855f14 100644
--- a/app/code/Magento/Catalog/Controller/Index/Index.php
+++ b/app/code/Magento/Catalog/Controller/Index/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         return $resultRedirect->setPath('/');
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Add.php b/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
index 995f51e23ec..99dccd664df 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Add.php
@@ -15,7 +15,7 @@ class Add extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php b/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
index 40525ddb90f..085013b86a4 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Clear.php
@@ -15,7 +15,7 @@ class Clear extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection $items */
         $items = $this->_itemCollectionFactory->create();
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Index.php b/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
index a8e79afa1c0..5808e737e5d 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Index.php
@@ -71,7 +71,7 @@ class Index extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $items = $this->getRequest()->getParam('items');
 
diff --git a/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php b/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
index b710c3a066d..00db1446bda 100644
--- a/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
+++ b/app/code/Magento/Catalog/Controller/Product/Compare/Remove.php
@@ -15,7 +15,7 @@ class Remove extends \Magento\Catalog\Controller\Product\Compare
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         if ($productId) {
diff --git a/app/code/Magento/Catalog/Controller/Product/Gallery.php b/app/code/Magento/Catalog/Controller/Product/Gallery.php
index b4e9c7480ba..32411c663db 100644
--- a/app/code/Magento/Catalog/Controller/Product/Gallery.php
+++ b/app/code/Magento/Catalog/Controller/Product/Gallery.php
@@ -44,7 +44,7 @@ class Gallery extends \Magento\Catalog\Controller\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = null;
         if (!$this->_initProduct()) {
diff --git a/app/code/Magento/Catalog/Controller/Product/View.php b/app/code/Magento/Catalog/Controller/Product/View.php
index aed317633da..b50819ecb98 100644
--- a/app/code/Magento/Catalog/Controller/Product/View.php
+++ b/app/code/Magento/Catalog/Controller/Product/View.php
@@ -69,7 +69,7 @@ class View extends \Magento\Catalog\Controller\Product
      *
      * @return \Magento\Framework\Controller\Result\Forward|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Get initial data from request
         $categoryId = (int) $this->getRequest()->getParam('category', false);
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
index bec5548f8bb..203f49495c8 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/DeleteTest.php
@@ -122,7 +122,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('catalog/*/', ['_current' => true, 'id' => null]);
         $this->categoryRepository->expects($this->never())->method('get');
 
-        $this->unit->execute();
+        $this->unit->executeInternal();
     }
 
     public function testDelete()
@@ -138,6 +138,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $this->resultRedirect->expects($this->once())->method('setPath')
             ->with('catalog/*/', ['_current' => true, 'id' => $parentId]);
 
-        $this->unit->execute();
+        $this->unit->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
index 09cad210ad8..b4e61882ee5 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php
@@ -550,7 +550,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             )
             ->will($this->returnValue('result-execute'));
 
-        $this->assertEquals('result-execute', $this->save->execute());
+        $this->assertEquals('result-execute', $this->save->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
index 26b7598e03b..e1ae3110fed 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/CategoriesJsonTest.php
@@ -141,6 +141,6 @@ class CategoriesJsonTest extends \PHPUnit_Framework_TestCase
         $testHtml = '<div>Some test html</div>';
         $this->chooserBlockMock->expects($this->once())->method('getTreeJson')->will($this->returnValue($testHtml));
         $this->resultJson->expects($this->once())->method('setJsonData')->with($testHtml)->willReturnSelf();
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
index f61c31a6620..ec55fc86161 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Widget/ChooserTest.php
@@ -123,6 +123,6 @@ class ChooserTest extends \PHPUnit_Framework_TestCase
         $testHtml = '<div>Some test html</div>';
         $this->chooserBlockMock->expects($this->once())->method('toHtml')->will($this->returnValue($testHtml));
         $this->resultRaw->expects($this->once())->method('setContents')->with($testHtml);
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
index b83afa0e636..db88d451374 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Action/Attribute/SaveTest.php
@@ -274,6 +274,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->never())->method('addError');
         $this->messageManager->expects($this->never())->method('addException');
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
index f8cf08f5474..480f84e43b8 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Attribute/EditTest.php
@@ -199,7 +199,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
 
         $this->blockTemplate->expects($this->any())->method('setIsPopup')->willReturnSelf();
 
-        $this->assertSame($this->resultPage, $this->editController->execute());
+        $this->assertSame($this->resultPage, $this->editController->executeInternal());
     }
 
     public function testExecuteNoPopup()
@@ -250,6 +250,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
 
         $this->blockTemplate->expects($this->any())->method('setIsPopup')->willReturnSelf();
 
-        $this->assertSame($this->resultPage, $this->editController->execute());
+        $this->assertSame($this->resultPage, $this->editController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
index 47dd99f5ce0..9a66cfdd37e 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/MassStatusTest.php
@@ -80,6 +80,6 @@ class MassStatusTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Pro
     public function testMassStatusAction()
     {
         $this->priceProcessor->expects($this->once())->method('reindexList');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
index 215be1b4d16..8dd5602000f 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php
@@ -76,7 +76,7 @@ class NewActionTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Prod
         $this->action->getRequest()->expects($this->any())->method('getParam')->willReturn(true);
         $this->action->getRequest()->expects($this->any())->method('getFullActionName')
             ->willReturn('catalog_product_new');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecuteObtainsProductDataFromSession()
@@ -90,6 +90,6 @@ class NewActionTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Prod
 
         $this->product->expects($this->once())->method('addData')->with(['name' => 'test-name', 'stock_data' => null]);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
index 17a99b3ab8f..4a9d892060a 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php
@@ -120,7 +120,7 @@ class SaveTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\ProductTe
         $this->session->expects($this->once())->method('setProductData')->with($productData);
         $this->resultRedirect->expects($this->once())->method('setPath')->with('catalog/*/new');
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
index c9209c3f0a7..e5c1e4f425f 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ShowUpdateResultTest.php
@@ -146,6 +146,6 @@ class ShowUpdateResultTest extends \PHPUnit_Framework_TestCase
 
         /** @var \Magento\Catalog\Controller\Adminhtml\Product\ShowUpdateResult $controller */
         $controller = new ShowUpdateResult($context, $productBuilder, $productCompositeHelper);
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
index 9c58d09dfe4..709cd8db941 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/ValidateTest.php
@@ -132,7 +132,7 @@ class ValidateTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Produ
         $this->request->expects($this->any())->method('getPost')->willReturnMap([['set', null, 9]]);
         $this->product->expects($this->once())->method('setAttributeSetId')->with(9);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testAttributeSetIsObtainedFromGetWhenThereIsNoOneInPost()
@@ -141,6 +141,6 @@ class ValidateTest extends \Magento\Catalog\Test\Unit\Controller\Adminhtml\Produ
         $this->request->expects($this->any())->method('getPost')->willReturnMap([['set', null, null]]);
         $this->product->expects($this->once())->method('setAttributeSetId')->with(4);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
index 735c13b0483..eacdcc13328 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Category/ViewTest.php
@@ -197,6 +197,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->catalogDesign->expects($this->any())->method('getDesignSettings')->will($this->returnValue($settings));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
index 134776df353..da0c0c7bea7 100644
--- a/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Controller/Product/Compare/IndexTest.php
@@ -154,7 +154,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
         $this->listCompareMock->expects($this->never())->method('addProducts');
         $this->redirectFactoryMock->expects($this->never())->method('create');
-        $this->index->execute();
+        $this->index->executeInternal();
     }
 
     public function testExecuteWithItems()
@@ -180,6 +180,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->redirectFactoryMock->expects($this->once())
             ->method('create')
             ->willReturn($redirect);
-        $this->index->execute();
+        $this->index->executeInternal();
     }
 }
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
index abe88aa2fcc..df2b1a38b58 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
@@ -16,7 +16,7 @@ class ApplyRules extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $errorMessage = __('We can\'t apply the rules.');
         try {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
index 34d74818512..ac908bffe6d 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Chooser.php
@@ -11,7 +11,7 @@ class Chooser extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('attribute') == 'sku') {
             $type = 'Magento\CatalogRule\Block\Adminhtml\Promo\Widget\Chooser\Sku';
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
index 41cca27abd8..dd14365e464 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
index 97495f7d0d4..1f2f29390f7 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
@@ -11,7 +11,7 @@ class Edit extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\CatalogRule\Model\Rule');
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
index fd6533a042c..9eb60fc13cd 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $dirtyRules = $this->_objectManager->create('Magento\CatalogRule\Model\Flag')->loadSelf();
         if ($dirtyRules->getState()) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
index fe944cf16f4..f3a42f0c955 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
index 2a1d8aaf878..a588a5e00ad 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewActionHtml.php
@@ -13,7 +13,7 @@ class NewActionHtml extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Cata
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
index 977806d176b..5a58180e448 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php
@@ -13,7 +13,7 @@ class NewConditionHtml extends \Magento\CatalogRule\Controller\Adminhtml\Promo\C
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
index 16415977b55..2ac65d736b4 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPostValue()) {
             try {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
index 646e3cf6c37..4b8f29d1444 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Index.php
@@ -19,7 +19,7 @@ class Index extends \Magento\Backend\App\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_CatalogRule::promo');
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
index 592d6f0bbc2..ae1c964761f 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/CategoriesJson.php
@@ -68,7 +68,7 @@ class CategoriesJson extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Wid
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = (int)$this->getRequest()->getPost('id');
         if ($categoryId) {
diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
index ea081c9c436..7c764a2452c 100644
--- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
+++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Widget/Chooser.php
@@ -13,7 +13,7 @@ class Chooser extends \Magento\CatalogRule\Controller\Adminhtml\Promo\Widget
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
 
diff --git a/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php b/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
index dfc0013e6e2..961a4cd73d7 100644
--- a/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
+++ b/app/code/Magento/CatalogSearch/Controller/Advanced/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php b/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
index d98ff86f779..e5c71f294f6 100644
--- a/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
+++ b/app/code/Magento/CatalogSearch/Controller/Advanced/Result.php
@@ -47,7 +47,7 @@ class Result extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_catalogSearchAdvanced->addFilters($this->getRequest()->getQueryValue());
diff --git a/app/code/Magento/CatalogSearch/Controller/Result/Index.php b/app/code/Magento/CatalogSearch/Controller/Result/Index.php
index 4a682161c6d..92221b02af4 100644
--- a/app/code/Magento/CatalogSearch/Controller/Result/Index.php
+++ b/app/code/Magento/CatalogSearch/Controller/Result/Index.php
@@ -65,7 +65,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->layerResolver->create(Resolver::CATALOG_LAYER_SEARCH);
         /* @var $query \Magento\Search\Model\Query */
diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
index 529b92bf436..f90be4e218f 100644
--- a/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Controller/Advanced/ResultTest.php
@@ -50,6 +50,6 @@ class ResultTest extends \PHPUnit_Framework_TestCase
             'Magento\CatalogSearch\Controller\Advanced\Result',
             ['context' => $context, 'catalogSearchAdvanced' => $catalogSearchAdvanced]
         );
-        $instance->execute();
+        $instance->executeInternal();
     }
 }
diff --git a/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php b/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
index dd779b03510..f2a0dde38a0 100644
--- a/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
+++ b/app/code/Magento/CatalogWidget/Controller/Adminhtml/Product/Widget/Conditions.php
@@ -32,7 +32,7 @@ class Conditions extends \Magento\CatalogWidget\Controller\Adminhtml\Product\Wid
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeData = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php b/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
index 984b420c0bd..5b76de4974c 100644
--- a/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
+++ b/app/code/Magento/CatalogWidget/Test/Unit/Controller/Adminhtml/Product/Widget/ConditionsTest.php
@@ -94,6 +94,6 @@ class ConditionsTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')->will($this->returnValue($condition));
 
         $this->response->expects($this->once())->method('setBody')->with('<some_html>')->will($this->returnSelf());
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Controller/Account/Create.php b/app/code/Magento/Checkout/Controller/Account/Create.php
index 4e8514699c1..c6f7ccb7c60 100644
--- a/app/code/Magento/Checkout/Controller/Account/Create.php
+++ b/app/code/Magento/Checkout/Controller/Account/Create.php
@@ -52,7 +52,7 @@ class Create extends \Magento\Framework\App\Action\Action
      * @throws \Exception
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->customerSession->isLoggedIn()) {
             $this->messageManager->addError(__("Customer is already registered"));
diff --git a/app/code/Magento/Checkout/Controller/Cart/Add.php b/app/code/Magento/Checkout/Controller/Cart/Add.php
index 6e4b71de00f..1106eab2282 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Add.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Add.php
@@ -75,7 +75,7 @@ class Add extends \Magento\Checkout\Controller\Cart
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Cart/Addgroup.php b/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
index 0665e0c2915..abaed132df4 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Addgroup.php
@@ -11,7 +11,7 @@ class Addgroup extends \Magento\Checkout\Controller\Cart
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $orderItemIds = $this->getRequest()->getParam('order_items', []);
         if (is_array($orderItemIds)) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/Configure.php b/app/code/Magento/Checkout/Controller/Cart/Configure.php
index bd614ec3110..f1086d86f2c 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Configure.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Configure.php
@@ -48,7 +48,7 @@ class Configure extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Extract item and product to configure
         $id = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
index 2496709c162..421effe5552 100644
--- a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php
@@ -61,7 +61,7 @@ class CouponPost extends \Magento\Checkout\Controller\Cart
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $couponCode = $this->getRequest()->getParam('remove') == 1
             ? ''
diff --git a/app/code/Magento/Checkout/Controller/Cart/Delete.php b/app/code/Magento/Checkout/Controller/Cart/Delete.php
index 3d73a5f0c20..873133f3cbb 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Delete.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
index 2ce3a8805e8..e7808167252 100644
--- a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php
@@ -50,7 +50,7 @@ class EstimatePost extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $country = (string)$this->getRequest()->getParam('country_id');
         $postcode = (string)$this->getRequest()->getParam('estimate_postcode');
diff --git a/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php b/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
index 0dcd81a8e01..da121bf5cb4 100644
--- a/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/EstimateUpdatePost.php
@@ -11,7 +11,7 @@ class EstimateUpdatePost extends \Magento\Checkout\Controller\Cart
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $code = (string)$this->getRequest()->getParam('estimate_method');
         if (!empty($code)) {
diff --git a/app/code/Magento/Checkout/Controller/Cart/Index.php b/app/code/Magento/Checkout/Controller/Cart/Index.php
index 1486c2b8487..3a6ffc2d9de 100644
--- a/app/code/Magento/Checkout/Controller/Cart/Index.php
+++ b/app/code/Magento/Checkout/Controller/Cart/Index.php
@@ -49,7 +49,7 @@ class Index extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->set(__('Shopping Cart'));
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
index c3e38a96dd3..9b5dcc0f396 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php
@@ -15,7 +15,7 @@ class UpdateItemOptions extends \Magento\Checkout\Controller\Cart
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $params = $this->getRequest()->getParams();
diff --git a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
index 71685ea0005..73261faf037 100644
--- a/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
+++ b/app/code/Magento/Checkout/Controller/Cart/UpdatePost.php
@@ -64,7 +64,7 @@ class UpdatePost extends \Magento\Checkout\Controller\Cart
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Index/Index.php b/app/code/Magento/Checkout/Controller/Index/Index.php
index 0bb9c2fe851..73de6be7b12 100644
--- a/app/code/Magento/Checkout/Controller/Index/Index.php
+++ b/app/code/Magento/Checkout/Controller/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Checkout\Controller\Onepage
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Checkout\Helper\Data $checkoutHelper */
         $checkoutHelper = $this->_objectManager->get('Magento\Checkout\Helper\Data');
diff --git a/app/code/Magento/Checkout/Controller/Noroute/Index.php b/app/code/Magento/Checkout/Controller/Noroute/Index.php
index e8925820094..6c1821f30ed 100644
--- a/app/code/Magento/Checkout/Controller/Noroute/Index.php
+++ b/app/code/Magento/Checkout/Controller/Noroute/Index.php
@@ -17,7 +17,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return void
      * @codeCoverageIgnore
      */
-    public function execute()
+    public function executeInternal()
     {
         throw new NotFoundException(__('Page not found.'));
     }
diff --git a/app/code/Magento/Checkout/Controller/Onepage.php b/app/code/Magento/Checkout/Controller/Onepage.php
index 38e141855f3..2bfbf61db7a 100644
--- a/app/code/Magento/Checkout/Controller/Onepage.php
+++ b/app/code/Magento/Checkout/Controller/Onepage.php
@@ -141,7 +141,7 @@ abstract class Onepage extends Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         $result = $this->_preDispatchValidateCustomer();
@@ -158,7 +158,7 @@ abstract class Onepage extends Action
         if (!$this->_canShowForUnregisteredUsers()) {
             throw new NotFoundException(__('Page not found.'));
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Checkout/Controller/Onepage/Failure.php b/app/code/Magento/Checkout/Controller/Onepage/Failure.php
index e6155dbea29..dcff66c6c29 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/Failure.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/Failure.php
@@ -11,7 +11,7 @@ class Failure extends \Magento\Checkout\Controller\Onepage
     /**
      * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId();
         $lastOrderId = $this->getOnepage()->getCheckout()->getLastOrderId();
diff --git a/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php b/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
index 6c66fd165de..55fded81c19 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php
@@ -17,7 +17,7 @@ class SaveOrder extends \Magento\Checkout\Controller\Onepage
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
             return $this->resultRedirectFactory->create()->setPath('*/*/');
diff --git a/app/code/Magento/Checkout/Controller/Onepage/Success.php b/app/code/Magento/Checkout/Controller/Onepage/Success.php
index 6287f478544..18155e5c61d 100644
--- a/app/code/Magento/Checkout/Controller/Onepage/Success.php
+++ b/app/code/Magento/Checkout/Controller/Onepage/Success.php
@@ -13,7 +13,7 @@ class Success extends \Magento\Checkout\Controller\Onepage
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->getOnepage()->getCheckout();
         if (!$this->_objectManager->get('Magento\Checkout\Model\Session\SuccessValidator')->isValid()) {
diff --git a/app/code/Magento/Checkout/Controller/ShippingRates/Index.php b/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
index c407b0bab65..ea8a4da9076 100644
--- a/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
+++ b/app/code/Magento/Checkout/Controller/ShippingRates/Index.php
@@ -41,7 +41,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\Controller\ResultInterface
      * @throws Action\NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $quote = $this->checkoutSession->getQuote();
         $address = $quote->getShippingAddress();
diff --git a/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php b/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
index 0eac880fcbd..307cc0ae49a 100644
--- a/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
+++ b/app/code/Magento/Checkout/Controller/Sidebar/RemoveItem.php
@@ -61,7 +61,7 @@ class RemoveItem extends Action
     /**
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item_id');
         try {
diff --git a/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php b/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
index e5504082d6f..434276d6951 100644
--- a/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
+++ b/app/code/Magento/Checkout/Controller/Sidebar/UpdateItemQty.php
@@ -52,7 +52,7 @@ class UpdateItemQty extends Action
     /**
      * @return $this
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item_id');
         $itemQty = (int)$this->getRequest()->getParam('item_qty');
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
index 2e3ce377ab7..43e765cea0a 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Account/CreateTest.php
@@ -65,7 +65,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase
     {
         $this->customerSession->expects($this->once())->method('isLoggedIn')->will($this->returnValue(true));
         $this->messageManager->expects($this->once())->method('addError')->with();
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecute()
@@ -76,6 +76,6 @@ class CreateTest extends \PHPUnit_Framework_TestCase
         $this->orderCustomerService->expects($this->once())->method('create')->with(100)->will(
             $this->returnValue($customer)
         );
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
index 35fff77a2b4..9c2664a966a 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/ConfigureTest.php
@@ -162,7 +162,7 @@ class ConfigureTest extends \PHPUnit_Framework_TestCase
 
         $productMock->expects($this->exactly(2))->method('getId')->willReturn($actualProductId);
 
-        $this->assertSame($pageMock, $this->configureController->execute());
+        $this->assertSame($pageMock, $this->configureController->executeInternal());
     }
 
     /**
@@ -206,6 +206,6 @@ class ConfigureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with(ResultFactory::TYPE_REDIRECT, [])
             ->willReturn($this->resultRedirectMock);
-        $this->assertSame($this->resultRedirectMock, $this->configureController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->configureController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
index 99e3ccd1a7c..42453493e53 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php
@@ -174,7 +174,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('getQuote')
             ->willReturn($this->quote);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithGoodCouponAndItems()
@@ -232,7 +232,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithGoodCouponAndNoItems()
@@ -286,7 +286,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithBadCouponAndItems()
@@ -337,7 +337,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->with('You canceled the coupon code.')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithBadCouponAndNoItems()
@@ -382,6 +382,6 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
index fc219940727..7fe1d10605d 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/IndexTest.php
@@ -156,7 +156,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->resultPageFactory->expects($this->once())
             ->method('create')
             ->willReturn($page);
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
         $this->assertInstanceOf('Magento\Framework\View\Result\Page', $result);
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
index c0f13dc4094..85d242087e6 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Index/IndexTest.php
@@ -192,7 +192,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         //Expected outcomes
         $this->sessionMock->expects($this->once())->method('regenerateId');
-        $this->assertSame($this->resultPageMock, $this->model->execute());
+        $this->assertSame($this->resultPageMock, $this->model->executeInternal());
     }
 
     public function testOnepageCheckoutNotAvailable()
@@ -205,7 +205,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->with($expectedPath)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testInvalidQuote()
@@ -218,7 +218,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->with($expectedPath)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
index 659fa90754e..8afa4c6326d 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/OnepageTest.php
@@ -100,6 +100,6 @@ class OnepageTest extends \PHPUnit_Framework_TestCase
             ->method('getActionName')
             ->willReturn('index');
 
-        $this->assertEquals($this->response, $this->controller->dispatch($this->request));
+        $this->assertEquals($this->response, $this->controller->execute($this->request));
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
index d2cf39386d2..4e8b5690ab1 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/RemoveItemTest.php
@@ -113,7 +113,7 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 
     public function testExecuteWithLocalizedException()
@@ -153,7 +153,7 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -200,6 +200,6 @@ class RemoveItemTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->removeItem->execute());
+        $this->assertEquals('json represented', $this->removeItem->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
index b36cbed010b..dd666066f96 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Sidebar/UpdateItemQtyTest.php
@@ -110,7 +110,7 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 
     public function testExecuteWithLocalizedException()
@@ -154,7 +154,7 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -205,6 +205,6 @@ class UpdateItemQtyTest extends \PHPUnit_Framework_TestCase
             ->with('json encoded')
             ->willReturn('json represented');
 
-        $this->assertEquals('json represented', $this->updateItemQty->execute());
+        $this->assertEquals('json represented', $this->updateItemQty->executeInternal());
     }
 }
diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php b/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
index 0ee81629337..01d5acd4222 100644
--- a/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
+++ b/app/code/Magento/Checkout/Test/Unit/Controller/Stub/OnepageStub.php
@@ -8,7 +8,7 @@ namespace Magento\Checkout\Test\Unit\Controller\Stub;
 
 class OnepageStub extends \Magento\Checkout\Controller\Onepage
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
index 8ca81a642df..72b54d8986c 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $model = $this->_objectManager->get('Magento\CheckoutAgreements\Model\Agreement')->load($id);
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
index 01fcef39eaf..117905e8c50 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Edit.php
@@ -12,7 +12,7 @@ class Edit extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $agreementModel = $this->_objectManager->create('Magento\CheckoutAgreements\Model\Agreement');
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
index 5327672f749..e290737d272 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_addContent(
             $this->_view->getLayout()->createBlock('Magento\CheckoutAgreements\Block\Adminhtml\Agreement')
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
index 49c4368bc67..666d8e90763 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/NewAction.php
@@ -12,7 +12,7 @@ class NewAction extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreeme
      * @return void
      * @codeCoverageIgnore
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
index ffdfd74395d..d85847caab2 100644
--- a/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
+++ b/app/code/Magento/CheckoutAgreements/Controller/Adminhtml/Agreement/Save.php
@@ -11,7 +11,7 @@ class Save extends \Magento\CheckoutAgreements\Controller\Adminhtml\Agreement
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $postData = $this->getRequest()->getPostValue();
         if ($postData) {
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
index 107b5f4eb9e..3a11c2b4ff0 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
index bc8f586567c..bd0a0fbb62e 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Edit.php
@@ -33,7 +33,7 @@ class Edit extends \Magento\Cms\Controller\Adminhtml\Block
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('block_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
index b81e879b917..5e36a87e5a7 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
index 6ce12cfbf02..4d8a7f238bc 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/InlineEdit.php
@@ -36,7 +36,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->jsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
index a173e9f3dac..3b45c6902d2 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php
@@ -44,7 +44,7 @@ class MassDelete extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $collectionSize = $collection->getSize();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
index bc87b5cb808..29e37ffeaef 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/NewAction.php
@@ -32,7 +32,7 @@ class NewAction extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
index c6e17f07cbf..9582e89c995 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Cms\Controller\Adminhtml\Block
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
index e785e256d97..363805df349 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/Widget/Chooser.php
@@ -39,7 +39,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Layout $layout */
         $layout = $this->layoutFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
index 278515e3f10..3ae84ce63e7 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php
@@ -21,7 +21,7 @@ class Delete extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // check if we know what should be deleted
         $id = $this->getRequest()->getParam('page_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
index c53641376c4..716e51bc0b4 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Edit.php
@@ -67,7 +67,7 @@ class Edit extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('page_id');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
index 61405419a00..7be6ad88b7b 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Index.php
@@ -42,7 +42,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
index 52882ff71fd..762d5384afe 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/InlineEdit.php
@@ -47,7 +47,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->jsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
index 45314ebf2d9..9ab84769739 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php
@@ -43,7 +43,7 @@ class MassDelete extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
         $collectionSize = $collection->getSize();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
index 8d8da00375c..cda4e802f06 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php
@@ -43,7 +43,7 @@ class MassDisable extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
index aa44d34ea78..a904249e653 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php
@@ -43,7 +43,7 @@ class MassEnable extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $collection = $this->filter->getCollection($this->collectionFactory->create());
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
index 100c0b05f2a..9f816a59252 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/NewAction.php
@@ -38,7 +38,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
index 6858ef9cadf..276073e1e96 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php
@@ -38,7 +38,7 @@ class Save extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
index 49e8206f822..493ae73a83d 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/Widget/Chooser.php
@@ -40,7 +40,7 @@ class Chooser extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         /** @var \Magento\Framework\View\Layout $layout */
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
index 51d1fc3502b..05e6350da2b 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Directive.php
@@ -40,7 +40,7 @@ class Directive extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $directive = $this->getRequest()->getParam('___directive');
         $directive = $this->urlDecoder->decode($directive);
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
index 0b115525837..05c8912acf8 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Contents.php
@@ -53,7 +53,7 @@ class Contents extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction()->_saveSessionCurrentPath();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
index 73389122633..1af77052535 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFiles.php
@@ -43,7 +43,7 @@ class DeleteFiles extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->getRequest()->isPost()) {
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
index 2566d3159e4..45a85b1d009 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/DeleteFolder.php
@@ -40,7 +40,7 @@ class DeleteFolder extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->getStorage()->getCmsWysiwygImages()->getCurrentPath();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
index 3c22b5fbcb0..eacf2cb6268 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeId = (int)$this->getRequest()->getParam('store');
 
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
index 24240b5ab25..8077f38a5a4 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/NewFolder.php
@@ -32,7 +32,7 @@ class NewFolder extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
index 738cba1295e..b0d4818b940 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/OnInsert.php
@@ -32,7 +32,7 @@ class OnInsert extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $helper = $this->_objectManager->get('Magento\Cms\Helper\Wysiwyg\Images');
         $storeId = $this->getRequest()->getParam('store');
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
index a5a2d6bbc2a..9412c2471a0 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Thumbnail.php
@@ -35,7 +35,7 @@ class Thumbnail extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = $this->getRequest()->getParam('file');
         $file = $this->_objectManager->get('Magento\Cms\Helper\Wysiwyg\Images')->idDecode($file);
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
index 9d70dd5a038..1690cb3d708 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/TreeJson.php
@@ -40,7 +40,7 @@ class TreeJson extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
index b05ff1ac92b..0811d0572db 100644
--- a/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
+++ b/app/code/Magento/Cms/Controller/Adminhtml/Wysiwyg/Images/Upload.php
@@ -32,7 +32,7 @@ class Upload extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initAction();
diff --git a/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php b/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
index 91cb0939634..51c6ec15a24 100644
--- a/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
+++ b/app/code/Magento/Cms/Controller/Index/DefaultNoRoute.php
@@ -27,7 +27,7 @@ class DefaultNoRoute extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\LayoutFactory
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultPageFactory->create();
         $resultLayout->setStatusHeader(404, '1.1', 'Not Found');
diff --git a/app/code/Magento/Cms/Controller/Index/Index.php b/app/code/Magento/Cms/Controller/Index/Index.php
index fe007e0d517..969ad75a366 100644
--- a/app/code/Magento/Cms/Controller/Index/Index.php
+++ b/app/code/Magento/Cms/Controller/Index/Index.php
@@ -32,7 +32,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\Controller\Result\Forward
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function execute($coreRoute = null)
+    public function executeInternal($coreRoute = null)
     {
         $pageId = $this->_objectManager->get(
             'Magento\Framework\App\Config\ScopeConfigInterface'
diff --git a/app/code/Magento/Cms/Controller/Noroute/Index.php b/app/code/Magento/Cms/Controller/Noroute/Index.php
index 18c4d218147..16d67c38a81 100644
--- a/app/code/Magento/Cms/Controller/Noroute/Index.php
+++ b/app/code/Magento/Cms/Controller/Noroute/Index.php
@@ -30,7 +30,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $pageId = $this->_objectManager->get(
             'Magento\Framework\App\Config\ScopeConfigInterface',
diff --git a/app/code/Magento/Cms/Controller/Page/View.php b/app/code/Magento/Cms/Controller/Page/View.php
index 4775fc3fe93..0c185380200 100644
--- a/app/code/Magento/Cms/Controller/Page/View.php
+++ b/app/code/Magento/Cms/Controller/Page/View.php
@@ -30,7 +30,7 @@ class View extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $pageId = $this->getRequest()->getParam('page_id', $this->getRequest()->getParam('id', false));
         $resultPage = $this->_objectManager->get('Magento\Cms\Helper\Page')->prepareResultPage($this, $pageId);
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
index c32d11572cf..08c23452659 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php
@@ -148,7 +148,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionNoId()
@@ -168,7 +168,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionThrowsException()
@@ -195,6 +195,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
index b2432abc0cb..a48b5b69ea8 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/EditTest.php
@@ -154,7 +154,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->editController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->editController->executeInternal());
     }
 
     /**
@@ -220,7 +220,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($pageConfigMock);
 
-        $this->assertSame($resultPageMock, $this->editController->execute());
+        $this->assertSame($resultPageMock, $this->editController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
index 81164feafac..4c52ac86c94 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php
@@ -80,7 +80,7 @@ class MassDeleteTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
index 0a1c7be6c95..04f6ac3f081 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/SaveTest.php
@@ -216,14 +216,14 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionWithoutData()
     {
         $this->requestMock->expects($this->any())->method('getPostValue')->willReturn(false);
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionNoId()
@@ -256,7 +256,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRedirect->expects($this->atLeastOnce())->method('setPath')->with('*/*/') ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveAndContinue()
@@ -303,7 +303,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 
     public function testSaveActionThrowsException()
@@ -352,6 +352,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['block_id' => $this->blockId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->saveController->execute());
+        $this->assertSame($this->resultRedirect, $this->saveController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
index 4d2b25a708d..e218e22421c 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/DeleteTest.php
@@ -146,7 +146,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionNoId()
@@ -166,7 +166,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 
     public function testDeleteActionThrowsException()
@@ -210,6 +210,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit', ['page_id' => $this->pageId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->deleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->deleteController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
index 8402fbc8f3b..3024c271a3e 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/InlineEditTest.php
@@ -163,7 +163,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithRuntimeException()
@@ -184,7 +184,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -205,7 +205,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithoutData()
@@ -231,7 +231,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testSetCmsPageData()
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
index 98a5df2b619..72cd0cedba3 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php
@@ -80,7 +80,7 @@ class MassDeleteTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDeleteController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
index 688cc87fa09..f8d82e0b863 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php
@@ -85,7 +85,7 @@ class MassDisableTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massDisableController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
index 661231aa012..f7460ae29cb 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php
@@ -85,7 +85,7 @@ class MassEnableTest extends AbstractMassActionTest
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->massEnableController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
index 7d0ec584d46..b0120b54ae0 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Wysiwyg/DirectiveTest.php
@@ -157,7 +157,7 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::execute
+     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::executeInternal
      */
     public function testExecute()
     {
@@ -188,12 +188,12 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertSame(
             $this->rawMock,
-            $this->wysiwygDirective->execute()
+            $this->wysiwygDirective->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::execute
+     * @covers \Magento\Cms\Controller\Adminhtml\Wysiwyg\Directive::executeInternal
      */
     public function testExecuteException()
     {
@@ -236,7 +236,7 @@ class DirectiveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertSame(
             $this->rawMock,
-            $this->wysiwygDirective->execute()
+            $this->wysiwygDirective->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
index 85cab72d2aa..37872f893c3 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Block/InlineEditTest.php
@@ -131,7 +131,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithoutData()
@@ -157,6 +157,6 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
index 3b4ecc8ee10..10bb82ac001 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Index/IndexTest.php
@@ -96,7 +96,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('prepareResultPage')
             ->with($this->controller, $this->pageId)
             ->willReturn($this->resultPageMock);
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteResultForward()
@@ -105,6 +105,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('defaultIndex')
             ->willReturnSelf();
-        $this->assertSame($this->forwardMock, $this->controller->execute());
+        $this->assertSame($this->forwardMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
index 4ff2bcaa752..444a1d76725 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Noroute/IndexTest.php
@@ -113,7 +113,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         );
         $this->assertSame(
             $this->resultPageMock,
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 
@@ -146,7 +146,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         );
         $this->assertSame(
             $this->forwardMock,
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
index df009be3bb0..5c15f13b931 100644
--- a/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
+++ b/app/code/Magento/Cms/Test/Unit/Controller/Page/ViewTest.php
@@ -89,7 +89,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('prepareResultPage')
             ->with($this->controller, $this->pageId)
             ->willReturn($this->resultPageMock);
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteResultForward()
@@ -106,6 +106,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('noroute')
             ->willReturnSelf();
-        $this->assertSame($this->forwardMock, $this->controller->execute());
+        $this->assertSame($this->forwardMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php b/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
index 92e50151a75..57b28ebdd42 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/AbstractConfig.php
@@ -44,12 +44,12 @@ abstract class AbstractConfig extends \Magento\Backend\App\AbstractAction
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$request->getParam('section')) {
             $request->setParam('section', $this->_configStructure->getFirstSection()->getId());
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
index 9f8bf3a73f1..ad25ce834a5 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Edit.php
@@ -36,7 +36,7 @@ class Edit extends AbstractScopeConfig
      *
      * @return \Magento\Framework\App\ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $current = $this->getRequest()->getParam('section');
         $website = $this->getRequest()->getParam('website');
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
index 2513c9cb00f..f92619feb04 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Index.php
@@ -36,7 +36,7 @@ class Index extends AbstractScopeConfig
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
index d18c4ffc4bc..6dea5197bb4 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/Save.php
@@ -141,7 +141,7 @@ class Save extends AbstractConfig
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             // custom save logic
diff --git a/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php b/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
index d1f299e6a32..9ac46a6dcb3 100644
--- a/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
+++ b/app/code/Magento/Config/Controller/Adminhtml/System/Config/State.php
@@ -36,7 +36,7 @@ class State extends AbstractScopeConfig
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('isAjax')
             && $this->getRequest()->getParam('container') != ''
diff --git a/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php b/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
index eb5d66c4a62..3cbd4c901d1 100644
--- a/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
+++ b/app/code/Magento/Config/Test/Unit/Controller/Adminhtml/System/Config/SaveTest.php
@@ -213,7 +213,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($backendConfigMock)
         );
 
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionSaveState()
@@ -234,7 +234,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue($data)
         );
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionGetGroupForSave()
@@ -285,7 +285,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         );
         $backendConfigMock->expects($this->once())->method('save');
 
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 
     public function testIndexActionSaveAdvanced()
@@ -311,6 +311,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $backendConfigMock->expects($this->once())->method('save');
 
         $this->_cacheMock->expects($this->once())->method('clean')->with(\Zend_Cache::CLEANING_MODE_ALL);
-        $this->assertEquals($this->resultRedirect, $this->_controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->_controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
index 2377de0c5b9..ac318931264 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/AddAttribute.php
@@ -32,7 +32,7 @@ class AddAttribute extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('popup');
         $this->productBuilder->build($this->getRequest());
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
index 6eb4facfee9..6fb61d0548a 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Associated/Grid.php
@@ -33,7 +33,7 @@ class Grid extends Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
index 7516807654a..8e620c74944 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/CreateOptions.php
@@ -52,7 +52,7 @@ class CreateOptions extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->representJson($this->jsonHelper->jsonEncode($this->saveAttributeOptions()));
     }
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
index 39bee40024e..b0e66aba601 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/GetAttributes.php
@@ -60,7 +60,7 @@ class GetAttributes extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->storeManager->setCurrentStore(\Magento\Store\Model\Store::ADMIN_CODE);
         $collection = $this->collectionFactory->create();
diff --git a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
index 4135ea97ab6..1fabe24b05b 100644
--- a/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
+++ b/app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributes.php
@@ -61,7 +61,7 @@ class SuggestConfigurableAttributes extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->storeManager->setCurrentStore(\Magento\Store\Model\Store::ADMIN_CODE);
 
diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
index f37d40eccf0..228f44a9a50 100644
--- a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
+++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/AddAttributeTest.php
@@ -102,6 +102,6 @@ class AddAttributeTest extends \PHPUnit_Framework_TestCase
         $layout->expects($this->once())->method('setChild')->willReturnSelf();
         $this->view->expects($this->any())->method('renderLayout')->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
index d8b1fc5a051..24ace68cf47 100644
--- a/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
+++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Attribute/SuggestConfigurableAttributesTest.php
@@ -86,6 +86,6 @@ class SuggestConfigurableAttributesTest extends \PHPUnit_Framework_TestCase
             $this->returnValue('body')
         );
         $this->responseMock->expects($this->once())->method('representJson')->with('body');
-        $this->suggestAttributes->execute();
+        $this->suggestAttributes->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Controller/Index.php b/app/code/Magento/Contact/Controller/Index.php
index 8a04b5b7b1d..28272b87d0c 100644
--- a/app/code/Magento/Contact/Controller/Index.php
+++ b/app/code/Magento/Contact/Controller/Index.php
@@ -82,11 +82,11 @@ abstract class Index extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED, ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Contact/Controller/Index/Index.php b/app/code/Magento/Contact/Controller/Index/Index.php
index 247728f63f8..c1ff54c71f7 100644
--- a/app/code/Magento/Contact/Controller/Index/Index.php
+++ b/app/code/Magento/Contact/Controller/Index/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Contact\Controller\Index
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Contact/Controller/Index/Post.php b/app/code/Magento/Contact/Controller/Index/Post.php
index f5114cd6f68..854a2e15610 100644
--- a/app/code/Magento/Contact/Controller/Index/Post.php
+++ b/app/code/Magento/Contact/Controller/Index/Post.php
@@ -14,7 +14,7 @@ class Post extends \Magento\Contact\Controller\Index
      * @return void
      * @throws \Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         $post = $this->getRequest()->getPostValue();
         if (!$post) {
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
index a914cf698e3..9a980ca0b7c 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php
@@ -99,6 +99,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->_view->expects($this->once())
             ->method('renderLayout');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php b/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
index a508c25a445..d062bb7ad9c 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Index/PostTest.php
@@ -135,7 +135,7 @@ class PostTest extends \PHPUnit_Framework_TestCase
     {
         $this->_request->expects($this->once())->method('getPostValue')->will($this->returnValue([]));
         $this->_redirect->expects($this->once())->method('redirect');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     /**
@@ -157,7 +157,7 @@ class PostTest extends \PHPUnit_Framework_TestCase
         $this->_inlineTranslation->expects($this->once())
             ->method('suspend');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testPostDataProvider()
@@ -224,6 +224,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
         $this->_inlineTranslation->expects($this->once())
             ->method('suspend');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
index 93f055f4d0a..b27d4db46d4 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php
@@ -78,7 +78,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             )
             ->will($this->returnValue(false));
 
-        $this->_controller->dispatch(
+        $this->_controller->execute(
             $this->getMockForAbstractClass('\Magento\Framework\App\RequestInterface', [], '', false)
         );
     }
diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php b/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
index 4d4320d4acb..4966ddd26be 100644
--- a/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
+++ b/app/code/Magento/Contact/Test/Unit/Controller/Stub/IndexStub.php
@@ -8,7 +8,7 @@ namespace Magento\Contact\Test\Unit\Controller\Stub;
 
 class IndexStub extends \Magento\Contact\Controller\Index
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/app/code/Magento/Cookie/Controller/Index/NoCookies.php b/app/code/Magento/Cookie/Controller/Index/NoCookies.php
index c8ce45e0a38..edf4949fb0b 100644
--- a/app/code/Magento/Cookie/Controller/Index/NoCookies.php
+++ b/app/code/Magento/Cookie/Controller/Index/NoCookies.php
@@ -13,7 +13,7 @@ class NoCookies extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirect = new \Magento\Framework\DataObject();
         $this->_eventManager->dispatch(
diff --git a/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php b/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
index 7e2db7aeaf5..0d9c3439eda 100644
--- a/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
+++ b/app/code/Magento/Cookie/Test/Unit/Controller/Index/NoCookiesTest.php
@@ -95,7 +95,7 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteRedirectPath()
@@ -126,7 +126,7 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteDefault()
@@ -139,6 +139,6 @@ class NoCookiesTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue());
 
         // Make the call to test
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
index 08cb0511025..9cc52750b3d 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRates.php
@@ -16,7 +16,7 @@ class FetchRates extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Cur
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\Session $backendSession */
         $backendSession = $this->_objectManager->get('Magento\Backend\Model\Session');
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
index 751020010a7..1646068a7c4 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currency
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_CurrencySymbol::system_currency_rates');
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
index 01ba604f110..06e2a760d25 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/SaveRates.php
@@ -16,7 +16,7 @@ class SaveRates extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Curr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParam('rate');
         if (is_array($data)) {
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
index 12ae3374a88..fdc897735d1 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currency
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // set active menu and breadcrumbs
         $this->_view->loadLayout();
diff --git a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
index 716ca26e493..86cb38a43a2 100644
--- a/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
+++ b/app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencys
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $symbolsDataArray = $this->getRequest()->getParam('custom_currency_symbol', null);
         if (is_array($symbolsDataArray)) {
diff --git a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
index b75df9bce15..5584c064d30 100644
--- a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
+++ b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/IndexTest.php
@@ -106,6 +106,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->viewMock->expects($this->atLeastOnce())->method('getLayout')->willReturn($this->layoutMock);
         $this->viewMock->expects($this->atLeastOnce())->method('getPage')->willReturn($this->pageMock);
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
index 5d6b9d997fc..7e730e7da55 100644
--- a/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
+++ b/app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php
@@ -143,6 +143,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with(__('You applied the custom currency symbols.'));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Controller/Account/Confirm.php b/app/code/Magento/Customer/Controller/Account/Confirm.php
index 24037307539..26fcce39f20 100644
--- a/app/code/Magento/Customer/Controller/Account/Confirm.php
+++ b/app/code/Magento/Customer/Controller/Account/Confirm.php
@@ -86,7 +86,7 @@ class Confirm extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Customer/Controller/Account/Confirmation.php b/app/code/Magento/Customer/Controller/Account/Confirmation.php
index 6f050098deb..a1da7d92d79 100644
--- a/app/code/Magento/Customer/Controller/Account/Confirmation.php
+++ b/app/code/Magento/Customer/Controller/Account/Confirmation.php
@@ -59,7 +59,7 @@ class Confirmation extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/Create.php b/app/code/Magento/Customer/Controller/Account/Create.php
index 51e1c151ea8..fa910d2fbad 100644
--- a/app/code/Magento/Customer/Controller/Account/Create.php
+++ b/app/code/Magento/Customer/Controller/Account/Create.php
@@ -51,7 +51,7 @@ class Create extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn() || !$this->registration->isAllowed()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/CreatePassword.php b/app/code/Magento/Customer/Controller/Account/CreatePassword.php
index f0288b1f2b4..889b2538eca 100644
--- a/app/code/Magento/Customer/Controller/Account/CreatePassword.php
+++ b/app/code/Magento/Customer/Controller/Account/CreatePassword.php
@@ -51,7 +51,7 @@ class CreatePassword extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resetPasswordToken = (string)$this->getRequest()->getParam('token');
         $customerId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Customer/Controller/Account/CreatePost.php b/app/code/Magento/Customer/Controller/Account/CreatePost.php
index 8d2c5b81fa4..3bd8c5bacf8 100644
--- a/app/code/Magento/Customer/Controller/Account/CreatePost.php
+++ b/app/code/Magento/Customer/Controller/Account/CreatePost.php
@@ -201,7 +201,7 @@ class CreatePost extends Action implements AccountInterface
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Edit.php b/app/code/Magento/Customer/Controller/Account/Edit.php
index 3f035bdcdf1..4c862f9509e 100644
--- a/app/code/Magento/Customer/Controller/Account/Edit.php
+++ b/app/code/Magento/Customer/Controller/Account/Edit.php
@@ -58,7 +58,7 @@ class Edit extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/EditPost.php b/app/code/Magento/Customer/Controller/Account/EditPost.php
index a61c551b171..8fbc85dac02 100644
--- a/app/code/Magento/Customer/Controller/Account/EditPost.php
+++ b/app/code/Magento/Customer/Controller/Account/EditPost.php
@@ -69,7 +69,7 @@ class EditPost extends Action implements AccountInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/ForgotPassword.php b/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
index daeb13e1eae..53139df7a1e 100644
--- a/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
+++ b/app/code/Magento/Customer/Controller/Account/ForgotPassword.php
@@ -44,7 +44,7 @@ class ForgotPassword extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php b/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
index be1d15b56e3..e40689ea1e5 100644
--- a/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
+++ b/app/code/Magento/Customer/Controller/Account/ForgotPasswordPost.php
@@ -51,7 +51,7 @@ class ForgotPasswordPost extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Index.php b/app/code/Magento/Customer/Controller/Account/Index.php
index c99d8dd199e..db90eec8363 100644
--- a/app/code/Magento/Customer/Controller/Account/Index.php
+++ b/app/code/Magento/Customer/Controller/Account/Index.php
@@ -35,7 +35,7 @@ class Index extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Account/Login.php b/app/code/Magento/Customer/Controller/Account/Login.php
index ca404047dd2..72511c59423 100644
--- a/app/code/Magento/Customer/Controller/Account/Login.php
+++ b/app/code/Magento/Customer/Controller/Account/Login.php
@@ -44,7 +44,7 @@ class Login extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn()) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/LoginPost.php b/app/code/Magento/Customer/Controller/Account/LoginPost.php
index 7b6191eb255..b1b3a8b020c 100644
--- a/app/code/Magento/Customer/Controller/Account/LoginPost.php
+++ b/app/code/Magento/Customer/Controller/Account/LoginPost.php
@@ -67,7 +67,7 @@ class LoginPost extends Action implements AccountInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->session->isLoggedIn() || !$this->formKeyValidator->validate($this->getRequest())) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Account/Logout.php b/app/code/Magento/Customer/Controller/Account/Logout.php
index be0dcd6ba5e..4d070b401ce 100644
--- a/app/code/Magento/Customer/Controller/Account/Logout.php
+++ b/app/code/Magento/Customer/Controller/Account/Logout.php
@@ -35,7 +35,7 @@ class Logout extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastCustomerId = $this->session->getId();
         $this->session->logout()->setBeforeAuthUrl($this->_redirect->getRefererUrl())
diff --git a/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php b/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
index 77eb5314990..8185c93a60c 100644
--- a/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
+++ b/app/code/Magento/Customer/Controller/Account/LogoutSuccess.php
@@ -35,7 +35,7 @@ class LogoutSuccess extends Action implements AccountInterface
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php b/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
index 0e996ea9a80..1044c71379f 100644
--- a/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
+++ b/app/code/Magento/Customer/Controller/Account/ResetPasswordPost.php
@@ -51,7 +51,7 @@ class ResetPasswordPost extends Action implements AccountInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address.php b/app/code/Magento/Customer/Controller/Address.php
index b527db41ac0..f4ffb6c9dac 100644
--- a/app/code/Magento/Customer/Controller/Address.php
+++ b/app/code/Magento/Customer/Controller/Address.php
@@ -120,12 +120,12 @@ abstract class Address extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->_getSession()->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Customer/Controller/Address/Delete.php b/app/code/Magento/Customer/Controller/Address/Delete.php
index 6dfa17be32b..6c736e3fcdf 100644
--- a/app/code/Magento/Customer/Controller/Address/Delete.php
+++ b/app/code/Magento/Customer/Controller/Address/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\Customer\Controller\Address
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('id', false);
 
diff --git a/app/code/Magento/Customer/Controller/Address/Edit.php b/app/code/Magento/Customer/Controller/Address/Edit.php
index 0691ffd8ad5..5857b0c64b2 100644
--- a/app/code/Magento/Customer/Controller/Address/Edit.php
+++ b/app/code/Magento/Customer/Controller/Address/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address/Form.php b/app/code/Magento/Customer/Controller/Address/Form.php
index b30d453dce8..6699bf27d5e 100644
--- a/app/code/Magento/Customer/Controller/Address/Form.php
+++ b/app/code/Magento/Customer/Controller/Address/Form.php
@@ -13,7 +13,7 @@ class Form extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Address/FormPost.php b/app/code/Magento/Customer/Controller/Address/FormPost.php
index 9360ca0f7d6..eb3e6817dd0 100644
--- a/app/code/Magento/Customer/Controller/Address/FormPost.php
+++ b/app/code/Magento/Customer/Controller/Address/FormPost.php
@@ -176,7 +176,7 @@ class FormPost extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectUrl = null;
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
diff --git a/app/code/Magento/Customer/Controller/Address/Index.php b/app/code/Magento/Customer/Controller/Address/Index.php
index b445fa6fbfa..1d5c09e317b 100644
--- a/app/code/Magento/Customer/Controller/Address/Index.php
+++ b/app/code/Magento/Customer/Controller/Address/Index.php
@@ -68,7 +68,7 @@ class Index extends \Magento\Customer\Controller\Address
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $addresses = $this->customerRepository->getById($this->_getSession()->getCustomerId())->getAddresses();
         if (count($addresses)) {
diff --git a/app/code/Magento/Customer/Controller/Address/NewAction.php b/app/code/Magento/Customer/Controller/Address/NewAction.php
index 4bfdabbbd5e..9bd9402d5e2 100644
--- a/app/code/Magento/Customer/Controller/Address/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Address/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\Customer\Controller\Address
     /**
      * @return \Magento\Framework\Controller\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
index c74520cb965..ea8a214c16a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Configure.php
@@ -13,7 +13,7 @@ class Configure extends \Magento\Customer\Controller\Adminhtml\Cart\Product\Comp
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $configureResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
index 42f9ee513a8..7daaa2cc9ec 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart/Update.php
@@ -13,7 +13,7 @@ class Update extends \Magento\Customer\Controller\Adminhtml\Cart\Product\Composi
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $updateResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php b/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
index 92961f2a0d4..f4f788c61b7 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Customer/InvalidateToken.php
@@ -125,7 +125,7 @@ class InvalidateToken extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if ($customerId = $this->getRequest()->getParam('customer_id')) {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
index 17af771114f..5b3b91fcf05 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
index 303d2f4f1af..838cf9b940a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultForwardFactory->create()->forward('new');
     }
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
index 290e77238ff..f80a6fcaa27 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
index 0750422cd94..383af26a037 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/NewAction.php
@@ -28,7 +28,7 @@ class NewAction extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $groupId = $this->_initGroup();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php b/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
index a842d8653b3..a775194f12e 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Group/Save.php
@@ -67,7 +67,7 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Group
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $taxClass = (int)$this->getRequest()->getParam('tax_class');
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
index 9a3ca5645f5..096efc640be 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/AbstractMassAction.php
@@ -51,7 +51,7 @@ abstract class AbstractMassAction extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collection = $this->filter->getCollection($this->collectionFactory->create());
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
index e1c4dd68c9c..ff39bf28ac3 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php
@@ -14,7 +14,7 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $websiteId = $this->getRequest()->getParam('website_id');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
index 4c4cb77fa3b..fc4c0c0aeca 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Carts.php
@@ -12,7 +12,7 @@ class Carts extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
index 503969226aa..c8a0615408f 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Delete.php
@@ -14,7 +14,7 @@ class Delete extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $formKeyIsValid = $this->_formKeyValidator->validate($this->getRequest());
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
index 64af44a9bb8..0820fbea962 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Edit.php
@@ -18,7 +18,7 @@ class Edit extends \Magento\Customer\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
index b238a8287e7..fa9dfbd5529 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
index f97c48b0ebc..4cbc90e88a5 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php
@@ -60,7 +60,7 @@ class InlineEdit extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
index fa0dcca712a..4711b9e2b18 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/LastOrders.php
@@ -12,7 +12,7 @@ class LastOrders extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
index d3bdd1eadfd..bdb7a8b79a6 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/NewAction.php
@@ -12,7 +12,7 @@ class NewAction extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         $resultForward->forward('edit');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
index 6c27c0a46bd..6918cf84954 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Newsletter.php
@@ -12,7 +12,7 @@ class Newsletter extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         /** @var  \Magento\Newsletter\Model\Subscriber $subscriber */
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
index c825e5c24a8..1964c958428 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Orders.php
@@ -12,7 +12,7 @@ class Orders extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
index effaa2618f2..3a8f93a1c30 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ProductReviews.php
@@ -12,7 +12,7 @@ class ProductReviews extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
index c330eedde0f..43c2d474843 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ResetPassword.php
@@ -14,7 +14,7 @@ class ResetPassword extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $customerId = (int)$this->getRequest()->getParam('customer_id', 0);
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
index 2cbe283339d..b4aa639c817 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php
@@ -176,7 +176,7 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Index
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $returnToEdit = false;
         $originalRequestData = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
index bd7230f1aa1..001726280a4 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Validate.php
@@ -107,7 +107,7 @@ class Validate extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(0);
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
index ee95065596c..cda5a37bc0e 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewCart.php
@@ -12,7 +12,7 @@ class ViewCart extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
index 34fa6b66a11..2f201d26028 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/ViewWishlist.php
@@ -12,7 +12,7 @@ class ViewWishlist extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
index 52a8ea95f94..75341af2d6a 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Viewfile.php
@@ -129,7 +129,7 @@ class Viewfile extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = null;
         $plain = false;
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
index 6f7e0e3bfbd..c550f125dc7 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Wishlist.php
@@ -12,7 +12,7 @@ class Wishlist extends \Magento\Customer\Controller\Adminhtml\Index
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $customerId = $this->initCurrentCustomer();
         $itemId = (int)$this->getRequest()->getParam('delete');
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php b/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
index 8bd9ce97c34..172622ac176 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Online/Index.php
@@ -43,7 +43,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
index f1f638a852e..e8a7b96b4bb 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php
@@ -31,7 +31,7 @@ class Validate extends \Magento\Customer\Controller\Adminhtml\System\Config\Vali
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->_validate();
 
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
index b3df87ed9ff..8d8d3408687 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/ValidateAdvanced.php
@@ -30,7 +30,7 @@ class ValidateAdvanced extends \Magento\Customer\Controller\Adminhtml\System\Con
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->_validate();
         $valid = $result->getIsValid();
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
index 6101483eb98..31038f2bd08 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Configure.php
@@ -15,7 +15,7 @@ class Configure extends \Magento\Customer\Controller\Adminhtml\Wishlist\Product\
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $configureResult = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
index cb895085d7f..8e098708fb9 100644
--- a/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
+++ b/app/code/Magento/Customer/Controller/Adminhtml/Wishlist/Product/Composite/Wishlist/Update.php
@@ -15,7 +15,7 @@ class Update extends \Magento\Customer\Controller\Adminhtml\Wishlist\Product\Com
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // Update wishlist item
         $updateResult = new \Magento\Framework\DataObject();
diff --git a/app/code/Magento/Customer/Controller/Ajax/Login.php b/app/code/Magento/Customer/Controller/Ajax/Login.php
index 4258ebf1ef0..08b72b1e3ec 100644
--- a/app/code/Magento/Customer/Controller/Ajax/Login.php
+++ b/app/code/Magento/Customer/Controller/Ajax/Login.php
@@ -76,7 +76,7 @@ class Login extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $credentials = null;
         $httpBadRequestCode = 400;
diff --git a/app/code/Magento/Customer/Controller/Ajax/Logout.php b/app/code/Magento/Customer/Controller/Ajax/Logout.php
index 69ce4693b03..4d90a7ae39a 100644
--- a/app/code/Magento/Customer/Controller/Ajax/Logout.php
+++ b/app/code/Magento/Customer/Controller/Ajax/Logout.php
@@ -47,7 +47,7 @@ class Logout extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $lastCustomerId = $this->customerSession->getId();
         $this->customerSession->logout()
diff --git a/app/code/Magento/Customer/Controller/Review.php b/app/code/Magento/Customer/Controller/Review.php
index 2a667e4c3e7..396ad3da692 100644
--- a/app/code/Magento/Customer/Controller/Review.php
+++ b/app/code/Magento/Customer/Controller/Review.php
@@ -30,7 +30,7 @@ class Review extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultPageFactory->create();
     }
diff --git a/app/code/Magento/Customer/Controller/Section/Load.php b/app/code/Magento/Customer/Controller/Section/Load.php
index df4abe308ba..503c075d9bf 100644
--- a/app/code/Magento/Customer/Controller/Section/Load.php
+++ b/app/code/Magento/Customer/Controller/Section/Load.php
@@ -51,7 +51,7 @@ class Load extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\Controller\Result\Json|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Json $resultJson */
         $resultJson = $this->resultJsonFactory->create();
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
index f3dee06b411..0a0d2dbbefd 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ConfirmTest.php
@@ -190,7 +190,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->executeInternal());
     }
 
     /**
@@ -232,7 +232,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->with($this->equalTo($testUrl))
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->model->executeInternal());
     }
 
     /**
@@ -307,7 +307,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('getStore')
             ->will($this->returnValue($this->storeMock));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -404,7 +404,7 @@ class ConfirmTest extends \PHPUnit_Framework_TestCase
             )
             ->willReturn($isSetFlag);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
index 3a1172d0953..6ef1faa6378 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePasswordTest.php
@@ -108,7 +108,7 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createpassword', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithSession()
@@ -176,7 +176,7 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with($token)
             ->willReturnSelf();
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -225,6 +225,6 @@ class CreatePasswordTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
index c765dc83939..d8815ba253b 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreatePostTest.php
@@ -270,7 +270,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
         $this->customerRepository->expects($this->never())
             ->method('save');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testRegenerateIdOnExecution()
@@ -297,7 +297,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
         $this->storeManagerMock->expects($this->once())
             ->method('getStore')
             ->willReturn($this->storeMock);
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -391,7 +391,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
             ->method('getTaxCalculationAddressType')
             ->will($this->returnValue($addressType));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -539,7 +539,7 @@ class CreatePostTest extends \PHPUnit_Framework_TestCase
             ->method('getStore')
             ->will($this->returnValue($this->storeMock));
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function getSuccessRedirectDataProvider()
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
index 0706355a39f..894582be4b3 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/CreateTest.php
@@ -116,7 +116,7 @@ class CreateTest extends \PHPUnit_Framework_TestCase
         $this->resultPageMock->expects($this->never())
             ->method('getLayout');
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 
     /**
@@ -139,6 +139,6 @@ class CreateTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->willReturn($this->resultPageMock);
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
index 991a4b17eca..acd413d0006 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/EditPostTest.php
@@ -131,7 +131,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testNoPostValues()
@@ -150,7 +150,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testGeneralSave()
@@ -211,7 +211,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('customer/account')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -311,7 +311,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->willReturn($errors['counter']);
 
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -443,7 +443,7 @@ class EditPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/edit')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->model->execute());
+        $this->assertSame($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
index 8f060f2dd3b..0cf693299fe 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ForgotPasswordPostTest.php
@@ -107,7 +107,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecute()
@@ -143,7 +143,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteNoSuchEntityException()
@@ -179,7 +179,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteException()
@@ -207,7 +207,7 @@ class ForgotPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/forgotpassword')
             ->willReturnSelf();
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     protected function prepareContext()
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
index e71e413d7e1..ca9a975b7cd 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php
@@ -133,7 +133,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -176,7 +176,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyLoginData()
@@ -207,7 +207,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteSuccess()
@@ -255,7 +255,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -303,7 +303,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase
             ->method('getRedirect')
             ->willReturn($this->redirect);
 
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
index 6cb488a07c6..5581be2e75a 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/ResetPasswordPostTest.php
@@ -142,7 +142,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/login', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -208,7 +208,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithWrongConfirmation()
@@ -255,7 +255,7 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithEmptyPassword()
@@ -302,6 +302,6 @@ class ResetPasswordPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
index 39fa2018cff..e082233b6e2 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php
@@ -342,7 +342,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteNoPostData()
@@ -389,7 +389,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -575,7 +575,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function dataProviderTestExecute()
@@ -668,7 +668,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteException()
@@ -731,6 +731,6 @@ class FormPostTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
index 38d6e7d53ef..17c90338031 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/IndexTest.php
@@ -108,7 +108,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecute()
     {
@@ -140,12 +140,12 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\View\Result\Page',
-            $this->indexController->execute()
+            $this->indexController->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecuteAjax()
     {
@@ -161,7 +161,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->indexController->execute()
+            $this->indexController->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
index e806e302013..181b8dbab6e 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/InlineEditTest.php
@@ -259,7 +259,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->method('save')
             ->with($this->customerData);
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteWithoutItems()
@@ -283,7 +283,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
                 'error' => true,
             ])
             ->willReturnSelf();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteLocalizedException()
@@ -305,7 +305,7 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->with($exception);
 
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -327,6 +327,6 @@ class InlineEditTest extends \PHPUnit_Framework_TestCase
             ->with($exception);
 
         $this->prepareMocksForErrorMessagesProcessing();
-        $this->assertSame($this->resultJson, $this->controller->execute());
+        $this->assertSame($this->resultJson, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
index 4cbd57be538..f78e202b884 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassAssignGroupTest.php
@@ -172,7 +172,7 @@ class MassAssignGroupTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -191,6 +191,6 @@ class MassAssignGroupTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
index de91d73d10a..dcfc2084e26 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassDeleteTest.php
@@ -172,7 +172,7 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -191,6 +191,6 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
index 8aff6b96313..6e288583c1c 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassSubscribeTest.php
@@ -188,7 +188,7 @@ class MassSubscribeTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -207,6 +207,6 @@ class MassSubscribeTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
index 00eaa7546e7..9129be9c89f 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/MassUnsubscribeTest.php
@@ -188,7 +188,7 @@ class MassUnsubscribeTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/index')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -207,6 +207,6 @@ class MassUnsubscribeTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Some message.');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
index 97599618c34..36c3ff14267 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/NewsletterTest.php
@@ -256,7 +256,7 @@ class NewsletterTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\View\Result\Layout',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
index a4a9df750dc..416f8055bec 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ResetPasswordTest.php
@@ -236,7 +236,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 
@@ -290,7 +290,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 
@@ -329,7 +329,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             ->method('addMessage')
             ->with($error);
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionCoreExceptionWarn()
@@ -358,7 +358,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             ->method('addMessage')
             ->with(new \Magento\Framework\Message\Error($warningText));
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionException()
@@ -399,7 +399,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
             $this->equalTo('Something went wrong while resetting customer password.')
         );
 
-        $this->_testedObject->execute();
+        $this->_testedObject->executeInternal();
     }
 
     public function testResetPasswordActionSendEmail()
@@ -479,7 +479,7 @@ class ResetPasswordTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_testedObject->execute()
+            $this->_testedObject->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
index 95c875393ed..dee2600fb33 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/SaveTest.php
@@ -239,7 +239,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithExistentCustomer()
@@ -512,11 +512,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/edit', ['id' => $customerId, '_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomer()
@@ -760,11 +760,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/index', [])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndValidationException()
@@ -900,11 +900,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndLocalizedException()
@@ -1040,11 +1040,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
-     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Customer\Controller\Adminhtml\Index\Index::executeInternal
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testExecuteWithNewCustomerAndException()
@@ -1181,6 +1181,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('customer/*/new', ['_current' => true])
             ->willReturn(true);
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
index f4065cc205e..c7abdf3bb46 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ValidateTest.php
@@ -186,7 +186,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithoutAddresses()
@@ -225,7 +225,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -271,6 +271,6 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->willReturn($validationResult);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
index afa437c58ac..3b838c369b0 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/Index/ViewfileTest.php
@@ -107,7 +107,7 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
     {
         /** @var \Magento\Customer\Controller\Adminhtml\Index\Viewfile $controller */
         $controller = $this->objectManager->getObject('Magento\Customer\Controller\Adminhtml\Index\Viewfile');
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testExecuteParamFile()
@@ -154,7 +154,7 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
                 'fileFactory' => $fileFactoryMock
             ]
         );
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testExecuteGetParamImage()
@@ -217,6 +217,6 @@ class ViewfileTest extends \PHPUnit_Framework_TestCase
                 'resultRawFactory' => $this->resultRawFactoryMock
             ]
         );
-        $this->assertSame($this->resultRawMock, $controller->execute());
+        $this->assertSame($this->resultRawMock, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
index ac5625eadef..377f7d331a6 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php
@@ -104,7 +104,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ])
             ->willReturn($json);
 
-        $this->assertEquals($json, $this->controller->execute());
+        $this->assertEquals($json, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
index 77260f56c58..e1ec62d3537 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Ajax/LoginTest.php
@@ -204,7 +204,7 @@ class LoginTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->with($result)
             ->willReturn($loginSuccessResponse);
-        $this->assertEquals($loginSuccessResponse, $this->object->execute());
+        $this->assertEquals($loginSuccessResponse, $this->object->executeInternal());
     }
 
     public function testLoginFailure()
@@ -260,6 +260,6 @@ class LoginTest extends \PHPUnit_Framework_TestCase
             ->with($result)
             ->willReturn($loginFailureResponse);
 
-        $this->assertEquals($loginFailureResponse, $this->object->execute());
+        $this->assertEquals($loginFailureResponse, $this->object->executeInternal());
     }
 }
diff --git a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
index d078bd13b33..8afd580c5b4 100644
--- a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
+++ b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php
@@ -37,7 +37,7 @@ class ExportCsv extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers.csv';
diff --git a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
index 7a5edb1d278..686e829e3c5 100644
--- a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
+++ b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportXml.php
@@ -37,7 +37,7 @@ class ExportXml extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers.xml';
diff --git a/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php b/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
index 412028bdd8f..b8006ccfd07 100644
--- a/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
+++ b/app/code/Magento/Directory/Controller/Adminhtml/Json/CountryRegion.php
@@ -13,7 +13,7 @@ class CountryRegion extends \Magento\Backend\App\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $arrRes = [];
 
diff --git a/app/code/Magento/Directory/Controller/Currency/SwitchAction.php b/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
index b8aada56cf7..1a30600ef8a 100644
--- a/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
+++ b/app/code/Magento/Directory/Controller/Currency/SwitchAction.php
@@ -11,7 +11,7 @@ class SwitchAction extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
         $storeManager = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface');
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
index 6e056ee9e45..a762b2d52c2 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/File/Upload.php
@@ -69,7 +69,7 @@ class Upload extends \Magento\Downloadable\Controller\Adminhtml\Downloadable\Fil
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $type = $this->getRequest()->getParam('type');
         $tmpPath = '';
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
index 926491e0735..1d966b22bfb 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Form.php
@@ -13,7 +13,7 @@ class Form extends \Magento\Catalog\Controller\Adminhtml\Product\Edit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initProduct();
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
index 0da0cf5fb96..9cc1bb7b00f 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Link.php
@@ -77,7 +77,7 @@ class Link extends \Magento\Catalog\Controller\Adminhtml\Product\Edit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $linkId = $this->getRequest()->getParam('id', 0);
         $type = $this->getRequest()->getParam('type', 0);
diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
index 746b5242d5c..3176cb802ca 100644
--- a/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
+++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Downloadable/Product/Edit/Sample.php
@@ -31,7 +31,7 @@ class Sample extends \Magento\Downloadable\Controller\Adminhtml\Downloadable\Pro
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $sampleId = $this->getRequest()->getParam('id', 0);
         /** @var \Magento\Downloadable\Model\Sample $sample */
diff --git a/app/code/Magento/Downloadable/Controller/Customer/Products.php b/app/code/Magento/Downloadable/Controller/Customer/Products.php
index 78e865dd8c3..b05852738e1 100644
--- a/app/code/Magento/Downloadable/Controller/Customer/Products.php
+++ b/app/code/Magento/Downloadable/Controller/Customer/Products.php
@@ -34,14 +34,14 @@ class Products extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $loginUrl = $this->_objectManager->get('Magento\Customer\Model\Url')->getLoginUrl();
 
         if (!$this->_customerSession->authenticate($loginUrl)) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
@@ -49,7 +49,7 @@ class Products extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($block = $this->_view->getLayout()->getBlock('downloadable_customer_products_list')) {
diff --git a/app/code/Magento/Downloadable/Controller/Download/Link.php b/app/code/Magento/Downloadable/Controller/Download/Link.php
index c2cd4b91b92..59f49533c9e 100644
--- a/app/code/Magento/Downloadable/Controller/Download/Link.php
+++ b/app/code/Magento/Downloadable/Controller/Download/Link.php
@@ -31,7 +31,7 @@ class Link extends \Magento\Downloadable\Controller\Download
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->_getCustomerSession();
 
diff --git a/app/code/Magento/Downloadable/Controller/Download/LinkSample.php b/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
index 351fc26c55c..46747905711 100644
--- a/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
+++ b/app/code/Magento/Downloadable/Controller/Download/LinkSample.php
@@ -17,7 +17,7 @@ class LinkSample extends \Magento\Downloadable\Controller\Download
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $linkId = $this->getRequest()->getParam('link_id', 0);
         /** @var \Magento\Downloadable\Model\Link $link */
diff --git a/app/code/Magento/Downloadable/Controller/Download/Sample.php b/app/code/Magento/Downloadable/Controller/Download/Sample.php
index a8cecbc48bd..c6715dbf90c 100644
--- a/app/code/Magento/Downloadable/Controller/Download/Sample.php
+++ b/app/code/Magento/Downloadable/Controller/Download/Sample.php
@@ -17,7 +17,7 @@ class Sample extends \Magento\Downloadable\Controller\Download
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $sampleId = $this->getRequest()->getParam('sample_id', 0);
         /** @var \Magento\Downloadable\Model\Sample $sample */
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
index 7c1040876e8..1a900b56c3f 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/File/UploadTest.php
@@ -165,6 +165,6 @@ class UploadTest extends \PHPUnit_Framework_TestCase
         $this->resultFactory->expects($this->once())->method('create')->willReturn($resultJson);
         $resultJson->expects($this->once())->method('setData')->willReturnSelf();
 
-        $this->assertEquals($resultJson, $this->upload->execute());
+        $this->assertEquals($resultJson, $this->upload->executeInternal());
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
index 5e8c472595f..887e35d8b11 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/LinkTest.php
@@ -171,7 +171,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->linkModel));
 
-        $this->link->execute();
+        $this->link->executeInternal();
     }
 
     /**
@@ -217,7 +217,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->linkModel));
 
-        $this->link->execute();
+        $this->link->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
index 88f7b2a301c..e2de4bde347 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Downloadable/Product/Edit/SampleTest.php
@@ -164,7 +164,7 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->sampleModel));
 
-        $this->sample->execute();
+        $this->sample->executeInternal();
     }
 
     /**
@@ -205,6 +205,6 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->objectManager->expects($this->once())->method('create')
             ->will($this->returnValue($this->sampleModel));
 
-        $this->sample->execute();
+        $this->sample->executeInternal();
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
index 110ce5fe279..9d58bbd27ef 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkSampleTest.php
@@ -191,7 +191,7 @@ class LinkSampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->linkSample->execute());
+        $this->assertEquals($this->response, $this->linkSample->executeInternal());
     }
 
     public function testExecuteLinkTypeFile()
@@ -238,6 +238,6 @@ class LinkSampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->linkSample->execute());
+        $this->assertEquals($this->response, $this->linkSample->executeInternal());
     }
 }
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
index 7801f285941..939b3786f12 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/LinkTest.php
@@ -236,7 +236,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->with("We can't find the link you requested.");
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     public function testGetLinkForGuestCustomer()
@@ -287,7 +287,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->willReturn('before_auth_url');
         $this->session->expects($this->once())->method('setBeforeAuthUrl')->with('before_auth_url')->willReturnSelf();
 
-        $this->assertNull($this->link->execute());
+        $this->assertNull($this->link->executeInternal());
     }
 
     public function testGetLinkForWrongCustomer()
@@ -327,7 +327,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->with("We can't find the link you requested.");
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     public function testExceptionInUpdateLinkStatus()
@@ -371,7 +371,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
         $this->redirect->expects($this->once())->method('redirect')->with($this->response, '*/customer/products', []);
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     private function processDownload($resource, $resourceType)
@@ -448,7 +448,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase
         $this->linkPurchasedItem->expects($this->once())->method('getStatus')->willReturn($status);
         $this->messageManager->expects($this->once())->method($messageType)->with($notice)->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->link->execute());
+        $this->assertEquals($this->response, $this->link->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
index 7366846899d..42933e534d0 100644
--- a/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
+++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Download/SampleTest.php
@@ -191,7 +191,7 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->sample->execute());
+        $this->assertEquals($this->response, $this->sample->executeInternal());
     }
 
     public function testExecuteLinkTypeFile()
@@ -234,6 +234,6 @@ class SampleTest extends \PHPUnit_Framework_TestCase
         $this->redirect->expects($this->once())->method('getRedirectUrl')->willReturn('redirect_url');
         $this->response->expects($this->once())->method('setRedirect')->with('redirect_url')->willReturnSelf();
 
-        $this->assertEquals($this->response, $this->sample->execute());
+        $this->assertEquals($this->response, $this->sample->executeInternal());
     }
 }
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
index 116d8871017..3ffb0528e23 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/DefaultTemplate.php
@@ -32,7 +32,7 @@ class DefaultTemplate extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $template = $this->_initTemplate('id');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
index 7022d18ff3c..04127a7c311 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $template = $this->_initTemplate('id');
         if ($template->getId()) {
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
index 017f05898d9..653094a7baf 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $template = $this->_initTemplate('id');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
index 8205fa3e7df..0a63dad7192 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
index 39f16849345..892affd8da8 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
index 4e405353acf..b92f01f12bf 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
index fceea747f03..9ce1e0e4712 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout('systemPreview');
diff --git a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
index ecb8f8c55ad..be2022ffa7e 100644
--- a/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
+++ b/app/code/Magento/Email/Controller/Adminhtml/Email/Template/Save.php
@@ -15,7 +15,7 @@ class Save extends \Magento\Email\Controller\Adminhtml\Email\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
index 905318c274a..6838b1ba1b1 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/EditTest.php
@@ -184,7 +184,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::executeInternal
      */
     public function testExecuteNewTemplate()
     {
@@ -217,11 +217,11 @@ class EditTest extends \PHPUnit_Framework_TestCase
                 ]
             );
 
-        $this->assertNull($this->editController->execute());
+        $this->assertNull($this->editController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Edit::executeInternal
      */
     public function testExecuteEdit()
     {
@@ -254,6 +254,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
                 ]
             );
 
-        $this->assertNull($this->editController->execute());
+        $this->assertNull($this->editController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
index c5ada6573f6..974d4c41fc5 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
@@ -118,7 +118,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
     public function testExecute()
     {
@@ -157,11 +157,11 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('addLink')
             ->willReturnSelf();
 
-        $this->assertNull($this->indexController->execute());
+        $this->assertNull($this->indexController->executeInternal());
     }
 
     /**
-     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::execute
+     * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
     public function testExecuteAjax()
     {
diff --git a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
index 0c2ad5395a9..31b7833485f 100644
--- a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
+++ b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\App\DeploymentConfig\Writer $writer */
         $writer = $this->_objectManager->get('Magento\Framework\App\DeploymentConfig\Writer');
diff --git a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
index b06c18cae6b..6921d482c1d 100644
--- a/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
+++ b/app/code/Magento/EncryptionKey/Controller/Adminhtml/Crypt/Key/Save.php
@@ -50,7 +50,7 @@ class Save extends \Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $key = null;
diff --git a/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php b/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
index f4f69741834..13f8f772138 100644
--- a/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
+++ b/app/code/Magento/EncryptionKey/Test/Unit/Controller/Adminhtml/Crypt/Key/SaveTest.php
@@ -90,7 +90,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->cacheMock->expects($this->once())->method('clean');
         $this->responseMock->expects($this->once())->method('setRedirect');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testExecuteNonRandomAndWithoutCryptKey()
@@ -108,7 +108,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->willReturn($key);
         $this->managerMock->expects($this->once())->method('addErrorMessage');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     public function testExecuteRandom()
@@ -125,6 +125,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->cacheMock->expects($this->once())->method('clean');
         $this->responseMock->expects($this->once())->method('setRedirect');
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 }
diff --git a/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php b/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
index 5a46c44b01f..258c74c4baf 100644
--- a/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
+++ b/app/code/Magento/GroupedProduct/Controller/Adminhtml/Edit/Popup.php
@@ -62,7 +62,7 @@ class Popup extends AbstractAction
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('id');
 
diff --git a/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php b/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
index 4daa62a813c..fab1db70710 100644
--- a/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
+++ b/app/code/Magento/GroupedProduct/Test/Unit/Controller/Adminhtml/Edit/PopupTest.php
@@ -118,7 +118,7 @@ class PopupTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(3))->method('getParam')->with('set')->will($this->returnValue($setId));
         $this->registry->expects($this->once())->method('register')->with('current_product', $product);
 
-        $this->assertSame($this->resultLayoutMock, $this->action->execute());
+        $this->assertSame($this->resultLayoutMock, $this->action->executeInternal());
     }
 
     public function testPopupActionWithProductIdNoSetId()
@@ -155,6 +155,6 @@ class PopupTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(3))->method('getParam')->with('set')->will($this->returnValue($setId));
         $this->registry->expects($this->once())->method('register')->with('current_product', $product);
 
-        $this->assertSame($this->resultLayoutMock, $this->action->execute());
+        $this->assertSame($this->resultLayoutMock, $this->action->executeInternal());
     }
 }
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
index a223c72ccd1..343c24d9104 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Export.php
@@ -37,7 +37,7 @@ class Export extends ExportController
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPost(ExportModel::FILTER_ELEMENT_GROUP)) {
             try {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
index 7e50e5fca30..81d0aa4a8e3 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/GetFilter.php
@@ -15,7 +15,7 @@ class GetFilter extends ExportController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getParams();
         if ($this->getRequest()->isXmlHttpRequest() && $data) {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
index 9b1a0c3ecbd..a9f4b02e784 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Export/Index.php
@@ -15,7 +15,7 @@ class Index extends ExportController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
index 84d3cb4d59b..64ab7b253d8 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Download.php
@@ -37,7 +37,7 @@ class Download extends \Magento\ImportExport\Controller\Adminhtml\History
      *
      * @return void|\Magento\Backend\App\Action
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = $this->getRequest()->getParam('filename');
 
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
index 5c88c232807..df70dff2a40 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/History/Index.php
@@ -15,7 +15,7 @@ class Index extends HistoryController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
index 005a2b0cde1..240067a4f1f 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Download.php
@@ -65,7 +65,7 @@ class Download extends ImportController
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = $this->getRequest()->getParam('filename') . '.csv';
         $moduleDir = $this->reader->getModuleDir('', self::SAMPLE_FILES_MODULE);
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
index ec4f027d4a9..6bf064e6869 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Index.php
@@ -15,7 +15,7 @@ class Index extends ImportController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addNotice(
             $this->_objectManager->get('Magento\ImportExport\Helper\Data')->getMaxUploadSizeMessage()
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
index 54c9049bcc9..d58b1a1f81f 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Start.php
@@ -38,7 +38,7 @@ class Start extends ImportResultController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($data) {
diff --git a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
index 631966a9a40..bc009302895 100644
--- a/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
+++ b/app/code/Magento/ImportExport/Controller/Adminhtml/Import/Validate.php
@@ -19,7 +19,7 @@ class Validate extends ImportResultController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
index e9661264810..532cf1d718a 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/DownloadTest.php
@@ -172,7 +172,7 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     {
         $this->reportHelper->expects($this->any())->method('importFileExists')->willReturn(true);
         $this->resultRaw->expects($this->once())->method('setContents');
-        $this->downloadController->execute();
+        $this->downloadController->executeInternal();
     }
 
     /**
@@ -182,6 +182,6 @@ class DownloadTest extends \PHPUnit_Framework_TestCase
     {
         $this->reportHelper->expects($this->any())->method('importFileExists')->willReturn(false);
         $this->resultRaw->expects($this->never())->method('setContents');
-        $this->downloadController->execute();
+        $this->downloadController->executeInternal();
     }
 }
diff --git a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
index 789854701f5..aa9adfde2c2 100644
--- a/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
+++ b/app/code/Magento/ImportExport/Test/Unit/Controller/Adminhtml/History/IndexTest.php
@@ -75,6 +75,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
      */
     public function testExecute()
     {
-        $this->indexController->execute();
+        $this->indexController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
index f76a7d9ca1a..f84c939bf93 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/ListAction.php
@@ -13,7 +13,7 @@ class ListAction extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Indexer::system_index');
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
index 1ea64de8b75..af4730a6662 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassChangelog.php
@@ -13,7 +13,7 @@ class MassChangelog extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $indexerIds = $this->getRequest()->getParam('indexer_ids');
         if (!is_array($indexerIds)) {
diff --git a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
index fecf0df7a53..7fe6dd3a60b 100644
--- a/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
+++ b/app/code/Magento/Indexer/Controller/Adminhtml/Indexer/MassOnTheFly.php
@@ -13,7 +13,7 @@ class MassOnTheFly extends \Magento\Indexer\Controller\Adminhtml\Indexer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $indexerIds = $this->getRequest()->getParam('indexer_ids');
         if (!is_array($indexerIds)) {
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
index 958125477b9..d3817ffe99d 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
@@ -200,6 +200,6 @@ class ListActionTest extends \PHPUnit_Framework_TestCase
             ->method('renderLayout')
             ->will($this->returnValue(1));
 
-        $this->object->execute();
+        $this->object->executeInternal();
     }
 }
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
index 133a763f831..c08535d2731 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassChangelogTest.php
@@ -243,7 +243,7 @@ class MassChangelogTest extends \PHPUnit_Framework_TestCase
         $this->helper->expects($this->any())->method("getUrl")->willReturn("magento.com");
         $this->response->expects($this->any())->method("setRedirect")->willReturn(1);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
index c535ed59f68..8adaf2d07fe 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/MassOnTheFlyTest.php
@@ -242,7 +242,7 @@ class MassOnTheFlyTest extends \PHPUnit_Framework_TestCase
         $this->helper->expects($this->any())->method("getUrl")->willReturn("magento.com");
         $this->response->expects($this->any())->method("setRedirect")->willReturn(1);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
index 8771947fce6..42409bd208c 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Delete.php
@@ -17,7 +17,7 @@ class Delete extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
index db23246d371..6c45010bfb2 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Edit.php
@@ -17,7 +17,7 @@ class Edit extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** Try to recover integration data from session if it was added during previous request which failed. */
         $integrationId = (int)$this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
index 24b4fc3af40..e5750479e09 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
index aa4411b4598..f759279d7f3 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $unsecureIntegrationsCount = $this->_integrationCollection->addUnsecureUrlsFilter()->getSize();
         if ($unsecureIntegrationsCount > 0) {
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
index 7b723444420..befdfbedc84 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/LoginSuccessCallback.php
@@ -13,7 +13,7 @@ class LoginSuccessCallback extends \Magento\Integration\Controller\Adminhtml\Int
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody('<script>setTimeout("self.close()",1000);</script>');
     }
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
index 50a97103187..2e32315b5e5 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Integration::system_integrations');
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
index 50f6302b49c..d8de19f8d96 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/PermissionsDialog.php
@@ -15,7 +15,7 @@ class PermissionsDialog extends \Magento\Integration\Controller\Adminhtml\Integr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $integrationId = (int)$this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
         if ($integrationId) {
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
index 53cccbb46b0..d6581e6004d 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/Save.php
@@ -32,7 +32,7 @@ class Save extends \Magento\Integration\Controller\Adminhtml\Integration
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var array $integrationData */
         $integrationData = [];
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
index 1dcff4547e3..8ad72835c71 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensDialog.php
@@ -35,7 +35,7 @@ class TokensDialog extends \Magento\Integration\Controller\Adminhtml\Integration
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $integrationId = $this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
index a6ab708350a..a186dc016a7 100644
--- a/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
+++ b/app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php
@@ -34,7 +34,7 @@ class TokensExchange extends \Magento\Integration\Controller\Adminhtml\Integrati
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $integrationId = $this->getRequest()->getParam(self::PARAM_INTEGRATION_ID);
diff --git a/app/code/Magento/Integration/Controller/Token/Access.php b/app/code/Magento/Integration/Controller/Token/Access.php
index c9c5c7c3124..979a63cbbd9 100644
--- a/app/code/Magento/Integration/Controller/Token/Access.php
+++ b/app/code/Magento/Integration/Controller/Token/Access.php
@@ -58,7 +58,7 @@ class Access extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $requestUrl = $this->helper->getRequestUrl($this->getRequest());
diff --git a/app/code/Magento/Integration/Controller/Token/Request.php b/app/code/Magento/Integration/Controller/Token/Request.php
index d1ee7d04296..be75117d2c4 100644
--- a/app/code/Magento/Integration/Controller/Token/Request.php
+++ b/app/code/Magento/Integration/Controller/Token/Request.php
@@ -38,7 +38,7 @@ class Request extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $requestUrl = $this->helper->getRequestUrl($this->getRequest());
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
index f31d3622876..4be5b0c7397 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/DeleteTest.php
@@ -60,7 +60,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addSuccess')
             ->with(__('The integration \'%1\' has been deleted.', $intData[Info::DATA_NAME]));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionWithConsumer()
@@ -89,7 +89,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addSuccess')
             ->with(__('The integration \'%1\' has been deleted.', $intData[Info::DATA_NAME]));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionConfigSetUp()
@@ -117,7 +117,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
         // verify success message
         $this->_messageManager->expects($this->never())->method('addSuccess');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionMissingId()
@@ -131,7 +131,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->method('addError')
             ->with(__('Integration ID is not specified or is invalid.'));
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionForServiceIntegrationException()
@@ -153,7 +153,7 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->willThrowException($invalidIdException);
         $this->_messageManager->expects($this->once())->method('addError');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 
     public function testDeleteActionForServiceGenericException()
@@ -175,6 +175,6 @@ class DeleteTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Int
             ->willThrowException($invalidIdException);
         $this->_messageManager->expects($this->never())->method('addError');
 
-        $this->integrationController->execute();
+        $this->integrationController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
index 0bd7ab3e466..e4529c88f5f 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/EditTest.php
@@ -53,7 +53,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
             ->method('prepend');
         $this->_verifyLoadAndRenderLayout();
         $controller = $this->_createIntegrationController('Edit');
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testEditActionNonExistentIntegration()
@@ -81,7 +81,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
             );
         $this->_verifyLoadAndRenderLayout();
         $integrationContr = $this->_createIntegrationController('Edit');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testEditActionNoDataAdd()
@@ -91,7 +91,7 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $this->_verifyLoadAndRenderLayout();
         $integrationContr = $this->_createIntegrationController('Edit');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testEditException()
@@ -100,6 +100,6 @@ class EditTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // verify the error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $this->_controller = $this->_createIntegrationController('Edit');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
index 8dd1bfd69f5..4adf0966575 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/IndexTest.php
@@ -14,6 +14,6 @@ class IndexTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Inte
         $this->_verifyLoadAndRenderLayout();
         // renderLayout
         $this->_controller = $this->_createIntegrationController('Index');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
index 013857d809f..a24b1787a8e 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/NewActionTest.php
@@ -25,6 +25,6 @@ class NewActionTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\
                 $this->returnValue($this->_requestMock)
             );
         $integrationContr = $this->_createIntegrationController('NewAction');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
index 484267a7296..28e3c19b012 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/PermissionsDialogTest.php
@@ -72,6 +72,6 @@ HANDLE;
                 $this->equalTo(['adminhtml_integration_activate_permissions_webapi'])
             );
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
index d29767e6091..68526871593 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/SaveTest.php
@@ -59,7 +59,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
                 __('The integration \'%1\' has been saved.', $intData[Info::DATA_NAME])
             );
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionException()
@@ -80,7 +80,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionIntegrationException()
@@ -101,7 +101,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify error
         $this->_messageManager->expects($this->once())->method('addError')->with($this->equalTo($exceptionMessage));
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionNew()
@@ -146,7 +146,7 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
                 __('The integration \'%1\' has been saved.', $integration->getName())
             );
         $integrationContr = $this->_createIntegrationController('Save');
-        $integrationContr->execute();
+        $integrationContr->executeInternal();
     }
 
     public function testSaveActionExceptionDuringServiceCreation()
@@ -186,6 +186,6 @@ class SaveTest extends \Magento\Integration\Test\Unit\Controller\Adminhtml\Integ
         // Verify success message
         $this->_messageManager->expects($this->once())->method('addError')->with($exceptionMessage);
         $integrationController = $this->_createIntegrationController('Save');
-        $integrationController->execute();
+        $integrationController->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
index cb7b484f40b..3db548316f5 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php
@@ -48,7 +48,7 @@ class TokensDialogTest extends \Magento\Integration\Test\Unit\Controller\Adminht
         $this->_viewMock->expects($this->any())->method('loadLayout');
         $this->_viewMock->expects($this->any())->method('renderLayout');
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 
     public function testTokensExchangeReauthorize()
@@ -95,6 +95,6 @@ class TokensDialogTest extends \Magento\Integration\Test\Unit\Controller\Adminht
         $this->_responseMock->expects($this->once())->method('getBody');
         $this->_responseMock->expects($this->once())->method('representJson');
 
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
index 121db1fb723..140000c8bfc 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Token/AccessTest.php
@@ -178,6 +178,6 @@ class AccessTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('setBody');
 
-        $this->accessAction->execute();
+        $this->accessAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php b/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
index f387829278f..275e30191f0 100644
--- a/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Controller/Token/RequestTest.php
@@ -142,6 +142,6 @@ class RequestTest extends \PHPUnit_Framework_TestCase
             ->willReturn(['response']);
         $this->response->expects($this->once())
             ->method('setBody');
-        $this->requestAction->execute();
+        $this->requestAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php b/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
index 8ce0b1b3c10..f808bbbc3f8 100644
--- a/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
+++ b/app/code/Magento/Marketplace/Controller/Adminhtml/Index/Index.php
@@ -28,7 +28,7 @@ class Index extends \Magento\Marketplace\Controller\Adminhtml\Index
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->getResultPageFactory()->create();
diff --git a/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php b/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
index 774f80491b1..f1657b4c182 100644
--- a/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
+++ b/app/code/Magento/Marketplace/Controller/Adminhtml/Partners/Index.php
@@ -33,7 +33,7 @@ class Index extends \Magento\Marketplace\Controller\Adminhtml\Partners
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isAjax()) {
             $output = $this->getLayoutFactory()->create()
diff --git a/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
index 4983cd76e0f..ebb9386d3ef 100644
--- a/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Marketplace/Test/Unit/Controller/Index/IndexTest.php
@@ -19,7 +19,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Marketplace\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Marketplace\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testExecute()
     {
@@ -50,7 +50,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->will($this->returnValue($configMock));
 
-        $this->indexControllerMock->execute();
+        $this->indexControllerMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php b/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
index 2a9538a1bb7..c285f31c995 100644
--- a/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
+++ b/app/code/Magento/Marketplace/Test/Unit/Controller/Partners/IndexTest.php
@@ -25,7 +25,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Marketplace\Controller\Adminhtml\Partners\Index::execute
+     * @covers \Magento\Marketplace\Controller\Adminhtml\Partners\Index::executeInternal
      */
     public function testExecute()
     {
@@ -65,7 +65,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getResponse')
             ->will($this->returnValue($responseMock));
 
-        $this->partnersControllerMock->execute();
+        $this->partnersControllerMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
index 3d2b755575a..469da98b91f 100644
--- a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
+++ b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Status.php
@@ -31,7 +31,7 @@ class Status extends \Magento\MediaStorage\Controller\Adminhtml\System\Config\Sy
      * @return \Magento\Framework\Controller\Result\Json
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = [];
         $flag = $this->_getSyncFlag();
diff --git a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
index 50789292706..af0239448f9 100644
--- a/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
+++ b/app/code/Magento/MediaStorage/Controller/Adminhtml/System/Config/System/Storage/Synchronize.php
@@ -13,7 +13,7 @@ class Synchronize extends \Magento\MediaStorage\Controller\Adminhtml\System\Conf
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         session_write_close();
 
diff --git a/app/code/Magento/Multishipping/Controller/Checkout.php b/app/code/Magento/Multishipping/Controller/Checkout.php
index f6b391b0d89..1940acf7595 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout.php
@@ -86,11 +86,11 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         if ($this->_actionFlag->get('', 'redirectLogin')) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         $action = $request->getActionName();
@@ -109,7 +109,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
         ) {
             $this->_redirect('*/*/index');
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if (!in_array($action, ['login', 'register'])) {
@@ -123,7 +123,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
                 $this->messageManager->addError($error);
                 $this->getResponse()->setRedirect($this->_getHelper()->getCartUrl());
                 $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-                return parent::dispatch($request);
+                return parent::execute($request);
             }
         }
 
@@ -142,11 +142,11 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
         ) {
             $this->getResponse()->setRedirect($this->_getHelper()->getCartUrl());
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if ($action == 'success' && $this->_getCheckout()->getCheckoutSession()->getDisplaySuccess(true)) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         $quote = $this->_getCheckout()->getQuote();
@@ -155,7 +155,7 @@ abstract class Checkout extends \Magento\Checkout\Controller\Action implements
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address.php b/app/code/Magento/Multishipping/Controller/Checkout/Address.php
index 41f7377c587..ee525003fa7 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address.php
@@ -13,12 +13,12 @@ abstract class Address extends \Magento\Framework\App\Action\Action
     /**
      * {@inheritdoc}
      */
-    public function dispatch(\Magento\Framework\App\RequestInterface $request)
+    public function execute(\Magento\Framework\App\RequestInterface $request)
     {
         if (!$this->_getCheckout()->getCustomer()->getId()) {
             return $this->_redirect('customer/account/login');
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
index 724226b2e27..919c55c2cc8 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditAddress.php
@@ -11,7 +11,7 @@ class EditAddress extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($addressForm = $this->_view->getLayout()->getBlock('customer_address_edit')) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
index eaa98e4e7c4..df532c5384b 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditBilling.php
@@ -11,7 +11,7 @@ class EditBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_BILLING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
index 8409ed59f36..3d9c8ada633 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShipping.php
@@ -11,7 +11,7 @@ class EditShipping extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_SHIPPING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
index ff73e374f39..bf62a2dbb56 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/EditShippingPost.php
@@ -11,7 +11,7 @@ class EditShippingPost extends \Magento\Multishipping\Controller\Checkout\Addres
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
index 23b209b60b4..7f7293bdf99 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewBilling.php
@@ -11,7 +11,7 @@ class NewBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         if ($addressForm = $this->_view->getLayout()->getBlock('customer_address_edit')) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
index 1a05f9cc46c..a0a69c2a216 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/NewShipping.php
@@ -13,7 +13,7 @@ class NewShipping extends \Magento\Multishipping\Controller\Checkout\Address
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_SELECT_ADDRESSES
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
index f19e427f14b..6e254071ee0 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SaveBilling.php
@@ -11,7 +11,7 @@ class SaveBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
index a64e877d586..cb7a1216760 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SelectBilling.php
@@ -11,7 +11,7 @@ class SelectBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(
             \Magento\Multishipping\Model\Checkout\Type\Multishipping\State::STEP_BILLING
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
index 4781ff1fd8d..60cf5d69887 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/SetBilling.php
@@ -11,7 +11,7 @@ class SetBilling extends \Magento\Multishipping\Controller\Checkout\Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($addressId = $this->getRequest()->getParam('id')) {
             $this->_objectManager->create(
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php b/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
index 01187fce181..dc301de3eb2 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Address/ShippingSaved.php
@@ -56,7 +56,7 @@ class ShippingSaved extends Address
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $filter = $this->filterBuilder->setField('parent_id')->setValue($this->_getCheckout()->getCustomer()->getId())
             ->setConditionType('eq')->create();
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php b/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
index 38ae81fadc8..477ca6dbf2a 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Addresses.php
@@ -15,7 +15,7 @@ class Addresses extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // If customer do not have addresses
         if (!$this->_getCheckout()->getCustomerDefaultShippingAddress()) {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php b/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
index e78d126f413..f6c74959e41 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/AddressesPost.php
@@ -15,7 +15,7 @@ class AddressesPost extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_getCheckout()->getCustomerDefaultShippingAddress()) {
             $this->_redirect('*/checkout_address/newShipping');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
index 9f9e2352e3a..82a1ecce2b0 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToAddresses.php
@@ -13,7 +13,7 @@ class BackToAddresses extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_SELECT_ADDRESSES);
         $this->_getState()->unsCompleteStep(State::STEP_SHIPPING);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
index 49c98834c67..d2db0277429 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToBilling.php
@@ -15,7 +15,7 @@ class BackToBilling extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_BILLING);
         $this->_getState()->unsCompleteStep(State::STEP_OVERVIEW);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php b/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
index dddf2dab0b8..2bc68f69ee2 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/BackToShipping.php
@@ -13,7 +13,7 @@ class BackToShipping extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getState()->setActiveStep(State::STEP_SHIPPING);
         $this->_getState()->unsCompleteStep(State::STEP_BILLING);
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Billing.php b/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
index 0f3d9a0103c..7ca829db580 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Billing.php
@@ -30,7 +30,7 @@ class Billing extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void|ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateBilling()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Index.php b/app/code/Magento/Multishipping/Controller/Checkout/Index.php
index c71c54ca8e2..03607155b87 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Index.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getCheckoutSession()->setCartWasUpdated(false);
         $this->_redirect('*/*/addresses');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Login.php b/app/code/Magento/Multishipping/Controller/Checkout/Login.php
index 8b68c678010..4c68fd50819 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Login.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Login.php
@@ -13,7 +13,7 @@ class Login extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             $this->_redirect('*/*/');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Overview.php b/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
index 9ab19c70889..cb693c019ff 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Overview.php
@@ -15,7 +15,7 @@ class Overview extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateMinimumAmount()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php b/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
index fe288a54f74..7e80e00754b 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/OverviewPost.php
@@ -65,7 +65,7 @@ class OverviewPost extends \Magento\Multishipping\Controller\Checkout
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->formKeyValidator->validate($this->getRequest())) {
             $this->_forward('backToAddresses');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Register.php b/app/code/Magento/Multishipping/Controller/Checkout/Register.php
index 34aba236980..4033d985801 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Register.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Register.php
@@ -13,7 +13,7 @@ class Register extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             $this->getResponse()->setRedirect($this->_getHelper()->getMSCheckoutUrl());
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php b/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
index 4bba45d3047..1dced5c2360 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/RemoveItem.php
@@ -13,7 +13,7 @@ class RemoveItem extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = $this->getRequest()->getParam('id');
         $addressId = $this->getRequest()->getParam('address');
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php b/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
index d8ffd0d2b6a..8d8e9c4643e 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Shipping.php
@@ -16,7 +16,7 @@ class Shipping extends \Magento\Multishipping\Controller\Checkout
      *
      * @return  ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_validateMinimumAmount()) {
             return;
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php b/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
index e5c1a001b9e..d3693051344 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/ShippingPost.php
@@ -13,7 +13,7 @@ class ShippingPost extends \Magento\Multishipping\Controller\Checkout
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $shippingMethods = $this->getRequest()->getPost('shipping_method');
         try {
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Success.php b/app/code/Magento/Multishipping/Controller/Checkout/Success.php
index 52a7de51c18..ea4838ee85f 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Success.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Success.php
@@ -15,7 +15,7 @@ class Success extends \Magento\Multishipping\Controller\Checkout
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->_getState()->getCompleteStep(State::STEP_OVERVIEW)) {
             $this->_redirect('*/*/addresses');
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
index 54c431ecd3f..4f15a7d7055 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditAddressTest.php
@@ -126,7 +126,7 @@ class EditAddressTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('success/url');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 
@@ -140,6 +140,6 @@ class EditAddressTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
index e0b516a09e7..232add6bf1e 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditBillingTest.php
@@ -153,7 +153,7 @@ class EditBillingTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('back/address');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWhenCustomerAddressBlockNotExist()
@@ -170,7 +170,7 @@ class EditBillingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
index dbe004b62d0..0b9a5fb2f80 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/EditShippingTest.php
@@ -157,7 +157,7 @@ class EditShippingTest extends \PHPUnit_Framework_TestCase
             ->willReturn('shipping_addres');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('back/address');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWhenCustomerAddressBlockNotExist()
@@ -174,6 +174,6 @@ class EditShippingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
index 7afb5d6ee2f..e5c701b3c21 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewBillingTest.php
@@ -118,7 +118,7 @@ class NewBillingTest extends \PHPUnit_Framework_TestCase
         $this->titleMock->expects($this->once())->method('set')->with('Address title - default_title');
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with('success/url');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
 
@@ -132,6 +132,6 @@ class NewBillingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
index 1f98daffc1d..3b1b76d9c7c 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/NewShippingTest.php
@@ -157,7 +157,7 @@ class NewShippingTest extends \PHPUnit_Framework_TestCase
             ->willReturn($shippingAddress);
         $this->addressFormMock->expects($this->once())->method('setBackUrl')->with($url);
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function executeDataProvider()
@@ -183,6 +183,6 @@ class NewShippingTest extends \PHPUnit_Framework_TestCase
             ->with('customer_address_edit');
         $this->urlMock->expects($this->never())->method('getUrl');
         $this->viewMock->expects($this->once())->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
index ffb91ebb4e1..23ff549744c 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/Address/ShippingSavedTest.php
@@ -100,7 +100,7 @@ class ShippingSavedTest extends \PHPUnit_Framework_TestCase
 
         // check that checkout is reset
         $this->checkoutMock->expects($this->once())->method('reset');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteDoesNotResetCheckoutIfCustomerHasMoreThanOneAddress()
@@ -120,7 +120,7 @@ class ShippingSavedTest extends \PHPUnit_Framework_TestCase
 
         // check that checkout is not reset
         $this->checkoutMock->expects($this->never())->method('reset');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
index cf2ae4964f7..e3904f2efad 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Problem
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('_unsubscribe')) {
             $problems = (array)$this->getRequest()->getParam('problem', []);
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
index 2b377e93c28..89045ddfa6a 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Problem/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Problem
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
index eda2ee69860..a04519e190e 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
index ff410c926fc..af2cc33cca5 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Drop.php
@@ -13,7 +13,7 @@ class Drop extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('newsletter_queue_preview_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
index ea3cfed3771..d8881fa43ac 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register('current_queue', $this->_objectManager->get('Magento\Newsletter\Model\Queue'));
 
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
index 509b868d29e..33df60e5921 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
index 412d531b7d4..cd9b39395f7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
index 1e890edcb36..2e2cad6b588 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Pause.php
@@ -13,7 +13,7 @@ class Pause extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
index 3a6f564f90d..488dc897f8f 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $data = $this->getRequest()->getParams();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
index f92ab4bf691..da87317dda9 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Resume.php
@@ -13,7 +13,7 @@ class Resume extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->get(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
index 33fd2052a42..28990582b66 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Save.php
@@ -18,7 +18,7 @@ class Save extends \Magento\Newsletter\Controller\Adminhtml\Queue
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             /* @var $queue \Magento\Newsletter\Model\Queue */
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
index bc6053c67aa..6e5000bbb27 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Sending.php
@@ -13,7 +13,7 @@ class Sending extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // Todo: put it somewhere in config!
         $countOfQueue = 3;
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
index 1917681ca21..bda80ec9901 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Queue/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Newsletter\Controller\Adminhtml\Queue
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $queue = $this->_objectManager->create(
             'Magento\Newsletter\Model\Queue'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
index 8a795384b14..398a7ef8221 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportCsv.php
@@ -16,7 +16,7 @@ class ExportCsv extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'subscribers.csv';
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
index 44b68aa1afe..ac16f90c852 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/ExportXml.php
@@ -16,7 +16,7 @@ class ExportXml extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'subscribers.xml';
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
index 89aa1b46520..5a06ac05d3c 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
index 9aed2baed18..a8d7f096b64 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
index 4ea5f85728e..ebc712cefb7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends \Magento\Newsletter\Controller\Adminhtml\Subscriber
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $subscribersIds = $this->getRequest()->getParam('subscriber');
         if (!is_array($subscribersIds)) {
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
index d6b6df7c19a..8a6feb8b349 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
@@ -13,7 +13,7 @@ class MassUnsubscribe extends \Magento\Newsletter\Controller\Adminhtml\Subscribe
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $subscribersIds = $this->getRequest()->getParam('subscriber');
         if (!is_array($subscribersIds)) {
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
index 188e800f3bf..9b1ebaa45ff 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $template = $this->_objectManager->create(
             'Magento\Newsletter\Model\Template'
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
index f96ac80e7f0..bf4ac7d5ff7 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Drop.php
@@ -13,7 +13,7 @@ class Drop extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('newsletter_template_preview_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
index b1030723790..fb52832aca9 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Edit.php
@@ -30,7 +30,7 @@ class Edit extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $model = $this->_objectManager->create('Magento\Newsletter\Model\Template');
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
index dbd0e7195a5..d3c850e81b4 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $grid = $this->_view->getLayout()->createBlock('Magento\Newsletter\Block\Adminhtml\Template\Grid')->toHtml();
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
index f4c51a0f590..4647c06de1f 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getQuery('ajax')) {
             $this->_forward('grid');
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
index 9409faf0f6a..a03fd5c6f37 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
index 5594435c98d..fc04569de31 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Preview.php
@@ -13,7 +13,7 @@ class Preview extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void|$this
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
 
diff --git a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
index 4378ac6ba70..7f9c4bdb76e 100644
--- a/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Adminhtml/Template/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Newsletter\Controller\Adminhtml\Template
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         if (!$request->isPost()) {
diff --git a/app/code/Magento/Newsletter/Controller/Manage.php b/app/code/Magento/Newsletter/Controller/Manage.php
index 6bc940662ce..16ba747c011 100644
--- a/app/code/Magento/Newsletter/Controller/Manage.php
+++ b/app/code/Magento/Newsletter/Controller/Manage.php
@@ -37,11 +37,11 @@ abstract class Manage extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->_customerSession->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Newsletter/Controller/Manage/Index.php b/app/code/Magento/Newsletter/Controller/Manage/Index.php
index de782a3d3bc..0ef350892c3 100644
--- a/app/code/Magento/Newsletter/Controller/Manage/Index.php
+++ b/app/code/Magento/Newsletter/Controller/Manage/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Newsletter\Controller\Manage
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
 
diff --git a/app/code/Magento/Newsletter/Controller/Manage/Save.php b/app/code/Magento/Newsletter/Controller/Manage/Save.php
index 92ba7f93628..67fe6e4dd2c 100644
--- a/app/code/Magento/Newsletter/Controller/Manage/Save.php
+++ b/app/code/Magento/Newsletter/Controller/Manage/Save.php
@@ -60,7 +60,7 @@ class Save extends \Magento\Newsletter\Controller\Manage
      *
      * @return void|null
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->formKeyValidator->validate($this->getRequest())) {
             return $this->_redirect('customer/account/');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php b/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
index 91d4f0d2880..785f3ab0185 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/Confirm.php
@@ -12,7 +12,7 @@ class Confirm extends \Magento\Newsletter\Controller\Subscriber
      * Subscription confirm action
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $code = (string)$this->getRequest()->getParam('code');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php b/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
index 5e8850de308..11dcfacb44f 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/NewAction.php
@@ -111,7 +111,7 @@ class NewAction extends \Magento\Newsletter\Controller\Subscriber
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isPost() && $this->getRequest()->getPost('email')) {
             $email = (string)$this->getRequest()->getPost('email');
diff --git a/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php b/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
index 9fb7575699a..9449f3336f9 100644
--- a/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
+++ b/app/code/Magento/Newsletter/Controller/Subscriber/Unsubscribe.php
@@ -12,7 +12,7 @@ class Unsubscribe extends \Magento\Newsletter\Controller\Subscriber
      * Unsubscribe newsletter
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         $code = (string)$this->getRequest()->getParam('code');
diff --git a/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php b/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
index f592aafcbc9..99bb1abdfc1 100644
--- a/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
+++ b/app/code/Magento/Newsletter/Test/Unit/Controller/Manage/SaveTest.php
@@ -107,7 +107,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess');
         $this->messageManagerMock->expects($this->never())
             ->method('addError');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testSaveActionNoCustomerInSession()
@@ -126,7 +126,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())
             ->method('addError')
             ->with('Something went wrong while saving your subscription.');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testSaveActionWithException()
@@ -156,6 +156,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())
             ->method('addError')
             ->with('Something went wrong while saving your subscription.');
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php b/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
index 8f273e49c61..af20ac56ba4 100644
--- a/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
+++ b/app/code/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ExportTablerates.php
@@ -46,7 +46,7 @@ class ExportTablerates extends \Magento\Config\Controller\Adminhtml\System\Abstr
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tablerates.csv';
         /** @var $gridBlock \Magento\OfflineShipping\Block\Adminhtml\Carrier\Tablerate\Grid */
diff --git a/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php b/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
index 6ff33668ae9..36925596918 100644
--- a/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
+++ b/app/code/Magento/PageCache/Controller/Adminhtml/PageCache/ExportVarnishConfig.php
@@ -40,7 +40,7 @@ class ExportVarnishConfig extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'varnish.vcl';
         $varnishVersion = $this->getRequest()->getParam('varnish');
diff --git a/app/code/Magento/PageCache/Controller/Block/Esi.php b/app/code/Magento/PageCache/Controller/Block/Esi.php
index e21aabd7cfd..026c0ec4c15 100644
--- a/app/code/Magento/PageCache/Controller/Block/Esi.php
+++ b/app/code/Magento/PageCache/Controller/Block/Esi.php
@@ -13,7 +13,7 @@ class Esi extends \Magento\PageCache\Controller\Block
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = $this->getResponse();
         $blocks = $this->_getBlocks();
diff --git a/app/code/Magento/PageCache/Controller/Block/Render.php b/app/code/Magento/PageCache/Controller/Block/Render.php
index 499973ae1e1..b6a95919775 100644
--- a/app/code/Magento/PageCache/Controller/Block/Render.php
+++ b/app/code/Magento/PageCache/Controller/Block/Render.php
@@ -13,7 +13,7 @@ class Render extends \Magento\PageCache\Controller\Block
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             $this->_forward('noroute');
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
index d99f597c3e7..4bee20c5f4c 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Adminhtml/PageCache/ExportVarnishConfigTest.php
@@ -102,7 +102,7 @@ class ExportVarnishConfigTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($responseMock)
         );
 
-        $result = $this->action->execute();
+        $result = $this->action->executeInternal();
         $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $result);
     }
 }
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
index bc23f569d17..9bddcbeb778 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Block/EsiTest.php
@@ -123,7 +123,7 @@ class EsiTest extends \PHPUnit_Framework_TestCase
             ->method('appendBody')
             ->with($this->equalTo($html));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function executeDataProvider()
@@ -145,6 +145,6 @@ class EsiTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->any())->method('getParam')->will($this->returnValueMap($mapData));
         $this->viewMock->expects($this->never())->method('getLayout')->will($this->returnValue($this->layoutMock));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php b/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
index a9493a7a4c3..c419a150fc6 100644
--- a/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Controller/Block/RenderTest.php
@@ -79,7 +79,7 @@ class RenderTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('isAjax')->will($this->returnValue(false));
         $this->requestMock->expects($this->once())->method('setActionName')->will($this->returnValue('noroute'));
         $this->requestMock->expects($this->once())->method('setDispatched')->will($this->returnValue(false));
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     /**
@@ -96,7 +96,7 @@ class RenderTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->with($this->equalTo('handles'), $this->equalTo(''))
             ->will($this->returnValue(''));
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 
     public function testExecute()
@@ -171,6 +171,6 @@ class RenderTest extends \PHPUnit_Framework_TestCase
             ->method('appendBody')
             ->with($this->equalTo(json_encode($expectedData)));
 
-        $this->action->execute();
+        $this->action->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
index 70134fdf282..f26e1c04391 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
index 0c157101b70..8fe43e3611b 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/CustomerGrid.php
@@ -29,7 +29,7 @@ class CustomerGrid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreemen
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initCurrentCustomer();
         $this->_view->loadLayout(false);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
index 3bc7143a4a1..3351f7dcf7e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
index 2753574d2b4..a84f114d41e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
index f20444f9214..51edf6b55bf 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Paypal::paypal_billing_agreement');
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
index 62208a96b71..10b9b003c84 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/OrdersGrid.php
@@ -13,7 +13,7 @@ class OrdersGrid extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initBillingAgreement();
         $this->_view->loadLayout(false);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
index 3755d973cac..85c81a77788 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Billing/Agreement/View.php
@@ -13,7 +13,7 @@ class View extends \Magento\Paypal\Controller\Adminhtml\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreementModel = $this->_initBillingAgreement();
 
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
index 20633c5c585..f48168d33d3 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Details.php
@@ -13,7 +13,7 @@ class Details extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $rowId = $this->getRequest()->getParam('id');
         $row = $this->_rowFactory->create()->load($rowId);
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
index 89ccd4a5f9d..67c4824259e 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Fetch.php
@@ -18,7 +18,7 @@ class Fetch extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $reports = $this->_settlementFactory->create();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
index 33551753da5..0d3342c2669 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
index 2f2ad28ce19..4bd6de4cdfb 100644
--- a/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
+++ b/app/code/Magento/Paypal/Controller/Adminhtml/Paypal/Reports/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Adminhtml\Paypal\Reports
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement.php b/app/code/Magento/Paypal/Controller/Billing/Agreement.php
index 8d6f0f0b1e6..01f632dba7f 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement.php
@@ -37,15 +37,15 @@ abstract class Agreement extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$request->isDispatched()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
         if (!$this->_getSession()->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
index ee0daf91727..5b8e8f30b75 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/Cancel.php
@@ -14,7 +14,7 @@ class Cancel extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreement = $this->_initAgreement();
         if (!$agreement) {
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
index f95b687f576..22394e572ad 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/CancelWizard.php
@@ -13,7 +13,7 @@ class CancelWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_redirect('*/*/index');
     }
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
index 85c21069996..c5ccc5c8afb 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Billing Agreements'));
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
index 59040954d0c..f7bd4d4b3a3 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/ReturnWizard.php
@@ -15,7 +15,7 @@ class ReturnWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Paypal\Model\Billing\Agreement $agreement */
         $agreement = $this->_objectManager->create('Magento\Paypal\Model\Billing\Agreement');
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
index 407240c756b..24364b02e0d 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/StartWizard.php
@@ -13,7 +13,7 @@ class StartWizard extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return \Magento\Framework\App\Response\Http
      */
-    public function execute()
+    public function executeInternal()
     {
         $agreement = $this->_objectManager->create('Magento\Paypal\Model\Billing\Agreement');
         $paymentCode = $this->getRequest()->getParam('payment_method');
diff --git a/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php b/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
index 31b2dfd759c..2cbe118f4db 100644
--- a/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
+++ b/app/code/Magento/Paypal/Controller/Billing/Agreement/View.php
@@ -13,7 +13,7 @@ class View extends \Magento\Paypal\Controller\Billing\Agreement
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!($agreement = $this->_initAgreement())) {
             return;
diff --git a/app/code/Magento/Paypal/Controller/Bml/Start.php b/app/code/Magento/Paypal/Controller/Bml/Start.php
index d189c91965e..1fe8cc71700 100644
--- a/app/code/Magento/Paypal/Controller/Bml/Start.php
+++ b/app/code/Magento/Paypal/Controller/Bml/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             'start',
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
index 05c5dd2b5d1..a6b9079f913 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Cancel.php
@@ -15,7 +15,7 @@ class Cancel extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initToken(false);
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
index a9e879b5147..c7bca308846 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getResponse()->setRedirect($this->_config->getExpressCheckoutEditUrl($this->_initToken()));
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
index 3a723692287..456eb87f65e 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/PlaceOrder.php
@@ -60,7 +60,7 @@ class PlaceOrder extends \Magento\Paypal\Controller\Express\AbstractExpress
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if ($this->isValidationRequired() &&
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
index 20604c61a1d..a1df0081066 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ReturnAction.php
@@ -15,7 +15,7 @@ class ReturnAction extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
index ec848148b64..f60c2fd7847 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Review.php
@@ -15,7 +15,7 @@ class Review extends \Magento\Paypal\Controller\Express\AbstractExpress
      *
      * @return void|\Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
index 311900157b1..befc1615314 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/SaveShippingMethod.php
@@ -13,7 +13,7 @@ class SaveShippingMethod extends \Magento\Paypal\Controller\Express\AbstractExpr
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $isAjax = $this->getRequest()->getParam('isAjax');
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
index a66433f346a..ca53012f534 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php
@@ -53,7 +53,7 @@ class ShippingOptionsCallback extends \Magento\Paypal\Controller\Express\Abstrac
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $quoteId = $this->getRequest()->getParam('quote_id');
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
index 1ec1c2d96c8..dae43744757 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/Start.php
@@ -16,7 +16,7 @@ class Start extends \Magento\Paypal\Controller\Express\AbstractExpress
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
index 1d0cbdf5481..dc4f01b3f3c 100644
--- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
+++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/UpdateShippingMethods.php
@@ -13,7 +13,7 @@ class UpdateShippingMethods extends \Magento\Paypal\Controller\Express\AbstractE
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_initCheckout();
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php b/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
index fab449dc198..0889ae11aa1 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/Cancel.php
@@ -48,7 +48,7 @@ class Cancel extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $gotoSection = $this->_cancelPayment();
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php b/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
index aa3a234d2d2..37c874e14fa 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/Redirect.php
@@ -13,7 +13,7 @@ class Redirect extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setRedirect(
             $this->getOrder()->getPayment()->getAdditionalInformation('secure_form_url')
diff --git a/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php b/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
index 9f0651b3a14..b3f791e5782 100644
--- a/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
+++ b/app/code/Magento/Paypal/Controller/Hostedpro/ReturnAction.php
@@ -13,7 +13,7 @@ class ReturnAction extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $session = $this->_objectManager->get('Magento\Checkout\Model\Session');
         //TODO: some actions with order
diff --git a/app/code/Magento/Paypal/Controller/Ipn/Index.php b/app/code/Magento/Paypal/Controller/Ipn/Index.php
index b8078937d32..b3384cba4de 100644
--- a/app/code/Magento/Paypal/Controller/Ipn/Index.php
+++ b/app/code/Magento/Paypal/Controller/Ipn/Index.php
@@ -45,7 +45,7 @@ class Index extends \Magento\Framework\App\Action\Action
      * @return void
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isPost()) {
             return;
diff --git a/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php b/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
index fa59c545b86..7bd94850d9d 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/CancelPayment.php
@@ -13,7 +13,7 @@ class CancelPayment extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $gotoSection = $this->_cancelPayment();
diff --git a/app/code/Magento/Paypal/Controller/Payflow/Form.php b/app/code/Magento/Paypal/Controller/Payflow/Form.php
index 47834722d2b..32ca4209659 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/Form.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/Form.php
@@ -17,7 +17,7 @@ class Form extends Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setHeader('P3P', 'CP="CAO PSA OUR"');
         $this->_view->loadLayout(false)->renderLayout();
diff --git a/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php b/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
index 1907a07045f..1c095d439ee 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/ReturnUrl.php
@@ -24,7 +24,7 @@ class ReturnUrl extends Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         /** @var \Magento\Checkout\Block\Onepage\Success $redirectBlock */
diff --git a/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php b/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
index 8b737177ada..9f1aae5624f 100644
--- a/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
+++ b/app/code/Magento/Paypal/Controller/Payflow/SilentPost.php
@@ -13,7 +13,7 @@ class SilentPost extends \Magento\Paypal\Controller\Payflow
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if (isset($data['INVNUM'])) {
diff --git a/app/code/Magento/Paypal/Controller/Payflowbml/Start.php b/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
index 4cd82e11464..8da3b6f2715 100644
--- a/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
+++ b/app/code/Magento/Paypal/Controller/Payflowbml/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             'start',
diff --git a/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php b/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
index 2fba2402a5f..923988d12a1 100644
--- a/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
+++ b/app/code/Magento/Paypal/Controller/Transparent/RequestSecureToken.php
@@ -77,7 +77,7 @@ class RequestSecureToken extends \Magento\Framework\App\Action\Action
      *
      * @return ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var Quote $quote */
         $quote = $this->sessionManager->getQuote();
diff --git a/app/code/Magento/Paypal/Controller/Transparent/Response.php b/app/code/Magento/Paypal/Controller/Transparent/Response.php
index c6c8105cba9..30792f38578 100644
--- a/app/code/Magento/Paypal/Controller/Transparent/Response.php
+++ b/app/code/Magento/Paypal/Controller/Transparent/Response.php
@@ -62,7 +62,7 @@ class Response extends \Magento\Framework\App\Action\Action
     /**
      * @return ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $parameters = [];
         try {
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
index 8d4e0ef4ccf..3a7ae2302c3 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Billing/Agreement/CancelTest.php
@@ -122,7 +122,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             $this->identicalTo($this->_agreement)
         );
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testExecuteAgreementDoesNotBelongToCustomer()
@@ -136,7 +136,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->_registry->expects($this->never())->method('register');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testExecuteAgreementStatusDoesNotAllowToCancel()
@@ -157,6 +157,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             $this->identicalTo($this->_agreement)
         );
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
index 96a45ab4cfb..b4ae7940e76 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Payflow/ReturnUrlTest.php
@@ -202,7 +202,7 @@ class ReturnUrlTest extends \PHPUnit_Framework_TestCase
             ->with('goto_success_page', true)
             ->will($this->returnSelf());
 
-        $this->returnUrl->execute();
+        $this->returnUrl->executeInternal();
     }
 
     /**
@@ -272,6 +272,6 @@ class ReturnUrlTest extends \PHPUnit_Framework_TestCase
             ->with('error_msg', __('Your payment has been declined. Please try again.'))
             ->will($this->returnSelf());
 
-        $this->returnUrl->execute();
+        $this->returnUrl->executeInternal();
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
index 7285064bcb7..4429f6a9e5d 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/RequestSecureTokenTest.php
@@ -153,7 +153,7 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteTokenRequestException()
@@ -193,7 +193,7 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyQuoteError()
@@ -220,6 +220,6 @@ class RequestSecureTokenTest extends \PHPUnit_Framework_TestCase
             ->with($resultExpectation)
             ->willReturnSelf();
 
-        $this->assertEquals($jsonMock, $this->controller->execute());
+        $this->assertEquals($jsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
index 7cddae94159..b772f2d79bf 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Transparent/ResponseTest.php
@@ -119,7 +119,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
             ->method('getLayout')
             ->willReturn($this->getLayoutMock());
 
-        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->execute());
+        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -144,7 +144,7 @@ class ResponseTest extends \PHPUnit_Framework_TestCase
             ->method('getLayout')
             ->willReturn($this->getLayoutMock());
 
-        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->execute());
+        $this->assertInstanceOf('\Magento\Framework\Controller\ResultInterface', $this->object->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
index fbe7be4e452..2defce5a718 100644
--- a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
+++ b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
@@ -18,7 +18,7 @@ class ExpressCheckout extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->messageManager->addNotice(__('Your shopping cart has been updated with new prices.'));
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
index 64e32cb9472..e83d6085b07 100644
--- a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
+++ b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
@@ -15,7 +15,7 @@ class SaveMethod extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->sessionHelper->isPersistent()) {
             $this->sessionHelper->getSession()->removePersistentCookie();
diff --git a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
index 369c63f7de8..eb45cfbb176 100644
--- a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
+++ b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
@@ -15,7 +15,7 @@ class UnsetCookie extends Index
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->sessionHelper->isPersistent()) {
             $this->cleanup();
diff --git a/app/code/Magento/ProductAlert/Controller/Add.php b/app/code/Magento/ProductAlert/Controller/Add.php
index 78ceff1e629..299dedbdbf6 100644
--- a/app/code/Magento/ProductAlert/Controller/Add.php
+++ b/app/code/Magento/ProductAlert/Controller/Add.php
@@ -35,7 +35,7 @@ abstract class Add extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->customerSession->authenticate()) {
             $this->_actionFlag->set('', 'no-dispatch', true);
@@ -43,6 +43,6 @@ abstract class Add extends Action
                 $this->customerSession->setBeforeUrl($this->_redirect->getRefererUrl());
             }
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/ProductAlert/Controller/Add/Price.php b/app/code/Magento/ProductAlert/Controller/Add/Price.php
index 7ee60ebf799..b6a79a78f46 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/Price.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/Price.php
@@ -63,7 +63,7 @@ class Price extends AddController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $backUrl = $this->getRequest()->getParam(Action::PARAM_NAME_URL_ENCODED);
         $productId = (int)$this->getRequest()->getParam('product_id');
diff --git a/app/code/Magento/ProductAlert/Controller/Add/Stock.php b/app/code/Magento/ProductAlert/Controller/Add/Stock.php
index ea0cb55cc15..0756c5168bd 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/Stock.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/Stock.php
@@ -37,7 +37,7 @@ class Stock extends AddController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $backUrl = $this->getRequest()->getParam(Action::PARAM_NAME_URL_ENCODED);
         $productId = (int)$this->getRequest()->getParam('product_id');
diff --git a/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php b/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
index 96a357be0e8..87a3ba10cf9 100644
--- a/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
+++ b/app/code/Magento/ProductAlert/Controller/Add/TestObserver.php
@@ -13,7 +13,7 @@ class TestObserver extends AddController
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $object = new DataObject();
         /** @var \Magento\ProductAlert\Model\Observer $observer */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
index 46ba80f4b3a..c0050834b69 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Price.php
@@ -36,7 +36,7 @@ class Price extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
index 1dafba13dd7..0055633db68 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/PriceAll.php
@@ -13,7 +13,7 @@ class PriceAll extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\ProductAlert\Model\Price')
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
index 3052fcfe0ab..50284d3b04d 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/Stock.php
@@ -36,7 +36,7 @@ class Stock extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php b/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
index 63872d2cdd9..7b4eddfc7c0 100644
--- a/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
+++ b/app/code/Magento/ProductAlert/Controller/Unsubscribe/StockAll.php
@@ -13,7 +13,7 @@ class StockAll extends UnsubscribeController
     /**
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_objectManager->create('Magento\ProductAlert\Model\Stock')
diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index b0cd6ca9b16..623c82edbcb 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -70,7 +70,7 @@ class RetrieveImage extends \Magento\Backend\App\Action
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $remoteFileUrl = $this->getRequest()->getParam('remote_image');
diff --git a/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php b/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
index bd11bb20d4e..70af0519f53 100644
--- a/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
+++ b/app/code/Magento/ProductVideo/Test/Unit/Controller/Adminhtml/Product/Gallery/RetrieveImageTest.php
@@ -128,6 +128,6 @@ class RetrieveImageTest extends \PHPUnit_Framework_TestCase
         $readInterface->expects($this->any())->method('getAbsolutePath')->willReturn('/var/www/application/sample.jpg');
         $this->abstractAdapter->expects($this->any())->method('validateUploadFile')->willReturn('true');
 
-        $this->image->execute();
+        $this->image->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
index b53d9b87461..da8eb394ba5 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Accounts.php
@@ -13,7 +13,7 @@ class Accounts extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_accounts'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
index 1fa8340b524..2de1d222650 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsCsv.php
@@ -17,7 +17,7 @@ class ExportAccountsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'new_accounts.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
index 368c8d06917..b7e565a3f40 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportAccountsExcel.php
@@ -17,7 +17,7 @@ class ExportAccountsExcel extends \Magento\Reports\Controller\Adminhtml\Report\C
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'new_accounts.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
index d674ff274c2..8e12efa03eb 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersCsv.php
@@ -17,7 +17,7 @@ class ExportOrdersCsv extends \Magento\Reports\Controller\Adminhtml\Report\Custo
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers_orders.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
index 20510752042..c3f2afa1814 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportOrdersExcel.php
@@ -17,7 +17,7 @@ class ExportOrdersExcel extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customers_orders.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
index 629e25bdf6d..c0b2f87e0fe 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsCsv.php
@@ -17,7 +17,7 @@ class ExportTotalsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Custo
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customer_totals.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
index 8c2800fe6ca..6c33a4a1eef 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/ExportTotalsExcel.php
@@ -17,7 +17,7 @@ class ExportTotalsExcel extends \Magento\Reports\Controller\Adminhtml\Report\Cus
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'customer_totals.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
index 5e556d9fe89..bc7363825f2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Orders.php
@@ -13,7 +13,7 @@ class Orders extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_orders'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
index f58bfb2bfc8..b7e3d117467 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Customer/Totals.php
@@ -13,7 +13,7 @@ class Totals extends \Magento\Reports\Controller\Adminhtml\Report\Customer
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_customers_totals'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
index 93213f776ec..5776f796be9 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Downloads.php
@@ -23,7 +23,7 @@ class Downloads extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Downloadable::report_products_downloads'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
index 5c6af987aec..31086ee266b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsCsv.php
@@ -25,7 +25,7 @@ class ExportDownloadsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Pr
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_downloads.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
index a42c7f09851..20c5715b260 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportDownloadsExcel.php
@@ -25,7 +25,7 @@ class ExportDownloadsExcel extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_downloads.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
index 2b63aa2d4c8..bbbce2b95b1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockCsv.php
@@ -26,7 +26,7 @@ class ExportLowstockCsv extends \Magento\Reports\Controller\Adminhtml\Report\Pro
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'products_lowstock.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
index 0d0ed5e0b85..f8e86a46368 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportLowstockExcel.php
@@ -26,7 +26,7 @@ class ExportLowstockExcel extends \Magento\Reports\Controller\Adminhtml\Report\P
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'products_lowstock.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
index f1c02ac7971..7eb7c810ffb 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldCsv.php
@@ -27,7 +27,7 @@ class ExportSoldCsv extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'products_ordered.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
index 818b7a73c63..8b4e4ed7fa2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportSoldExcel.php
@@ -27,7 +27,7 @@ class ExportSoldExcel extends \Magento\Reports\Controller\Adminhtml\Report\Produ
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $fileName = 'products_ordered.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
index a7b42c93992..9c7348d76f2 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedCsv.php
@@ -26,7 +26,7 @@ class ExportViewedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Produ
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_mostviewed.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Product\Viewed\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
index b33650eee88..77a5ffff1aa 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/ExportViewedExcel.php
@@ -26,7 +26,7 @@ class ExportViewedExcel extends \Magento\Reports\Controller\Adminhtml\Report\Pro
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'products_mostviewed.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Product\Viewed\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
index f2734c22fac..14eaafe76b8 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Lowstock.php
@@ -23,7 +23,7 @@ class Lowstock extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_products_lowstock'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
index 2b43c124f83..25445c349e1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Sold.php
@@ -23,7 +23,7 @@ class Sold extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_products_sold'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
index 4de88db184a..3a370259de9 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Product/Viewed.php
@@ -25,7 +25,7 @@ class Viewed extends \Magento\Reports\Controller\Adminhtml\Report\Product
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_showLastExecutionTime(Flag::REPORT_PRODUCT_VIEWED_FLAG_CODE, 'viewed');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
index f956bf14c1d..18c0961d483 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Customer.php
@@ -13,7 +13,7 @@ class Customer extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review_customer'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
index 1a7f776d00f..473f42a4ca3 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerCsv.php
@@ -16,7 +16,7 @@ class ExportCustomerCsv extends \Magento\Reports\Controller\Adminhtml\Report\Rev
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_customer.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
index 9744feb1f5e..7dfe0c646d0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportCustomerExcel.php
@@ -16,7 +16,7 @@ class ExportCustomerExcel extends \Magento\Reports\Controller\Adminhtml\Report\R
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_customer.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
index 2c471b80304..15d4d4d6df0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductCsv.php
@@ -16,7 +16,7 @@ class ExportProductCsv extends \Magento\Reports\Controller\Adminhtml\Report\Revi
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_product.csv';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
index 7358396f2aa..d27f3fe37c7 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailCsv.php
@@ -16,7 +16,7 @@ class ExportProductDetailCsv extends \Magento\Reports\Controller\Adminhtml\Repor
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'review_product_detail.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
index 9e80e2309c1..32abda47b6d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductDetailExcel.php
@@ -16,7 +16,7 @@ class ExportProductDetailExcel extends \Magento\Reports\Controller\Adminhtml\Rep
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'review_product_detail.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
index c5b6b33457f..dc04c672a10 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ExportProductExcel.php
@@ -16,7 +16,7 @@ class ExportProductExcel extends \Magento\Reports\Controller\Adminhtml\Report\Re
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $fileName = 'review_product.xml';
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
index fe7364181ea..e5f5aecb69b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/Product.php
@@ -13,7 +13,7 @@ class Product extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review_product'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
index 4ee32cade01..d4bea33168c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Review/ProductDetail.php
@@ -13,7 +13,7 @@ class ProductDetail extends \Magento\Reports\Controller\Adminhtml\Report\Review
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Review::report_review'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
index 5c8247bda64..97be72a935d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Bestsellers.php
@@ -15,7 +15,7 @@ class Bestsellers extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_BESTSELLERS_FLAG_CODE, 'bestsellers');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
index 1ccc99988bb..e9ece3ae682 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Coupons.php
@@ -15,7 +15,7 @@ class Coupons extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_COUPONS_FLAG_CODE, 'coupons');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
index e831fc83471..0a531d06068 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersCsv.php
@@ -16,7 +16,7 @@ class ExportBestsellersCsv extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'bestsellers.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Bestsellers\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
index bba9bbacf88..2d1afc0fac1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportBestsellersExcel.php
@@ -16,7 +16,7 @@ class ExportBestsellersExcel extends \Magento\Reports\Controller\Adminhtml\Repor
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'bestsellers.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Bestsellers\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
index 4b5ed51a45f..ccd04b83482 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsCsv.php
@@ -16,7 +16,7 @@ class ExportCouponsCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sale
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'coupons.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Coupons\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
index 54641cd4494..d70457746f8 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportCouponsExcel.php
@@ -16,7 +16,7 @@ class ExportCouponsExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sa
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'coupons.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Coupons\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
index 46f977f4157..e4ad782163c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedCsv.php
@@ -16,7 +16,7 @@ class ExportInvoicedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'invoiced.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Invoiced\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
index 771078bae98..503bc1562ce 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportInvoicedExcel.php
@@ -16,7 +16,7 @@ class ExportInvoicedExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'invoiced.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Invoiced\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
index 375b63e3600..987b288f934 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedCsv.php
@@ -16,7 +16,7 @@ class ExportRefundedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'refunded.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Refunded\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
index ca4a842af87..311380659a6 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportRefundedExcel.php
@@ -16,7 +16,7 @@ class ExportRefundedExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'refunded.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Refunded\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
index 345f809725e..20e4a577b3f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesCsv.php
@@ -16,7 +16,7 @@ class ExportSalesCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'sales.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Sales\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
index b0bc6001d45..0e5b9beaccc 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportSalesExcel.php
@@ -16,7 +16,7 @@ class ExportSalesExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sale
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'sales.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Sales\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
index 82fe7afbead..c7c699a105f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingCsv.php
@@ -16,7 +16,7 @@ class ExportShippingCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shipping.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Shipping\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
index 39b7a4676c1..13ae0fe237c 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportShippingExcel.php
@@ -16,7 +16,7 @@ class ExportShippingExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shipping.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Shipping\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
index ae7ce954bb3..d9496b9f5ee 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxCsv.php
@@ -16,7 +16,7 @@ class ExportTaxCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tax.csv';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Tax\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
index b7648a55d5b..f7737132e9d 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/ExportTaxExcel.php
@@ -16,7 +16,7 @@ class ExportTaxExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'tax.xml';
         $grid = $this->_view->getLayout()->createBlock('Magento\Reports\Block\Adminhtml\Sales\Tax\Grid');
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
index 3a7cd19fef7..242d9c41d27 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Invoiced.php
@@ -15,7 +15,7 @@ class Invoiced extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_INVOICE_FLAG_CODE, 'invoiced');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
index d093fd273b7..19e3007db7a 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshLifetime.php
@@ -13,7 +13,7 @@ class RefreshLifetime extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('refreshLifetime', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
index 2d4665fe4f4..0b7ccef07bd 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshRecent.php
@@ -13,7 +13,7 @@ class RefreshRecent extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('refreshRecent', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
index 77c6bfab4db..64ac14d427f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/RefreshStatistics.php
@@ -13,7 +13,7 @@ class RefreshStatistics extends \Magento\Reports\Controller\Adminhtml\Report\Sal
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('index', 'report_statistics');
     }
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
index 5d03937d815..3120ff01236 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Refunded.php
@@ -15,7 +15,7 @@ class Refunded extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_REFUNDED_FLAG_CODE, 'refunded');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
index c54cafb6c0c..3dd5c10bf9f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Sales.php
@@ -15,7 +15,7 @@ class Sales extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_ORDER_FLAG_CODE, 'sales');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
index 46aa42db9b1..10685964510 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Shipping.php
@@ -15,7 +15,7 @@ class Shipping extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_SHIPPING_FLAG_CODE, 'shipping');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
index 6fd6555ef09..143140f42b0 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Sales/Tax.php
@@ -15,7 +15,7 @@ class Tax extends \Magento\Reports\Controller\Adminhtml\Report\Sales
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_showLastExecutionTime(Flag::REPORT_TAX_FLAG_CODE, 'tax');
 
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
index 5db3858d004..6c88e443ca5 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Abandoned.php
@@ -13,7 +13,7 @@ class Abandoned extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_abandoned'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
index 376d220a795..b8045d003aa 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Customer.php
@@ -13,7 +13,7 @@ class Customer extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_customer'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
index 6023236b82c..aff71b76b37 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedCsv.php
@@ -16,7 +16,7 @@ class ExportAbandonedCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sh
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_abandoned.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
index 6118c9fb20a..71aae22568e 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportAbandonedExcel.php
@@ -16,7 +16,7 @@ class ExportAbandonedExcel extends \Magento\Reports\Controller\Adminhtml\Report\
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_abandoned.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
index 30218563edd..4405cfc9614 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerCsv.php
@@ -15,7 +15,7 @@ class ExportCustomerCsv extends \Magento\Reports\Controller\Adminhtml\Report\Sho
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_customer.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
index 2c017142a18..f20fcb9c20f 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportCustomerExcel.php
@@ -15,7 +15,7 @@ class ExportCustomerExcel extends \Magento\Reports\Controller\Adminhtml\Report\S
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_customer.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
index c244aee2574..9ad9dd030d3 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductCsv.php
@@ -16,7 +16,7 @@ class ExportProductCsv extends \Magento\Reports\Controller\Adminhtml\Report\Shop
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_product.csv';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
index 1b844291864..43ed6690d3b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/ExportProductExcel.php
@@ -16,7 +16,7 @@ class ExportProductExcel extends \Magento\Reports\Controller\Adminhtml\Report\Sh
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $fileName = 'shopcart_product.xml';
         $content = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
index c257a751084..d8035545af1 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Shopcart/Product.php
@@ -13,7 +13,7 @@ class Product extends \Magento\Reports\Controller\Adminhtml\Report\Shopcart
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_shopcart_product'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
index e4cf01207ad..36e87ff3d7b 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Reports\Controller\Adminhtml\Report\Statistics
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_setActiveMenu(
             'Magento_Reports::report_statistics_refresh'
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
index 35222afc53a..016c026abaf 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshLifetime.php
@@ -14,7 +14,7 @@ class RefreshLifetime extends \Magento\Reports\Controller\Adminhtml\Report\Stati
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = $this->_getCollectionNames();
diff --git a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
index e4e5c4e6510..8864c3401ec 100644
--- a/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
+++ b/app/code/Magento/Reports/Controller/Adminhtml/Report/Statistics/RefreshRecent.php
@@ -14,7 +14,7 @@ class RefreshRecent extends \Magento\Reports\Controller\Adminhtml\Report\Statist
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collectionsNames = $this->_getCollectionNames();
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
index baad059fb48..96a1921b295 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/AccountsTest.php
@@ -70,6 +70,6 @@ class AccountsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repor
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('New Accounts'), new Phrase('New Accounts'));
-        $this->accounts->execute();
+        $this->accounts->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
index c5e9ccccf6d..273574130f1 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsCsvTest.php
@@ -45,6 +45,6 @@ class ExportAccountsCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('new_accounts.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportAccountsCsv->execute();
+        $this->exportAccountsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
index 98134d20ccd..8205201a150 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportAccountsExcelTest.php
@@ -45,6 +45,6 @@ class ExportAccountsExcelTest extends \Magento\Reports\Test\Unit\Controller\Admi
             ->expects($this->once())
             ->method('create')
             ->with('new_accounts.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportAccountsExcel->execute();
+        $this->exportAccountsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
index 573720a1859..50bde9a3f42 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersCsvTest.php
@@ -45,6 +45,6 @@ class ExportOrdersCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->expects($this->once())
             ->method('create')
             ->with('customers_orders.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportOrdersCsv->execute();
+        $this->exportOrdersCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
index b8273becb2d..8cc84ac980e 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportOrdersExcelTest.php
@@ -45,6 +45,6 @@ class ExportOrdersExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('customers_orders.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportOrdersExcel->execute();
+        $this->exportOrdersExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
index b4a7a0c68e2..989d05bc651 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsCsvTest.php
@@ -45,6 +45,6 @@ class ExportTotalsCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->expects($this->once())
             ->method('create')
             ->with('customer_totals.csv', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportTotalsCsv->execute();
+        $this->exportTotalsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
index 33177c27a18..3c2cb597647 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/ExportTotalsExcelTest.php
@@ -45,6 +45,6 @@ class ExportTotalsExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->expects($this->once())
             ->method('create')
             ->with('customer_totals.xml', ['export'], \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
-        $this->exportTotalsExcel->execute();
+        $this->exportTotalsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
index 1d960cc8175..c15797a18d9 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/OrdersTest.php
@@ -70,6 +70,6 @@ class OrdersTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('Customers by Number of Orders'), new Phrase('Customers by Number of Orders'));
-        $this->orders->execute();
+        $this->orders->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
index a479fb53c3a..44d554a10c7 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Customer/TotalsTest.php
@@ -70,6 +70,6 @@ class TotalsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->at(2))
             ->method('addLink')
             ->with(new Phrase('Customers by Orders Total'), new Phrase('Customers by Orders Total'));
-        $this->totals->execute();
+        $this->totals->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
index 6bae34a5687..b3e5f9c4725 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/DownloadsTest.php
@@ -86,6 +86,6 @@ class DownloadsTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repo
             ->with('Magento\Reports\Block\Adminhtml\Product\Downloads')
             ->willReturn($this->abstractBlockMock);
 
-        $this->downloads->execute();
+        $this->downloads->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
index 9c80ef0700b..3b54b2e96fc 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsCsvTest.php
@@ -70,6 +70,6 @@ class ExportDownloadsCsvTest extends \Magento\Reports\Test\Unit\Controller\Admin
             ->method('create')
             ->with('products_downloads.csv', $content);
 
-        $this->exportDownloadsCsv->execute();
+        $this->exportDownloadsCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
index 010e14168b4..864abadb92d 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportDownloadsExcelTest.php
@@ -72,6 +72,6 @@ class ExportDownloadsExcelTest extends \Magento\Reports\Test\Unit\Controller\Adm
             ->method('create')
             ->with($fileName, $content);
 
-        $this->exportDownloadsExcel->execute();
+        $this->exportDownloadsExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
index 074c8e88d57..d1897fe6ac3 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockCsvTest.php
@@ -65,6 +65,6 @@ class ExportLowstockCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->method('create')
             ->with('products_lowstock.csv', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportLowstockCsv->execute();
+        $this->exportLowstockCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
index 509fc27b170..0b5b2240fab 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportLowstockExcelTest.php
@@ -65,6 +65,6 @@ class ExportLowstockExcelTest extends \Magento\Reports\Test\Unit\Controller\Admi
             ->method('create')
             ->with('products_lowstock.xml', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportLowstockExcel->execute();
+        $this->exportLowstockExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
index b0f76d58049..2c01c8d3eab 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldCsvTest.php
@@ -65,6 +65,6 @@ class ExportSoldCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\
             ->method('create')
             ->with('products_ordered.csv', $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportSoldCsv->execute();
+        $this->exportSoldCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
index 21ce5635d33..202252d7f25 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportSoldExcelTest.php
@@ -67,6 +67,6 @@ class ExportSoldExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportSoldExcel->execute();
+        $this->exportSoldExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
index e31655f1183..f1f060d09f2 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedCsvTest.php
@@ -90,6 +90,6 @@ class ExportViewedCsvTest extends \Magento\Reports\Test\Unit\Controller\Adminhtm
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportViewedCsv->execute();
+        $this->exportViewedCsv->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
index 43e615c7a9a..4a92d6c8f2f 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ExportViewedExcelTest.php
@@ -91,6 +91,6 @@ class ExportViewedExcelTest extends \Magento\Reports\Test\Unit\Controller\Adminh
             ->method('create')
             ->with($fileName, $content, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR);
 
-        $this->exportViewedExcel->execute();
+        $this->exportViewedExcel->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
index 10eaa830d79..0ec6a082b92 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/LowstockTest.php
@@ -83,6 +83,6 @@ class LowstockTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Repor
                 [new Phrase('Low Stock'), new Phrase('Low Stock')]
             );
 
-        $this->lowstock->execute();
+        $this->lowstock->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
index 34c9e12df2c..82981d6f142 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/SoldTest.php
@@ -83,6 +83,6 @@ class SoldTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\Ab
                 [new Phrase('Products Ordered'), new Phrase('Products Ordered')]
             );
 
-        $this->sold->execute();
+        $this->sold->executeInternal();
     }
 }
diff --git a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
index 686aed163ec..01cfe44f652 100644
--- a/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
+++ b/app/code/Magento/Reports/Test/Unit/Controller/Adminhtml/Report/Product/ViewedTest.php
@@ -151,7 +151,7 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->expects($this->once())
             ->method('renderLayout');
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 
     /**
@@ -202,7 +202,7 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->method('setActive')
             ->willThrowException(new \Exception());
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 
     /**
@@ -222,6 +222,6 @@ class ViewedTest extends \Magento\Reports\Test\Unit\Controller\Adminhtml\Report\
             ->method('setActive')
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException($errorText));
 
-        $this->viewed->execute();
+        $this->viewed->executeInternal();
     }
 }
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
index ce84f4e9985..f6ea8b9f899 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Delete.php
@@ -13,7 +13,7 @@ class Delete extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
index 10026df39b8..658b798acbf 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Edit.php
@@ -13,7 +13,7 @@ class Edit extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
index da31a87aa9f..e999732f5ef 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Index.php
@@ -13,7 +13,7 @@ class Index extends ProductController
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php b/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
index 2f449cfd4ca..acd2b40a78f 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/JsonProductInfo.php
@@ -42,7 +42,7 @@ class JsonProductInfo extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new DataObject();
         $id = $this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
index 6a64c6cf549..73dfe572ba7 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassDelete.php
@@ -14,7 +14,7 @@ class MassDelete extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
index 285503a2365..9866a2be76a 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassUpdateStatus.php
@@ -14,7 +14,7 @@ class MassUpdateStatus extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php b/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
index 4e65891133a..f9d646d68e6 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/MassVisibleIn.php
@@ -14,7 +14,7 @@ class MassVisibleIn extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $reviewsIds = $this->getRequest()->getParam('reviews');
         if (!is_array($reviewsIds)) {
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php b/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
index e5d2a0e1b31..4cbd60d0342 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
index 46b341492ab..ddae839c33c 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Pending.php
@@ -13,7 +13,7 @@ class Pending extends ProductController
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getParam('ajax')) {
             $this->coreRegistry->register('usePendingFilter', true);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
index f6b7f24bffd..20cc725e3d1 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Post.php
@@ -15,7 +15,7 @@ class Post extends ProductController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = $this->getRequest()->getParam('product_id', false);
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
index afdd87aac5d..43aaf18b473 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/ProductGrid.php
@@ -41,7 +41,7 @@ class ProductGrid extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php b/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
index f79da2549bf..46a2a19088f 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/RatingItems.php
@@ -41,7 +41,7 @@ class RatingItems extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
index 293b958b6ec..7715f73dbff 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/ReviewGrid.php
@@ -41,7 +41,7 @@ class ReviewGrid extends ProductController
     /**
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $layout = $this->layoutFactory->create();
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
index 84606cfe8b3..a88025a2755 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Reviews/Grid.php
@@ -34,7 +34,7 @@ class Grid extends Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->productBuilder->build($this->getRequest());
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php b/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
index f1121eec6b2..8494e1b5590 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Product/Save.php
@@ -15,7 +15,7 @@ class Save extends ProductController
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
index 55fc796fc26..818f8bf9351 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Delete.php
@@ -13,7 +13,7 @@ class Delete extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
index 54bd62f83a1..e4a4e8808bc 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Edit.php
@@ -13,7 +13,7 @@ class Edit extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Review\Model\Rating $ratingModel */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
index be9bebf78c7..1723d280092 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Index.php
@@ -13,7 +13,7 @@ class Index extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
index 162f85eac65..ec6190f27de 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends RatingController
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php b/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
index 6cfaeabfa33..2802b50031d 100644
--- a/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
+++ b/app/code/Magento/Review/Controller/Adminhtml/Rating/Save.php
@@ -15,7 +15,7 @@ class Save extends RatingController
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initEnityId();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Review/Controller/Customer.php b/app/code/Magento/Review/Controller/Customer.php
index 0e96a652b72..a1a39d544c2 100644
--- a/app/code/Magento/Review/Controller/Customer.php
+++ b/app/code/Magento/Review/Controller/Customer.php
@@ -40,11 +40,11 @@ abstract class Customer extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         if (!$this->customerSession->authenticate()) {
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 }
diff --git a/app/code/Magento/Review/Controller/Customer/Index.php b/app/code/Magento/Review/Controller/Customer/Index.php
index 6123c009cdd..e51ca5c5476 100644
--- a/app/code/Magento/Review/Controller/Customer/Index.php
+++ b/app/code/Magento/Review/Controller/Customer/Index.php
@@ -15,7 +15,7 @@ class Index extends CustomerController
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Review/Controller/Customer/View.php b/app/code/Magento/Review/Controller/Customer/View.php
index 92972dce3ae..222f8a0bcb0 100644
--- a/app/code/Magento/Review/Controller/Customer/View.php
+++ b/app/code/Magento/Review/Controller/Customer/View.php
@@ -36,7 +36,7 @@ class View extends CustomerController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $review = $this->reviewFactory->create()->load($this->getRequest()->getParam('id'));
         if ($review->getCustomerId() != $this->customerSession->getCustomerId()) {
diff --git a/app/code/Magento/Review/Controller/Product.php b/app/code/Magento/Review/Controller/Product.php
index a0137ef07b9..8db2e062706 100644
--- a/app/code/Magento/Review/Controller/Product.php
+++ b/app/code/Magento/Review/Controller/Product.php
@@ -144,11 +144,11 @@ abstract class Product extends \Magento\Framework\App\Action\Action
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $allowGuest = $this->_objectManager->get('Magento\Review\Helper\Data')->getIsGuestAllowToWrite();
         if (!$request->isDispatched()) {
-            return parent::dispatch($request);
+            return parent::execute($request);
         }
 
         if (!$allowGuest && $request->getActionName() == 'post' && $request->isPost()) {
@@ -166,7 +166,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
             }
         }
 
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/Review/Controller/Product/ListAction.php b/app/code/Magento/Review/Controller/Product/ListAction.php
index 3c28379ec4a..910b9232da9 100644
--- a/app/code/Magento/Review/Controller/Product/ListAction.php
+++ b/app/code/Magento/Review/Controller/Product/ListAction.php
@@ -38,7 +38,7 @@ class ListAction extends ProductController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->initProduct();
         if ($product) {
diff --git a/app/code/Magento/Review/Controller/Product/ListAjax.php b/app/code/Magento/Review/Controller/Product/ListAjax.php
index b261971c509..36fa3830a36 100644
--- a/app/code/Magento/Review/Controller/Product/ListAjax.php
+++ b/app/code/Magento/Review/Controller/Product/ListAjax.php
@@ -15,7 +15,7 @@ class ListAjax extends ProductController
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->initProduct();
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
diff --git a/app/code/Magento/Review/Controller/Product/Post.php b/app/code/Magento/Review/Controller/Product/Post.php
index a68f0d18c3b..9cf199d7f72 100644
--- a/app/code/Magento/Review/Controller/Product/Post.php
+++ b/app/code/Magento/Review/Controller/Product/Post.php
@@ -18,7 +18,7 @@ class Post extends ProductController
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Review/Controller/Product/View.php b/app/code/Magento/Review/Controller/Product/View.php
index f65d1ceb819..fb2a1893ba6 100644
--- a/app/code/Magento/Review/Controller/Product/View.php
+++ b/app/code/Magento/Review/Controller/Product/View.php
@@ -40,7 +40,7 @@ class View extends ProductController
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $review = $this->loadReview((int)$this->getRequest()->getParam('id'));
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
diff --git a/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php b/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
index d20abf31a19..1c6cc30cafb 100644
--- a/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
+++ b/app/code/Magento/Review/Test/Unit/Controller/Adminhtml/Product/PostTest.php
@@ -209,6 +209,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
             ->method('addOptionVote')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->postController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->postController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php b/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
index 9cedb87e15a..f1ccec681b2 100644
--- a/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
+++ b/app/code/Magento/Review/Test/Unit/Controller/Product/PostTest.php
@@ -315,6 +315,6 @@ class PostTest extends \PHPUnit_Framework_TestCase
             ->with(true)
             ->willReturn($redirectUrl);
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php b/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
index 61da0e27c2e..96b989cdf78 100644
--- a/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
+++ b/app/code/Magento/Rss/Controller/Adminhtml/Feed/Index.php
@@ -20,7 +20,7 @@ class Index extends \Magento\Rss\Controller\Adminhtml\Feed
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Rss/Controller/Feed/Index.php b/app/code/Magento/Rss/Controller/Feed/Index.php
index e3679a10021..5f8e58afefd 100644
--- a/app/code/Magento/Rss/Controller/Feed/Index.php
+++ b/app/code/Magento/Rss/Controller/Feed/Index.php
@@ -20,7 +20,7 @@ class Index extends \Magento\Rss\Controller\Feed
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Rss/Controller/Index/Index.php b/app/code/Magento/Rss/Controller/Index/Index.php
index 63575ad8e44..0a2096c35d8 100644
--- a/app/code/Magento/Rss/Controller/Index/Index.php
+++ b/app/code/Magento/Rss/Controller/Index/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\Rss\Controller\Index
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_scopeConfig->getValue('rss/config/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) {
             $this->_view->loadLayout();
diff --git a/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php b/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
index 83126339130..2d58e440902 100644
--- a/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
+++ b/app/code/Magento/Rss/Test/Unit/Controller/Adminhtml/Feed/IndexTest.php
@@ -93,7 +93,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssFactory->expects($this->once())->method('create')->will($this->returnValue($rssModel));
 
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -110,6 +110,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
 
         $this->setExpectedException('\Zend_Feed_Builder_Exception');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php b/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
index 5b209caa274..638f2dc802d 100644
--- a/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
+++ b/app/code/Magento/Rss/Test/Unit/Controller/Feed/IndexTest.php
@@ -81,7 +81,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssFactory->expects($this->once())->method('create')->will($this->returnValue($rssModel));
 
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -98,6 +98,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->rssManager->expects($this->once())->method('getProvider')->will($this->returnValue($dataProvider));
 
         $this->setExpectedException('\Zend_Feed_Builder_Exception');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php b/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
index b011b8f60e5..433e8d38c4d 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintAction.php
@@ -41,7 +41,7 @@ abstract class PrintAction extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php b/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
index 24f13d49d08..bffa469a2ee 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintCreditmemo.php
@@ -58,7 +58,7 @@ abstract class PrintCreditmemo extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = (int)$this->getRequest()->getParam('creditmemo_id');
         if ($creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php b/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
index 04088a9c79c..fffcb6ca4df 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintInvoice.php
@@ -49,7 +49,7 @@ abstract class PrintInvoice extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = (int)$this->getRequest()->getParam('invoice_id');
         if ($invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php b/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
index 74fbb343944..ab17469ccf1 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/PrintShipment.php
@@ -49,7 +49,7 @@ abstract class PrintShipment extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $shipmentId = (int)$this->getRequest()->getParam('shipment_id');
         if ($shipmentId) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/Reorder.php b/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
index bf86825d8b4..f589dbabab9 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/Reorder.php
@@ -41,7 +41,7 @@ abstract class Reorder extends Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/AbstractController/View.php b/app/code/Magento/Sales/Controller/AbstractController/View.php
index 987fa30704e..0bef4ed08e0 100644
--- a/app/code/Magento/Sales/Controller/AbstractController/View.php
+++ b/app/code/Magento/Sales/Controller/AbstractController/View.php
@@ -41,7 +41,7 @@ abstract class View extends Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
index 68fc9d62e85..6a6babfc1b1 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Email.php
@@ -25,7 +25,7 @@ class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
         if (!$creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
index 3022cf995e6..209096f62fe 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Grid.php
@@ -37,7 +37,7 @@ class Grid extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultLayoutFactory->create();
         return $resultLayout;
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
index 4fbd4c7ff5b..5569d131abd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Index.php
@@ -51,7 +51,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Credit Memos'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
index 83befcc3b58..39137a698fe 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/PrintAction.php
@@ -55,7 +55,7 @@ class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @see \Magento\Sales\Controller\Adminhtml\Order\Invoice */
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
index 06e42091731..c70eb6e4cb4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/View.php
@@ -37,7 +37,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         if ($this->getRequest()->getParam('creditmemo_id')) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
index baa603c9ef5..c7ea617b535 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/Index.php
@@ -12,8 +12,8 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCredi
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
-        return parent::execute();
+        return parent::executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
index c807026addf..8c32e32f478 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Email.php
@@ -45,7 +45,7 @@ abstract class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = $this->getRequest()->getParam('invoice_id');
         if (!$invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
index d448d97138f..a01e0ba26f6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Grid.php
@@ -38,7 +38,7 @@ abstract class Grid extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
index e88f6089c48..603ec3258ba 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Index.php
@@ -53,7 +53,7 @@ abstract class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Invoices'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
index ac5c97372b7..b72dc44f2ca 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php
@@ -47,7 +47,7 @@ abstract class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoiceId = $this->getRequest()->getParam('invoice_id');
         if ($invoiceId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
index e6e49dd0ca6..98fe68a4def 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/View.php
@@ -49,7 +49,7 @@ abstract class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultForward = $this->resultForwardFactory->create();
         if ($this->getRequest()->getParam('invoice_id')) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
index badfbc2ad43..225ab0ddd01 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php
@@ -48,7 +48,7 @@ abstract class AbstractMassAction extends \Magento\Backend\App\Action
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @throws \Magento\Framework\Exception\LocalizedException|\Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $collection = $this->filter->getCollection($this->collectionFactory->create());
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
index 29729f850bb..f83fb55e218 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddComment.php
@@ -16,7 +16,7 @@ class AddComment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         if ($order) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
index 18fdf29cf80..07a49e22fab 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Address.php
@@ -13,7 +13,7 @@ class Address extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('address_id');
         $address = $this->_objectManager->create('Magento\Sales\Model\Order\Address')->load($addressId);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
index e3d15fd93cd..962b526f4d5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AddressSave.php
@@ -13,7 +13,7 @@ class AddressSave extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $addressId = $this->getRequest()->getParam('address_id');
         $address = $this->_objectManager->create('Magento\Sales\Model\Order\Address')->load($addressId);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
index 959917738db..c4740f7825a 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
index 54774ec719e..fd6239b4848 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/CommentsHistory.php
@@ -74,7 +74,7 @@ class CommentsHistory extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $layout = $this->layoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
index b991a11b287..cbc62796bcd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/AddConfigured.php
@@ -12,7 +12,7 @@ class AddConfigured extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $errorMessage = null;
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
index f778a07a85a..7cfd40bda0c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Cancel.php
@@ -12,7 +12,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
index d8c70e6d63b..07bbc3e479f 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureProductToAdd.php
@@ -12,7 +12,7 @@ class ConfigureProductToAdd extends \Magento\Sales\Controller\Adminhtml\Order\Cr
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         // Prepare data
         $productId = (int)$this->getRequest()->getParam('id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
index 080d5103c08..10c3432f5c8 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ConfigureQuoteItems.php
@@ -12,7 +12,7 @@ class ConfigureQuoteItems extends \Magento\Sales\Controller\Adminhtml\Order\Crea
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         // Prepare data
         $configureResult = new \Magento\Framework\DataObject();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
index 055b3fe11f8..2d159a99ee4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
 
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
index ba4b0e833e2..e5b063280bb 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php
@@ -48,7 +48,7 @@ class LoadBlock extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $request = $this->getRequest();
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
index 7d550a7d357..cc2d978556c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ProcessData.php
@@ -12,7 +12,7 @@ class ProcessData extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
         $this->_processData();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
index b64cb14c95c..8c91da215ca 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Reorder.php
@@ -10,7 +10,7 @@ class Reorder extends \Magento\Sales\Controller\Adminhtml\Order\Create
     /**
      * @return \Magento\Backend\Model\View\Result\Forward|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
index 3f48e6cf067..087e6311cb6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
index a3546de1fa6..9cd5b4d5245 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php
@@ -49,7 +49,7 @@ class ShowUpdateResult extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
         $resultRaw = $this->resultRawFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
index d9fd5c50f5b..acc80e97426 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Create/Start.php
@@ -14,7 +14,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Order\Create
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
index a3cf6e6a308..d404c6a16aa 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/AddComment.php
@@ -72,7 +72,7 @@ class AddComment extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Raw|\Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('creditmemo_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
index ce4652929c7..935eca652b3 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Cancel.php
@@ -40,7 +40,7 @@ class Cancel extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $creditmemoId = $this->getRequest()->getParam('creditmemo_id');
         if ($creditmemoId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
index a9760a20fda..e1c7b8d9cc2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/NewAction.php
@@ -55,7 +55,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
index b5bb3333ac3..a848506b900 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/PrintAction.php
@@ -49,13 +49,13 @@ class PrintAction extends \Magento\Sales\Controller\Adminhtml\Creditmemo\Abstrac
      *
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
         $this->creditmemoLoader->setCreditmemo($this->getRequest()->getParam('creditmemo'));
         $this->creditmemoLoader->setInvoiceId($this->getRequest()->getParam('invoice_id'));
         $this->creditmemoLoader->load();
-        return parent::execute();
+        return parent::executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
index 24d74e2177f..c66532f3aa5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Save.php
@@ -61,7 +61,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         $data = $this->getRequest()->getPost('creditmemo');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
index 4305bef4930..a60433a2e03 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Start.php
@@ -20,7 +20,7 @@ class Start extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for creditmemo qty's
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
index 38068b10918..d1f400c84fb 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/UpdateQty.php
@@ -63,7 +63,7 @@ class UpdateQty extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\Result\Json|\Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
index 486b041554a..fe8808c559f 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/View.php
@@ -55,7 +55,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
index 23bd5f1ccdb..fcc978d5ddd 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php
@@ -47,7 +47,7 @@ class Void extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->creditmemoLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->creditmemoLoader->setCreditmemoId($this->getRequest()->getParam('creditmemo_id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
index 46571b222f3..9fb23be0820 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemos.php
@@ -12,7 +12,7 @@ class Creditmemos extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
index a40e61cfa89..f2384d10884 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Index.php
@@ -22,7 +22,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Create\Index
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initSession();
 
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
index 22bcb5a6212..c216968a893 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Edit/Start.php
@@ -22,7 +22,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Order\Create\Start
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_getSession()->clearStorage();
         $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
index ae1763485bd..95e845bce78 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Email.php
@@ -12,7 +12,7 @@ class Email extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         if ($order) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
index d16a0ea8cd1..c2017647e88 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Grid.php
@@ -12,7 +12,7 @@ class Grid extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultLayout = $this->resultLayoutFactory->create();
         return $resultLayout;
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
index 881ba0c98c9..fd5f07df5e9 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Hold.php
@@ -12,7 +12,7 @@ class Hold extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
index 9fc67fd2754..3aac062e01b 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->_initAction();
         $resultPage->getConfig()->getTitle()->prepend(__('Orders'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
index 2be526b2129..f4a48a14568 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/AddComment.php
@@ -68,7 +68,7 @@ class AddComment extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInv
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('invoice_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
index a717843c7e9..d79599efb94 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Cancel.php
@@ -13,7 +13,7 @@ class Cancel extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
index 50ab1d8a9f2..3f8b12d19fc 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Capture.php
@@ -13,7 +13,7 @@ class Capture extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoic
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
index 306518b16ed..4c52db5ff57 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/NewAction.php
@@ -73,7 +73,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $orderId = $this->getRequest()->getParam('order_id');
         $invoiceData = $this->getRequest()->getParam('invoice', []);
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
index 1ffa64f0100..5a822770fe5 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Save.php
@@ -110,7 +110,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
index 8db329dad08..594a437c653 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Start.php
@@ -13,7 +13,7 @@ class Start extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for invoice qty's
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
index 3b30dbde11f..cfee5ad1ff2 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/UpdateQty.php
@@ -71,7 +71,7 @@ class UpdateQty extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvo
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $orderId = $this->getRequest()->getParam('order_id');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
index b6f4ae27b44..9e01376261e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/View.php
@@ -39,7 +39,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\V
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
index 841d517037b..005c3cdbc47 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php
@@ -13,7 +13,7 @@ class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\V
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $invoice = $this->getInvoice();
         if (!$invoice) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
index 08354deb668..cfb8841f41c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Invoices.php
@@ -12,7 +12,7 @@ class Invoices extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
index 8a0d64c9bcb..a2d72953eb4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/ReviewPayment.php
@@ -16,7 +16,7 @@ class ReviewPayment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         try {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
index 98683c76017..84efbffee9d 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Shipments.php
@@ -12,7 +12,7 @@ class Shipments extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
index 04e05fc348e..7a2abd381e1 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Assign.php
@@ -36,7 +36,7 @@ class Assign extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
index a77c6dc3cc6..a103fbf4175 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/AssignPost.php
@@ -13,7 +13,7 @@ class AssignPost extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
index 26ee0651e36..0f5f2e720b8 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Edit.php
@@ -36,7 +36,7 @@ class Edit extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $status = $this->_initStatus();
         if ($status) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
index 3bafba19372..65f3dd3f164 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Index.php
@@ -36,7 +36,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
index f9668e83258..57e8e0b852e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/NewAction.php
@@ -36,7 +36,7 @@ class NewAction extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->_getSession()->getFormData(true);
         if ($data) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
index efd73d7a2b3..79efd7eede6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\Status
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         $isNew = $this->getRequest()->getParam('is_new');
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
index e44b4f5e48e..e84ac0bc45b 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Status/Unassign.php
@@ -11,7 +11,7 @@ class Unassign extends \Magento\Sales\Controller\Adminhtml\Order\Status
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $state = $this->getRequest()->getParam('state');
         $status = $this->_initStatus();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
index f41824df84b..9801ada2f82 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Transactions.php
@@ -14,7 +14,7 @@ class Transactions extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Framework\View\Result\Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initOrder();
         $resultLayout = $this->resultLayoutFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
index 6cedb1e60b9..83fc8808df3 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Unhold.php
@@ -12,7 +12,7 @@ class Unhold extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultRedirect = $this->resultRedirectFactory->create();
         if (!$this->isValidPostRequest()) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
index 831538fa21d..011056eac14 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/View.php
@@ -14,7 +14,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
index 554935ed551..13ced62a888 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/View/Giftmessage/Save.php
@@ -11,7 +11,7 @@ class Save extends \Magento\Sales\Controller\Adminhtml\Order\View\Giftmessage
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_getGiftmessageSaveModel()->setGiftmessages(
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
index 03b870d71ca..3a10f5684c6 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/VoidPayment.php
@@ -12,7 +12,7 @@ class VoidPayment extends \Magento\Sales\Controller\Adminhtml\Order
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $order = $this->_initOrder();
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
index 1a800be5b93..c393c2b1a1c 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Index.php
@@ -41,7 +41,7 @@ abstract class Index extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
index 633cf071b93..6a72dfe0ebc 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/PrintAction.php
@@ -50,7 +50,7 @@ abstract class PrintAction extends \Magento\Backend\App\Action
     /**
      * @return ResponseInterface|\Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         $shipmentId = $this->getRequest()->getParam('shipment_id');
         if ($shipmentId) {
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
index 150f98e597b..926a46c14c4 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/View.php
@@ -41,7 +41,7 @@ abstract class View extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
index df3a48ca4a7..a2ac001589d 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Fetch.php
@@ -17,7 +17,7 @@ class Fetch extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $txn = $this->_initTransaction();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
index 0b4579d1810..d65bba3d004 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Grid.php
@@ -16,7 +16,7 @@ class Grid extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Layout
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->resultLayoutFactory->create();
     }
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
index 6125b244d29..2d39c91638e 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Sales\Controller\Adminhtml\Transactions
     /**
      * @return Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
index 867d700cb41..df25ccba4a9 100644
--- a/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
+++ b/app/code/Magento/Sales/Controller/Adminhtml/Transactions/View.php
@@ -16,7 +16,7 @@ class View extends \Magento\Sales\Controller\Adminhtml\Transactions
      *
      * @return Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $txn = $this->_initTransaction();
         if (!$txn) {
diff --git a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
index 991ac197d78..d0e7ca016d0 100644
--- a/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
+++ b/app/code/Magento/Sales/Controller/Download/DownloadCustomOption.php
@@ -54,7 +54,7 @@ class DownloadCustomOption extends \Magento\Framework\App\Action\Action
      *
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $quoteItemOptionId = $this->getRequest()->getParam('id');
         /** @var $option \Magento\Quote\Model\Quote\Item\Option */
diff --git a/app/code/Magento/Sales/Controller/Guest/Form.php b/app/code/Magento/Sales/Controller/Guest/Form.php
index c9f87d44e79..03f56609495 100644
--- a/app/code/Magento/Sales/Controller/Guest/Form.php
+++ b/app/code/Magento/Sales/Controller/Guest/Form.php
@@ -30,7 +30,7 @@ class Form extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_objectManager->get('Magento\Customer\Model\Session')->isLoggedIn()) {
             return $this->resultRedirectFactory->create()->setPath('customer/account/');
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php b/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
index 5b6fd6c5a6a..cc62bfa7047 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintCreditmemo.php
@@ -52,7 +52,7 @@ class PrintCreditmemo extends \Magento\Sales\Controller\AbstractController\Print
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php b/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
index ddd943b3246..d8c30fe056d 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintInvoice.php
@@ -42,7 +42,7 @@ class PrintInvoice extends \Magento\Sales\Controller\AbstractController\PrintInv
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/PrintShipment.php b/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
index 8dcbfe4ef73..8a1ad2b803e 100644
--- a/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
+++ b/app/code/Magento/Sales/Controller/Guest/PrintShipment.php
@@ -42,7 +42,7 @@ class PrintShipment extends \Magento\Sales\Controller\AbstractController\PrintSh
     /**
      * {@inheritdoc}
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->orderLoader->load($this->_request);
         if ($result instanceof \Magento\Framework\Controller\ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Guest/View.php b/app/code/Magento/Sales/Controller/Guest/View.php
index 93de3cab2db..500d1d30d08 100644
--- a/app/code/Magento/Sales/Controller/Guest/View.php
+++ b/app/code/Magento/Sales/Controller/Guest/View.php
@@ -40,7 +40,7 @@ class View extends Action\Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $result = $this->guestHelper->loadValidOrder($this->getRequest());
         if ($result instanceof ResultInterface) {
diff --git a/app/code/Magento/Sales/Controller/Order/History.php b/app/code/Magento/Sales/Controller/Order/History.php
index 5a87a8b9442..8dd70bfbe33 100644
--- a/app/code/Magento/Sales/Controller/Order/History.php
+++ b/app/code/Magento/Sales/Controller/Order/History.php
@@ -34,7 +34,7 @@ class History extends \Magento\Framework\App\Action\Action implements OrderInter
      *
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultPageFactory->create();
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
index 6a78aef9bcf..b35968afc83 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/EmailTest.php
@@ -163,7 +163,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->creditmemoEmail->execute()
+            $this->creditmemoEmail->executeInternal()
         );
         $this->assertEquals($this->response, $this->creditmemoEmail->getResponse());
     }
@@ -175,7 +175,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('creditmemo_id')
             ->will($this->returnValue(null));
 
-        $this->assertNull($this->creditmemoEmail->execute());
+        $this->assertNull($this->creditmemoEmail->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
index 4e5bd8e7472..0566645df83 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Invoice/AbstractInvoice/EmailTest.php
@@ -206,7 +206,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->with('sales/invoice/view', ['order_id' => $orderId, 'invoice_id' => $invoiceId])
             ->willReturnSelf();
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Redirect', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Redirect', $this->invoiceEmail->executeInternal());
     }
 
     public function testEmailNoInvoiceId()
@@ -223,7 +223,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->executeInternal());
     }
 
     public function testEmailNoInvoice()
@@ -253,6 +253,6 @@ class EmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->invoiceEmail->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
index 186a40730f9..fe34c10eb4f 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CancelTest.php
@@ -137,6 +137,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
index 805edbea1ea..c0763bf80d8 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Create/ProcessDataTest.php
@@ -233,7 +233,7 @@ class ProcessDataTest extends \PHPUnit_Framework_TestCase
             ->method('forward')
             ->with('index')
             ->willReturnSelf();
-        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->processData->execute());
+        $this->assertInstanceOf('Magento\Backend\Model\View\Result\Forward', $this->processData->executeInternal());
     }
 
     public function isApplyDiscountDataProvider()
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
index b96f2254501..f7f6a0db9dc 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/AddCommentTest.php
@@ -173,7 +173,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -201,7 +201,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -230,7 +230,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -294,7 +294,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Raw',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
index 223b5a9753b..5b8749215aa 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/CancelTest.php
@@ -200,7 +200,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -235,7 +235,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -258,7 +258,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -293,7 +293,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
index 68726f2894c..99abeba2695 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/NewActionTest.php
@@ -238,7 +238,7 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
index 7f2ae31af7e..753ed02380d 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/PrintActionTest.php
@@ -152,7 +152,7 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::executeInternal
      */
     public function testExecute()
     {
@@ -201,12 +201,12 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\App\ResponseInterface',
-            $this->printAction->execute()
+            $this->printAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::executeInternal
      */
     public function testExecuteNoCreditmemoId()
     {
@@ -222,7 +222,7 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->printAction->execute()
+            $this->printAction->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
index 9e02c98b1c3..30534fcacfd 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/UpdateQtyTest.php
@@ -221,7 +221,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -252,7 +252,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Json',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -300,7 +300,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Framework\Controller\Result\Raw',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
index fb87393407d..1b455624725 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/ViewTest.php
@@ -223,7 +223,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -269,7 +269,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
index 6d2d02861be..efd4d5b4355 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php
@@ -207,7 +207,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Forward',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -243,7 +243,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -279,7 +279,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 
@@ -333,7 +333,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->controller->execute()
+            $this->controller->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
index 73396196f97..578f64454d5 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/EmailTest.php
@@ -196,7 +196,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->orderEmail->execute()
+            $this->orderEmail->executeInternal()
         );
         $this->assertEquals($this->response, $this->orderEmail->getResponse());
     }
@@ -228,7 +228,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->orderEmail->execute()
+            $this->orderEmail->executeInternal()
         );
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
index 18dd6a8c8b3..2ddc7d1d212 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/HoldTest.php
@@ -137,6 +137,6 @@ class HoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
index f8b5c3f44b1..a72cf068a00 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/AddCommentTest.php
@@ -265,7 +265,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $resultRaw->expects($this->once())->method('setContents')->with($response);
 
         $this->resultRawFactoryMock->expects($this->once())->method('create')->will($this->returnValue($resultRaw));
-        $this->assertSame($resultRaw, $this->controller->execute());
+        $this->assertSame($resultRaw, $this->controller->executeInternal());
     }
 
     /**
@@ -288,7 +288,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->resultJsonMock));
 
         $this->resultJsonMock->expects($this->once())->method('setData')->with($response);
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 
     /**
@@ -310,6 +310,6 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->resultJsonMock));
 
         $this->resultJsonMock->expects($this->once())->method('setData')->with($response);
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
index 689d7efa270..9190aefc128 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CancelTest.php
@@ -226,7 +226,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -263,7 +263,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -319,7 +319,7 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -375,6 +375,6 @@ class CancelTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
index c0e86d79f34..e1e759a8cdd 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/CaptureTest.php
@@ -244,7 +244,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -280,7 +280,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -339,7 +339,7 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -399,6 +399,6 @@ class CaptureTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
index 5beb118dda9..7ddb6084b1d 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/NewActionTest.php
@@ -285,7 +285,7 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($this->resultPageMock));
 
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoOrder()
@@ -329,6 +329,6 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
index 223e5e4311e..4ac90b4c26b 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/PrintActionTest.php
@@ -147,6 +147,6 @@ class PrintActionTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Framework\Stdlib\DateTime\DateTime')
             ->willReturn($dateTimeMock);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
index 619b6b0bbba..9d21a5e3027 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/SaveTest.php
@@ -128,6 +128,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('sales/order/index')
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->controller->execute());
+        $this->assertEquals($redirectMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
index 2be9749e0c7..b3356c971a9 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/UpdateQtyTest.php
@@ -257,7 +257,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
 
         $this->resultRawFactoryMock->expects($this->once())->method('create')->will($this->returnValue($resultRaw));
 
-        $this->assertSame($resultRaw, $this->controller->execute());
+        $this->assertSame($resultRaw, $this->controller->executeInternal());
     }
 
     /**
@@ -300,7 +300,7 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultJsonMock));
 
-        $this->assertSame($resultJsonMock, $this->controller->execute());
+        $this->assertSame($resultJsonMock, $this->controller->executeInternal());
     }
 
     /**
@@ -343,6 +343,6 @@ class UpdateQtyTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultJsonMock));
 
-        $this->assertSame($resultJsonMock, $this->controller->execute());
+        $this->assertSame($resultJsonMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
index edb47e37f44..af2d51618d9 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/ViewTest.php
@@ -244,7 +244,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($this->resultPageMock));
 
-        $this->assertSame($this->resultPageMock, $this->controller->execute());
+        $this->assertSame($this->resultPageMock, $this->controller->executeInternal());
     }
 
     public function testExecuteNoInvoice()
@@ -278,6 +278,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
index c2bfc012aa6..a4b63898457 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php
@@ -255,7 +255,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 
     /**
@@ -297,7 +297,7 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultForward));
 
-        $this->assertSame($resultForward, $this->controller->execute());
+        $this->assertSame($resultForward, $this->controller->executeInternal());
     }
 
     /**
@@ -354,6 +354,6 @@ class VoidTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->will($this->returnValue($resultRedirect));
 
-        $this->assertSame($resultRedirect, $this->controller->execute());
+        $this->assertSame($resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
index 40a5b450f04..aa9ed541fad 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassCancelTest.php
@@ -215,7 +215,7 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     /**
@@ -259,7 +259,7 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     /**
@@ -287,6 +287,6 @@ class MassCancelTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('Can not cancel');
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
index 5c4d7870685..440d0dda48f 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassHoldTest.php
@@ -217,7 +217,7 @@ class MassHoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteNoOrdersPutOnHold()
@@ -257,6 +257,6 @@ class MassHoldTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
index 127ccc343ae..781834d3a1b 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/MassUnholdTest.php
@@ -212,7 +212,7 @@ class MassUnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 
     public function testExecuteNoReleasedOrderFromHold()
@@ -251,6 +251,6 @@ class MassUnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->massAction->execute();
+        $this->massAction->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
index 866c083c049..2fd32794370 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ReviewPaymentTest.php
@@ -163,7 +163,7 @@ class ReviewPaymentTest extends \PHPUnit_Framework_TestCase
             ->with('sales/order/view')
             ->willReturnSelf();
 
-        $result = $this->reviewPayment->execute();
+        $result = $this->reviewPayment->executeInternal();
         $this->assertEquals($this->resultRedirectMock, $result);
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
index 1dbf1baafa6..e25884e837a 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/UnholdTest.php
@@ -137,6 +137,6 @@ class UnholdTest extends \PHPUnit_Framework_TestCase
             ->with('sales/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->controller->execute());
+        $this->assertEquals($this->resultRedirect, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
index 3037e323da0..fdbd6bf306e 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/ViewTest.php
@@ -167,7 +167,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testExecute()
     {
@@ -197,12 +197,12 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Page',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testExecuteNoOrder()
     {
@@ -224,12 +224,12 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
     /**
-     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::execute
+     * @covers \Magento\Sales\Controller\Adminhtml\Order\View::executeInternal
      */
     public function testGlobalException()
     {
@@ -253,7 +253,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->viewAction->execute()
+            $this->viewAction->executeInternal()
         );
     }
 
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
index 629cb0ce5eb..0299f484176 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Download/DownloadCustomOptionTest.php
@@ -209,7 +209,7 @@ class DownloadCustomOptionTest extends \PHPUnit_Framework_TestCase
 
             $this->objectMock->expects($this->once())->method('endExecute')->willReturn(true);
         }
-        $this->objectMock->execute();
+        $this->objectMock->executeInternal();
     }
 
     public function executeDataProvider()
@@ -329,6 +329,6 @@ class DownloadCustomOptionTest extends \PHPUnit_Framework_TestCase
 
         $this->resultForwardMock->expects($this->once())->method('forward')->with('noroute')->willReturn(true);
 
-        $this->objectMock->execute();
+        $this->objectMock->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
index 78aa59f9eed..dbe89bc0533 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Guest/ViewTest.php
@@ -103,7 +103,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->method('getBreadcrumbs')
             ->with($this->resultPageMock);
 
-        $this->assertSame($this->resultPageMock, $this->viewController->execute());
+        $this->assertSame($this->resultPageMock, $this->viewController->executeInternal());
     }
 
     /**
@@ -116,6 +116,6 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->with($this->requestMock)
             ->willReturn($this->resultRedirectMock);
 
-        $this->assertSame($this->resultRedirectMock, $this->viewController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->viewController->executeInternal());
     }
 }
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
index 9e694ab9ea0..28d6a8eb392 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ApplyRules.php
@@ -13,7 +13,7 @@ class ApplyRules extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
index f88d58097f2..0a7563e34a9 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Chooser.php
@@ -13,7 +13,7 @@ class Chooser extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $uniqId = $this->getRequest()->getParam('uniq_id');
         $chooserBlock = $this->_view->getLayout()->createBlock(
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
index 565e1d7d8ca..3ce01abaf9b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsGrid.php
@@ -13,7 +13,7 @@ class CouponsGrid extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $this->_view->loadLayout();
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
index 623dedb6ae1..d938f67a30f 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/CouponsMassDelete.php
@@ -13,7 +13,7 @@ class CouponsMassDelete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Qu
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
index c88dc7494f8..a8e5ca176cd 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         if ($id) {
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
index 6138a59b95a..636e0d548c3 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Edit.php
@@ -14,7 +14,7 @@ class Edit extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\SalesRule\Model\Rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
index bcbfee10495..3d06d95e630 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsCsv.php
@@ -15,7 +15,7 @@ class ExportCouponsCsv extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return \Magento\Framework\App\ResponseInterface|null
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
index 22172e206f5..717dc7246c6 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCouponsXml.php
@@ -15,7 +15,7 @@ class ExportCouponsXml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return \Magento\Framework\App\ResponseInterface|null
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initRule();
         $rule = $this->_coreRegistry->registry('current_promo_quote_rule');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
index 437f2573bc2..0bf21e978cf 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Generate.php
@@ -13,7 +13,7 @@ class Generate extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->isAjax()) {
             $this->_forward('noroute');
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
index b27554f7fc6..8921d7c461b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction()->_addBreadcrumb(__('Catalog'), __('Catalog'));
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Cart Price Rules'));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
index dc8b49e02e2..324d2d07b6b 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
index cf383bfed2d..422ee2a38a6 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewActionHtml.php
@@ -13,7 +13,7 @@ class NewActionHtml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
index fb0c502a37e..48d05829f32 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/NewConditionHtml.php
@@ -13,7 +13,7 @@ class NewConditionHtml extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quo
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
index 9434b07ed0b..c0d318d3453 100644
--- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
+++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/Save.php
@@ -15,7 +15,7 @@ class Save extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->getPostValue()) {
             try {
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
index 78a24106294..e3dc4e5a7a8 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Delete.php
@@ -13,7 +13,7 @@ class Delete extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         /** @var \Magento\Backend\Model\View\Result\Redirect $redirectResult */
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
index ad6502e18ad..df5c08a4693 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Edit.php
@@ -35,7 +35,7 @@ class Edit extends TermController
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = $this->getRequest()->getParam('id');
         $model = $this->_objectManager->create('Magento\Search\Model\Query');
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
index da777ec44e4..34fe89f51be 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchCsv.php
@@ -35,7 +35,7 @@ class ExportSearchCsv extends TermController
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
index b287a1f6ea8..2a89f2fb339 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/ExportSearchExcel.php
@@ -35,7 +35,7 @@ class ExportSearchExcel extends TermController
      *
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
index 6bce708278a..54e3a4b11c2 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Index.php
@@ -12,7 +12,7 @@ class Index extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Search Terms'));
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php b/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
index 97586e38d64..a10b869a24c 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/MassDelete.php
@@ -13,7 +13,7 @@ class MassDelete extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $searchIds = $this->getRequest()->getParam('search');
         if (!is_array($searchIds)) {
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php b/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
index 35f6d63e637..f049f45d9a0 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends TermController
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
index 1c512961e58..f0e9c4dc098 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Report.php
@@ -15,7 +15,7 @@ class Report extends ReportsIndexController
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_eventManager->dispatch('on_view_report', ['report' => 'search']);
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php b/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
index 3a31a0555a7..e50d11a84de 100644
--- a/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
+++ b/app/code/Magento/Search/Controller/Adminhtml/Term/Save.php
@@ -36,7 +36,7 @@ class Save extends TermController
      * @return \Magento\Backend\Model\View\Result\Redirect
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($this->getRequest()->isPost() && $data) {
diff --git a/app/code/Magento/Search/Controller/Ajax/Suggest.php b/app/code/Magento/Search/Controller/Ajax/Suggest.php
index f39c7bf708b..ca49bc1ccee 100644
--- a/app/code/Magento/Search/Controller/Ajax/Suggest.php
+++ b/app/code/Magento/Search/Controller/Ajax/Suggest.php
@@ -32,7 +32,7 @@ class Suggest extends Action
     /**
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->getRequest()->getParam('q', false)) {
             /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Search/Controller/Term/Popular.php b/app/code/Magento/Search/Controller/Term/Popular.php
index 687e17f62ab..bcad10e4a1e 100644
--- a/app/code/Magento/Search/Controller/Term/Popular.php
+++ b/app/code/Magento/Search/Controller/Term/Popular.php
@@ -35,7 +35,7 @@ class Popular extends Action
      * @param \Magento\Framework\App\RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $searchTerms = $this->scopeConfig->getValue(
             'catalog/seo/search_terms',
@@ -45,13 +45,13 @@ class Popular extends Action
             $this->_redirect('noroute');
             $this->_actionFlag->set('', self::FLAG_NO_DISPATCH, true);
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
index c8493a32a6b..1b097fb97a8 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Ajax/SuggestTest.php
@@ -126,7 +126,7 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJsonMock, $this->controller->execute());
+        $this->assertSame($this->resultJsonMock, $this->controller->executeInternal());
     }
 
     public function testExecuteEmptyQuery()
@@ -146,6 +146,6 @@ class SuggestTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
+        $this->assertSame($this->resultRedirectMock, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
index fd0e5f83a25..8642f19bb47 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/MassDeleteTest.php
@@ -114,7 +114,7 @@ class MassDeleteTest extends \PHPUnit_Framework_TestCase
             ->with('search/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
+        $this->assertSame($this->resultRedirectMock, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
index 5197e7d83e4..3d17abf4677 100644
--- a/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
+++ b/app/code/Magento/Search/Test/Unit/Controller/Adminhtml/Term/SaveTest.php
@@ -120,7 +120,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->at(0))->method('getPostValue')->willReturn($data);
         $this->request->expects($this->at(1))->method('isPost')->willReturn($isPost);
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
@@ -146,7 +146,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryText()
@@ -164,7 +164,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryText2()
@@ -183,7 +183,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addSuccess');
 
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteLoadQueryQueryIdQueryTextException()
@@ -202,7 +202,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addError');
         $this->session->expects($this->once())->method('setPageData');
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     public function testExecuteException()
@@ -219,7 +219,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())->method('addException');
         $this->session->expects($this->once())->method('setPageData');
         $this->redirect->expects($this->once())->method('setPath')->willReturnSelf();
-        $this->assertSame($this->redirect, $this->controller->execute());
+        $this->assertSame($this->redirect, $this->controller->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/SendFriend/Controller/Product.php b/app/code/Magento/SendFriend/Controller/Product.php
index 73a227ce32c..0532108e6e7 100644
--- a/app/code/Magento/SendFriend/Controller/Product.php
+++ b/app/code/Magento/SendFriend/Controller/Product.php
@@ -65,7 +65,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
      * @return \Magento\Framework\App\ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         /* @var $helper \Magento\SendFriend\Helper\Data */
         $helper = $this->_objectManager->get('Magento\SendFriend\Helper\Data');
@@ -84,7 +84,7 @@ abstract class Product extends \Magento\Framework\App\Action\Action
                     ->setSendfriendFormData($request->getPostValue());
             }
         }
-        return parent::dispatch($request);
+        return parent::execute($request);
     }
 
     /**
diff --git a/app/code/Magento/SendFriend/Controller/Product/Send.php b/app/code/Magento/SendFriend/Controller/Product/Send.php
index c6d7f3b05dd..99e0f911710 100644
--- a/app/code/Magento/SendFriend/Controller/Product/Send.php
+++ b/app/code/Magento/SendFriend/Controller/Product/Send.php
@@ -45,7 +45,7 @@ class Send extends \Magento\SendFriend\Controller\Product
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $product = $this->_initProduct();
 
diff --git a/app/code/Magento/SendFriend/Controller/Product/Sendmail.php b/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
index 048ce1060d8..aa34eefa5b2 100644
--- a/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
+++ b/app/code/Magento/SendFriend/Controller/Product/Sendmail.php
@@ -50,7 +50,7 @@ class Sendmail extends \Magento\SendFriend\Controller\Product
      * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
index 090dc47f19b..bc981416c84 100644
--- a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
+++ b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendTest.php
@@ -175,7 +175,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with($formData)
             ->willReturnSelf();
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     /**
@@ -254,7 +254,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('sendfriend.send')
             ->willReturn(false);
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNoticeAndNoData()
@@ -320,7 +320,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
         $pageMock->expects($this->never())
             ->method('getLayout');
 
-        $this->assertEquals($pageMock, $this->model->execute());
+        $this->assertEquals($pageMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutParam()
@@ -345,7 +345,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutProduct()
@@ -377,7 +377,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNonVisibleProduct()
@@ -418,6 +418,6 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
index 807cb8adf04..f6df2bc39b0 100644
--- a/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
+++ b/app/code/Magento/SendFriend/Test/Unit/Controller/Product/SendmailTest.php
@@ -234,7 +234,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($productUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -361,7 +361,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -488,7 +488,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -615,7 +615,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -743,7 +743,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -799,7 +799,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     /**
@@ -873,7 +873,7 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($forwardMock, $this->model->execute());
+        $this->assertEquals($forwardMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithoutFormKey()
@@ -901,6 +901,6 @@ class SendmailTest extends \PHPUnit_Framework_TestCase
             ->with('sendfriend/product/send', ['_current' => true])
             ->willReturnSelf();
 
-        $this->assertEquals($redirectMock, $this->model->execute());
+        $this->assertEquals($redirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
index fb24a2a3258..d012a1d1ece 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddComment.php
@@ -58,7 +58,7 @@ class AddComment extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getRequest()->setParam('shipment_id', $this->getRequest()->getParam('id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
index ea5ab1d9677..8a47ed1ddae 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/AddTrack.php
@@ -41,7 +41,7 @@ class AddTrack extends \Magento\Backend\App\Action
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $carrier = $this->getRequest()->getPost('carrier');
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
index facbc5192d7..faac42d270f 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/CreateLabel.php
@@ -48,7 +48,7 @@ class CreateLabel extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         try {
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
index 6d3bb9a49ed..e0ea65f65fd 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Email.php
@@ -48,7 +48,7 @@ class Email extends \Magento\Backend\App\Action
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
index 26b2df96cb6..3c4dc9f49ee 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/GetShippingItemsGrid.php
@@ -41,7 +41,7 @@ class GetShippingItemsGrid extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
index a0917b813d1..06e97644dfd 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/NewAction.php
@@ -40,7 +40,7 @@ class NewAction extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
index 8cf58bc151f..fb3889761fa 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintLabel.php
@@ -58,7 +58,7 @@ class PrintLabel extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
index d931e1e1006..db6903544d0 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/PrintPackage.php
@@ -50,7 +50,7 @@ class PrintPackage extends \Magento\Backend\App\Action
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
index 4b85739acc0..7ef4f99eef2 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/RemoveTrack.php
@@ -40,7 +40,7 @@ class RemoveTrack extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $trackId = $this->getRequest()->getParam('track_id');
         /** @var \Magento\Sales\Model\Order\Shipment\Track $track */
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
index 0704ac04041..3e5e9a3ac2d 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Save.php
@@ -81,7 +81,7 @@ class Save extends \Magento\Backend\App\Action
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultRedirectFactory->create();
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
index d4c6015870b..e5511173323 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/Start.php
@@ -21,7 +21,7 @@ class Start extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /**
          * Clear old values for shipment qty's
diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
index 980486e3bc2..ebd8a6b111e 100644
--- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
+++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/View.php
@@ -56,7 +56,7 @@ class View extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->shipmentLoader->setOrderId($this->getRequest()->getParam('order_id'));
         $this->shipmentLoader->setShipmentId($this->getRequest()->getParam('shipment_id'));
diff --git a/app/code/Magento/Shipping/Controller/Tracking/Popup.php b/app/code/Magento/Shipping/Controller/Tracking/Popup.php
index 9ae7590bdb4..d3fb5dbe349 100644
--- a/app/code/Magento/Shipping/Controller/Tracking/Popup.php
+++ b/app/code/Magento/Shipping/Controller/Tracking/Popup.php
@@ -52,7 +52,7 @@ class Popup extends \Magento\Framework\App\Action\Action
      * @return void
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $shippingInfoModel = $this->_shippingInfoFactory->create()->loadByHash($this->getRequest()->getParam('hash'));
         $this->_coreRegistry->register('current_shipping_info', $shippingInfoModel);
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
index 6a60d69bdfe..9ab7b4844e4 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddCommentTest.php
@@ -223,7 +223,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($resultLayoutMock));
         $this->responseMock->expects($this->once())->method('setBody')->with($result);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -261,7 +261,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException(__('message')));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -278,7 +278,7 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())->method('getPost')->with('comment')->will($this->returnValue([]));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -322,6 +322,6 @@ class AddCommentTest extends \PHPUnit_Framework_TestCase
         $this->shipmentMock->expects($this->once())->method('save')->will($this->throwException(new \Exception()));
         $this->exceptionResponse();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
index 1abeb9d3dac..d078e532031 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/AddTrackTest.php
@@ -254,6 +254,6 @@ class AddTrackTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('setBody')
             ->with($html);
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
index d96ba639824..a8cc7c8a3ac 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/CreateLabelTest.php
@@ -179,7 +179,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())->method('addSuccess');
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -192,7 +192,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             ->willThrowException(new \Magento\Framework\Exception\LocalizedException(__('message')));
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -217,7 +217,7 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($logerMock));
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -236,6 +236,6 @@ class CreateLabelTest extends \PHPUnit_Framework_TestCase
             );
         $this->responseMock->expects($this->once())->method('representJson');
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
index edcdbd764a1..793763607ab 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/EmailTest.php
@@ -235,7 +235,7 @@ class EmailTest extends \PHPUnit_Framework_TestCase
         $arguments = ['shipment_id' => $shipmentId];
         $this->prepareRedirect($path, $arguments, 0);
 
-        $this->shipmentEmail->execute();
+        $this->shipmentEmail->executeInternal();
         $this->assertEquals($this->response, $this->shipmentEmail->getResponse());
     }
 
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
index c62c9109a26..71239d0a1be 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/GetShippingItemsGridTest.php
@@ -152,6 +152,6 @@ class GetShippingItemsGridTest extends \PHPUnit_Framework_TestCase
             ->method('toHtml')
             ->will($this->returnValue($result));
 
-        $this->assertNotEmpty('result-html', $this->controller->execute());
+        $this->assertNotEmpty('result-html', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
index df9cc23823b..6179fb4eac6 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/NewActionTest.php
@@ -282,6 +282,6 @@ class NewActionTest extends \PHPUnit_Framework_TestCase
             ->with('menu')
             ->will($this->returnValue($menuBlock));
 
-        $this->assertNull($this->newAction->execute());
+        $this->assertNull($this->newAction->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
index 6548503fbee..1effd8c699b 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintLabelTest.php
@@ -250,7 +250,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->method('getShippingLabel')
             ->will($this->returnValue($labelContent));
 
-        $this->assertEquals($this->fileCreate(), $this->controller->execute());
+        $this->assertEquals($this->fileCreate(), $this->controller->executeInternal());
     }
 
     /**
@@ -291,7 +291,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->method('getObject')
             ->will($this->returnSelf());
 
-        $this->assertEquals($this->fileCreate(), $this->controller->execute());
+        $this->assertEquals($this->fileCreate(), $this->controller->executeInternal());
     }
 
     /**
@@ -337,7 +337,7 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(1));
         $this->redirectSection();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -351,6 +351,6 @@ class PrintLabelTest extends \PHPUnit_Framework_TestCase
         $this->messageManagerMock->expects($this->once())->method('addError')->will($this->returnSelf());
         $this->redirectSection();
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
index 4c6b9608d3b..05487808f92 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/PrintPackageTest.php
@@ -193,7 +193,7 @@ class PrintPackageTest extends \PHPUnit_Framework_TestCase
                 'application/pdf'
             )->will($this->returnValue('result-pdf-content'));
 
-        $this->assertEquals('result-pdf-content', $this->controller->execute());
+        $this->assertEquals('result-pdf-content', $this->controller->executeInternal());
     }
 
     /**
@@ -215,6 +215,6 @@ class PrintPackageTest extends \PHPUnit_Framework_TestCase
             ->method('setIsUrlNotice')
             ->with(true);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
index bb0b1d21202..37d4634c0da 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/RemoveTrackTest.php
@@ -255,7 +255,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with($response);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -275,7 +275,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($trackId));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -294,7 +294,7 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(null));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 
     /**
@@ -313,6 +313,6 @@ class RemoveTrackTest extends \PHPUnit_Framework_TestCase
             ->will($this->throwException(new \Exception()));
         $this->representJson($errors);
 
-        $this->assertNull($this->controller->execute());
+        $this->assertNull($this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
index fad9df01c37..954714bbd9a 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/SaveTest.php
@@ -249,7 +249,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             $this->shipmentLoader->expects($this->never())
                 ->method('load');
 
-            $this->assertEquals($this->resultRedirect, $this->saveAction->execute());
+            $this->assertEquals($this->resultRedirect, $this->saveAction->executeInternal());
         } else {
             $shipmentId = 1000012;
             $orderId = 10003;
@@ -345,7 +345,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
                 ->will($this->returnValue($orderId));
             $this->prepareRedirect($path, $arguments);
 
-            $this->saveAction->execute();
+            $this->saveAction->executeInternal();
             $this->assertEquals($this->response, $this->saveAction->getResponse());
         }
     }
diff --git a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
index 1dbf6369422..0f6aad7610e 100644
--- a/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
+++ b/app/code/Magento/Shipping/Test/Unit/Controller/Adminhtml/Order/Shipment/ViewTest.php
@@ -187,7 +187,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             )
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultPageMock, $this->controller->execute());
+        $this->assertEquals($this->resultPageMock, $this->controller->executeInternal());
     }
 
     /**
@@ -209,7 +209,7 @@ class ViewTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultForwardMock, $this->controller->execute());
+        $this->assertEquals($this->resultForwardMock, $this->controller->executeInternal());
     }
 
     protected function loadShipment($orderId, $shipmentId, $shipment, $tracking, $comeFrom, $returnShipment)
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
index 70f12719c16..bdc70c0f8f8 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Delete.php
@@ -16,7 +16,7 @@ class Delete extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Filesystem\Directory\Write $directory */
         $directory = $this->_objectManager->get(
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
index 47cf66a319c..87441bc1585 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Edit.php
@@ -31,7 +31,7 @@ class Edit extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      * @return void
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         // 1. Get ID and create model
         $id = $this->getRequest()->getParam('sitemap_id');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
index b5a7e40d5a0..c162942061d 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Generate.php
@@ -14,7 +14,7 @@ class Generate extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // init and load sitemap model
         $id = $this->getRequest()->getParam('sitemap_id');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
index 83aeca5ef8f..11b84772e32 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Index.php
@@ -15,7 +15,7 @@ class Index extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Site Map'));
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
index abfba8929a0..309c00a840d 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/NewAction.php
@@ -14,7 +14,7 @@ class NewAction extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // the same form is used to create and edit
         $this->_forward('edit');
diff --git a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
index 2f28cf98183..dd96a60dfce 100644
--- a/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
+++ b/app/code/Magento/Sitemap/Controller/Adminhtml/Sitemap/Save.php
@@ -133,7 +133,7 @@ class Save extends \Magento\Sitemap\Controller\Adminhtml\Sitemap
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         // check if data sent
         $data = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php b/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
index e067bf20598..c59e5ff6631 100644
--- a/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
+++ b/app/code/Magento/Sitemap/Test/Unit/Controller/Adminhtml/Sitemap/SaveTest.php
@@ -100,7 +100,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('adminhtml/*/')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->saveController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->saveController->executeInternal());
     }
 
     public function testTryToSaveInvalidDataShouldFailWithErrors()
@@ -166,6 +166,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->with('adminhtml/*/edit', ['sitemap_id' => $siteMapId])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->saveController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->saveController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Store/Controller/Store/SwitchAction.php b/app/code/Magento/Store/Controller/Store/SwitchAction.php
index b527b7ad4fe..052a8fc25fb 100644
--- a/app/code/Magento/Store/Controller/Store/SwitchAction.php
+++ b/app/code/Magento/Store/Controller/Store/SwitchAction.php
@@ -68,7 +68,7 @@ class SwitchAction extends Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $storeCode = $this->_request->getParam(
             StoreResolver::PARAM_NAME,
diff --git a/app/code/Magento/Swagger/Controller/Index/Index.php b/app/code/Magento/Swagger/Controller/Index/Index.php
index b898836ccf3..64cd2888984 100644
--- a/app/code/Magento/Swagger/Controller/Index/Index.php
+++ b/app/code/Magento/Swagger/Controller/Index/Index.php
@@ -35,7 +35,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return \Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->pageConfig->addBodyClass('swagger-section');
         return $this->pageFactory->create();
diff --git a/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php b/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
index 180a777d166..362e2c7a6c5 100644
--- a/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
+++ b/app/code/Magento/Swatches/Controller/Adminhtml/Iframe/Show.php
@@ -68,7 +68,7 @@ class Show extends \Magento\Backend\App\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $uploader = $this->uploaderFactory->create(['fileId' => 'datafile']);
diff --git a/app/code/Magento/Swatches/Controller/Ajax/Media.php b/app/code/Magento/Swatches/Controller/Ajax/Media.php
index 8827f6f4652..a487115bbc0 100644
--- a/app/code/Magento/Swatches/Controller/Ajax/Media.php
+++ b/app/code/Magento/Swatches/Controller/Ajax/Media.php
@@ -50,7 +50,7 @@ class Media extends \Magento\Framework\App\Action\Action
      *
      * @return string
      */
-    public function execute()
+    public function executeInternal()
     {
         $productMedia = [];
         if ($productId = (int)$this->getRequest()->getParam('product_id')) {
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
index 18ec75cb966..72099cb930f 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Iframe/ShowTest.php
@@ -96,7 +96,7 @@ class ShowTest extends \PHPUnit_Framework_TestCase
             ->expects($this->once())
             ->method('create')
             ->will($this->throwException(new \Exception));
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
@@ -132,7 +132,7 @@ class ShowTest extends \PHPUnit_Framework_TestCase
 
         $this->responseMock->expects($this->once())->method('setBody')->willReturn(json_encode($expectedResult));
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function dataForExecute()
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
index 6358b2d5ccf..83466261a61 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Ajax/MediaTest.php
@@ -137,7 +137,7 @@ class MediaTest extends \PHPUnit_Framework_TestCase
             ->with($this->mediaGallery)
             ->will($this->returnSelf());
 
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
 
         $this->assertInstanceOf('\Magento\Framework\Controller\Result\Json', $result);
     }
@@ -179,7 +179,7 @@ class MediaTest extends \PHPUnit_Framework_TestCase
             ->with($this->mediaGallery)
             ->will($this->returnSelf());
 
-        $result = $this->controller->execute();
+        $result = $this->controller->executeInternal();
 
         $this->assertInstanceOf('\Magento\Framework\Controller\Result\Json', $result);
     }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
index 2fe8a5b1572..a7f555a1706 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
@@ -15,7 +15,7 @@ class Add extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_coreRegistry->register(
             RegistryConstants::CURRENT_TAX_RATE_FORM_DATA,
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
index 5f58a4147ac..f8a99e226f7 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
@@ -15,7 +15,7 @@ class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('tax_calculation_rate_id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
index 673ea280bab..e824a8185ac 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxLoad.php
@@ -16,7 +16,7 @@ class AjaxLoad extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
index 8dd31f2ca5b..635d116a31d 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
@@ -15,7 +15,7 @@ class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $rateData = $this->_processRateData($this->getRequest()->getPostValue());
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
index c11f420db32..c6794eaf0ab 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
@@ -16,7 +16,7 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($rateId = $this->getRequest()->getParam('rate')) {
             /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
index e13ae2293e6..a5e2fbf1a05 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
@@ -17,7 +17,7 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $rateId = (int)$this->getRequest()->getParam('rate');
         $this->_coreRegistry->register(RegistryConstants::CURRENT_TAX_RATE_ID, $rateId);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
index d38d6ddd9af..145341f4f20 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->initResultPage();
         $resultPage->addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'));
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
index 442940fdfc5..85cf89a9e85 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
@@ -16,7 +16,7 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
index 9d862df7d5a..7dd9f40e4df 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
index ebbabcf833a..89b49f16feb 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $taxRuleId = $this->getRequest()->getParam('rule');
         $this->_coreRegistry->register('tax_rule_id', $taxRuleId);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
index b3ea7586cf9..e3aab07b459 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
@@ -12,7 +12,7 @@ class Index extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->initResultPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Tax Rules'));
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
index 79f4fa7d752..74bd5b1c57a 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
index 27e75cf819b..d050cbd6773 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rule
     /**
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
index 8e5e003872d..37edd84177d 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
@@ -15,7 +15,7 @@ class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $classId = (int)$this->getRequest()->getParam('class_id');
         try {
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
index 68527988b90..92647155fbe 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
@@ -15,7 +15,7 @@ class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $taxClassId = (int)$this->getRequest()->getPost('class_id') ?: null;
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
index 89ab88a5965..18860dd4891 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
@@ -37,7 +37,7 @@ class IgnoreTaxNotification extends \Magento\Tax\Controller\Adminhtml\Tax
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $section = $this->getRequest()->getParam('section');
         if ($section) {
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
index 9f6f1cb8e6b..2b23bd51aa6 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
@@ -16,7 +16,7 @@ class ExportCsv extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
index dc4e8987adc..7685d61ee95 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
@@ -15,7 +15,7 @@ class ExportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** start csv content and set template */
         $headers = new \Magento\Framework\DataObject(
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
index 38fc277576c..546980d126f 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
@@ -16,7 +16,7 @@ class ExportXml extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\View\Result\Layout $resultLayout */
         $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
index b37520a99f8..56d479a43cf 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
@@ -14,7 +14,7 @@ class ImportExport extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
         $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
index eb5efff3d5e..db37d19fa26 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
@@ -14,7 +14,7 @@ class ImportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->getRequest()->isPost() && !empty($_FILES['import_rates_file']['tmp_name'])) {
             try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
index 12fbe2225fa..7f29bfb7016 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('id');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
index 0113c1c59a4..badb051def8 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCss.php
@@ -16,7 +16,7 @@ class DownloadCss extends \Magento\Theme\Controller\Adminhtml\System\Design\Them
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('theme_id');
         $file = $this->getRequest()->getParam('file');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
index 8653fa797f1..6432c23db6d 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/DownloadCustomCss.php
@@ -16,7 +16,7 @@ class DownloadCustomCss extends \Magento\Theme\Controller\Adminhtml\System\Desig
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('theme_id');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
index 367958d22fb..2b8f9853de7 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = (int)$this->getRequest()->getParam('id');
         /** @var $theme \Magento\Framework\View\Design\ThemeInterface */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
index e49cdb3e883..8a8fb29abc4 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Grid.php
@@ -13,7 +13,7 @@ class Grid extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
index 8216660eab1..599b0127302 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_Theme::system_design_theme');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
index 8e930a8c55d..f699769c615 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
index c3fabcb4d02..6bb049c8be3 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      * @return void
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $redirectBack = (bool)$this->getRequest()->getParam('back', false);
         $themeData = $this->getRequest()->getParam('theme');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
index c201adf38e9..d576899f2dc 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadCss.php
@@ -13,7 +13,7 @@ class UploadCss extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $serviceModel \Magento\Theme\Model\Uploader\Service */
         $serviceModel = $this->_objectManager->get('Magento\Theme\Model\Uploader\Service');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
index 58cf189c86f..84800872fc3 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Theme/UploadJs.php
@@ -14,7 +14,7 @@ class UploadJs extends \Magento\Theme\Controller\Adminhtml\System\Design\Theme
      * @return void
      * @throws \Magento\Framework\Exception\LocalizedException
      */
-    public function execute()
+    public function executeInternal()
     {
         $themeId = $this->getRequest()->getParam('id');
         /** @var $serviceModel \Magento\Theme\Model\Uploader\Service */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
index abc3ebd705a..21fbd7eaa2b 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Contents.php
@@ -13,7 +13,7 @@ class Contents extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout('empty');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
index 2b59d4bba3b..4f3a4fda4ac 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFiles.php
@@ -14,7 +14,7 @@ class DeleteFiles extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysi
      * @return void
      * @throws \Exception
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             if (!$this->getRequest()->isPost()) {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
index 4958a6b3909..6c6258e7f52 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolder.php
@@ -13,7 +13,7 @@ class DeleteFolder extends \Magento\Theme\Controller\Adminhtml\System\Design\Wys
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->storage->getCurrentPath();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
index 7abdd3ee5ec..7584377ecce 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg\Fi
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout('overlay_popup');
         $this->_view->renderLayout();
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
index 018e8194f37..119a5b8b9ca 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/NewFolder.php
@@ -13,7 +13,7 @@ class NewFolder extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwy
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $name = $this->getRequest()->getPost('name');
         try {
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
index 92ef5e7bdc5..32ff7003905 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsert.php
@@ -13,7 +13,7 @@ class OnInsert extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var $helperStorage \Magento\Theme\Helper\Storage */
         $helperStorage = $this->_objectManager->get('Magento\Theme\Helper\Storage');
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
index d8f050d8d3f..cab5e4b78d6 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/PreviewImage.php
@@ -16,7 +16,7 @@ class PreviewImage extends \Magento\Theme\Controller\Adminhtml\System\Design\Wys
      *
      * @return ResponseInterface|void
      */
-    public function execute()
+    public function executeInternal()
     {
         $file = $this->getRequest()->getParam('file');
         /** @var $helper \Magento\Theme\Helper\Storage */
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
index d3d8a244e73..3e789134e26 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/TreeJson.php
@@ -13,7 +13,7 @@ class TreeJson extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->getResponse()->representJson(
diff --git a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
index 877b0fc83d9..420083086ed 100644
--- a/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
+++ b/app/code/Magento/Theme/Controller/Adminhtml/System/Design/Wysiwyg/Files/Upload.php
@@ -13,7 +13,7 @@ class Upload extends \Magento\Theme\Controller\Adminhtml\System\Design\Wysiwyg\F
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $path = $this->storage->getCurrentPath();
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
index 4323967aa47..86f88c71aee 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DeleteTest.php
@@ -147,7 +147,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->with($path)
             ->willReturnSelf();
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->executeInternal());
     }
 
     /**
@@ -218,7 +218,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $logger->expects($this->once())
             ->method('critical');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     /**
@@ -255,6 +255,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
         $this->messageManager->expects($this->once())
             ->method('addError');
 
-        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\Controller\Result\Redirect', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
index 5beef00b2ae..e9b058c7bdf 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCssTest.php
@@ -186,7 +186,7 @@ class DownloadCssTest extends \PHPUnit_Framework_TestCase
             ->with($relPath, ['type' => 'filename', 'value' => $relPath], DirectoryList::ROOT)
             ->willReturn($this->getMockBuilder('Magento\Framework\App\ResponseInterface')->getMock());
 
-        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->executeInternal());
     }
 
     public function testExecuteInvalidArgument()
@@ -243,6 +243,6 @@ class DownloadCssTest extends \PHPUnit_Framework_TestCase
             ->method('setRedirect')
             ->with($refererUrl);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
index 891f455ee1d..04f013fb5e3 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/DownloadCustomCssTest.php
@@ -173,7 +173,7 @@ class DownloadCustomCssTest extends \PHPUnit_Framework_TestCase
             ->with($fileName, ['type' => 'filename', 'value' => $fullPath], DirectoryList::ROOT)
             ->willReturn($this->getMockBuilder('Magento\Framework\App\ResponseInterface')->getMock());
 
-        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->execute());
+        $this->assertInstanceOf('Magento\Framework\App\ResponseInterface', $this->controller->executeInternal());
     }
 
     public function testExecuteInvalidArgument()
@@ -213,6 +213,6 @@ class DownloadCustomCssTest extends \PHPUnit_Framework_TestCase
             ->method('setRedirect')
             ->with($refererUrl);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
index eac3f24f2fe..d9481c4ccc2 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/EditTest.php
@@ -59,7 +59,7 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->method('getUrl')
             ->willReturn('http://return.url');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -125,7 +125,7 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->method('getUrl')
             ->willReturn('http://return.url');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     /**
@@ -245,6 +245,6 @@ class EditTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
         $this->view->expects($this->once())
             ->method('renderLayout');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
index d504277d57f..a3cf13f6fd4 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/IndexTest.php
@@ -40,6 +40,6 @@ class IndexTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Des
             ->method('getLayout')
             ->will($this->returnValue($layout));
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
index 524dad54b8c..c260a330d23 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/SaveTest.php
@@ -85,6 +85,6 @@ class SaveTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\Desi
             ->with('Magento\Theme\Model\Theme\SingleFile')
             ->will($this->returnValue(null));
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
index 1529c56175f..a90289e9062 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadCssTest.php
@@ -39,7 +39,7 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->method('representJson')
             ->with('{"filename":"filename","content":"content"}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithLocalizedException()
@@ -67,7 +67,7 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -103,6 +103,6 @@ class UploadCssTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
index 6dbfdd62e0c..271b084f5f6 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/UploadJsTest.php
@@ -99,7 +99,7 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":"true","message":"We cannot find a theme with id "' . $themeId . '"."}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecuteWithException()
@@ -149,7 +149,7 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":"true","message":"We can\'t upload the JS file right now."}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 
     public function testExecute()
@@ -244,6 +244,6 @@ class UploadJsTest extends \Magento\Theme\Test\Unit\Controller\Adminhtml\System\
             ->method('representJson')
             ->with('{"error":false,"files":{"fileOne":{"name":"name"}}}');
 
-        $this->_model->execute();
+        $this->_model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
index 42292699b7d..5251dcc759e 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/ContentsTest.php
@@ -96,6 +96,6 @@ class ContentsTest extends \PHPUnit_Framework_TestCase
         $this->response->expects($this->once())
             ->method('representJson');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
index 2a69f64be34..3a34f63df2c 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFilesTest.php
@@ -69,7 +69,7 @@ class DeleteFilesTest extends \PHPUnit_Framework_TestCase
             ->method('representJson')
             ->with('{"error":"true","message":"Wrong request"}');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecute()
@@ -99,6 +99,6 @@ class DeleteFilesTest extends \PHPUnit_Framework_TestCase
             ->method('deleteFile')
             ->with('file');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
index 9bd042cfe2e..2c6b5f2e642 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/DeleteFolderTest.php
@@ -66,6 +66,6 @@ class DeleteFolderTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Framework\Json\Helper\Data')
             ->willReturn($jsonData);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
index 63884649f39..cf913494623 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/IndexTest.php
@@ -34,6 +34,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->view ->expects($this->once())
             ->method('renderLayout');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
index 0061013ed72..48c23d765c2 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Wysiwyg/Files/OnInsertTest.php
@@ -54,6 +54,6 @@ class OnInsertTest extends \PHPUnit_Framework_TestCase
             ->method('setBody')
             ->with('http://relative.url/');
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Translation/Controller/Ajax/Index.php b/app/code/Magento/Translation/Controller/Ajax/Index.php
index 190b4046b46..08c1fc1bce1 100644
--- a/app/code/Magento/Translation/Controller/Ajax/Index.php
+++ b/app/code/Magento/Translation/Controller/Ajax/Index.php
@@ -31,7 +31,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $translate = (array)$this->getRequest()->getPost('translate');
 
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php b/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
index f6ab7eed8e1..442f875e23a 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/AbstractAction.php
@@ -57,7 +57,7 @@ abstract class AbstractAction extends Action implements UiActionInterface
      */
     public function executeAjaxRequest()
     {
-        $this->execute();
+        $this->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
index 6a2bdccd510..a4192d50134 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Delete.php
@@ -48,7 +48,7 @@ class Delete extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $viewIds = explode('.', $this->_request->getParam('data'));
         $bookmark = $this->bookmarkManagement->getByIdentifierNamespace(
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
index bde48047b77..55568937e97 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Bookmark/Save.php
@@ -87,7 +87,7 @@ class Save extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $bookmark = $this->bookmarkFactory->create();
         $jsonData = $this->_request->getParam('data');
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
index 158f90512c6..2c0b22699f7 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToCsv.php
@@ -46,7 +46,7 @@ class GridToCsv extends Action
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->fileFactory->create('export.csv', $this->converter->getCsvFile(), 'var');
     }
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
index f4de9d2da2b..c999f3f8fcd 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Export/GridToXml.php
@@ -46,7 +46,7 @@ class GridToXml extends Action
      * @throws \Magento\Framework\Exception\LocalizedException
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         return $this->fileFactory->create('export.xml', $this->converter->getXmlFile(), 'var');
     }
diff --git a/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php b/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
index bd431cf33f4..f43135b162e 100644
--- a/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
+++ b/app/code/Magento/Ui/Controller/Adminhtml/Index/Render.php
@@ -20,7 +20,7 @@ class Render extends AbstractAction
      *
      * @return void
      */
-    protected function execute()
+    protected function executeInternal()
     {
         $component = $this->factory->create($this->_request->getParam('namespace'));
         $this->prepareComponent($component);
diff --git a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
index ad295672a6c..daf5ba76d67 100644
--- a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
+++ b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToCsvTest.php
@@ -66,6 +66,6 @@ class GridToCsvTest extends \PHPUnit_Framework_TestCase
             ->with('export.csv', $content, 'var')
             ->willReturn($content);
 
-        $this->assertEquals($content, $this->controller->execute());
+        $this->assertEquals($content, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
index 427a14e42dd..c0314e99c13 100644
--- a/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
+++ b/app/code/Magento/Ui/Test/Unit/Controller/Adminhtml/Export/GridToXmlTest.php
@@ -66,6 +66,6 @@ class GridToXmlTest extends \PHPUnit_Framework_TestCase
             ->with('export.xml', $content, 'var')
             ->willReturn($content);
 
-        $this->assertEquals($content, $this->controller->execute());
+        $this->assertEquals($content, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
index 2bc1ea519da..891ee3a1bbd 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CategoriesJson.php
@@ -13,7 +13,7 @@ class CategoriesJson extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrit
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $categoryId = $this->getRequest()->getParam('id', null);
         $this->getResponse()->setBody(
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
index d277c5781bd..9d7668e61a0 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/CmsPageGrid.php
@@ -13,7 +13,7 @@ class CmsPageGrid extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock('Magento\UrlRewrite\Block\Cms\Page\Grid')->toHtml()
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
index a0ed60907fd..f916999158d 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->_getUrlRewrite()->getId()) {
             try {
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
index 3d172de7402..1a84bdb99d3 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Edit.php
@@ -43,7 +43,7 @@ class Edit extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_UrlRewrite::urlrewrite');
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
index 13c87edc4ed..55c42bec9df 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_UrlRewrite::urlrewrite');
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
index 42c14184066..e6c72584937 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/ProductGrid.php
@@ -13,7 +13,7 @@ class ProductGrid extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->getResponse()->setBody(
             $this->_view->getLayout()->createBlock('Magento\UrlRewrite\Block\Catalog\Product\Grid')->toHtml()
diff --git a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
index 951b0885f72..a8da825fc50 100644
--- a/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
+++ b/app/code/Magento/UrlRewrite/Controller/Adminhtml/Url/Rewrite/Save.php
@@ -136,7 +136,7 @@ class Save extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $data = $this->getRequest()->getPostValue();
         if ($data) {
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php b/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
index ca30b16916e..82519182fda 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/Forgotpassword.php
@@ -13,7 +13,7 @@ class Forgotpassword extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $email = (string)$this->getRequest()->getParam('email');
         $params = $this->getRequest()->getParams();
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
index b39d7c84007..b3d5e52303f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPassword.php
@@ -15,7 +15,7 @@ class ResetPassword extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $passwordResetToken = (string)$this->getRequest()->getQuery('token');
         $userId = (int)$this->getRequest()->getQuery('id');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
index bae69c2415f..5e65f610303 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Auth/ResetPasswordPost.php
@@ -15,7 +15,7 @@ class ResetPasswordPost extends \Magento\User\Controller\Adminhtml\Auth
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $passwordResetToken = (string)$this->getRequest()->getQuery('token');
         $userId = (int)$this->getRequest()->getQuery('id');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php b/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
index 971b87791f6..1eaa4e05d5a 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/Grid.php
@@ -16,7 +16,7 @@ class Grid extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php b/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
index b3e9f092fd1..f3ce5beda60 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/Index.php
@@ -16,7 +16,7 @@ class Index extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_setActiveMenu('Magento_User::system_acl_locks');
diff --git a/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php b/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
index bf515568539..ba0621b1d70 100644
--- a/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
+++ b/app/code/Magento/User/Controller/Adminhtml/Locks/MassUnlock.php
@@ -18,7 +18,7 @@ class MassUnlock extends \Magento\User\Controller\Adminhtml\Locks
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             // unlock users
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Delete.php b/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
index 748e44e4fc2..576138df5cf 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Delete.php
@@ -11,7 +11,7 @@ class Delete extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $currentUser = $this->_objectManager->get('Magento\Backend\Model\Auth\Session')->getUser();
 
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Edit.php b/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
index 39ac43d5539..c74f350c79f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->getRequest()->getParam('user_id');
         /** @var \Magento\User\Model\User $model */
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Index.php b/app/code/Magento/User/Controller/Adminhtml/User/Index.php
index 875b26fcaf2..214b634c06f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Users'));
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php b/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
index adc326644ef..611b2a42890 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/InvalidateToken.php
@@ -40,7 +40,7 @@ class InvalidateToken extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($userId = $this->getRequest()->getParam('user_id')) {
             try {
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php b/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
index 38cb07dae87..598d3b5c3d3 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/NewAction.php
@@ -11,7 +11,7 @@ class NewAction extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
index 1a8060e1e23..fefed2867c4 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Delete.php
@@ -15,7 +15,7 @@ class Delete extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return \Magento\Backend\Model\View\Result\Redirect|void
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
index 21aef671de9..a8950a9d711 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/EditRole.php
@@ -13,7 +13,7 @@ class EditRole extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $role = $this->_initRole();
         $this->_initAction();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
index ac6cf5350bd..053c65a4dca 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Editrolegrid.php
@@ -13,7 +13,7 @@ class Editrolegrid extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout();
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
index fe9c5c61382..ce8f462264e 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Roles'));
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
index 32d360659bd..e771d3dd87b 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/RoleGrid.php
@@ -13,7 +13,7 @@ class RoleGrid extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php b/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
index e45c6b110db..83aa7ed1f34 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Role/SaveRole.php
@@ -55,7 +55,7 @@ class SaveRole extends \Magento\User\Controller\Adminhtml\User\Role
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
index 03f19129f6b..5f405efca0f 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/RoleGrid.php
@@ -11,7 +11,7 @@ class RoleGrid extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_view->loadLayout(false);
         $this->_view->renderLayout();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php b/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
index 11b1569e9d7..2689f3c9d77 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/RolesGrid.php
@@ -11,7 +11,7 @@ class RolesGrid extends \Magento\User\Controller\Adminhtml\User
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = $this->getRequest()->getParam('user_id');
         /** @var \Magento\User\Model\User $model */
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Save.php b/app/code/Magento/User/Controller/Adminhtml/User/Save.php
index e9e5cad3320..f50ebcacb27 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Save.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Save.php
@@ -14,7 +14,7 @@ class Save extends \Magento\User\Controller\Adminhtml\User
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $userId = (int)$this->getRequest()->getParam('user_id');
         $data = $this->getRequest()->getPostValue();
diff --git a/app/code/Magento/User/Controller/Adminhtml/User/Validate.php b/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
index 25b49ff3999..11262b0898c 100644
--- a/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
+++ b/app/code/Magento/User/Controller/Adminhtml/User/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\User\Controller\Adminhtml\User
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(0);
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
index 03190d55cac..10b0c13383e 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
         /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
index adb7eaa3175..bd6db1b8f37 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
 
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
index 521834f094d..1dc0676e2e5 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         $resultPage = $this->createPage();
         $resultPage->getConfig()->getTitle()->prepend(__('Custom Variables'));
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
index efbcf4c062b..465b50bfe44 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Forward
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
         $resultForward = $this->resultForwardFactory->create();
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
index f3640c3918e..6353e576707 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Backend\Model\View\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $variable = $this->_initVariable();
         $data = $this->getRequest()->getPost('variable');
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
index 75876b96cfe..7867af40068 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\Variable\Controller\Adminhtml\System\Variable
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject(['error' => false]);
         $variable = $this->_initVariable();
diff --git a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
index 04b1514cfab..42e801f50a4 100644
--- a/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
+++ b/app/code/Magento/Variable/Controller/Adminhtml/System/Variable/WysiwygPlugin.php
@@ -13,7 +13,7 @@ class WysiwygPlugin extends \Magento\Variable\Controller\Adminhtml\System\Variab
      *
      * @return \Magento\Framework\Controller\Result\Json
      */
-    public function execute()
+    public function executeInternal()
     {
         $customVariables = $this->_objectManager->create('Magento\Variable\Model\Variable')
             ->getVariablesOptionArray(true);
diff --git a/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php b/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
index cb653d6499d..8da36180eb7 100644
--- a/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
+++ b/app/code/Magento/Variable/Test/Unit/Controller/Adminhtml/System/Variable/ValidateTest.php
@@ -152,7 +152,7 @@ class ValidateTest extends \PHPUnit_Framework_TestCase
             ->method('setData')
             ->with($responseArray);
 
-        $this->validateMock->execute();
+        $this->validateMock->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Version/Controller/Index/Index.php b/app/code/Magento/Version/Controller/Index/Index.php
index 0fe6235bc6c..48feb6eb423 100644
--- a/app/code/Magento/Version/Controller/Index/Index.php
+++ b/app/code/Magento/Version/Controller/Index/Index.php
@@ -37,7 +37,7 @@ class Index extends Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $versionParts = explode('.', $this->productMetadata->getVersion());
         if (!isset($versionParts[0]) || !isset($versionParts[1])) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
index 9a3459f897f..e29a01447ca 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/BuildWidget.php
@@ -30,7 +30,7 @@ class BuildWidget extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $type = $this->getRequest()->getPost('widget_type');
         $params = $this->getRequest()->getPost('parameters', []);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
index a30ce4a2a84..3b0d39820dc 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Index.php
@@ -40,7 +40,7 @@ class Index extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         // save extra params for widgets insertion form
         $skipped = $this->getRequest()->getParam('skip_widgets');
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
index c97ab7250fe..2783889979c 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Blocks.php
@@ -40,7 +40,7 @@ class Blocks extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_objectManager->get(
             'Magento\Framework\App\State'
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
index 468a5d1b7de..76f624e2f48 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Categories.php
@@ -40,7 +40,7 @@ class Categories extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return \Magento\Framework\Controller\Result\Raw
      */
-    public function execute()
+    public function executeInternal()
     {
         $selected = $this->getRequest()->getParam('selected', '');
         $isAnchorOnly = $this->getRequest()->getParam('is_anchor_only', 0);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
index 0866ba1fb2e..14e0a85abbd 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Delete.php
@@ -13,7 +13,7 @@ class Delete extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if ($widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
index 978680baa01..8dfd2a8bc66 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Edit.php
@@ -13,7 +13,7 @@ class Edit extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if (!$widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
index 704730f02c5..5b6d3474334 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_initAction();
         $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Widgets'));
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
index 3beb19c5d1d..289ec1ee1d0 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/NewAction.php
@@ -13,7 +13,7 @@ class NewAction extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward('edit');
     }
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
index e750e1f88e5..a651f040b54 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Products.php
@@ -13,7 +13,7 @@ class Products extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $selected = $this->getRequest()->getParam('selected', '');
         $productTypeId = $this->getRequest()->getParam('product_type_id', '');
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
index 5435ef423cb..14657be5478 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Save.php
@@ -13,7 +13,7 @@ class Save extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $widgetInstance = $this->_initWidgetInstance();
         if (!$widgetInstance) {
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
index 4dea5a9f972..e7ad7a9e31b 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Template.php
@@ -13,7 +13,7 @@ class Template extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         /* @var $widgetInstance \Magento\Widget\Model\Widget\Instance */
         $widgetInstance = $this->_initWidgetInstance();
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
index fe2bb5aaf69..e37a93e5e61 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/Instance/Validate.php
@@ -13,7 +13,7 @@ class Validate extends \Magento\Widget\Controller\Adminhtml\Widget\Instance
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $response = new \Magento\Framework\DataObject();
         $response->setError(false);
diff --git a/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php b/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
index 769b2d587cd..10fccc4c724 100644
--- a/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
+++ b/app/code/Magento/Widget/Controller/Adminhtml/Widget/LoadOptions.php
@@ -13,7 +13,7 @@ class LoadOptions extends \Magento\Backend\App\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         try {
             $this->_view->loadLayout();
diff --git a/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php b/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
index 5a03ca57026..0def0e13833 100644
--- a/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
+++ b/app/code/Magento/Widget/Test/Unit/Controller/Adminhtml/Widget/Instance/CategoriesTest.php
@@ -120,6 +120,6 @@ class CategoriesTest extends \PHPUnit_Framework_TestCase
                     'layout' => $this->layout
                 ]
             );
-        $this->assertSame($this->resultRaw, $this->controller->execute());
+        $this->assertSame($this->resultRaw, $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Add.php b/app/code/Magento/Wishlist/Controller/Index/Add.php
index 19b893de9f8..36c24b6176f 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Add.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Add.php
@@ -59,7 +59,7 @@ class Add extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Index/Allcart.php b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
index 7cf5a187a56..e8892270a79 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
@@ -53,7 +53,7 @@ class Allcart extends Action\Action implements IndexInterface
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
         $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Cart.php b/app/code/Magento/Wishlist/Controller/Index/Cart.php
index 8075c8e6b6e..ca39fbb782b 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Cart.php
@@ -107,7 +107,7 @@ class Cart extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Index/Configure.php b/app/code/Magento/Wishlist/Controller/Index/Configure.php
index bc8e001e250..3d1077464d9 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Configure.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Configure.php
@@ -53,7 +53,7 @@ class Configure extends Action\Action implements IndexInterface
      * @return \Magento\Framework\Controller\ResultInterface
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('id');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
index 1edd5e4426e..5dd0ff2c278 100644
--- a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
+++ b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
@@ -36,7 +36,7 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
-    public function execute()
+    public function executeInternal()
     {
         $option = $this->_objectManager->create(
             'Magento\Wishlist\Model\Item\Option'
diff --git a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
index 8ee09cc1d33..443d46f103d 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
@@ -78,7 +78,7 @@ class Fromcart extends Action\Action implements IndexInterface
      * @throws NotFoundException
      * @SuppressWarnings(PHPMD.UnusedLocalVariable)
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Index/Index.php b/app/code/Magento/Wishlist/Controller/Index/Index.php
index dc0c7fcb965..821df44186a 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Index.php
@@ -35,7 +35,7 @@ class Index extends Action\Action implements IndexInterface
      * @return \Magento\Framework\View\Result\Page
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         if (!$this->wishlistProvider->getWishlist()) {
             throw new NotFoundException(__('Page not found.'));
diff --git a/app/code/Magento/Wishlist/Controller/Index/Remove.php b/app/code/Magento/Wishlist/Controller/Index/Remove.php
index d74487a8f19..66d068fc7f4 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Remove.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Remove.php
@@ -35,7 +35,7 @@ class Remove extends Action\Action implements IndexInterface
      * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      */
-    public function execute()
+    public function executeInternal()
     {
         $id = (int)$this->getRequest()->getParam('item');
         $item = $this->_objectManager->create('Magento\Wishlist\Model\Item')->load($id);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Send.php b/app/code/Magento/Wishlist/Controller/Index/Send.php
index 6baaa3772cd..9ee4f3cd1b8 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Send.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Send.php
@@ -119,7 +119,7 @@ class Send extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Wishlist/Controller/Index/Share.php b/app/code/Magento/Wishlist/Controller/Index/Share.php
index 502291b5078..4a8c92a3772 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Share.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Share.php
@@ -33,7 +33,7 @@ class Share extends Action\Action implements IndexInterface
      *
      * @return void|\Magento\Framework\View\Result\Page
      */
-    public function execute()
+    public function executeInternal()
     {
         if ($this->customerSession->authenticate()) {
             /** @var \Magento\Framework\View\Result\Page $resultPage */
diff --git a/app/code/Magento/Wishlist/Controller/Index/Update.php b/app/code/Magento/Wishlist/Controller/Index/Update.php
index ccb46f1c44a..863904999a2 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Update.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Update.php
@@ -53,7 +53,7 @@ class Update extends Action\Action implements IndexInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function execute()
+    public function executeInternal()
     {
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
         $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
diff --git a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
index 655844d6f11..e1ff89db2c8 100644
--- a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
+++ b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
@@ -51,7 +51,7 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $productId = (int)$this->getRequest()->getParam('product');
         /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
index ffb6e34ea96..2f9208c43e9 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
@@ -41,7 +41,7 @@ class Allcart extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Cart.php b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
index b3ed5a3b330..8f03270d5be 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
@@ -79,7 +79,7 @@ class Cart extends \Magento\Framework\App\Action\Action
      *
      * @return \Magento\Framework\Controller\Result\Redirect
      */
-    public function execute()
+    public function executeInternal()
     {
         $itemId = (int)$this->getRequest()->getParam('item');
 
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Index.php b/app/code/Magento/Wishlist/Controller/Shared/Index.php
index 6f925099159..d54d5283304 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Index.php
@@ -51,7 +51,7 @@ class Index extends Action
      *
      * @return \Magento\Framework\Controller\ResultInterface
      */
-    public function execute()
+    public function executeInternal()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         $customerId = $this->customerSession->getCustomerId();
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
index 8d58bf0be75..e72f4c4a42f 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
@@ -157,7 +157,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         $controller = $this->getController();
-        $this->assertSame($this->resultForwardMock, $controller->execute());
+        $this->assertSame($this->resultForwardMock, $controller->executeInternal());
     }
 
     public function testExecuteWithoutWishlist()
@@ -176,7 +176,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultForwardMock, $this->getController()->execute());
+        $this->assertSame($this->resultForwardMock, $this->getController()->executeInternal());
     }
 
     public function testExecutePassed()
@@ -204,6 +204,6 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
index cdd8ea3b333..937e5f843fd 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
@@ -259,7 +259,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithNoWishlist()
@@ -300,7 +300,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithQuantityArray()
@@ -312,7 +312,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     public function testExecuteWithQuantityArrayAjax()
@@ -324,7 +324,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with(['backUrl' => $refererUrl])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultJsonMock, $this->model->execute());
+        $this->assertSame($this->resultJsonMock, $this->model->executeInternal());
     }
 
     /**
@@ -698,7 +698,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($indexUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 
     /**
@@ -859,6 +859,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($configureUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
index 58109d6dc3d..51afe2756ad 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/FromcartTest.php
@@ -121,7 +121,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 
     public function testExecuteNoCartItem()
@@ -169,7 +169,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecute()
@@ -235,7 +235,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     public function testExecuteWithException()
@@ -271,7 +271,7 @@ class FromcartTest extends \PHPUnit_Framework_TestCase
             ->with($cartUrl)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirect, $this->controller->execute());
+        $this->assertSame($this->resultRedirect, $this->controller->executeInternal());
     }
 
     protected function prepareContext()
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
index 12f3de81f38..f49d76cc0a0 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
@@ -139,7 +139,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     public function testExecutePassed()
@@ -150,6 +150,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn($wishlist);
 
-        $this->assertSame($this->resultPageMock, $this->getController()->execute());
+        $this->assertSame($this->resultPageMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
index 6b2a6b9a595..787d6ef272c 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
@@ -164,7 +164,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with('Magento\Wishlist\Model\Item')
             ->willReturn($item);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     /**
@@ -206,7 +206,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with(2)
             ->willReturn(null);
 
-        $this->getController()->execute();
+        $this->getController()->executeInternal();
     }
 
     public function testExecuteCanNotSaveWishlist()
@@ -291,7 +291,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with($referer)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     public function testExecuteCanNotSaveWishlistAndWithRedirect()
@@ -387,6 +387,6 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->with('http://test.com/frontname/module/controller/action')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
index dd6dca98716..704e5b6fb08 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/SendTest.php
@@ -270,7 +270,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -288,7 +288,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->willReturn(null);
 
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 
     /**
@@ -356,7 +356,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/share')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -514,7 +514,7 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*/share')
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -693,6 +693,6 @@ class SendTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => $wishlistId])
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
index b65e8d11e43..e53d854cbef 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/ShareTest.php
@@ -53,7 +53,7 @@ class ShareTest extends \PHPUnit_Framework_TestCase
         $this->resultFactoryMock->expects($this->once())->method('create')->with(ResultFactory::TYPE_PAGE)
             ->willReturn($resultMock);
 
-        $this->assertEquals($resultMock, $this->model->execute());
+        $this->assertEquals($resultMock, $this->model->executeInternal());
     }
 
     public function testExecuteAuthenticationFail()
@@ -61,6 +61,6 @@ class ShareTest extends \PHPUnit_Framework_TestCase
         $this->customerSessionMock->expects($this->once())->method('authenticate')
             ->willReturn(false);
 
-        $this->assertEmpty($this->model->execute());
+        $this->assertEmpty($this->model->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
index f70306b6025..1f811f79563 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
@@ -186,7 +186,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -218,7 +218,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -286,7 +286,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/', [])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 
     /**
@@ -407,7 +407,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => 56])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
     /**
      * Test execute add success critical exception
@@ -545,6 +545,6 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->with('*/*', ['wishlist_id' => 56])
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
+        $this->assertSame($this->resultRedirectMock, $this->getController()->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
index 09ea2bb42c7..984c2e70c16 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
@@ -132,7 +132,7 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with($url)
             ->willReturnSelf();
 
-        $this->assertSame($this->resultRedirectMock, $this->allcartController->execute());
+        $this->assertSame($this->resultRedirectMock, $this->allcartController->executeInternal());
     }
 
     public function testExecuteWithNoWishlist()
@@ -145,6 +145,6 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->with('noroute')
             ->willReturnSelf();
 
-        $this->assertSame($this->resultForwardMock, $this->allcartController->execute());
+        $this->assertSame($this->resultForwardMock, $this->allcartController->executeInternal());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
index c42e48ba37b..a917ac8b2ba 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/CartTest.php
@@ -275,7 +275,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($redirectUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     /**
@@ -329,7 +329,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($productUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteProductException()
@@ -360,7 +360,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 
     public function testExecuteException()
@@ -391,6 +391,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with($refererUrl)
             ->willReturnSelf();
 
-        $this->assertEquals($this->resultRedirect, $this->model->execute());
+        $this->assertEquals($this->resultRedirect, $this->model->executeInternal());
     }
 }
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index 01be1182f2b..906504d782e 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -69,7 +69,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      * @param RequestInterface $request
      * @return \Magento\Framework\App\ResponseInterface
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $result = $this->execute($request);
         return $result ? $result : $this->_response;
diff --git a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
index 6d0b535d0c6..6ae9fb368c2 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php
@@ -58,7 +58,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
 
     /**
      * Check not logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::executeInternal
      */
     public function testNotLoggedLoginAction()
     {
@@ -72,7 +72,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
 
     /**
      * Check logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLoggedLoginAction()
@@ -120,7 +120,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Logout::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\Logout::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLogoutAction()
@@ -138,7 +138,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::executeInternal
      * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::_getDeniedJson
      * @magentoDbIsolation enabled
      */
@@ -158,7 +158,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::executeInternal
      * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::_getDeniedIframe
      * @magentoDbIsolation enabled
      */
diff --git a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
index 6575448913a..c5c1c1da1a4 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php
@@ -12,7 +12,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
 {
     /**
      * Check not logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::executeInternal
      */
     public function testNotLoggedIndexAction()
     {
@@ -27,7 +27,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
 
     /**
      * Check logged state
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\Index::executeInternal
      * @magentoDbIsolation enabled
      */
     public function testLoggedIndexAction()
@@ -37,7 +37,7 @@ class IndexTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
     }
 
     /**
-     * @covers \Magento\Backend\Controller\Adminhtml\Index\GlobalSearch::execute
+     * @covers \Magento\Backend\Controller\Adminhtml\Index\GlobalSearch::executeInternal
      */
     public function testGlobalSearchAction()
     {
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
index 276f752779f..9f501e36fef 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/Action/AttributeTest.php
@@ -11,7 +11,7 @@ namespace Magento\Catalog\Controller\Adminhtml\Product\Action;
 class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 {
     /**
-     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Save::execute
+     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Save::executeInternal
      *
      * @magentoDataFixture Magento/Catalog/_files/product_simple.php
      */
@@ -46,7 +46,7 @@ class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendContr
     }
 
     /**
-     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Validate::execute
+     * @covers \Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute\Validate::executeInternal
      *
      * @dataProvider validateActionDataProvider
      *
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php b/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
index f4d8df15724..87dc9a7363b 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Helper/Product/Stub/ProductControllerStub.php
@@ -8,7 +8,7 @@ namespace Magento\Catalog\Helper\Product\Stub;
 
 class ProductControllerStub extends \Magento\Catalog\Controller\Product
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php b/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
index f170ad50089..7e845870171 100644
--- a/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
+++ b/dev/tests/integration/testsuite/Magento/CurrencySymbol/Controller/Adminhtml/System/Currency/FetchRatesTest.php
@@ -121,6 +121,6 @@ class FetchRatesTest extends \Magento\TestFramework\TestCase\AbstractBackendCont
             $context,
             $registry
         );
-        $action->execute();
+        $action->executeInternal();
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php b/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
index 4a606bea53b..1b098debc33 100644
--- a/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
+++ b/dev/tests/integration/testsuite/Magento/Paypal/Controller/Billing/AgreementTest.php
@@ -106,7 +106,7 @@ class AgreementTest extends \Magento\TestFramework\TestCase\AbstractController
         $customerSession->setCustomerId($fixtureCustomerId);
 
         /** Execute SUT */
-        $billingAgreementController->execute();
+        $billingAgreementController->executeInternal();
 
         /** Ensure that billing agreement record was created in the DB */
         /** @var \Magento\Paypal\Model\ResourceModel\Billing\Agreement\Collection $billingAgreementCollection */
diff --git a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
index 39153b58370..0169bf3ff26 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/Controller/Adminhtml/Order/Stub/OrderCreateStub.php
@@ -8,7 +8,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order\Stub;
 
 class OrderCreateStub extends \Magento\Sales\Controller\Adminhtml\Order\Create
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php b/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
index 0116aa59ffa..ae88fa63786 100644
--- a/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
+++ b/dev/tests/integration/testsuite/Magento/TestFixture/Controller/Adminhtml/Noroute.php
@@ -22,7 +22,7 @@ class Noroute implements \Magento\Framework\App\ActionInterface
      *
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
     }
 
diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
index 052030a1552..031bab7ac1e 100644
--- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
+++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/AuthTest.php
@@ -14,7 +14,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 {
     /**
      * Test form existence
-     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::executeInternal
      */
     public function testFormForgotpasswordAction()
     {
@@ -26,7 +26,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     /**
      * Test redirection to startup page after success password recovering posting
      *
-     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\Forgotpassword::executeInternal
      */
     public function testForgotpasswordAction()
     {
@@ -44,7 +44,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     /**
      * Test reset password action
      *
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -73,7 +73,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPassword::_validateResetPasswordLinkToken
      */
     public function testResetPasswordActionWithDummyToken()
@@ -89,7 +89,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
 
     /**
      * @dataProvider resetPasswordDataProvider
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -162,7 +162,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
@@ -184,7 +184,7 @@ class AuthTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::execute
+     * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::executeInternal
      * @covers \Magento\User\Controller\Adminhtml\Auth\ResetPasswordPost::_validateResetPasswordLinkToken
      * @magentoDataFixture Magento/User/_files/dummy_user.php
      */
diff --git a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
index 932351fb427..384b2e3300e 100644
--- a/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
+++ b/dev/tests/integration/testsuite/Magento/User/Controller/Adminhtml/User/RoleTest.php
@@ -27,7 +27,7 @@ class RoleTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\User\Role\Editrolegrid::execute
+     * @covers \Magento\User\Controller\Adminhtml\User\Role\Editrolegrid::executeInternal
      */
     public function testEditrolegridAction()
     {
@@ -38,7 +38,7 @@ class RoleTest extends \Magento\TestFramework\TestCase\AbstractBackendController
     }
 
     /**
-     * @covers \Magento\User\Controller\Adminhtml\User\Role\RoleGrid::execute
+     * @covers \Magento\User\Controller\Adminhtml\User\Role\RoleGrid::executeInternal
      */
     public function testRoleGridAction()
     {
diff --git a/lib/internal/Magento/Framework/App/Action/Action.php b/lib/internal/Magento/Framework/App/Action/Action.php
index 310f2f57d4d..da7a42f6122 100644
--- a/lib/internal/Magento/Framework/App/Action/Action.php
+++ b/lib/internal/Magento/Framework/App/Action/Action.php
@@ -83,7 +83,7 @@ abstract class Action extends AbstractAction
      * @return ResponseInterface
      * @throws NotFoundException
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $this->_request = $request;
         $profilerKey = 'CONTROLLER_ACTION:' . $request->getFullActionName();
@@ -99,7 +99,7 @@ abstract class Action extends AbstractAction
         $result = null;
         if ($request->isDispatched() && !$this->_actionFlag->get('', self::FLAG_NO_DISPATCH)) {
             \Magento\Framework\Profiler::start('action_body');
-            $result = $this->execute();
+            $result = $this->executeInternal();
             \Magento\Framework\Profiler::start('postdispatch');
             if (!$this->_actionFlag->get('', self::FLAG_NO_POST_DISPATCH)) {
                 $this->_eventManager->dispatch(
@@ -122,7 +122,7 @@ abstract class Action extends AbstractAction
     /**
      * @return ResultInterface
      */
-    abstract protected function execute();
+    abstract protected function executeInternal();
 
     /**
      * Throw control to different action (control and module if was specified).
diff --git a/lib/internal/Magento/Framework/App/Action/Forward.php b/lib/internal/Magento/Framework/App/Action/Forward.php
index 611b7413b41..db11b6577f3 100644
--- a/lib/internal/Magento/Framework/App/Action/Forward.php
+++ b/lib/internal/Magento/Framework/App/Action/Forward.php
@@ -17,7 +17,7 @@ class Forward extends AbstractAction
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         $request->setDispatched(false);
         return $this->_response;
diff --git a/lib/internal/Magento/Framework/App/Action/Redirect.php b/lib/internal/Magento/Framework/App/Action/Redirect.php
index 5904274e561..23b3cfcb90d 100644
--- a/lib/internal/Magento/Framework/App/Action/Redirect.php
+++ b/lib/internal/Magento/Framework/App/Action/Redirect.php
@@ -19,7 +19,7 @@ class Redirect extends AbstractAction
      * @return ResponseInterface
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function dispatch(RequestInterface $request)
+    public function execute(RequestInterface $request)
     {
         return $this->_response;
     }
diff --git a/lib/internal/Magento/Framework/App/ActionInterface.php b/lib/internal/Magento/Framework/App/ActionInterface.php
index 7e90fc49922..cf740250eb8 100644
--- a/lib/internal/Magento/Framework/App/ActionInterface.php
+++ b/lib/internal/Magento/Framework/App/ActionInterface.php
@@ -26,5 +26,5 @@ interface ActionInterface
      * @return \Magento\Framework\Controller\ResultInterface|ResponseInterface
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function dispatch(RequestInterface $request);
+    public function execute(RequestInterface $request);
 }
diff --git a/lib/internal/Magento/Framework/App/FrontController.php b/lib/internal/Magento/Framework/App/FrontController.php
index c3a9b6b390b..49630bd4e6d 100644
--- a/lib/internal/Magento/Framework/App/FrontController.php
+++ b/lib/internal/Magento/Framework/App/FrontController.php
@@ -51,7 +51,7 @@ class FrontController implements FrontControllerInterface
                     if ($actionInstance) {
                         $request->setDispatched(true);
                         $this->response->setNoCacheHeaders();
-                        $result = $actionInstance->dispatch($request);
+                        $result = $actionInstance->execute($request);
                         break;
                     }
                 } catch (\Magento\Framework\Exception\NotFoundException $e) {
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
index 44a79370181..e7b0a27ab64 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/ActionTest.php
@@ -170,7 +170,7 @@ class ActionTest extends \PHPUnit_Framework_TestCase
             $expectedEventParameters
         );
 
-        $this->assertEquals($this->_responseMock, $this->action->dispatch($this->_requestMock));
+        $this->assertEquals($this->_responseMock, $this->action->execute($this->_requestMock));
     }
 }
 
@@ -179,7 +179,7 @@ class ActionFake extends Action
     /**
      * Fake action to check a method call from a parent
      */
-    public function execute()
+    public function executeInternal()
     {
         $this->_forward(
             ActionTest::ACTION_NAME,
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
index 2d15e0a290b..5501546bc59 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/ForwardTest.php
@@ -62,7 +62,7 @@ class ForwardTest extends \PHPUnit_Framework_TestCase
     public function testDispatch()
     {
         $this->request->expects($this->once())->method('setDispatched')->with(false);
-        $this->actionAbstract->dispatch($this->request);
+        $this->actionAbstract->execute($this->request);
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
index a5c6d5cff8e..4c654992ab2 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/Stub/ActionStub.php
@@ -8,7 +8,7 @@ namespace Magento\Framework\App\Test\Unit\Action\Stub;
 
 class ActionStub extends \Magento\Framework\App\Action\Action
 {
-    protected function execute()
+    protected function executeInternal()
     {
         // Empty method stub for test
     }
diff --git a/lib/internal/Magento/Framework/Controller/Index/Index.php b/lib/internal/Magento/Framework/Controller/Index/Index.php
index bc8b9d70810..ad0c9a85ba6 100644
--- a/lib/internal/Magento/Framework/Controller/Index/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Index/Index.php
@@ -11,7 +11,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
     }
 }
diff --git a/lib/internal/Magento/Framework/Controller/Noroute/Index.php b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
index 34154715366..cce6f4671f9 100644
--- a/lib/internal/Magento/Framework/Controller/Noroute/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
@@ -13,7 +13,7 @@ class Index extends \Magento\Framework\App\Action\Action
      *
      * @return void
      */
-    public function execute()
+    public function executeInternal()
     {
         $status = $this->getRequest()->getParam('__status__');
         if (!$status instanceof \Magento\Framework\DataObject) {
-- 
GitLab


From 7d65c78f9f013208a2369c6801f840e91e4fe5ae Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 15:57:11 -0500
Subject: [PATCH 099/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Module/Di/App/Task/Operation/Interception.php      |  7 +------
 .../Di/App/Task/Operation/RepositoryGenerator.php      | 10 ++--------
 2 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
index 269e65bb48c..0c48cd4f519 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php
@@ -5,7 +5,6 @@
  */
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
-use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
 use Magento\Framework\Interception\Code\Generator\Interceptor;
@@ -81,11 +80,7 @@ class Interception implements OperationInterface
                 $paths = (array)$paths;
             }
             foreach ($paths as $path) {
-                try {
-                    $classesList = array_merge($classesList, $this->classesScanner->getList($path));
-                } catch(FileSystemException $e) {
-                    // skip
-                }
+                $classesList = array_merge($classesList, $this->classesScanner->getList($path));
             }
         }
 
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index d72b4c932a7..cf3c779a3f7 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -6,7 +6,6 @@
 
 namespace Magento\Setup\Module\Di\App\Task\Operation;
 
-use Magento\Framework\Exception\FileSystemException;
 use Magento\Setup\Module\Di\App\Task\OperationInterface;
 use Magento\Setup\Module\Di\Code\Scanner;
 use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
@@ -63,14 +62,9 @@ class RepositoryGenerator implements OperationInterface
             return;
         }
 
-        try {
-            foreach ($this->data['paths'] as $path) {
-                $this->classesScanner->getList($path);
-            }
-        } catch(FileSystemException $e) {
-            // skip
+        foreach ($this->data['paths'] as $path) {
+            $this->classesScanner->getList($path);
         }
-
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
-- 
GitLab


From 369a00bc82b31a9618bdbb394c58c0f19aa83f01 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 16:00:09 -0500
Subject: [PATCH 100/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Di/App/Task/Operation/ApplicationCodeGenerator.php    | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index 21254457ddf..dfaf5b99570 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -66,12 +66,8 @@ class ApplicationCodeGenerator implements OperationInterface
             }
             $files = [];
             foreach ($paths as $path) {
-                try {
-                    $this->classesScanner->getList($path);
-                    $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
-                } catch(FileSystemException $e) {
-                    // skip
-                }
+                $this->classesScanner->getList($path);
+                $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
             }
             $entities = $this->phpScanner->collectEntities($files['php']);
             foreach ($entities as $entityName) {
-- 
GitLab


From fded3fc769aac401a3869bc8049c87bc9126a22b Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Fri, 23 Oct 2015 16:06:26 -0500
Subject: [PATCH 101/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Changed affected plugins
---
 .../Backend/App/Action/Plugin/Authentication.php |  2 +-
 .../Backend/App/Action/Plugin/MassactionKey.php  |  2 +-
 .../App/Action/Plugin/AuthenticationTest.php     | 10 +++++-----
 .../Unit/App/Action/Plugin/MassactionKeyTest.php | 16 ++++++++--------
 .../Captcha/Model/Customer/Plugin/AjaxLogin.php  |  2 +-
 .../Unit/Model/Customer/Plugin/AjaxLoginTest.php | 16 ++++++++--------
 .../Customer/Controller/Plugin/Account.php       |  2 +-
 .../Customer/Model/App/Action/ContextPlugin.php  |  2 +-
 .../Test/Unit/Controller/Plugin/AccountTest.php  |  8 ++++----
 .../Unit/Model/App/Action/ContextPluginTest.php  |  6 +++---
 .../Multishipping/Controller/Checkout/Plugin.php |  2 +-
 .../Test/Unit/Controller/Checkout/PluginTest.php |  4 ++--
 .../App/Action/Plugin/BackendAuthentication.php  |  6 +++---
 .../Action/Plugin/BackendAuthenticationTest.php  |  4 ++--
 .../Controller/Order/Plugin/Authentication.php   |  2 +-
 .../Magento/Store/App/Action/Plugin/Context.php  |  2 +-
 .../Store/App/Action/Plugin/StoreCheck.php       |  2 +-
 .../Test/Unit/App/Action/Plugin/ContextTest.php  |  8 ++++----
 .../Unit/App/Action/Plugin/StoreCheckTest.php    |  8 ++++----
 .../Adminhtml/Product/Attribute/Plugin/Save.php  |  2 +-
 .../Product/Attribute/Plugin/SaveTest.php        |  4 ++--
 .../Tax/Model/App/Action/ContextPlugin.php       |  2 +-
 .../Test/Unit/App/Action/ContextPluginTest.php   |  8 ++++----
 .../Theme/Model/Theme/Plugin/Registration.php    |  2 +-
 .../Unit/Model/Theme/Plugin/RegistrationTest.php | 12 ++++++------
 .../Weee/Model/App/Action/ContextPlugin.php      |  2 +-
 .../Test/Unit/App/Action/ContextPluginTest.php   | 16 ++++++++--------
 .../Magento/Wishlist/Controller/Index/Plugin.php |  2 +-
 .../Test/Unit/Controller/Index/PluginTest.php    |  4 ++--
 .../Framework/App/Action/Plugin/Design.php       |  2 +-
 .../App/Test/Unit/Action/Plugin/DesignTest.php   |  4 ++--
 31 files changed, 82 insertions(+), 82 deletions(-)

diff --git a/app/code/Magento/Backend/App/Action/Plugin/Authentication.php b/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
index bf8d90b931e..02cc404d4fc 100644
--- a/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
+++ b/app/code/Magento/Backend/App/Action/Plugin/Authentication.php
@@ -101,7 +101,7 @@ class Authentication
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Backend\App\AbstractAction $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php b/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
index 767163afc6d..9e1f5c713ea 100644
--- a/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
+++ b/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php
@@ -19,7 +19,7 @@ class MassactionKey
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Backend\App\AbstractAction $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
index 476f6ca0310..052db1d9ae9 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/AuthenticationTest.php
@@ -45,7 +45,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
         $this->plugin = null;
     }
 
-    public function testAroundDispatchProlongStorage()
+    public function testAroundExecuteProlongStorage()
     {
         $subject = $this->getMock('Magento\Backend\Controller\Adminhtml\Index', [], [], '', false);
         $request = $this->getMock('\Magento\Framework\App\Request\Http', ['getActionName'], [], '', false);
@@ -82,11 +82,11 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
             return $expectedResult;
         };
 
-        $this->assertEquals($expectedResult, $this->plugin->aroundDispatch($subject, $proceed, $request));
+        $this->assertEquals($expectedResult, $this->plugin->aroundExecute($subject, $proceed, $request));
     }
 
     /**
-     * Calls aroundDispatch to access protected method _processNotLoggedInUser
+     * Calls aroundExecute to access protected method _processNotLoggedInUser
      *
      * Data provider supplies different possibilities of request parameters and properties
      * @dataProvider processNotLoggedInUserDataProvider
@@ -103,7 +103,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
             ->disableOriginalConstructor()
             ->getMock();
 
-        // Stubs to control the flow of execution in aroundDispatch
+        // Stubs to control the flow of execution in aroundExecute
         $this->auth->expects($this->any())->method('getAuthStorage')->will($this->returnValue($storage));
         $request->expects($this->once())->method('getActionName')->will($this->returnValue('non/open/action/name'));
         $this->auth->expects($this->any())->method('getUser')->willReturn(false);
@@ -146,7 +146,7 @@ class AuthenticationTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->assertEquals($expectedResult, $this->plugin->aroundDispatch($subject, $proceed, $request));
+        $this->assertEquals($expectedResult, $this->plugin->aroundExecute($subject, $proceed, $request));
     }
 
     public function processNotLoggedInUserDataProvider()
diff --git a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
index 87dad8b6edd..48ec3a9a592 100644
--- a/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
+++ b/app/code/Magento/Backend/Test/Unit/App/Action/Plugin/MassactionKeyTest.php
@@ -49,13 +49,13 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundDispatch
+     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundExecute
      *
      * @param $postData array|string
      * @param array $convertedData
-     * @dataProvider aroundDispatchDataProvider
+     * @dataProvider aroundExecuteDataProvider
      */
-    public function testAroundDispatchWhenMassactionPrepareKeyRequestExists($postData, $convertedData)
+    public function testAroundExecuteWhenMassactionPrepareKeyRequestExists($postData, $convertedData)
     {
         $this->requestMock->expects($this->at(0))
             ->method('getPost')
@@ -71,11 +71,11 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'Expected',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function aroundDispatchDataProvider()
+    public function aroundExecuteDataProvider()
     {
         return [
             'post_data_is_array' => [['key'], ['key']],
@@ -84,9 +84,9 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundDispatch
+     * @covers \Magento\Backend\App\Action\Plugin\MassactionKey::aroundExecute
      */
-    public function testAroundDispatchWhenMassactionPrepareKeyRequestNotExists()
+    public function testAroundExecuteWhenMassactionPrepareKeyRequestNotExists()
     {
         $this->requestMock->expects($this->once())
             ->method('getPost')
@@ -97,7 +97,7 @@ class MassactionKeyTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'Expected',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php b/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
index 9f1dcff38b6..4cc0d629b01 100644
--- a/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
+++ b/app/code/Magento/Captcha/Model/Customer/Plugin/AjaxLogin.php
@@ -57,7 +57,7 @@ class AjaxLogin
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function aroundExecute(
+    public function aroundExecuteInternal(
         \Magento\Customer\Controller\Ajax\Login $subject,
         \Closure $proceed
     ) {
diff --git a/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php b/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
index 7a79969f8ef..3d92086223c 100644
--- a/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
+++ b/app/code/Magento/Captcha/Test/Unit/Model/Customer/Plugin/AjaxLoginTest.php
@@ -82,7 +82,7 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testAroundExecute()
+    public function testAroundExecuteInternal()
     {
         $username = 'name';
         $captchaString = 'string';
@@ -102,10 +102,10 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         $closure = function () {
             return 'result';
         };
-        $this->assertEquals('result', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('result', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
-    public function testAroundExecuteIncorrectCaptcha()
+    public function testAroundExecuteInternalIncorrectCaptcha()
     {
         $username = 'name';
         $captchaString = 'string';
@@ -131,15 +131,15 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
 
         $closure = function () {
         };
-        $this->assertEquals('response', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('response', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
     /**
-     * @dataProvider aroundExecuteCaptchaIsNotRequired
+     * @dataProvider aroundExecuteInternalCaptchaIsNotRequired
      * @param string $username
      * @param array $requestContent
      */
-    public function testAroundExecuteCaptchaIsNotRequired($username, $requestContent)
+    public function testAroundExecuteInternalCaptchaIsNotRequired($username, $requestContent)
     {
         $this->requestMock->expects($this->once())->method('getContent')->will($this->returnValue($requestContent));
 
@@ -151,13 +151,13 @@ class AjaxLoginTest extends \PHPUnit_Framework_TestCase
         $closure = function () {
             return 'result';
         };
-        $this->assertEquals('result', $this->model->aroundExecute($this->loginControllerMock, $closure));
+        $this->assertEquals('result', $this->model->aroundExecuteInternal($this->loginControllerMock, $closure));
     }
 
     /**
      * @return array
      */
-    public function aroundExecuteCaptchaIsNotRequired()
+    public function aroundExecuteInternalCaptchaIsNotRequired()
     {
         return [
             [
diff --git a/app/code/Magento/Customer/Controller/Plugin/Account.php b/app/code/Magento/Customer/Controller/Plugin/Account.php
index c035c983d80..10f2c8fc15f 100644
--- a/app/code/Magento/Customer/Controller/Plugin/Account.php
+++ b/app/code/Magento/Customer/Controller/Plugin/Account.php
@@ -41,7 +41,7 @@ class Account
      * @param RequestInterface $request
      * @return mixed
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         ActionInterface $subject,
         \Closure $proceed,
         RequestInterface $request
diff --git a/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php b/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
index a5b268eaa17..8198a70957f 100644
--- a/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Customer/Model/App/Action/ContextPlugin.php
@@ -43,7 +43,7 @@ class ContextPlugin
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
index 8146fce1aa3..2c651155321 100644
--- a/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Controller/Plugin/AccountTest.php
@@ -87,9 +87,9 @@ class AccountTest extends \PHPUnit_Framework_TestCase
      * @param boolean $isActionAllowed
      * @param boolean $isAuthenticated
      *
-     * @dataProvider dataProviderAroundDispatch
+     * @dataProvider dataProviderAroundExecute
      */
-    public function testAroundDispatch(
+    public function testAroundExecute(
         $action,
         $allowedActions,
         $isActionAllowed,
@@ -128,11 +128,11 @@ class AccountTest extends \PHPUnit_Framework_TestCase
         $plugin = new Account($this->session, $allowedActions);
         $this->assertEquals(
             self::EXPECTED_VALUE,
-            $plugin->aroundDispatch($this->subject, $this->proceed, $this->request)
+            $plugin->aroundExecute($this->subject, $this->proceed, $this->request)
         );
     }
 
-    public function dataProviderAroundDispatch()
+    public function dataProviderAroundExecute()
     {
         return [
             [
diff --git a/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php b/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
index 4d338cef2aa..f246b0e9559 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/App/Action/ContextPluginTest.php
@@ -74,9 +74,9 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * Test aroundDispatch
+     * Test aroundExecute
      */
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('getCustomerGroupId')
@@ -96,7 +96,7 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
             );
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php b/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
index 3467cc8b9a8..4fbd38f1178 100644
--- a/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
+++ b/app/code/Magento/Multishipping/Controller/Checkout/Plugin.php
@@ -28,7 +28,7 @@ class Plugin
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeExecute(\Magento\Framework\App\Action\Action $subject)
+    public function beforeExecuteInternal(\Magento\Framework\App\Action\Action $subject)
     {
         $this->cart->getQuote()->setIsMultiShipping(0);
     }
diff --git a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
index 9cfb6a0c75f..dc9a3056acd 100644
--- a/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
+++ b/app/code/Magento/Multishipping/Test/Unit/Controller/Checkout/PluginTest.php
@@ -39,10 +39,10 @@ class PluginTest extends \PHPUnit_Framework_TestCase
         $this->object = new \Magento\Multishipping\Controller\Checkout\Plugin($this->cartMock);
     }
 
-    public function testExecuteTurnsOffMultishippingModeOnQuote()
+    public function testExecuteInternalTurnsOffMultishippingModeOnQuote()
     {
         $subject = $this->getMock('Magento\Checkout\Controller\Index\Index', [], [], '', false);
         $this->quoteMock->expects($this->once())->method('setIsMultiShipping')->with(0);
-        $this->object->beforeExecute($subject);
+        $this->object->beforeExecuteInternal($subject);
     }
 }
diff --git a/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php b/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
index 5bdb72f7036..f3e450c8c72 100644
--- a/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
+++ b/app/code/Magento/Rss/App/Action/Plugin/BackendAuthentication.php
@@ -95,7 +95,7 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function aroundDispatch(AbstractAction $subject, \Closure $proceed, RequestInterface $request)
+    public function aroundExecute(AbstractAction $subject, \Closure $proceed, RequestInterface $request)
     {
         $resource = isset($this->aclResources[$request->getControllerName()])
             ? isset($this->aclResources[$request->getControllerName()][$request->getActionName()])
@@ -107,7 +107,7 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
         $resourceType = isset($this->aclResources[$type]) ? $this->aclResources[$type] : null;
 
         if (!$resource || !$resourceType) {
-            return parent::aroundDispatch($subject, $proceed, $request);
+            return parent::aroundExecute($subject, $proceed, $request);
         }
 
         $session = $this->_auth->getAuthStorage();
@@ -129,6 +129,6 @@ class BackendAuthentication extends \Magento\Backend\App\Action\Plugin\Authentic
             return $this->_response;
         }
 
-        return parent::aroundDispatch($subject, $proceed, $request);
+        return parent::aroundExecute($subject, $proceed, $request);
     }
 }
diff --git a/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php b/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
index 79685fb88a3..240da650216 100644
--- a/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
+++ b/app/code/Magento/Rss/Test/Unit/App/Action/Plugin/BackendAuthenticationTest.php
@@ -7,7 +7,7 @@ namespace Magento\Rss\Test\Unit\App\Action\Plugin;
 
 class BackendAuthenticationTest extends \PHPUnit_Framework_TestCase
 {
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         /** @var \Magento\Backend\App\AbstractAction|\PHPUnit_Framework_MockObject_MockObject $subject */
         $subject = $this->getMock('Magento\Backend\App\AbstractAction', [], [], '', false);
@@ -69,7 +69,7 @@ class BackendAuthenticationTest extends \PHPUnit_Framework_TestCase
             );
         $this->assertSame(
             $response,
-            $plugin->aroundDispatch($subject, $proceed, $request)
+            $plugin->aroundExecute($subject, $proceed, $request)
         );
     }
 }
diff --git a/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php b/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
index e496f13e7a6..fed11efb271 100644
--- a/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
+++ b/app/code/Magento/Sales/Controller/Order/Plugin/Authentication.php
@@ -40,7 +40,7 @@ class Authentication
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
+    public function beforeExecute(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
     {
         $loginUrl = $this->customerUrl->getLoginUrl();
 
diff --git a/app/code/Magento/Store/App/Action/Plugin/Context.php b/app/code/Magento/Store/App/Action/Plugin/Context.php
index 6e3e3f4e4f5..533104a5689 100644
--- a/app/code/Magento/Store/App/Action/Plugin/Context.php
+++ b/app/code/Magento/Store/App/Action/Plugin/Context.php
@@ -69,7 +69,7 @@ class Context
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php b/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
index 46fa0bc004a..8519652f11b 100644
--- a/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
+++ b/app/code/Magento/Store/App/Action/Plugin/StoreCheck.php
@@ -31,7 +31,7 @@ class StoreCheck
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      * @throws \Magento\Framework\Exception\State\InitException
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
index e6c679b2dd4..5614f453839 100644
--- a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
+++ b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/ContextTest.php
@@ -185,7 +185,7 @@ class ContextTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue(self::CURRENCY_CURRENT_STORE));
     }
 
-    public function testAroundDispatchCurrencyFromSession()
+    public function testAroundExecuteCurrencyFromSession()
     {
         $this->sessionMock->expects($this->any())
             ->method('getCurrencyCode')
@@ -201,11 +201,11 @@ class ContextTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function testDispatchCurrentStoreCurrency()
+    public function testExecuteCurrentStoreCurrency()
     {
         $this->httpContextMock->expects($this->at(0))
             ->method('setValue')
@@ -217,7 +217,7 @@ class ContextTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             'ExpectedValue',
-            $this->plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 }
diff --git a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
index feaca2ad45e..e83d629fb81 100644
--- a/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
+++ b/app/code/Magento/Store/Test/Unit/App/Action/Plugin/StoreCheckTest.php
@@ -64,21 +64,21 @@ class StoreCheckTest extends \PHPUnit_Framework_TestCase
      * @expectedException \Magento\Framework\Exception\State\InitException
      * @expectedExceptionMessage Current store is not active.
      */
-    public function testAroundDispatchWhenStoreNotActive()
+    public function testAroundExecuteWhenStoreNotActive()
     {
         $this->_storeMock->expects($this->any())->method('isActive')->will($this->returnValue(false));
         $this->assertEquals(
             'Expected',
-            $this->_plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->_plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
-    public function testAroundDispatchWhenStoreIsActive()
+    public function testAroundExecuteWhenStoreIsActive()
     {
         $this->_storeMock->expects($this->any())->method('isActive')->will($this->returnValue(true));
         $this->assertEquals(
             'Expected',
-            $this->_plugin->aroundDispatch($this->subjectMock, $this->closureMock, $this->requestMock)
+            $this->_plugin->aroundExecute($this->subjectMock, $this->closureMock, $this->requestMock)
         );
     }
 
diff --git a/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php b/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
index e9da825c657..1b9259fb0c6 100644
--- a/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
+++ b/app/code/Magento/Swatches/Controller/Adminhtml/Product/Attribute/Plugin/Save.php
@@ -22,7 +22,7 @@ class Save
      * @return array
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(Attribute\Save $subject, RequestInterface $request)
+    public function beforeExecute(Attribute\Save $subject, RequestInterface $request)
     {
         $data = $request->getPostValue();
         if (isset($data['frontend_input'])) {
diff --git a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
index c1d0356f66d..ab54e2ceca4 100644
--- a/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
+++ b/app/code/Magento/Swatches/Test/Unit/Controller/Adminhtml/Product/Attribute/Plugin/SaveTest.php
@@ -11,7 +11,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     /**
      * @dataProvider dataRequest
      */
-    public function testBeforeDispatch($dataRequest, $runTimes)
+    public function testBeforeExecute($dataRequest, $runTimes)
     {
         $subject = $this->getMock('\Magento\Catalog\Controller\Adminhtml\Product\Attribute\Save', [], [], '', false);
         $request = $this->getMock(
@@ -40,7 +40,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
         $request->expects($this->once())->method('getPostValue')->willReturn($dataRequest);
         $request->expects($this->exactly($runTimes))->method('setPostValue')->willReturn($this->returnSelf());
 
-        $controller->beforeDispatch($subject, $request);
+        $controller->beforeExecute($subject, $request);
     }
 
     public function dataRequest()
diff --git a/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php b/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
index 70c1e600071..408cb5aad84 100644
--- a/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Tax/Model/App/Action/ContextPlugin.php
@@ -79,7 +79,7 @@ class ContextPlugin
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php b/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
index f8ab3eb71e9..7fc90aa1d64 100644
--- a/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Tax/Test/Unit/App/Action/ContextPluginTest.php
@@ -111,9 +111,9 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
      * @param bool $cache
      * @param bool $taxEnabled
      * @param bool $loggedIn
-     * @dataProvider dataProviderAroundDispatch
+     * @dataProvider dataProviderAroundExecute
      */
-    public function testAroundDispatch($cache, $taxEnabled, $loggedIn)
+    public function testAroundExecute($cache, $taxEnabled, $loggedIn)
     {
         $this->customerSessionMock->expects($this->any())
             ->method('isLoggedIn')
@@ -164,14 +164,14 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
             $proceed = function ($request) use ($expectedResult) {
                 return $expectedResult;
             };
-            $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+            $this->contextPlugin->aroundExecute($action, $proceed, $request);
         }
     }
 
     /**
      * @return array
      */
-    public function dataProviderAroundDispatch()
+    public function dataProviderAroundExecute()
     {
         return [
             [false, false, false],
diff --git a/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php b/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
index 0f469442c15..1e0f900a6ec 100644
--- a/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
+++ b/app/code/Magento/Theme/Model/Theme/Plugin/Registration.php
@@ -47,7 +47,7 @@ class Registration
      * @return void
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function beforeDispatch(
+    public function beforeExecute(
         AbstractAction $subject,
         RequestInterface $request
     ) {
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php b/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
index faf0bdf9838..d9ac94ddbe7 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Theme/Plugin/RegistrationTest.php
@@ -35,30 +35,30 @@ class RegistrationTest extends \PHPUnit_Framework_TestCase
         $this->appState = $this->getMock('Magento\Framework\App\State', [], [], '', false);
     }
 
-    public function testBeforeDispatch()
+    public function testBeforeExecute()
     {
         $this->appState->expects($this->once())->method('getMode')->willReturn('default');
         $this->themeRegistration->expects($this->once())->method('register');
         $this->logger->expects($this->never())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 
-    public function testBeforeDispatchWithProductionMode()
+    public function testBeforeExecuteWithProductionMode()
     {
         $this->appState->expects($this->once())->method('getMode')->willReturn('production');
         $this->themeRegistration->expects($this->never())->method('register');
         $this->logger->expects($this->never())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 
-    public function testBeforeDispatchWithException()
+    public function testBeforeExecuteWithException()
     {
         $exception = new LocalizedException(new Phrase('Phrase'));
         $this->themeRegistration->expects($this->once())->method('register')->willThrowException($exception);
         $this->logger->expects($this->once())->method('critical');
         $object = new Registration($this->themeRegistration, $this->logger, $this->appState);
-        $object->beforeDispatch($this->abstractAction, $this->request);
+        $object->beforeExecute($this->abstractAction, $this->request);
     }
 }
diff --git a/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php b/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
index 19502e3d794..052e4679027 100644
--- a/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
+++ b/app/code/Magento/Weee/Model/App/Action/ContextPlugin.php
@@ -100,7 +100,7 @@ class ContextPlugin
      * @SuppressWarnings(PHPMD.NPathComplexity)
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php b/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
index d910384f79e..5f771f2748e 100644
--- a/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
+++ b/app/code/Magento/Weee/Test/Unit/App/Action/ContextPluginTest.php
@@ -123,7 +123,7 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testAroundDispatchBasedOnDefault()
+    public function testAroundExecuteBasedOnDefault()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -191,10 +191,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnOrigin()
+    public function testAroundExecuteBasedOnOrigin()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -223,10 +223,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnBilling()
+    public function testAroundExecuteBasedOnBilling()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -298,10 +298,10 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 
-    public function testAroundDispatchBasedOnShipping()
+    public function testAroundExecuteBasedOnShipping()
     {
         $this->customerSessionMock->expects($this->once())
             ->method('isLoggedIn')
@@ -373,6 +373,6 @@ class ContextPluginTest extends \PHPUnit_Framework_TestCase
         $proceed = function ($request) use ($expectedResult) {
             return $expectedResult;
         };
-        $this->contextPlugin->aroundDispatch($action, $proceed, $request);
+        $this->contextPlugin->aroundExecute($action, $proceed, $request);
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Plugin.php b/app/code/Magento/Wishlist/Controller/Index/Plugin.php
index 3f179a2e9a6..10e6cdd0b0c 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Plugin.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Plugin.php
@@ -60,7 +60,7 @@ class Plugin
      * @return void
      * @throws \Magento\Framework\Exception\NotFoundException
      */
-    public function beforeDispatch(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
+    public function beforeExecute(\Magento\Framework\App\ActionInterface $subject, RequestInterface $request)
     {
         if ($this->authenticationState->isEnabled() && !$this->customerSession->authenticate()) {
             $subject->getActionFlag()->set('', 'no-dispatch', true);
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
index 4c905abca28..011eb067e36 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/PluginTest.php
@@ -66,7 +66,7 @@ class PluginTest extends \PHPUnit_Framework_TestCase
     /**
      * @expectedException \Magento\Framework\Exception\NotFoundException
      */
-    public function testBeforeDispatch()
+    public function testBeforeExecute()
     {
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', [], [], '', false);
         $indexController = $this->getMock('Magento\Wishlist\Controller\Index\Index', [], [], '', false);
@@ -124,6 +124,6 @@ class PluginTest extends \PHPUnit_Framework_TestCase
             ->with('wishlist/general/active')
             ->willReturn(false);
 
-        $this->getPlugin()->beforeDispatch($indexController, $this->request);
+        $this->getPlugin()->beforeExecute($indexController, $this->request);
     }
 }
diff --git a/lib/internal/Magento/Framework/App/Action/Plugin/Design.php b/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
index 5bb0556fe64..3d2f794ad14 100644
--- a/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
+++ b/lib/internal/Magento/Framework/App/Action/Plugin/Design.php
@@ -30,7 +30,7 @@ class Design
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function aroundDispatch(
+    public function aroundExecute(
         \Magento\Framework\App\ActionInterface $subject,
         \Closure $proceed,
         \Magento\Framework\App\RequestInterface $request
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
index 2e86c5da431..401e9896155 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Action/Plugin/DesignTest.php
@@ -7,7 +7,7 @@ namespace Magento\Framework\App\Test\Unit\Action\Plugin;
 
 class DesignTest extends \PHPUnit_Framework_TestCase
 {
-    public function testAroundDispatch()
+    public function testAroundExecute()
     {
         $subjectMock = $this->getMock('Magento\Framework\App\Action\Action', [], [], '', false);
         $designLoaderMock = $this->getMock('Magento\Framework\View\DesignLoader', [], [], '', false);
@@ -17,6 +17,6 @@ class DesignTest extends \PHPUnit_Framework_TestCase
         $requestMock = $this->getMock('Magento\Framework\App\RequestInterface');
         $plugin = new \Magento\Framework\App\Action\Plugin\Design($designLoaderMock);
         $designLoaderMock->expects($this->once())->method('load');
-        $this->assertEquals('Expected', $plugin->aroundDispatch($subjectMock, $closureMock, $requestMock));
+        $this->assertEquals('Expected', $plugin->aroundExecute($subjectMock, $closureMock, $requestMock));
     }
 }
-- 
GitLab


From 4fda69b73e93e2f044fda1483a68a2a39e0a6f19 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Fri, 23 Oct 2015 22:59:34 -0500
Subject: [PATCH 102/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Module/Di/App/Task/Operation/ApplicationCodeGenerator.php   | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index dfaf5b99570..b18f413fb68 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -36,6 +36,8 @@ class ApplicationCodeGenerator implements OperationInterface
 
     /**
      * @param ClassesScanner $classesScanner
+     * @param PhpScanner $phpScanner
+     * @param DirectoryScanner $directoryScanner
      * @param array $data
      */
     public function __construct(
-- 
GitLab


From 29e5e06779b431139d2191184ffdd74ef71b4a1c Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sat, 24 Oct 2015 11:18:16 +0300
Subject: [PATCH 103/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php       | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
index 5757bf446e6..00c89a9adbe 100644
--- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
@@ -139,6 +139,7 @@ class DataGrid extends Grid
         if ($chipsHolder->isVisible()) {
             parent::resetFilter();
         }
+        $this->waitLoader();
     }
 
     /**
-- 
GitLab


From bbdde4b959e62ba8b94b9864bee24ceeaadc69eb Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sat, 24 Oct 2015 12:47:56 +0300
Subject: [PATCH 104/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../Adminhtml/Product/Edit/Tab/Super/Config.php  | 16 ++++++++++++----
 .../Product/Edit/Tab/Super/Config/Attribute.php  |  2 ++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
index 846c920cd94..4d3ffcde950 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config.php
@@ -60,14 +60,21 @@ class Config extends Tab
      *
      * @var string
      */
-    protected $attributeElement = '.entry-edit.have-price';
+    protected $attributeElement = 'tr[data-row-number]';
 
     /**
      * Delete variation button selector.
      *
      * @var string
      */
-    protected $deleteVariationButton = '.action-delete';
+    protected $deleteVariation = '[data-bind*="removeProduct"]';
+
+    /**
+     * Action menu
+     *
+     * @var string
+     */
+    protected $actionMenu = '.action-select';
 
     /**
      * Variations content selector.
@@ -199,9 +206,10 @@ class Config extends Tab
     public function deleteAttributes()
     {
         $attributeElements = $this->_rootElement->getElements($this->attributeElement);
-        $this->_rootElement->find($this->variationsContent)->click();
         foreach (array_reverse($attributeElements) as $element) {
-            $element->find($this->deleteVariationButton)->click();
+            $element->find($this->actionMenu)->hover();
+            $element->find($this->actionMenu)->click();
+            $element->find($this->deleteVariation)->click();
         }
     }
 }
diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
index f8bd1fd052c..eefb72a17d6 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
@@ -272,6 +272,7 @@ class Attribute extends Form
             $label = isset($option['admin']) ? $option['admin'] : $option['label'];
             $optionContainer = $attributeBlock->find(sprintf($this->attributeOptionByName, $label));
 
+            //Create option
             if (!$optionContainer->isVisible()) {
                 $mapping = $this->dataMapping($option);
                 $attributeBlock->find($this->addOption)->click();
@@ -282,6 +283,7 @@ class Attribute extends Form
                     ->setValue($mapping['label']['value']);
                 $this->getTemplateBlock()->waitLoader();
                 $optionContainer->find('[data-action=save]')->click();
+                $optionContainer = $attributeBlock->find(sprintf($this->attributeOptionByName, $label));
             }
             //Select option
             if (!$optionContainer->find('[type="checkbox"]')->isSelected()) {
-- 
GitLab


From 192144cad4f7291d9002b0faebf5a14f8f1862b5 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Sat, 24 Oct 2015 14:45:52 +0300
Subject: [PATCH 105/162] MAGETWO-44432: [GITHUB] Manage stock on Product level
 --> Use Config Settings is never checked by default #2141

---
 .../Block/Adminhtml/Form/Field/Stock.php               | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php b/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
index 7ae7f318a2f..b65a601444c 100644
--- a/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
+++ b/app/code/Magento/CatalogInventory/Block/Adminhtml/Form/Field/Stock.php
@@ -188,6 +188,7 @@ class Stock extends \Magento\Framework\Data\Form\Element\Select
                                 '{$inStockFieldId}': 'inventory_stock_availability'
                             };
 
+                        var qtyDefaultValue = qty.val();
                         var disabler = function(event) {
                             if (typeof(event) === 'undefined') {
                                 return;
@@ -197,8 +198,13 @@ class Stock extends \Magento\Framework\Data\Form\Element\Select
                             if (stockBeforeDisable.result !== false) {
                                 var manageStockValue = {$isNewProduct}
                                     ? (qty.val() === '' ? 0 : 1)
-                                    : parseInt(manageStockField.val()),
-                                    stockAssociations = $('#' + fieldsAssociations['{$inStockFieldId}']);
+                                    : parseInt(manageStockField.val());
+                                if ({$isNewProduct} && qtyDefaultValue !== null && qtyDefaultValue === qty.val()) {
+                                    manageStockValue = parseInt(manageStockField.val());
+                                } else {
+                                    qtyDefaultValue = null;
+                                }
+                                var stockAssociations = $('#' + fieldsAssociations['{$inStockFieldId}']);
                                 stockAvailabilityField.prop('disabled', !manageStockValue);
                                 stockAssociations.prop('disabled', !manageStockValue);
                                 if ($(event.currentTarget).attr('id') === qty.attr('id') && event.type != 'change') {
-- 
GitLab


From 3b0e30ee16f40f9cffc926f3932c19631af1fd0f Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 08:13:31 -0500
Subject: [PATCH 106/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix unit test failures
---
 .../Directpost/Payment/RedirectTest.php       | 17 +++++++----
 .../Adminhtml/Cache/CleanMediaTest.php        |  5 ++--
 .../Adminhtml/Dashboard/AbstractTestCase.php  |  4 +--
 .../Adminhtml/Dashboard/CustomersMostTest.php |  2 +-
 .../Dashboard/CustomersNewestTest.php         |  2 +-
 .../Dashboard/ProductsViewedTest.php          |  2 +-
 .../Controller/Creditcard/AjaxSaveTest.php    | 11 ++++----
 .../Creditcard/DeleteConfirmTest.php          | 28 +++++++++++--------
 .../Unit/Controller/Creditcard/DeleteTest.php | 23 +++++++--------
 .../Unit/Controller/Creditcard/EditTest.php   | 23 +++++++--------
 .../Controller/Creditcard/GenerateTest.php    | 14 ++++++----
 .../Unit/Controller/Creditcard/IndexTest.php  |  7 +++--
 .../Controller/Creditcard/NewCardTest.php     |  7 +++--
 .../Unit/Controller/Creditcard/SaveTest.php   |  7 +++--
 .../Unit/Controller/MyCreditCardsTest.php     |  8 +++---
 .../Adminhtml/Email/Template/IndexTest.php    |  6 ++--
 .../Test/Unit/Controller/Ipn/IndexTest.php    |  4 +--
 .../Adminhtml/Order/Creditmemo/SaveTest.php   |  6 ++--
 .../Test/Unit/Controller/Index/IndexTest.php  |  5 ++--
 .../Adminhtml/Rate/AjaxLoadTest.php           | 21 ++++++++------
 .../Tax/IgnoreTaxNotificationTest.php         |  7 +++--
 .../System/Design/Theme/GridTest.php          |  6 ++--
 .../App/Test/Unit/FrontControllerTest.php     |  4 +--
 .../App/Test/Unit/Router/ActionListTest.php   |  2 +-
 .../Test/Unit/Controller/Index/IndexTest.php  |  4 +--
 .../Test/Unit/Controller/NorouteTest.php      |  8 +++---
 26 files changed, 128 insertions(+), 105 deletions(-)

diff --git a/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php b/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
index ad7bb7b5c02..ff31be44371 100644
--- a/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
+++ b/app/code/Magento/Authorizenet/Test/Unit/Controller/Adminhtml/Authorizenet/Directpost/Payment/RedirectTest.php
@@ -96,6 +96,11 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
      */
     protected $helperMock;
 
+    /**
+     * @var Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $controller;
+
     protected function setUp()
     {
         $this->directpostSessionMock = $this->getMockBuilder('Magento\Authorizenet\Model\Directpost\Session')
@@ -196,7 +201,7 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testExecuteErrorMsgWithoutCancelOrder()
+    public function testExecuteInternalErrorMsgWithoutCancelOrder()
     {
         $params = ['success' => 0, 'error_msg' => 'Error message'];
         $incrementId = 1;
@@ -238,10 +243,10 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 
-    public function testExecuteErrorMsgWithCancelOrder()
+    public function testExecuteInternalErrorMsgWithCancelOrder()
     {
         $params = ['success' => 0, 'error_msg' => 'Error message', 'x_invoice_num' => 1];
         $incrementId = 1;
@@ -273,10 +278,10 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 
-    public function testExecuteSuccess()
+    public function testExecuteInternalSuccess()
     {
         $params = ['success' => 1, 'controller_action_name' => 'action', 'x_invoice_num' => 1];
         $this->requestMock->expects($this->once())
@@ -307,6 +312,6 @@ class RedirectTest extends \PHPUnit_Framework_TestCase
             ->method('register')
             ->with(Iframe::REGISTRY_KEY);
 
-        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->execute());
+        $this->assertInstanceOf('\Magento\Framework\View\Result\Layout', $this->controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
index 36db725f9a9..1e6619c6f8d 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Cache/CleanMediaTest.php
@@ -10,7 +10,7 @@ namespace Magento\Backend\Test\Unit\Controller\Adminhtml\Cache;
 
 class CleanMediaTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         // Wire object with mocks
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
@@ -62,6 +62,7 @@ class CleanMediaTest extends \PHPUnit_Framework_TestCase
         $context->expects($this->once())->method('getMessageManager')->willReturn($messageManager);
         $context->expects($this->once())->method('getResultFactory')->willReturn($resultFactory);
 
+        /** @var \Magento\Backend\Controller\Adminhtml\Cache\CleanMedia $controller */
         $controller = $helper->getObject(
             'Magento\Backend\Controller\Adminhtml\Cache\CleanMedia',
             [
@@ -90,6 +91,6 @@ class CleanMediaTest extends \PHPUnit_Framework_TestCase
             ->willReturnSelf();
 
         // Run
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
index 986658d7153..3e67b831162 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/AbstractTestCase.php
@@ -19,7 +19,7 @@ class AbstractTestCase extends \PHPUnit_Framework_TestCase
      * @param $controllerName
      * @param $blockName
      */
-    protected function assertExecute($controllerName, $blockName)
+    protected function assertExecuteInternal($controllerName, $blockName)
     {
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $outPut = "data";
@@ -47,7 +47,7 @@ class AbstractTestCase extends \PHPUnit_Framework_TestCase
                 'layoutFactory' => $layoutFactoryMock
             ]
         );
-        $result = $controller->execute();
+        $result = $controller->executeInternal();
         $this->assertInstanceOf('Magento\Framework\Controller\Result\Raw', $result);
     }
 }
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
index bb7cb6ff15e..f60a0fc9307 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersMostTest.php
@@ -15,7 +15,7 @@ class CustomersMostTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\CustomersMost',
             'Magento\Backend\Block\Dashboard\Tab\Customers\Most'
         );
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
index d9fdd7366ef..6d229559e58 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/CustomersNewestTest.php
@@ -15,7 +15,7 @@ class CustomersNewestTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\CustomersNewest',
             'Magento\Backend\Block\Dashboard\Tab\Customers\Newest'
         );
diff --git a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
index 145a8a14077..4efdf2c4edf 100644
--- a/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
+++ b/app/code/Magento/Backend/Test/Unit/Controller/Adminhtml/Dashboard/ProductsViewedTest.php
@@ -15,7 +15,7 @@ class ProductsViewedTest extends AbstractTestCase
 {
     public function testExecute()
     {
-        $this->assertExecute(
+        $this->assertExecuteInternal(
             'Magento\Backend\Controller\Adminhtml\Dashboard\ProductsViewed',
             'Magento\Backend\Block\Dashboard\Tab\Products\Viewed'
         );
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
index 53e070f5843..ff09bdb9e32 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/AjaxSaveTest.php
@@ -88,8 +88,8 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\AjaxSave $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\AjaxSave',
             [
                 'request' => $this->request,
@@ -98,7 +98,7 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 
     /**
@@ -124,7 +124,8 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\AjaxSave $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\AjaxSave',
             [
                 'request' => $this->request,
@@ -134,6 +135,6 @@ class AjaxSaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
index a3047c7cac4..13029d4d144 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteConfirmTest.php
@@ -66,7 +66,7 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts successfully deleted
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card successfully deleted');
@@ -93,7 +93,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addSuccess')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -103,13 +104,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -128,7 +129,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -137,13 +139,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for can't delete card logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('a,b,c');
@@ -172,7 +174,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -182,13 +185,13 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts failed deletion
      */
-    public function testExecuteSaveFail()
+    public function testExecuteInternalSaveFail()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('There was error deleting the credit card');
@@ -214,7 +217,8 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\DeleteConfirm $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\DeleteConfirm',
             [
                 'request' => $this->request,
@@ -224,6 +228,6 @@ class DeleteConfirmTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
index 504c186ad11..76c7fa5b752 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/DeleteTest.php
@@ -106,7 +106,7 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -138,8 +138,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($this->pageConfig);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -148,13 +148,13 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -176,7 +176,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -186,13 +187,13 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for non existing logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card does not exist');
@@ -224,8 +225,8 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Delete $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Delete',
             [
                 'request' => $this->request,
@@ -236,6 +237,6 @@ class DeleteTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
index cd14d718134..7742f863e16 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/EditTest.php
@@ -106,7 +106,7 @@ class EditTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -138,8 +138,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('getConfig')
             ->willReturn($this->pageConfig);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -148,13 +148,13 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirect for non valid token param
      */
-    public function testExecuteNoTokenRedirect()
+    public function testExecuteInternalNoTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
 
@@ -176,7 +176,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('setPath')
             ->willReturnSelf();
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -186,13 +187,13 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts with redirects for non existing logic
      */
-    public function testExecuteNonExistingTokenRedirect()
+    public function testExecuteInternalNonExistingTokenRedirect()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('Credit card does not exist');
@@ -224,8 +225,8 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Edit $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Edit',
             [
                 'request' => $this->request,
@@ -236,6 +237,6 @@ class EditTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
index 40540bb9da8..8f000251d18 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/GenerateTest.php
@@ -72,7 +72,7 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         $this->resultJson->expects($this->once())
@@ -87,7 +87,8 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->willReturn(true);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Generate $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Generate',
             [
                 'request' => $this->request,
@@ -96,13 +97,13 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecuteLocalizedException()
+    public function testExecuteInternalLocalizedException()
     {
         $phrase = new \Magento\Framework\Phrase('Something went wrong while processing.');
         $objectManager = new ObjectManager($this);
@@ -126,7 +127,8 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->willReturn(true);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Generate $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Generate',
             [
                 'request' => $this->request,
@@ -136,6 +138,6 @@ class GenerateTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultJson, $notification->execute());
+        $this->assertSame($this->resultJson, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
index 7f8e3861a48..38e88b0586e 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/IndexTest.php
@@ -86,17 +86,18 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Index $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Index',
             [
                 'resultPageFactory' => $this->resultPageFactory,
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
index ee655fe49b0..23607cc3839 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/NewCardTest.php
@@ -94,7 +94,7 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $customerId = 1;
@@ -103,7 +103,8 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
             ->method('getCustomerId')
             ->willReturn($customerId);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\NewCard $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\NewCard',
             [
                 'resultPageFactory' => $this->resultPageFactory,
@@ -111,6 +112,6 @@ class NewCardTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultPage, $notification->execute());
+        $this->assertSame($this->resultPage, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
index ff42e7e7c6e..512dbb4d07c 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/Creditcard/SaveTest.php
@@ -58,7 +58,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManagerHelper($this);
         $phrase = new \Magento\Framework\Phrase('There was error during saving card data');
@@ -84,7 +84,8 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with($phrase);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Braintree\Controller\Creditcard\Save $controller */
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Controller\Creditcard\Save',
             [
                 'request' => $this->request,
@@ -93,6 +94,6 @@ class SaveTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->execute());
+        $this->assertSame($this->resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php b/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
index 39f70eb0ce2..657d83e1f7a 100644
--- a/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
+++ b/app/code/Magento/Braintree/Test/Unit/Controller/MyCreditCardsTest.php
@@ -113,7 +113,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
         $requestInterface= $this->getMockBuilder('\Magento\Framework\App\RequestInterface')
             ->getMock();
 
-        $notification = $objectManager->getObject(
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Test\Unit\Controller\Stub\MyCreditCardsStub',
             [
                 'customerSession' => $this->customerSession,
@@ -123,7 +123,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->resultRedirect, $notification->dispatch($requestInterface));
+        $this->assertSame($this->resultRedirect, $controller->execute($requestInterface));
     }
 
     /**
@@ -156,7 +156,7 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ->getMock();
 
 
-        $notification = $objectManager->getObject(
+        $controller = $objectManager->getObject(
             'Magento\Braintree\Test\Unit\Controller\Stub\MyCreditCardsStub',
             [
                 'customerSession' => $this->customerSession,
@@ -167,6 +167,6 @@ class MyCreditCardsTest extends \PHPUnit_Framework_TestCase
             ]
         );
 
-        $this->assertSame($this->_response, $notification->dispatch($requestInterface));
+        $this->assertSame($this->_response, $controller->execute($requestInterface));
     }
 }
diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
index 974d4c41fc5..027e66b1670 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/IndexTest.php
@@ -120,7 +120,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->prepareExecute();
 
@@ -163,7 +163,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     /**
      * @covers \Magento\Email\Controller\Adminhtml\Email\Template\Index::executeInternal
      */
-    public function testExecuteAjax()
+    public function testExecuteInternalAjax()
     {
         $this->prepareExecute(true);
         $indexController = $this->getMockBuilder('Magento\Email\Controller\Adminhtml\Email\Template\Index')
@@ -176,7 +176,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $indexController->expects($this->once())
             ->method('_forward')
             ->with('grid');
-        $this->assertNull($indexController->execute());
+        $this->assertNull($indexController->executeInternal());
     }
 
     /**
diff --git a/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php b/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
index e3c5c9445e4..e34159f711a 100644
--- a/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
+++ b/app/code/Magento/Paypal/Test/Unit/Controller/Ipn/IndexTest.php
@@ -8,7 +8,7 @@ namespace Magento\Paypal\Test\Unit\Controller\Ipn;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    /** @var Index */
+    /** @var \Magento\Paypal\Controller\Ipn\Index */
     protected $model;
 
     /** @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject */
@@ -44,6 +44,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->request->expects($this->once())->method('getPostValue')->will($this->throwException($exception));
         $this->logger->expects($this->once())->method('critical')->with($this->identicalTo($exception));
         $this->response->expects($this->once())->method('setHttpResponseCode')->with(500);
-        $this->model->execute();
+        $this->model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
index 5549ee7f193..6c0a726a516 100644
--- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/SaveTest.php
@@ -14,7 +14,7 @@ namespace Magento\Sales\Test\Unit\Controller\Adminhtml\Order\Creditmemo;
 class SaveTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo
+     * @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Save
      */
     protected $_controller;
 
@@ -190,7 +190,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->assertInstanceOf(
             'Magento\Backend\Model\View\Result\Redirect',
-            $this->_controller->execute()
+            $this->_controller->executeInternal()
         );
     }
 
@@ -237,7 +237,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase
 
         $this->_setSaveActionExpectationForMageCoreException($data, 'The credit memo\'s total must be positive.');
 
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     /**
diff --git a/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
index 0143601c899..015064b2642 100644
--- a/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Swagger/Test/Unit/Controller/Index/IndexTest.php
@@ -8,7 +8,7 @@ namespace Magento\Swagger\Test\Unit\Controller\Index;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
 
@@ -22,6 +22,7 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $pageConfigMock->expects($this->once())->method('addBodyClass')->with('swagger-section');
         $resultPageFactory->expects($this->once())->method('create');
 
+        /** @var \Magento\Swagger\Controller\Index\Index $model */
         $model = $objectManager->getObject(
             'Magento\Swagger\Controller\Index\Index',
             [
@@ -29,6 +30,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
                 'pageFactory' => $resultPageFactory
             ]
         );
-        $model->execute();
+        $model->executeInternal();
     }
 }
diff --git a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
index 6373e5aa514..ffc15219382 100644
--- a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
+++ b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Rate/AjaxLoadTest.php
@@ -52,7 +52,7 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
     /**
      * Executes the controller action and asserts non exception logic
      */
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $taxRateId=1;
         $returnArray=[
@@ -120,7 +120,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -132,14 +133,14 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
 
 
         // No exception thrown
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
 
     }
 
     /**
      * Check if validation throws a localized catched exception in case of incorrect id
      */
-    public function testExecuteLocalizedException()
+    public function testExecuteInternalLocalizedException()
     {
         $taxRateId=999;
         $exceptionMessage='No such entity with taxRateId = '.$taxRateId;
@@ -173,7 +174,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -183,13 +185,13 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
         );
 
         //exception thrown with catch
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
     }
 
     /**
      * Check if validation throws a localized catched exception in case of incorrect id
      */
-    public function testExecuteException()
+    public function testExecuteInternalException()
     {
         $taxRateId=999;
         $exceptionMessage=__('An error occurred while loading this tax rate.');
@@ -223,7 +225,8 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
             ->with(\Magento\Framework\Controller\ResultFactory::TYPE_JSON)
             ->willReturn($jsonObject);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Rate\AjaxLoad',
             [
                 'taxRateRepository' => $this->taxRateRepository,
@@ -233,6 +236,6 @@ class AjaxLoadTest extends \PHPUnit_Framework_TestCase
         );
 
         //exception thrown with catch
-        $this->assertSame($jsonObject, $notification->execute());
+        $this->assertSame($jsonObject, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
index cb3b6df2972..88656b9e4da 100644
--- a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
+++ b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
@@ -10,7 +10,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 
 class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         $cacheTypeList = $this->getMockBuilder('\Magento\Framework\App\Cache\TypeList')
@@ -63,7 +63,8 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
             ->method('get')
             ->willReturn($config);
 
-        $notification = $objectManager->getObject(
+        /** @var \Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification $controller */
+        $controller = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification',
             [
                 'objectManager' => $manager,
@@ -74,6 +75,6 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
         );
 
         // No exception thrown
-        $this->assertSame($resultRedirect, $notification->execute());
+        $this->assertSame($resultRedirect, $controller->executeInternal());
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
index 850e4d09d11..e15f4b66d8e 100644
--- a/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Controller/Adminhtml/System/Design/Theme/GridTest.php
@@ -35,7 +35,7 @@ class GridTest extends \PHPUnit_Framework_TestCase
     protected $view;
 
     /**
-     * @var Delete
+     * @var Grid
      */
     protected $controller;
 
@@ -70,13 +70,13 @@ class GridTest extends \PHPUnit_Framework_TestCase
         );
     }
 
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->view->expects($this->once())
             ->method('loadLayout')
             ->with(false);
         $this->view->expects($this->once())
             ->method('renderLayout');
-        $this->controller->execute();
+        $this->controller->executeInternal();
     }
 }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php b/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
index c87ab7af120..dc4f0b0c7c3 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/FrontControllerTest.php
@@ -82,7 +82,7 @@ class FrontControllerTest extends \PHPUnit_Framework_TestCase
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $controllerInstance = $this->getMock('Magento\Framework\App\ActionInterface');
         $controllerInstance->expects($this->any())
-            ->method('dispatch')
+            ->method('execute')
             ->with($this->request)
             ->will($this->returnValue($response));
         $this->router->expects($this->at(0))
@@ -114,7 +114,7 @@ class FrontControllerTest extends \PHPUnit_Framework_TestCase
         $response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $controllerInstance = $this->getMock('Magento\Framework\App\ActionInterface');
         $controllerInstance->expects($this->any())
-            ->method('dispatch')
+            ->method('execute')
             ->with($this->request)
             ->will($this->returnValue($response));
         $this->router->expects($this->at(0))
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
index adeccfb1701..48c6ad840f3 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Router/ActionListTest.php
@@ -112,7 +112,7 @@ class ActionListTest extends \PHPUnit_Framework_TestCase
         $mockClassName = 'Mock_Action_Class';
         $actionClass = $this->getMockClass(
             'Magento\Framework\App\ActionInterface',
-            ['dispatch', 'getResponse'],
+            ['execute', 'getResponse'],
             [],
             $mockClassName
         );
diff --git a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
index aac2c071fb0..b1a3be4984b 100644
--- a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
@@ -9,7 +9,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $objectManager = new ObjectManager($this);
         /**
@@ -19,6 +19,6 @@ class IndexTest extends \PHPUnit_Framework_TestCase
 
         // The execute method is empty and returns void, just calling to verify
         // the method exists and does not throw an exception
-        $controller->execute();
+        $controller->executeInternal();
     }
 }
diff --git a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
index eabedc51f1b..1ad67c8f366 100644
--- a/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
@@ -8,7 +8,7 @@ namespace Magento\Framework\Controller\Test\Unit\Controller;
 class NorouteTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Framework\Controller\Noroute
+     * @var \Magento\Framework\Controller\Noroute\Index
      */
     protected $_controller;
 
@@ -53,7 +53,7 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         $this->_statusMock->expects($this->any())->method('getLoaded')->will($this->returnValue(false));
         $this->_viewMock->expects($this->once())->method('loadLayout')->with(['default', 'noroute']);
         $this->_viewMock->expects($this->once())->method('renderLayout');
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testIndexActionWhenStatusLoaded()
@@ -77,7 +77,7 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue($this->_requestMock)
         );
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 
     public function testIndexActionWhenStatusNotInstanceofMagentoObject()
@@ -91,6 +91,6 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         )->will(
             $this->returnValue('string')
         );
-        $this->_controller->execute();
+        $this->_controller->executeInternal();
     }
 }
-- 
GitLab


From 489db080e3b8843d1813d13c32c811cbce34ce1e Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 08:17:47 -0500
Subject: [PATCH 107/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix API tests affected by the change of method names
---
 .../_files/Magento/TestModule1/Controller/CookieTester.php      | 2 +-
 .../TestModule1/Controller/CookieTester/DeleteCookie.php        | 2 +-
 .../TestModule1/Controller/CookieTester/SetPublicCookie.php     | 2 +-
 .../TestModule1/Controller/CookieTester/SetSensitiveCookie.php  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index 906504d782e..d95d32a8443 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -61,7 +61,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      * @param RequestInterface $request
      * @return mixed
      */
-    abstract protected function execute(RequestInterface $request);
+    abstract protected function executeInternal(RequestInterface $request);
 
     /**
      * Dispatch request
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
index 0baf5fdce98..755aae0f061 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/DeleteCookie.php
@@ -16,7 +16,7 @@ class DeleteCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $cookieName = $request->getParam('cookie_name');
         $this->getCookieManager()->deleteCookie($cookieName);
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
index 6583b3bad16..da6cde29dcd 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetPublicCookie.php
@@ -16,7 +16,7 @@ class SetPublicCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $publicCookieMetadata = $this->getCookieMetadataFactory()->createPublicCookieMetadata();
 
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
index 74ea42b69bc..cf8cfd054c4 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester/SetSensitiveCookie.php
@@ -16,7 +16,7 @@ class SetSensitiveCookie extends \Magento\TestModule1\Controller\CookieTester
      *
      * @return void
      */
-    public function execute(RequestInterface $request)
+    public function executeInternal(RequestInterface $request)
     {
         $sensitiveCookieMetadata = $this->getCookieMetadataFactory()->createSensitiveCookieMetadata();
 
-- 
GitLab


From 45421a5f25fbe26ab79b5cc9cfbd968bb4a25985 Mon Sep 17 00:00:00 2001
From: Igor Miniailo <iminiailo@ebay.com>
Date: Sat, 24 Oct 2015 16:29:40 +0300
Subject: [PATCH 108/162] MAGETWO-44274: SQL error appears if Save & Duplicate
 product with images

---
 .../Model/ResourceModel/Product/Attribute/Backend/Media.php     | 2 --
 1 file changed, 2 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
index 2f8c5e37afe..96fa2009c64 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php
@@ -333,8 +333,6 @@ class Media extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
         );
 
         foreach ($this->getConnection()->fetchAll($select) as $row) {
-            unset($row['record_id']);
-            $row['entity_id'] = $newProductId;
             $row['value_id'] = $valueIdMap[$row['value_id']];
             unset($row['record_id']);
             $this->insertGalleryValueInStore($row);
-- 
GitLab


From eb2a9b0ab76a17f58b0c3076f78f186aec92576e Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Sat, 24 Oct 2015 09:59:51 -0500
Subject: [PATCH 109/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix test failures
---
 .../Unit/Controller/Adminhtml/Indexer/ListActionTest.php     | 1 +
 .../_files/Magento/TestModule1/Controller/CookieTester.php   | 2 +-
 .../Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php  | 5 +++--
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
index d3817ffe99d..57364ec6060 100644
--- a/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Controller/Adminhtml/Indexer/ListActionTest.php
@@ -60,6 +60,7 @@ class ListActionTest extends \PHPUnit_Framework_TestCase
 
     /**
      * Set up test
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     protected function setUp()
     {
diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
index d95d32a8443..986be8b00f5 100644
--- a/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
+++ b/dev/tests/api-functional/_files/Magento/TestModule1/Controller/CookieTester.php
@@ -71,7 +71,7 @@ abstract class CookieTester implements \Magento\Framework\App\ActionInterface
      */
     public function execute(RequestInterface $request)
     {
-        $result = $this->execute($request);
+        $result = $this->executeInternal($request);
         return $result ? $result : $this->_response;
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php b/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
index 85b65644004..d970637f418 100644
--- a/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Authorizenet/Controller/Adminhtml/Authorizenet/Directpost/Payment/PlaceTest.php
@@ -13,7 +13,7 @@ class PlaceTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
     /**
      * Test requestToAuthorizenetData returning
      */
-    public function testExecuteAuthorizenetDataReturning()
+    public function testExecuteInternalAuthorizenetDataReturning()
     {
         $requestToAuthorizenetData = ['Authorizenet' => 'data'];
 
@@ -56,11 +56,12 @@ class PlaceTest extends \Magento\TestFramework\TestCase\AbstractBackendControlle
             ]
         );
 
+        /** @var \Magento\Authorizenet\Controller\Adminhtml\Authorizenet\Directpost\Payment\PlaceTesting $controller */
         $controller = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Authorizenet\Controller\Adminhtml\Authorizenet\Directpost\Payment\PlaceTesting',
             ['context' => $context]
         );
-        $controller->execute();
+        $controller->executeInternal();
         $this->assertContains(json_encode($requestToAuthorizenetData), $this->getResponse()->getBody());
     }
 
-- 
GitLab


From a7757306d5ce9586805bcc0ab947cd4954619a5f Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Sun, 25 Oct 2015 00:06:14 +0300
Subject: [PATCH 110/162] PV-5: Fix Integrity tests

---
 .../Magento/Test/Integrity/Theme/XmlFilesTest.php     | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
index 95a9bb0d8cb..7e7319fb537 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
@@ -15,13 +15,12 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testViewConfigFile($file)
     {
-        $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
-            'Magento\Framework\View\Xsd\Reader'
-        );
-        $mergeXsd = $reader->read();
         $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
-        $errors = [];
-        $result = $domConfig->validate($mergeXsd, $errors);
+        $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
+        $result = $domConfig->validate(
+            $urnResolver->getRealPath('urn:magento:framework:Config/etc/view.xsd'),
+            $errors
+        );
         $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
     }
 
-- 
GitLab


From 4455274fd7a632f05079eb8da79a5335ca4996d7 Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sun, 25 Oct 2015 10:08:22 +0200
Subject: [PATCH 111/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../Edit/Tab/Super/Config/Attribute.php       | 19 +++++++++++++++----
 .../Ui/Test/Block/Adminhtml/DataGrid.php      |  4 ++--
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
index de619baa251..15255001d1b 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
@@ -160,16 +160,27 @@ class Attribute extends Form
      */
     public function fillAttributes(array $attributes)
     {
+        $attributesFilters = [];
         foreach ($attributes as $attribute) {
             if (empty($attribute['attribute_id'])) {
                 $this->createNewVariationSet($attribute);
             }
+            $attributesFilters[] = ['frontend_label' => $attribute['frontend_label']];
         }
 
-        foreach ($attributes as $attribute) {
-            $this->getAttributesGrid()->searchAndSelect(['frontend_label' => $attribute['frontend_label']]);
-            $this->browser->find($this->nextButton)->click();
-            $this->getTemplateBlock()->waitLoader();
+        //select attributes
+        $this->getAttributesGrid()->resetFilter();
+        if ($this->_rootElement->find('[class$=no-data]')->isVisible()) {
+            return;
+        }
+        $this->getAttributesGrid()->selectItems($attributesFilters);
+
+        $this->browser->find($this->nextButton)->click();
+        $this->getTemplateBlock()->waitLoader();
+
+        //update attributes options
+        foreach ($attributes as $attribute)
+        {
             $this->updateOptions($attribute);
         }
 
diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
index 2dbf54a4354..849b1d7a3f4 100644
--- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
+++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php
@@ -286,7 +286,7 @@ class DataGrid extends Grid
      * @return void
      * @throws \Exception
      */
-    protected function selectItems(array $items)
+    public function selectItems(array $items)
     {
         $this->sortGridByField('ID');
         foreach ($items as $item) {
@@ -294,7 +294,7 @@ class DataGrid extends Grid
             $this->waitLoader();
             $selectItem = $this->getRow($item)->find($this->selectItem);
             do {
-                if ($selectItem->isVisible()) {
+                if ($selectItem->isVisible() && !$selectItem->isSelected()) {
                     $selectItem->click();
                     break;
                 }
-- 
GitLab


From 66b85694e59a2918f46fa325c1341beee0dd7c6a Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sun, 25 Oct 2015 10:14:44 +0200
Subject: [PATCH 112/162] MAGETWO-44516: Provide fix for Functional Tests MX

---
 .../Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php      | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
index 15255001d1b..4f1aa888773 100644
--- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
+++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/Edit/Tab/Super/Config/Attribute.php
@@ -179,8 +179,7 @@ class Attribute extends Form
         $this->getTemplateBlock()->waitLoader();
 
         //update attributes options
-        foreach ($attributes as $attribute)
-        {
+        foreach ($attributes as $attribute) {
             $this->updateOptions($attribute);
         }
 
-- 
GitLab


From 9ff1783f32e166749b4a0399fe36302b3b53431b Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sun, 25 Oct 2015 11:54:01 +0200
Subject: [PATCH 113/162] MAGETWO-44159: Configurable product price in store
 front doesn't reflect price change from backend

---
 .../Magento/ConfigurableProduct/Api/ProductRepositoryTest.php    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/ProductRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/ProductRepositoryTest.php
index e8719f6f4e2..21f313bcf0c 100644
--- a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/ProductRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/ProductRepositoryTest.php
@@ -126,7 +126,6 @@ class ProductRepositoryTest extends WebapiAbstract
 
         $response = $this->createConfigurableProduct();
         $this->assertEquals(self::CONFIGURABLE_PRODUCT_SKU, $response[ProductInterface::SKU]);
-        $this->assertEquals(50, $response['price']);
         $this->assertTrue(
             isset($response[ExtensibleDataInterface::EXTENSION_ATTRIBUTES_KEY]["configurable_product_options"])
         );
-- 
GitLab


From 74296a2f2c0e07fb4a591d473f741b3f5715920f Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Sun, 25 Oct 2015 14:38:07 +0200
Subject: [PATCH 114/162] MAGETWO-44432: [GITHUB] Manage stock on Product level
 --> Use Config Settings is never checked by default #2141

---
 .../Bundle/Test/TestCase/CreateBundleProductEntityTest.xml     | 2 --
 .../Test/TestCase/Product/CreateSimpleProductEntityTest.xml    | 1 -
 .../Test/TestCase/CreateDownloadableProductEntityTest.xml      | 3 ++-
 .../Test/TestCase/UpdateDownloadableProductEntityTest.xml      | 1 -
 4 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
index b18d964c212..5fa78fb4247 100644
--- a/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/TestCase/CreateBundleProductEntityTest.xml
@@ -149,8 +149,6 @@
             <data name="product/data/weight" xsi:type="string">10</data>
             <data name="product/data/category" xsi:type="string">category_%isolation%</data>
             <data name="product/data/price_view" xsi:type="string">Price Range</data>
-            <data name="product/data/stock_data/use_config_manage_stock" xsi:type="string">No</data>
-            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
             <data name="product/data/shipment_type" xsi:type="string">Together</data>
             <data name="product/data/bundle_selections/dataset" xsi:type="string">with_not_required_options</data>
             <data name="product/data/bundle_selections/products" xsi:type="string">catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar|catalogProductSimple::product_100_dollar,catalogProductVirtual::product_50_dollar</data>
diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
index 97aee8c72ce..3741b987951 100644
--- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Product/CreateSimpleProductEntityTest.xml
@@ -441,7 +441,6 @@
             <data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
             <data name="product/data/sku" xsi:type="string">simple_sku_%isolation%</data>
             <data name="product/data/price/value" xsi:type="string">10</data>
-            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
             <data name="product/data/stock_data/qty" xsi:type="string">1</data>
             <data name="tag" xsi:type="string">test_type:acceptance_test</data>
             <constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
index 89234e4b9a1..5874e8b5074 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/CreateDownloadableProductEntityTest.xml
@@ -10,6 +10,8 @@
         <variation name="CreateDownloadableProductEntityTestVariation1" summary="Create Downloadable Product with Required Fields Only and Assign it to the Category" ticketId="MAGETWO-13595">
             <data name="product/data/name" xsi:type="string">DownloadableProduct_%isolation%</data>
             <data name="product/data/sku" xsi:type="string">DownloadableProduct_%isolation%</data>
+            <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">10</data>
+            <data name="product/data/quantity_and_stock_status/is_in_stock" xsi:type="string">In Stock</data>
             <data name="product/data/price/value" xsi:type="string">1</data>
             <data name="product/data/category" xsi:type="string">category %isolation%</data>
             <data name="product/data/downloadable_links/dataset" xsi:type="string">one_separately_link</data>
@@ -128,7 +130,6 @@
             <data name="product/data/tax_class_id/dataset" xsi:type="string">taxable_goods</data>
             <data name="product/data/product_has_weight" xsi:type="string">No</data>
             <data name="product/data/category" xsi:type="string">Default Category</data>
-            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
             <data name="product/data/stock_data/qty" xsi:type="string">123</data>
             <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
             <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
diff --git a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
index 8a5230fce71..45fa48eb78c 100644
--- a/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Downloadable/Test/TestCase/UpdateDownloadableProductEntityTest.xml
@@ -54,7 +54,6 @@
             <data name="product/data/quantity_and_stock_status/qty" xsi:type="string">123</data>
             <data name="product/data/product_has_weight" xsi:type="string">No</data>
             <data name="product/data/category" xsi:type="string">Default Category</data>
-            <data name="product/data/stock_data/manage_stock" xsi:type="string">Yes</data>
             <data name="product/data/stock_data/use_config_min_qty" xsi:type="string">No</data>
             <data name="product/data/stock_data/min_qty" xsi:type="string">123</data>
             <data name="isRequired" xsi:type="string">No</data>
-- 
GitLab


From 6aac527a0e1354fc0d5648ebbab3f6ff881e400f Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Sun, 25 Oct 2015 14:47:40 -0500
Subject: [PATCH 115/162] MAGETWO-44470: clear generated files in CLI framework
  - fixed CR comments

---
 setup/src/Magento/Setup/Console/CompilerPreparation.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/CompilerPreparation.php b/setup/src/Magento/Setup/Console/CompilerPreparation.php
index 23e796bfcec..adfefd3db07 100644
--- a/setup/src/Magento/Setup/Console/CompilerPreparation.php
+++ b/setup/src/Magento/Setup/Console/CompilerPreparation.php
@@ -35,8 +35,7 @@ class CompilerPreparation
         \Zend\ServiceManager\ServiceManager $serviceManager,
         \Symfony\Component\Console\Input\ArgvInput $input,
         \Magento\Framework\Filesystem\Driver\File $filesystemDriver
-    )
-    {
+    ) {
         $this->serviceManager   = $serviceManager;
         $this->input            = $input;
         $this->filesystemDriver = $filesystemDriver;
@@ -46,6 +45,7 @@ class CompilerPreparation
      * Determine whether a CLI command is for compilation, and if so, clear the directory
      *
      * @throws \Magento\Framework\Exception\FileSystemException
+     * @return void
      */
     public function handleCompilerEnvironment()
     {
-- 
GitLab


From 5d7d0bc7d16e53d2258b9f147405c8f94e6c4e56 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 00:02:31 -0500
Subject: [PATCH 116/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Magento/Setup/Console/Command/DiCompileCommand.php   | 6 ++++--
 .../Di/App/Task/Operation/ApplicationCodeGenerator.php   | 5 ++++-
 .../Module/Di/App/Task/Operation/ProxyGenerator.php      | 9 ++++++---
 .../Module/Di/App/Task/Operation/RepositoryGenerator.php | 9 ++++++---
 .../Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php  | 1 +
 .../Unit/Module/Di/App/Task/RepositoryGeneratorTest.php  | 3 ++-
 6 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 8540a636d63..9b2b2f5977d 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -296,11 +296,13 @@ class DiCompileCommand extends Command
         $operations = [
             OperationFactory::PROXY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
-                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
-                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/']
+                'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
+                'excludePatterns' => ['/\/Test\//']
             ],
             OperationFactory::DATA_ATTRIBUTES_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
index b18f413fb68..bd66d8e1223 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php
@@ -69,7 +69,10 @@ class ApplicationCodeGenerator implements OperationInterface
             $files = [];
             foreach ($paths as $path) {
                 $this->classesScanner->getList($path);
-                $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns']));
+                $files = array_merge_recursive(
+                    $files,
+                    $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+                );
             }
             $entities = $this->phpScanner->collectEntities($files['php']);
             foreach ($entities as $entityName) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
index 38751954c9e..ebfec0635b8 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/ProxyGenerator.php
@@ -48,14 +48,17 @@ class ProxyGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
-            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
         $files = [];
         foreach ($this->data['paths'] as $path) {
-            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+            $files = array_merge_recursive(
+                $files,
+                $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+            );
         }
         $proxies = $this->proxyScanner->collectEntities($files['di']);
         foreach ($proxies as $entityName) {
diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
index cf3c779a3f7..60d11596615 100644
--- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
+++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/RepositoryGenerator.php
@@ -57,8 +57,8 @@ class RepositoryGenerator implements OperationInterface
      */
     public function doOperation()
     {
-        if (array_diff(array_keys($this->data), ['filePatterns', 'paths'])
-            !== array_diff(['filePatterns', 'paths'], array_keys($this->data))) {
+        if (array_diff(array_keys($this->data), ['filePatterns', 'paths', 'excludePatterns'])
+            !== array_diff(['filePatterns', 'paths', 'excludePatterns'], array_keys($this->data))) {
             return;
         }
 
@@ -68,7 +68,10 @@ class RepositoryGenerator implements OperationInterface
         $this->repositoryScanner->setUseAutoload(false);
         $files = [];
         foreach ($this->data['paths'] as $path) {
-            $files = array_merge_recursive($files, $this->directoryScanner->scan($path, $this->data['filePatterns']));
+            $files = array_merge_recursive(
+                $files,
+                $this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
+            );
         }
         $repositories = $this->repositoryScanner->collectEntities($files['di']);
         foreach ($repositories as $entityName) {
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
index 9b78e237db3..c721973f615 100644
--- a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/ProxyGeneratorTest.php
@@ -70,6 +70,7 @@ class ProxyGeneratorTest extends \PHPUnit_Framework_TestCase
         $data = [
             'paths' => ['path/to/app'],
             'filePatterns' => ['di' => 'di.xml'],
+            'excludePatterns' => ['/\/Test\//'],
         ];
         $files = ['di' => []];
         $model = new ProxyGenerator(
diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
index 8b49d60df51..626ccfbe713 100644
--- a/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/App/Task/RepositoryGeneratorTest.php
@@ -16,7 +16,7 @@ class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
      * @var Scanner\DirectoryScanner | \PHPUnit_Framework_MockObject_MockObject
      */
     private $directoryScannerMock;
-    
+
     /**
      * @var Scanner\RepositoryScanner | \PHPUnit_Framework_MockObject_MockObject
      */
@@ -75,6 +75,7 @@ class RepositoryGeneratorTest extends \PHPUnit_Framework_TestCase
         $data = [
             'paths' => ['path/to/app'],
             'filePatterns' => ['di' => 'di.xml'],
+            'excludePatterns' => ['/\/Test\//'],
         ];
         $files = ['di' => []];
         $model = new RepositoryGenerator(
-- 
GitLab


From fe6af12fad2cd3b827a85e79577ccd053747ee8c Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Mon, 26 Oct 2015 12:47:36 +0300
Subject: [PATCH 117/162] Fix bug: Couldn't retrive a remote preview image
 file.

---
 .../Controller/Adminhtml/Product/Gallery/RetrieveImage.php    | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index 5af6d0976dc..9fde09e3163 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -132,7 +132,9 @@ class RetrieveImage extends \Magento\Backend\App\Action
         $this->curl->write('GET', $fileUrl);
         $image = $this->curl->read();
         if (empty($image)) {
-            throw new \InvalidArgumentException(__('Couldn\'t retrive a remote preview image file. Service is inaccessible.'));
+            throw new \Magento\Framework\Exception\LocalizedException(
+                __('Could not get video information. Please check your connection and try again.')
+            );
         }
         $this->fileUtility->saveFile($localFilePath, $image);
     }
-- 
GitLab


From 71e2259d0e82c2272d26b387e620209e8121dcbc Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Fri, 23 Oct 2015 17:55:08 +0300
Subject: [PATCH 118/162] MAGETWO-44514: Products are duplicated in Shopping
 Cart on Storefront

---
 app/code/Magento/Checkout/Model/Cart.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/code/Magento/Checkout/Model/Cart.php b/app/code/Magento/Checkout/Model/Cart.php
index 9cc015b2271..470af073fef 100644
--- a/app/code/Magento/Checkout/Model/Cart.php
+++ b/app/code/Magento/Checkout/Model/Cart.php
@@ -324,6 +324,7 @@ class Cart extends DataObject implements CartInterface
         if (!$request->hasQty()) {
             $request->setQty(1);
         }
+        !$request->hasFormKey() ?: $request->unsFormKey();
 
         return $request;
     }
-- 
GitLab


From 1d6d1ce250921b567ff0b3dcdf17e40a3e4f1def Mon Sep 17 00:00:00 2001
From: Iryna Lagno <ilagno@ebay.com>
Date: Fri, 23 Oct 2015 17:55:28 +0300
Subject: [PATCH 119/162] MAGETWO-44453: Required address attribute is not
 require for checkout flow

---
 .../Checkout/view/frontend/web/js/view/billing-address.js     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
index 4c77250a872..0b3290b3c39 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js
@@ -145,8 +145,8 @@ define(
                 } else {
                     this.source.set('params.invalid', false);
                     this.source.trigger(this.dataScopePrefix + '.data.validate');
-                    if (this.source.get('billingAddress.custom_attributes')) {
-                        this.source.trigger('billingAddress.custom_attributes.data.validate');
+                    if (this.source.get(this.dataScopePrefix + '.custom_attributes')) {
+                        this.source.trigger(this.dataScopePrefix + '.custom_attributes.data.validate');
                     };
 
                     if (!this.source.get('params.invalid')) {
-- 
GitLab


From 97e78c94d30ebc18a005a2c2467178f0b97360dc Mon Sep 17 00:00:00 2001
From: Iryna Lagno <ilagno@ebay.com>
Date: Fri, 23 Oct 2015 18:33:58 +0300
Subject: [PATCH 120/162] MAGETWO-44541: Incorrect currency symbol on Checkout

---
 .../Magento/Checkout/Model/DefaultConfigProvider.php   | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/app/code/Magento/Checkout/Model/DefaultConfigProvider.php b/app/code/Magento/Checkout/Model/DefaultConfigProvider.php
index d0cc39ceaaf..8e59581f351 100644
--- a/app/code/Magento/Checkout/Model/DefaultConfigProvider.php
+++ b/app/code/Magento/Checkout/Model/DefaultConfigProvider.php
@@ -62,11 +62,6 @@ class DefaultConfigProvider implements ConfigProviderInterface
      */
     private $httpContext;
 
-    /**
-     * @var CurrencyManager
-     */
-    private $currencyManager;
-
     /**
      * @var QuoteRepository
      */
@@ -174,7 +169,6 @@ class DefaultConfigProvider implements ConfigProviderInterface
      * @param CustomerSession $customerSession
      * @param CustomerUrlManager $customerUrlManager
      * @param HttpContext $httpContext
-     * @param CurrencyManager $currencyManager
      * @param QuoteRepository $quoteRepository
      * @param QuoteItemRepository $quoteItemRepository
      * @param ShippingMethodManager $shippingMethodManager
@@ -205,7 +199,6 @@ class DefaultConfigProvider implements ConfigProviderInterface
         CustomerSession $customerSession,
         CustomerUrlManager $customerUrlManager,
         HttpContext $httpContext,
-        CurrencyManager $currencyManager,
         QuoteRepository $quoteRepository,
         QuoteItemRepository $quoteItemRepository,
         ShippingMethodManager $shippingMethodManager,
@@ -233,7 +226,6 @@ class DefaultConfigProvider implements ConfigProviderInterface
         $this->customerSession = $customerSession;
         $this->customerUrlManager = $customerUrlManager;
         $this->httpContext = $httpContext;
-        $this->currencyManager = $currencyManager;
         $this->quoteRepository = $quoteRepository;
         $this->quoteItemRepository = $quoteItemRepository;
         $this->shippingMethodManager = $shippingMethodManager;
@@ -282,7 +274,7 @@ class DefaultConfigProvider implements ConfigProviderInterface
         );
         $output['basePriceFormat'] = $this->localeFormat->getPriceFormat(
             null,
-            $this->currencyManager->getDefaultCurrency()
+            $this->checkoutSession->getQuote()->getBaseCurrencyCode()
         );
         $output['postCodes'] = $this->postCodesConfig->getPostCodes();
         $output['imageData'] = $this->imageProvider->getImages($quoteId);
-- 
GitLab


From bb02063a8ceae868a1496cb0d53926842e9b0a66 Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Fri, 23 Oct 2015 20:20:23 +0300
Subject: [PATCH 121/162] MAGETWO-44530: Impossible save value for attribute
 with default entity table

---
 app/code/Magento/Eav/Model/Entity/AbstractEntity.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
index c52d87b51b4..f26e634b865 100644
--- a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
+++ b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php
@@ -1513,7 +1513,7 @@ abstract class AbstractEntity extends AbstractResource implements EntityInterfac
             'value' => $this->_prepareValueForSave($value, $attribute),
         ];
 
-        if (!$this->getEntityTable()) {
+        if (!$this->getEntityTable() || $this->getEntityTable() == \Magento\Eav\Model\Entity::DEFAULT_ENTITY_TABLE) {
             $data['entity_type_id'] = $object->getEntityTypeId();
         }
 
-- 
GitLab


From 755cbd7c24fbf0ca8b59243a9c9fa7c266f0fb56 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Sat, 24 Oct 2015 11:23:24 +0300
Subject: [PATCH 122/162] MAGETWO-40150: Empty space is displayed in Mini
 Shopping Cart where the Product was deleted

---
 .../Checkout/view/frontend/web/js/sidebar.js  | 20 ++++++++++++-------
 .../view/frontend/web/js/view/minicart.js     |  6 ------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index 2600ada8b3c..790d8f721f5 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -10,9 +10,10 @@ define([
     'Magento_Customer/js/customer-data',
     'Magento_Ui/js/modal/alert',
     'Magento_Ui/js/modal/confirm',
+    'Magento_Customer/js/customer-data',
     "jquery/ui",
     "mage/decorate"
-], function($, authenticationPopup, customerData, alert, confirm){
+], function($, authenticationPopup, customerData, alert, confirm, customerData){
 
     $.widget('mage.sidebar', {
         options: {
@@ -21,8 +22,18 @@ define([
         },
         scrollHeight: 0,
 
-        _create: function() {
+        /**
+         * Create sidebar.
+         * @private
+         */
+        _create: function () {
+            var self = this;
+
             this._initContent();
+            customerData.get('cart').subscribe(function () {
+                $(self.options.targetElement).trigger('contentUpdated');
+                self._calcHeight();
+            });
         },
 
         _initContent: function() {
@@ -163,11 +174,6 @@ define([
          * @private
          */
         _removeItemAfter: function(elem, response) {
-            /** TODO: Extra options support. Should be refactored after MAGETWO-43159. */
-            var self = this;
-            setTimeout(function(){
-                self._calcHeight();
-            }, 500);
         },
         /**
          * @param url - ajax url
diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
index 933b5725638..68f02b5d572 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js
@@ -72,12 +72,6 @@ define([
                 this.isLoading(addToCartCalls > 0);
                 sidebarInitialized = false;
                 initSidebar();
-
-                /**TODO: Extra options support. Should be refactored after MAGETWO-43159. */
-                setTimeout(function(){
-                    minicart.trigger('contentUpdated');
-                }, 500);
-
             }, this);
             $('[data-block="minicart"]').on('contentLoading', function(event) {
                 addToCartCalls++;
-- 
GitLab


From 0734ec98ef7f6b4277633072c16ebbce60327815 Mon Sep 17 00:00:00 2001
From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com>
Date: Sat, 24 Oct 2015 15:39:08 +0300
Subject: [PATCH 123/162] MAGETWO-40150: Empty space is displayed in Mini
 Shopping Cart where the Product was deleted

---
 app/code/Magento/Checkout/view/frontend/web/js/sidebar.js | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index 790d8f721f5..b1ec6a75dcb 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -33,6 +33,7 @@ define([
             customerData.get('cart').subscribe(function () {
                 $(self.options.targetElement).trigger('contentUpdated');
                 self._calcHeight();
+                self._isOverflowed();
             });
         },
 
-- 
GitLab


From a9f25d6051e0f6db3592bcc3edcb06f8760582b4 Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Mon, 26 Oct 2015 10:44:56 +0200
Subject: [PATCH 124/162] MAGETWO-39588: store_id value is not honored when
 creating simple product through API in multi-websites / multi-stores setup

---
 .../etc/{adminhtml => }/events.xml            |  0
 .../Store/_files/core_fixturestore.php        | 21 ++++++++++---------
 2 files changed, 11 insertions(+), 10 deletions(-)
 rename app/code/Magento/CatalogSearch/etc/{adminhtml => }/events.xml (100%)

diff --git a/app/code/Magento/CatalogSearch/etc/adminhtml/events.xml b/app/code/Magento/CatalogSearch/etc/events.xml
similarity index 100%
rename from app/code/Magento/CatalogSearch/etc/adminhtml/events.xml
rename to app/code/Magento/CatalogSearch/etc/events.xml
diff --git a/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php b/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
index 730eca1e740..88c3f333e12 100644
--- a/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
+++ b/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
@@ -6,25 +6,26 @@
 
 use Magento\TestFramework\Helper\Bootstrap;
 
+/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
+$storeManager = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface');
+
+/** @var \Magento\Store\Model\Store $store */
 $store = Bootstrap::getObjectManager()->create('Magento\Store\Model\Store');
 $storeCode = 'fixturestore';
-if (!$store->load($storeCode)->getId()) {
-    $websiteId = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')
-        ->getWebsite()
-        ->getId();
-
-    $groupId = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')
-        ->getWebsite()
-        ->getDefaultGroupId();
 
+if (!$store->load($storeCode)->getId()) {
     $store->setCode($storeCode)
-        ->setWebsiteId($websiteId)
-        ->setGroupId($groupId)
+        ->setWebsiteId($storeManager->getWebsite()->getId())
+        ->setGroupId($storeManager->getWebsite()->getDefaultGroupId())
         ->setName('Fixture Store')
         ->setSortOrder(10)
         ->setIsActive(1);
     $store->save();
 
+    Bootstrap::getObjectManager()
+        ->get('Magento\Framework\Event\ManagerInterface')
+        ->dispatch('store_add', ['store' => $store]);
+
     /* Refresh stores memory cache */
     Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')->reinitStores();
 }
-- 
GitLab


From 2cc1116250fbc7dd6a7c1581446c0975f4b097ca Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Mon, 26 Oct 2015 14:26:47 +0300
Subject: [PATCH 125/162] Edit warning failed image upload style

---
 .../adminhtml/web/js/get-video-information.js |  2 +-
 .../view/adminhtml/web/js/new-video-dialog.js | 12 ++++---
 .../web/css/source/_module.less               | 31 +++++++++++++++++++
 3 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
index 06ed1098c8d..76cf3f98771 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
@@ -403,7 +403,7 @@ require([
                             errorsMessage.push(tmpError.message);
                         }
 
-                        return 'Video cannot be shown due to the following reason: ' + $.unique(errorsMessage).join(', ');
+                        return 'Video cant be shown due to the following reason: ' + $.unique(errorsMessage).join(', ');
                     };
 
                     if (data.error && data.error.code === 400) {
diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index e5efb668b51..e16cac8bd00 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -4,14 +4,13 @@
  */
 define([
     'jquery',
-    'Magento_Ui/js/modal/alert',
     'jquery/ui',
     'Magento_Ui/js/modal/modal',
     'mage/translate',
     'mage/backend/tree-suggest',
     'mage/backend/validation',
     'Magento_ProductVideo/js/get-video-information'
-], function ($, alert) {
+], function ($) {
     'use strict';
 
     $.widget('mage.createVideoPlayer', {
@@ -527,10 +526,13 @@ define([
         _onImageLoaded: function (result, file, oldFile, callback) {
             var data = JSON.parse(result);
 
+            if ($('#video_url').parent().find('.image-upload-error').length > 0) {
+                $('.image-upload-error').remove();
+            }
+
             if (data.errorcode || data.error) {
-                alert({
-                    content: data.error
-                });
+                $('#video_url').parent().append('<div class="image-upload-error">' +
+                '<div class="image-upload-error-cross"></div><span>' + data.error + '</span></div>');
 
                 return;
             }
diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
index 7f4e8a590ac..3380e885fd1 100644
--- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
@@ -234,3 +234,34 @@
 .image.base-image:hover .image-label {
     display: none;
 }
+
+.image-upload-error {
+    background: lighten(@color-red9, 80%);
+    color: #303030;
+    font-size: 12px;
+    font-weight: 400;
+    padding: 7px 7px 7px 35px;
+    position: relative;
+    .image-upload-error-cross {
+        position: absolute;
+        left: 8px;
+        top: 9px;
+        width: 20px;
+        height: 20px;
+        &:before,
+        &:after {
+            position: absolute;
+            left: 8px;
+            content: ' ';
+            height: 20px;
+            width: 4px;
+            background-color: @color-red9;
+        }
+        &:before {
+            transform: rotate(45deg);
+        }
+        &:after {
+            transform: rotate(-45deg);
+        }
+    }
+}
-- 
GitLab


From 04c500fcdc77d559b1f9c0da7188f8b2c30489d1 Mon Sep 17 00:00:00 2001
From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com>
Date: Mon, 26 Oct 2015 14:29:15 +0300
Subject: [PATCH 126/162] Edit warning failed image upload style, added vars

---
 .../backend/Magento_ProductVideo/web/css/source/_module.less  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
index 3380e885fd1..1a57d5706f8 100644
--- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less
@@ -236,8 +236,8 @@
 }
 
 .image-upload-error {
-    background: lighten(@color-red9, 80%);
-    color: #303030;
+    background: #F9E1E1;
+    color: @color-gray19;
     font-size: 12px;
     font-weight: 400;
     padding: 7px 7px 7px 35px;
-- 
GitLab


From 3b715e3e1708909c6a635956f71a6dfc3ad20e70 Mon Sep 17 00:00:00 2001
From: Vadim Zubovich <vadim_zubovich@epam.com>
Date: Mon, 26 Oct 2015 14:41:55 +0300
Subject: [PATCH 127/162] PR2-Stabilization: fixed according PR comments from
 Magento team

---
 .../Block/Adminhtml/Product/Edit/NewVideo.php          | 10 ++++------
 .../Adminhtml/Product/Gallery/RetrieveImage.php        |  3 ++-
 .../Model/Plugin/ExternalVideoResourceBackend.php      |  1 -
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
index 0cc9119d506..94249c205fd 100644
--- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
+++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
@@ -25,7 +25,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     /**
      * @var \Magento\Framework\UrlInterface
      */
-    protected $_urlBuilder;
+    protected $urlBuilder;
 
     /**
      * @var \Magento\Framework\Json\EncoderInterface
@@ -35,7 +35,6 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     /**
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\ProductVideo\Helper\Media $mediaHelper
-     * @param \Magento\Framework\UrlInterface $urlBuilder
      * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\Data\FormFactory $formFactory
@@ -44,7 +43,6 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     public function __construct(
         \Magento\Backend\Block\Template\Context $context,
         \Magento\ProductVideo\Helper\Media $mediaHelper,
-        \Magento\Framework\UrlInterface $urlBuilder,
         \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\Data\FormFactory $formFactory,
@@ -52,7 +50,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     ) {
         parent::__construct($context, $registry, $formFactory, $data);
         $this->mediaHelper = $mediaHelper;
-        $this->_urlBuilder = $urlBuilder;
+        $this->urlBuilder = $context->getUrlBuilder();
         $this->jsonEncoder = $jsonEncoder;
         $this->setUseContainer(true);
     }
@@ -273,7 +271,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
         $result = __('YouTube and Vimeo supported.');
         if (is_null($this->mediaHelper->getYouTubeApiKey())) {
             $result = __(
-                'Vimeo supported.<br>'
+                'Vimeo supported.<br />'
                 . 'To add YouTube video, please <a href="%1">enter YouTube API Key</a> first.'
                 ,
                 $this->getConfigApiKeyUrl()
@@ -289,7 +287,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
      */
     protected function getConfigApiKeyUrl()
     {
-        return $this->_urlBuilder->getUrl(
+        return $this->urlBuilder->getUrl(
             'adminhtml/system_config/edit',
             [
                 'section' => 'catalog',
diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index 9fde09e3163..ad6bd76e49f 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -124,7 +124,8 @@ class RetrieveImage extends \Magento\Backend\App\Action
     /**
      * @param string $fileUrl
      * @param string $localFilePath
-     * @return bool|void
+     * @return void
+     * @throws \Magento\Framework\Exception\LocalizedException
      */
     protected function retrieveRemoteImage($fileUrl, $localFilePath)
     {
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
index d8a9f6232e2..089c4149e57 100644
--- a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
+++ b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
@@ -7,7 +7,6 @@
 namespace Magento\ProductVideo\Model\Plugin;
 
 use Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media;
-use Magento\ProductVideo\Setup\InstallSchema;
 
 /**
  * Attribute Media Resource decorator
-- 
GitLab


From 8b13f99228b3f2c3b8122403bd325f36502220c5 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Mon, 26 Oct 2015 15:36:45 +0200
Subject: [PATCH 128/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Removed now used variable
---
 app/code/Magento/CatalogSearch/Model/Advanced.php | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/app/code/Magento/CatalogSearch/Model/Advanced.php b/app/code/Magento/CatalogSearch/Model/Advanced.php
index 277e092dec2..ec96c0deb3a 100644
--- a/app/code/Magento/CatalogSearch/Model/Advanced.php
+++ b/app/code/Magento/CatalogSearch/Model/Advanced.php
@@ -166,7 +166,6 @@ class Advanced extends \Magento\Framework\Model\AbstractModel
     public function addFilters($values)
     {
         $attributes = $this->getAttributes();
-        $hasConditions = false;
         $allConditions = [];
 
         foreach ($attributes as $attribute) {
@@ -225,7 +224,7 @@ class Advanced extends \Magento\Framework\Model\AbstractModel
         if ($allConditions) {
             $this->_registry->register('advanced_search_conditions', $allConditions);
             $this->getProductCollection()->addFieldsToFilter($allConditions);
-        } elseif (!$hasConditions) {
+        } else {
             throw new LocalizedException(__('Please specify at least one search term.'));
         }
 
-- 
GitLab


From a2fa1b1b1804747d5af5c8e25dea37fb9c873a47 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Mon, 26 Oct 2015 15:38:11 +0200
Subject: [PATCH 129/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Fixed bug
---
 .../Magento/CatalogSearch/Model/Advanced/Request/Builder.php   | 2 +-
 .../Magento/CatalogSearch/Model/ResourceModel/Advanced.php     | 2 +-
 lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php    | 2 ++
 lib/internal/Magento/Framework/Search/Request/Cleaner.php      | 3 ++-
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/CatalogSearch/Model/Advanced/Request/Builder.php b/app/code/Magento/CatalogSearch/Model/Advanced/Request/Builder.php
index 5e0eb83f4eb..138916f0767 100644
--- a/app/code/Magento/CatalogSearch/Model/Advanced/Request/Builder.php
+++ b/app/code/Magento/CatalogSearch/Model/Advanced/Request/Builder.php
@@ -27,7 +27,7 @@ class Builder extends RequestBuilder
         } elseif (!is_array($attributeValue)) {
             $this->bind($attributeCode, $attributeValue);
         } elseif (isset($attributeValue['like'])) {
-            $this->bind($attributeCode, trim($attributeValue['like'], '%'));
+            $this->bind($attributeCode, $attributeValue['like']);
         } elseif (isset($attributeValue['in'])) {
             $this->bind($attributeCode, $attributeValue['in']);
         } elseif (isset($attributeValue['in_set'])) {
diff --git a/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php b/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php
index 4dafffbf8df..8f4b8de898f 100644
--- a/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php
+++ b/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php
@@ -81,7 +81,7 @@ class Advanced extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
         } else {
             if (strlen($value) > 0) {
                 if (in_array($attribute->getBackendType(), ['varchar', 'text', 'static'])) {
-                    $condition = ['like' => '%' . $value . '%']; // text search
+                    $condition = ['like' => $value]; // text search
                 } else {
                     $condition = $value;
                 }
diff --git a/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php b/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
index 931939a7899..e64092f508c 100644
--- a/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
+++ b/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
@@ -68,6 +68,8 @@ class Fulltext
 
         $expression = $this->connection->quote($expression);
 
+        $expression = str_replace('%', '\\%', $expression);
+
         $condition = self::MATCH . " ({$columns}) " . self::AGAINST . " ({$expression} {$mode})";
         return $condition;
     }
diff --git a/lib/internal/Magento/Framework/Search/Request/Cleaner.php b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
index 4752b0a3a95..bb54ad8be0d 100644
--- a/lib/internal/Magento/Framework/Search/Request/Cleaner.php
+++ b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
@@ -90,7 +90,8 @@ class Cleaner
                 }
                 break;
             case QueryInterface::TYPE_MATCH:
-                if (preg_match('/\$(.+)\$/si', $query['value'], $matches)) {
+                if (preg_match('/\$(.+)\$/si', $query['value'], $matches)
+                    && !preg_match('/^\$+$/si', $query['value'], $matches)) {
                     unset($this->requestData['queries'][$queryName]);
                 }
                 break;
-- 
GitLab


From 6f44e6ee92d6879b32097552e0add60aadbb43b8 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Mon, 26 Oct 2015 16:19:53 +0200
Subject: [PATCH 130/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Fixed unit tests
---
 .../Test/Unit/Model/Advanced/Request/BuilderTest.php            | 2 +-
 .../Test/Unit/Model/ResourceModel/AdvancedTest.php              | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/Advanced/Request/BuilderTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/Advanced/Request/BuilderTest.php
index 2b7788e245b..0c3377d2b13 100644
--- a/app/code/Magento/CatalogSearch/Test/Unit/Model/Advanced/Request/BuilderTest.php
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/Advanced/Request/BuilderTest.php
@@ -182,7 +182,7 @@ class BuilderTest extends \PHPUnit_Framework_TestCase
         ];
         $this->requestBuilder->bindRequestValue('from_to', ['from' => 10, 'to' => 20]);
         $this->requestBuilder->bindRequestValue('not_array', 130);
-        $this->requestBuilder->bindRequestValue('like', ['like' => '%search_text%']);
+        $this->requestBuilder->bindRequestValue('like', ['like' => 'search_text']);
         $this->requestBuilder->bindRequestValue('in', ['in' => 23]);
         $this->requestBuilder->bindRequestValue('in_set', ['in_set' => [12, 23, 34, 45]]);
         $this->requestBuilder->setRequestName($requestName);
diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/AdvancedTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/AdvancedTest.php
index 94bc0686cd2..93c29b50787 100644
--- a/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/AdvancedTest.php
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/AdvancedTest.php
@@ -54,7 +54,7 @@ class AdvancedTest extends PHPUnit_Framework_TestCase
     {
         return [
             ['string', 'string', 'string'],
-            ['varchar', 'string', ['like' => '%string%']],
+            ['varchar', 'string', ['like' => 'string']],
             ['varchar', ['test'], ['in_set' => ['test']]],
             ['select', ['test'], ['in' => ['test']]],
             ['range', ['from' => 1], ['from' => 1]],
-- 
GitLab


From 155d8790491705d7a5184b273b4e9b23758121f5 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Mon, 26 Oct 2015 18:30:44 +0300
Subject: [PATCH 131/162] Fix position after change preview image

---
 .../view/adminhtml/web/js/new-video-dialog.js | 43 ++++++++++++-------
 1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index e16cac8bd00..afe4296777b 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -424,7 +424,9 @@ define([
          */
         _replaceImage: function (oldFile, newFile, imageData) {
             var tmpNewFile = newFile,
+                tmpOldImage,
                 newImageId,
+                oldNewFilePosition,
                 fc,
                 suff,
                 searchsuff,
@@ -433,6 +435,7 @@ define([
 
             oldFile = this.__prepareFilename(oldFile);
             newFile = this.__prepareFilename(newFile);
+            tmpOldImage = this._images[oldFile];
 
             if (newFile === oldFile) {
                 this._images[newFile] = imageData;
@@ -444,26 +447,36 @@ define([
             this._removeImage(oldFile);
             this._setImage(newFile, imageData);
 
-            if (oldFile && imageData.oldFile) {
-                newImageId = this.findElementId(tmpNewFile);
-                fc = $(this._itemIdSelector).val();
+            if (!oldFile || !imageData.oldFile) {
+                return null;
+            }
 
-                suff = 'product[media_gallery][images]' + fc;
+            newImageId = this.findElementId(tmpNewFile);
+            fc = $(this._itemIdSelector).val();
 
-                searchsuff = 'input[name="' + suff + '[value_id]"]';
-                key = $(searchsuff).val();
+            suff = 'product[media_gallery][images]' + fc;
 
-                if (!key) {
-                    return null;
-                }
+            searchsuff = 'input[name="' + suff + '[value_id]"]';
+            key = $(searchsuff).val();
 
-                oldValIdElem = document.createElement('input');
-                $('form[data-form="edit-product"]').append(oldValIdElem);
-                $(oldValIdElem).attr({
-                    type: 'hidden',
-                    name: 'product[media_gallery][images][' + newImageId + '][save_data_from]'
-                }).val(key);
+            if (!key) {
+                return null;
             }
+
+            oldValIdElem = document.createElement('input');
+            $('form[data-form="edit-product"]').append(oldValIdElem);
+            $(oldValIdElem).attr({
+                type: 'hidden',
+                name: 'product[media_gallery][images][' + newImageId + '][save_data_from]'
+            }).val(key);
+
+            oldNewFilePosition = parseInt(tmpOldImage.position);
+            imageData.position = oldNewFilePosition;
+
+            $(this._imageWidgetSelector).trigger('setPosition', {
+                imageData: imageData,
+                position: oldNewFilePosition
+            });
         },
 
         /**
-- 
GitLab


From 8db40e1ad65ac65634f4099c8efb2ef2e75d9757 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 12:28:30 -0500
Subject: [PATCH 132/162] MAGETWO-43857: [github] cache types don't properly
 invalidate all the time #1844

---
 .../Theme/Model/Design/Backend/Theme.php      | 22 +++++--
 .../Unit/Model/Design/Backend/ThemeTest.php   | 63 ++++++++-----------
 app/code/Magento/Theme/etc/config.xml         |  5 ++
 3 files changed, 48 insertions(+), 42 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
index 108e82528a0..4917dd31b07 100644
--- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php
+++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php
@@ -16,6 +16,13 @@ class Theme extends Value
      */
     protected $_design = null;
 
+    /**
+     * Path to config node with list of caches
+     *
+     * @var string
+     */
+    const XML_PATH_INVALID_CACHES = 'design/invalid_caches';
+
     /**
      * Initialize dependencies
      *
@@ -59,17 +66,22 @@ class Theme extends Value
     /**
      * {@inheritdoc}
      *
-     * {@inheritdoc}. In addition, it cleans all Magento cache
+     * {@inheritdoc}. In addition, it sets status 'invalidate' for blocks and other output caches
      *
      * @return $this
      */
     public function afterSave()
     {
-        parent::afterSave();
+        $types = array_keys(
+            $this->_config->getValue(
+                self::XML_PATH_INVALID_CACHES,
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            )
+        );
         if ($this->isValueChanged()) {
-            $this->_cacheManager->clean();
-            $this->_eventManager->dispatch('adminhtml_cache_flush_system');
+            $this->cacheTypeList->invalidate($types);
         }
-        return $this;
+
+        return parent::afterSave();
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
index e394482d748..e83a4e4ca30 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php
@@ -18,9 +18,9 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Model\Context
+     * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
+    protected $contextMock;
 
     /**
      * @var \Magento\Framework\View\DesignInterface|\PHPUnit_Framework_MockObject_MockObject
@@ -32,16 +32,6 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
      */
     protected $cacheTypeListMock;
 
-    /**
-     * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $eventManagerMock;
-
-    /**
-     * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $cacheManagerMock;
-
     /**
      * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -49,33 +39,23 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $objectManager = new ObjectManager($this);
-        $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface')
+        $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context')
             ->disableOriginalConstructor()
             ->getMock();
-        $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->context = $objectManager->getObject(
-            'Magento\Framework\Model\Context',
-            [
-                'cacheManager' => $this->cacheManagerMock,
-                'eventDispatcher' => $this->eventManagerMock,
-            ]
-        );
-
         $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock();
         $this->cacheTypeListMock = $this->getMockBuilder('Magento\Framework\App\Cache\TypeListInterface')
             ->disableOriginalConstructor()
             ->getMock();
+        $this->contextMock->expects($this->once())
+            ->method('getEventDispatcher')
+            ->willReturn($this->getMockBuilder('Magento\Framework\Event\ManagerInterface')->getMock());
         $this->configMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface')->getMock();
 
-
-        $this->model = $objectManager->getObject(
+        $this->model = (new ObjectManager($this))->getObject(
             'Magento\Theme\Model\Design\Backend\Theme',
             [
                 'design' => $this->designMock,
-                'context' => $this->context,
+                'context' => $this->contextMock,
                 'cacheTypeList' => $this->cacheTypeListMock,
                 'config' => $this->configMock,
             ]
@@ -106,16 +86,25 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         $this->cacheTypeListMock->expects($this->exactly($callNumber))
             ->method('invalidate');
-        $this->cacheManagerMock->expects($this->exactly($callNumber))
-            ->method('clean');
         $this->configMock->expects($this->any())
             ->method('getValue')
-            ->willReturn($oldValue);
-        if ($callNumber) {
-            $this->eventManagerMock->expects($this->at(3))
-                ->method('dispatch')
-                ->with('adminhtml_cache_flush_system');
-        }
+            ->willReturnMap(
+                [
+                    [
+                        Theme::XML_PATH_INVALID_CACHES,
+                        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
+                        null,
+                        ['block_html' => 1, 'layout' => 1, 'translate' => 1]
+                    ],
+                    [
+                        null,
+                        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
+                        null,
+                        $oldValue
+                    ],
+
+                ]
+            );
         $this->model->setValue('some_value');
         $this->assertInstanceOf(get_class($this->model), $this->model->afterSave());
     }
@@ -124,7 +113,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
     {
         return [
             [0, 'some_value'],
-            [1, 'other_value'],
+            [2, 'other_value'],
         ];
     }
 }
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index 332043e56df..4f25cd7e2ab 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -8,6 +8,11 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
     <default>
         <design>
+            <invalid_caches>
+                <block_html />
+                <layout />
+                <translate />
+            </invalid_caches>
             <head translate="default_description">
                 <default_title>Magento Commerce</default_title>
                 <default_description>Default Description</default_description>
-- 
GitLab


From a7077e6fff76f44f018e4efb6b7e7566c5d8e437 Mon Sep 17 00:00:00 2001
From: Mikalai Shostka <mikalai_shostka@epam.com>
Date: Mon, 26 Oct 2015 20:30:12 +0300
Subject: [PATCH 133/162] Fix rename title modal window

---
 .../ProductVideo/view/adminhtml/web/js/new-video-dialog.js      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index afe4296777b..91041f04795 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -662,7 +662,7 @@ define([
                     roles.prop('disabled', false);
                     file = $('#file_name').val();
                     widget._onGetVideoInformationEditClick();
-                    modalTitleElement = $('.modal-title');
+                    modalTitleElement = $('.mage-new-video-dialog .modal-title');
 
                     if (!file) {
                         widget._blockActionButtons(true);
-- 
GitLab


From 087e32921e51c0d432605378853c189804b43534 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Mon, 26 Oct 2015 14:33:43 -0500
Subject: [PATCH 134/162] MAGETWO-41954: Eliminate code generatio in production
 mode

---
 .../Setup/Console/Command/DiCompileCommand.php        | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
index 9b2b2f5977d..8843fb66c21 100644
--- a/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
+++ b/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
@@ -293,16 +293,21 @@ class DiCompileCommand extends Command
         array $compiledPathsList,
         array $dataAttributesIncludePattern
     ) {
+        $excludePatterns = [];
+        foreach ($this->excludedPathsList as $excludedPaths) {
+            $excludePatterns = array_merge($excludedPaths, $excludePatterns);
+        }
+
         $operations = [
             OperationFactory::PROXY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::REPOSITORY_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
                 'filePatterns' => ['di' => '/\/etc\/([a-zA-Z_]*\/di|di)\.xml$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::DATA_ATTRIBUTES_GENERATOR => [
                 'paths' => $compiledPathsList['application'],
@@ -315,7 +320,7 @@ class DiCompileCommand extends Command
                     $compiledPathsList['generated_helpers'],
                 ],
                 'filePatterns' => ['php' => '/\.php$/'],
-                'excludePatterns' => ['/\/Test\//']
+                'excludePatterns' => $excludePatterns,
             ],
             OperationFactory::INTERCEPTION => [
                 'intercepted_paths' => [
-- 
GitLab


From 9050b25a37634815302492674ef9f7f653cb7b4e Mon Sep 17 00:00:00 2001
From: Paul Lewis <plewis@ebay.com>
Date: Mon, 26 Oct 2015 21:23:17 -0500
Subject: [PATCH 135/162] MAGETWO-44581: Contribute Ogre Bugfixes

- update CE composer.lock
---
 composer.lock | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/composer.lock b/composer.lock
index 9da03972969..b14624bb581 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "80867d6202a3ae5d2f4c079e2cfd702f",
-    "content-hash": "41493176956dcfd2401ac1181d4d4782",
+    "hash": "e4fca60e7de95ce1b8a7f76d7fa40c80",
+    "content-hash": "6372c4ff0d59809e1b9a22251313cc80",
     "packages": [
         {
             "name": "braintree/braintree_php",
@@ -2571,16 +2571,16 @@
         },
         {
             "name": "fabpot/php-cs-fixer",
-            "version": "v1.10.1",
+            "version": "v1.10.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
-                "reference": "12dbcd1462f1e3a5a96c6c7398af26b28e092a8a"
+                "reference": "e8b3c4e41dc1484210fdc45363c41af6c2d56f20"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/12dbcd1462f1e3a5a96c6c7398af26b28e092a8a",
-                "reference": "12dbcd1462f1e3a5a96c6c7398af26b28e092a8a",
+                "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/e8b3c4e41dc1484210fdc45363c41af6c2d56f20",
+                "reference": "e8b3c4e41dc1484210fdc45363c41af6c2d56f20",
                 "shasum": ""
             },
             "require": {
@@ -2621,7 +2621,7 @@
                 }
             ],
             "description": "A tool to automatically fix PHP code style",
-            "time": "2015-10-12 20:13:46"
+            "time": "2015-10-21 19:19:43"
         },
         {
             "name": "league/climate",
@@ -3926,9 +3926,7 @@
     "prefer-stable": true,
     "prefer-lowest": false,
     "platform": {
-        "php": "~5.5.0|~5.6.0|~7.0.0"
-    },
-    "platform-dev": {
+        "php": "~5.5.0|~5.6.0|~7.0.0",
         "lib-libxml": "*",
         "ext-ctype": "*",
         "ext-gd": "*",
@@ -3943,5 +3941,6 @@
         "ext-xsl": "*",
         "ext-mbstring": "*",
         "ext-openssl": "*"
-    }
+    },
+    "platform-dev": []
 }
-- 
GitLab


From 3d95c895d3bff1d349b1ea3af5eae1f4d96df0c4 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Tue, 27 Oct 2015 10:57:05 +0200
Subject: [PATCH 136/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Moved fix to another class
---
 lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php     | 2 --
 .../Framework/Search/Adapter/Mysql/Query/Builder/Match.php      | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php b/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
index e64092f508c..931939a7899 100644
--- a/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
+++ b/lib/internal/Magento/Framework/DB/Helper/Mysql/Fulltext.php
@@ -68,8 +68,6 @@ class Fulltext
 
         $expression = $this->connection->quote($expression);
 
-        $expression = str_replace('%', '\\%', $expression);
-
         $condition = self::MATCH . " ({$columns}) " . self::AGAINST . " ({$expression} {$mode})";
         return $condition;
     }
diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
index e2a94382f2f..a19e9dc04de 100644
--- a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
+++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
@@ -15,7 +15,7 @@ use Magento\Framework\Search\Request\QueryInterface as RequestQueryInterface;
 
 class Match implements QueryInterface
 {
-    const SPECIAL_CHARACTERS = '-+~/\\<>\'":*$#@()!,.?`=';
+    const SPECIAL_CHARACTERS = '-+~/\\<>\'":*$#@()!,.?`=%';
 
     const MINIMAL_CHARACTER_LENGTH = 3;
 
-- 
GitLab


From d4981dbe8ac791f950f364895bf5b3b7cc026bc7 Mon Sep 17 00:00:00 2001
From: Stanislav Idolov <sidolov@ebay.com>
Date: Tue, 27 Oct 2015 11:34:11 +0200
Subject: [PATCH 137/162] MAGETWO-39588: store_id value is not honored when
 creating simple product through API in multi-websites / multi-stores setup

---
 .../Api/ProductRepositoryInterfaceTest.php    |  4 +--
 .../Store/_files/core_fixturestore.php        |  4 ---
 ...fixture_store_with_catalogsearch_index.php | 31 +++++++++++++++++++
 ...tore_with_catalogsearch_index_rollback.php | 22 +++++++++++++
 4 files changed, 55 insertions(+), 6 deletions(-)
 create mode 100644 dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index.php
 create mode 100644 dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index_rollback.php

diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
index a4e57552656..8535762ad4f 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
@@ -140,7 +140,7 @@ class ProductRepositoryInterfaceTest extends WebapiAbstract
      * @param array $fixtureProduct
      *
      * @dataProvider productCreationProvider
-     * @magentoApiDataFixture Magento/Store/_files/core_fixturestore.php
+     * @magentoApiDataFixture Magento/Store/_files/fixture_store_with_catalogsearch_index.php
      */
     public function testCreateAllStoreCode($fixtureProduct)
     {
@@ -169,7 +169,7 @@ class ProductRepositoryInterfaceTest extends WebapiAbstract
      * @param array $fixtureProduct
      *
      * @dataProvider productCreationProvider
-     * @magentoApiDataFixture Magento/Store/_files/core_fixturestore.php
+     * @magentoApiDataFixture Magento/Store/_files/fixture_store_with_catalogsearch_index.php
      */
     public function testDeleteAllStoreCode($fixtureProduct)
     {
diff --git a/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php b/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
index 88c3f333e12..8c432d03e79 100644
--- a/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
+++ b/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
@@ -22,10 +22,6 @@ if (!$store->load($storeCode)->getId()) {
         ->setIsActive(1);
     $store->save();
 
-    Bootstrap::getObjectManager()
-        ->get('Magento\Framework\Event\ManagerInterface')
-        ->dispatch('store_add', ['store' => $store]);
-
     /* Refresh stores memory cache */
     Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')->reinitStores();
 }
diff --git a/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index.php b/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index.php
new file mode 100644
index 00000000000..88c3f333e12
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+use Magento\TestFramework\Helper\Bootstrap;
+
+/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
+$storeManager = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface');
+
+/** @var \Magento\Store\Model\Store $store */
+$store = Bootstrap::getObjectManager()->create('Magento\Store\Model\Store');
+$storeCode = 'fixturestore';
+
+if (!$store->load($storeCode)->getId()) {
+    $store->setCode($storeCode)
+        ->setWebsiteId($storeManager->getWebsite()->getId())
+        ->setGroupId($storeManager->getWebsite()->getDefaultGroupId())
+        ->setName('Fixture Store')
+        ->setSortOrder(10)
+        ->setIsActive(1);
+    $store->save();
+
+    Bootstrap::getObjectManager()
+        ->get('Magento\Framework\Event\ManagerInterface')
+        ->dispatch('store_add', ['store' => $store]);
+
+    /* Refresh stores memory cache */
+    Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')->reinitStores();
+}
diff --git a/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index_rollback.php b/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index_rollback.php
new file mode 100644
index 00000000000..08a8af6a68e
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Store/_files/fixture_store_with_catalogsearch_index_rollback.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var \Magento\Framework\Registry $registry */
+$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry');
+
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', true);
+
+/** @var \Magento\Store\Model\Store $store */
+$store = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Store\Model\Store');
+$storeCode = 'fixturestore';
+$store->load($storeCode);
+if ($store->getId()) {
+    $store->delete();
+}
+
+$registry->unregister('isSecureArea');
+$registry->register('isSecureArea', false);
-- 
GitLab


From 72bc6c887c03378dff8c78f7638019982251d30f Mon Sep 17 00:00:00 2001
From: Andrii Kasian <akasian@magento.com>
Date: Tue, 27 Oct 2015 11:58:28 +0200
Subject: [PATCH 138/162] MAGETWO-44106: New created category should be anchor
 by default

---
 setup/src/Magento/Setup/Fixtures/CategoriesFixture.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/setup/src/Magento/Setup/Fixtures/CategoriesFixture.php b/setup/src/Magento/Setup/Fixtures/CategoriesFixture.php
index f4e52eac261..670e936b0ca 100644
--- a/setup/src/Magento/Setup/Fixtures/CategoriesFixture.php
+++ b/setup/src/Magento/Setup/Fixtures/CategoriesFixture.php
@@ -54,6 +54,7 @@ class CategoriesFixture extends Fixture
                 ->setPath($nestingPath[$groupNumber])
                 ->setLevel($nestingLevel[$groupNumber] + 1)
                 ->setAvailableSortBy('name')
+                ->setIsAnchor(false)
                 ->setDefaultSortBy('name')
                 ->setIsActive(true)
                 ->save();
-- 
GitLab


From 62a15a8b4920741aa63d560c4007acdc4d675427 Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Tue, 27 Oct 2015 14:49:45 +0200
Subject: [PATCH 139/162] MAGETWO-43816: [TD] Func test failing:
 Magento\Catalog\Test\TestCase\Product\AddToCartCrossSellTest and
 Magento\Catalog\Test\TestCase\Product\NavigateUpSellProductsTest

---
 app/code/Magento/Catalog/view/adminhtml/web/js/options.js     | 4 +++-
 .../view/adminhtml/web/js/variations/steps/bulk.js            | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
index 0734c4362c5..3928decacf4 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
@@ -11,7 +11,9 @@ define([
     'mage/template',
     'uiRegistry',
     'jquery/ui',
-    'prototype'
+    'prototype',
+    'form',
+    'validation'
 ], function (jQuery, mageTemplate, rg) {
     'use strict';
 
diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js
index 499962f8e59..74bc6c1d6a1 100644
--- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js
+++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js
@@ -14,7 +14,8 @@ define([
     'mage/template',
     'Magento_Ui/js/modal/alert',
     'jquery/file-uploader',
-    'mage/translate'
+    'mage/translate',
+    'Magento_ConfigurableProduct/js/variations/variations'
 ], function (Component, $, ko, _, Collapsible, mageTemplate, alert) {
     'use strict';
 
-- 
GitLab


From 99696c1365bb8dd59a0730cc4c8259acb7cb35a5 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Tue, 27 Oct 2015 15:53:44 +0300
Subject: [PATCH 140/162] MAGETWO-44249: Instant video playing doesn't work

Change order array
---
 .../frontend/web/js/fotorama-add-video-events.js    | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index 43a5ce2c26d..afa71a52394 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -138,11 +138,12 @@ define([
          * @private
          */
         _createVideoData: function (inputData, isJSON) {
-            var videoData = {},
+            var videoData = [],
                 dataUrl,
                 tmpVideoData,
                 tmpInputData,
-                i;
+                i,
+                iPlace;
 
             if (isJSON) {
                 inputData = $.parseJSON(inputData);
@@ -171,10 +172,14 @@ define([
                     tmpVideoData.id = dataUrl.id;
                     tmpVideoData.provider = dataUrl.type;
                 }
+                iPlace = i + 1;
+                if(tmpVideoData.isBase) {
+                    videoData.unshift(tmpVideoData);
+                    continue;
+                }
 
-                videoData[i] = tmpVideoData;
+                videoData.push(tmpVideoData);
             }
-
             return videoData;
         },
 
-- 
GitLab


From 3fbd42a013dff2ade85e589bd17c538a8ebcd4a1 Mon Sep 17 00:00:00 2001
From: Ivan Gavryshko <igavryshko@ebay.com>
Date: Tue, 27 Oct 2015 08:50:56 -0500
Subject: [PATCH 141/162] MAGETWO-43906: Long database prefix length breaks
 setup

- fixed functional test
---
 .../tests/app/Magento/Install/Test/TestCase/InstallTest.xml     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dev/tests/functional/tests/app/Magento/Install/Test/TestCase/InstallTest.xml b/dev/tests/functional/tests/app/Magento/Install/Test/TestCase/InstallTest.xml
index c3b207ff397..003d21fdf59 100644
--- a/dev/tests/functional/tests/app/Magento/Install/Test/TestCase/InstallTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Install/Test/TestCase/InstallTest.xml
@@ -38,7 +38,7 @@
         <variation name="InstallTestVariation4">
             <data name="description" xsi:type="string">Install with table prefix.</data>
             <data name="user/dataset" xsi:type="string">default</data>
-            <data name="install/dbTablePrefix" xsi:type="string">prefix1_</data>
+            <data name="install/dbTablePrefix" xsi:type="string">pref_</data>
             <data name="install/storeLanguage" xsi:type="string">Chinese (China)</data>
             <constraint name="Magento\Install\Test\Constraint\AssertSuccessInstall" />
             <constraint name="Magento\User\Test\Constraint\AssertUserSuccessLogin" />
-- 
GitLab


From 4db50186d91abbf52b72093a90dc283a619288e2 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Tue, 27 Oct 2015 16:36:52 +0200
Subject: [PATCH 142/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Fixed Binder and Cleaner
---
 .../Search/Adapter/Mysql/Query/Builder/Match.php | 16 +++++++++++-----
 .../Magento/Framework/Search/Request/Binder.php  |  1 +
 .../Magento/Framework/Search/Request/Cleaner.php |  8 ++++----
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
index a19e9dc04de..32e05031cba 100644
--- a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
+++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
@@ -12,17 +12,18 @@ use Magento\Framework\Search\Adapter\Mysql\Field\ResolverInterface;
 use Magento\Framework\Search\Adapter\Mysql\ScoreBuilder;
 use Magento\Framework\Search\Request\Query\BoolExpression;
 use Magento\Framework\Search\Request\QueryInterface as RequestQueryInterface;
+use Zend_Db_Expr;
 
 class Match implements QueryInterface
 {
-    const SPECIAL_CHARACTERS = '-+~/\\<>\'":*$#@()!,.?`=%';
+    const SPECIAL_CHARACTERS = '-+~/\<>\'":*$#@()!,.?`=%^';
 
     const MINIMAL_CHARACTER_LENGTH = 3;
 
     /**
      * @var string[]
      */
-    private $replaceSymbols = [];
+    private $pattern = [];
 
     /**
      * @var ResolverInterface
@@ -50,7 +51,12 @@ class Match implements QueryInterface
         $fulltextSearchMode = Fulltext::FULLTEXT_MODE_BOOLEAN
     ) {
         $this->resolver = $resolver;
-        $this->replaceSymbols = str_split(self::SPECIAL_CHARACTERS, 1);
+        $characters = str_split(self::SPECIAL_CHARACTERS, 1);
+        foreach ($characters as $key => $value) {
+            $characters[$key] = "\\{$value}";
+        }
+        $characters = implode('', $characters);
+        $this->pattern = $characters = "/([{$characters}])/";
         $this->fulltextHelper = $fulltextHelper;
         $this->fulltextSearchMode = $fulltextSearchMode;
     }
@@ -85,7 +91,7 @@ class Match implements QueryInterface
 
         $matchQuery = $this->fulltextHelper->getMatchQuery(
             $columns,
-            $queryValue,
+            new Zend_Db_Expr($queryValue),
             $this->fulltextSearchMode
         );
         $scoreBuilder->addCondition($matchQuery, true);
@@ -106,7 +112,7 @@ class Match implements QueryInterface
      */
     protected function prepareQuery($queryValue, $conditionType)
     {
-        $queryValue = str_replace($this->replaceSymbols, ' ', $queryValue);
+        $queryValue = preg_replace($this->pattern, '\\\\$1', $queryValue);
 
         $stringPrefix = '';
         if ($conditionType === BoolExpression::QUERY_CONDITION_MUST) {
diff --git a/lib/internal/Magento/Framework/Search/Request/Binder.php b/lib/internal/Magento/Framework/Search/Request/Binder.php
index a6ec65f1751..689181f152f 100644
--- a/lib/internal/Magento/Framework/Search/Request/Binder.php
+++ b/lib/internal/Magento/Framework/Search/Request/Binder.php
@@ -81,6 +81,7 @@ class Binder
                         } else {
                             $data[$key] = $bindValue;
                         }
+                        $data['is_bind'] = true;
                     }
                 }
             }
diff --git a/lib/internal/Magento/Framework/Search/Request/Cleaner.php b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
index bb54ad8be0d..6e8a9c4494e 100644
--- a/lib/internal/Magento/Framework/Search/Request/Cleaner.php
+++ b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
@@ -90,8 +90,7 @@ class Cleaner
                 }
                 break;
             case QueryInterface::TYPE_MATCH:
-                if (preg_match('/\$(.+)\$/si', $query['value'], $matches)
-                    && !preg_match('/^\$+$/si', $query['value'], $matches)) {
+                if (!array_key_exists('is_bind', $query)) {
                     unset($this->requestData['queries'][$queryName]);
                 }
                 break;
@@ -131,8 +130,9 @@ class Cleaner
                 foreach ($this->requestData['aggregations'] as $aggregationName => $aggregationValue) {
                     switch ($aggregationValue['type']) {
                         case 'dynamicBucket':
-                            if (is_string($aggregationValue['method'])
-                                && preg_match('/\$(.+)\$/si', $aggregationValue['method'])
+                            if (
+                                !array_key_exists('is_bind', $aggregationValue)
+                                && is_string($aggregationValue['method'])
                             ) {
                                 unset($this->requestData['aggregations'][$aggregationName]);
                             }
-- 
GitLab


From 872a24b1fee33a9e4ead6ac816d4260730884e2b Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Tue, 27 Oct 2015 18:30:57 +0300
Subject: [PATCH 143/162] Fix csmd for fixes of PR

---
 .../Block/Adminhtml/Product/Edit/NewVideo.php       | 13 ++++++-------
 .../Model/Plugin/ExternalVideoEntryProcessor.php    |  1 +
 .../Model/Plugin/ExternalVideoResourceBackend.php   |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
index 94249c205fd..473e44373b7 100644
--- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
+++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php
@@ -34,18 +34,18 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
 
     /**
      * @param \Magento\Backend\Block\Template\Context $context
-     * @param \Magento\ProductVideo\Helper\Media $mediaHelper
-     * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param \Magento\Framework\Registry $registry
      * @param \Magento\Framework\Data\FormFactory $formFactory
+     * @param \Magento\ProductVideo\Helper\Media $mediaHelper
+     * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
      * @param array $data
      */
     public function __construct(
         \Magento\Backend\Block\Template\Context $context,
-        \Magento\ProductVideo\Helper\Media $mediaHelper,
-        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         \Magento\Framework\Registry $registry,
         \Magento\Framework\Data\FormFactory $formFactory,
+        \Magento\ProductVideo\Helper\Media $mediaHelper,
+        \Magento\Framework\Json\EncoderInterface $jsonEncoder,
         array $data = []
     ) {
         parent::__construct($context, $registry, $formFactory, $data);
@@ -269,11 +269,10 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic
     protected function getNoteVideoUrl()
     {
         $result = __('YouTube and Vimeo supported.');
-        if (is_null($this->mediaHelper->getYouTubeApiKey())) {
+        if ($this->mediaHelper->getYouTubeApiKey() === null) {
             $result = __(
                 'Vimeo supported.<br />'
-                . 'To add YouTube video, please <a href="%1">enter YouTube API Key</a> first.'
-                ,
+                . 'To add YouTube video, please <a href="%1">enter YouTube API Key</a> first.',
                 $this->getConfigApiKeyUrl()
             );
         }
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
index 1ac182f9039..1ec18643158 100644
--- a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
+++ b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoEntryProcessor.php
@@ -48,6 +48,7 @@ class ExternalVideoEntryProcessor
 
     /**
      * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media $resourceEntryMediaGallery
+     * @param \Magento\ProductVideo\Model\ResourceModel\Video $videoResourceModel
      */
     public function __construct(
         \Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\Media $resourceEntryMediaGallery,
diff --git a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
index 089c4149e57..e29ce8831c9 100644
--- a/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
+++ b/app/code/Magento/ProductVideo/Model/Plugin/ExternalVideoResourceBackend.php
@@ -36,7 +36,7 @@ class ExternalVideoResourceBackend
     public function afterDuplicate(Media $originalResourceModel, array $valueIdMap)
     {
         $mediaGalleryEntitiesData = $this->videoResourceModel->loadByIds(array_keys($valueIdMap));
-        foreach($mediaGalleryEntitiesData as $row) {
+        foreach ($mediaGalleryEntitiesData as $row) {
             $row['value_id'] = $valueIdMap[$row['value_id']];
             $this->videoResourceModel->insertOnDuplicate($row);
         }
-- 
GitLab


From 6f5aac85183889a8f1f8470f254ed5dd0befdefb Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Tue, 27 Oct 2015 17:33:53 +0200
Subject: [PATCH 144/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Added symbols
---
 .../Search/Adapter/Mysql/Query/Builder/Match.php | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
index 32e05031cba..927dfb10f4c 100644
--- a/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
+++ b/lib/internal/Magento/Framework/Search/Adapter/Mysql/Query/Builder/Match.php
@@ -12,18 +12,17 @@ use Magento\Framework\Search\Adapter\Mysql\Field\ResolverInterface;
 use Magento\Framework\Search\Adapter\Mysql\ScoreBuilder;
 use Magento\Framework\Search\Request\Query\BoolExpression;
 use Magento\Framework\Search\Request\QueryInterface as RequestQueryInterface;
-use Zend_Db_Expr;
 
 class Match implements QueryInterface
 {
-    const SPECIAL_CHARACTERS = '-+~/\<>\'":*$#@()!,.?`=%^';
+    const SPECIAL_CHARACTERS = '-+~/\\<>\'":*$#@()!,.?`=%&^_';
 
     const MINIMAL_CHARACTER_LENGTH = 3;
 
     /**
      * @var string[]
      */
-    private $pattern = [];
+    private $replaceSymbols = [];
 
     /**
      * @var ResolverInterface
@@ -51,12 +50,7 @@ class Match implements QueryInterface
         $fulltextSearchMode = Fulltext::FULLTEXT_MODE_BOOLEAN
     ) {
         $this->resolver = $resolver;
-        $characters = str_split(self::SPECIAL_CHARACTERS, 1);
-        foreach ($characters as $key => $value) {
-            $characters[$key] = "\\{$value}";
-        }
-        $characters = implode('', $characters);
-        $this->pattern = $characters = "/([{$characters}])/";
+        $this->replaceSymbols = str_split(self::SPECIAL_CHARACTERS, 1);
         $this->fulltextHelper = $fulltextHelper;
         $this->fulltextSearchMode = $fulltextSearchMode;
     }
@@ -91,7 +85,7 @@ class Match implements QueryInterface
 
         $matchQuery = $this->fulltextHelper->getMatchQuery(
             $columns,
-            new Zend_Db_Expr($queryValue),
+            $queryValue,
             $this->fulltextSearchMode
         );
         $scoreBuilder->addCondition($matchQuery, true);
@@ -112,7 +106,7 @@ class Match implements QueryInterface
      */
     protected function prepareQuery($queryValue, $conditionType)
     {
-        $queryValue = preg_replace($this->pattern, '\\\\$1', $queryValue);
+        $queryValue = str_replace($this->replaceSymbols, ' ', $queryValue);
 
         $stringPrefix = '';
         if ($conditionType === BoolExpression::QUERY_CONDITION_MUST) {
-- 
GitLab


From a75c17fcee4d176eaacf9c633fe42b27eda17bbd Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Tue, 27 Oct 2015 19:59:41 +0300
Subject: [PATCH 145/162] Fix phpcs/phpmd for JS

---
 .../web/catalog/base-image-uploader.js        |    2 +-
 .../adminhtml/web/catalog/category/edit.js    |    2 +-
 .../catalog/product/composite/configure.js    |    4 +-
 .../view/adminhtml/web/js/product-gallery.js  |    4 +-
 .../frontend/web/js/catalog-add-to-cart.js    |    2 +-
 .../adminhtml/web/js/get-video-information.js | 1176 ++++++++---------
 .../view/adminhtml/web/js/new-video-dialog.js |   14 +-
 .../web/js/fotorama-add-video-events.js       |    2 +-
 8 files changed, 603 insertions(+), 603 deletions(-)

diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js
index de62ea60219..2d02bf2b97f 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js
@@ -38,7 +38,7 @@ define([
 
             var findElement = function (data) {
                 return $container.find('.image:not(.image-placeholder)').filter(function () {
-                    if(!$(this).data('image')) {
+                    if (!$(this).data('image')) {
                         return false;
                     }
                     return $(this).data('image').file === data.file;
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/edit.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/edit.js
index b56225bc6ea..51fed1ebfec 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/edit.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/edit.js
@@ -20,7 +20,7 @@ define([
 
     var params = {};
     var fields = $('category_edit_form').getElementsBySelector('input', 'select');
-    for(var i=0;i<fields.length;i++){
+    for (var i=0; i<fields.length; i++) {
         if (!fields[i].name) {
             continue;
         }
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
index 1b5fbe954b8..f63c2a7d8f7 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js
@@ -703,7 +703,9 @@ define([
                             mageData.scripts.map(function(script) {
                                 return eval(script);
                             });
-                        } catch (e) {}
+                        } catch (e) {
+
+                        }
                         this.restorePhase = false;
                     }
                     break;
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/product-gallery.js b/app/code/Magento/Catalog/view/adminhtml/web/js/product-gallery.js
index 45ee5c2d5c9..4fef5dbb066 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/product-gallery.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/product-gallery.js
@@ -301,7 +301,7 @@ define([
          * @private
          */
         _onOpenDialog: function(e, imageData) {
-            if(imageData.media_type && imageData.media_type != 'image') {
+            if (imageData.media_type && imageData.media_type != 'image') {
                 return;
             }
             this._showDialog(imageData);
@@ -315,7 +315,7 @@ define([
         _showDialog: function (imageData) {
             var $imageContainer = this.findElement(imageData);
             var dialogElement = $imageContainer.data('dialog');
-            if(!this.dialogTmpl) {
+            if (!this.dialogTmpl) {
                 alert('System problem!');
                 return;
             }
diff --git a/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js b/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
index 02898a8e87f..dadc7e8bbb2 100644
--- a/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
+++ b/app/code/Magento/Catalog/view/frontend/web/js/catalog-add-to-cart.js
@@ -46,7 +46,7 @@ define([
 
         submitForm: function(form) {
             var self = this;
-            if (form.has('input[type="file"]').length  && form.find('input[type="file"]').val() !== '') {
+            if (form.has('input[type="file"]').length && form.find('input[type="file"]').val() !== '') {
                 self.element.off('submit');
                 form.submit();
             } else {
diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
index 76cf3f98771..e5236816627 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js
@@ -1,588 +1,588 @@
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-/*jshint browser:true jquery:true*/
-require([
-        'jquery',
-        'Magento_Ui/js/modal/alert',
-        'jquery/ui'
-    ],
-    function ($, alert) {
-        'use strict';
-
-        var videoRegister = {
-            _register: {},
-
-            /**
-             * Checks, if api is already registered
-             *
-             * @param {String} api
-             * @returns {bool}
-             */
-            isRegistered: function (api) {
-                return this._register[api] !== undefined;
-            },
-
-            /**
-             * Checks, if api is loaded
-             *
-             * @param {String} api
-             * @returns {bool}
-             */
-            isLoaded: function (api) {
-                return this._register[api] !== undefined && this._register[api] === true;
-            },
-
-            /**
-             * Register new video api
-             * @param {String} api
-             * @param {bool} loaded
-             */
-            register: function (api, loaded) {
-                loaded = loaded || false;
-                this._register[api] = loaded;
-            }
-        };
-
-        $.widget('mage.productVideoLoader', {
-
-            /**
-             * @private
-             */
-            _create: function () {
-                switch (this.element.data('type')) {
-                    case 'youtube':
-                        this.element.videoYoutube();
-                        this._player = this.element.data('mageVideoYoutube');
-                        break;
-
-                    case 'vimeo':
-                        this.element.videoVimeo();
-                        this._player = this.element.data('mageVideoVimeo');
-                        break;
-                    default:
-                        throw {
-                            name: 'Video Error',
-                            message: 'Unknown video type',
-
-                            /**
-                             * Return string
-                             */
-                            toString: function () {
-                                return this.name + ': ' + this.message;
-                            }
-                        };
-                }
-            },
-
-            /**
-             * Initializes variables
-             * @private
-             */
-            _initialize: function () {
-                this._params = this.element.data('params') || {};
-                this._code = this.element.data('code');
-                this._width = this.element.data('width');
-                this._height = this.element.data('height');
-                this._autoplay = !!this.element.data('autoplay');
-                this._playing = this._autoplay || false;
-
-                this._responsive = this.element.data('responsive') !== false;
-
-                if (this._responsive === true) {
-                    this.element.addClass('responsive');
-                }
-
-                this._calculateRatio();
-            },
-
-            /**
-             * Abstract play command
-             */
-            play: function () {
-                this._player.play();
-            },
-
-            /**
-             * Abstract pause command
-             */
-            pause: function () {
-                this._player.pause();
-            },
-
-            /**
-             * Abstract stop command
-             */
-            stop: function () {
-                this._player.stop();
-            },
-
-            /**
-             * Abstract playing command
-             */
-            playing: function () {
-                return this._player.playing();
-            },
-
-            /**
-             * Abstract destroying command
-             */
-            destroy: function () {
-                this._player.destroy();
-            },
-
-            /**
-             * Calculates ratio for responsive videos
-             * @private
-             */
-            _calculateRatio: function () {
-                if (!this._responsive) {
-                    return;
-                }
-                this.element.css('paddingBottom', this._height / this._width * 100 + '%');
-            }
-        });
-
-        $.widget('mage.videoYoutube', $.mage.productVideoLoader, {
-
-            /**
-             * Initialization of the Youtube widget
-             * @private
-             */
-            _create: function () {
-                var self = this;
-
-                this._initialize();
-
-                this.element.append('<div/>');
-
-                this._on(window, {
-
-                    /**
-                     * Youtube state check
-                     * @private
-                     */
-                    'youtubeapiready': function () {
-                        if (self._player !== undefined) {
-                            return;
-                        }
-
-                        if (self._autoplay) {
-                            self._params.autoplay = 1;
-                        }
-                        self._params.rel = 0;
-
-                        self._player = new window.YT.Player(self.element.children(':first')[0], {
-                            height: self._height,
-                            width: self._width,
-                            videoId: self._code,
-                            playerVars: self._params,
-                            events: {
-
-                                /**
-                                 * @private
-                                 */
-                                'onReady': function onPlayerReady() {
-                                    self._player.getDuration();
-                                },
-
-                                /**
-                                 * State change flag init
-                                 */
-                                onStateChange: function (data) {
-                                    switch (window.parseInt(data.data, 10)) {
-                                        case 1:
-                                            self._playing = true;
-                                            break;
-                                        default:
-                                            self._playing = false;
-                                            break;
-                                    }
-
-                                    self._trigger('statechange', {}, data);
-                                }
-                            }
-
-                        });
-                    }
-                });
-
-                this._loadApi();
-            },
-
-            /**
-             * Loads Youtube API and triggers event, when loaded
-             * @private
-             */
-            _loadApi: function () {
-                var element,
-                    scriptTag;
-
-                if (videoRegister.isRegistered('youtube')) {
-                    if (videoRegister.isLoaded('youtube')) {
-                        $(window).trigger('youtubeapiready');
-                    }
-
-                    return;
-                }
-                videoRegister.register('youtube');
-
-                element = document.createElement('script');
-                scriptTag = document.getElementsByTagName('script')[0];
-
-                element.async = true;
-                element.src = 'https://www.youtube.com/iframe_api';
-                scriptTag.parentNode.insertBefore(element, scriptTag);
-
-                /**
-                 * Trigger youtube api ready event
-                 */
-                window.onYouTubeIframeAPIReady = function () {
-                    $(window).trigger('youtubeapiready');
-                    videoRegister.register('youtube', true);
-                };
-            },
-
-            /**
-             * Play command for Youtube
-             */
-            play: function () {
-                this._player.playVideo();
-                this._playing = true;
-            },
-
-            /**
-             * Pause command for Youtube
-             */
-            pause: function () {
-                this._player.pauseVideo();
-                this._playing = false;
-            },
-
-            /**
-             * Stop command for Youtube
-             */
-            stop: function () {
-                this._player.stopVideo();
-                this._playing = false;
-            },
-
-            /**
-             * Playing command for Youtube
-             */
-            playing: function () {
-                return this._playing;
-            },
-
-            /**
-             * stops and unloads player
-             * @private
-             */
-            destroy: function () {
-                this.stop();
-                this._player.destroy();
-            }
-        });
-
-        $.widget('mage.videoVimeo', $.mage.productVideoLoader, {
-
-            /**
-             * Initialize the Vimeo widget
-             * @private
-             */
-            _create: function () {
-                var timestamp,
-                    src,
-                    additionalParams;
-
-                this._initialize();
-                timestamp = new Date().getTime();
-
-                if (this._autoplay) {
-                    additionalParams += '&autoplay=1';
-                }
-
-                src = 'http://player.vimeo.com/video/' +
-                    this._code + '?api=1&player_id=vimeo' +
-                    this._code +
-                    timestamp +
-                    additionalParams;
-                this.element.append(
-                    $('<iframe/>')
-                        .attr('frameborder', 0)
-                        .attr('id', 'vimeo' + this._code + timestamp)
-                        .attr('width', this._width)
-                        .attr('height', this._height)
-                        .attr('src', src)
-                );
-
-            }
-        });
-
-        $.widget('mage.videoData', {
-            options: {
-                youtubeKey: '',
-                eventSource: '' //where is data going from - focus out or click on button
-            },
-
-            _REQUEST_VIDEO_INFORMATION_TRIGGER: 'update_video_information',
-
-            _UPDATE_VIDEO_INFORMATION_TRIGGER: 'updated_video_information',
-
-            _ERROR_UPDATE_INFORMATION_TRIGGER: 'error_updated_information',
-
-            _videoInformation: null,
-
-            /**
-             * @private
-             */
-            _init: function () {
-                this._onRequestHandler();
-            },
-
-            /**
-             * @private
-             */
-            _onRequestHandler: function () {
-                var url = this.element.val(),
-                    self = this,
-                    videoInfo,
-                    type,
-                    id,
-                    googleapisUrl;
-
-                if (!url) {
-                    //this._onRequestError("Video url is undefined");
-                    return;
-                }
-
-                videoInfo = this._validateURL(url);
-
-                if (!videoInfo) {
-                    this._onRequestError('Invalid video url');
-
-                    return;
-                }
-
-                /**
-                 *
-                 * @param {Object} data
-                 * @private
-                 */
-                function _onYouTubeLoaded(data) {
-                    var tmp,
-                        uploadedFormatted,
-                        respData,
-                        createErrorMessage;
-
-                    /**
-                     * Create errors message
-                     *
-                     * @returns {String}
-                     */
-                    createErrorMessage = function () {
-                        var error = data.error,
-                            errors = error.errors,
-                            i,
-                            errLength = errors.length,
-                            tmpError,
-                            errReason,
-                            errorsMessage = [];
-
-                        for (i = 0; i < errLength; i++) {
-                            tmpError = errors[i];
-                            errReason = tmpError.reason;
-
-                            if (['keyInvalid'].indexOf(errReason) !== -1) {
-                                errorsMessage.push('Youtube API key is invalid');
-
-                                break;
-                            }
-
-                            errorsMessage.push(tmpError.message);
-                        }
-
-                        return 'Video cant be shown due to the following reason: ' + $.unique(errorsMessage).join(', ');
-                    };
-
-                    if (data.error && data.error.code === 400) {
-                        this._onRequestError(createErrorMessage());
-
-                        return;
-                    }
-
-                    if (!data.items || data.items.length < 1) {
-                        this._onRequestError('Video not found');
-
-                        return;
-                    }
-
-                    tmp = data.items[0];
-                    uploadedFormatted = tmp.snippet.publishedAt.replace('T', ' ').replace(/\..+/g, '');
-                    respData = {
-                        duration: this._formatYoutubeDuration(tmp.contentDetails.duration),
-                        channel: tmp.snippet.channelTitle,
-                        channelId: tmp.snippet.channelId,
-                        uploaded: uploadedFormatted,
-                        title: tmp.snippet.localized.title,
-                        description: tmp.snippet.description,
-                        thumbnail: tmp.snippet.thumbnails.high.url,
-                        videoId: videoInfo.id,
-                        videoProvider: videoInfo.type
-                    };
-                    this._videoInformation = respData;
-                    this.element.trigger(this._UPDATE_VIDEO_INFORMATION_TRIGGER, respData);
-                }
-
-                /**
-                 * @private
-                 */
-                function _onVimeoLoaded(data) {
-                    var tmp = data[0],
-                        respData;
-
-                    if (data.length < 1) {
-                        this._onRequestError('Video not found');
-
-                        return null;
-                    }
-                    tmp = data[0];
-                    respData = {
-                        duration: this._formatVimeoDuration(tmp.duration),
-                        channel: tmp['user_name'],
-                        channelId: tmp['user_url'],
-                        uploaded: tmp['upload_date'],
-                        title: tmp.title,
-                        description: tmp.description.replace(/(&nbsp;|<([^>]+)>)/ig, ''),
-                        thumbnail: tmp['thumbnail_large'],
-                        videoId: videoInfo.id,
-                        videoProvider: videoInfo.type
-                    };
-                    this._videoInformation = respData;
-                    this.element.trigger(this._UPDATE_VIDEO_INFORMATION_TRIGGER, respData);
-                }
-
-                type = videoInfo.type;
-                id = videoInfo.id;
-
-                if (type === 'youtube') {
-                    googleapisUrl = 'https://www.googleapis.com/youtube/v3/videos?id=' +
-                        id +
-                        '&part=snippet,contentDetails,statistics,status&key=' +
-                        this.options.youtubeKey + '&alt=json&callback=?';
-                    $.getJSON(googleapisUrl,
-                        {
-                            format: 'json'
-                        },
-                        $.proxy(_onYouTubeLoaded, self)
-                    ).fail(
-                        function () {
-                            self._onRequestError('Video not found');
-                        }
-                    );
-                } else if (type === 'vimeo') {
-                    $.getJSON('http://www.vimeo.com/api/v2/video/' + id + '.json?callback=?',
-                        {
-                            format: 'json'
-                        },
-                        $.proxy(_onVimeoLoaded, self)
-                    ).fail(
-                        function () {
-                            self._onRequestError('Video not found');
-                        }
-                    );
-                }
-            },
-
-            /**
-             * @private
-             */
-            _onRequestError: function (error) {
-                this._videoInformation = null;
-                this.element.trigger(this._ERROR_UPDATE_INFORMATION_TRIGGER, error);
-                this.element.val('');
-                alert({
-                    content: 'Error: "' + error + '"'
-                });
-            },
-
-            /**
-             * @private
-             */
-            _formatYoutubeDuration: function (duration) {
-                var match = duration.match(/PT(\d+H)?(\d+M)?(\d+S)?/),
-                    hours = parseInt(match[1], 10) || 0,
-                    minutes = parseInt(match[2], 10) || 0,
-                    seconds = parseInt(match[3], 10) || 0;
-
-                return this._formatVimeoDuration(hours * 3600 + minutes * 60 + seconds);
-            },
-
-            /**
-             * @private
-             */
-            _formatVimeoDuration: function (seconds) {
-                return (new Date(seconds * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
-            },
-
-            /**
-             * @private
-             */
-            _parseHref: function (href) {
-                var a = document.createElement('a');
-
-                a.href = href;
-
-                return a;
-            },
-
-            /**
-             * @private
-             */
-            _validateURL: function (href, forceVideo) {
-                var id,
-                    type,
-                    ampersandPosition,
-                    vimeoRegex;
-
-                if (typeof href !== 'string') {
-                    return href;
-                }
-                href = this._parseHref(href);
-
-                if (href.host.match(/youtube\.com/) && href.search) {
-
-                    id = href.search.split('v=')[1];
-
-                    if (id) {
-                        ampersandPosition = id.indexOf('&');
-                        type = 'youtube';
-                    }
-
-                    if (id && ampersandPosition !== -1) {
-                        id = id.substring(0, ampersandPosition);
-                    }
-
-                } else if (href.host.match(/youtube\.com|youtu\.be/)) {
-                    id = href.pathname.replace(/^\/(embed\/|v\/)?/, '').replace(/\/.*/, '');
-                    type = 'youtube';
-                } else if (href.host.match(/vimeo\.com/)) {
-                    type = 'vimeo';
-                    vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
-                        '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)'
-                    ].join(''));
-                    id = href.href.match(vimeoRegex)[3];
-                }
-
-                if ((!id || !type) && forceVideo) {
-                    id = href.href;
-                    type = 'custom';
-                }
-
-                return id ? {
-                    id: id, type: type, s: href.search.replace(/^\?/, '')
-                } : false;
-            }
-        });
-    });
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+/*jshint browser:true jquery:true*/
+require([
+        'jquery',
+        'Magento_Ui/js/modal/alert',
+        'jquery/ui'
+    ],
+    function ($, alert) {
+        'use strict';
+
+        var videoRegister = {
+            _register: {},
+
+            /**
+             * Checks, if api is already registered
+             *
+             * @param {String} api
+             * @returns {bool}
+             */
+            isRegistered: function (api) {
+                return this._register[api] !== undefined;
+            },
+
+            /**
+             * Checks, if api is loaded
+             *
+             * @param {String} api
+             * @returns {bool}
+             */
+            isLoaded: function (api) {
+                return this._register[api] !== undefined && this._register[api] === true;
+            },
+
+            /**
+             * Register new video api
+             * @param {String} api
+             * @param {bool} loaded
+             */
+            register: function (api, loaded) {
+                loaded = loaded || false;
+                this._register[api] = loaded;
+            }
+        };
+
+        $.widget('mage.productVideoLoader', {
+
+            /**
+             * @private
+             */
+            _create: function () {
+                switch (this.element.data('type')) {
+                    case 'youtube':
+                        this.element.videoYoutube();
+                        this._player = this.element.data('mageVideoYoutube');
+                        break;
+
+                    case 'vimeo':
+                        this.element.videoVimeo();
+                        this._player = this.element.data('mageVideoVimeo');
+                        break;
+                    default:
+                        throw {
+                            name: 'Video Error',
+                            message: 'Unknown video type',
+
+                            /**
+                             * Return string
+                             */
+                            toString: function () {
+                                return this.name + ': ' + this.message;
+                            }
+                        };
+                }
+            },
+
+            /**
+             * Initializes variables
+             * @private
+             */
+            _initialize: function () {
+                this._params = this.element.data('params') || {};
+                this._code = this.element.data('code');
+                this._width = this.element.data('width');
+                this._height = this.element.data('height');
+                this._autoplay = !!this.element.data('autoplay');
+                this._playing = this._autoplay || false;
+
+                this._responsive = this.element.data('responsive') !== false;
+
+                if (this._responsive === true) {
+                    this.element.addClass('responsive');
+                }
+
+                this._calculateRatio();
+            },
+
+            /**
+             * Abstract play command
+             */
+            play: function () {
+                this._player.play();
+            },
+
+            /**
+             * Abstract pause command
+             */
+            pause: function () {
+                this._player.pause();
+            },
+
+            /**
+             * Abstract stop command
+             */
+            stop: function () {
+                this._player.stop();
+            },
+
+            /**
+             * Abstract playing command
+             */
+            playing: function () {
+                return this._player.playing();
+            },
+
+            /**
+             * Abstract destroying command
+             */
+            destroy: function () {
+                this._player.destroy();
+            },
+
+            /**
+             * Calculates ratio for responsive videos
+             * @private
+             */
+            _calculateRatio: function () {
+                if (!this._responsive) {
+                    return;
+                }
+                this.element.css('paddingBottom', this._height / this._width * 100 + '%');
+            }
+        });
+
+        $.widget('mage.videoYoutube', $.mage.productVideoLoader, {
+
+            /**
+             * Initialization of the Youtube widget
+             * @private
+             */
+            _create: function () {
+                var self = this;
+
+                this._initialize();
+
+                this.element.append('<div/>');
+
+                this._on(window, {
+
+                    /**
+                     * Youtube state check
+                     * @private
+                     */
+                    'youtubeapiready': function () {
+                        if (self._player !== undefined) {
+                            return;
+                        }
+
+                        if (self._autoplay) {
+                            self._params.autoplay = 1;
+                        }
+                        self._params.rel = 0;
+
+                        self._player = new window.YT.Player(self.element.children(':first')[0], {
+                            height: self._height,
+                            width: self._width,
+                            videoId: self._code,
+                            playerVars: self._params,
+                            events: {
+
+                                /**
+                                 * @private
+                                 */
+                                'onReady': function onPlayerReady() {
+                                    self._player.getDuration();
+                                },
+
+                                /**
+                                 * State change flag init
+                                 */
+                                onStateChange: function (data) {
+                                    switch (window.parseInt(data.data, 10)) {
+                                        case 1:
+                                            self._playing = true;
+                                            break;
+                                        default:
+                                            self._playing = false;
+                                            break;
+                                    }
+
+                                    self._trigger('statechange', {}, data);
+                                }
+                            }
+
+                        });
+                    }
+                });
+
+                this._loadApi();
+            },
+
+            /**
+             * Loads Youtube API and triggers event, when loaded
+             * @private
+             */
+            _loadApi: function () {
+                var element,
+                    scriptTag;
+
+                if (videoRegister.isRegistered('youtube')) {
+                    if (videoRegister.isLoaded('youtube')) {
+                        $(window).trigger('youtubeapiready');
+                    }
+
+                    return;
+                }
+                videoRegister.register('youtube');
+
+                element = document.createElement('script');
+                scriptTag = document.getElementsByTagName('script')[0];
+
+                element.async = true;
+                element.src = 'https://www.youtube.com/iframe_api';
+                scriptTag.parentNode.insertBefore(element, scriptTag);
+
+                /**
+                 * Trigger youtube api ready event
+                 */
+                window.onYouTubeIframeAPIReady = function () {
+                    $(window).trigger('youtubeapiready');
+                    videoRegister.register('youtube', true);
+                };
+            },
+
+            /**
+             * Play command for Youtube
+             */
+            play: function () {
+                this._player.playVideo();
+                this._playing = true;
+            },
+
+            /**
+             * Pause command for Youtube
+             */
+            pause: function () {
+                this._player.pauseVideo();
+                this._playing = false;
+            },
+
+            /**
+             * Stop command for Youtube
+             */
+            stop: function () {
+                this._player.stopVideo();
+                this._playing = false;
+            },
+
+            /**
+             * Playing command for Youtube
+             */
+            playing: function () {
+                return this._playing;
+            },
+
+            /**
+             * stops and unloads player
+             * @private
+             */
+            destroy: function () {
+                this.stop();
+                this._player.destroy();
+            }
+        });
+
+        $.widget('mage.videoVimeo', $.mage.productVideoLoader, {
+
+            /**
+             * Initialize the Vimeo widget
+             * @private
+             */
+            _create: function () {
+                var timestamp,
+                    src,
+                    additionalParams;
+
+                this._initialize();
+                timestamp = new Date().getTime();
+
+                if (this._autoplay) {
+                    additionalParams += '&autoplay=1';
+                }
+
+                src = 'http://player.vimeo.com/video/' +
+                    this._code + '?api=1&player_id=vimeo' +
+                    this._code +
+                    timestamp +
+                    additionalParams;
+                this.element.append(
+                    $('<iframe/>')
+                        .attr('frameborder', 0)
+                        .attr('id', 'vimeo' + this._code + timestamp)
+                        .attr('width', this._width)
+                        .attr('height', this._height)
+                        .attr('src', src)
+                );
+
+            }
+        });
+
+        $.widget('mage.videoData', {
+            options: {
+                youtubeKey: '',
+                eventSource: '' //where is data going from - focus out or click on button
+            },
+
+            _REQUEST_VIDEO_INFORMATION_TRIGGER: 'update_video_information',
+
+            _UPDATE_VIDEO_INFORMATION_TRIGGER: 'updated_video_information',
+
+            _ERROR_UPDATE_INFORMATION_TRIGGER: 'error_updated_information',
+
+            _videoInformation: null,
+
+            /**
+             * @private
+             */
+            _init: function () {
+                this._onRequestHandler();
+            },
+
+            /**
+             * @private
+             */
+            _onRequestHandler: function () {
+                var url = this.element.val(),
+                    self = this,
+                    videoInfo,
+                    type,
+                    id,
+                    googleapisUrl;
+
+                if (!url) {
+                    //this._onRequestError("Video url is undefined");
+                    return;
+                }
+
+                videoInfo = this._validateURL(url);
+
+                if (!videoInfo) {
+                    this._onRequestError('Invalid video url');
+
+                    return;
+                }
+
+                /**
+                 *
+                 * @param {Object} data
+                 * @private
+                 */
+                function _onYouTubeLoaded(data) {
+                    var tmp,
+                        uploadedFormatted,
+                        respData,
+                        createErrorMessage;
+
+                    /**
+                     * Create errors message
+                     *
+                     * @returns {String}
+                     */
+                    createErrorMessage = function () {
+                        var error = data.error,
+                            errors = error.errors,
+                            i,
+                            errLength = errors.length,
+                            tmpError,
+                            errReason,
+                            errorsMessage = [];
+
+                        for (i = 0; i < errLength; i++) {
+                            tmpError = errors[i];
+                            errReason = tmpError.reason;
+
+                            if (['keyInvalid'].indexOf(errReason) !== -1) {
+                                errorsMessage.push('Youtube API key is invalid');
+
+                                break;
+                            }
+
+                            errorsMessage.push(tmpError.message);
+                        }
+
+                        return 'Video cant be shown due to the following reason: ' + $.unique(errorsMessage).join(', ');
+                    };
+
+                    if (data.error && data.error.code === 400) {
+                        this._onRequestError(createErrorMessage());
+
+                        return;
+                    }
+
+                    if (!data.items || data.items.length < 1) {
+                        this._onRequestError('Video not found');
+
+                        return;
+                    }
+
+                    tmp = data.items[0];
+                    uploadedFormatted = tmp.snippet.publishedAt.replace('T', ' ').replace(/\..+/g, '');
+                    respData = {
+                        duration: this._formatYoutubeDuration(tmp.contentDetails.duration),
+                        channel: tmp.snippet.channelTitle,
+                        channelId: tmp.snippet.channelId,
+                        uploaded: uploadedFormatted,
+                        title: tmp.snippet.localized.title,
+                        description: tmp.snippet.description,
+                        thumbnail: tmp.snippet.thumbnails.high.url,
+                        videoId: videoInfo.id,
+                        videoProvider: videoInfo.type
+                    };
+                    this._videoInformation = respData;
+                    this.element.trigger(this._UPDATE_VIDEO_INFORMATION_TRIGGER, respData);
+                }
+
+                /**
+                 * @private
+                 */
+                function _onVimeoLoaded(data) {
+                    var tmp = data[0],
+                        respData;
+
+                    if (data.length < 1) {
+                        this._onRequestError('Video not found');
+
+                        return null;
+                    }
+                    tmp = data[0];
+                    respData = {
+                        duration: this._formatVimeoDuration(tmp.duration),
+                        channel: tmp['user_name'],
+                        channelId: tmp['user_url'],
+                        uploaded: tmp['upload_date'],
+                        title: tmp.title,
+                        description: tmp.description.replace(/(&nbsp;|<([^>]+)>)/ig, ''),
+                        thumbnail: tmp['thumbnail_large'],
+                        videoId: videoInfo.id,
+                        videoProvider: videoInfo.type
+                    };
+                    this._videoInformation = respData;
+                    this.element.trigger(this._UPDATE_VIDEO_INFORMATION_TRIGGER, respData);
+                }
+
+                type = videoInfo.type;
+                id = videoInfo.id;
+
+                if (type === 'youtube') {
+                    googleapisUrl = 'https://www.googleapis.com/youtube/v3/videos?id=' +
+                        id +
+                        '&part=snippet,contentDetails,statistics,status&key=' +
+                        this.options.youtubeKey + '&alt=json&callback=?';
+                    $.getJSON(googleapisUrl,
+                        {
+                            format: 'json'
+                        },
+                        $.proxy(_onYouTubeLoaded, self)
+                    ).fail(
+                        function () {
+                            self._onRequestError('Video not found');
+                        }
+                    );
+                } else if (type === 'vimeo') {
+                    $.getJSON('http://www.vimeo.com/api/v2/video/' + id + '.json?callback=?',
+                        {
+                            format: 'json'
+                        },
+                        $.proxy(_onVimeoLoaded, self)
+                    ).fail(
+                        function () {
+                            self._onRequestError('Video not found');
+                        }
+                    );
+                }
+            },
+
+            /**
+             * @private
+             */
+            _onRequestError: function (error) {
+                this._videoInformation = null;
+                this.element.trigger(this._ERROR_UPDATE_INFORMATION_TRIGGER, error);
+                this.element.val('');
+                alert({
+                    content: 'Error: "' + error + '"'
+                });
+            },
+
+            /**
+             * @private
+             */
+            _formatYoutubeDuration: function (duration) {
+                var match = duration.match(/PT(\d+H)?(\d+M)?(\d+S)?/),
+                    hours = parseInt(match[1], 10) || 0,
+                    minutes = parseInt(match[2], 10) || 0,
+                    seconds = parseInt(match[3], 10) || 0;
+
+                return this._formatVimeoDuration(hours * 3600 + minutes * 60 + seconds);
+            },
+
+            /**
+             * @private
+             */
+            _formatVimeoDuration: function (seconds) {
+                return (new Date(seconds * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
+            },
+
+            /**
+             * @private
+             */
+            _parseHref: function (href) {
+                var a = document.createElement('a');
+
+                a.href = href;
+
+                return a;
+            },
+
+            /**
+             * @private
+             */
+            _validateURL: function (href, forceVideo) {
+                var id,
+                    type,
+                    ampersandPosition,
+                    vimeoRegex;
+
+                if (typeof href !== 'string') {
+                    return href;
+                }
+                href = this._parseHref(href);
+
+                if (href.host.match(/youtube\.com/) && href.search) {
+
+                    id = href.search.split('v=')[1];
+
+                    if (id) {
+                        ampersandPosition = id.indexOf('&');
+                        type = 'youtube';
+                    }
+
+                    if (id && ampersandPosition !== -1) {
+                        id = id.substring(0, ampersandPosition);
+                    }
+
+                } else if (href.host.match(/youtube\.com|youtu\.be/)) {
+                    id = href.pathname.replace(/^\/(embed\/|v\/)?/, '').replace(/\/.*/, '');
+                    type = 'youtube';
+                } else if (href.host.match(/vimeo\.com/)) {
+                    type = 'vimeo';
+                    vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
+                        '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)'
+                    ].join(''));
+                    id = href.href.match(vimeoRegex)[3];
+                }
+
+                if ((!id || !type) && forceVideo) {
+                    id = href.href;
+                    type = 'custom';
+                }
+
+                return id ? {
+                    id: id, type: type, s: href.search.replace(/^\?/, '')
+                } : false;
+            }
+        });
+    });
diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index 91041f04795..681e619a125 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -61,11 +61,9 @@ define([
 
             if (checkVideoID && checkVideoID !== this.options.videoId) {
                 this._doUpdate();
-            } else
-            if (checkVideoID && checkVideoID === this.options.videoId) {
+            } else if (checkVideoID && checkVideoID === this.options.videoId) {
                 return false;
-            } else
-            if (!checkVideoID) {
+            } else if (!checkVideoID) {
                 this._doUpdate();
             }
 
@@ -96,8 +94,7 @@ define([
                     this.options.metaData.data.uploader +
                     '</a>'
                 );
-            } else
-            if (this.options.videoProvider === 'vimeo') {
+            } else if (this.options.videoProvider === 'vimeo') {
                 $(this.options.metaData.DOM.uploader).html(
                     '<a href="' +
                     this.options.metaData.data.uploaderUrl +
@@ -887,7 +884,6 @@ define([
                 this._imageTypes.indexOf(ext.toLowerCase()) === -1 ||
                 !file.files  ||
                 !file.files.length
-
             ) {
                 prev.remove();
                 this._previewImage = null;
@@ -983,7 +979,9 @@ define([
 
             try {
                 newVideoForm.validation('clearError');
-            } catch (e) {}
+            } catch (e) {
+
+            }
             newVideoForm.trigger('reset');
         },
 
diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index afa71a52394..e5b8b801adc 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -173,7 +173,7 @@ define([
                     tmpVideoData.provider = dataUrl.type;
                 }
                 iPlace = i + 1;
-                if(tmpVideoData.isBase) {
+                if (tmpVideoData.isBase) {
                     videoData.unshift(tmpVideoData);
                     continue;
                 }
-- 
GitLab


From bcb8c1423ff147ea9649974d81eded6696d9e95d Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Tue, 27 Oct 2015 19:23:33 +0200
Subject: [PATCH 146/162] MAGETWO-44584: Error "The stock item for Product in
 option is not valid." when adding configurable product on second website

 - Fixed tests
---
 .../Magento/Framework/Search/Request/Cleaner.php |  4 ++--
 .../Adapter/Mysql/Query/Builder/MatchTest.php    |  2 +-
 .../Search/Test/Unit/Request/BinderTest.php      |  6 +++---
 .../Search/Test/Unit/Request/CleanerTest.php     | 16 ++++++++--------
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/lib/internal/Magento/Framework/Search/Request/Cleaner.php b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
index 6e8a9c4494e..6e56f281beb 100644
--- a/lib/internal/Magento/Framework/Search/Request/Cleaner.php
+++ b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
@@ -165,14 +165,14 @@ class Cleaner
         switch ($filter['type']) {
             case FilterInterface::TYPE_WILDCARD:
             case FilterInterface::TYPE_TERM:
-                if (is_string($filter['value']) && preg_match('/\$(.+)\$/si', $filter['value'], $matches)) {
+                if (!array_key_exists('is_bind', $filter)) {
                     unset($this->requestData['filters'][$filterName]);
                 }
                 break;
             case FilterInterface::TYPE_RANGE:
                 $keys = ['from', 'to'];
                 foreach ($keys as $key) {
-                    if (isset($filter[$key]) && preg_match('/\$(.+)\$/si', $filter[$key], $matches)) {
+                    if (isset($filter[$key]) && preg_match('/^\$(.+)\$$/si', $filter[$key], $matches)) {
                         unset($this->requestData['filters'][$filterName][$key]);
                     }
                 }
diff --git a/lib/internal/Magento/Framework/Search/Test/Unit/Adapter/Mysql/Query/Builder/MatchTest.php b/lib/internal/Magento/Framework/Search/Test/Unit/Adapter/Mysql/Query/Builder/MatchTest.php
index 901474b5773..00d8a26af00 100644
--- a/lib/internal/Magento/Framework/Search/Test/Unit/Adapter/Mysql/Query/Builder/MatchTest.php
+++ b/lib/internal/Magento/Framework/Search/Test/Unit/Adapter/Mysql/Query/Builder/MatchTest.php
@@ -64,7 +64,7 @@ class MatchTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $this->fulltextHelper->expects($this->once())
             ->method('getMatchQuery')
-            ->with($this->equalTo(['some_field' => 'some_field']), $this->equalTo('-some_value*'))
+            ->with($this->equalTo(['some_field' => 'some_field']), $this->equalTo('-some* -value*'))
             ->will($this->returnValue('matchedQuery'));
         $select->expects($this->once())
             ->method('where')
diff --git a/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php b/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
index 05ad64cec64..95608775bcf 100644
--- a/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
+++ b/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
@@ -51,9 +51,9 @@ class BinderTest extends \PHPUnit_Framework_TestCase
         ];
         $expectedResult = [
             'dimensions' => ['scope' => ['value' => 'default']],
-            'queries' => ['query' => ['value' => 'match_query']],
-            'filters' => ['filter' => ['from' => 'filter_from', 'to' => 'filter_to', 'value' => 'filter_value']],
-            'aggregations' => ['price' => ['method' => 'filter_method']],
+            'queries' => ['query' => ['value' => 'match_query', 'is_bind' => true]],
+            'filters' => ['filter' => ['from' => 'filter_from', 'to' => 'filter_to', 'value' => 'filter_value', 'is_bind' => true]],
+            'aggregations' => ['price' => ['method' => 'filter_method', 'is_bind' => true]],
             'from' => 1,
             'size' => 10,
         ];
diff --git a/lib/internal/Magento/Framework/Search/Test/Unit/Request/CleanerTest.php b/lib/internal/Magento/Framework/Search/Test/Unit/Request/CleanerTest.php
index a9fdb8f18f8..88bd09a498c 100644
--- a/lib/internal/Magento/Framework/Search/Test/Unit/Request/CleanerTest.php
+++ b/lib/internal/Magento/Framework/Search/Test/Unit/Request/CleanerTest.php
@@ -48,7 +48,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     ],
                     'type' => 'boolQuery',
                 ],
-                'match_query' => ['value' => 'ok', 'type' => 'matchQuery'],
+                'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true],
                 'bool_query_rm' => [
                     'queryReference' => [
                         ['ref' => 'match_query_rm'],
@@ -83,7 +83,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'filterReference' => [['ref' => 'term_filter2']],
                     'type' => 'boolFilter',
                 ],
-                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter'],
+                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true],
             ],
         ];
         $exceptedRequestData = [
@@ -93,7 +93,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'queryReference' => [['ref' => 'match_query'], ['ref' => 'filtered_query_to_filter2']],
                     'type' => 'boolQuery',
                 ],
-                'match_query' => ['value' => 'ok', 'type' => 'matchQuery'],
+                'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true],
                 'filtered_query_to_filter2' => [
                     'filterReference' => [['ref' => 'bool_filter2']],
                     'type' => 'filteredQuery',
@@ -104,7 +104,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'filterReference' => [['ref' => 'term_filter2']],
                     'type' => 'boolFilter',
                 ],
-                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter'],
+                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true],
             ],
         ];
 
@@ -129,7 +129,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     ],
                     'type' => 'boolQuery',
                 ],
-                'match_query' => ['value' => 'ok', 'type' => 'matchQuery'],
+                'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true],
                 'bool_query_rm' => [
                     'queryReference' => [
                         ['ref' => 'match_query_rm'],
@@ -164,7 +164,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'filterReference' => [['ref' => 'term_filter2']],
                     'type' => 'boolFilter',
                 ],
-                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter'],
+                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true],
             ],
         ];
         $exceptedRequestData = [
@@ -174,7 +174,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'queryReference' => [['ref' => 'match_query'], ['ref' => 'filtered_query_to_filter2']],
                     'type' => 'boolQuery',
                 ],
-                'match_query' => ['value' => 'ok', 'type' => 'matchQuery'],
+                'match_query' => ['value' => 'ok', 'type' => 'matchQuery', 'is_bind' => true],
                 'filtered_query_to_filter2' => [
                     'filterReference' => [['ref' => 'bool_filter2']],
                     'type' => 'filteredQuery',
@@ -185,7 +185,7 @@ class CleanerTest extends \PHPUnit_Framework_TestCase
                     'filterReference' => [['ref' => 'term_filter2']],
                     'type' => 'boolFilter',
                 ],
-                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter'],
+                'term_filter2' => ['value' => 'value_good', 'type' => 'termFilter', 'is_bind' => true],
             ],
             'aggregations' => [],
         ];
-- 
GitLab


From edba3248e5f5908596af41e4a5a4b5a8e897a1cf Mon Sep 17 00:00:00 2001
From: Dmitry Kologrivov <dmitry_kologrivov@epam.com>
Date: Tue, 27 Oct 2015 20:29:57 +0300
Subject: [PATCH 147/162] Small phpcs fix for JS

---
 .../ProductVideo/view/adminhtml/web/js/new-video-dialog.js      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index 681e619a125..dd184773f87 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -882,7 +882,7 @@ define([
             if (
                 ext.length < 2 ||
                 this._imageTypes.indexOf(ext.toLowerCase()) === -1 ||
-                !file.files  ||
+                !file.files ||
                 !file.files.length
             ) {
                 prev.remove();
-- 
GitLab


From f63bede13c80a1716f1dc02543ffd5085b8738e2 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Tue, 27 Oct 2015 16:20:12 -0500
Subject: [PATCH 148/162] MAGETWO-44189: Does not work to switch the language
 in the admin area  - style fix

---
 .../backend/Magento_Backend/web/css/source/module/_footer.less  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
index 7752b6d2fed..8bed4f0da21 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_footer.less
@@ -53,8 +53,8 @@
 
 //  Copyright
 .copyright {
-    text-align: left;
     margin-bottom: -.2rem;
+    text-align: left;
     position: relative;
     .link-copyright {
         display: inline-block;
-- 
GitLab


From a41315cd7226d9d34f69a2f5227ca4cdea158093 Mon Sep 17 00:00:00 2001
From: Anton Ohorodnyk <aohorodnyk@ebay.com>
Date: Wed, 28 Oct 2015 08:23:45 +0200
Subject: [PATCH 149/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

 - Fixed static tests
---
 .../Magento/Framework/Search/Request/Cleaner.php         | 2 +-
 .../Framework/Search/Test/Unit/Request/BinderTest.php    | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/internal/Magento/Framework/Search/Request/Cleaner.php b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
index 6e56f281beb..6fdbf9ec3ba 100644
--- a/lib/internal/Magento/Framework/Search/Request/Cleaner.php
+++ b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
@@ -172,7 +172,7 @@ class Cleaner
             case FilterInterface::TYPE_RANGE:
                 $keys = ['from', 'to'];
                 foreach ($keys as $key) {
-                    if (isset($filter[$key]) && preg_match('/^\$(.+)\$$/si', $filter[$key], $matches)) {
+                    if (isset($filter[$key]) && preg_match('/^\$(.+)\$$/si', $filter[$key])) {
                         unset($this->requestData['filters'][$filterName][$key]);
                     }
                 }
diff --git a/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php b/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
index 95608775bcf..dccd480ed28 100644
--- a/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
+++ b/lib/internal/Magento/Framework/Search/Test/Unit/Request/BinderTest.php
@@ -52,7 +52,14 @@ class BinderTest extends \PHPUnit_Framework_TestCase
         $expectedResult = [
             'dimensions' => ['scope' => ['value' => 'default']],
             'queries' => ['query' => ['value' => 'match_query', 'is_bind' => true]],
-            'filters' => ['filter' => ['from' => 'filter_from', 'to' => 'filter_to', 'value' => 'filter_value', 'is_bind' => true]],
+            'filters' => [
+                'filter' => [
+                    'from' => 'filter_from',
+                    'to' => 'filter_to',
+                    'value' => 'filter_value',
+                    'is_bind' => true
+                ]
+            ],
             'aggregations' => ['price' => ['method' => 'filter_method', 'is_bind' => true]],
             'from' => 1,
             'size' => 10,
-- 
GitLab


From 2d243980fac3f1a0faecb1eb77e931c3c01f788c Mon Sep 17 00:00:00 2001
From: Maksym Aposov <maposov@ebay.com>
Date: Wed, 28 Oct 2015 13:18:05 +0200
Subject: [PATCH 150/162] MAGETWO-44555: Exception in Advanced Search if used
 special symbols

---
 lib/internal/Magento/Framework/Search/Request/Cleaner.php | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/lib/internal/Magento/Framework/Search/Request/Cleaner.php b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
index 6fdbf9ec3ba..3227180eb2c 100644
--- a/lib/internal/Magento/Framework/Search/Request/Cleaner.php
+++ b/lib/internal/Magento/Framework/Search/Request/Cleaner.php
@@ -130,9 +130,8 @@ class Cleaner
                 foreach ($this->requestData['aggregations'] as $aggregationName => $aggregationValue) {
                     switch ($aggregationValue['type']) {
                         case 'dynamicBucket':
-                            if (
-                                !array_key_exists('is_bind', $aggregationValue)
-                                && is_string($aggregationValue['method'])
+                            if (is_string($aggregationValue['method'])
+                                && preg_match('/^\$(.+)\$$/si', $aggregationValue['method'])
                             ) {
                                 unset($this->requestData['aggregations'][$aggregationName]);
                             }
-- 
GitLab


From 68c79769d46c3e3c66aac1790b6a42e9524ec847 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Wed, 28 Oct 2015 14:21:26 +0300
Subject: [PATCH 151/162] Fix static tests

---
 .../Product/Gallery/RetrieveImage.php         | 58 ++-----------------
 .../ProductVideo/Setup/UpgradeData.php        |  4 +-
 .../view/adminhtml/web/js/new-video-dialog.js |  2 +-
 .../web/js/fotorama-add-video-events.js       | 11 ++--
 4 files changed, 15 insertions(+), 60 deletions(-)

diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index ad6bd76e49f..2b42fc5ffed 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -72,12 +72,13 @@ class RetrieveImage extends \Magento\Backend\App\Action
      */
     public function execute()
     {
+        $baseTmpMediaPath = $this->mediaConfig->getBaseTmpMediaPath();
         try {
             $remoteFileUrl = $this->getRequest()->getParam('remote_image');
-            $originalFileName = $this->parseOriginalFileName($remoteFileUrl);
-            $localFileName = $this->localFileName($originalFileName);
-            $localTmpFileName = $this->generateTmpFileName($localFileName);
-            $localFileMediaPath = $this->appendFileSystemPath($localTmpFileName);
+            $originalFileName = basename($remoteFileUrl);
+            $localFileName = Uploader::getCorrectFileName($originalFileName);
+            $localTmpFileName = Uploader::getDispretionPath($localFileName) . DIRECTORY_SEPARATOR . $localFileName;
+            $localFileMediaPath = $baseTmpMediaPath . ($localTmpFileName);
             $localUniqueFileMediaPath = $this->appendNewFileName($localFileMediaPath);
             $this->retrieveRemoteImage($remoteFileUrl, $localUniqueFileMediaPath);
             $localFileFullPath = $this->appendAbsoluteFileSystemPath($localUniqueFileMediaPath);
@@ -101,7 +102,7 @@ class RetrieveImage extends \Magento\Backend\App\Action
     protected function appendResultSaveRemoteImage($fileName)
     {
         $fileInfo = pathinfo($fileName);
-        $tmpFileName = $this->generateTmpFileName($fileInfo['basename']);
+        $tmpFileName = Uploader::getDispretionPath($fileInfo['basename']) . DIRECTORY_SEPARATOR . $fileInfo['basename'];
         $result['name'] = $fileInfo['basename'];
         $result['type'] = $this->imageAdapter->getMimeType();
         $result['error'] = 0;
@@ -111,16 +112,6 @@ class RetrieveImage extends \Magento\Backend\App\Action
         return $result;
     }
 
-    /**
-     * @param string $fileName
-     * @return string
-     */
-    protected function localFileName($fileName)
-    {
-        $fileName = Uploader::getCorrectFileName($fileName);
-        return $fileName;
-    }
-
     /**
      * @param string $fileUrl
      * @param string $localFilePath
@@ -152,43 +143,6 @@ class RetrieveImage extends \Magento\Backend\App\Action
         return $fileInfo['dirname'] . DIRECTORY_SEPARATOR . $fileName;
     }
 
-    /**
-     * @param string $fileUrl
-     * @return string
-     */
-    protected function parseOriginalFileName($fileUrl)
-    {
-        return basename($fileUrl);
-    }
-
-    /**
-     * @param string $fileName
-     * @return string
-     */
-    protected function generateTmpFileName($fileName)
-    {
-        return Uploader::getDispretionPath($fileName) . DIRECTORY_SEPARATOR . $fileName;
-    }
-
-    /**
-     * @param string $fileName
-     * @return string
-     */
-    protected function generateFileNameWithPath($fileName)
-    {
-        return Uploader::getDispretionPath($fileName) . DIRECTORY_SEPARATOR . $fileName;
-    }
-
-    /**
-     * @param string $localTmpFile
-     * @return string
-     */
-    protected function appendFileSystemPath($localTmpFile)
-    {
-        $pathToSave = $this->mediaConfig->getBaseTmpMediaPath();
-        return $pathToSave . $localTmpFile;
-    }
-
     /**
      * @param string $localTmpFile
      * @return string
diff --git a/app/code/Magento/ProductVideo/Setup/UpgradeData.php b/app/code/Magento/ProductVideo/Setup/UpgradeData.php
index ed76fb19199..b1e418c0f39 100644
--- a/app/code/Magento/ProductVideo/Setup/UpgradeData.php
+++ b/app/code/Magento/ProductVideo/Setup/UpgradeData.php
@@ -53,7 +53,9 @@ class UpgradeData implements UpgradeDataInterface
                 $attributeSetId,
                 'Image Management'
             );
-            if (isset($attributeGroup['attribute_group_name']) && $attributeGroup['attribute_group_name'] == 'Image Management') {
+            if (isset($attributeGroup['attribute_group_name'])
+                && $attributeGroup['attribute_group_name'] == 'Image Management'
+            ) {
                 // update General Group
                 $categorySetup->updateAttributeGroup(
                     $entityTypeId,
diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
index dd184773f87..fe8e76ded23 100644
--- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
+++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js
@@ -467,7 +467,7 @@ define([
                 name: 'product[media_gallery][images][' + newImageId + '][save_data_from]'
             }).val(key);
 
-            oldNewFilePosition = parseInt(tmpOldImage.position);
+            oldNewFilePosition = parseInt(tmpOldImage.position, 10);
             imageData.position = oldNewFilePosition;
 
             $(this._imageWidgetSelector).trigger('setPosition', {
diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
index e5b8b801adc..16f3aa9f922 100644
--- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
+++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js
@@ -142,8 +142,7 @@ define([
                 dataUrl,
                 tmpVideoData,
                 tmpInputData,
-                i,
-                iPlace;
+                i;
 
             if (isJSON) {
                 inputData = $.parseJSON(inputData);
@@ -172,14 +171,14 @@ define([
                     tmpVideoData.id = dataUrl.id;
                     tmpVideoData.provider = dataUrl.type;
                 }
-                iPlace = i + 1;
+
                 if (tmpVideoData.isBase) {
                     videoData.unshift(tmpVideoData);
-                    continue;
+                } else {
+                    videoData.push(tmpVideoData);
                 }
-
-                videoData.push(tmpVideoData);
             }
+
             return videoData;
         },
 
-- 
GitLab


From d9b7daa1f193d88dfb93255bd11373890f9cb980 Mon Sep 17 00:00:00 2001
From: Volodymyr Klymenko <vklymenko@ebay.com>
Date: Wed, 28 Oct 2015 13:43:34 +0200
Subject: [PATCH 152/162] MAGETWO-44707: Remove @api sign from CatalogInventory
 module

---
 .../CatalogInventory/Api/Data/StockCollectionInterface.php       | 1 -
 app/code/Magento/CatalogInventory/Api/Data/StockInterface.php    | 1 -
 .../CatalogInventory/Api/Data/StockItemCollectionInterface.php   | 1 -
 .../Magento/CatalogInventory/Api/Data/StockItemInterface.php     | 1 -
 .../CatalogInventory/Api/Data/StockStatusCollectionInterface.php | 1 -
 .../Magento/CatalogInventory/Api/Data/StockStatusInterface.php   | 1 -
 .../Magento/CatalogInventory/Api/StockConfigurationInterface.php | 1 -
 app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php | 1 -
 app/code/Magento/CatalogInventory/Api/StockIndexInterface.php    | 1 -
 .../Magento/CatalogInventory/Api/StockItemCriteriaInterface.php  | 1 -
 .../CatalogInventory/Api/StockItemRepositoryInterface.php        | 1 -
 .../Magento/CatalogInventory/Api/StockManagementInterface.php    | 1 -
 app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php | 1 -
 .../Magento/CatalogInventory/Api/StockRepositoryInterface.php    | 1 -
 app/code/Magento/CatalogInventory/Api/StockStateInterface.php    | 1 -
 .../CatalogInventory/Api/StockStatusCriteriaInterface.php        | 1 -
 .../CatalogInventory/Api/StockStatusRepositoryInterface.php      | 1 -
 .../Model/ResourceModel/Indexer/Stock/StockInterface.php         | 1 -
 18 files changed, 18 deletions(-)

diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
index a656b049c93..90e5081733e 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
@@ -13,7 +13,6 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Interface StockCollectionInterface
- * @api
  */
 interface StockCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
index 8908ea0ee96..47bd9b85cc3 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
@@ -9,7 +9,6 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface Stock
- * @api
  */
 interface StockInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
index ee670c352f1..80436c5427b 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
@@ -13,7 +13,6 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Interface StockItemCollectionInterface
- * @api
  */
 interface StockItemCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
index 0c4216fd46a..0a620ce1562 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
@@ -9,7 +9,6 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface StockItem
- * @api
  */
 interface StockItemInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
index a06aa1ebd0a..b46ccbf5c94 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
@@ -9,7 +9,6 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Stock Status collection interface
- * @api
  */
 interface StockStatusCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
index f4996ac62ec..3c90ea45177 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
@@ -9,7 +9,6 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface StockStatusInterface
- * @api
  */
 interface StockStatusInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
index 7b4179c7a71..5052ea004b2 100644
--- a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockConfigurationInterface
- * @api
  */
 interface StockConfigurationInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
index 15e299f8591..537db0ce5af 100644
--- a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockCriteriaInterface
- * @api
  */
 interface StockCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
index f57936402f0..6edba0a23b5 100644
--- a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockIndexInterface
- * @api
  */
 interface StockIndexInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
index df76cc37f31..878aa26d3c2 100644
--- a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockItemCriteriaInterface
- * @api
  */
 interface StockItemCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
index 97804d70437..17a22876922 100644
--- a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockItemRepository
- * @api
  */
 interface StockItemRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
index b4cd1008bf5..748ed9b39cf 100644
--- a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockManagementInterface
- * @api
  */
 interface StockManagementInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
index 95c848f1865..27f90e740f9 100644
--- a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockRegistryInterface
- * @api
  */
 interface StockRegistryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
index 28b839c6fed..06f5d2f4e9c 100644
--- a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockRepositoryInterface
- * @api
  */
 interface StockRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
index 140ccee031b..490f92644df 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStateInterface
- * @api
  */
 interface StockStateInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
index 7b5dfafa311..af80ddd5c5c 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStatusCriteriaInterface
- * @api
  */
 interface StockStatusCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
index 7a8ac825654..b531c815ceb 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStatusRepositoryInterface
- * @api
  */
 interface StockStatusRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
index 8612b0ba525..32b75680fbc 100644
--- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
+++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
@@ -7,7 +7,6 @@ namespace Magento\CatalogInventory\Model\ResourceModel\Indexer\Stock;
 
 /**
  * CatalogInventory Stock Indexer Interface
- * @api
  */
 interface StockInterface
 {
-- 
GitLab


From de54a9f2cec346534fc33934bc93d3a2ffef95b2 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Wed, 28 Oct 2015 14:43:54 +0300
Subject: [PATCH 153/162] Fix static tests

---
 lib/internal/Magento/Framework/Config/View.php | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php
index d4fdf5f10f8..cc67a3fce6c 100644
--- a/lib/internal/Magento/Framework/Config/View.php
+++ b/lib/internal/Magento/Framework/Config/View.php
@@ -27,11 +27,6 @@ class View extends \Magento\Framework\Config\AbstractXml
      */
     protected $xpath;
 
-    /**
-     * @var Reader
-     */
-    private $xsdReader;
-
     /**
      * @param array $configFiles
      * @param UrnResolver $urnResolver
-- 
GitLab


From 09c5525a5f722b590b9d5162a91c49fad3ad09e8 Mon Sep 17 00:00:00 2001
From: Mikalai_Shostka <mikalai_shostka@epam.com>
Date: Wed, 28 Oct 2015 16:49:39 +0300
Subject: [PATCH 154/162] Add supress warning

---
 .../Controller/Adminhtml/Product/Gallery/RetrieveImage.php     | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
index ad6bd76e49f..0ab24a1a2f6 100644
--- a/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
+++ b/app/code/Magento/ProductVideo/Controller/Adminhtml/Product/Gallery/RetrieveImage.php
@@ -8,6 +8,9 @@ namespace Magento\ProductVideo\Controller\Adminhtml\Product\Gallery;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\File\Uploader;
 
+/**
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
 class RetrieveImage extends \Magento\Backend\App\Action
 {
     /**
-- 
GitLab


From c1e27365c9e15b2396899fbaa36f2ec7dcbd7402 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 10:02:05 -0500
Subject: [PATCH 155/162] MAGETWO-43679: Fixed XML validation happens in
 production mode

---
 .../Media/Synchronization/SuccessTest.php     | 101 ------------------
 .../Model/Attribute/Config/ReaderTest.php     |   4 +-
 .../Unit/Model/Attribute/Config/XsdTest.php   |   5 +-
 .../Config/Model/Config/Structure/Reader.php  |   2 +-
 .../Unit/Model/Address/Config/ReaderTest.php  |   4 +-
 .../Unit/Model/Address/Config/XsdTest.php     |   5 +-
 .../Unit/Model/Template/Config/ReaderTest.php |   8 +-
 .../Unit/Model/Template/Config/XsdTest.php    |   5 +-
 .../Unit/Model/Config/Integration/XsdTest.php |   5 +-
 .../Test/Unit/Model/Config/XsdTest.php        |   5 +-
 .../Model/Order/Pdf/Config/ReaderTest.php     |   4 +-
 .../Unit/Model/Order/Pdf/Config/XsdTest.php   |   5 +-
 .../TestCase/AbstractConfigFiles.php          |   8 +-
 .../Config/Structure/Reader/ReaderTest.php    |   4 +-
 .../Modular/AbstractMergedConfigTest.php      |  15 ++-
 .../Integrity/Modular/AclConfigFilesTest.php  |   5 +-
 .../Test/Integrity/Modular/CacheFilesTest.php |   2 +-
 .../Integrity/Modular/DiConfigFilesTest.php   |   2 +-
 .../Modular/EavAttributesConfigFilesTest.php  |   2 +-
 .../Modular/EventConfigFilesTest.php          |   5 +-
 .../Modular/ExportConfigFilesTest.php         |   2 +-
 .../Modular/ImportConfigFilesTest.php         |   2 +-
 .../Modular/IndexerConfigFilesTest.php        |   5 +-
 .../Catalog/AttributeConfigFilesTest.php      |   5 +-
 .../Customer/AddressFormatsFilesTest.php      |   5 +-
 .../Email/EmailTemplateConfigFilesTest.php    |   7 +-
 .../Magento/Sales/PdfConfigFilesTest.php      |   7 +-
 .../Modular/MviewConfigFilesTest.php          |   5 +-
 .../Modular/ProductOptionsConfigFilesTest.php |   2 +-
 .../Modular/ProductTypesConfigFilesTest.php   |   2 +-
 .../Modular/ResourcesConfigFilesTest.php      |   2 +-
 .../Modular/RouteConfigFilesTest.php          |  28 ++++-
 .../Integrity/Modular/ViewConfigFilesTest.php |   5 +-
 .../Test/Integrity/Theme/XmlFilesTest.php     |  25 ++++-
 .../App/Language/CircularDependencyTest.php   |  29 ++++-
 .../ExtensionAttribute/Config/XsdTest.php     |   5 +-
 .../App/Arguments/ValidationState.php         |   2 +-
 .../Framework/App/Config/Initial/Reader.php   |  16 ++-
 .../Magento/Framework/App/Language/Config.php |  21 ++--
 .../Test/Unit/Config/Initial/ReaderTest.php   |  41 +++++--
 .../App/Test/Unit/Language/ConfigTest.php     |  20 +++-
 .../Magento/Framework/Config/AbstractXml.php  |  44 ++++----
 lib/internal/Magento/Framework/Config/Dom.php |  19 +++-
 .../Magento/Framework/Config/DomFactory.php   |   5 +-
 .../Framework/Config/Reader/Filesystem.php    |  22 ++--
 .../Framework/Config/Test/Unit/DomTest.php    |  30 ++++--
 .../Test/Unit/Reader/FilesystemTest.php       |   8 +-
 .../Config/Test/Unit/ValidationStateTest.php  |   8 +-
 .../Config/ValidationStateInterface.php       |   2 +-
 .../Magento/Framework/Config/View.php         |  11 +-
 .../Indexer/Test/Unit/Config/ReaderTest.php   |   4 +-
 .../Mview/Test/Unit/Config/ReaderTest.php     |   4 +-
 .../ObjectManager/Config/Reader/Dom.php       |   8 +-
 .../Config/Reader/_files/ConfigDomMock.php    |   2 +-
 .../Magento/Framework/Validator/Config.php    |  15 +--
 .../Validator/Test/Unit/ConfigTest.php        |  21 +++-
 .../Magento/Framework/View/Config.php         |   9 +-
 .../Element/UiComponent/Config/DomMerger.php  |  26 +++--
 .../Framework/View/PageLayout/Config.php      |  12 ++-
 .../Framework/View/Test/Unit/ConfigTest.php   |   2 +-
 .../View/Test/Unit/PageLayout/ConfigTest.php  |  23 +++-
 61 files changed, 437 insertions(+), 270 deletions(-)
 delete mode 100644 app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php

diff --git a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php b/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php
deleted file mode 100644
index a33e8800f2e..00000000000
--- a/app/code/Magento/AdminNotification/Test/Unit/Model/System/Message/Media/Synchronization/SuccessTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\AdminNotification\Test\Unit\Model\System\Message\Media\Synchronization;
-
-class SuccessTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_syncFlagMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $_fileStorage;
-
-    /**
-     * @var \Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success
-     */
-    protected $_model;
-
-    protected function setUp()
-    {
-        $this->_syncFlagMock = $this->getMock(
-            'Magento\MediaStorage\Model\File\Storage\Flag',
-            ['getState', 'getFlagData', 'setState', '__sleep', '__wakeup', 'save'],
-            [],
-            '',
-            false
-        );
-
-        $this->_fileStorage = $this->getMock('Magento\MediaStorage\Model\File\Storage\Flag', [], [], '', false);
-        $this->_fileStorage->expects($this->any())->method('loadSelf')->will($this->returnValue($this->_syncFlagMock));
-
-        $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-        $arguments = ['fileStorage' => $this->_fileStorage];
-        $this->_model = $objectManagerHelper->getObject(
-            'Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success',
-            $arguments
-        );
-    }
-
-    public function testGetText()
-    {
-        $messageText = 'Synchronization of media storages has been completed';
-
-        $this->assertContains($messageText, (string)$this->_model->getText());
-    }
-
-    /**
-     * @param bool $expectedFirstRun
-     * @param array $data
-     * @param int|bool $state
-     * @return void
-     * @dataProvider isDisplayedDataProvider
-     */
-    public function testIsDisplayed($expectedFirstRun, $data, $state)
-    {
-        $arguments = ['fileStorage' => $this->_fileStorage];
-        $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
-
-        $this->_syncFlagMock->expects($this->any())->method('getState')->will($this->returnValue($state));
-        $this->_syncFlagMock->expects($this->any())->method('getFlagData')->will($this->returnValue($data));
-
-        // create new instance to ensure that it hasn't been displayed yet (var $this->_isDisplayed is unset)
-        /** @var $model \Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success */
-        $model = $objectManagerHelper->getObject(
-            'Magento\AdminNotification\Model\System\Message\Media\Synchronization\Success',
-            $arguments
-        );
-        //check first call
-        $this->assertEquals($expectedFirstRun, $model->isDisplayed());
-        //check second call
-        $this->assertEquals($expectedFirstRun, $model->isDisplayed());
-    }
-
-    public function isDisplayedDataProvider()
-    {
-        return [
-            [false, ['has_errors' => 1], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED],
-            [false, ['has_errors' => true], false],
-            [true, [], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED],
-            [false, ['has_errors' => 0], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_RUNNING],
-            [true, ['has_errors' => 0], \Magento\MediaStorage\Model\File\Storage\Flag::STATE_FINISHED]
-        ];
-    }
-
-    public function testGetIdentity()
-    {
-        $this->assertEquals('MEDIA_SYNCHRONIZATION_SUCCESS', $this->_model->getIdentity());
-    }
-
-    public function testGetSeverity()
-    {
-        $severity = \Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR;
-        $this->assertEquals($severity, $this->_model->getSeverity());
-    }
-}
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
index 3121a3036b9..eceaee7d0dc 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/ReaderTest.php
@@ -73,7 +73,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->_schemaLocator = new \Magento\Catalog\Model\Attribute\Config\SchemaLocator($moduleReader);
 
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Catalog\Model\Attribute\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
index 033cd503892..da8c9b00333 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php
@@ -27,7 +27,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Config/Model/Config/Structure/Reader.php b/app/code/Magento/Config/Model/Config/Structure/Reader.php
index 45c04eeb4f0..c5a082b32fc 100644
--- a/app/code/Magento/Config/Model/Config/Structure/Reader.php
+++ b/app/code/Magento/Config/Model/Config/Structure/Reader.php
@@ -100,7 +100,7 @@ class Reader extends \Magento\Framework\Config\Reader\Filesystem
             }
         }
 
-        if ($this->_isValidated) {
+        if ($this->validationState->isValidationRequired()) {
             $errors = [];
             if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
                 $message = "Invalid Document \n";
diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
index 751b2b8cf68..558d5845f1f 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/ReaderTest.php
@@ -74,7 +74,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_schemaLocator = new \Magento\Customer\Model\Address\Config\SchemaLocator($moduleReader);
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Customer\Model\Address\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
index a6926146177..3b3ac8221cb 100644
--- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/XsdTest.php
@@ -27,7 +27,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php b/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
index e572b67abee..baf28034f78 100644
--- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
+++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/ReaderTest.php
@@ -69,8 +69,10 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         );
         $schemaLocator = new \Magento\Email\Model\Template\Config\SchemaLocator($moduleReader);
 
-        $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface', [], [], '', true);
+        $validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_moduleDirResolver = $this->getMock(
             'Magento\Framework\Module\Dir\ReverseResolver',
@@ -109,7 +111,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             $fileResolver,
             $this->_converter,
             $schemaLocator,
-            $validationState
+            $validationStateMock
         );
     }
 
diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php b/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
index f2eb7b69f76..ed03f792be1 100644
--- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
+++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/XsdTest.php
@@ -113,7 +113,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     protected function _testXmlAgainstXsd($fixtureXml, $schemaFile, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php b/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
index 5413ec66a33..e3988ecdbb1 100644
--- a/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Model/Config/Integration/XsdTest.php
@@ -30,8 +30,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
diff --git a/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php b/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
index 8e1c4195a34..ee833328e24 100644
--- a/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
+++ b/app/code/Magento/Integration/Test/Unit/Model/Config/XsdTest.php
@@ -30,8 +30,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
index 50407a1fbd1..b00d3207cf4 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/ReaderTest.php
@@ -74,7 +74,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_schemaLocator = new \Magento\Sales\Model\Order\Pdf\Config\SchemaLocator($moduleReader);
         $this->_validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $this->_validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $this->_validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Sales\Model\Order\Pdf\Config\Reader(
             $this->_fileResolverMock,
diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
index df9683026fa..01fe130398c 100644
--- a/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
+++ b/app/code/Magento/Sales/Test/Unit/Model/Order/Pdf/Config/XsdTest.php
@@ -55,7 +55,10 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     protected function _testSchema($schema, $fixtureXml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, '%message%');
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, '%message%');
         $actualResult = $dom->validate($schema, $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
diff --git a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
index b6accb73fb6..086b657047d 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php
@@ -51,7 +51,7 @@ abstract class AbstractConfigFiles extends \PHPUnit_Framework_TestCase
             $validateStateMock = $this->getMockBuilder(
                 'Magento\Framework\Config\ValidationStateInterface'
             )->disableOriginalConstructor()->getMock();
-            $validateStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+            $validateStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
             $this->_reader = $this->_objectManager->create(
                 $this->_getReaderClassName(),
@@ -79,7 +79,11 @@ abstract class AbstractConfigFiles extends \PHPUnit_Framework_TestCase
         if ($skip) {
             $this->markTestSkipped('There are no xml files in the system for this test.');
         }
-        $domConfig = new \Magento\Framework\Config\Dom($file);
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(false);
+        $domConfig = new \Magento\Framework\Config\Dom($file, $validationStateMock);
+        $errors = [];
         $result = $domConfig->validate($this->_schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php b/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
index 03d1d6f2471..274825a41ca 100644
--- a/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
+++ b/dev/tests/integration/testsuite/Magento/Paypal/Model/Config/Structure/Reader/ReaderTest.php
@@ -62,7 +62,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->fileUtility = \Magento\Framework\App\Utility\Files::init();
 
         $this->validationStateMock = $this->getMockBuilder('Magento\Framework\Config\ValidationStateInterface')
-            ->setMethods(['isValidated'])
+            ->setMethods(['isValidationRequired'])
             ->getMockForAbstractClass();
         $this->schemaLocatorMock = $this->getMockBuilder('Magento\Config\Model\Config\SchemaLocator')
             ->disableOriginalConstructor()
@@ -72,7 +72,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             ->getMockForAbstractClass();
 
         $this->validationStateMock->expects($this->atLeastOnce())
-            ->method('isValidated')
+            ->method('isValidationRequired')
             ->willReturn(false);
         $this->schemaLocatorMock->expects($this->atLeastOnce())
             ->method('getPerFileSchema')
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
index bc0518559ba..051b7e891ac 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AbstractMergedConfigTest.php
@@ -39,15 +39,28 @@ abstract class AbstractMergedConfigTest extends \PHPUnit_Framework_TestCase
         $invalidFiles = [];
 
         $files = $this->getConfigFiles();
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(false);
         $mergedConfig = new \Magento\Framework\Config\Dom(
             '<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></config>',
+            $validationStateMock,
             $this->getIdAttributes()
         );
 
         foreach ($files as $file) {
             $content = file_get_contents($file[0]);
             try {
-                new \Magento\Framework\Config\Dom($content, $this->getIdAttributes());
+                $validationStateMock = $this->getMock(
+                    '\Magento\Framework\Config\ValidationStateInterface',
+                    [],
+                    [],
+                    '',
+                    false
+                );
+                $validationStateMock->method('isValidationRequired')
+                    ->willReturn(true);
+                new \Magento\Framework\Config\Dom($content, $validationStateMock, $this->getIdAttributes());
                 //merge won't be performed if file is invalid because of exception thrown
                 $mergedConfig->merge($content);
             } catch (\Magento\Framework\Config\Dom\ValidationException $e) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
index c998094fc96..9b66e0702c0 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php
@@ -35,7 +35,10 @@ class AclConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testAclConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->_schemeFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
index 430cced2f1a..25051e023a5 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/CacheFilesTest.php
@@ -14,7 +14,7 @@ class CacheFilesTest extends \PHPUnit_Framework_TestCase
     public function testCacheConfig($area)
     {
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
index 42b6a74d7e0..b9c4c7cbb94 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php
@@ -108,7 +108,7 @@ class DiConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('read')->will($this->returnValue($files));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         /** @var \Magento\Framework\ObjectManager\Config\SchemaLocator $schemaLocator */
         $schemaLocator = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
index 03111c820d6..0a290d04abd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EavAttributesConfigFilesTest.php
@@ -25,7 +25,7 @@ class EavAttributesConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
index f81c30cc040..d1f2fef8a81 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/EventConfigFilesTest.php
@@ -25,7 +25,10 @@ class EventConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testEventConfigFiles($file)
     {
         $errors = [];
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
index 6229b7d06c0..00eb532d6b9 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ExportConfigFilesTest.php
@@ -25,7 +25,7 @@ class ExportConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
index dd31a3287fc..61c6c66f79c 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ImportConfigFilesTest.php
@@ -25,7 +25,7 @@ class ImportConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
 
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
index f12917f9c45..3f16450ae3e 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php
@@ -36,7 +36,10 @@ class IndexerConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testIndexerConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
index a0aaff1b953..1e4ceac5e7d 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Catalog/AttributeConfigFilesTest.php
@@ -26,7 +26,10 @@ class AttributeConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testFileFormat($file)
     {
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
index e503a543247..7cad3da12a0 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Customer/AddressFormatsFilesTest.php
@@ -27,7 +27,10 @@ class AddressFormatsFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testFileFormat($file)
     {
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($this->_schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
index 8c667e6d38c..546db270e1b 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Email/EmailTemplateConfigFilesTest.php
@@ -17,7 +17,10 @@ class EmailTemplateConfigFilesTest extends \PHPUnit_Framework_TestCase
     {
         $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
         $schemaFile = $urnResolver->getRealPath('urn:magento:module:Magento_Email:etc/email_templates.xsd');
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
@@ -78,7 +81,7 @@ class EmailTemplateConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testMergedFormat()
     {
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationState->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         /** @var \Magento\Email\Model\Template\Config\Reader $reader */
         $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
             'Magento\Email\Model\Template\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
index 1bd81dbb001..f65f0fab665 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/Magento/Sales/PdfConfigFilesTest.php
@@ -19,7 +19,10 @@ class PdfConfigFilesTest extends \PHPUnit_Framework_TestCase
         );
         $schemaFile = $schemaLocator->getPerFileSchema();
 
-        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $dom = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $dom->validate($schemaFile, $errors);
         $this->assertTrue($result, print_r($errors, true));
     }
@@ -35,7 +38,7 @@ class PdfConfigFilesTest extends \PHPUnit_Framework_TestCase
     public function testMergedFormat()
     {
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationState->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
 
         /** @var \Magento\Sales\Model\Order\Pdf\Config\Reader $reader */
         $reader = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
index d112c6d50d3..0393ef43ecd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/MviewConfigFilesTest.php
@@ -36,7 +36,10 @@ class MviewConfigFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testIndexerConfigFile($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $validationStateMock);
         $result = $domConfig->validate($this->schemaFile, $errors);
         $message = "Invalid XML-file: {$file}\n";
         foreach ($errors as $error) {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
index 17b6e7dab79..77901d2d252 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductOptionsConfigFilesTest.php
@@ -31,7 +31,7 @@ class ProductOptionsConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->_model = $objectManager->create(
             'Magento\Catalog\Model\ProductOptions\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
index cf19b7a61da..0b21c161b14 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ProductTypesConfigFilesTest.php
@@ -27,7 +27,7 @@ class ProductTypesConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->_model = $objectManager->create(
             'Magento\Catalog\Model\ProductTypes\Config\Reader',
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
index 044605bcc3b..ad967592e61 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ResourcesConfigFilesTest.php
@@ -27,7 +27,7 @@ class ResourcesConfigFilesTest extends \PHPUnit_Framework_TestCase
         $fileResolverMock = $this->getMock('Magento\Framework\Config\FileResolverInterface');
         $fileResolverMock->expects($this->any())->method('get')->will($this->returnValue($xmlFiles));
         $validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $validationStateMock->expects($this->any())->method('isValidationRequired')->will($this->returnValue(true));
         $deploymentConfigMock = $this->getMock('Magento\Framework\App\DeploymentConfig', [], [], '', false);
         $deploymentConfigMock->expects($this->any())->method('getConfiguration')->will($this->returnValue([]));
         $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
index 16bc451c47c..cecf1bf93bd 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/RouteConfigFilesTest.php
@@ -9,6 +9,11 @@ use Magento\Framework\Component\ComponentRegistrar;
 
 class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+
+    protected $validationStateMock;
     /**
      * attributes represent merging rules
      * copied from original class \Magento\Framework\App\Route\Config\Reader
@@ -36,6 +41,15 @@ class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
+        $this->validationStateMock = $this->getMock(
+            '\Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
         $this->schemaFile = $urnResolver->getRealPath('urn:magento:framework:App/etc/routes.xsd');
         $this->mergedSchemaFile = $urnResolver->getRealPath('urn:magento:framework:App/etc/routes_merged.xsd');
@@ -51,12 +65,22 @@ class RouteConfigFilesTest extends \PHPUnit_Framework_TestCase
             $mask = $moduleDir . '/etc/*/routes.xml';
             $files = array_merge($files, glob($mask));
         }
-        $mergedConfig = new \Magento\Framework\Config\Dom('<config></config>', $this->_idAttributes);
+        $mergedConfig = new \Magento\Framework\Config\Dom(
+            '<config></config>',
+            $this->validationStateMock,
+            $this->_idAttributes
+        );
 
         foreach ($files as $file) {
             $content = file_get_contents($file);
             try {
-                new \Magento\Framework\Config\Dom($content, $this->_idAttributes, null, $this->schemaFile);
+                new \Magento\Framework\Config\Dom(
+                    $content,
+                    $this->validationStateMock,
+                    $this->_idAttributes,
+                    null,
+                    $this->schemaFile
+                );
 
                 //merge won't be performed if file is invalid because of exception thrown
                 $mergedConfig->merge($content);
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
index d65b3fa9d7c..97fbba4cb67 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/ViewConfigFilesTest.php
@@ -18,7 +18,10 @@ class ViewConfigFilesTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\View\Xsd\Reader'
         );
         $mergeXsd = $reader->read();
-        $domConfig = new \Magento\Framework\Config\Dom($file);
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domConfig = new \Magento\Framework\Config\Dom($file, $validationStateMock);
         $result = $domConfig->validate(
             $mergeXsd,
             $errors
diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
index 95a9bb0d8cb..5fcdf88564f 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php
@@ -9,6 +9,24 @@ use Magento\Framework\Component\ComponentRegistrar;
 
 class XmlFilesTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    protected $validationStateMock;
+
+    public function setUp()
+    {
+        $this->validationStateMock = $this->getMock(
+            'Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+    }
+
     /**
      * @param string $file
      * @dataProvider viewConfigFileDataProvider
@@ -19,7 +37,10 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase
             'Magento\Framework\View\Xsd\Reader'
         );
         $mergeXsd = $reader->read();
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $domConfig = new \Magento\Framework\Config\Dom(
+            file_get_contents($file),
+            $this->validationStateMock
+        );
         $errors = [];
         $result = $domConfig->validate($mergeXsd, $errors);
         $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
@@ -71,7 +92,7 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase
      */
     public function testThemeConfigFileSchema($file)
     {
-        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file));
+        $domConfig = new \Magento\Framework\Config\Dom(file_get_contents($file), $this->validationStateMock);
         $errors = [];
         $result = $domConfig->validate('urn:magento:framework:Config/etc/theme.xsd', $errors);
         $this->assertTrue($result, "Invalid XML-file: {$file}\n" . join("\n", $errors));
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
index d6e27c159ec..358b6a35af3 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php
@@ -8,7 +8,6 @@ namespace Magento\Test\Integrity\App\Language;
 
 use Magento\Framework\App\Language\Config;
 use Magento\Framework\Component\ComponentRegistrar;
-use Magento\Framework\Config\Dom\UrnResolver;
 
 class CircularDependencyTest extends \PHPUnit_Framework_TestCase
 {
@@ -22,12 +21,36 @@ class CircularDependencyTest extends \PHPUnit_Framework_TestCase
      */
     public function testCircularDependencies()
     {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $componentRegistrar = new ComponentRegistrar();
         $declaredLanguages = $componentRegistrar->getPaths(ComponentRegistrar::LANGUAGE);
-        $urnResolver = new UrnResolver();
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->any())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
+
         $packs = [];
         foreach ($declaredLanguages as $language) {
-            $languageConfig = new Config(file_get_contents($language . '/language.xml'), $urnResolver);
+            $languageConfig = $objectManager->getObject(
+                'Magento\Framework\App\Language\Config',
+                [
+                    'source' => file_get_contents($language . '/language.xml'),
+                    'domFactory' => $domFactoryMock
+                ]
+            );
             $this->packs[$languageConfig->getVendor()][$languageConfig->getPackage()] = $languageConfig;
             $packs[] = $languageConfig;
         }
diff --git a/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php b/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
index 90658f3120b..bd2ea71987f 100644
--- a/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
+++ b/lib/internal/Magento/Framework/Api/Test/Unit/ExtensionAttribute/Config/XsdTest.php
@@ -25,8 +25,11 @@ class XsdTest extends \PHPUnit_Framework_TestCase
      */
     public function testExemplarXml($fixtureXml, array $expectedErrors)
     {
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
         $messageFormat = '%message%';
-        $dom = new \Magento\Framework\Config\Dom($fixtureXml, [], null, null, $messageFormat);
+        $dom = new \Magento\Framework\Config\Dom($fixtureXml, $validationStateMock, [], null, null, $messageFormat);
         $actualResult = $dom->validate($this->_schemaFile, $actualErrors);
         $this->assertEquals($expectedErrors, $actualErrors, "Validation errors does not match.");
         $this->assertEquals(empty($expectedErrors), $actualResult, "Validation result is invalid.");
diff --git a/lib/internal/Magento/Framework/App/Arguments/ValidationState.php b/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
index 55c65798c64..8af1dedc59c 100644
--- a/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
+++ b/lib/internal/Magento/Framework/App/Arguments/ValidationState.php
@@ -27,7 +27,7 @@ class ValidationState implements \Magento\Framework\Config\ValidationStateInterf
      *
      * @return boolean
      */
-    public function isValidated()
+    public function isValidationRequired()
     {
         return $this->_appMode == \Magento\Framework\App\State::MODE_DEVELOPER;
     }
diff --git a/lib/internal/Magento/Framework/App/Config/Initial/Reader.php b/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
index d907d22223e..33f0c4cfcb3 100644
--- a/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
+++ b/lib/internal/Magento/Framework/App/Config/Initial/Reader.php
@@ -55,7 +55,7 @@ class Reader
      * @param \Magento\Framework\Config\FileResolverInterface $fileResolver
      * @param \Magento\Framework\Config\ConverterInterface $converter
      * @param SchemaLocator $schemaLocator
-     * @param \Magento\Framework\Config\ValidationStateInterface $validationState
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @param string $fileName
      * @param string $domDocumentClass
      */
@@ -63,14 +63,13 @@ class Reader
         \Magento\Framework\Config\FileResolverInterface $fileResolver,
         \Magento\Framework\Config\ConverterInterface $converter,
         SchemaLocator $schemaLocator,
-        \Magento\Framework\Config\ValidationStateInterface $validationState,
-        $fileName = 'config.xml',
-        $domDocumentClass = 'Magento\Framework\Config\Dom'
+        \Magento\Framework\Config\DomFactory $domFactory,
+        $fileName = 'config.xml'
     ) {
-        $this->_schemaFile = $validationState->isValidated() ? $schemaLocator->getSchema() : null;
+        $this->_schemaFile = $schemaLocator->getSchema();
         $this->_fileResolver = $fileResolver;
         $this->_converter = $converter;
-        $this->_domDocumentClass = $domDocumentClass;
+        $this->domFactory = $domFactory;
         $this->_fileName = $fileName;
     }
 
@@ -99,9 +98,8 @@ class Reader
         $domDocument = null;
         foreach ($fileList as $file) {
             try {
-                if ($domDocument === null) {
-                    $class = $this->_domDocumentClass;
-                    $domDocument = new $class($file, [], null, $this->_schemaFile);
+                if (!$domDocument) {
+                    $domDocument = $this->domFactory->createDom(['xml' => $file, 'schemaFile' => $this->_schemaFile]);
                 } else {
                     $domDocument->merge($file);
                 }
diff --git a/lib/internal/Magento/Framework/App/Language/Config.php b/lib/internal/Magento/Framework/App/Language/Config.php
index 84dfdfe149c..8376e47e47c 100644
--- a/lib/internal/Magento/Framework/App/Language/Config.php
+++ b/lib/internal/Magento/Framework/App/Language/Config.php
@@ -16,6 +16,11 @@ class Config
     /** @var \Magento\Framework\Config\Dom\UrnResolver */
     protected $urnResolver;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory
+     */
+    protected $domFactory;
+
     /**
      * Data extracted from the configuration file
      *
@@ -28,22 +33,18 @@ class Config
      *
      * @param string $source
      * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function __construct(
         $source,
-        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+        \Magento\Framework\Config\Dom\UrnResolver $urnResolver,
+        \Magento\Framework\Config\DomFactory $domFactory
     ) {
         $this->urnResolver = $urnResolver;
-        $config = new \DOMDocument();
-        $config->loadXML($source);
-        $errors = Dom::validateDomDocument($config, $this->getSchemaFile());
-        if (!empty($errors)) {
-            throw new \Magento\Framework\Exception\LocalizedException(
-                new \Magento\Framework\Phrase("Invalid Document: \n%1", [implode("\n", $errors)])
-            );
-        }
-        $this->_data = $this->_extractData($config);
+        $this->domFactory = $domFactory;
+        $dom = $this->domFactory->createDom(['xml' => $source, 'schemaFile' => $this->getSchemaFile()]);
+        $this->_data = $this->_extractData($dom->getDom());
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
index 4c1fde2796b..98b9d81e75b 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/ReaderTest.php
@@ -20,12 +20,12 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     protected $model;
 
     /**
-     * @var \Magento\Framework\Config\FileResolverInterface | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Config\FileResolverInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $fileResolverMock;
 
     /**
-     * @var \Magento\Framework\App\Config\Initial\Converter | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\App\Config\Initial\Converter|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $converterMock;
 
@@ -35,15 +35,20 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     protected $filePath;
 
     /**
-     * @var \Magento\Framework\Config\ValidationStateInterface | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Config\ValidationStateInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $validationStateMock;
 
     /**
-     * @var \Magento\Framework\App\Config\Initial\SchemaLocator | \PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\App\Config\Initial\SchemaLocator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $schemaLocatorMock;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $domFactoryMock;
+
     protected function setUp()
     {
         $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
@@ -58,6 +63,10 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
             false
         );
         $this->validationStateMock = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
+        $this->validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->will($this->returnValue(true));
+        $this->domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
     }
 
     public function testConstructor()
@@ -85,6 +94,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     public function testReadValidConfig()
     {
         $this->createModelAndVerifyConstructor();
+        $this->prepareDomFactoryMock();
         $testXmlFilesList = [
             file_get_contents($this->filePath . 'initial_config1.xml'),
             file_get_contents($this->filePath . 'initial_config2.xml'),
@@ -104,6 +114,24 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedConfig, $this->model->read());
     }
 
+    private function prepareDomFactoryMock()
+    {
+        $validationStateMock = $this->validationStateMock;
+        $this->domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
+    }
+
     /**
      * @covers \Magento\Framework\App\Config\Initial\Reader::read
      * @expectedException \Magento\Framework\Exception\LocalizedException
@@ -112,6 +140,7 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
     public function testReadInvalidConfig()
     {
         $this->createModelAndVerifyConstructor();
+        $this->prepareDomFactoryMock();
         $testXmlFilesList = [
             file_get_contents($this->filePath . 'invalid_config.xml'),
             file_get_contents($this->filePath . 'initial_config2.xml'),
@@ -133,17 +162,15 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
     private function createModelAndVerifyConstructor()
     {
-        $this->validationStateMock->expects($this->once())->method('isValidated')->will($this->returnValue(true));
         $schemaFile = $this->filePath . 'config.xsd';
         $this->schemaLocatorMock->expects($this->once())->method('getSchema')->will($this->returnValue($schemaFile));
-
         $this->model = $this->objectManager->getObject(
             'Magento\Framework\App\Config\Initial\Reader',
             [
                 'fileResolver' => $this->fileResolverMock,
                 'converter' => $this->converterMock,
                 'schemaLocator' => $this->schemaLocatorMock,
-                'validationState' => $this->validationStateMock
+                'domFactory' => $this->domFactoryMock
             ]
         );
     }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
index c69c340fda1..5b2f4270d21 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Language/ConfigTest.php
@@ -30,9 +30,27 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             ->method('getRealPath')
             ->with('urn:magento:framework:App/Language/package.xsd')
             ->willReturn($this->urnResolver->getRealPath('urn:magento:framework:App/Language/package.xsd'));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    return new \Magento\Framework\Config\Dom(
+                        $arguments['xml'],
+                        $validationStateMock,
+                        [],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                }
+            );
         $this->config = new Config(
             file_get_contents(__DIR__ . '/_files/language.xml'),
-            $this->urnResolverMock
+            $this->urnResolverMock,
+            $domFactoryMock
         );
     }
 
diff --git a/lib/internal/Magento/Framework/Config/AbstractXml.php b/lib/internal/Magento/Framework/Config/AbstractXml.php
index acdd49eeee2..abf16d6cd17 100644
--- a/lib/internal/Magento/Framework/Config/AbstractXml.php
+++ b/lib/internal/Magento/Framework/Config/AbstractXml.php
@@ -24,14 +24,23 @@ abstract class AbstractXml
      */
     protected $_domConfig = null;
 
+    /**
+     * @var \Magento\Framework\Config\DomFactory
+     */
+    protected $domFactory;
+
     /**
      * Instantiate with the list of files to merge
      *
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @throws \InvalidArgumentException
      */
-    public function __construct($configFiles)
-    {
+    public function __construct(
+        $configFiles,
+        \Magento\Framework\Config\DomFactory $domFactory
+    ) {
+        $this->domFactory = $domFactory;
         if (empty($configFiles)) {
             throw new \InvalidArgumentException('There must be at least one configuration file specified.');
         }
@@ -81,9 +90,7 @@ abstract class AbstractXml
                 );
             }
         }
-        if ($this->_isRuntimeValidated()) {
-            $this->_performValidate();
-        }
+        $this->_performValidate();
         return $this->_getDomConfigModel()->getDom();
     }
 
@@ -96,7 +103,9 @@ abstract class AbstractXml
      */
     protected function _performValidate($file = null)
     {
-        if (!$this->_getDomConfigModel()->validate($this->getSchemaFile(), $errors)) {
+        $errors = [];
+        $this->_getDomConfigModel()->validate($this->getSchemaFile(), $errors);
+        if (!empty($errors)) {
             $phrase = (null === $file)
                 ? new \Magento\Framework\Phrase('Invalid Document %1%2', [PHP_EOL, implode("\n", $errors)])
                 : new \Magento\Framework\Phrase('Invalid XML-file: %1%2%3', [$file, PHP_EOL, implode("\n", $errors)]);
@@ -106,16 +115,6 @@ abstract class AbstractXml
         return $this;
     }
 
-    /**
-     * Get if xml files must be runtime validated
-     *
-     * @return boolean
-     */
-    protected function _isRuntimeValidated()
-    {
-        return true;
-    }
-
     /**
      * Get Dom configuration model
      *
@@ -125,13 +124,12 @@ abstract class AbstractXml
     protected function _getDomConfigModel()
     {
         if (null === $this->_domConfig) {
-            $schemaFile = $this->getPerFileSchemaFile() &&
-                $this->_isRuntimeValidated() ? $this->getPerFileSchemaFile() : null;
-            $this->_domConfig = new \Magento\Framework\Config\Dom(
-                $this->_getInitialXml(),
-                $this->_getIdAttributes(),
-                null,
-                $schemaFile
+            $this->_domConfig = $this->domFactory->createDom(
+                [
+                    'xml' => $this->_getInitialXml(),
+                    'idAttributes' => $this->_getIdAttributes(),
+                    'schemaFile' => $this->getPerFileSchemaFile()
+                ]
             );
         }
         return $this->_domConfig;
diff --git a/lib/internal/Magento/Framework/Config/Dom.php b/lib/internal/Magento/Framework/Config/Dom.php
index 4f512fd7820..f8e910c79fa 100644
--- a/lib/internal/Magento/Framework/Config/Dom.php
+++ b/lib/internal/Magento/Framework/Config/Dom.php
@@ -30,6 +30,11 @@ class Dom
      */
     const ERROR_FORMAT_DEFAULT = "%message%\nLine: %line%\n";
 
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    private $validationState;
+
     /**
      * Dom document
      *
@@ -71,7 +76,7 @@ class Dom
     protected $rootNamespace;
 
     /**
-     * \Magento\Framework\Config\Dom\UrnResolver
+     * @var \Magento\Framework\Config\Dom\UrnResolver
      */
     private static $urnResolver;
 
@@ -82,6 +87,7 @@ class Dom
      * The path to ID attribute name should not include any attribute notations or modifiers -- only node names
      *
      * @param string $xml
+     * @param \Magento\Framework\Config\ValidationStateInterface $validationState
      * @param array $idAttributes
      * @param string $typeAttributeName
      * @param string $schemaFile
@@ -89,11 +95,13 @@ class Dom
      */
     public function __construct(
         $xml,
+        \Magento\Framework\Config\ValidationStateInterface $validationState,
         array $idAttributes = [],
         $typeAttributeName = null,
         $schemaFile = null,
         $errorFormat = self::ERROR_FORMAT_DEFAULT
     ) {
+        $this->validationState = $validationState;
         $this->schema = $schemaFile;
         $this->nodeMergingConfig = new Dom\NodeMergingConfig(new Dom\NodePathMatcher(), $idAttributes);
         $this->typeAttributeName = $typeAttributeName;
@@ -353,7 +361,7 @@ class Dom
     {
         $dom = new \DOMDocument();
         $dom->loadXML($xml);
-        if ($this->schema) {
+        if ($this->validationState->isValidationRequired() && $this->schema) {
             $errors = $this->validateDomDocument($dom, $this->schema, $this->errorFormat);
             if (count($errors)) {
                 throw new \Magento\Framework\Config\Dom\ValidationException(implode("\n", $errors));
@@ -371,8 +379,11 @@ class Dom
      */
     public function validate($schemaFileName, &$errors = [])
     {
-        $errors = $this->validateDomDocument($this->dom, $schemaFileName, $this->errorFormat);
-        return !count($errors);
+        if ($this->validationState->isValidationRequired()) {
+            $errors = $this->validateDomDocument($this->dom, $schemaFileName, $this->errorFormat);
+            return !count($errors);
+        }
+        return true;
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Config/DomFactory.php b/lib/internal/Magento/Framework/Config/DomFactory.php
index 20be79afd0f..48d000c9e02 100644
--- a/lib/internal/Magento/Framework/Config/DomFactory.php
+++ b/lib/internal/Magento/Framework/Config/DomFactory.php
@@ -24,8 +24,9 @@ class DomFactory
      *
      * @param \Magento\Framework\ObjectManagerInterface $objectManger
      */
-    public function __construct(\Magento\Framework\ObjectManagerInterface $objectManger)
-    {
+    public function __construct(
+        \Magento\Framework\ObjectManagerInterface $objectManger
+    ) {
         $this->_objectManager = $objectManger;
     }
 
diff --git a/lib/internal/Magento/Framework/Config/Reader/Filesystem.php b/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
index 992158c6edf..bbe3544318f 100644
--- a/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
+++ b/lib/internal/Magento/Framework/Config/Reader/Filesystem.php
@@ -63,11 +63,9 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
     protected $_domDocumentClass;
 
     /**
-     * Should configuration be validated
-     *
-     * @var bool
+     * @var \Magento\Framework\Config\ValidationStateInterface
      */
-    protected $_isValidated;
+    protected $validationState;
 
     /**
      * Constructor
@@ -95,10 +93,10 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
         $this->_converter = $converter;
         $this->_fileName = $fileName;
         $this->_idAttributes = array_replace($this->_idAttributes, $idAttributes);
+        $this->validationState = $validationState;
         $this->_schemaFile = $schemaLocator->getSchema();
-        $this->_isValidated = $validationState->isValidated();
-        $this->_perFileSchema = $schemaLocator->getPerFileSchema() &&
-            $this->_isValidated ? $schemaLocator->getPerFileSchema() : null;
+        $this->_perFileSchema = $schemaLocator->getPerFileSchema() && $validationState->isValidationRequired()
+            ? $schemaLocator->getPerFileSchema() : null;
         $this->_domDocumentClass = $domDocumentClass;
         $this->_defaultScope = $defaultScope;
     }
@@ -145,7 +143,7 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
                 );
             }
         }
-        if ($this->_isValidated) {
+        if ($this->validationState->isValidationRequired()) {
             $errors = [];
             if ($configMerger && !$configMerger->validate($this->_schemaFile, $errors)) {
                 $message = "Invalid Document \n";
@@ -172,7 +170,13 @@ class Filesystem implements \Magento\Framework\Config\ReaderInterface
      */
     protected function _createConfigMerger($mergerClass, $initialContents)
     {
-        $result = new $mergerClass($initialContents, $this->_idAttributes, null, $this->_perFileSchema);
+        $result = new $mergerClass(
+            $initialContents,
+            $this->validationState,
+            $this->_idAttributes,
+            null,
+            $this->_perFileSchema
+        );
         if (!$result instanceof \Magento\Framework\Config\Dom) {
             throw new \UnexpectedValueException(
                 "Instance of the DOM config merger is expected, got {$mergerClass} instead."
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
index d759359f4ef..abe3ca2a331 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/DomTest.php
@@ -7,6 +7,24 @@ namespace Magento\Framework\Config\Test\Unit;
 
 class DomTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    protected $validationStateMock;
+
+    public function setUp()
+    {
+        $this->validationStateMock = $this->getMock(
+            '\Magento\Framework\Config\ValidationStateInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+    }
+
     /**
      * @param string $xmlFile
      * @param string $newXmlFile
@@ -19,7 +37,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = file_get_contents(__DIR__ . "/_files/dom/{$xmlFile}");
         $newXml = file_get_contents(__DIR__ . "/_files/dom/{$newXmlFile}");
-        $config = new \Magento\Framework\Config\Dom($xml, $ids, $typeAttributeName);
+        $config = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, $ids, $typeAttributeName);
         $config->merge($newXml);
         $this->assertXmlStringEqualsXmlFile(__DIR__ . "/_files/dom/{$expectedXmlFile}", $config->getDom()->saveXML());
     }
@@ -87,7 +105,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = file_get_contents(__DIR__ . "/_files/dom/ambiguous_two.xml");
         $newXml = file_get_contents(__DIR__ . "/_files/dom/ambiguous_new_one.xml");
-        $config = new \Magento\Framework\Config\Dom($xml);
+        $config = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $config->merge($newXml);
     }
 
@@ -98,7 +116,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
      */
     public function testValidate($xml, array $expectedErrors)
     {
-        $dom = new \Magento\Framework\Config\Dom($xml);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $actualResult = $dom->validate(__DIR__ . '/_files/sample.xsd', $actualErrors);
         $this->assertEquals(empty($expectedErrors), $actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
@@ -125,7 +143,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
         $expectedErrors = [
             "Error: `Element 'unknown_node': This element is not expected. Expected is ( node ).`",
         ];
-        $dom = new \Magento\Framework\Config\Dom($xml, [], null, null, $errorFormat);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, [], null, null, $errorFormat);
         $actualResult = $dom->validate(__DIR__ . '/_files/sample.xsd', $actualErrors);
         $this->assertFalse($actualResult);
         $this->assertEquals($expectedErrors, $actualErrors);
@@ -139,7 +157,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = '<root><unknown_node/></root>';
         $errorFormat = '%message%,%unknown%';
-        $dom = new \Magento\Framework\Config\Dom($xml, [], null, null, $errorFormat);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock, [], null, null, $errorFormat);
         $dom->validate(__DIR__ . '/_files/sample.xsd');
     }
 
@@ -147,7 +165,7 @@ class DomTest extends \PHPUnit_Framework_TestCase
     {
         $xml = '<root><node id="id1"/><node id="id2"/></root>';
         $schemaFile = __DIR__ . '/_files/sample.xsd';
-        $dom = new \Magento\Framework\Config\Dom($xml);
+        $dom = new \Magento\Framework\Config\Dom($xml, $this->validationStateMock);
         $domMock = $this->getMock('DOMDocument', ['schemaValidate'], []);
         $domMock->expects($this->once())
             ->method('schemaValidate')
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
index 57e7a97d573..7f83867d827 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/Reader/FilesystemTest.php
@@ -104,7 +104,9 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
                 $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd')
             )
         );
-        $this->_validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $this->_validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(true);
         $model = new Filesystem(
             $this->_fileResolverMock,
             $this->_converterMock,
@@ -133,7 +135,9 @@ class FilesystemTest extends \PHPUnit_Framework_TestCase
                 $this->urnResolver->getRealPath('urn:magento:framework:Config/Test/Unit/_files/reader/schema.xsd')
             )
         );
-        $this->_validationStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true));
+        $this->_validationStateMock->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(true);
 
         $model = new Filesystem(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php b/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
index 9e0cf08004e..6026273c1fc 100644
--- a/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
+++ b/lib/internal/Magento/Framework/Config/Test/Unit/ValidationStateTest.php
@@ -10,18 +10,18 @@ class ValidationStateTest extends \PHPUnit_Framework_TestCase
     /**
      * @param string $appMode
      * @param boolean $expectedResult
-     * @dataProvider isValidatedDataProvider
+     * @dataProvider isValidationRequiredDataProvider
      */
-    public function testIsValidated($appMode, $expectedResult)
+    public function testIsValidationRequired($appMode, $expectedResult)
     {
         $model = new \Magento\Framework\App\Arguments\ValidationState($appMode);
-        $this->assertEquals($model->isValidated(), $expectedResult);
+        $this->assertEquals($model->isValidationRequired(), $expectedResult);
     }
 
     /**
      * @return array
      */
-    public function isValidatedDataProvider()
+    public function isValidationRequiredDataProvider()
     {
         return [
             [\Magento\Framework\App\State::MODE_DEVELOPER, true],
diff --git a/lib/internal/Magento/Framework/Config/ValidationStateInterface.php b/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
index 61f39fb67cc..1ad9f7b1679 100644
--- a/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
+++ b/lib/internal/Magento/Framework/Config/ValidationStateInterface.php
@@ -17,5 +17,5 @@ interface ValidationStateInterface
      *
      * @return boolean
      */
-    public function isValidated();
+    public function isValidationRequired();
 }
diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php
index 98a96140188..cdf7ec68b72 100644
--- a/lib/internal/Magento/Framework/Config/View.php
+++ b/lib/internal/Magento/Framework/Config/View.php
@@ -9,15 +9,11 @@
  */
 namespace Magento\Framework\Config;
 
-use Magento\Framework\Config\Dom\UrnResolver;
 use Magento\Framework\View\Xsd\Reader;
 use Magento\Framework\View\Xsd\Media\TypeDataExtractorPool;
 
 class View extends \Magento\Framework\Config\AbstractXml
 {
-    /** @var UrnResolver */
-    protected $urnResolver;
-
     /**
      * @var \Magento\Framework\View\Xsd\Media\TypeDataExtractorPool
      */
@@ -35,23 +31,22 @@ class View extends \Magento\Framework\Config\AbstractXml
 
     /**
      * @param array $configFiles
+     * @param DomFactory $domFactory
      * @param Reader $xsdReader
-     * @param UrnResolver $urnResolver
      * @param TypeDataExtractorPool $extractorPool
      * @param array $xpath
      */
     public function __construct(
         $configFiles,
+        DomFactory $domFactory,
         Reader $xsdReader,
-        UrnResolver $urnResolver,
         TypeDataExtractorPool $extractorPool,
         $xpath = []
     ) {
         $this->xpath = $xpath;
         $this->extractorPool = $extractorPool;
-        $this->urnResolver = $urnResolver;
         $this->xsdReader = $xsdReader;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
     
     /**
diff --git a/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php b/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
index 54f09ad6128..bff3d9e5264 100644
--- a/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
+++ b/lib/internal/Magento/Framework/Indexer/Test/Unit/Config/ReaderTest.php
@@ -34,7 +34,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
 
         $this->_converter = $this->getMock('Magento\Framework\Indexer\Config\Converter', ['convert']);
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Framework\Indexer\Config\Reader(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php b/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
index ced98682173..5f2bf50dac3 100644
--- a/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
+++ b/lib/internal/Magento/Framework/Mview/Test/Unit/Config/ReaderTest.php
@@ -44,7 +44,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
         $schemaLocator = new \Magento\Framework\Mview\Config\SchemaLocator($urnResolverMock);
 
         $validationState = $this->getMock('Magento\Framework\Config\ValidationStateInterface');
-        $validationState->expects($this->once())->method('isValidated')->will($this->returnValue(false));
+        $validationState->expects($this->any())
+            ->method('isValidationRequired')
+            ->willReturn(false);
 
         $this->_model = new \Magento\Framework\Mview\Config\Reader(
             $this->_fileResolverMock,
diff --git a/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php b/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
index 2da29257ff9..8203e4a562d 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Config/Reader/Dom.php
@@ -62,6 +62,12 @@ class Dom extends \Magento\Framework\Config\Reader\Filesystem
      */
     protected function _createConfigMerger($mergerClass, $initialContents)
     {
-        return new $mergerClass($initialContents, $this->_idAttributes, self::TYPE_ATTRIBUTE, $this->_perFileSchema);
+        return new $mergerClass(
+            $initialContents,
+            $this->validationState,
+            $this->_idAttributes,
+            self::TYPE_ATTRIBUTE,
+            $this->_perFileSchema
+        );
     }
 }
diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
index 492fbab7633..fffc1776bb0 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Reader/_files/ConfigDomMock.php
@@ -15,7 +15,7 @@ class ConfigDomMock extends \PHPUnit_Framework_TestCase
      * @param $perFileSchema
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
-    public function __construct($initialContents, $idAttributes, $typeAttribute, $perFileSchema)
+    public function __construct($initialContents, $validationState, $idAttributes, $typeAttribute, $perFileSchema)
     {
         $this->assertEquals('first content item', $initialContents);
         $this->assertEquals('xsi:type', $typeAttribute);
diff --git a/lib/internal/Magento/Framework/Validator/Config.php b/lib/internal/Magento/Framework/Validator/Config.php
index 9b10f61bb59..b45a12914e7 100644
--- a/lib/internal/Magento/Framework/Validator/Config.php
+++ b/lib/internal/Magento/Framework/Validator/Config.php
@@ -19,7 +19,6 @@ class Config extends \Magento\Framework\Config\AbstractXml
     const CONSTRAINT_TYPE_ENTITY = 'entity';
 
     const CONSTRAINT_TYPE_PROPERTY = 'property';
-
     /**#@-*/
 
     /**
@@ -32,22 +31,18 @@ class Config extends \Magento\Framework\Config\AbstractXml
      */
     protected $_builderFactory;
 
-    /** @var \Magento\Framework\Config\Dom\UrnResolver */
-    protected $urnResolver;
-
     /**
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
      * @param \Magento\Framework\Validator\UniversalFactory $builderFactory
-     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      */
     public function __construct(
         $configFiles,
-        \Magento\Framework\Validator\UniversalFactory $builderFactory,
-        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+        \Magento\Framework\Config\DomFactory $domFactory,
+        \Magento\Framework\Validator\UniversalFactory $builderFactory
     ) {
         $this->_builderFactory = $builderFactory;
-        $this->urnResolver = $urnResolver;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
 
     /**
@@ -407,7 +402,7 @@ class Config extends \Magento\Framework\Config\AbstractXml
      */
     public function getSchemaFile()
     {
-        return $this->urnResolver->getRealPath('urn:magento:framework:Validator/etc/validation.xsd');
+        return __DIR__ . '/etc/validation.xsd';
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
index 9a9bb9aafca..977cfb9adf0 100644
--- a/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
+++ b/lib/internal/Magento/Framework/Validator/Test/Unit/ConfigTest.php
@@ -55,20 +55,35 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             new \Magento\Framework\ObjectManager\Relations\Runtime()
         );
         $factory = new \Magento\Framework\ObjectManager\Factory\Dynamic\Developer($config);
-        $realObjectManager = new \Magento\Framework\ObjectManager\ObjectManager($factory, $config);
-        $factory->setObjectManager($realObjectManager);
-        $universalFactory = $realObjectManager->get('Magento\Framework\Validator\UniversalFactory');
+        $appObjectManager = new \Magento\Framework\ObjectManager\ObjectManager($factory, $config);
+        $factory->setObjectManager($appObjectManager);
+        /** @var \Magento\Framework\Validator\UniversalFactory $universalFactory */
+        $universalFactory = $appObjectManager->get('Magento\Framework\Validator\UniversalFactory');
         /** @var \Magento\Framework\Config\Dom\UrnResolver $urnResolverMock */
         $urnResolverMock = $this->getMock('Magento\Framework\Config\Dom\UrnResolver', [], [], '', false);
         $urnResolverMock->expects($this->any())
             ->method('getRealPath')
             ->with('urn:magento:framework:Validator/etc/validation.xsd')
             ->willReturn($this->urnResolver->getRealPath('urn:magento:framework:Validator/etc/validation.xsd'));
+        $appObjectManager->configure(
+            [
+                'preferences' => [
+                    'Magento\Framework\Config\ValidationStateInterface' =>
+                        'Magento\Framework\App\Arguments\ValidationState',
+                ],
+                'Magento\Framework\App\Arguments\ValidationState' => [
+                    'arguments' => [
+                        'appMode' => 'developer',
+                    ]
+                ]
+            ]
+        );
         $this->_config = $this->_objectManager->getObject(
             'Magento\Framework\Validator\Config',
             [
                 'configFiles' => $configFiles,
                 'builderFactory' => $universalFactory,
+                'domFactory' => new \Magento\Framework\Config\DomFactory($appObjectManager),
                 'urnResolver' => $urnResolverMock
             ]
         );
diff --git a/lib/internal/Magento/Framework/View/Config.php b/lib/internal/Magento/Framework/View/Config.php
index fb4c687a731..85126514bb3 100644
--- a/lib/internal/Magento/Framework/View/Config.php
+++ b/lib/internal/Magento/Framework/View/Config.php
@@ -62,9 +62,6 @@ class Config implements \Magento\Framework\View\ConfigInterface
      */
     protected $fileIteratorFactory;
 
-    /** @var \Magento\Framework\Config\ViewFactory */
-    protected $viewConfigFactory;
-
     /**
      * File view factory
      *
@@ -89,7 +86,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
         \Magento\Framework\View\Asset\Repository $assetRepo,
         \Magento\Framework\View\FileSystem $viewFileSystem,
         \Magento\Framework\Config\FileIteratorFactory $fileIteratorFactory,
-        \Magento\Framework\Config\ViewFactory $viewConfigFactory,
+        \Magento\Framework\Config\ViewFactory $viewFactory,
         $filename = self::CONFIG_FILE_NAME
     ) {
         $this->moduleReader = $moduleReader;
@@ -97,7 +94,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
         $this->assetRepo = $assetRepo;
         $this->viewFileSystem = $viewFileSystem;
         $this->fileIteratorFactory = $fileIteratorFactory;
-        $this->viewConfigFactory = $viewConfigFactory;
+        $this->viewFactory = $viewFactory;
         $this->filename = $filename;
     }
 
@@ -131,7 +128,7 @@ class Config implements \Magento\Framework\View\ConfigInterface
                 $this->rootDirectory->getRelativePath($themeConfigFile)
             );
         }
-        $config = $this->viewConfigFactory->create($configFiles);
+        $config = $this->viewFactory->create($configFiles);
 
         $this->viewConfigs[$key] = $config;
         return $config;
diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php b/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
index ae7107665b4..554fc62e34c 100644
--- a/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
+++ b/lib/internal/Magento/Framework/View/Element/UiComponent/Config/DomMerger.php
@@ -8,6 +8,7 @@ namespace Magento\Framework\View\Element\UiComponent\Config;
 use Magento\Framework\Config\Dom;
 use Magento\Framework\Config\Dom\UrnResolver;
 use Magento\Framework\Module\Dir\Reader as DirectoryReader;
+use \Magento\Framework\Config\ValidationStateInterface;
 
 /**
  * Class DomMerger
@@ -19,6 +20,11 @@ class DomMerger implements DomMergerInterface
      */
     const ERROR_FORMAT_DEFAULT = "Message: %message%\nLine: %line%\n";
 
+    /**
+     * @var \Magento\Framework\Config\ValidationStateInterface
+     */
+    private $validationState;
+
     /**
      * Location schema file
      *
@@ -62,20 +68,21 @@ class DomMerger implements DomMergerInterface
      * Format of $contextXPath: array('/config/ui')
      * The path to ID attribute name should not include any attribute notations or modifiers -- only node names
      *
-     * @param UrnResolver $urnResolver
-     * @param string $schema Absolute schema file path or URN
+     * @param ValidationStateInterface $validationState
+     * @param string $schema
      * @param bool $isMergeSimpleXMLElement
      * @param array $contextXPath
      * @param array $idAttributes
      */
     public function __construct(
-        UrnResolver $urnResolver,
+        ValidationStateInterface $validationState,
         $schema,
         $isMergeSimpleXMLElement = false,
         array $contextXPath = [],
         array $idAttributes = []
     ) {
-        $this->schemaFilePath = $urnResolver->getRealPath($schema);
+        $this->validationState = $validationState;
+        $this->schema = $schema;
         $this->isMergeSimpleXMLElement = $isMergeSimpleXMLElement;
         $this->contextXPath = $contextXPath;
         $this->idAttributes = $idAttributes;
@@ -315,7 +322,7 @@ class DomMerger implements DomMergerInterface
     {
         $domDocument = new \DOMDocument();
         $domDocument->loadXML($xml);
-        if ($this->schemaFilePath) {
+        if ($this->validationState->isValidationRequired() && $this->schema) {
             $errors = $this->validateDomDocument($domDocument);
             if (count($errors)) {
                 throw new \Magento\Framework\Exception\LocalizedException(
@@ -335,12 +342,12 @@ class DomMerger implements DomMergerInterface
      * @return array of errors
      * @throws \Exception
      */
-    protected function validateDomDocument(\DOMDocument $domDocument, $schemaFilePath = null)
+    protected function validateDomDocument(\DOMDocument $domDocument, $schema = null)
     {
-        $schemaFilePath = $schemaFilePath !== null ? $schemaFilePath : $this->schemaFilePath;
+        $schema = $schema !== null ? $schema : $this->schema;
         libxml_use_internal_errors(true);
         try {
-            $errors = \Magento\Framework\Config\Dom::validateDomDocument($domDocument, $schemaFilePath);
+            $errors = \Magento\Framework\Config\Dom::validateDomDocument($domDocument, $schema);
         } catch (\Exception $exception) {
             libxml_use_internal_errors(false);
             throw $exception;
@@ -435,6 +442,9 @@ class DomMerger implements DomMergerInterface
      */
     public function validate($schemaFilePath = null)
     {
+        if (!$this->validationState->isValidationRequired()) {
+            return [];
+        }
         return $this->validateDomDocument($this->getDom(), $schemaFilePath);
     }
 }
diff --git a/lib/internal/Magento/Framework/View/PageLayout/Config.php b/lib/internal/Magento/Framework/View/PageLayout/Config.php
index 31279b31a06..ce0f173c5d8 100644
--- a/lib/internal/Magento/Framework/View/PageLayout/Config.php
+++ b/lib/internal/Magento/Framework/View/PageLayout/Config.php
@@ -17,14 +17,18 @@ class Config extends \Magento\Framework\Config\AbstractXml
     /**
      * Instantiate with the list of files to merge
      *
-     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      * @param array $configFiles
+     * @param \Magento\Framework\Config\DomFactory $domFactory
+     * @param \Magento\Framework\Config\Dom\UrnResolver $urnResolver
      * @throws \InvalidArgumentException
      */
-    public function __construct($configFiles, \Magento\Framework\Config\Dom\UrnResolver $urnResolver)
-    {
+    public function __construct(
+        $configFiles,
+        \Magento\Framework\Config\DomFactory $domFactory,
+        \Magento\Framework\Config\Dom\UrnResolver $urnResolver
+    ) {
         $this->urnResolver = $urnResolver;
-        parent::__construct($configFiles);
+        parent::__construct($configFiles, $domFactory);
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php b/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
index c6c980ee74c..dd2270d310a 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/ConfigTest.php
@@ -68,7 +68,7 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                 'assetRepo' => $this->repositoryMock,
                 'viewFileSystem' => $this->fileSystemMock,
                 'fileIteratorFactory' => $this->fileIteratorFactoryMock,
-                'viewConfigFactory' => $this->viewConfigFactoryMock
+                'viewFactory' => $this->viewConfigFactoryMock
             ]
         );
     }
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php b/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
index 8bdac494e98..2b10c2a26d4 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/PageLayout/ConfigTest.php
@@ -23,6 +23,26 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             ->method('getRealPath')
             ->with('urn:magento:framework:View/PageLayout/etc/layouts.xsd')
             ->willReturn($urnResolver->getRealPath('urn:magento:framework:View/PageLayout/etc/layouts.xsd'));
+        $validationStateMock = $this->getMock('\Magento\Framework\Config\ValidationStateInterface', [], [], '', false);
+        $validationStateMock->method('isValidationRequired')
+            ->willReturn(true);
+        $domFactoryMock = $this->getMock('Magento\Framework\Config\DomFactory', [], [], '', false);
+        $domFactoryMock->expects($this->once())
+            ->method('createDom')
+            ->willReturnCallback(
+                function ($arguments) use ($validationStateMock) {
+                    // @codingStandardsIgnoreStart
+                    return new \Magento\Framework\Config\Dom(
+                        '<?xml version="1.0" encoding="UTF-8"?>'
+                            . '<page_layouts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></page_layouts>',
+                        $validationStateMock,
+                        ['/page_layouts/layout' => 'id'],
+                        null,
+                        $arguments['schemaFile']
+                    );
+                    // @codingStandardsIgnoreEnd
+                }
+            );
         $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $this->config = $objectManagerHelper->getObject(
             'Magento\Framework\View\PageLayout\Config',
@@ -31,7 +51,8 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
                 'configFiles' => [
                     'layouts_one.xml' => file_get_contents(__DIR__ . '/_files/layouts_one.xml'),
                     'layouts_two.xml' => file_get_contents(__DIR__ . '/_files/layouts_two.xml'),
-                ]
+                ],
+                'domFactory' => $domFactoryMock
             ]
         );
     }
-- 
GitLab


From 2640503c89d5bbdcf2d55cc7960b9e64a7112e42 Mon Sep 17 00:00:00 2001
From: "Korshenko, Olexii(okorshenko)" <okorshenko@ebay.com>
Date: Wed, 28 Oct 2015 17:17:25 +0200
Subject: [PATCH 156/162] Revert "MAGETWO-44707: Remove @api sign from
 CatalogInventory module"

---
 .../CatalogInventory/Api/Data/StockCollectionInterface.php       | 1 +
 app/code/Magento/CatalogInventory/Api/Data/StockInterface.php    | 1 +
 .../CatalogInventory/Api/Data/StockItemCollectionInterface.php   | 1 +
 .../Magento/CatalogInventory/Api/Data/StockItemInterface.php     | 1 +
 .../CatalogInventory/Api/Data/StockStatusCollectionInterface.php | 1 +
 .../Magento/CatalogInventory/Api/Data/StockStatusInterface.php   | 1 +
 .../Magento/CatalogInventory/Api/StockConfigurationInterface.php | 1 +
 app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php | 1 +
 app/code/Magento/CatalogInventory/Api/StockIndexInterface.php    | 1 +
 .../Magento/CatalogInventory/Api/StockItemCriteriaInterface.php  | 1 +
 .../CatalogInventory/Api/StockItemRepositoryInterface.php        | 1 +
 .../Magento/CatalogInventory/Api/StockManagementInterface.php    | 1 +
 app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php | 1 +
 .../Magento/CatalogInventory/Api/StockRepositoryInterface.php    | 1 +
 app/code/Magento/CatalogInventory/Api/StockStateInterface.php    | 1 +
 .../CatalogInventory/Api/StockStatusCriteriaInterface.php        | 1 +
 .../CatalogInventory/Api/StockStatusRepositoryInterface.php      | 1 +
 .../Model/ResourceModel/Indexer/Stock/StockInterface.php         | 1 +
 18 files changed, 18 insertions(+)

diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
index 90e5081733e..a656b049c93 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php
@@ -13,6 +13,7 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Interface StockCollectionInterface
+ * @api
  */
 interface StockCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
index 47bd9b85cc3..8908ea0ee96 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php
@@ -9,6 +9,7 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface Stock
+ * @api
  */
 interface StockInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
index 80436c5427b..ee670c352f1 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php
@@ -13,6 +13,7 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Interface StockItemCollectionInterface
+ * @api
  */
 interface StockItemCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
index 0a620ce1562..0c4216fd46a 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php
@@ -9,6 +9,7 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface StockItem
+ * @api
  */
 interface StockItemInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
index b46ccbf5c94..a06aa1ebd0a 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php
@@ -9,6 +9,7 @@ use Magento\Framework\Api\SearchResultsInterface;
 
 /**
  * Stock Status collection interface
+ * @api
  */
 interface StockStatusCollectionInterface extends SearchResultsInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
index 3c90ea45177..f4996ac62ec 100644
--- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php
@@ -9,6 +9,7 @@ use Magento\Framework\Api\ExtensibleDataInterface;
 
 /**
  * Interface StockStatusInterface
+ * @api
  */
 interface StockStatusInterface extends ExtensibleDataInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
index 5052ea004b2..7b4179c7a71 100644
--- a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockConfigurationInterface
+ * @api
  */
 interface StockConfigurationInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
index 537db0ce5af..15e299f8591 100644
--- a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockCriteriaInterface
+ * @api
  */
 interface StockCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
index 6edba0a23b5..f57936402f0 100644
--- a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockIndexInterface
+ * @api
  */
 interface StockIndexInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
index 878aa26d3c2..df76cc37f31 100644
--- a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockItemCriteriaInterface
+ * @api
  */
 interface StockItemCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
index 17a22876922..97804d70437 100644
--- a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockItemRepository
+ * @api
  */
 interface StockItemRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
index 748ed9b39cf..b4cd1008bf5 100644
--- a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockManagementInterface
+ * @api
  */
 interface StockManagementInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
index 27f90e740f9..95c848f1865 100644
--- a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockRegistryInterface
+ * @api
  */
 interface StockRegistryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
index 06f5d2f4e9c..28b839c6fed 100644
--- a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockRepositoryInterface
+ * @api
  */
 interface StockRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
index 490f92644df..140ccee031b 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStateInterface
+ * @api
  */
 interface StockStateInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
index af80ddd5c5c..7b5dfafa311 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStatusCriteriaInterface
+ * @api
  */
 interface StockStatusCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
index b531c815ceb..7a8ac825654 100644
--- a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
+++ b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Api;
 
 /**
  * Interface StockStatusRepositoryInterface
+ * @api
  */
 interface StockStatusRepositoryInterface
 {
diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
index 32b75680fbc..8612b0ba525 100644
--- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
+++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/StockInterface.php
@@ -7,6 +7,7 @@ namespace Magento\CatalogInventory\Model\ResourceModel\Indexer\Stock;
 
 /**
  * CatalogInventory Stock Indexer Interface
+ * @api
  */
 interface StockInterface
 {
-- 
GitLab


From 7480f9a2206a771edf7bc18b76f7a4b726c6934a Mon Sep 17 00:00:00 2001
From: Paul Lewis <plewis@ebay.com>
Date: Wed, 28 Oct 2015 10:55:30 -0500
Subject: [PATCH 157/162] MAGETWO-44581: Contribute Ogre Bugfixes

- move and merge remaining less files
---
 .../web/css/source/module.less                | 18 +++-----
 .../web/css/source/_module.less               | 41 +++++++++++++++++++
 .../web/css/source/_module.less               | 35 ++++++++++++++++
 3 files changed, 82 insertions(+), 12 deletions(-)
 create mode 100644 app/design/adminhtml/Magento/backend/Magento_Reward/web/css/source/_module.less
 create mode 100644 app/design/adminhtml/Magento/backend/Magento_VersionsCms/web/css/source/_module.less

diff --git a/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less b/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
index 12ccb3531ea..d3a921dc16d 100644
--- a/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_GiftCard/web/css/source/module.less
@@ -3,19 +3,13 @@
 //  * See COPYING.txt for license details.
 //  */
 
-//
-//  IE9 styles
-//  ---------------------------------------------
-
-.ie9 {
+.ie9 & {
     .giftcard-info-container {
-        .fieldset {
-            .admin__field {
-                .admin__field-label {
-                    display: table;
-                    span {
-                        display: table-cell;
-                    }
+        .admin__field {
+            .admin__field-label {
+                display: table;
+                span {
+                    display: table-cell;
                 }
             }
         }
diff --git a/app/design/adminhtml/Magento/backend/Magento_Reward/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Reward/web/css/source/_module.less
new file mode 100644
index 00000000000..b44b2bc3aa7
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Reward/web/css/source/_module.less
@@ -0,0 +1,41 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Reward Page
+//  _____________________________________________
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@boundary__margin: 30px;
+@boundary__ratio: 1.75;
+
+.adminhtml-reward-rate-edit {
+    .field-rate {
+        .admin__field-control {
+            &:extend(.abs-clearfix all);
+        }
+        .boundary {
+            float: left;
+            width: 125px;
+        }
+        .boundary-upper {
+            margin-left: @boundary__margin;
+            position: relative;
+            &:before {
+                content: '»';
+                left: -(@boundary__margin / @boundary__ratio);
+                position: absolute;
+                top: 25%;
+            }
+            label {
+                .lib-visibility-hidden();
+                display: block;
+            }
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_VersionsCms/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_VersionsCms/web/css/source/_module.less
new file mode 100644
index 00000000000..5aba4abd3f4
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_VersionsCms/web/css/source/_module.less
@@ -0,0 +1,35 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Hierarchy styles
+//  _____________________________________________
+
+.cms-hierarchy {
+    &:extend(.abs-clearfix all);
+
+    .cms-hierarchy-tree,
+    .cms-hierarchy-node {
+        float: left;
+        width: 50%;
+    }
+
+    .cms_page_grid_container {
+        clear: both;
+    }
+
+    .admin__page-section-title {
+        .actions {
+            float: right;
+        }
+    }
+
+    .buttons-set {
+        margin: 0 0 1.14rem;
+        button {
+            margin-right: 0.36rem;
+        }
+    }
+}
-- 
GitLab


From 8e7a3307b610c6bb4e11e29534dcc35e4f4272f1 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 28 Oct 2015 11:37:07 -0500
Subject: [PATCH 158/162] MAGETWO-44681: page cache entries not tagged with
 "FPC" cache type  - use plugin to add cache tag

---
 .../PageCache/Model/App/PageCachePlugin.php   | 31 +++++++++++++++++++
 .../Unit/Model/App/PageCachePluginTest.php    | 28 +++++++++++++++++
 app/code/Magento/PageCache/etc/di.xml         |  3 ++
 3 files changed, 62 insertions(+)
 create mode 100644 app/code/Magento/PageCache/Model/App/PageCachePlugin.php
 create mode 100644 app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php

diff --git a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
new file mode 100644
index 00000000000..8a5e3b8932d
--- /dev/null
+++ b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
@@ -0,0 +1,31 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\PageCache\Model\App;
+
+class PageCachePlugin
+{
+    /**
+     * Attach FPC tag to all saved entries to enable cache type management
+     *
+     * @param \Magento\Framework\App\PageCache\Cache $subject
+     * @param $data
+     * @param $identifier
+     * @param array $tags
+     * @param null $lifeTime
+     * @return array
+     */
+    public function beforeSave(
+        \Magento\Framework\App\PageCache\Cache $subject,
+        $data,
+        $identifier,
+        $tags = [],
+        $lifeTime = null
+    ) {
+        $tags[] = \Magento\PageCache\Model\Cache\Type::CACHE_TAG;
+        return [$data, $identifier, $tags, $lifeTime];
+    }
+}
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
new file mode 100644
index 00000000000..b0a115f3860
--- /dev/null
+++ b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
@@ -0,0 +1,28 @@
+<?php
+/***
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\PageCache\Model\Cache\Type;
+
+class PageCachePluginTest extends \PHPUnit_Framework_TestCase
+{
+    public function testBeforeSave()
+    {
+        /** @var \Magento\PageCache\Model\App\PageCachePlugin $plugin */
+        $plugin = (new ObjectManager($this))->getObject('\Magento\PageCache\Model\App\PageCachePlugin');
+        $subjectMock = $this->getMockBuilder('\Magento\Framework\App\PageCache\Cache')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $initTags = ['tag', 'otherTag'];
+        $result = $plugin->beforeSave($subjectMock, 'data', 'identifier', $initTags);
+        $tags = isset($result[2]) ? $result[2] : null;
+        $expectedTags = array_merge($initTags, [Type::CACHE_TAG]);
+        $this->assertNotNull($tags);
+        foreach ($expectedTags as $expected) {
+            $this->assertContains($expected, $tags);
+        }
+    }
+}
diff --git a/app/code/Magento/PageCache/etc/di.xml b/app/code/Magento/PageCache/etc/di.xml
index b5a248f714a..1543abaa277 100644
--- a/app/code/Magento/PageCache/etc/di.xml
+++ b/app/code/Magento/PageCache/etc/di.xml
@@ -10,4 +10,7 @@
         <plugin name="core-app-area-design-exception-plugin"
                 type="Magento\PageCache\Model\App\CacheIdentifierPlugin" sortOrder="10"/>
     </type>
+    <type name="Magento\Framework\App\PageCache\Cache">
+        <plugin name="fpc-tag-addition-plugin" type="Magento\PageCache\Model\App\PageCachePlugin"/>
+    </type>
 </config>
-- 
GitLab


From 7de2154aaf07f1d2f22d851ddd6a5b1bff8223e9 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 15:21:23 -0500
Subject: [PATCH 159/162] MAGETWO-37820: [GITHUB] Preference in the wrong
 di.xml file #1291

---
 app/code/Magento/Bundle/Setup/InstallData.php |  10 +-
 .../Product/Attribute/Edit/Tab/Advanced.php   |   8 +-
 .../Adminhtml/Product/Attribute/Grid.php      |   6 +-
 .../Catalog/Model/Attribute/Source/Scopes.php |   8 +-
 .../Model/Product/Attribute/Backend/Price.php |   8 +-
 .../Catalog/Model/ResourceModel/Attribute.php |   2 +-
 .../Model/ResourceModel/Eav/Attribute.php     |   8 +-
 .../ResourceModel/Setup/PropertyMapper.php    |   2 +-
 .../Magento/Catalog/Setup/CategorySetup.php   | 104 +++++++++---------
 .../Model/ResourceModel/Eav/AttributeTest.php |  10 +-
 .../CatalogUrlRewrite/Setup/InstallData.php   |   8 +-
 .../Model/ConfigurableAttributeHandler.php    |   2 +-
 .../Model/Product/Type/Configurable.php       |   2 +-
 .../Downloadable/Setup/InstallData.php        |   6 +-
 .../Attribute/ScopedAttributeInterface.php    |  15 +++
 .../Eav/Model/Entity/Setup/PropertyMapper.php |   6 +-
 app/code/Magento/Msrp/Setup/InstallData.php   |   4 +-
 .../Model/ResourceModel/Catalog/Product.php   |   2 +-
 .../Magento/Swatches/Setup/InstallData.php    |   2 +-
 app/code/Magento/Tax/Setup/InstallData.php    |   2 +-
 .../Adminhtml/Product/AttributeTest.php       |   2 +-
 .../Product/Attribute/Backend/PriceTest.php   |   6 +-
 22 files changed, 118 insertions(+), 105 deletions(-)
 create mode 100644 app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php

diff --git a/app/code/Magento/Bundle/Setup/InstallData.php b/app/code/Magento/Bundle/Setup/InstallData.php
index 0df0acd5734..57a3ab0851e 100644
--- a/app/code/Magento/Bundle/Setup/InstallData.php
+++ b/app/code/Magento/Bundle/Setup/InstallData.php
@@ -86,7 +86,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => true,
                 'required' => true,
                 'user_defined' => false,
@@ -112,7 +112,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -137,7 +137,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -164,7 +164,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'class' => '',
                 'source' => 'Magento\Bundle\Model\Product\Attribute\Source\Price\View',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => true,
                 'required' => true,
                 'user_defined' => false,
@@ -190,7 +190,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
index 5ed9016a59f..db69fe00f5c 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php
@@ -213,14 +213,14 @@ class Advanced extends Generic
         }
 
         $scopes = [
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE => __('Store View'),
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE => __('Website'),
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL => __('Global'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE => __('Store View'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE => __('Website'),
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL => __('Global'),
         ];
 
         if ($attributeObject->getAttributeCode() == 'status' || $attributeObject->getAttributeCode() == 'tax_class_id'
         ) {
-            unset($scopes[\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE]);
+            unset($scopes[\Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE]);
         }
 
         $fieldset->addField(
diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
index b2619647601..575a12c4308 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php
@@ -83,9 +83,9 @@ class Grid extends AbstractGrid
                 'index' => 'is_global',
                 'type' => 'options',
                 'options' => [
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE => __('Store View'),
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE => __('Web Site'),
-                    \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL => __('Global'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE => __('Store View'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE => __('Web Site'),
+                    \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL => __('Global'),
                 ],
                 'align' => 'center'
             ],
diff --git a/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php b/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
index f471a474320..62e02652527 100644
--- a/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
+++ b/app/code/Magento/Catalog/Model/Attribute/Source/Scopes.php
@@ -5,7 +5,7 @@
  */
 namespace Magento\Catalog\Model\Attribute\Source;
 
-use \Magento\Catalog\Model\ResourceModel\Eav\Attribute;
+use \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
 
 class Scopes implements \Magento\Framework\Data\OptionSourceInterface
 {
@@ -16,15 +16,15 @@ class Scopes implements \Magento\Framework\Data\OptionSourceInterface
     {
         return [
             [
-                'value' => Attribute::SCOPE_STORE,
+                'value' => ScopedAttributeInterface::SCOPE_STORE,
                 'label' => __('Store View'),
             ],
             [
-                'value' => Attribute::SCOPE_WEBSITE,
+                'value' => ScopedAttributeInterface::SCOPE_WEBSITE,
                 'label' => __('Web Site'),
             ],
             [
-                'value' => Attribute::SCOPE_GLOBAL,
+                'value' => ScopedAttributeInterface::SCOPE_GLOBAL,
                 'label' => __('Global'),
             ],
         ];
diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php b/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
index ed6612507d2..9dc0dce6f51 100644
--- a/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
+++ b/app/code/Magento/Catalog/Model/Product/Attribute/Backend/Price.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Catalog\Model\Product\Attribute\Backend;
 
+use \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface;
+
 /**
  * Catalog product price attribute backend model
  *
@@ -91,9 +93,9 @@ class Price extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
     public function setScope($attribute)
     {
         if ($this->_helper->isPriceGlobal()) {
-            $attribute->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL);
+            $attribute->setIsGlobal(ScopedAttributeInterface::SCOPE_GLOBAL);
         } else {
-            $attribute->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE);
+            $attribute->setIsGlobal(ScopedAttributeInterface::SCOPE_WEBSITE);
         }
 
         return $this;
@@ -118,7 +120,7 @@ class Price extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
             return $this;
         }
 
-        if ($this->getAttribute()->getIsGlobal() == \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE) {
+        if ($this->getAttribute()->getIsGlobal() == ScopedAttributeInterface::SCOPE_WEBSITE) {
             $baseCurrency = $this->_config->getValue(
                 \Magento\Directory\Model\Currency::XML_PATH_CURRENCY_BASE,
                 'default'
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
index dd522da5888..ec7bfafeee1 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php
@@ -86,7 +86,7 @@ class Attribute extends \Magento\Eav\Model\ResourceModel\Entity\Attribute
 
         if ($object->isScopeGlobal() && isset(
             $origData['is_global']
-        ) && \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL != $origData['is_global']
+        ) && \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL != $origData['is_global']
         ) {
             $attributeStoreIds = array_keys($this->_storeManager->getStores());
             if (!empty($attributeStoreIds)) {
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
index 2f4d6769131..cde304b004a 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php
@@ -32,14 +32,8 @@ use Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface;
  * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
  */
 class Attribute extends \Magento\Eav\Model\Entity\Attribute implements
-    \Magento\Catalog\Api\Data\ProductAttributeInterface
+    \Magento\Catalog\Api\Data\ProductAttributeInterface, \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface
 {
-    const SCOPE_STORE = 0;
-
-    const SCOPE_GLOBAL = 1;
-
-    const SCOPE_WEBSITE = 2;
-
     const MODULE_NAME = 'Magento_Catalog';
 
     const ENTITY = 'catalog_eav_attribute';
diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php b/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
index b7d5bbb301e..2f2814b5aff 100644
--- a/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
+++ b/app/code/Magento/Catalog/Model/ResourceModel/Setup/PropertyMapper.php
@@ -26,7 +26,7 @@ class PropertyMapper extends PropertyMapperAbstract
             'is_global' => $this->_getValue(
                 $input,
                 'global',
-                \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
             ),
             'is_visible' => $this->_getValue($input, 'visible', 1),
             'is_searchable' => $this->_getValue($input, 'searchable', 0),
diff --git a/app/code/Magento/Catalog/Setup/CategorySetup.php b/app/code/Magento/Catalog/Setup/CategorySetup.php
index 0efc0ac0837..23d14d9c7cf 100644
--- a/app/code/Magento/Catalog/Setup/CategorySetup.php
+++ b/app/code/Magento/Catalog/Setup/CategorySetup.php
@@ -78,7 +78,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Name',
                         'input' => 'text',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'is_active' => [
@@ -87,7 +87,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'description' => [
@@ -96,7 +96,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'wysiwyg_enabled' => true,
                         'is_html_allowed_on_front' => true,
                         'group' => 'General Information',
@@ -108,7 +108,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Image',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_title' => [
@@ -117,7 +117,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_keywords' => [
@@ -126,7 +126,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'meta_description' => [
@@ -135,7 +135,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'display_mode' => [
@@ -145,7 +145,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Mode',
                         'required' => false,
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'landing_page' => [
@@ -155,7 +155,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Page',
                         'required' => false,
                         'sort_order' => 20,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'is_anchor' => [
@@ -211,7 +211,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Theme\Model\Theme\Source\Theme',
                         'required' => false,
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_design_from' => [
@@ -221,7 +221,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 30,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_design_to' => [
@@ -231,7 +231,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 40,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'page_layout' => [
@@ -241,7 +241,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Category\Attribute\Source\Layout',
                         'required' => false,
                         'sort_order' => 50,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_layout_update' => [
@@ -251,7 +251,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Customlayoutupdate',
                         'required' => false,
                         'sort_order' => 60,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'level' => [
@@ -278,7 +278,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Sortby',
                         'sort_order' => 40,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Sortby\Available',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'default_sort_by' => [
@@ -289,7 +289,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Sortby',
                         'sort_order' => 50,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Sortby\DefaultSortby',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                     'include_in_menu' => [
@@ -299,7 +299,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'default' => '1',
                         'sort_order' => 10,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'General Information',
                     ],
                     'custom_use_parent_settings' => [
@@ -309,7 +309,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'custom_apply_to_products' => [
@@ -319,7 +319,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean',
                         'required' => false,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Custom Design',
                     ],
                     'filter_price_range' => [
@@ -329,7 +329,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'sort_order' => 51,
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Category\Helper\Pricestep',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Display Settings',
                     ],
                 ],
@@ -347,7 +347,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'frontend_class' => 'validate-length maximum-length-255',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'visible_in_advanced_search' => true,
                         'used_in_product_listing' => true,
@@ -370,7 +370,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Description',
                         'input' => 'textarea',
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'comparable' => true,
                         'wysiwyg_enabled' => true,
@@ -382,7 +382,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Short Description',
                         'input' => 'textarea',
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'searchable' => true,
                         'comparable' => true,
                         'wysiwyg_enabled' => true,
@@ -399,7 +399,7 @@ class CategorySetup extends EavSetup
                         'input' => 'price',
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Price',
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'searchable' => true,
                         'filterable' => true,
                         'visible_in_advanced_search' => true,
@@ -415,7 +415,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Price',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -430,7 +430,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -445,7 +445,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -461,7 +461,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'user_defined' => true,
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
                         'is_used_in_grid' => true,
@@ -501,7 +501,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 20,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -513,7 +513,7 @@ class CategorySetup extends EavSetup
                         'input' => 'textarea',
                         'required' => false,
                         'sort_order' => 30,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -527,7 +527,7 @@ class CategorySetup extends EavSetup
                         'note' => 'Maximum 255 chars',
                         'class' => 'validate-length maximum-length-255',
                         'sort_order' => 40,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Meta Information',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -541,7 +541,7 @@ class CategorySetup extends EavSetup
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Product\Helper\Form\BaseImage',
                         'required' => false,
                         'sort_order' => 0,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'General',
                     ],
@@ -552,7 +552,7 @@ class CategorySetup extends EavSetup
                         'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                         'required' => false,
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'Images',
                     ],
@@ -563,7 +563,7 @@ class CategorySetup extends EavSetup
                         'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'used_in_product_listing' => true,
                         'group' => 'Images',
                     ],
@@ -584,7 +584,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Tierprice',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
                     ],
@@ -610,7 +610,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 7,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -623,7 +623,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'used_in_product_listing' => true,
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -643,7 +643,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Status',
                         'sort_order' => 9,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'searchable' => true,
                         'used_in_product_listing' => true,
                     ],
@@ -653,7 +653,7 @@ class CategorySetup extends EavSetup
                         'input' => 'price',
                         'required' => false,
                         'sort_order' => 8,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'apply_to' => 'simple,virtual',
                         'group' => 'Prices',
@@ -665,7 +665,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Product\Visibility',
                         'default' => '4',
                         'sort_order' => 12,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                     ],
                     'custom_design' => [
                         'type' => 'varchar',
@@ -674,7 +674,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Theme\Model\Theme\Source\Theme',
                         'required' => false,
                         'sort_order' => 1,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -687,7 +687,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Startdate',
                         'required' => false,
                         'sort_order' => 2,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -700,7 +700,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Eav\Model\Entity\Attribute\Backend\Datetime',
                         'required' => false,
                         'sort_order' => 3,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -713,7 +713,7 @@ class CategorySetup extends EavSetup
                         'backend' => 'Magento\Catalog\Model\Attribute\Backend\Customlayoutupdate',
                         'required' => false,
                         'sort_order' => 4,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                     ],
                     'page_layout' => [
@@ -723,7 +723,7 @@ class CategorySetup extends EavSetup
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Layout',
                         'required' => false,
                         'sort_order' => 5,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                         'is_used_in_grid' => true,
                         'is_visible_in_grid' => false,
@@ -732,7 +732,7 @@ class CategorySetup extends EavSetup
                     'category_ids' => [
                         'type' => 'static',
                         'label' => 'Categories',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'backend' => 'Magento\Catalog\Model\Product\Attribute\Backend\Category',
                         'input_renderer' => 'Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Category',
                         'required' => false,
@@ -748,7 +748,7 @@ class CategorySetup extends EavSetup
                         'required' => false,
                         'default' => 'container2',
                         'sort_order' => 6,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'group' => 'Design',
                     ],
                     'required_options' => [
@@ -772,7 +772,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 16,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -782,7 +782,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 17,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -792,7 +792,7 @@ class CategorySetup extends EavSetup
                         'input' => 'text',
                         'required' => false,
                         'sort_order' => 18,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                         'visible' => false,
                         'used_in_product_listing' => true,
                     ],
@@ -816,7 +816,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'source' => 'Magento\Catalog\Model\Product\Attribute\Source\Countryofmanufacture',
                         'required' => false,
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                         'visible' => true,
                         'user_defined' => false,
                         'searchable' => false,
@@ -838,7 +838,7 @@ class CategorySetup extends EavSetup
                         'input' => 'select',
                         'input_renderer' => 'Magento\CatalogInventory\Block\Adminhtml\Form\Field\Stock',
                         'source' => 'Magento\\CatalogInventory\\Model\\Source\\Stock',
-                        'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                        'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'default' => \Magento\CatalogInventory\Model\Stock::STOCK_IN_STOCK,
                         'user_defined' => false,
                         'visible' => true,
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
index ab8d0328ca6..38e97bbc108 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php
@@ -8,8 +8,6 @@
 
 namespace Magento\Catalog\Test\Unit\Model\ResourceModel\Eav;
 
-use \Magento\Catalog\Model\ResourceModel\Eav\Attribute;
-
 class AttributeTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -131,9 +129,9 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
     {
         $this->_processor->expects($this->once())->method('markIndexerAsInvalid');
 
-        $this->_model->setOrigData('is_global', \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE);
+        $this->_model->setOrigData('is_global', \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE);
         $this->_model->setOrigData('used_in_product_listing', 1);
-        $this->_model->setIsGlobal(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL);
+        $this->_model->setIsGlobal(\Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL);
         $this->_model->afterSave();
     }
 
@@ -172,7 +170,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
                 'indexerEavProcessor' => $this->_eavProcessor,
                 'resource' => $this->resourceMock,
                 'data' => [
-                    'is_global' => Attribute::SCOPE_GLOBAL
+                    'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
                 ]
             ]
         );
@@ -190,7 +188,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase
                 'indexerEavProcessor' => $this->_eavProcessor,
                 'resource' => $this->resourceMock,
                 'data' => [
-                    'is_global' => Attribute::SCOPE_WEBSITE
+                    'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE
                 ]
             ]
         );
diff --git a/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php b/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
index 56ae25a6bbb..46a0f9bea79 100644
--- a/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
+++ b/app/code/Magento/CatalogUrlRewrite/Setup/InstallData.php
@@ -50,7 +50,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'text',
                 'required' => false,
                 'sort_order' => 3,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'group' => 'General Information',
             ]
         );
@@ -62,7 +62,7 @@ class InstallData implements InstallDataInterface
                 'type' => 'varchar',
                 'required' => false,
                 'sort_order' => 17,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'group' => 'General Information',
             ]
@@ -77,7 +77,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'text',
                 'required' => false,
                 'sort_order' => 10,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'used_in_product_listing' => true,
                 'group' => 'Search Engine Optimization',
                 'is_used_in_grid' => true,
@@ -93,7 +93,7 @@ class InstallData implements InstallDataInterface
                 'type' => 'varchar',
                 'required' => false,
                 'sort_order' => 11,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
             ]
         );
diff --git a/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php b/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
index 239f6d697d7..a2f9231a79d 100644
--- a/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
+++ b/app/code/Magento/ConfigurableProduct/Model/ConfigurableAttributeHandler.php
@@ -40,7 +40,7 @@ class ConfigurableAttributeHandler
             1
         )->addFieldToFilter(
             'is_global',
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
         );
     }
 
diff --git a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
index 85eae4dae7c..93f2588d214 100644
--- a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
+++ b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php
@@ -248,7 +248,7 @@ class Configurable extends \Magento\Catalog\Model\Product\Type\AbstractType
      */
     public function canUseAttribute(\Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute)
     {
-        return $attribute->getIsGlobal() == \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL &&
+        return $attribute->getIsGlobal() == \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL &&
             $attribute->getIsVisible() &&
             $attribute->usesSource() &&
             $attribute->getIsUserDefined();
diff --git a/app/code/Magento/Downloadable/Setup/InstallData.php b/app/code/Magento/Downloadable/Setup/InstallData.php
index 28b92d361ce..594f08fad3d 100644
--- a/app/code/Magento/Downloadable/Setup/InstallData.php
+++ b/app/code/Magento/Downloadable/Setup/InstallData.php
@@ -56,7 +56,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -82,7 +82,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
@@ -107,7 +107,7 @@ class InstallData implements InstallDataInterface
                 'input' => '',
                 'class' => '',
                 'source' => '',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'visible' => false,
                 'required' => true,
                 'user_defined' => false,
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php b/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php
new file mode 100644
index 00000000000..2b2412fe05b
--- /dev/null
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/ScopedAttributeInterface.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Eav\Model\Entity\Attribute;
+
+interface ScopedAttributeInterface
+{
+    const SCOPE_STORE = 0;
+
+    const SCOPE_GLOBAL = 1;
+
+    const SCOPE_WEBSITE = 2;
+}
diff --git a/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php b/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
index 0a1587fc8fc..f7b565f9055 100644
--- a/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
+++ b/app/code/Magento/Eav/Model/Entity/Setup/PropertyMapper.php
@@ -35,7 +35,11 @@ class PropertyMapper extends PropertyMapperAbstract
             'default_value' => $this->_getValue($input, 'default'),
             'is_unique' => $this->_getValue($input, 'unique', 0),
             'note' => $this->_getValue($input, 'note'),
-            'is_global' => $this->_getValue($input, 'global', Attribute::SCOPE_GLOBAL)
+            'is_global' => $this->_getValue(
+                $input,
+                'global',
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL
+            )
         ];
     }
 }
diff --git a/app/code/Magento/Msrp/Setup/InstallData.php b/app/code/Magento/Msrp/Setup/InstallData.php
index 080637c88e3..e9e76b117c1 100644
--- a/app/code/Magento/Msrp/Setup/InstallData.php
+++ b/app/code/Magento/Msrp/Setup/InstallData.php
@@ -60,7 +60,7 @@ class InstallData implements InstallDataInterface
                 'label' => 'Manufacturer\'s Suggested Retail Price',
                 'type' => 'decimal',
                 'input' => 'price',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
@@ -86,7 +86,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'source' => 'Magento\Msrp\Model\Product\Attribute\Source\Type\Price',
                 'source_model' => 'Magento\Msrp\Model\Product\Attribute\Source\Type\Price',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
index 5a93ef13583..302d9689e1e 100644
--- a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
+++ b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php
@@ -234,7 +234,7 @@ class Product extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
                 'attribute_id' => $attribute->getId(),
                 'table' => $attribute->getBackend()->getTable(),
                 'is_global' => $attribute->getIsGlobal() ==
-                \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+                \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                 'backend_type' => $attribute->getBackendType(),
             ];
         }
diff --git a/app/code/Magento/Swatches/Setup/InstallData.php b/app/code/Magento/Swatches/Setup/InstallData.php
index ac3a9020954..a97bd81215e 100644
--- a/app/code/Magento/Swatches/Setup/InstallData.php
+++ b/app/code/Magento/Swatches/Setup/InstallData.php
@@ -60,7 +60,7 @@ class InstallData implements InstallDataInterface
                 'frontend' => 'Magento\Catalog\Model\Product\Attribute\Frontend\Image',
                 'required' => false,
                 'sort_order' => 3,
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                 'used_in_product_listing' => true
             ]
         );
diff --git a/app/code/Magento/Tax/Setup/InstallData.php b/app/code/Magento/Tax/Setup/InstallData.php
index 75f636abb3e..2400deda8bd 100644
--- a/app/code/Magento/Tax/Setup/InstallData.php
+++ b/app/code/Magento/Tax/Setup/InstallData.php
@@ -56,7 +56,7 @@ class InstallData implements InstallDataInterface
                 'input' => 'select',
                 'class' => '',
                 'source' => 'Magento\Tax\Model\TaxClass\Source\Product',
-                'global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+                'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
                 'visible' => true,
                 'required' => false,
                 'user_defined' => false,
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
index 664fdee2198..479ffa633c8 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/Product/AttributeTest.php
@@ -249,7 +249,7 @@ class AttributeTest extends \Magento\TestFramework\TestCase\AbstractBackendContr
     protected function _getAttributeData()
     {
         return [
-            'is_global' => \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_STORE,
+            'is_global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
             'default_value_text' => '0',
             'default_value_yesno' => '0',
             'default_value_date' => '',
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
index 5a8a484ac6e..1ba80dc05c4 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/Attribute/Backend/PriceTest.php
@@ -36,12 +36,12 @@ class PriceTest extends \PHPUnit_Framework_TestCase
     {
         /* validate result of setAttribute */
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
             $this->_model->getAttribute()->getIsGlobal()
         );
         $this->_model->setScope($this->_model->getAttribute());
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_GLOBAL,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
             $this->_model->getAttribute()->getIsGlobal()
         );
     }
@@ -53,7 +53,7 @@ class PriceTest extends \PHPUnit_Framework_TestCase
     {
         $this->_model->setScope($this->_model->getAttribute());
         $this->assertEquals(
-            \Magento\Catalog\Model\ResourceModel\Eav\Attribute::SCOPE_WEBSITE,
+            \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_WEBSITE,
             $this->_model->getAttribute()->getIsGlobal()
         );
     }
-- 
GitLab


From a33e4d35995d1e129fbba11859f305569990ebd6 Mon Sep 17 00:00:00 2001
From: Joan He <joan@x.com>
Date: Wed, 28 Oct 2015 15:59:35 -0500
Subject: [PATCH 160/162] MAGETWO-37820: [GITHUB] Preference in the wrong
 di.xml file #1291

- fixed typo
---
 app/code/Magento/Catalog/Setup/CategorySetup.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/code/Magento/Catalog/Setup/CategorySetup.php b/app/code/Magento/Catalog/Setup/CategorySetup.php
index 23d14d9c7cf..c0dddb276cb 100644
--- a/app/code/Magento/Catalog/Setup/CategorySetup.php
+++ b/app/code/Magento/Catalog/Setup/CategorySetup.php
@@ -837,7 +837,7 @@ class CategorySetup extends EavSetup
                         'label' => 'Quantity',
                         'input' => 'select',
                         'input_renderer' => 'Magento\CatalogInventory\Block\Adminhtml\Form\Field\Stock',
-                        'source' => 'Magento\\CatalogInventory\\Model\\Source\\Stock',
+                        'source' => 'Magento\CatalogInventory\Model\Source\Stock',
                         'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL,
                         'default' => \Magento\CatalogInventory\Model\Stock::STOCK_IN_STOCK,
                         'user_defined' => false,
-- 
GitLab


From 4b9a7c7cbacc76d3b45094d5e3197f193467d33a Mon Sep 17 00:00:00 2001
From: Yu Tang <ytang1@ebay.com>
Date: Wed, 28 Oct 2015 16:36:47 -0500
Subject: [PATCH 161/162] MAGETWO-44491: [TD] ActionInterface has Method
 dispatch() Instead of execute()

    - Fix merge error
---
 .../Unit/Controller/Adminhtml/Email/Template/PreviewTest.php  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
index 59fccebfe38..e1f80f7f133 100644
--- a/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
+++ b/app/code/Magento/Email/Test/Unit/Controller/Adminhtml/Email/Template/PreviewTest.php
@@ -95,7 +95,7 @@ class PreviewTest extends \PHPUnit_Framework_TestCase
         ]);
     }
 
-    public function testExecute()
+    public function testExecuteInternal()
     {
         $this->viewMock->expects($this->once())
             ->method('getPage')
@@ -110,6 +110,6 @@ class PreviewTest extends \PHPUnit_Framework_TestCase
             ->method('prepend')
             ->willReturnSelf();
 
-        $this->assertNull($this->object->execute());
+        $this->assertNull($this->object->executeInternal());
     }
 }
-- 
GitLab


From 3cd46941dfeeed4990fd3f03f2038381c82d1605 Mon Sep 17 00:00:00 2001
From: Dale Sikkema <dsikkema@ebay.com>
Date: Wed, 28 Oct 2015 19:36:12 -0500
Subject: [PATCH 162/162] MAGETWO-44681: page cache entries not tagged with
 "FPC" cache type  - fix static tests

---
 .../Magento/PageCache/Model/App/PageCachePlugin.php    | 10 ++++++----
 .../Test/Unit/Model/App/PageCachePluginTest.php        |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
index 8a5e3b8932d..afb43a516f4 100644
--- a/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
+++ b/app/code/Magento/PageCache/Model/App/PageCachePlugin.php
@@ -12,11 +12,13 @@ class PageCachePlugin
      * Attach FPC tag to all saved entries to enable cache type management
      *
      * @param \Magento\Framework\App\PageCache\Cache $subject
-     * @param $data
-     * @param $identifier
-     * @param array $tags
-     * @param null $lifeTime
+     * @param string $data
+     * @param string $identifier
+     * @param string[] $tags
+     * @param int|null $lifeTime
      * @return array
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function beforeSave(
         \Magento\Framework\App\PageCache\Cache $subject,
diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
index b0a115f3860..5f10bbc7479 100644
--- a/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
+++ b/app/code/Magento/PageCache/Test/Unit/Model/App/PageCachePluginTest.php
@@ -4,6 +4,8 @@
  * See COPYING.txt for license details.
  */
 
+namespace Magento\PageCache\Test\Unit\Model\App;
+
 use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 use Magento\PageCache\Model\Cache\Type;
 
-- 
GitLab