From 68b5f2d58801304b7516840fc9cfebd02dc31fe6 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Wed, 2 Aug 2017 16:00:35 +0300 Subject: [PATCH 001/555] MAGETWO-71229: Warning message is cached and shown a few times on the shopping cart --- .../templates/product/view/addtocart.phtml | 11 ++--- .../view/frontend/web/js/validate-product.js | 48 +++++++++++++++++++ .../view/frontend/web/js/view/messages.js | 2 +- 3 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 app/code/Magento/Catalog/view/frontend/web/js/validate-product.js diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml index 72ddb305e2c4b..d8963e42f0df6 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml @@ -40,7 +40,8 @@ - -isRedirectToCartEnabled()) : ?> - diff --git a/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js b/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js new file mode 100644 index 0000000000000..6913754f03db6 --- /dev/null +++ b/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js @@ -0,0 +1,48 @@ +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'jquery', + 'mage/mage', + 'Magento_Catalog/product/view/validation', + 'catalogAddToCart' +], function ($) { + 'use strict'; + + $.widget('mage.productValidate', { + options: { + bindSubmit: false, + radioCheckboxClosest: '.nested' + }, + + /** + * Uses Magento's validation widget for the form object. + * @private + */ + _create: function () { + var bindSubmit = this.options.bindSubmit; + + this.element.validation({ + radioCheckboxClosest: this.options.radioCheckboxClosest, + + /** + * Uses catalogAddToCart widget as submit handler. + * @param {Object} form + * @returns {Boolean} + */ + submitHandler: function (form, event) { + var jqForm = $(form).catalogAddToCart({ + bindSubmit: bindSubmit + }); + + jqForm.catalogAddToCart('submitForm', jqForm, event); + + return false; + } + }); + } + }); + + return $.mage.productValidate; +}); \ No newline at end of file diff --git a/app/code/Magento/Theme/view/frontend/web/js/view/messages.js b/app/code/Magento/Theme/view/frontend/web/js/view/messages.js index b07f0dcae3c74..2fca0d22f6875 100644 --- a/app/code/Magento/Theme/view/frontend/web/js/view/messages.js +++ b/app/code/Magento/Theme/view/frontend/web/js/view/messages.js @@ -21,7 +21,7 @@ define([ initialize: function () { this._super(); - this.cookieMessages = $.cookieStorage.get('mage-messages'); + this.cookieMessages = _.unique($.cookieStorage.get('mage-messages'), 'text'); this.messages = customerData.get('messages').extend({ disposableCustomerData: 'messages' }); From 038913cf960245c387fa588a8c48bbd76577da3c Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Thu, 3 Aug 2017 10:58:30 +0300 Subject: [PATCH 002/555] MAGETWO-71229: Warning message is cached and shown a few times on the shopping cart --- .../Magento/Catalog/view/frontend/web/js/validate-product.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js b/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js index 6913754f03db6..ac5d04bf44c9f 100644 --- a/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js +++ b/app/code/Magento/Catalog/view/frontend/web/js/validate-product.js @@ -45,4 +45,4 @@ define([ }); return $.mage.productValidate; -}); \ No newline at end of file +}); From 13e7469c55f258910dd67668de5cb1dabd27bf7f Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Mon, 11 Sep 2017 14:37:41 +0300 Subject: [PATCH 003/555] MAGETWO-71701: [Backport] - Catalog top nav, CSS class not set to active when using Varnish - for 2.1 --- lib/web/mage/menu.js | 157 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 149 insertions(+), 8 deletions(-) diff --git a/lib/web/mage/menu.js b/lib/web/mage/menu.js index 75d9a90c305b7..25722032230b1 100644 --- a/lib/web/mage/menu.js +++ b/lib/web/mage/menu.js @@ -2,6 +2,7 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + define([ "jquery", "matchMedia", @@ -18,8 +19,12 @@ define([ options: { responsive: false, expanded: false, - delay: 300 + mediaBreakpoint: '(max-width: 768px)' }, + + /** + * @private + */ _create: function () { var self = this; @@ -29,6 +34,9 @@ define([ }); }, + /** + * @private + */ _init: function () { this._super(); this.delay = this.options.delay; @@ -39,7 +47,7 @@ define([ if (this.options.responsive === true) { mediaCheck({ - media: '(max-width: 640px)', + media: this.options.mediaBreakpoint, entry: $.proxy(function () { this._toggleMobileMode(); }, this), @@ -50,8 +58,13 @@ define([ } this._assignControls()._listen(); + this._setActiveMenu(); }, + /** + * @return {Object} + * @private + */ _assignControls: function () { this.controls = { toggleBtn: $('[data-action="toggle-nav"]'), @@ -61,14 +74,24 @@ define([ return this; }, + /** + * @private + */ _listen: function () { - var controls = this.controls; - var toggle = this.toggle; + var controls = this.controls, + toggle = this.toggle; - this._on(controls.toggleBtn, {'click': toggle}); - this._on(controls.swipeArea, {'swipeleft': toggle}); + this._on(controls.toggleBtn, { + 'click': toggle + }); + this._on(controls.swipeArea, { + 'swipeleft': toggle + }); }, + /** + * Toggle. + */ toggle: function () { if ($('html').hasClass('nav-open')) { $('html').removeClass('nav-open'); @@ -83,7 +106,114 @@ define([ } }, - //Add class for expanded option + /** + * Tries to figure out the active category for current page and add appropriate classes: + * - 'active' class for active category + * - 'has-active' class for all parents of active category + * + * First, checks whether current URL is URL of category page, + * otherwise tries to retrieve category URL in case of current URL is product view page URL + * which has category tree path in it. + * + * @return void + * @private + */ + _setActiveMenu: function () { + var currentUrl = window.location.href.split('?')[0]; + + if (!this._setActiveMenuForCategory(currentUrl)) { + this._setActiveMenuForProduct(currentUrl); + } + }, + + /** + * Looks for category with provided URL and adds 'active' CSS class to it if it was not set before. + * If menu item has parent categories, sets 'has-active' class to all af them. + * + * @param {String} url - possible category URL + * @returns {Boolean} - true if active category was founded by provided URL, otherwise return false + * @private + */ + _setActiveMenuForCategory: function (url) { + var activeCategoryLink = this.element.find('a[href="' + url + '"]'), + classes, + classNav; + + if (!activeCategoryLink || !activeCategoryLink.hasClass('ui-corner-all')) { + + //category was not found by provided URL + return false; + } else if (!activeCategoryLink.parent().hasClass('active')) { + activeCategoryLink.parent().addClass('active'); + classes = activeCategoryLink.parent().attr('class'); + classNav = classes.match(/(nav\-)[0-9]+(\-[0-9]+)+/gi); + + if (classNav) { + this._setActiveParent(classNav[0]); + } + } + + return true; + }, + + /** + * Sets 'has-active' CSS class to all parent categories which have part of provided class in childClassName + * + * @example + * childClassName - 'nav-1-2-3' + * CSS class 'has-active' will be added to categories have 'nav-1-2' and 'nav-1' classes + * + * @param {String} childClassName - Class name of active category
  • element + * @return void + * @private + */ + _setActiveParent: function (childClassName) { + var parentElement, + parentClass = childClassName.substr(0, childClassName.lastIndexOf('-')); + + if (parentClass.lastIndexOf('-') !== -1) { + parentElement = this.element.find('.' + parentClass); + + if (parentElement) { + parentElement.addClass('has-active'); + } + this._setActiveParent(parentClass); + } + }, + + /** + * Tries to retrieve category URL from current URL and mark this category as active + * @see _setActiveMenuForCategory(url) + * + * @example + * currentUrl - http://magento.com/category1/category12/product.html, + * category URLs has extensions .phtml - http://magento.com/category1.phtml + * method sets active category which has URL http://magento.com/category1/category12.phtml + * + * @param {String} currentUrl - current page URL without parameters + * @return void + * @private + */ + _setActiveMenuForProduct: function (currentUrl) { + var categoryUrlExtension, + lastUrlSection, + possibleCategoryUrl, + //retrieve first category URL to know what extension is used for category URLs + firstCategoryUrl = this.element.find('> li a').attr('href'); + + if (firstCategoryUrl) { + lastUrlSection = firstCategoryUrl.substr(firstCategoryUrl.lastIndexOf('/')); + categoryUrlExtension = lastUrlSection.lastIndexOf('.') !== -1 ? + lastUrlSection.substr(lastUrlSection.lastIndexOf('.')) : ''; + + possibleCategoryUrl = currentUrl.substr(0, currentUrl.lastIndexOf('/')) + categoryUrlExtension; + this._setActiveMenuForCategory(possibleCategoryUrl); + } + }, + + /** + * Add class for expanded option. + */ isExpanded: function () { var subMenus = this.element.find(this.options.menus), expandedMenus = subMenus.find('ul'); @@ -91,16 +221,27 @@ define([ expandedMenus.addClass('expanded'); }, + /** + * @param {jQuery.Event} event + * @private + */ _activate: function (event) { window.location.href = this.active.find('> a').attr('href'); this.collapseAll(event); }, + /** + * @param {jQuery.Event} event + * @private + */ _keydown: function (event) { - var match, prev, character, skip, regex, preventDefault = true; + /* eslint-disable max-depth */ + /** + * @param {String} value + */ function escape(value) { return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } From ebe526f042632fd3596da1db9d530fa2bffdb981 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Mon, 11 Sep 2017 14:42:54 +0300 Subject: [PATCH 004/555] MAGETWO-71701: [Backport] - Catalog top nav, CSS class not set to active when using Varnish - for 2.1 --- lib/web/mage/menu.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web/mage/menu.js b/lib/web/mage/menu.js index 25722032230b1..31689de6e1e2c 100644 --- a/lib/web/mage/menu.js +++ b/lib/web/mage/menu.js @@ -19,6 +19,7 @@ define([ options: { responsive: false, expanded: false, + delay: 300, mediaBreakpoint: '(max-width: 768px)' }, From 71ae63cb964adc50e356f9bb21282798f5e05b30 Mon Sep 17 00:00:00 2001 From: Luke Rodgers Date: Sun, 5 Nov 2017 20:51:31 +0000 Subject: [PATCH 005/555] Add command to view mview state and queue This is similar to the magerun1 command here: https://github.com/netz98/n98-magerun/pull/891 I like the ability to view the mview queue in realtime as its being processed, it can be quite helpful when debugging indexing issues. This command will actually show how many items are in the list pending processing, as well information from the `mview_state` table. ``` php bin/magento indexer:status:mview +---------------------------+----------+--------+---------------------+------------+---------+ | ID | Mode | Status | Updated | Version ID | Backlog | +---------------------------+----------+--------+---------------------+------------+---------+ | catalog_category_product | enabled | idle | 2017-11-02 10:00:00 | 1 | 0 | | catalog_product_attribute | enabled | idle | 2017-11-02 10:00:00 | 1 | 1 | | catalog_product_category | disabled | idle | 2017-11-02 10:00:00 | 1 | 0 | | catalog_product_price | enabled | idle | 2017-11-02 10:00:00 | 1 | 0 | +---------------------------+----------+--------+---------------------+------------+---------+ ``` I'll point this PR into 2.1.x and raise a separate PR to pop it into 2.2.x. --- .../Command/IndexerStatusMviewCommand.php | 95 +++++++ .../Command/IndexerStatusMviewCommandTest.php | 233 ++++++++++++++++++ app/code/Magento/Indexer/etc/di.xml | 1 + 3 files changed, 329 insertions(+) create mode 100644 app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php create mode 100644 app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php diff --git a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php new file mode 100644 index 0000000000000..4fb0c0bcb5649 --- /dev/null +++ b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php @@ -0,0 +1,95 @@ +mviewIndexersCollection = $collection; + parent::__construct(); + } + + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setName('indexer:status:mview') + ->setDescription('Shows status of Mview Indexers and their queue status'); + + parent::configure(); + } + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + try { + $table = $this->getHelperSet()->get('table'); + $table->setHeaders(['ID', 'Mode', 'Status', 'Updated', 'Version ID', 'Backlog']); + + $rows = []; + + /** @var \Magento\Framework\Mview\View $indexer */ + foreach ($this->mviewIndexersCollection as $indexer) { + $state = $indexer->getState(); + $changelog = $indexer->getChangelog(); + + try { + $currentVersionId = $changelog->getVersion(); + } catch (View\ChangelogTableNotExistsException $e) { + continue; + } + + $pendingCount = count($changelog->getList($state->getVersionId(), $currentVersionId)); + + $pendingString = "$pendingCount"; + if ($pendingCount <= 0) { + $pendingString = "$pendingCount"; + } + + $rows[] = [ + $indexer->getData('view_id'), + $state->getData('mode'), + $state->getData('status'), + $state->getData('updated'), + $state->getData('version_id'), + $pendingString, + ]; + } + + usort($rows, function($a, $b) { + return $a[0] <=> $b[0]; + }); + + $table->addRows($rows); + $table->render($output); + + return \Magento\Framework\Console\Cli::RETURN_SUCCESS; + } catch (\Exception $e) { + $output->writeln('' . $e->getMessage() . ''); + if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) { + $output->writeln($e->getTraceAsString()); + } + + return \Magento\Framework\Console\Cli::RETURN_FAILURE; + } + } +} diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php new file mode 100644 index 0000000000000..7266d009a5ee7 --- /dev/null +++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php @@ -0,0 +1,233 @@ +objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + /** @var \Magento\Framework\Mview\View\Collection $collection */ + $this->collection = $this->objectManager->getObject(Mview\View\Collection::class); + + $reflectedCollection = new \ReflectionObject($this->collection); + $isLoadedProperty = $reflectedCollection->getProperty('_isCollectionLoaded'); + $isLoadedProperty->setAccessible(true); + $isLoadedProperty->setValue($this->collection, true); + + $this->command = $this->objectManager->getObject( + IndexerStatusMviewCommand::class, + ['collection' => $this->collection] + ); + + /** @var HelperSet $helperSet */ + $helperSet = $this->objectManager->getObject( + HelperSet::class, + ['helpers' => [$this->objectManager->getObject(TableHelper::class)]] + ); + + //Inject table helper for output + $this->command->setHelperSet($helperSet); + } + + public function testExecute() + { + $mviews = [ + [ + 'view' => [ + 'view_id' => 'catalog_category_product', + 'mode' => 'enabled', + 'status' => 'idle', + 'updated' => '2017-01-01 11:11:11', + 'version_id' => 100, + ], + 'changelog' => [ + 'version_id' => 110 + ], + ], + [ + 'view' => [ + 'view_id' => 'catalog_product_category', + 'mode' => 'disabled', + 'status' => 'idle', + 'updated' => '2017-01-01 11:11:11', + 'version_id' => 100, + ], + 'changelog' => [ + 'version_id' => 200 + ], + ], + [ + 'view' => [ + 'view_id' => 'catalog_product_attribute', + 'mode' => 'enabled', + 'status' => 'idle', + 'updated' => '2017-01-01 11:11:11', + 'version_id' => 100, + ], + 'changelog' => [ + 'version_id' => 100 + ], + ], + ]; + + foreach ($mviews as $data) { + $this->collection->addItem($this->generateMviewStub($data['view'], $data['changelog'])); + } + + /** @var Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject $stub */ + $changelog = $this->getMockBuilder(\Magento\Framework\Mview\View\Changelog::class) + ->disableOriginalConstructor() + ->getMock(); + + $changelog->expects($this->any()) + ->method('getVersion') + ->willThrowException( + new Mview\View\ChangelogTableNotExistsException(new \Magento\Framework\Phrase("Do not render")) + ); + + /** @var Mview\View|\PHPUnit_Framework_MockObject_MockObject $notInitiatedMview */ + $notInitiatedMview = $this->getMockBuilder(\Magento\Framework\Mview\View::class) + ->disableOriginalConstructor() + ->getMock(); + + $notInitiatedMview->expects($this->any()) + ->method('getChangelog') + ->willReturn($changelog); + + $this->collection->addItem($notInitiatedMview); + + $tester = new CommandTester($this->command); + $this->assertEquals(Cli::RETURN_SUCCESS, $tester->execute([])); + + $linesOutput = array_filter(explode(PHP_EOL, $tester->getDisplay())); + $this->assertCount(7, $linesOutput, 'There should be 7 lines output. 3 Spacers, 1 header, 3 content.'); + $this->assertEquals($linesOutput[0], $linesOutput[2], "Lines 0, 2, 7 should be spacer lines"); + $this->assertEquals($linesOutput[2], $linesOutput[6], "Lines 0, 2, 6 should be spacer lines"); + + $headerValues = array_values(array_filter(explode('|', $linesOutput[1]))); + $this->assertEquals('ID', trim($headerValues[0])); + $this->assertEquals('Mode', trim($headerValues[1])); + $this->assertEquals('Status', trim($headerValues[2])); + $this->assertEquals('Updated', trim($headerValues[3])); + $this->assertEquals('Version ID', trim($headerValues[4])); + $this->assertEquals('Backlog', trim($headerValues[5])); + + $catalogCategoryProductMviewData = array_values(array_filter(explode('|', $linesOutput[3]))); + $this->assertEquals('catalog_category_product', trim($catalogCategoryProductMviewData[0])); + $this->assertEquals('enabled', trim($catalogCategoryProductMviewData[1])); + $this->assertEquals('idle', trim($catalogCategoryProductMviewData[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($catalogCategoryProductMviewData[3])); + $this->assertEquals('100', trim($catalogCategoryProductMviewData[4])); + $this->assertEquals('10', trim($catalogCategoryProductMviewData[5])); + unset($catalogCategoryProductMviewData); + + $catalogProductAttributeMviewData = array_values(array_filter(explode('|', $linesOutput[4]))); + $this->assertEquals('catalog_product_attribute', trim($catalogProductAttributeMviewData[0])); + $this->assertEquals('enabled', trim($catalogProductAttributeMviewData[1])); + $this->assertEquals('idle', trim($catalogProductAttributeMviewData[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($catalogProductAttributeMviewData[3])); + $this->assertEquals('100', trim($catalogProductAttributeMviewData[4])); + $this->assertEquals('0', trim($catalogProductAttributeMviewData[5])); + unset($catalogProductAttributeMviewData); + + $catalogCategoryProductMviewData = array_values(array_filter(explode('|', $linesOutput[5]))); + $this->assertEquals('catalog_product_category', trim($catalogCategoryProductMviewData[0])); + $this->assertEquals('disabled', trim($catalogCategoryProductMviewData[1])); + $this->assertEquals('idle', trim($catalogCategoryProductMviewData[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($catalogCategoryProductMviewData[3])); + $this->assertEquals('100', trim($catalogCategoryProductMviewData[4])); + $this->assertEquals('100', trim($catalogCategoryProductMviewData[5])); + unset($catalogCategoryProductMviewData); + } + + /** + * @param array $viewData + * @param array $changelogData + * @return Mview\View|Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject + */ + protected function generateMviewStub(array $viewData, array $changelogData) + { + /** @var Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject $stub */ + $changelog = $this->getMockBuilder(\Magento\Framework\Mview\View\Changelog::class) + ->disableOriginalConstructor() + ->getMock(); + + $list = []; + if ($changelogData['version_id'] !== $viewData['version_id']) { + $list = range($viewData['version_id']+1, $changelogData['version_id']); + } + + $changelog->expects($this->any()) + ->method('getList') + ->willReturn($list); + + $changelog->expects($this->any()) + ->method('getVersion') + ->willReturn($changelogData['version_id']); + + /** @var Mview\View|\PHPUnit_Framework_MockObject_MockObject $stub */ + $stub = $this->getMockBuilder(\Magento\Framework\Mview\View::class) + ->disableOriginalConstructor() + ->setMethods(['getChangelog', 'getState']) + ->getMock(); + + $stub->expects($this->any()) + ->method('getChangelog') + ->willReturn($changelog); + + $stub->expects($this->any()) + ->method('getState') + ->willReturnSelf(); + + $stub->setData($viewData); + + return $stub; + } + + public function testExecuteExceptionNoVerbosity() + { + /** @var \Magento\Framework\Mview\View|\PHPUnit_Framework_MockObject_MockObject $stub */ + $stub = $this->getMockBuilder(Mview\View::class) + ->disableOriginalConstructor() + ->getMock(); + + $stub->expects($this->any()) + ->method('getChangelog') + ->willThrowException(new \Exception("Dummy test exception")); + + $this->collection->addItem($stub); + + $tester = new CommandTester($this->command); + $this->assertEquals(Cli::RETURN_FAILURE, $tester->execute([])); + $linesOutput = array_filter(explode(PHP_EOL, $tester->getDisplay())); + $this->assertEquals('Dummy test exception', $linesOutput[0]); + } +} diff --git a/app/code/Magento/Indexer/etc/di.xml b/app/code/Magento/Indexer/etc/di.xml index 1d3f125406f7d..2ad57b1495baf 100644 --- a/app/code/Magento/Indexer/etc/di.xml +++ b/app/code/Magento/Indexer/etc/di.xml @@ -51,6 +51,7 @@ Magento\Indexer\Console\Command\IndexerSetModeCommand Magento\Indexer\Console\Command\IndexerShowModeCommand Magento\Indexer\Console\Command\IndexerStatusCommand + Magento\Indexer\Console\Command\IndexerStatusMviewCommand Magento\Indexer\Console\Command\IndexerResetStateCommand From c0078bef6b1af1307879cada6525c600fff85722 Mon Sep 17 00:00:00 2001 From: Luke Rodgers Date: Sun, 5 Nov 2017 21:23:23 +0000 Subject: [PATCH 006/555] Make indexer status mview 5.5 compatible --- .../Command/IndexerStatusMviewCommand.php | 4 +- .../Command/IndexerStatusMviewCommandTest.php | 54 +++++++++++-------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php index 4fb0c0bcb5649..61461a0ba610c 100644 --- a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php +++ b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php @@ -75,8 +75,8 @@ protected function execute(InputInterface $input, OutputInterface $output) ]; } - usort($rows, function($a, $b) { - return $a[0] <=> $b[0]; + usort($rows, function ($a, $b) { + return strcmp($a[0], $b[0]); }); $table->addRows($rows); diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php index 7266d009a5ee7..e6a782cba92fd 100644 --- a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php +++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php @@ -13,6 +13,9 @@ use Magento\Store\Model\Website; use Magento\Framework\Console\Cli; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class IndexerStatusMviewCommandTest extends \PHPUnit_Framework_TestCase { /** @@ -101,28 +104,7 @@ public function testExecute() foreach ($mviews as $data) { $this->collection->addItem($this->generateMviewStub($data['view'], $data['changelog'])); } - - /** @var Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject $stub */ - $changelog = $this->getMockBuilder(\Magento\Framework\Mview\View\Changelog::class) - ->disableOriginalConstructor() - ->getMock(); - - $changelog->expects($this->any()) - ->method('getVersion') - ->willThrowException( - new Mview\View\ChangelogTableNotExistsException(new \Magento\Framework\Phrase("Do not render")) - ); - - /** @var Mview\View|\PHPUnit_Framework_MockObject_MockObject $notInitiatedMview */ - $notInitiatedMview = $this->getMockBuilder(\Magento\Framework\Mview\View::class) - ->disableOriginalConstructor() - ->getMock(); - - $notInitiatedMview->expects($this->any()) - ->method('getChangelog') - ->willReturn($changelog); - - $this->collection->addItem($notInitiatedMview); + $this->collection->addItem($this->getNeverEnabledMviewIndexerWithNoTable()); $tester = new CommandTester($this->command); $this->assertEquals(Cli::RETURN_SUCCESS, $tester->execute([])); @@ -212,6 +194,34 @@ protected function generateMviewStub(array $viewData, array $changelogData) return $stub; } + /** + * @return Mview\View|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getNeverEnabledMviewIndexerWithNoTable() + { + /** @var Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject $stub */ + $changelog = $this->getMockBuilder(\Magento\Framework\Mview\View\Changelog::class) + ->disableOriginalConstructor() + ->getMock(); + + $changelog->expects($this->any()) + ->method('getVersion') + ->willThrowException( + new Mview\View\ChangelogTableNotExistsException(new \Magento\Framework\Phrase("Do not render")) + ); + + /** @var Mview\View|\PHPUnit_Framework_MockObject_MockObject $notInitiatedMview */ + $notInitiatedMview = $this->getMockBuilder(\Magento\Framework\Mview\View::class) + ->disableOriginalConstructor() + ->getMock(); + + $notInitiatedMview->expects($this->any()) + ->method('getChangelog') + ->willReturn($changelog); + + return $notInitiatedMview; + } + public function testExecuteExceptionNoVerbosity() { /** @var \Magento\Framework\Mview\View|\PHPUnit_Framework_MockObject_MockObject $stub */ From b52f7c6e6efb7a46b50a290e768acdb5097f2243 Mon Sep 17 00:00:00 2001 From: Luke Rodgers Date: Mon, 6 Nov 2017 17:55:45 +0000 Subject: [PATCH 007/555] Use factories/interfaces correctly --- .../Command/IndexerStatusMviewCommand.php | 33 ++++++++++-------- .../Command/IndexerStatusMviewCommandTest.php | 34 +++++++++++++++---- 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php index 61461a0ba610c..cb60d4f31da7f 100644 --- a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php +++ b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php @@ -9,19 +9,22 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Command\Command; use Magento\Framework\Mview\View; +use Magento\Framework\Mview\View\CollectionFactory; +use Magento\Framework\Console\Cli; /** * Command for displaying status of mview indexers. */ class IndexerStatusMviewCommand extends Command { - /** @var \Magento\Framework\Mview\View\CollectionInterface $mviewIndexersCollection */ - private $mviewIndexersCollection; + /** @var \Magento\Framework\Mview\View\CollectionInterface $mviewCollection */ + private $mviewCollection; public function __construct( - \Magento\Framework\Mview\View\CollectionInterface $collection + CollectionFactory $collectionFactory ) { - $this->mviewIndexersCollection = $collection; + $this->mviewCollection = $collectionFactory->create(); + parent::__construct(); } @@ -47,10 +50,10 @@ protected function execute(InputInterface $input, OutputInterface $output) $rows = []; - /** @var \Magento\Framework\Mview\View $indexer */ - foreach ($this->mviewIndexersCollection as $indexer) { - $state = $indexer->getState(); - $changelog = $indexer->getChangelog(); + /** @var \Magento\Framework\Mview\View $view */ + foreach ($this->mviewCollection as $view) { + $state = $view->getState(); + $changelog = $view->getChangelog(); try { $currentVersionId = $changelog->getVersion(); @@ -66,11 +69,11 @@ protected function execute(InputInterface $input, OutputInterface $output) } $rows[] = [ - $indexer->getData('view_id'), - $state->getData('mode'), - $state->getData('status'), - $state->getData('updated'), - $state->getData('version_id'), + $view->getId(), + $state->getMode(), + $state->getStatus(), + $state->getUpdated(), + $state->getVersionId(), $pendingString, ]; } @@ -82,14 +85,14 @@ protected function execute(InputInterface $input, OutputInterface $output) $table->addRows($rows); $table->render($output); - return \Magento\Framework\Console\Cli::RETURN_SUCCESS; + return Cli::RETURN_SUCCESS; } catch (\Exception $e) { $output->writeln('' . $e->getMessage() . ''); if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) { $output->writeln($e->getTraceAsString()); } - return \Magento\Framework\Console\Cli::RETURN_FAILURE; + return Cli::RETURN_FAILURE; } } } diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php index e6a782cba92fd..43ffed3fd1e93 100644 --- a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php +++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php @@ -12,6 +12,7 @@ use Symfony\Component\Console\Helper\TableHelper; use Magento\Store\Model\Website; use Magento\Framework\Console\Cli; +use Magento\Framework\Mview\View\CollectionFactory; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -45,9 +46,15 @@ protected function setUp() $isLoadedProperty->setAccessible(true); $isLoadedProperty->setValue($this->collection, true); + $collectionFactory = $this->getMockBuilder(CollectionFactory::class) + ->disableOriginalConstructor() + ->getMock(); + $collectionFactory->method('create') + ->willReturn($this->collection); + $this->command = $this->objectManager->getObject( IndexerStatusMviewCommand::class, - ['collection' => $this->collection] + ['collectionFactory' => $collectionFactory] ); /** @var HelperSet $helperSet */ @@ -66,6 +73,8 @@ public function testExecute() [ 'view' => [ 'view_id' => 'catalog_category_product', + ], + 'state' => [ 'mode' => 'enabled', 'status' => 'idle', 'updated' => '2017-01-01 11:11:11', @@ -78,6 +87,8 @@ public function testExecute() [ 'view' => [ 'view_id' => 'catalog_product_category', + ], + 'state' => [ 'mode' => 'disabled', 'status' => 'idle', 'updated' => '2017-01-01 11:11:11', @@ -90,6 +101,8 @@ public function testExecute() [ 'view' => [ 'view_id' => 'catalog_product_attribute', + ], + 'state' => [ 'mode' => 'enabled', 'status' => 'idle', 'updated' => '2017-01-01 11:11:11', @@ -102,7 +115,7 @@ public function testExecute() ]; foreach ($mviews as $data) { - $this->collection->addItem($this->generateMviewStub($data['view'], $data['changelog'])); + $this->collection->addItem($this->generateMviewStub($data['view'], $data['changelog'], $data['state'])); } $this->collection->addItem($this->getNeverEnabledMviewIndexerWithNoTable()); @@ -153,9 +166,10 @@ public function testExecute() /** * @param array $viewData * @param array $changelogData + * @param array $stateData * @return Mview\View|Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject */ - protected function generateMviewStub(array $viewData, array $changelogData) + protected function generateMviewStub(array $viewData, array $changelogData, array $stateData) { /** @var Mview\View\Changelog|\PHPUnit_Framework_MockObject_MockObject $stub */ $changelog = $this->getMockBuilder(\Magento\Framework\Mview\View\Changelog::class) @@ -163,8 +177,8 @@ protected function generateMviewStub(array $viewData, array $changelogData) ->getMock(); $list = []; - if ($changelogData['version_id'] !== $viewData['version_id']) { - $list = range($viewData['version_id']+1, $changelogData['version_id']); + if ($changelogData['version_id'] !== $stateData['version_id']) { + $list = range($stateData['version_id']+1, $changelogData['version_id']); } $changelog->expects($this->any()) @@ -175,6 +189,14 @@ protected function generateMviewStub(array $viewData, array $changelogData) ->method('getVersion') ->willReturn($changelogData['version_id']); + /** @var \Magento\Indexer\Model\Mview\View\State|\PHPUnit_Framework_MockObject_MockObject $stub */ + $state = $this->getMockBuilder(\Magento\Indexer\Model\Mview\View\State::class) + ->disableOriginalConstructor() + ->setMethods(['loadByView']) + ->getMock(); + + $state->setData($stateData); + /** @var Mview\View|\PHPUnit_Framework_MockObject_MockObject $stub */ $stub = $this->getMockBuilder(\Magento\Framework\Mview\View::class) ->disableOriginalConstructor() @@ -187,7 +209,7 @@ protected function generateMviewStub(array $viewData, array $changelogData) $stub->expects($this->any()) ->method('getState') - ->willReturnSelf(); + ->willReturn($state); $stub->setData($viewData); From 9c72a0d9aca931e5c30df73f20369031e492167e Mon Sep 17 00:00:00 2001 From: Luke Rodgers Date: Tue, 7 Nov 2017 17:32:41 +0000 Subject: [PATCH 008/555] Update code style --- .../Command/IndexerStatusMviewCommand.php | 4 +- .../Command/IndexerStatusMviewCommandTest.php | 52 +++++++++---------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php index cb60d4f31da7f..5451df34645e9 100644 --- a/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php +++ b/app/code/Magento/Indexer/Console/Command/IndexerStatusMviewCommand.php @@ -78,8 +78,8 @@ protected function execute(InputInterface $input, OutputInterface $output) ]; } - usort($rows, function ($a, $b) { - return strcmp($a[0], $b[0]); + usort($rows, function ($comp1, $comp2) { + return strcmp($comp1[0], $comp2[0]); }); $table->addRows($rows); diff --git a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php index 43ffed3fd1e93..b58596be70c48 100644 --- a/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php +++ b/app/code/Magento/Indexer/Test/Unit/Console/Command/IndexerStatusMviewCommandTest.php @@ -135,32 +135,32 @@ public function testExecute() $this->assertEquals('Version ID', trim($headerValues[4])); $this->assertEquals('Backlog', trim($headerValues[5])); - $catalogCategoryProductMviewData = array_values(array_filter(explode('|', $linesOutput[3]))); - $this->assertEquals('catalog_category_product', trim($catalogCategoryProductMviewData[0])); - $this->assertEquals('enabled', trim($catalogCategoryProductMviewData[1])); - $this->assertEquals('idle', trim($catalogCategoryProductMviewData[2])); - $this->assertEquals('2017-01-01 11:11:11', trim($catalogCategoryProductMviewData[3])); - $this->assertEquals('100', trim($catalogCategoryProductMviewData[4])); - $this->assertEquals('10', trim($catalogCategoryProductMviewData[5])); - unset($catalogCategoryProductMviewData); - - $catalogProductAttributeMviewData = array_values(array_filter(explode('|', $linesOutput[4]))); - $this->assertEquals('catalog_product_attribute', trim($catalogProductAttributeMviewData[0])); - $this->assertEquals('enabled', trim($catalogProductAttributeMviewData[1])); - $this->assertEquals('idle', trim($catalogProductAttributeMviewData[2])); - $this->assertEquals('2017-01-01 11:11:11', trim($catalogProductAttributeMviewData[3])); - $this->assertEquals('100', trim($catalogProductAttributeMviewData[4])); - $this->assertEquals('0', trim($catalogProductAttributeMviewData[5])); - unset($catalogProductAttributeMviewData); - - $catalogCategoryProductMviewData = array_values(array_filter(explode('|', $linesOutput[5]))); - $this->assertEquals('catalog_product_category', trim($catalogCategoryProductMviewData[0])); - $this->assertEquals('disabled', trim($catalogCategoryProductMviewData[1])); - $this->assertEquals('idle', trim($catalogCategoryProductMviewData[2])); - $this->assertEquals('2017-01-01 11:11:11', trim($catalogCategoryProductMviewData[3])); - $this->assertEquals('100', trim($catalogCategoryProductMviewData[4])); - $this->assertEquals('100', trim($catalogCategoryProductMviewData[5])); - unset($catalogCategoryProductMviewData); + $categoryProduct = array_values(array_filter(explode('|', $linesOutput[3]))); + $this->assertEquals('catalog_category_product', trim($categoryProduct[0])); + $this->assertEquals('enabled', trim($categoryProduct[1])); + $this->assertEquals('idle', trim($categoryProduct[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($categoryProduct[3])); + $this->assertEquals('100', trim($categoryProduct[4])); + $this->assertEquals('10', trim($categoryProduct[5])); + unset($categoryProduct); + + $productAttribute = array_values(array_filter(explode('|', $linesOutput[4]))); + $this->assertEquals('catalog_product_attribute', trim($productAttribute[0])); + $this->assertEquals('enabled', trim($productAttribute[1])); + $this->assertEquals('idle', trim($productAttribute[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($productAttribute[3])); + $this->assertEquals('100', trim($productAttribute[4])); + $this->assertEquals('0', trim($productAttribute[5])); + unset($productAttribute); + + $productCategory = array_values(array_filter(explode('|', $linesOutput[5]))); + $this->assertEquals('catalog_product_category', trim($productCategory[0])); + $this->assertEquals('disabled', trim($productCategory[1])); + $this->assertEquals('idle', trim($productCategory[2])); + $this->assertEquals('2017-01-01 11:11:11', trim($productCategory[3])); + $this->assertEquals('100', trim($productCategory[4])); + $this->assertEquals('100', trim($productCategory[5])); + unset($productCategory); } /** From ef6a9a48a2115fbc45004b8595dfa4811fbab29d Mon Sep 17 00:00:00 2001 From: RomanKis Date: Thu, 9 Nov 2017 14:09:22 +0200 Subject: [PATCH 009/555] 9768: Admin dashboard Most Viewed Products Tab only gives default attribute set's products(backport for 2.1) --- .../ResourceModel/Product/Collection.php | 8 +- .../ResourceModel/Product/CollectionTest.php | 323 ++++++++++++++++++ 2 files changed, 326 insertions(+), 5 deletions(-) create mode 100644 app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Product/CollectionTest.php diff --git a/app/code/Magento/Reports/Model/ResourceModel/Product/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Product/Collection.php index 4f5c6d1c3c996..bf7af4983ffff 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Product/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Product/Collection.php @@ -296,7 +296,7 @@ public function setOrder($attribute, $dir = self::SORT_ORDER_DESC) } /** - * Add views count + * Add views count. * * @param string $from * @param string $to @@ -320,10 +320,7 @@ public function addViewsCount($from = '', $to = '') ['views' => 'COUNT(report_table_views.event_id)'] )->join( ['e' => $this->getProductEntityTableName()], - $this->getConnection()->quoteInto( - 'e.entity_id = report_table_views.object_id AND e.attribute_set_id = ?', - $this->getProductAttributeSetId() - ) + 'e.entity_id = report_table_views.object_id' )->where( 'report_table_views.event_type_id = ?', $productViewEvent @@ -339,6 +336,7 @@ public function addViewsCount($from = '', $to = '') if ($from != '' && $to != '') { $this->getSelect()->where('logged_at >= ?', $from)->where('logged_at <= ?', $to); } + return $this; } diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Product/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Product/CollectionTest.php new file mode 100644 index 0000000000000..f201e735379bf --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Product/CollectionTest.php @@ -0,0 +1,323 @@ +objectManager = new ObjectManager($this); + $context = $this->createPartialMock(Context::class, ['getResource', 'getEavConfig']); + $entityFactoryMock = $this->createMock(EntityFactory::class); + $loggerMock = $this->createMock(LoggerInterface::class); + $fetchStrategyMock = $this->createMock(FetchStrategyInterface::class); + $eventManagerMock = $this->createMock(ManagerInterface::class); + $eavConfigMock = $this->createMock(Config::class); + $this->resourceMock = $this->createPartialMock(ResourceConnection::class, ['getTableName', 'getConnection']); + $eavEntityFactoryMock = $this->createMock(EavEntityFactory::class); + $resourceHelperMock = $this->createMock(Helper::class); + $universalFactoryMock = $this->createMock(UniversalFactory::class); + $storeManagerMock = $this->createPartialMockForAbstractClass( + StoreManagerInterface::class, + ['getStore', 'getId'] + ); + $moduleManagerMock = $this->createMock(Manager::class); + $productFlatStateMock = $this->createMock(State::class); + $scopeConfigMock = $this->createMock(ScopeConfigInterface::class); + $optionFactoryMock = $this->createMock(OptionFactory::class); + $catalogUrlMock = $this->createMock(Url::class); + $localeDateMock = $this->createMock(TimezoneInterface::class); + $customerSessionMock = $this->createMock(Session::class); + $dateTimeMock = $this->createMock(DateTime::class); + $groupManagementMock = $this->createMock(GroupManagementInterface::class); + $eavConfig = $this->createPartialMock(Config::class, ['getEntityType']); + $entityType = $this->createMock(Type::class); + + $eavConfig->expects($this->atLeastOnce())->method('getEntityType')->willReturn($entityType); + $context->expects($this->atLeastOnce())->method('getResource')->willReturn($this->resourceMock); + $context->expects($this->atLeastOnce())->method('getEavConfig')->willReturn($eavConfig); + + $defaultAttributes = $this->createPartialMock(DefaultAttributes::class, ['_getDefaultAttributes']); + $productMock = $this->objectManager->getObject( + ResourceProduct::class, + ['context' => $context, 'defaultAttributes' => $defaultAttributes] + ); + + $this->eventTypeFactoryMock = $this->createPartialMock(TypeFactory::class, ['create']); + $productTypeMock = $this->createMock(ProductType::class); + $quoteResourceMock = $this->createMock(Collection::class); + $this->connectionMock = $this->createPartialMockForAbstractClass(AdapterInterface::class, ['select']); + $this->selectMock = $this->createPartialMock( + Select::class, + [ + 'reset', + 'from', + 'join', + 'where', + 'group', + 'order', + 'having', + ] + ); + + $storeManagerMock->expects($this->atLeastOnce())->method('getStore')->willReturn($storeManagerMock); + $storeManagerMock->expects($this->atLeastOnce())->method('getId')->willReturn(1); + $universalFactoryMock->expects($this->atLeastOnce())->method('create')->willReturn($productMock); + $this->resourceMock->expects($this->atLeastOnce())->method('getTableName')->willReturn('test_table'); + $this->resourceMock->expects($this->atLeastOnce())->method('getConnection')->willReturn($this->connectionMock); + $this->connectionMock->expects($this->atLeastOnce())->method('select')->willReturn($this->selectMock); + + $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManagerInterface::class); + \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock); + + $this->collection = new ProductCollection( + $entityFactoryMock, + $loggerMock, + $fetchStrategyMock, + $eventManagerMock, + $eavConfigMock, + $this->resourceMock, + $eavEntityFactoryMock, + $resourceHelperMock, + $universalFactoryMock, + $storeManagerMock, + $moduleManagerMock, + $productFlatStateMock, + $scopeConfigMock, + $optionFactoryMock, + $catalogUrlMock, + $localeDateMock, + $customerSessionMock, + $dateTimeMock, + $groupManagementMock, + $productMock, + $this->eventTypeFactoryMock, + $productTypeMock, + $quoteResourceMock, + $this->connectionMock + ); + } + + /** + * Test addViewsCount behavior. + */ + public function testAddViewsCount() + { + $context = $this->createPartialMock( + \Magento\Framework\Model\ResourceModel\Db\Context::class, + ['getResources'] + ); + $context->expects($this->atLeastOnce()) + ->method('getResources') + ->willReturn($this->resourceMock); + $abstractResourceMock = $this->getMockForAbstractClass( + \Magento\Framework\Model\ResourceModel\Db\AbstractDb::class, + ['context' => $context], + '', + true, + true, + true, + [ + 'getTableName', + 'getConnection', + 'getMainTable', + ] + ); + + $abstractResourceMock->expects($this->atLeastOnce()) + ->method('getConnection') + ->willReturn($this->connectionMock); + $abstractResourceMock->expects($this->atLeastOnce()) + ->method('getMainTable') + ->willReturn('catalog_product'); + + /** @var \Magento\Reports\Model\ResourceModel\Event\Type\Collection $eventTypesCollection */ + $eventTypesCollection = $this->objectManager->getObject( + \Magento\Reports\Model\ResourceModel\Event\Type\Collection::class, + ['resource' => $abstractResourceMock] + ); + $eventTypeMock = $this->createPartialMock( + \Magento\Reports\Model\Event\Type::class, + [ + 'getEventName', + 'getId', + 'getCollection', + ] + ); + + $eventTypesCollection->addItem($eventTypeMock); + + $this->eventTypeFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($eventTypeMock); + $eventTypeMock->expects($this->atLeastOnce()) + ->method('getCollection') + ->willReturn($eventTypesCollection); + $eventTypeMock->expects($this->atLeastOnce()) + ->method('getEventName') + ->willReturn('catalog_product_view'); + $eventTypeMock->expects($this->atLeastOnce()) + ->method('getId') + ->willReturn(1); + + $this->selectMock->expects($this->atLeastOnce()) + ->method('reset') + ->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('from') + ->with( + ['report_table_views' => 'test_table'], + ['views' => 'COUNT(report_table_views.event_id)'] + )->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('join') + ->with( + ['e' => 'test_table'], + 'e.entity_id = report_table_views.object_id' + )->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('where') + ->with('report_table_views.event_type_id = ?', 1) + ->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('group') + ->with('e.entity_id') + ->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('order') + ->with('views DESC') + ->willReturn($this->selectMock); + $this->selectMock->expects($this->atLeastOnce()) + ->method('having') + ->with('COUNT(report_table_views.event_id) > ?', 0) + ->willReturn($this->selectMock); + + $this->collection->addViewsCount(); + } + + /** + * Get mock for abstract class with methods. + * + * @param string $className + * @param array $methods + * + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function createPartialMockForAbstractClass($className, $methods) + { + return $this->getMockForAbstractClass( + $className, + [], + '', + true, + true, + true, + $methods + ); + } + + /** + * Returns a partial test double for the specified class. + * + * @param string $originalClassName + * @param string[] $methods + * + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function createPartialMock($originalClassName, array $methods) + { + return $this->getMockBuilder($originalClassName) + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->setMethods(empty($methods) ? null : $methods) + ->getMock(); + } + + /** + * Returns a test double for the specified class. + * + * @param string $originalClassName + * + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function createMock($originalClassName) + { + return $this->getMockBuilder($originalClassName) + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->getMock(); + } +} From 474bc549459e7ab18b18fd0ed9f0eac1bd6cd423 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 9 Nov 2017 17:29:03 +0200 Subject: [PATCH 010/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale --- .../Block/Product/View/Options/Type/Date.php | 8 ++- .../Model/Product/Option/Type/Date.php | 2 +- .../Framework/Stdlib/DateTime/Timezone.php | 5 +- .../Stdlib/DateTime/TimezoneInterface.php | 7 +- .../Test/Unit/DateTime/TimezoneTest.php | 71 +++++++++++++++++++ 5 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php diff --git a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php index cd4e30f7cafe3..13c17741d2049 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php +++ b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php @@ -82,6 +82,12 @@ public function getCalendarDateHtml() $yearStart = $this->_catalogProductOptionTypeDate->getYearStart(); $yearEnd = $this->_catalogProductOptionTypeDate->getYearEnd(); + $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT); + /** Escape RTL characters which are present in some locales and corrupt formatting */ + $patterns = []; + $patterns[0] = '/[^[:print:]]/'; + $patterns[1] = '/[^MmDdYy\/\.\-]/'; + $escapedDateFormat = preg_replace($patterns, '', $dateFormat); $calendar = $this->getLayout()->createBlock( 'Magento\Framework\View\Element\Html\Date' )->setId( @@ -93,7 +99,7 @@ public function getCalendarDateHtml() )->setImage( $this->getViewFileUrl('Magento_Theme::calendar.png') )->setDateFormat( - $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT) + $escapedDateFormat )->setValue( $value )->setYearsRange( diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php index 1608d6d961dc1..ee939788fba39 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php @@ -142,7 +142,7 @@ public function prepareForCart() if ($this->_dateExists()) { if ($this->useCalendar()) { - $timestamp += (new \DateTime($value['date']))->getTimestamp(); + $timestamp += $this->_localeDate->date($value['date'], null, true, false)->getTimestamp(); } else { $timestamp += mktime(0, 0, 0, $value['month'], $value['day'], $value['year']); } diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 89fe2df9af022..6f1760f852b83 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -153,7 +153,7 @@ public function getDateTimeFormat($type) * {@inheritdoc} * @SuppressWarnings(PHPMD.NPathComplexity) */ - public function date($date = null, $locale = null, $useTimezone = true) + public function date($date = null, $locale = null, $useTimezone = true, $includeTime = true) { $locale = $locale ?: $this->_localeResolver->getLocale(); $timezone = $useTimezone @@ -165,10 +165,11 @@ public function date($date = null, $locale = null, $useTimezone = true) } elseif ($date instanceof \DateTime) { return $date->setTimezone(new \DateTimeZone($timezone)); } elseif (!is_numeric($date)) { + $timeType = $includeTime ? \IntlDateFormatter::SHORT : \IntlDateFormatter::NONE; $formatter = new \IntlDateFormatter( $locale, \IntlDateFormatter::SHORT, - \IntlDateFormatter::SHORT, + $timeType, new \DateTimeZone($timezone) ); $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php index b10427af71406..d83cb7b84ee20 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php @@ -62,12 +62,13 @@ public function getDateTimeFormat($type); /** * Create \DateTime object for current locale * - * @param mixed $date + * @param mixed $date * @param string $locale - * @param bool $useTimezone + * @param bool $useTimezone + * @param bool $includeTime * @return \DateTime */ - public function date($date = null, $locale = null, $useTimezone = true); + public function date($date = null, $locale = null, $useTimezone = true, $includeTime = true); /** * Create \DateTime object with date converted to scope timezone and scope Locale diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php new file mode 100644 index 0000000000000..77c8c5607d258 --- /dev/null +++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php @@ -0,0 +1,71 @@ +objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->scopeConfigMock = $this->getMockBuilder(\Magento\Framework\App\Config\ScopeConfigInterface::class) + ->disableOriginalConstructor() + ->getMock(); + parent::setUp(); + } + + /** + * Test date parsing with different includeTime options + * + * @param string $date + * @param string $locale + * @param bool $includeTime + * @param int $expectedTimestamp + * @dataProvider dateIncludeTimeDataProvider + */ + public function testDateIncludeTime($date, $locale, $includeTime, $expectedTimestamp) + { + $this->scopeConfigMock->method('getValue')->willReturn('America/Chicago'); + /** @var Timezone $timezone */ + $timezone = $this->objectManager->getObject(Timezone::class, ['scopeConfig' => $this->scopeConfigMock]); + + /** @var \DateTime $dateTime */ + $dateTime = $timezone->date($date, $locale, true, $includeTime); + $this->assertEquals($expectedTimestamp, $dateTime->getTimestamp()); + } + + public function dateIncludeTimeDataProvider() + { + return [ + 'Parse date without time' => [ + '19/05/2017', // date + 'ar_KW', // locale + false, // include time + 1495170000 // expected timestamp + ], + 'Parse date with time' => [ + '05/19/2017 00:01 am', // date + 'en_US', // locale + true, // include time + 1495170060 // expected timestamp + ], + ]; + } +} From dd3f753d08d1e15c996b3ecffa161d92f93b08c0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 10 Nov 2017 13:13:22 +0200 Subject: [PATCH 011/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Leave TimezoneInterface as is; --- .../Block/Product/View/Options/Type/Date.php | 8 +-- .../Model/Product/Option/Type/Date.php | 2 +- .../Framework/Stdlib/DateTime/Timezone.php | 5 +- .../Stdlib/DateTime/TimezoneInterface.php | 3 +- .../Test/Unit/DateTime/TimezoneTest.php | 71 ------------------- 5 files changed, 7 insertions(+), 82 deletions(-) delete mode 100644 lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php diff --git a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php index 13c17741d2049..e4d930fc59e8e 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php +++ b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Date.php @@ -83,11 +83,9 @@ public function getCalendarDateHtml() $yearEnd = $this->_catalogProductOptionTypeDate->getYearEnd(); $dateFormat = $this->_localeDate->getDateFormat(\IntlDateFormatter::SHORT); - /** Escape RTL characters which are present in some locales and corrupt formatting */ - $patterns = []; - $patterns[0] = '/[^[:print:]]/'; - $patterns[1] = '/[^MmDdYy\/\.\-]/'; - $escapedDateFormat = preg_replace($patterns, '', $dateFormat); + /** Escape invisible characters which are present in some locales and may corrupt formatting */ + $escapedDateFormat = preg_replace('/[^[:print:]]/', '', $dateFormat); + $calendar = $this->getLayout()->createBlock( 'Magento\Framework\View\Element\Html\Date' )->setId( diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php index ee939788fba39..1608d6d961dc1 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php @@ -142,7 +142,7 @@ public function prepareForCart() if ($this->_dateExists()) { if ($this->useCalendar()) { - $timestamp += $this->_localeDate->date($value['date'], null, true, false)->getTimestamp(); + $timestamp += (new \DateTime($value['date']))->getTimestamp(); } else { $timestamp += mktime(0, 0, 0, $value['month'], $value['day'], $value['year']); } diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 6f1760f852b83..89fe2df9af022 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -153,7 +153,7 @@ public function getDateTimeFormat($type) * {@inheritdoc} * @SuppressWarnings(PHPMD.NPathComplexity) */ - public function date($date = null, $locale = null, $useTimezone = true, $includeTime = true) + public function date($date = null, $locale = null, $useTimezone = true) { $locale = $locale ?: $this->_localeResolver->getLocale(); $timezone = $useTimezone @@ -165,11 +165,10 @@ public function date($date = null, $locale = null, $useTimezone = true, $include } elseif ($date instanceof \DateTime) { return $date->setTimezone(new \DateTimeZone($timezone)); } elseif (!is_numeric($date)) { - $timeType = $includeTime ? \IntlDateFormatter::SHORT : \IntlDateFormatter::NONE; $formatter = new \IntlDateFormatter( $locale, \IntlDateFormatter::SHORT, - $timeType, + \IntlDateFormatter::SHORT, new \DateTimeZone($timezone) ); $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php index d83cb7b84ee20..9981ac46628b7 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php @@ -65,10 +65,9 @@ public function getDateTimeFormat($type); * @param mixed $date * @param string $locale * @param bool $useTimezone - * @param bool $includeTime * @return \DateTime */ - public function date($date = null, $locale = null, $useTimezone = true, $includeTime = true); + public function date($date = null, $locale = null, $useTimezone = true); /** * Create \DateTime object with date converted to scope timezone and scope Locale diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php deleted file mode 100644 index 77c8c5607d258..0000000000000 --- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php +++ /dev/null @@ -1,71 +0,0 @@ -objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $this->scopeConfigMock = $this->getMockBuilder(\Magento\Framework\App\Config\ScopeConfigInterface::class) - ->disableOriginalConstructor() - ->getMock(); - parent::setUp(); - } - - /** - * Test date parsing with different includeTime options - * - * @param string $date - * @param string $locale - * @param bool $includeTime - * @param int $expectedTimestamp - * @dataProvider dateIncludeTimeDataProvider - */ - public function testDateIncludeTime($date, $locale, $includeTime, $expectedTimestamp) - { - $this->scopeConfigMock->method('getValue')->willReturn('America/Chicago'); - /** @var Timezone $timezone */ - $timezone = $this->objectManager->getObject(Timezone::class, ['scopeConfig' => $this->scopeConfigMock]); - - /** @var \DateTime $dateTime */ - $dateTime = $timezone->date($date, $locale, true, $includeTime); - $this->assertEquals($expectedTimestamp, $dateTime->getTimestamp()); - } - - public function dateIncludeTimeDataProvider() - { - return [ - 'Parse date without time' => [ - '19/05/2017', // date - 'ar_KW', // locale - false, // include time - 1495170000 // expected timestamp - ], - 'Parse date with time' => [ - '05/19/2017 00:01 am', // date - 'en_US', // locale - true, // include time - 1495170060 // expected timestamp - ], - ]; - } -} From 137d92b4ccfd045c15036afdc87275bd2b1222aa Mon Sep 17 00:00:00 2001 From: Leonid Poluyanov Date: Mon, 13 Nov 2017 14:07:43 +0200 Subject: [PATCH 012/555] MAGETWO-83631: [Backport for 2.1.x] Loaded quote items collection contains removed product items --- .../Magento/Quote/Model/QuoteManagement.php | 27 +++++---- .../ResourceModel/Quote/Item/Collection.php | 15 +++++ .../Quote/Model/QuoteManagementTest.php | 57 +++++++++++++++++-- .../_files/quote_with_bundle_rollback.php | 26 +++++---- 4 files changed, 99 insertions(+), 26 deletions(-) diff --git a/app/code/Magento/Quote/Model/QuoteManagement.php b/app/code/Magento/Quote/Model/QuoteManagement.php index bcc891a2dfa28..6939a45f4a098 100644 --- a/app/code/Magento/Quote/Model/QuoteManagement.php +++ b/app/code/Magento/Quote/Model/QuoteManagement.php @@ -397,17 +397,24 @@ public function submit(QuoteEntity $quote, $orderData = []) */ protected function resolveItems(QuoteEntity $quote) { - $quoteItems = []; - foreach ($quote->getAllItems() as $quoteItem) { - /** @var \Magento\Quote\Model\ResourceModel\Quote\Item $quoteItem */ - $quoteItems[$quoteItem->getId()] = $quoteItem; - } $orderItems = []; - foreach ($quoteItems as $quoteItem) { - $parentItem = (isset($orderItems[$quoteItem->getParentItemId()])) ? - $orderItems[$quoteItem->getParentItemId()] : null; - $orderItems[$quoteItem->getId()] = - $this->quoteItemToOrderItem->convert($quoteItem, ['parent_item' => $parentItem]); + foreach ($quote->getAllItems() as $quoteItem) { + $itemId = $quoteItem->getId(); + + if (!empty($orderItems[$itemId])) { + continue; + } + + $parentItemId = $quoteItem->getParentItemId(); + /** @var \Magento\Quote\Model\ResourceModel\Quote\Item $parentItem */ + if ($parentItemId && !isset($orderItems[$parentItemId])) { + $orderItems[$parentItemId] = $this->quoteItemToOrderItem->convert( + $quoteItem->getParentItem(), + ['parent_item' => null] + ); + } + $parentItem = isset($orderItems[$parentItemId]) ? $orderItems[$parentItemId] : null; + $orderItems[$itemId] = $this->quoteItemToOrderItem->convert($quoteItem, ['parent_item' => $parentItem]); } return array_values($orderItems); } diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php index 70d576c83e554..1e779eae2aaa6 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php @@ -141,6 +141,21 @@ public function resetJoinQuotes($quotesTableName, $productId = null) return $this; } + /** + * Join product entities to select existing products items only + * + * @return void + */ + protected function _beforeLoad() + { + parent::_beforeLoad(); + $this->join( + ['cpe' => $this->getResource()->getTable('catalog_product_entity')], + "cpe.entity_id = main_table.product_id", + [] + ); + } + /** * After load processing * diff --git a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php index c5aab2d60fc24..9e1f94f446903 100644 --- a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php +++ b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php @@ -8,29 +8,35 @@ use Magento\Catalog\Model\Product\Type; use Magento\TestFramework\Helper\Bootstrap; +/** + * Class for testing QuoteManagement model + */ class QuoteManagementTest extends \PHPUnit_Framework_TestCase { /** * Create order with product that has child items * + * @magentoAppIsolation enabled * @magentoDataFixture Magento/Sales/_files/quote_with_bundle.php */ public function testSubmit() { - $this->markTestSkipped('MAGETWO-50989'); /** * Preconditions: - * Load quote with Bundle product that has at least to child products + * Load quote with Bundle product that has at least two child products */ $objectManager = Bootstrap::getObjectManager(); /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $objectManager->create('\Magento\Quote\Model\Quote'); + $quote = $objectManager->create(\Magento\Quote\Model\Quote::class); $quote->load('test01', 'reserved_order_id'); /** Execute SUT */ /** @var \Magento\Quote\Api\CartManagementInterface $model */ - $model = $objectManager->create('\Magento\Quote\Api\CartManagementInterface'); - $order = $model->submit($quote); + $cartManagement = $objectManager->create(\Magento\Quote\Api\CartManagementInterface::class); + /** @var \Magento\Sales\Api\OrderRepositoryInterface $orderRepository */ + $orderRepository = $objectManager->create(\Magento\Sales\Api\OrderRepositoryInterface::class); + $orderId = $cartManagement->placeOrder($quote->getId()); + $order = $orderRepository->get($orderId); /** Check if SUT caused expected effects */ $orderItems = $order->getItems(); @@ -42,4 +48,45 @@ public function testSubmit() } } } + + /** + * Create order with product that has child items and one of them was deleted + * + * @magentoAppArea adminhtml + * @magentoAppIsolation enabled + * @magentoDataFixture Magento/Sales/_files/quote_with_bundle.php + */ + public function testSubmitWithDeletedItem() + { + /** + * Preconditions: + * Load quote with Bundle product that have at least to child products + */ + $objectManager = Bootstrap::getObjectManager(); + /** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ + $productRepository = $objectManager->get(\Magento\Catalog\Api\ProductRepositoryInterface::class); + $product = $productRepository->get('simple-2'); + $productRepository->delete($product); + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $objectManager->create(\Magento\Quote\Model\Quote::class); + $quote->load('test01', 'reserved_order_id'); + + /** Execute SUT */ + /** @var \Magento\Quote\Api\CartManagementInterface $model */ + $cartManagement = $objectManager->create(\Magento\Quote\Api\CartManagementInterface::class); + /** @var \Magento\Sales\Api\OrderRepositoryInterface $orderRepository */ + $orderRepository = $objectManager->create(\Magento\Sales\Api\OrderRepositoryInterface::class); + $orderId = $cartManagement->placeOrder($quote->getId()); + $order = $orderRepository->get($orderId); + + /** Check if SUT caused expected effects */ + $orderItems = $order->getItems(); + $this->assertCount(2, $orderItems); + foreach ($orderItems as $orderItem) { + if ($orderItem->getProductType() == Type::TYPE_SIMPLE) { + $this->assertNotEmpty($orderItem->getParentItem(), 'Parent is not set for child product'); + $this->assertNotEmpty($orderItem->getParentItemId(), 'Parent is not set for child product'); + } + } + } } diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_bundle_rollback.php b/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_bundle_rollback.php index 9d0cf2d1cf72c..b9b965516385c 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_bundle_rollback.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_bundle_rollback.php @@ -4,25 +4,29 @@ * See COPYING.txt for license details. */ +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); /** @var \Magento\Framework\Registry $registry */ -$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry'); +$registry = $objectManager->get(\Magento\Framework\Registry::class); $registry->unregister('isSecureArea'); $registry->register('isSecureArea', true); +// Delete quote /** @var $quote \Magento\Quote\Model\Quote */ -$quote = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Quote\Model\Quote'); -$quote->load('test01', 'reserved_order_id'); +$quote = $objectManager->create(\Magento\Quote\Model\Quote::class); +$quote->load('test_order_item_with_bundle_items', 'reserved_order_id'); if ($quote->getId()) { $quote->delete(); } - -/** @var $product \Magento\Catalog\Model\Product */ -$productIds = [1, 2, 3]; -$product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Catalog\Model\Product'); -foreach ($productIds as $productId) { - $product->load($productId); - if ($product->getId()) { - $product->delete(); +// Delete products +$productSkus = ['simple-1', 'simple-2', 'bundle-product']; +/** @var Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ +$productRepository = $objectManager->get(Magento\Catalog\Api\ProductRepositoryInterface::class); +foreach ($productSkus as $sku) { + try { + $product = $productRepository->get($sku, false, null, true); + $productRepository->delete($product); + } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { + //Product already removed } } From 791f4876c4be9832632847099a4604ce6ac5bd8b Mon Sep 17 00:00:00 2001 From: Leonid Poluyanov Date: Wed, 15 Nov 2017 11:14:43 +0200 Subject: [PATCH 013/555] MAGETWO-83631: [Backport for 2.1.x] Loaded quote items collection contains removed product items --- .../ResourceModel/Quote/Item/Collection.php | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php index 1e779eae2aaa6..7e52cb495fffb 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php @@ -141,21 +141,6 @@ public function resetJoinQuotes($quotesTableName, $productId = null) return $this; } - /** - * Join product entities to select existing products items only - * - * @return void - */ - protected function _beforeLoad() - { - parent::_beforeLoad(); - $this->join( - ['cpe' => $this->getResource()->getTable('catalog_product_entity')], - "cpe.entity_id = main_table.product_id", - [] - ); - } - /** * After load processing * @@ -165,18 +150,20 @@ protected function _afterLoad() { parent::_afterLoad(); - /** - * Assign parent items - */ + $productIds = []; foreach ($this as $item) { + // Assign parent items if ($item->getParentItemId()) { $item->setParentItem($this->getItemById($item->getParentItemId())); } if ($this->_quote) { $item->setQuote($this->_quote); } + // Collect quote products ids + $productIds[] = (int)$item->getProductId(); } - + $this->_productIds = array_merge($this->_productIds, $productIds); + $this->removeItemsWithAbsentProducts(); /** * Assign options and products */ @@ -214,12 +201,6 @@ protected function _assignOptions() protected function _assignProducts() { \Magento\Framework\Profiler::start('QUOTE:' . __METHOD__, ['group' => 'QUOTE', 'method' => __METHOD__]); - $productIds = []; - foreach ($this as $item) { - $productIds[] = (int)$item->getProductId(); - } - $this->_productIds = array_merge($this->_productIds, $productIds); - $productCollection = $this->_productCollectionFactory->create()->setStoreId( $this->getStoreId() )->addIdFilter( @@ -283,4 +264,24 @@ protected function _assignProducts() return $this; } + + /** + * Find and remove quote items with non existing products + * + * @return void + */ + private function removeItemsWithAbsentProducts() + { + $productCollection = $this->_productCollectionFactory->create()->addIdFilter($this->_productIds); + $existingProductsIds = $productCollection->getAllIds(); + $absentProductsIds = array_diff($this->_productIds, $existingProductsIds); + // Remove not existing products from items collection + if (!empty($absentProductsIds)) { + foreach ($absentProductsIds as $productIdToExclude) { + /** @var \Magento\Quote\Model\Quote\Item $quoteItem */ + $quoteItem = $this->getItemByColumnValue('product_id', $productIdToExclude); + $this->removeItemByKey($quoteItem->getId()); + } + } + } } From 6a52bd3d74888ecf273f0211af8bcc6cc0bcee1e Mon Sep 17 00:00:00 2001 From: Sergey Shvets Date: Wed, 15 Nov 2017 15:50:13 +0200 Subject: [PATCH 014/555] MAGETWO-83646: Encrypted scope-specific config values fail to decrypt on PHP7 #8591 --- .../Config/Block/System/Config/Form.php | 21 +- .../Unit/Block/System/Config/FormTest.php | 310 ++++++------------ 2 files changed, 117 insertions(+), 214 deletions(-) diff --git a/app/code/Magento/Config/Block/System/Config/Form.php b/app/code/Magento/Config/Block/System/Config/Form.php index cd384759f71bd..07eca2e2766f9 100644 --- a/app/code/Magento/Config/Block/System/Config/Form.php +++ b/app/code/Magento/Config/Block/System/Config/Form.php @@ -3,6 +3,7 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Config\Block\System\Config; use Magento\Config\App\Config\Type\System; @@ -350,21 +351,21 @@ protected function _initElement( $data = $this->_configData[$path]; $inherit = false; - if ($field->hasBackendModel()) { - $backendModel = $field->getBackendModel(); - $backendModel->setPath($path) - ->setValue($data) - ->setWebsite($this->getWebsiteCode()) - ->setStore($this->getStoreCode()) - ->afterLoad(); - $data = $backendModel->getValue(); - } - } elseif ($field->getConfigPath() !== null) { $data = $this->getConfigValue($field->getConfigPath()); } else { $data = $this->getConfigValue($path); } + + if ($field->hasBackendModel()) { + $backendModel = $field->getBackendModel(); + $backendModel->setPath($path) + ->setValue($data) + ->setWebsite($this->getWebsiteCode()) + ->setStore($this->getStoreCode()) + ->afterLoad(); + $data = $backendModel->getValue(); + } } $fieldRendererClass = $field->getFrontendModel(); if ($fieldRendererClass) { diff --git a/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php b/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php index 354437662ba5d..0f261f5fb9a08 100644 --- a/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php +++ b/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php @@ -4,13 +4,27 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Config\Test\Unit\Block\System\Config; use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker; use Magento\Framework\App\DeploymentConfig; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Store\Model\StoreManagerInterface; +use Magento\Framework\Data\Form; +use Magento\Config\Model\Config\Structure; +use Magento\Framework\App\RequestInterface; +use Magento\Framework\View\Layout; +use Magento\Backend\Model\Url; +use Magento\Config\Model\Config\Factory; +use Magento\Framework\Data\FormFactory; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Config\Model\Config; +use Magento\Backend\Block\Template\Context; +use Magento\Config\Model\Config\Structure\Element\Section; +use Magento\Config\Model\Config\Structure\Element\Group; +use Magento\Config\Block\System\Config\Form\Fieldset; +use Magento\Config\Model\Config\Structure\Element\Field; +use Magento\Framework\Data\Form\Element\AbstractElement; /** * Test System config form block @@ -80,16 +94,9 @@ class FormTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $this->_systemConfigMock = $this->getMock( - 'Magento\Config\Model\Config\Structure', - [], - [], - '', - false, - false - ); + $this->_systemConfigMock = $this->createMock(Structure::class); - $requestMock = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false, false); + $requestMock = $this->createMock(RequestInterface::class); $requestParams = [ ['website', '', 'website_code'], ['section', '', 'section_code'], @@ -97,79 +104,41 @@ protected function setUp() ]; $requestMock->expects($this->any())->method('getParam')->will($this->returnValueMap($requestParams)); - $layoutMock = $this->getMock('Magento\Framework\View\Layout', [], [], '', false, false); + $layoutMock = $this->createMock(Layout::class); - $this->_urlModelMock = $this->getMock('Magento\Backend\Model\Url', [], [], '', false, false); - $configFactoryMock = $this->getMock( - 'Magento\Config\Model\Config\Factory', - [], - [], - '', - false, - false - ); - $this->_formFactoryMock = $this->getMock( - 'Magento\Framework\Data\FormFactory', - ['create'], - [], - '', - false, - false - ); - $this->_fieldsetFactoryMock = $this->getMock( - 'Magento\Config\Block\System\Config\Form\Fieldset\Factory', - [], - [], - '', - false, - false - ); - $this->_fieldFactoryMock = $this->getMock( - 'Magento\Config\Block\System\Config\Form\Field\Factory', - [], - [], - '', - false, - false - ); - $this->_coreConfigMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); + $this->_urlModelMock = $this->createMock(Url::class); + $configFactoryMock = $this->createMock(Factory::class); + $this->_formFactoryMock = $this->createMock(FormFactory::class); + $this->_fieldsetFactoryMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Fieldset\Factory::class); + $this->_fieldFactoryMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Field\Factory::class); + $this->_coreConfigMock = $this->getMockBuilder(ScopeConfigInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); - $this->_backendConfigMock = $this->getMock('Magento\Config\Model\Config', [], [], '', false, false); + $this->_backendConfigMock = $this->createMock(Config::class); - $configFactoryMock->expects( - $this->once() - )->method( - 'create' - )->with( - ['data' => ['section' => 'section_code', 'website' => 'website_code', 'store' => 'store_code']] - )->will( - $this->returnValue($this->_backendConfigMock) - ); + $configFactoryMock->expects($this->once()) + ->method('create') + ->with(['data' => ['section' => 'section_code', 'website' => 'website_code', 'store' => 'store_code']]) + ->will($this->returnValue($this->_backendConfigMock)); - $this->_backendConfigMock->expects( - $this->once() - )->method( - 'load' - )->will( - $this->returnValue(['section1/group1/field1' => 'some_value']) - ); + $this->_backendConfigMock + ->expects($this->once()) + ->method('load') + ->will($this->returnValue(['section1/group1/field1' => 'some_value'])); - $this->_formMock = $this->getMock( - 'Magento\Framework\Data\Form', - ['setParent', 'setBaseUrl', 'addFieldset'], - [], - '', - false, - false - ); + $this->_formMock = $this->getMockBuilder(Form::class) + ->disableOriginalConstructor() + ->setMethods(['setParent', 'setBaseUrl', 'addFieldset']) + ->getMock(); $this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class) ->getMockForAbstractClass(); - $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $helper = new ObjectManager($this); $context = $helper->getObject( - 'Magento\Backend\Block\Template\Context', + Context::class, [ 'scopeConfig' => $this->_coreConfigMock, 'request' => $requestMock, @@ -189,25 +158,24 @@ protected function setUp() 'context' => $context, ]; - $objectArguments = $helper->getConstructArguments('Magento\Config\Block\System\Config\Form', $data); - $this->_objectBuilder = $this->getMockBuilder('Magento\Config\Block\System\Config\Form') + $objectArguments = $helper->getConstructArguments(\Magento\Config\Block\System\Config\Form::class, $data); + $this->_objectBuilder = $this->getMockBuilder(\Magento\Config\Block\System\Config\Form::class) ->setConstructorArgs($objectArguments) ->setMethods(['something']); - $deploymentConfigMock = $this->getMockBuilder(DeploymentConfig::class) - ->disableOriginalConstructor() - ->getMock(); + $deploymentConfigMock = $this->createMock(DeploymentConfig::class); $deploymentConfigMock->expects($this->any()) ->method('get') ->willReturn([]); - $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManagerInterface::class); + /** @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\ObjectManagerInterface $objectManagerMock */ + $objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class); $objectManagerMock->expects($this->any()) ->method('get') ->willReturnMap([ [DeploymentConfig::class, $deploymentConfigMock] ]); \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock); - $this->object = $helper->getObject('Magento\Config\Block\System\Config\Form', $data); + $this->object = $helper->getObject(\Magento\Config\Block\System\Config\Form::class, $data); $this->object->setData('scope_id', 1); } @@ -225,9 +193,7 @@ public function testInitForm($sectionIsVisible) $this->_formMock->expects($this->once())->method('setBaseUrl')->with('base_url'); $this->_urlModelMock->expects($this->any())->method('getBaseUrl')->will($this->returnValue('base_url')); - $sectionMock = $this->getMockBuilder('\Magento\Config\Model\Config\Structure\Element\Section') - ->disableOriginalConstructor() - ->getMock(); + $sectionMock = $this->createMock(Section::class); if ($sectionIsVisible) { $sectionMock->expects($this->once()) ->method('isVisible') @@ -235,14 +201,7 @@ public function testInitForm($sectionIsVisible) $sectionMock->expects($this->once()) ->method('getChildren') ->willReturn([ - $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Group', - [], - [], - '', - false, - false - ) + $this->createMock(Group::class) ]); } @@ -293,14 +252,7 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $this->_formMock->expects($this->once())->method('setBaseUrl')->with('base_url'); $this->_urlModelMock->expects($this->any())->method('getBaseUrl')->will($this->returnValue('base_url')); - $fieldsetRendererMock = $this->getMock( - 'Magento\Config\Block\System\Config\Form\Fieldset', - [], - [], - '', - false, - false - ); + $fieldsetRendererMock = $this->createMock(Fieldset::class); $this->_fieldsetFactoryMock->expects( $this->once() )->method( @@ -310,7 +262,7 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) ); $cloneModelMock = $this->getMock( - 'Magento\Config\Model\Config', + Config::class, ['getPrefixes'], [], '', @@ -318,14 +270,7 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) false ); - $groupMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Group', - [], - [], - '', - false, - false - ); + $groupMock = $this->createMock(Group::class); $groupMock->expects($this->once())->method('getFrontendModel')->will($this->returnValue(false)); $groupMock->expects($this->any())->method('getPath')->will($this->returnValue('section_id_group_id')); $groupMock->expects($this->once())->method('getLabel')->will($this->returnValue('label')); @@ -334,24 +279,13 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $groupMock->expects($this->once())->method('populateFieldset'); $groupMock->expects($this->once())->method('shouldCloneFields')->will($this->returnValue($shouldCloneFields)); $groupMock->expects($this->once())->method('getData')->will($this->returnValue('some group data')); - $groupMock->expects( - $this->once() - )->method( - 'getDependencies' - )->with( - 'store_code' - )->will( - $this->returnValue([]) - ); + $groupMock->expects($this->once()) + ->method('getDependencies') + ->with('store_code') + ->will($this->returnValue([]) + ); - $sectionMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Section', - [], - [], - '', - false, - false - ); + $sectionMock = $this->createMock(Section::class); $sectionMock->expects($this->once())->method('isVisible')->will($this->returnValue(true)); $sectionMock->expects($this->once())->method('getChildren')->will($this->returnValue([$groupMock])); @@ -366,11 +300,7 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $this->returnValue($sectionMock) ); - $formFieldsetMock = $this->getMock( - 'Magento\Framework\Data\Form\Element\Fieldset', - [], - [], - '', false, false); + $formFieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class); $params = [ 'legend' => 'label', @@ -390,9 +320,13 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) ); if ($shouldCloneFields) { - $cloneModelMock->expects($this->once())->method('getPrefixes')->will($this->returnValue($prefixes)); + $cloneModelMock->expects($this->once()) + ->method('getPrefixes') + ->will($this->returnValue($prefixes)); - $groupMock->expects($this->once())->method('getCloneModel')->will($this->returnValue($cloneModelMock)); + $groupMock->expects($this->once()) + ->method('getCloneModel') + ->will($this->returnValue($cloneModelMock)); } if ($shouldCloneFields && $prefixes) { @@ -445,71 +379,33 @@ public function testInitFields( $hasBackendModel ) { // Parameters initialization - $fieldsetMock = $this->getMock( - 'Magento\Framework\Data\Form\Element\Fieldset', - [], - [], - '', - false, - false - ); - $groupMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Group', - [], - [], - '', - false, - false - ); - $sectionMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Section', - [], - [], - '', - false, - false - ); + /** @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Data\Form\Element\Fieldset $fieldsetMock */ + $fieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class); + /** @var \PHPUnit_Framework_MockObject_MockObject | Group $groupMock */ + $groupMock = $this->createMock(Group::class); + /** @var \PHPUnit_Framework_MockObject_MockObject | Section $sectionMock */ + $sectionMock = $this->createMock(Section::class); $fieldPrefix = 'fieldPrefix'; $labelPrefix = 'labelPrefix'; // Field Renderer Mock configuration - $fieldRendererMock = $this->getMock( - 'Magento\Config\Block\System\Config\Form\Field', - [], - [], - '', - false, - false - ); - $this->_fieldFactoryMock->expects( - $this->once() - )->method( - 'create' - )->will( - $this->returnValue($fieldRendererMock) - ); - - $this->_backendConfigMock->expects( - $this->once() - )->method( - 'extendConfig' - )->with( - 'some/config/path', - false, - ['section1/group1/field1' => 'some_value'] - )->will( - $this->returnValue($backendConfigValue) - ); - - $this->_coreConfigMock->expects( - $this->any() - )->method( - 'getValue' - )->with( - $configPath - )->will( - $this->returnValue($configValue) - ); + $fieldRendererMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Field::class); + $this->_fieldFactoryMock + ->expects($this->once()) + ->method('create') + ->will($this->returnValue($fieldRendererMock)); + + $this->_backendConfigMock + ->expects($this->once()) + ->method('extendConfig') + ->with('some/config/path', false, ['section1/group1/field1' => 'some_value']) + ->will($this->returnValue($backendConfigValue)); + + $this->_coreConfigMock + ->expects($this->any()) + ->method('getValue') + ->with($configPath) + ->will($this->returnValue($configValue)); /** @var \Magento\Store\Api\Data\StoreInterface|\PHPUnit_Framework_MockObject_MockObject $storeMock */ $storeMock = $this->getMockBuilder(\Magento\Store\Api\Data\StoreInterface::class) @@ -524,14 +420,7 @@ public function testInitFields( ->willReturn($storeMock); // Field mock configuration - $fieldMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Field', - [], - [], - '', - false, - false - ); + $fieldMock = $this->createMock(Field::class); $fieldMock->expects($this->any())->method('getPath')->will($this->returnValue('section1/group1/field1')); $fieldMock->expects($this->any())->method('getConfigPath')->will($this->returnValue($configPath)); $fieldMock->expects($this->any())->method('getGroupPath')->will($this->returnValue('some/config/path')); @@ -571,7 +460,7 @@ public function testInitFields( $sectionMock->expects($this->once())->method('getId')->will($this->returnValue('section1')); $formFieldMock = $this->getMockForAbstractClass( - 'Magento\Framework\Data\Form\Element\AbstractElement', + AbstractElement::class, [], '', false, @@ -627,7 +516,7 @@ public function testInitFields( ->method('getPlaceholderValue') ->willReturn($placeholderValue); - $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $helper = new ObjectManager($this); $helper->setBackwardCompatibleProperty($this->object, 'settingChecker', $settingCheckerMock); @@ -641,8 +530,21 @@ public function initFieldsDataProvider() { return [ [['section1/group1/field1' => 'some_value'], false, null, false, 'some_value', null, 1], - [[], 'Config Value', 'some/config/path', true, 'Config Value', null, 0], + [[], 'Config Value', 'some/config/path', true, 'Config Value', null, 1], [[], 'Config Value', 'some/config/path', true, 'Placeholder Value', 'Placeholder Value', 0] ]; } + + /** + * Creates default mock + * + * @param string $className + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function createMock($className) + { + return $this->getMockBuilder($className) + ->disableOriginalConstructor() + ->getMock(); + } } From 169ba00e9c0820d1441ddcd5a63e8486c54bd411 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 16 Nov 2017 15:42:27 +0200 Subject: [PATCH 015/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Update Timezone date method for it to handle correctly different date formats like en_US, fr_FR, ar_KW; - Add unit test; --- .../Model/Product/Option/Type/Date.php | 2 +- .../Entity/Attribute/Backend/Datetime.php | 2 +- .../Framework/Stdlib/DateTime/Timezone.php | 15 +++- .../Test/Unit/DateTime/TimezoneTest.php | 68 +++++++++++++++++++ 4 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php diff --git a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php index 1608d6d961dc1..d0df297fbfd94 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Type/Date.php @@ -142,7 +142,7 @@ public function prepareForCart() if ($this->_dateExists()) { if ($this->useCalendar()) { - $timestamp += (new \DateTime($value['date']))->getTimestamp(); + $timestamp += $this->_localeDate->date($value['date'], null, true)->getTimestamp(); } else { $timestamp += mktime(0, 0, 0, $value['month'], $value['day'], $value['year']); } diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php index 41d2a81f177bf..3a179d1063011 100644 --- a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php +++ b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Datetime.php @@ -75,7 +75,7 @@ public function formatDate($date) $date = (new \DateTime())->setTimestamp($date); } elseif (!($date instanceof \DateTime)) { // normalized format expecting Y-m-d[ H:i:s] - time is optional - $date = new \DateTime($date); + $date = $this->_localeDate->date($date, null, true); } return $date->format('Y-m-d H:i:s'); } diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 89fe2df9af022..025e964b884ff 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -171,7 +171,20 @@ public function date($date = null, $locale = null, $useTimezone = true) \IntlDateFormatter::SHORT, new \DateTimeZone($timezone) ); - $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); + // IntlDateFormatter does not parse correctly date formats per some locales + // It depends on ICU lib version used by intl extension + // For locales like fr_FR, ar_KW parse date without time + try { + $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); + } catch (\Exception $e) { + $formatter = new \IntlDateFormatter( + $locale, + \IntlDateFormatter::SHORT, + \IntlDateFormatter::NONE, + new \DateTimeZone($timezone) + ); + $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); + } } return (new \DateTime(null, new \DateTimeZone($timezone)))->setTimestamp($date); } diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php new file mode 100644 index 0000000000000..77b1b989073e7 --- /dev/null +++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php @@ -0,0 +1,68 @@ +objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->scopeConfigMock = $this->getMockBuilder(\Magento\Framework\App\Config\ScopeConfigInterface::class) + ->disableOriginalConstructor() + ->getMock(); + parent::setUp(); + } + + /** + * Test date parsing with different includeTime options + * + * @param string $date + * @param string $locale + * @param int $expectedTimestamp + * @dataProvider dateIncludeTimeDataProvider + */ + public function testDateIncludeTime($date, $locale, $expectedTimestamp) + { + $this->scopeConfigMock->method('getValue')->willReturn('America/Chicago'); + /** @var Timezone $timezone */ + $timezone = $this->objectManager->getObject(Timezone::class, ['scopeConfig' => $this->scopeConfigMock]); + + /** @var \DateTime $dateTime */ + $dateTime = $timezone->date($date, $locale, true); + $this->assertEquals($expectedTimestamp, $dateTime->getTimestamp()); + } + + public function dateIncludeTimeDataProvider() + { + return [ + 'Parse date without time' => [ + '19/05/2017', // date + 'ar_KW', // locale + 1495170000 // expected timestamp + ], + 'Parse date with time' => [ + '05/19/2017 00:01 am', // date + 'en_US', // locale + 1495170060 // expected timestamp + ] + ]; + } +} From 7b0195686388da9125f6c082ac32bcd48ac8153e Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Thu, 16 Nov 2017 16:06:21 +0200 Subject: [PATCH 016/555] MAGETWO-72312: Incorrect count for category filter at layered navigation for configurable with no available options --- app/code/Magento/Catalog/Model/Category.php | 9 +- .../Category/Product/AbstractAction.php | 172 ++++++++++++------ .../Indexer/Product/Category/Action/Rows.php | 135 +++++++++++--- .../frontend/templates/navigation/left.phtml | 1 + .../Magento/CatalogInventory/Helper/Stock.php | 2 +- .../CatalogSearch/Model/Indexer/Fulltext.php | 27 ++- .../Indexer/Fulltext/Action/DataProvider.php | 6 +- .../Model/Indexer/Fulltext/Action/Full.php | 5 +- .../Model/Indexer/ParentProductsResolver.php | 72 ++++++++ .../Test/Unit/Model/Indexer/FulltextTest.php | 44 ++++- .../Indexer/ParentProductsResolverTest.php | 125 +++++++++++++ .../Test/Block/Navigation.php | 30 +++ .../Constraint/AssertFilterProductList.php | 1 - .../Test/Constraint/AssertProductsCount.php | 99 ++++++++++ .../Test/Repository/Category.xml | 54 ++++++ .../ProductsCountInLayeredNavigationTest.php | 121 ++++++++++++ .../ProductsCountInLayeredNavigationTest.xml | 29 +++ .../Model/Indexer/FulltextTest.php | 23 +++ ...product_configurable_with_single_child.php | 101 ++++++++++ ...onfigurable_with_single_child_rollback.php | 34 ++++ .../Framework/Indexer/CacheContext.php | 5 +- 21 files changed, 988 insertions(+), 107 deletions(-) create mode 100644 app/code/Magento/CatalogSearch/Model/Indexer/ParentProductsResolver.php create mode 100644 app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/ParentProductsResolverTest.php create mode 100644 dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php create mode 100644 dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml create mode 100644 dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php create mode 100644 dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml create mode 100644 dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child.php create mode 100644 dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child_rollback.php diff --git a/app/code/Magento/Catalog/Model/Category.php b/app/code/Magento/Catalog/Model/Category.php index 2feb2255b06ed..52510a6ac4cdb 100644 --- a/app/code/Magento/Catalog/Model/Category.php +++ b/app/code/Magento/Catalog/Model/Category.php @@ -704,7 +704,7 @@ public function getParentId() return $parentId; } $parentIds = $this->getParentIds(); - return intval(array_pop($parentIds)); + return (int)array_pop($parentIds); } /** @@ -938,8 +938,11 @@ public function getAnchorsAbove() */ public function getProductCount() { - $count = $this->_getResource()->getProductCount($this); - $this->setData(self::KEY_PRODUCT_COUNT, $count); + if (!$this->hasData(self::KEY_PRODUCT_COUNT)) { + $count = $this->_getResource()->getProductCount($this); + $this->setData(self::KEY_PRODUCT_COUNT, $count); + } + return $this->getData(self::KEY_PRODUCT_COUNT); } diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Product/AbstractAction.php b/app/code/Magento/Catalog/Model/Indexer/Category/Product/AbstractAction.php index 250ea1d477a34..77f79a4ad6874 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Category/Product/AbstractAction.php +++ b/app/code/Magento/Catalog/Model/Indexer/Category/Product/AbstractAction.php @@ -8,9 +8,14 @@ namespace Magento\Catalog\Model\Indexer\Category\Product; -use Magento\Framework\DB\Query\Generator as QueryGenerator; +use Magento\Catalog\Api\Data\ProductInterface; +use Magento\Catalog\Model\Product; +use Magento\Framework\App\ObjectManager; use Magento\Framework\App\ResourceConnection; +use Magento\Framework\DB\Query\Generator as QueryGenerator; +use Magento\Framework\DB\Select; use Magento\Framework\EntityManager\MetadataPool; +use Magento\Store\Model\Store; /** * Class AbstractAction @@ -41,21 +46,21 @@ abstract class AbstractAction /** * Cached non anchor categories select by store id * - * @var \Magento\Framework\DB\Select[] + * @var Select[] */ protected $nonAnchorSelects = []; /** * Cached anchor categories select by store id * - * @var \Magento\Framework\DB\Select[] + * @var Select[] */ protected $anchorSelects = []; /** * Cached all product select by store id * - * @var \Magento\Framework\DB\Select[] + * @var Select[] */ protected $productsSelects = []; @@ -113,19 +118,21 @@ abstract class AbstractAction * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Model\Config $config * @param QueryGenerator $queryGenerator + * @param MetadataPool|null $metadataPool */ public function __construct( \Magento\Framework\App\ResourceConnection $resource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Config $config, - QueryGenerator $queryGenerator = null + QueryGenerator $queryGenerator = null, + MetadataPool $metadataPool = null ) { $this->resource = $resource; $this->connection = $resource->getConnection(); $this->storeManager = $storeManager; $this->config = $config; - $this->queryGenerator = $queryGenerator ?: \Magento\Framework\App\ObjectManager::getInstance() - ->get(QueryGenerator::class); + $this->queryGenerator = $queryGenerator ?: ObjectManager::getInstance()->get(QueryGenerator::class); + $this->metadataPool = $metadataPool ?: ObjectManager::getInstance()->get(MetadataPool::class); } /** @@ -179,9 +186,9 @@ protected function getMainTable() */ protected function getMainTmpTable() { - return $this->useTempTable ? $this->getTable( - self::MAIN_INDEX_TABLE . self::TEMPORARY_TABLE_SUFFIX - ) : $this->getMainTable(); + return $this->useTempTable + ? $this->getTable(self::MAIN_INDEX_TABLE . self::TEMPORARY_TABLE_SUFFIX) + : $this->getMainTable(); } /** @@ -209,24 +216,25 @@ protected function getPathFromCategoryId($categoryId) /** * Retrieve select for reindex products of non anchor categories * - * @param \Magento\Store\Model\Store $store - * @return \Magento\Framework\DB\Select + * @param Store $store + * @return Select + * @throws \Exception when metadata not found for ProductInterface */ - protected function getNonAnchorCategoriesSelect(\Magento\Store\Model\Store $store) + protected function getNonAnchorCategoriesSelect(Store $store) { if (!isset($this->nonAnchorSelects[$store->getId()])) { $statusAttributeId = $this->config->getAttribute( - \Magento\Catalog\Model\Product::ENTITY, + Product::ENTITY, 'status' )->getId(); $visibilityAttributeId = $this->config->getAttribute( - \Magento\Catalog\Model\Product::ENTITY, + Product::ENTITY, 'visibility' )->getId(); $rootPath = $this->getPathFromCategoryId($store->getRootCategoryId()); - $metadata = $this->getMetadataPool()->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class); + $metadata = $this->metadataPool->getMetadata(ProductInterface::class); $linkField = $metadata->getLinkField(); $select = $this->connection->select()->from( ['cc' => $this->getTable('catalog_category_entity')], @@ -295,12 +303,65 @@ protected function getNonAnchorCategoriesSelect(\Magento\Store\Model\Store $stor ] ); + $this->addFilteringByChildProductsToSelect($select, $store); + $this->nonAnchorSelects[$store->getId()] = $select; } return $this->nonAnchorSelects[$store->getId()]; } + /** + * Add filtering by child products to select + * + * It's used for correct handling of composite products. + * This method makes assumption that select already joins `catalog_product_entity` as `cpe`. + * + * @param Select $select + * @param Store $store + * @return void + * @throws \Exception when metadata not found for ProductInterface + */ + private function addFilteringByChildProductsToSelect(Select $select, Store $store) + { + $metadata = $this->metadataPool->getMetadata(ProductInterface::class); + $linkField = $metadata->getLinkField(); + + $statusAttributeId = $this->config->getAttribute(Product::ENTITY, 'status')->getId(); + + $select->joinLeft( + ['relation' => $this->getTable('catalog_product_relation')], + 'cpe.' . $linkField . ' = relation.parent_id', + [] + )->joinLeft( + ['relation_product_entity' => $this->getTable('catalog_product_entity')], + 'relation.child_id = relation_product_entity.entity_id', + [] + )->joinLeft( + ['child_cpsd' => $this->getTable('catalog_product_entity_int')], + 'child_cpsd.' . $linkField . ' = '. 'relation_product_entity.' . $linkField + . ' AND child_cpsd.store_id = 0' + . ' AND child_cpsd.attribute_id = ' . $statusAttributeId, + [] + )->joinLeft( + ['child_cpss' => $this->getTable('catalog_product_entity_int')], + 'child_cpss.' . $linkField . ' = '. 'relation_product_entity.' . $linkField . '' + . ' AND child_cpss.attribute_id = child_cpsd.attribute_id' + . ' AND child_cpss.store_id = ' . $store->getId(), + [] + )->where( + 'relation.child_id IS NULL OR ' + . $this->connection->getIfNullSql('child_cpss.value', 'child_cpsd.value') . ' = ?', + \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED + )->group( + [ + 'cc.entity_id', + 'ccp.product_id', + 'visibility' + ] + ); + } + /** * Check whether select ranging is needed * @@ -314,16 +375,13 @@ protected function isRangingNeeded() /** * Return selects cut by min and max. * - * @param \Magento\Framework\DB\Select $select + * @param Select $select * @param string $field * @param int $range - * @return \Magento\Framework\DB\Select[] + * @return Select[] */ - protected function prepareSelectsByRange( - \Magento\Framework\DB\Select $select, - $field, - $range = self::RANGE_CATEGORY_STEP - ) { + protected function prepareSelectsByRange(Select $select, $field, $range = self::RANGE_CATEGORY_STEP) + { if ($this->isRangingNeeded()) { $iterator = $this->queryGenerator->generate( $field, @@ -346,10 +404,10 @@ protected function prepareSelectsByRange( /** * Reindex products of non anchor categories * - * @param \Magento\Store\Model\Store $store + * @param Store $store * @return void */ - protected function reindexNonAnchorCategories(\Magento\Store\Model\Store $store) + protected function reindexNonAnchorCategories(Store $store) { $selects = $this->prepareSelectsByRange($this->getNonAnchorCategoriesSelect($store), 'entity_id'); foreach ($selects as $select) { @@ -367,10 +425,10 @@ protected function reindexNonAnchorCategories(\Magento\Store\Model\Store $store) /** * Check if anchor select isset * - * @param \Magento\Store\Model\Store $store + * @param Store $store * @return bool */ - protected function hasAnchorSelect(\Magento\Store\Model\Store $store) + protected function hasAnchorSelect(Store $store) { return isset($this->anchorSelects[$store->getId()]); } @@ -378,19 +436,20 @@ protected function hasAnchorSelect(\Magento\Store\Model\Store $store) /** * Create anchor select * - * @param \Magento\Store\Model\Store $store - * @return \Magento\Framework\DB\Select + * @param Store $store + * @return Select + * @throws \Exception when metadata not found for ProductInterface or CategoryInterface * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ - protected function createAnchorSelect(\Magento\Store\Model\Store $store) + protected function createAnchorSelect(Store $store) { $isAnchorAttributeId = $this->config->getAttribute( \Magento\Catalog\Model\Category::ENTITY, 'is_anchor' )->getId(); - $statusAttributeId = $this->config->getAttribute(\Magento\Catalog\Model\Product::ENTITY, 'status')->getId(); + $statusAttributeId = $this->config->getAttribute(Product::ENTITY, 'status')->getId(); $visibilityAttributeId = $this->config->getAttribute( - \Magento\Catalog\Model\Product::ENTITY, + Product::ENTITY, 'visibility' )->getId(); $rootCatIds = explode('/', $this->getPathFromCategoryId($store->getRootCategoryId())); @@ -398,12 +457,12 @@ protected function createAnchorSelect(\Magento\Store\Model\Store $store) $temporaryTreeTable = $this->makeTempCategoryTreeIndex(); - $productMetadata = $this->getMetadataPool()->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class); - $categoryMetadata = $this->getMetadataPool()->getMetadata(\Magento\Catalog\Api\Data\CategoryInterface::class); + $productMetadata = $this->metadataPool->getMetadata(ProductInterface::class); + $categoryMetadata = $this->metadataPool->getMetadata(\Magento\Catalog\Api\Data\CategoryInterface::class); $productLinkField = $productMetadata->getLinkField(); $categoryLinkField = $categoryMetadata->getLinkField(); - return $this->connection->select()->from( + $select = $this->connection->select()->from( ['cc' => $this->getTable('catalog_category_entity')], [] )->joinInner( @@ -485,6 +544,10 @@ protected function createAnchorSelect(\Magento\Store\Model\Store $store) 'visibility' => new \Zend_Db_Expr($this->connection->getIfNullSql('cpvs.value', 'cpvd.value')), ] ); + + $this->addFilteringByChildProductsToSelect($select, $store); + + return $select; } /** @@ -576,10 +639,10 @@ protected function fillTempCategoryTreeIndex($temporaryName) /** * Retrieve select for reindex products of non anchor categories * - * @param \Magento\Store\Model\Store $store - * @return \Magento\Framework\DB\Select + * @param Store $store + * @return Select */ - protected function getAnchorCategoriesSelect(\Magento\Store\Model\Store $store) + protected function getAnchorCategoriesSelect(Store $store) { if (!$this->hasAnchorSelect($store)) { $this->anchorSelects[$store->getId()] = $this->createAnchorSelect($store); @@ -590,10 +653,10 @@ protected function getAnchorCategoriesSelect(\Magento\Store\Model\Store $store) /** * Reindex products of anchor categories * - * @param \Magento\Store\Model\Store $store + * @param Store $store * @return void */ - protected function reindexAnchorCategories(\Magento\Store\Model\Store $store) + protected function reindexAnchorCategories(Store $store) { $selects = $this->prepareSelectsByRange($this->getAnchorCategoriesSelect($store), 'entity_id'); @@ -612,22 +675,23 @@ protected function reindexAnchorCategories(\Magento\Store\Model\Store $store) /** * Get select for all products * - * @param \Magento\Store\Model\Store $store - * @return \Magento\Framework\DB\Select + * @param Store $store + * @return Select + * @throws \Exception when metadata not found for ProductInterface */ - protected function getAllProducts(\Magento\Store\Model\Store $store) + protected function getAllProducts(Store $store) { if (!isset($this->productsSelects[$store->getId()])) { $statusAttributeId = $this->config->getAttribute( - \Magento\Catalog\Model\Product::ENTITY, + Product::ENTITY, 'status' )->getId(); $visibilityAttributeId = $this->config->getAttribute( - \Magento\Catalog\Model\Product::ENTITY, + Product::ENTITY, 'visibility' )->getId(); - $metadata = $this->getMetadataPool()->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class); + $metadata = $this->metadataPool->getMetadata(ProductInterface::class); $linkField = $metadata->getLinkField(); $select = $this->connection->select()->from( @@ -716,10 +780,10 @@ protected function isIndexRootCategoryNeeded() /** * Reindex all products to root category * - * @param \Magento\Store\Model\Store $store + * @param Store $store * @return void */ - protected function reindexRootCategory(\Magento\Store\Model\Store $store) + protected function reindexRootCategory(Store $store) { if ($this->isIndexRootCategoryNeeded()) { $selects = $this->prepareSelectsByRange( @@ -740,16 +804,4 @@ protected function reindexRootCategory(\Magento\Store\Model\Store $store) } } } - - /** - * @return \Magento\Framework\EntityManager\MetadataPool - */ - private function getMetadataPool() - { - if (null === $this->metadataPool) { - $this->metadataPool = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Framework\EntityManager\MetadataPool'); - } - return $this->metadataPool; - } } diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Category/Action/Rows.php b/app/code/Magento/Catalog/Model/Indexer/Product/Category/Action/Rows.php index f622e7b6bb32b..9032b10d9eced 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Product/Category/Action/Rows.php +++ b/app/code/Magento/Catalog/Model/Indexer/Product/Category/Action/Rows.php @@ -6,9 +6,19 @@ namespace Magento\Catalog\Model\Indexer\Product\Category\Action; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\Config; use Magento\Catalog\Model\Product; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\App\ResourceConnection; +use Magento\Framework\DB\Query\Generator as QueryGenerator; +use Magento\Framework\EntityManager\MetadataPool; +use Magento\Framework\Event\ManagerInterface as EventManagerInterface; use Magento\Framework\Indexer\CacheContext; +use Magento\Store\Model\StoreManagerInterface; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Rows extends \Magento\Catalog\Model\Indexer\Category\Product\AbstractAction { /** @@ -19,32 +29,103 @@ class Rows extends \Magento\Catalog\Model\Indexer\Category\Product\AbstractActio protected $limitationByProducts; /** - * @var \Magento\Framework\Indexer\CacheContext + * @var CacheContext */ private $cacheContext; + /** + * @var EventManagerInterface|null + */ + private $eventManager; + + /** + * @param ResourceConnection $resource + * @param StoreManagerInterface $storeManager + * @param Config $config + * @param QueryGenerator|null $queryGenerator + * @param MetadataPool|null $metadataPool + * @param CacheContext|null $cacheContext + * @param EventManagerInterface|null $eventManager + */ + public function __construct( + ResourceConnection $resource, + StoreManagerInterface $storeManager, + Config $config, + QueryGenerator $queryGenerator = null, + MetadataPool $metadataPool = null, + CacheContext $cacheContext = null, + EventManagerInterface $eventManager = null + ) { + parent::__construct($resource, $storeManager, $config, $queryGenerator, $metadataPool); + $this->cacheContext = $cacheContext ?: ObjectManager::getInstance()->get(CacheContext::class); + $this->eventManager = $eventManager ?: ObjectManager::getInstance()->get(EventManagerInterface::class); + } + /** * Refresh entities index * * @param int[] $entityIds * @param bool $useTempTable * @return $this + * @throws \Exception if metadataPool doesn't contain metadata for ProductInterface + * @throws \DomainException */ public function execute(array $entityIds = [], $useTempTable = false) { - $this->limitationByProducts = $entityIds; + $idsToBeReIndexed = $this->getProductIdsWithParents($entityIds); + + $this->limitationByProducts = $idsToBeReIndexed; $this->useTempTable = $useTempTable; + $affectedCategories = $this->getCategoryIdsFromIndex($idsToBeReIndexed); + $this->removeEntries(); $this->reindex(); - $this->registerProducts($entityIds); - $this->registerCategories($entityIds); + $affectedCategories = array_merge($affectedCategories, $this->getCategoryIdsFromIndex($idsToBeReIndexed)); + + $this->registerProducts($idsToBeReIndexed); + $this->registerCategories($affectedCategories); + $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]); return $this; } + /** + * Get IDs of parent products by their child IDs. + * + * Returns identifiers of parent product from the catalog_product_relation. + * Please note that returned ids don't contain ids of passed child products. + * + * @param int[] $childProductIds + * @return int[] + * @throws \Exception if metadataPool doesn't contain metadata for ProductInterface + * @throws \DomainException + */ + private function getProductIdsWithParents(array $childProductIds) + { + /** @var \Magento\Framework\EntityManager\EntityMetadataInterface $metadata */ + $metadata = $this->metadataPool->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class); + $fieldForParent = $metadata->getLinkField(); + + $select = $this->connection + ->select() + ->from(['relation' => $this->getTable('catalog_product_relation')], []) + ->distinct(true) + ->where('child_id IN (?)', $childProductIds) + ->where('parent_id NOT IN (?)', $childProductIds) + ->join( + ['cpe' => $this->getTable('catalog_product_entity')], + 'relation.parent_id = cpe.' . $fieldForParent, + ['cpe.entity_id'] + ); + + $parentProductIds = $this->connection->fetchCol($select); + + return array_unique(array_merge($childProductIds, $parentProductIds)); + } + /** * Register affected products * @@ -53,26 +134,19 @@ public function execute(array $entityIds = [], $useTempTable = false) */ private function registerProducts($entityIds) { - $this->getCacheContext()->registerEntities(Product::CACHE_TAG, $entityIds); + $this->cacheContext->registerEntities(Product::CACHE_TAG, $entityIds); } /** * Register categories assigned to products * - * @param array $entityIds + * @param array $categoryIds * @return void */ - private function registerCategories($entityIds) + private function registerCategories(array $categoryIds) { - $categories = $this->connection->fetchCol( - $this->connection->select() - ->from($this->getMainTable(), ['category_id']) - ->where('product_id IN (?)', $entityIds) - ->distinct() - ); - - if ($categories) { - $this->getCacheContext()->registerEntities(Category::CACHE_TAG, $categories); + if ($categoryIds) { + $this->cacheContext->registerEntities(Category::CACHE_TAG, $categoryIds); } } @@ -98,7 +172,7 @@ protected function removeEntries() protected function getNonAnchorCategoriesSelect(\Magento\Store\Model\Store $store) { $select = parent::getNonAnchorCategoriesSelect($store); - return $select->where('ccp.product_id IN (?)', $this->limitationByProducts); + return $select->where('ccp.product_id IN (?) OR relation.child_id IN (?)', $this->limitationByProducts); } /** @@ -136,16 +210,29 @@ protected function isRangingNeeded() } /** - * Get cache context + * Returns a list of category ids which are assigned to product ids in the index * - * @return \Magento\Framework\Indexer\CacheContext - * @deprecated + * This may be required to get list of categories that are affected by the indexation process. + * Also, returns all parents of assigned categories as they're may be affected as well. + * + * @param array $productIds + * @return array */ - private function getCacheContext() + private function getCategoryIdsFromIndex(array $productIds) { - if ($this->cacheContext === null) { - $this->cacheContext = \Magento\Framework\App\ObjectManager::getInstance()->get(CacheContext::class); + $categoryIds = $this->connection->fetchCol( + $this->connection->select() + ->from($this->getMainTable(), ['category_id']) + ->where('product_id IN (?)', $productIds) + ->distinct() + ); + $parentCategories = $categoryIds; + foreach ($categoryIds as $categoryId) { + $parentIds = explode('/', $this->getPathFromCategoryId($categoryId)); + $parentCategories = array_merge($parentCategories, $parentIds); } - return $this->cacheContext; + $categoryIds = array_unique($parentCategories); + + return $categoryIds; } } diff --git a/app/code/Magento/Catalog/view/frontend/templates/navigation/left.phtml b/app/code/Magento/Catalog/view/frontend/templates/navigation/left.phtml index 2e8a832f77c28..bff31fe3ffce8 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/navigation/left.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/navigation/left.phtml @@ -28,6 +28,7 @@
      + getIsActive()): ?>
    1. diff --git a/app/code/Magento/CatalogInventory/Helper/Stock.php b/app/code/Magento/CatalogInventory/Helper/Stock.php index f17c12f744bbd..305617bd2e6bd 100644 --- a/app/code/Magento/CatalogInventory/Helper/Stock.php +++ b/app/code/Magento/CatalogInventory/Helper/Stock.php @@ -156,7 +156,7 @@ public function addIsInStockFilterToCollection($collection) $resource = $this->getStockStatusResource(); $resource->addStockDataToCollection( $collection, - !$isShowOutOfStock && $collection->getFlag('require_stock_items') + !$isShowOutOfStock ); $collection->setFlag($stockFlag, true); } diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext.php b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext.php index 0783bdb424e00..91e74a41d99ad 100644 --- a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext.php +++ b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext.php @@ -5,8 +5,10 @@ */ namespace Magento\CatalogSearch\Model\Indexer; +use Magento\CatalogSearch\Model\Indexer\Fulltext\Action\Full; use Magento\CatalogSearch\Model\Indexer\Fulltext\Action\FullFactory; use Magento\CatalogSearch\Model\ResourceModel\Fulltext as FulltextResource; +use Magento\Framework\App\ObjectManager; use \Magento\Framework\Search\Request\Config as SearchRequestConfig; use Magento\Framework\Search\Request\DimensionFactory; use Magento\Store\Model\StoreManagerInterface; @@ -25,27 +27,37 @@ class Fulltext implements \Magento\Framework\Indexer\ActionInterface, \Magento\F * @var IndexerHandlerFactory */ private $indexerHandlerFactory; + /** * @var StoreManagerInterface */ private $storeManager; + /** * @var DimensionFactory */ private $dimensionFactory; + /** * @var Full */ private $fullAction; + /** * @var FulltextResource */ private $fulltextResource; + /** * @var SearchRequestConfig */ private $searchRequestConfig; + /** + * @var ParentProductsResolver + */ + private $parentProductsResolver; + /** * @param FullFactory $fullActionFactory * @param IndexerHandlerFactory $indexerHandlerFactory @@ -54,6 +66,7 @@ class Fulltext implements \Magento\Framework\Indexer\ActionInterface, \Magento\F * @param FulltextResource $fulltextResource * @param SearchRequestConfig $searchRequestConfig * @param array $data + * @param ParentProductsResolver $parentProductsResolver */ public function __construct( FullFactory $fullActionFactory, @@ -62,7 +75,8 @@ public function __construct( DimensionFactory $dimensionFactory, FulltextResource $fulltextResource, SearchRequestConfig $searchRequestConfig, - array $data + array $data, + ParentProductsResolver $parentProductsResolver = null ) { $this->fullAction = $fullActionFactory->create(['data' => $data]); $this->indexerHandlerFactory = $indexerHandlerFactory; @@ -71,6 +85,8 @@ public function __construct( $this->fulltextResource = $fulltextResource; $this->searchRequestConfig = $searchRequestConfig; $this->data = $data; + $this->parentProductsResolver = $parentProductsResolver + ?: ObjectManager::getInstance()->get(ParentProductsResolver::class); } /** @@ -86,10 +102,15 @@ public function execute($ids) $saveHandler = $this->indexerHandlerFactory->create([ 'data' => $this->data ]); + + $ids = (array)$ids; + $parentProductIds = $this->parentProductsResolver->getParentProductIds($ids); + $idsToBeReIndexed = array_unique(array_merge($ids, $parentProductIds)); + foreach ($storeIds as $storeId) { $dimension = $this->dimensionFactory->create(['name' => 'scope', 'value' => $storeId]); - $saveHandler->deleteIndex([$dimension], new \ArrayObject($ids)); - $saveHandler->saveIndex([$dimension], $this->fullAction->rebuildStoreIndex($storeId, $ids)); + $saveHandler->deleteIndex([$dimension], new \ArrayObject($idsToBeReIndexed)); + $saveHandler->saveIndex([$dimension], $this->fullAction->rebuildStoreIndex($storeId, $idsToBeReIndexed)); } } diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php index 436fb10b9a1bd..75b6b7afd48cb 100644 --- a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php +++ b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php @@ -375,9 +375,9 @@ private function getProductTypeInstance($typeId) public function getProductChildIds($productId, $typeId) { $typeInstance = $this->getProductTypeInstance($typeId); - $relation = $typeInstance->isComposite( - $this->getProductEmulator($typeId) - ) ? $typeInstance->getRelationInfo() : false; + $relation = $typeInstance->isComposite($this->getProductEmulator($typeId)) + ? $typeInstance->getRelationInfo() + : false; if ($relation && $relation->getTable() && $relation->getParentFieldName() && $relation->getChildFieldName()) { $select = $this->connection->select()->from( diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php index e08954806da29..2933b163a1c94 100644 --- a/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php +++ b/app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php @@ -290,6 +290,9 @@ protected function getTable($table) /** * Get parents IDs of product IDs to be re-indexed * + * @deprecated as separate service was introduced + * @see \Magento\CatalogSearch\Model\Indexer\ParentProductsResolver::getParentProductIds() + * * @param int[] $entityIds * @return int[] */ @@ -328,7 +331,7 @@ protected function getProductIdsFromParents(array $entityIds) public function rebuildStoreIndex($storeId, $productIds = null) { if ($productIds !== null) { - $productIds = array_unique(array_merge($productIds, $this->getProductIdsFromParents($productIds))); + $productIds = array_unique($productIds); } // prepare searchable attributes $staticFields = []; diff --git a/app/code/Magento/CatalogSearch/Model/Indexer/ParentProductsResolver.php b/app/code/Magento/CatalogSearch/Model/Indexer/ParentProductsResolver.php new file mode 100644 index 0000000000000..740cb82ee9cb0 --- /dev/null +++ b/app/code/Magento/CatalogSearch/Model/Indexer/ParentProductsResolver.php @@ -0,0 +1,72 @@ +resourceConnection = $resourceConnection; + $this->metadataPool = $metadataPool; + } + + /** + * Get IDs of parent products by their child IDs. + * + * Returns identifiers of parent product from the catalog_product_relation. + * Please note that returned ids don't contain ids of passed child products. + * + * @param int[] $childProductIds + * @return int[] + * @throws \Exception if metadataPool doesn't contain metadata for ProductInterface + * @throws \DomainException + */ + public function getParentProductIds(array $childProductIds) + { + /** @var \Magento\Framework\EntityManager\EntityMetadataInterface $metadata */ + $metadata = $this->metadataPool->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class); + $fieldForParent = $metadata->getLinkField(); + + $connection = $this->resourceConnection->getConnection(); + + $select = $connection + ->select() + ->from(['relation' => $this->resourceConnection->getTableName('catalog_product_relation')], []) + ->distinct(true) + ->where('child_id IN (?)', $childProductIds) + ->where('parent_id NOT IN (?)', $childProductIds) + ->join( + ['cpe' => $this->resourceConnection->getTableName('catalog_product_entity')], + 'relation.parent_id = cpe.'.$fieldForParent, + ['cpe.entity_id'] + ); + + return $connection->fetchCol($select); + } +} diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/FulltextTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/FulltextTest.php index 0b62c8588b8c2..f55d87342ccc6 100644 --- a/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/FulltextTest.php +++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/FulltextTest.php @@ -5,12 +5,18 @@ */ namespace Magento\CatalogSearch\Test\Unit\Model\Indexer; +use Magento\CatalogSearch\Model\Indexer\ParentProductsResolver; use Magento\CatalogSearch\Model\ResourceModel\Fulltext as FulltextResource; use Magento\Framework\Search\Request\Config as SearchRequestConfig; use Magento\Framework\Search\Request\DimensionFactory; class FulltextTest extends \PHPUnit_Framework_TestCase { + /** + * @var \Magento\CatalogSearch\Model\Indexer\ParentProductsResolver|\PHPUnit_Framework_MockObject_MockObject + */ + private $parentProductResolver; + /** * @var \Magento\CatalogSearch\Model\Indexer\Fulltext */ @@ -93,14 +99,24 @@ protected function setUp() $this->fulltextResource = $this->getClassMock('\Magento\CatalogSearch\Model\ResourceModel\Fulltext'); $this->searchRequestConfig = $this->getClassMock('Magento\Framework\Search\Request\Config'); - $this->model = new \Magento\CatalogSearch\Model\Indexer\Fulltext( - $fullActionFactory, - $indexerHandlerFactory, - $this->storeManager, - $dimensionFactory, - $this->fulltextResource, - $this->searchRequestConfig, - [] + $this->parentProductResolver = $this->getMockBuilder(ParentProductsResolver::class) + ->disableOriginalConstructor() + ->setMethods(['getParentProductIds']) + ->getMock(); + + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->model = $objectManager->getObject( + \Magento\CatalogSearch\Model\Indexer\Fulltext::class, + [ + 'fullActionFactory' => $fullActionFactory, + 'indexerHandlerFactory' => $indexerHandlerFactory, + 'storeManager' => $this->storeManager, + 'dimensionFactory' => $dimensionFactory, + 'fulltextResource' => $this->fulltextResource, + 'searchRequestConfig' => $this->searchRequestConfig, + 'data' => [], + 'parentProductsResolver' => $this->parentProductResolver, + ] ); } @@ -121,6 +137,10 @@ public function testExecute() $this->storeManager->expects($this->once())->method('getStores')->willReturn($stores); $this->saveHandler->expects($this->exactly(count($stores)))->method('deleteIndex'); $this->saveHandler->expects($this->exactly(2))->method('saveIndex'); + $this->parentProductResolver->expects($this->once()) + ->method('getParentProductIds') + ->with($ids) + ->willReturn(['12']); $this->fullAction->expects($this->exactly(2)) ->method('rebuildStoreIndex') ->willReturn(new \ArrayObject([$indexData, $indexData])); @@ -152,6 +172,10 @@ public function testExecuteList() $this->storeManager->expects($this->once())->method('getStores')->willReturn($stores); $this->saveHandler->expects($this->exactly(count($stores)))->method('deleteIndex'); $this->saveHandler->expects($this->exactly(2))->method('saveIndex'); + $this->parentProductResolver->expects($this->once()) + ->method('getParentProductIds') + ->with($ids) + ->willReturn([]); $this->fullAction->expects($this->exactly(2)) ->method('rebuildStoreIndex') ->willReturn(new \ArrayObject([$indexData, $indexData])); @@ -167,6 +191,10 @@ public function testExecuteRow() $this->storeManager->expects($this->once())->method('getStores')->willReturn($stores); $this->saveHandler->expects($this->exactly(count($stores)))->method('deleteIndex'); $this->saveHandler->expects($this->exactly(2))->method('saveIndex'); + $this->parentProductResolver->expects($this->once()) + ->method('getParentProductIds') + ->with([$id]) + ->willReturn(['12']); $this->fullAction->expects($this->exactly(2)) ->method('rebuildStoreIndex') ->willReturn(new \ArrayObject([$indexData, $indexData])); diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/ParentProductsResolverTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/ParentProductsResolverTest.php new file mode 100644 index 0000000000000..62a21b922515d --- /dev/null +++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/Indexer/ParentProductsResolverTest.php @@ -0,0 +1,125 @@ +resourceConnection = $this->getMockBuilder(ResourceConnection::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->metadataPool = $this->getMockBuilder(\Magento\Framework\EntityManager\MetadataPool::class) + ->disableOriginalConstructor() + ->getMock(); + $this->metadata = $this->getMockBuilder(\Magento\Framework\EntityManager\EntityMetadataInterface::class) + ->getMockForAbstractClass(); + $this->metadataPool->expects($this->once()) + ->method('getMetadata') + ->with(ProductInterface::class) + ->willReturn($this->metadata); + + $this->connection = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class) + ->disableOriginalConstructor() + ->setMethods(['select', 'getIfNullSql', 'quote']) + ->getMockForAbstractClass(); + + $this->resourceConnection->expects($this->atLeastOnce()) + ->method('getConnection') + ->will($this->returnValue($this->connection)); + + $this->select = $this->getMockBuilder(\Magento\Framework\DB\Select::class) + ->disableOriginalConstructor() + ->setMethods(['from', 'distinct', 'where', 'join', '__toString']) + ->getMock(); + $this->connection->expects($this->any()) + ->method('select') + ->will($this->returnValue($this->select)); + + $objectManager = new ObjectManager($this); + $this->resolver = $objectManager->getObject( + ParentProductsResolver::class, + [ + 'resourceConnection' => $this->resourceConnection, + 'metadataPool' => $this->metadataPool, + ] + ); + } + + public function testGetParentProductIds() + { + $childProductIds = [12, 13, 14]; + + $this->metadata->expects(self::once()) + ->method('getLinkField') + ->willReturn('product_link_field'); + $this->resourceConnection->expects($this->any()) + ->method('getTableName') + ->willReturnMap( + [ + ['catalog_product_relation', ResourceConnection::DEFAULT_CONNECTION, 'relation_table'], + ['catalog_product_entity', ResourceConnection::DEFAULT_CONNECTION, 'product_table'], + ] + ); + $this->select->expects(self::once())->method('from') + ->with(['relation' => 'relation_table'], [], null) + ->willReturnSelf(); + $this->select->expects(self::once())->method('distinct') + ->with(true) + ->willReturnSelf(); + $this->select->expects(self::exactly(2))->method('where') + ->withConsecutive( + [$this->equalTo('child_id IN (?)'), $this->equalTo($childProductIds)], + [$this->equalTo('parent_id NOT IN (?)'), $this->equalTo($childProductIds)] + ) + ->willReturnSelf(); + $this->select->expects(self::once())->method('join') + ->with( + ['cpe' => 'product_table'], + 'relation.parent_id = cpe.product_link_field', + ['cpe.entity_id'] + ) + ->willReturnSelf(); + $this->resolver->getParentProductIds($childProductIds); + } +} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php index 9c3619bda1eec..9e1f99a3936ad 100644 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Block/Navigation.php @@ -8,6 +8,7 @@ use Magento\Mtf\Block\Block; use Magento\Mtf\Client\Locator; +use Magento\Catalog\Test\Fixture\Category; /** * Catalog layered navigation view block. @@ -49,6 +50,20 @@ class Navigation extends Block */ protected $expandFilterButton = '[data]'; + /** + * Locator for category name. + * + * @var string + */ + private $categoryName = './/li[@class="item"]//a[contains(text(),"%s")]'; + + /** + * Locator for element with product quantity. + * + * @var string + */ + private $productQty = '/following-sibling::span[contains(text(), "%s")]'; + // @codingStandardsIgnoreStart /** * Locator value for correspondent Attribute filter option contents. @@ -138,4 +153,19 @@ public function getOptionsContentForAttribute($attributeName) return $data; } + + /** + * Check that category with product quantity can be displayed on layered navigation. + * + * @param Category $category + * @param int $qty + * @return bool + */ + public function isCategoryVisible(Category $category, $qty) + { + return $this->_rootElement->find( + sprintf($this->categoryName, $category->getName()) . sprintf($this->productQty, $qty), + Locator::SELECTOR_XPATH + )->isVisible(); + } } diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php index 1cee333da31e5..939c0253d41fc 100644 --- a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertFilterProductList.php @@ -3,7 +3,6 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\LayeredNavigation\Test\Constraint; use Magento\Catalog\Test\Fixture\Category; diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php new file mode 100644 index 0000000000000..43b3e8d1fab05 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Constraint/AssertProductsCount.php @@ -0,0 +1,99 @@ +browser = $browser; + $this->catalogCategoryView = $catalogCategoryView; + while ($category) { + $parentCategory = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); + if ($parentCategory && $parentCategory->getData('is_anchor') == 'No') { + $this->openCategory($parentCategory); + \PHPUnit_Framework_Assert::assertTrue( + $this->catalogCategoryView->getLayeredNavigationBlock()->isCategoryVisible( + $category, + $productsCount + ), + 'Category ' . $category->getName() . ' is absent in Layered Navigation or products count is wrong' + ); + } + $category = $parentCategory; + } + } + + /** + * Open category. + * + * @param Category $category + * @return void + */ + private function openCategory(Category $category) + { + $categoryUrlKey = []; + + while ($category) { + $categoryUrlKey[] = $category->hasData('url_key') + ? strtolower($category->getUrlKey()) + : trim(strtolower(preg_replace('#[^0-9a-z%]+#i', '-', $category->getName())), '-'); + + $category = $category->getDataFieldConfig('parent_id')['source']->getParentCategory(); + if ($category !== null && 1 == $category->getParentId()) { + $category = null; + } + } + $categoryUrlKey = $_ENV['app_frontend_url'] . implode('/', array_reverse($categoryUrlKey)) . '.html'; + + $this->browser->open($categoryUrlKey); + } + + /** + * Assert success message that category is present in layered navigation and product is visible in product grid. + * + * @return string + */ + public function toString() + { + return 'Category is present in layered navigation and product is visible in product grid.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml new file mode 100644 index 0000000000000..4d463f0b93605 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/Repository/Category.xml @@ -0,0 +1,54 @@ + + + + + + DefaultSubcategory%isolation% + default-subcategory-%isolation% + + default_category + + Yes + No + Yes + + + + DefaultSubcategory%isolation% + default-subcategory-%isolation% + + default_non_anchored_subcategory + + Yes + Yes + Yes + + + + DefaultSubcategory%isolation% + default-subcategory-%isolation% + + default_second_level_anchored_subcategory + + Yes + No + Yes + + + + DefaultSubcategory%isolation% + default-subcategory-%isolation% + + default_third_level_non_anchored_subcategory + + Yes + Yes + Yes + + + diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php new file mode 100644 index 0000000000000..32ad64d6deca8 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.php @@ -0,0 +1,121 @@ +first->second->third->fourth) + * first and third categories should not be anchored, second and fourth categories should be anchored + * 2. Create configurable product with two configurable options and assign it to category "fourth" + * + * Steps: + * 1. Disable configurable options via massaction or from edit product page + * 2. Open created non anchored categories on frontend + * 3. Perform assertions + * + * @group Layered_Navigation + * @ZephyrId MAGETWO-82891 + */ +class ProductsCountInLayeredNavigationTest extends Injectable +{ + /** + * Product page with a grid + * + * @var CatalogProductIndex + */ + protected $catalogProductIndex; + + /** + * Page to update a product + * + * @var CatalogProductEdit + */ + protected $editProductPage; + + /** + * Fixture factory + * + * @var FixtureFactory + */ + protected $fixtureFactory; + + /** + * Injection data + * + * @param CatalogProductIndex $catalogProductIndex + * @param CatalogProductEdit $editProductPage + * @param FixtureFactory $fixtureFactory + * @return void + */ + public function __inject( + CatalogProductIndex $catalogProductIndex, + CatalogProductEdit $editProductPage, + FixtureFactory $fixtureFactory + ) { + $this->catalogProductIndex = $catalogProductIndex; + $this->editProductPage = $editProductPage; + $this->fixtureFactory = $fixtureFactory; + } + + /** + * Test category name and products count displaying in layered navigation after configurable options disabling + * + * @param Category $category + * @param boolean $disableFromProductsGreed + * @return array + */ + public function test( + Category $category, + $disableFromProductsGreed = true + ) { + // Preconditions + $category->persist(); + // Steps + $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); + $configurableOptions = []; + /** @var \Magento\ConfigurableProduct\Test\Fixture\ConfigurableProduct\ $product */ + foreach ($products as $product) { + $configurableOptions = array_merge( + $configurableOptions, + $product->getConfigurableAttributesData()['matrix'] + ); + } + // Disable configurable options + if ($disableFromProductsGreed) { + $this->catalogProductIndex->open(); + $this->catalogProductIndex->getProductGrid()->massaction( + array_map( + function ($assignedProduct) { + return ['sku' => $assignedProduct['sku']]; + }, + $configurableOptions + ), + ['Change status' => 'Disable'] + ); + } else { + $productToDisable = $this->fixtureFactory->createByCode( + 'catalogProductSimple', + ['data' => ['status' => 'No']] + ); + foreach ($configurableOptions as $configurableOption) { + $filter = ['sku' => $configurableOption['sku']]; + $this->catalogProductIndex->open(); + $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); + $this->editProductPage->getProductForm()->fill($productToDisable); + $this->editProductPage->getFormPageActions()->save(); + } + } + return [ + 'products' => $configurableOptions + ]; + } +} diff --git a/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml new file mode 100644 index 0000000000000..a832163ceea55 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/LayeredNavigation/Test/TestCase/ProductsCountInLayeredNavigationTest.xml @@ -0,0 +1,29 @@ + + + + + + true + true + default_fourth_level_anchored_subcategory + configurableProduct::product_with_size + 0 + true + + + + true + true + default_fourth_level_anchored_subcategory + configurableProduct::product_with_size + 0 + false + + + + diff --git a/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/Indexer/FulltextTest.php b/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/Indexer/FulltextTest.php index 33ae041ffb38d..f6e5c43ad1f26 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/Indexer/FulltextTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/Indexer/FulltextTest.php @@ -186,6 +186,29 @@ public function testReindexRowAfterDelete() $this->assertCount(4, $products); } + /** + * Test the case when the last child product of the configurable becomes disabled/out of stock. + * + * Such behavior should enforce parent product to be deleted from the index as its latest child become unavailable + * and the configurable cannot be sold anymore. + * + * @magentoAppArea adminhtml + * @magentoDataFixture Magento/CatalogSearch/_files/product_configurable_with_single_child.php + */ + public function testReindexParentProductWhenChildBeingDisabled() + { + $this->indexer->reindexAll(); + + $products = $this->search('Configurable'); + $this->assertCount(1, $products); + + $childProduct = $this->getProductBySku('configurable_option_single_child'); + $childProduct->setStatus(Product\Attribute\Source\Status::STATUS_DISABLED)->save(); + + $products = $this->search('Configurable'); + $this->assertCount(0, $products); + } + /** * Search the text and return result collection * diff --git a/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child.php b/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child.php new file mode 100644 index 0000000000000..a1e1c30323c5b --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child.php @@ -0,0 +1,101 @@ +reinitialize(); + +require __DIR__ . '/../../../Magento/ConfigurableProduct/_files/configurable_attribute.php'; + +/** @var ProductRepositoryInterface $productRepository */ +$productRepository = Bootstrap::getObjectManager() + ->create(ProductRepositoryInterface::class); + +/** @var $installer CategorySetup */ +$installer = Bootstrap::getObjectManager()->create(CategorySetup::class); + +/* Create simple products per each option value*/ +/** @var AttributeOptionInterface[] $options */ +$options = $attribute->getOptions(); + +$attributeValues = []; +$attributeSetId = $installer->getAttributeSetId('catalog_product', 'Default'); +$productsSku = [1410]; +array_shift($options); //remove the first option which is empty + +$option = reset($options); + +/** @var $childProduct Product */ +$childProduct = Bootstrap::getObjectManager()->create(Product::class); +$productSku = array_shift($productsSku); +$childProduct->setTypeId(Type::TYPE_SIMPLE) + ->setAttributeSetId($attributeSetId) + ->setName('Configurable Product Option' . $option->getLabel()) + ->setSku('configurable_option_single_child') + ->setPrice(11) + ->setTestConfigurable($option->getValue()) + ->setVisibility(Visibility::VISIBILITY_NOT_VISIBLE) + ->setStatus(Status::STATUS_ENABLED); +$childProduct = $productRepository->save($childProduct); + +/** @var StockItemInterface $stockItem */ +$stockItem = $childProduct->getExtensionAttributes()->getStockItem(); +$stockItem->setUseConfigManageStock(1)->setIsInStock(true)->setQty(100)->setIsQtyDecimal(0); + +$childProduct = $productRepository->save($childProduct); + +$attributeValues[] = [ + 'label' => 'test', + 'attribute_id' => $attribute->getId(), + 'value_index' => $option->getValue(), +]; + +/** @var $product Product */ +$configurableProduct = Bootstrap::getObjectManager()->create(Product::class); + +/** @var Factory $optionsFactory */ +$optionsFactory = Bootstrap::getObjectManager()->create(Factory::class); + +$configurableAttributesData = [ + [ + 'attribute_id' => $attribute->getId(), + 'code' => $attribute->getAttributeCode(), + 'label' => $attribute->getStoreLabel(), + 'position' => '0', + 'values' => $attributeValues, + ], +]; + +$configurableOptions = $optionsFactory->create($configurableAttributesData); + +$extensionConfigurableAttributes = $configurableProduct->getExtensionAttributes(); +$extensionConfigurableAttributes->setConfigurableProductOptions($configurableOptions); +$extensionConfigurableAttributes->setConfigurableProductLinks([$childProduct->getId()]); + +$configurableProduct->setExtensionAttributes($extensionConfigurableAttributes); + +$configurableProduct->setTypeId(Configurable::TYPE_CODE) + ->setAttributeSetId($attributeSetId) + ->setName('Configurable Product with single child') + ->setSku('configurable_with_single_child') + ->setVisibility(Visibility::VISIBILITY_BOTH) + ->setStatus(Status::STATUS_ENABLED); +$configurableProduct = $productRepository->save($configurableProduct); + +/** @var StockItemInterface $stockItem */ +$stockItem = $configurableProduct->getExtensionAttributes()->getStockItem(); +$stockItem->setUseConfigManageStock(1)->setIsInStock(1); + +$productRepository->save($configurableProduct); diff --git a/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child_rollback.php b/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child_rollback.php new file mode 100644 index 0000000000000..bc27505ac5148 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/CatalogSearch/_files/product_configurable_with_single_child_rollback.php @@ -0,0 +1,34 @@ +get(\Magento\Framework\Registry::class); + +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', true); + +/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ +$productRepository = Bootstrap::getObjectManager() + ->get(\Magento\Catalog\Api\ProductRepositoryInterface::class); + +$productSkus = ['configurable_option_single_child', 'configurable_with_single_child']; +/** @var SearchCriteriaBuilder $searchCriteriaBuilder */ +$searchCriteriaBuilder = Bootstrap::getObjectManager()->get(SearchCriteriaBuilder::class); +$searchCriteriaBuilder->addFilter(ProductInterface::SKU, $productSkus, 'in'); +$result = $productRepository->getList($searchCriteriaBuilder->create()); +foreach ($result->getItems() as $product) { + $productRepository->delete($product); +} + +require __DIR__ . '/../../../Magento/Framework/Search/_files/configurable_attribute_rollback.php'; + +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', false); diff --git a/lib/internal/Magento/Framework/Indexer/CacheContext.php b/lib/internal/Magento/Framework/Indexer/CacheContext.php index 68d74e5c78f6a..d3411bfbc6392 100644 --- a/lib/internal/Magento/Framework/Indexer/CacheContext.php +++ b/lib/internal/Magento/Framework/Indexer/CacheContext.php @@ -29,15 +29,14 @@ class CacheContext implements \Magento\Framework\DataObject\IdentityInterface */ public function registerEntities($cacheTag, $ids) { - $this->entities[$cacheTag] = - array_merge($this->getRegisteredEntity($cacheTag), $ids); + $this->entities[$cacheTag] = array_merge($this->getRegisteredEntity($cacheTag), $ids); return $this; } /** * Register entity tags * - * @param string $cacheTag + * @param array $cacheTags * @return $this */ public function registerTags($cacheTags) From 2a9fbdc3983064d49a6cb2bd2c67a71d4445b710 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 16 Nov 2017 16:43:08 +0200 Subject: [PATCH 017/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Update date according to locale in integration test; --- .../Magento/Catalog/Controller/Adminhtml/CategoryTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php index b8f2a2fe96e4b..c770a52bac183 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php @@ -263,8 +263,8 @@ public function saveActionDataProvider() 'meta_keywords' => 'Custom keywords', 'meta_description' => 'Custom meta description', 'custom_layout_update' => null, - 'custom_design_from' => '2015-05-21 00:00:00', - 'custom_design_to' => '2015-05-29 00:00:00', + 'custom_design_from' => '2015-05-20 17:00:00', + 'custom_design_to' => '2015-05-28 17:00:00', 'filter_price_range' => null ], ], From caf209bcbd628c6c1d2382d16c71bd1cb1feb0cd Mon Sep 17 00:00:00 2001 From: angelo983 Date: Fri, 17 Nov 2017 10:42:20 +0100 Subject: [PATCH 018/555] Trying to get data from non existent products When calling Products in Cart report, it called data of deleted products resulting in exception trying to access $productData[$item->getProductId()] --- .../Reports/Model/ResourceModel/Quote/Item/Collection.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php index 5e6894dbed5fa..6c67715f7f8b4 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php @@ -219,8 +219,10 @@ protected function _afterLoad() $orderData = $this->getOrdersData($productIds); foreach ($items as $item) { $item->setId($item->getProductId()); - $item->setPrice($productData[$item->getProductId()]['price'] * $item->getBaseToGlobalRate()); - $item->setName($productData[$item->getProductId()]['name']); + if (isset($productData[$item->getProductId()])) { + $item->setPrice($productData[$item->getProductId()]['price'] * $item->getBaseToGlobalRate()); + $item->setName($productData[$item->getProductId()]['name']); + } $item->setOrders(0); if (isset($orderData[$item->getProductId()])) { $item->setOrders($orderData[$item->getProductId()]['orders']); From cc95af3df21ee9a93819cbc3e1cd788828c455d5 Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 13 Nov 2017 13:06:01 +0200 Subject: [PATCH 019/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- .../Product/AddAttributeToTemplate.php | 23 +- .../Controller/Adminhtml/Product/Builder.php | 23 +- .../Product/Initialization/Helper.php | 147 +++++-------- .../Model/Product/Option/Repository.php | 48 ++-- .../Catalog/Model/ProductLink/Repository.php | 42 ++-- .../Model/ResourceModel/Category/Flat.php | 15 +- .../Model/Stock/StockItemRepository.php | 57 ++--- .../Model/ShippingInformationManagement.php | 60 ++--- .../Model/LinkManagement.php | 33 ++- .../Controller/Adminhtml/Index/Cart.php | 85 +++++++- .../Customer/Model/Customer/DataProvider.php | 43 ++-- .../Customer/Model/Metadata/Form/File.php | 12 +- .../Customer/Model/Metadata/Form/Image.php | 77 +++++-- .../Model/Currency/Import/Webservicex.php | 32 ++- .../Helper/Plugin/Downloadable.php | 101 +++------ .../Command/AbstractIndexerCommand.php | 35 ++- .../Command/AbstractIndexerManageCommand.php | 48 +++- .../Model/Checkout/Type/Multishipping.php | 49 ++--- .../Magento/Quote/Model/QuoteManagement.php | 24 +- .../Magento/Quote/Model/QuoteRepository.php | 12 +- .../Promo/Quote/Edit/Tab/Actions.php | 25 +-- .../Promo/Quote/Edit/Tab/Conditions.php | 27 +-- ...togeneratedClassNotInConstructorFinder.php | 155 +++++++++++++ .../TestFramework/Utility/ChangedFiles.php | 66 ++++-- .../Utility/ClassNameExtractor.php | 66 ++++++ dev/tests/static/framework/bootstrap.php | 3 +- ...neratedClassNotInConstructorFinderTest.php | 61 ++++++ .../Magento/TestFramework/Utility/Bar.php | 15 ++ .../Utility/ClassNameExtractorTest.php | 147 +++++++++++++ .../Magento/TestFramework/Utility/Foo.php | 90 ++++++++ .../Utility/PartialNamespace/Bar.php | 15 ++ .../_files/class_implements_interface.txt | 10 + .../Utility/_files/class_with_comment.txt | 13 ++ .../Utility/_files/class_with_namespace.txt | 10 + .../_files/class_without_namespace.txt | 9 + .../Utility/_files/extra_whitespaces.txt | 9 + .../implements_keyword_on_different_line.txt | 10 + .../Utility/_files/missing_class_keyword.txt | 10 + .../Integrity/_files/blacklist/reference.txt | 3 + ...AutogeneratedClassNotInConstructorTest.php | 114 ++++++++++ ...ted_class_not_in_constructor_whitelist.php | 18 ++ .../App/Test/Unit/Utility/FilesTest.php | 19 +- .../Magento/Framework/App/Utility/Files.php | 206 +++++++++++------- .../App/Utility/RegexIteratorFactory.php | 26 +++ 44 files changed, 1462 insertions(+), 631 deletions(-) create mode 100644 dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php create mode 100644 dev/tests/static/framework/Magento/TestFramework/Utility/ClassNameExtractor.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinderTest.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Bar.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/ClassNameExtractorTest.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Foo.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/PartialNamespace/Bar.php create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/class_implements_interface.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/class_with_comment.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/class_with_namespace.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/class_without_namespace.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/extra_whitespaces.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/implements_keyword_on_different_line.txt create mode 100644 dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/_files/missing_class_keyword.txt create mode 100644 dev/tests/static/testsuite/Magento/Test/Legacy/AutogeneratedClassNotInConstructorTest.php create mode 100644 dev/tests/static/testsuite/Magento/Test/Legacy/_files/autogenerated_class_not_in_constructor_whitelist.php create mode 100644 lib/internal/Magento/Framework/App/Utility/RegexIteratorFactory.php diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php index 70d30b9f17e32..53280624ac5ce 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php @@ -82,15 +82,22 @@ class AddAttributeToTemplate extends \Magento\Catalog\Controller\Adminhtml\Produ * @param \Magento\Backend\App\Action\Context $context * @param Builder $productBuilder * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory + * @param AttributeGroupInterfaceFactory|null $attributeGroupFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Catalog\Controller\Adminhtml\Product\Builder $productBuilder, - \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory + \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, + \Magento\Eav\Api\Data\AttributeGroupInterfaceFactory $attributeGroupFactory = null ) { parent::__construct($context, $productBuilder); $this->resultJsonFactory = $resultJsonFactory; + if (null === $attributeGroupFactory) { + $attributeGroupFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Eav\Api\Data\AttributeGroupInterfaceFactory::class); + } + $this->attributeGroupFactory = $attributeGroupFactory; } /** @@ -132,7 +139,7 @@ public function execute() $attributeGroup = reset($attributeGroupItems); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { /** @var AttributeGroupInterface $attributeGroup */ - $attributeGroup = $this->getAttributeGroupFactory()->create(); + $attributeGroup = $this->attributeGroupFactory->create(); } $extensionAttributes = $attributeGroup->getExtensionAttributes() @@ -228,18 +235,6 @@ private function getAttributeGroupRepository() return $this->attributeGroupRepository; } - /** - * @return AttributeGroupInterfaceFactory - */ - private function getAttributeGroupFactory() - { - if (null === $this->attributeGroupFactory) { - $this->attributeGroupFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Eav\Api\Data\AttributeGroupInterfaceFactory'); - } - return $this->attributeGroupFactory; - } - /** * @return SearchCriteriaBuilder */ diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php index 05fe939252184..23132e99d273a 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php @@ -45,17 +45,24 @@ class Builder * @param Logger $logger * @param Registry $registry * @param WysiwygModel\Config $wysiwygConfig + * @param StoreFactory|null $storeFactory */ public function __construct( ProductFactory $productFactory, Logger $logger, Registry $registry, - WysiwygModel\Config $wysiwygConfig + WysiwygModel\Config $wysiwygConfig, + StoreFactory $storeFactory = null ) { $this->productFactory = $productFactory; $this->logger = $logger; $this->registry = $registry; $this->wysiwygConfig = $wysiwygConfig; + if (null === $storeFactory) { + $storeFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(StoreFactory::class); + } + $this->storeFactory = $storeFactory; } /** @@ -70,7 +77,7 @@ public function build(RequestInterface $request) /** @var $product \Magento\Catalog\Model\Product */ $product = $this->productFactory->create(); $product->setStoreId($request->getParam('store', 0)); - $store = $this->getStoreFactory()->create(); + $store = $this->storeFactory->create(); $store->load($request->getParam('store', 0)); $typeId = $request->getParam('type'); @@ -99,16 +106,4 @@ public function build(RequestInterface $request) $this->wysiwygConfig->setStoreId($request->getParam('store')); return $product; } - - /** - * @return StoreFactory - */ - private function getStoreFactory() - { - if (null === $this->storeFactory) { - $this->storeFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Store\Model\StoreFactory'); - } - return $this->storeFactory; - } } diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php index e6c83b9853cb3..2240a2469b71a 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php @@ -5,12 +5,18 @@ */ namespace Magento\Catalog\Controller\Adminhtml\Product\Initialization; +use Magento\Backend\Helper\Js; use Magento\Catalog\Api\Data\ProductCustomOptionInterfaceFactory as CustomOptionFactory; use Magento\Catalog\Api\Data\ProductLinkInterfaceFactory as ProductLinkFactory; use Magento\Catalog\Api\ProductRepositoryInterface\Proxy as ProductRepository; use Magento\Catalog\Model\Product\Initialization\Helper\ProductLinks; use Magento\Catalog\Model\Product\Link\Resolver as LinkResolver; +use Magento\Catalog\Model\Product\LinkTypeProvider; use Magento\Framework\App\ObjectManager; +use Magento\Framework\App\RequestInterface; +use Magento\Framework\Stdlib\DateTime\Filter\Date as DateFilter; +use Magento\Framework\Stdlib\DateTime\Filter\DateTime; +use Magento\Store\Model\StoreManagerInterface; /** * Class Helper @@ -19,12 +25,12 @@ class Helper { /** - * @var \Magento\Framework\App\RequestInterface + * @var RequestInterface */ protected $request; /** - * @var \Magento\Store\Model\StoreManagerInterface + * @var StoreManagerInterface */ protected $storeManager; @@ -34,12 +40,12 @@ class Helper protected $stockFilter; /** - * @var \Magento\Backend\Helper\Js + * @var Js */ protected $jsHelper; /** - * @var \Magento\Framework\Stdlib\DateTime\Filter\Date + * @var Date * * @deprecated */ @@ -71,42 +77,69 @@ class Helper private $linkResolver; /** - * @var \Magento\Framework\Stdlib\DateTime\Filter\DateTime + * @var DateTime */ private $dateTimeFilter; /** - * @var \Magento\Catalog\Model\Product\LinkTypeProvider + * @var LinkTypeProvider */ private $linkTypeProvider; /** * Helper constructor. - * @param \Magento\Framework\App\RequestInterface $request - * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param RequestInterface $request + * @param StoreManagerInterface $storeManager * @param StockDataFilter $stockFilter * @param ProductLinks $productLinks - * @param \Magento\Backend\Helper\Js $jsHelper - * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter - * @param \Magento\Catalog\Model\Product\LinkTypeProvider $linkTypeProvider + * @param Js $jsHelper + * @param DateFilter $dateFilter + * @param LinkTypeProvider $linkTypeProvider + * @param CustomOptionFactory $customOptionFactory + * @param ProductLinkFactory $productLinkFactory + * @param ProductRepository $productRepository + * @param CustomOptionFactory $customOptionFactory + * @param DateTime $dateTimeFilter */ public function __construct( - \Magento\Framework\App\RequestInterface $request, - \Magento\Store\Model\StoreManagerInterface $storeManager, + RequestInterface $request, + StoreManagerInterface $storeManager, StockDataFilter $stockFilter, - \Magento\Catalog\Model\Product\Initialization\Helper\ProductLinks $productLinks, - \Magento\Backend\Helper\Js $jsHelper, - \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, - \Magento\Catalog\Model\Product\LinkTypeProvider $linkTypeProvider = null + ProductLinks $productLinks, + Js $jsHelper, + DateFilter $dateFilter, + LinkTypeProvider $linkTypeProvider = null, + CustomOptionFactory $customOptionFactory, + ProductLinkFactory $productLinkFactory, + ProductRepository $productRepository, + DateTime $dateTimeFilter ) { + if (null === $linkTypeProvider) { + $linkTypeProvider = ObjectManager::getInstance()->get(LinkTypeProvider::class); + } + if (null === $customOptionFactory) { + $customOptionFactory = ObjectManager::getInstance()->get(CustomOptionFactory::class); + } + if (null === $productLinkFactory) { + $productLinkFactory = ObjectManager::getInstance()->get(ProductLinkFactory::class); + } + if (null === $productRepository) { + $productRepository = ObjectManager::getInstance()->get(ProductRepository::class); + } + if (null === $dateTimeFilter) { + $dateTimeFilter = ObjectManager::getInstance()->get(DateTime::class); + } $this->request = $request; $this->storeManager = $storeManager; $this->stockFilter = $stockFilter; $this->productLinks = $productLinks; $this->jsHelper = $jsHelper; $this->dateFilter = $dateFilter; - $this->linkTypeProvider = $linkTypeProvider ?: \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Model\Product\LinkTypeProvider::class); + $this->linkTypeProvider = $linkTypeProvider; + $this->customOptionFactory = $customOptionFactory; + $this->productLinkFactory = $productLinkFactory; + $this->productRepository = $productRepository; + $this->dateTimeFilter = $dateTimeFilter; } /** @@ -158,7 +191,7 @@ public function initializeFromData(\Magento\Catalog\Model\Product $product, arra foreach ($attributes as $attrKey => $attribute) { if ($attribute->getBackend()->getType() == 'datetime') { if (array_key_exists($attrKey, $productData) && $productData[$attrKey] != '') { - $dateFieldFilters[$attrKey] = $this->getDateTimeFilter(); + $dateFieldFilters[$attrKey] = $this->dateTimeFilter; } } } @@ -250,11 +283,12 @@ public function initialize(\Magento\Catalog\Model\Product $product) * * @param \Magento\Catalog\Model\Product $product * @return \Magento\Catalog\Model\Product + * @throws \Magento\Framework\Exception\NoSuchEntityException * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ protected function setProductLinks(\Magento\Catalog\Model\Product $product) { - $links = $this->getLinkResolver()->getLinks(); + $links = $this->linkResolver->getLinks(); $product->setProductLinks([]); @@ -279,8 +313,8 @@ protected function setProductLinks(\Magento\Catalog\Model\Product $product) continue; } - $linkProduct = $this->getProductRepository()->getById($linkData['id']); - $link = $this->getProductLinkFactory()->create(); + $linkProduct = $this->productRepository->getById($linkData['id']); + $link = $this->productLinkFactory->create(); $link->setSku($product->getSku()) ->setLinkedProductSku($linkProduct->getSku()) ->setLinkType($linkType) @@ -387,71 +421,4 @@ private function overwriteValue($optionId, $option, $overwriteOptions) return $option; } - - /** - * @return CustomOptionFactory - */ - private function getCustomOptionFactory() - { - if (null === $this->customOptionFactory) { - $this->customOptionFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Api\Data\ProductCustomOptionInterfaceFactory::class); - } - - return $this->customOptionFactory; - } - - /** - * @return ProductLinkFactory - */ - private function getProductLinkFactory() - { - if (null === $this->productLinkFactory) { - $this->productLinkFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Api\Data\ProductLinkInterfaceFactory::class); - } - - return $this->productLinkFactory; - } - - /** - * @return ProductRepository - */ - private function getProductRepository() - { - if (null === $this->productRepository) { - $this->productRepository = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Api\ProductRepositoryInterface\Proxy::class); - } - - return $this->productRepository; - } - - /** - * @deprecated - * @return LinkResolver - */ - private function getLinkResolver() - { - if (!is_object($this->linkResolver)) { - $this->linkResolver = ObjectManager::getInstance()->get(LinkResolver::class); - } - - return $this->linkResolver; - } - - /** - * @return \Magento\Framework\Stdlib\DateTime\Filter\DateTime - * - * @deprecated - */ - private function getDateTimeFilter() - { - if ($this->dateTimeFilter === null) { - $this->dateTimeFilter = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Framework\Stdlib\DateTime\Filter\DateTime::class); - } - - return $this->dateTimeFilter; - } } diff --git a/app/code/Magento/Catalog/Model/Product/Option/Repository.php b/app/code/Magento/Catalog/Model/Product/Option/Repository.php index abdb97bdb18e8..a4a1537c5741a 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Repository.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Repository.php @@ -7,10 +7,10 @@ namespace Magento\Catalog\Model\Product\Option; use Magento\Catalog\Api\Data\ProductInterface; +use Magento\Framework\EntityManager\HydratorPool; +use Magento\Framework\EntityManager\MetadataPool; use Magento\Framework\Exception\CouldNotSaveException; use Magento\Framework\Exception\NoSuchEntityException; -use Magento\Framework\EntityManager\MetadataPool; -use Magento\Framework\EntityManager\HydratorPool; /** * Class Repository @@ -62,11 +62,23 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn public function __construct( \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Catalog\Model\ResourceModel\Product\Option $optionResource, - \Magento\Catalog\Model\Product\Option\Converter $converter + \Magento\Catalog\Model\Product\Option\Converter $converter, + \Magento\Catalog\Model\Product\OptionFactory $optionFactory, + \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory $collectionFactory ) { $this->productRepository = $productRepository; $this->optionResource = $optionResource; $this->converter = $converter; + if (null === $optionFactory) { + $optionFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\Model\Product\OptionFactory::class); + } + $this->optionFactory = $optionFactory; + if (null === $collectionFactory) { + $collectionFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory::class); + } + $this->collectionFactory = $collectionFactory; } /** @@ -83,7 +95,7 @@ public function getList($sku) */ public function getProductOptions(ProductInterface $product, $requiredOnly = false) { - return $this->getCollectionFactory()->create()->getProductOptions( + return $this->collectionFactory->create()->getProductOptions( $product->getEntityId(), $product->getStoreId(), $requiredOnly @@ -122,7 +134,7 @@ public function duplicate( $hydrator = $this->getHydratorPool()->getHydrator(ProductInterface::class); $metadata = $this->getMetadataPool()->getMetadata(ProductInterface::class); return $this->optionResource->duplicate( - $this->getOptionFactory()->create([]), + $this->optionFactory->create([]), $hydrator->extract($product)[$metadata->getLinkField()], $hydrator->extract($duplicate)[$metadata->getLinkField()] ); @@ -228,32 +240,6 @@ protected function markRemovedValues($newValues, $originalValues) return $newValues; } - /** - * @return \Magento\Catalog\Model\Product\OptionFactory - * @deprecated - */ - private function getOptionFactory() - { - if (null === $this->optionFactory) { - $this->optionFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Model\Product\OptionFactory::class); - } - return $this->optionFactory; - } - - /** - * @return \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory - * @deprecated - */ - private function getCollectionFactory() - { - if (null === $this->collectionFactory) { - $this->collectionFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory::class); - } - return $this->collectionFactory; - } - /** * @return \Magento\Framework\EntityManager\MetadataPool * @deprecated diff --git a/app/code/Magento/Catalog/Model/ProductLink/Repository.php b/app/code/Magento/Catalog/Model/ProductLink/Repository.php index c9c324a25d1e2..b1e09183ecf07 100644 --- a/app/code/Magento/Catalog/Model/ProductLink/Repository.php +++ b/app/code/Magento/Catalog/Model/ProductLink/Repository.php @@ -91,13 +91,25 @@ public function __construct( \Magento\Catalog\Model\ProductLink\CollectionProvider $entityCollectionProvider, \Magento\Catalog\Model\Product\Initialization\Helper\ProductLinks $linkInitializer, \Magento\Catalog\Model\ProductLink\Management $linkManagement, - \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, + \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory $productLinkFactory, + \Magento\Catalog\Api\Data\ProductLinkExtensionFactory $productLinkExtensionFactory ) { $this->productRepository = $productRepository; $this->entityCollectionProvider = $entityCollectionProvider; $this->linkInitializer = $linkInitializer; $this->linkManagement = $linkManagement; $this->dataObjectProcessor = $dataObjectProcessor; + if (null === $productLinkFactory) { + $productLinkFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\Api\Data\ProductLinkInterfaceFactory::class); + } + if (null === $productLinkExtensionFactory) { + $productLinkExtensionFactory = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\Api\Data\ProductLinkExtensionFactory::class); + } + $this->productLinkFactory = $productLinkFactory; + $this->productLinkExtensionFactory = $productLinkExtensionFactory; } /** @@ -149,7 +161,7 @@ public function getList(\Magento\Catalog\Api\Data\ProductInterface $product) $collection = $this->entityCollectionProvider->getCollection($product, $linkTypeName); foreach ($collection as $item) { /** @var \Magento\Catalog\Api\Data\ProductLinkInterface $productLink */ - $productLink = $this->getProductLinkFactory()->create(); + $productLink = $this->productLinkFactory->create(); $productLink->setSku($product->getSku()) ->setLinkType($linkTypeName) ->setLinkedProductSku($item['sku']) @@ -158,7 +170,7 @@ public function getList(\Magento\Catalog\Api\Data\ProductInterface $product) if (isset($item['custom_attributes'])) { $productLinkExtension = $productLink->getExtensionAttributes(); if ($productLinkExtension === null) { - $productLinkExtension = $this->getProductLinkExtensionFactory()->create(); + $productLinkExtension = $this->productLinkExtensionFactory->create(); } foreach ($item['custom_attributes'] as $option) { $name = $option['attribute_code']; @@ -258,30 +270,6 @@ private function getLinkTypeProvider() return $this->linkTypeProvider; } - /** - * @return ProductLinkInterfaceFactory - */ - private function getProductLinkFactory() - { - if (null === $this->productLinkFactory) { - $this->productLinkFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Catalog\Api\Data\ProductLinkInterfaceFactory'); - } - return $this->productLinkFactory; - } - - /** - * @return ProductLinkExtensionFactory - */ - private function getProductLinkExtensionFactory() - { - if (null === $this->productLinkExtensionFactory) { - $this->productLinkExtensionFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Catalog\Api\Data\ProductLinkExtensionFactory'); - } - return $this->productLinkExtensionFactory; - } - /** * @return \Magento\Framework\EntityManager\MetadataPool */ diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php index fd4333abd5f78..09c77355cde35 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php @@ -97,6 +97,7 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource * @param \Magento\Catalog\Model\Config $catalogConfig * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param string $connectionName + * @param CategoryFlatCollectionFactory $categoryFlatCollectionFactory */ public function __construct( \Magento\Framework\Model\ResourceModel\Db\Context $context, @@ -106,7 +107,8 @@ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Config $catalogConfig, \Magento\Framework\Event\ManagerInterface $eventManager, - $connectionName = null + $connectionName = null, + CategoryFlatCollectionFactory $categoryFlatCollectionFactory = null ) { $this->_categoryFactory = $categoryFactory; $this->_categoryCollectionFactory = $categoryCollectionFactory; @@ -114,6 +116,11 @@ public function __construct( $this->_catalogConfig = $catalogConfig; $this->_eventManager = $eventManager; parent::__construct($context, $tableStrategy, $connectionName); + if (null === $categoryFlatCollectionFactory) { + $categoryFlatCollectionFactory = ObjectManager::getInstance() + ->get(CategoryFlatCollectionFactory::class); + } + $this->categoryFlatCollectionFactory = $categoryFlatCollectionFactory; } /** @@ -169,9 +176,7 @@ public function getMainTable() */ public function getMainStoreTable($storeId = \Magento\Store\Model\Store::DEFAULT_STORE_ID) { - if (is_string($storeId)) { - $storeId = intval($storeId); - } + $storeId = (int)$storeId; if ($storeId) { $suffix = sprintf('store_%d', $storeId); @@ -407,7 +412,7 @@ public function getCategories($parent, $recursionLevel = 0, $sorted = false, $as ); $parentPath = $this->getConnection()->fetchOne($select); - $collection = $this->getCategoryFlatCollectionFactory() + $collection = $this->categoryFlatCollectionFactory ->create() ->addNameToResult() ->addUrlRewriteToResult() diff --git a/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php b/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php index 64ba21cdc95e7..8edeb5e5fd8ac 100644 --- a/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php +++ b/app/code/Magento/CatalogInventory/Model/Stock/StockItemRepository.php @@ -6,6 +6,7 @@ namespace Magento\CatalogInventory\Model\Stock; use Magento\Catalog\Model\ProductFactory; +use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory; use Magento\CatalogInventory\Api\Data\StockItemCollectionInterfaceFactory; use Magento\CatalogInventory\Api\Data\StockItemInterface; use Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory; @@ -90,7 +91,7 @@ class StockItemRepository implements StockItemRepositoryInterface */ protected $stockRegistryStorage; - /** @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory */ + /** @var ProductCollectionFactory */ protected $productCollectionFactory; /** @@ -105,7 +106,10 @@ class StockItemRepository implements StockItemRepositoryInterface * @param TimezoneInterface $localeDate * @param Processor $indexProcessor * @param DateTime $dateTime + * @param ProductCollectionFactory|null $productCollectionFactory + * @param StockRegistryStorage|null $stockRegistryStorage * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @throws \RuntimeException */ public function __construct( StockConfigurationInterface $stockConfiguration, @@ -118,7 +122,9 @@ public function __construct( MapperFactory $mapperFactory, TimezoneInterface $localeDate, Processor $indexProcessor, - DateTime $dateTime + DateTime $dateTime, + ProductCollectionFactory $productCollectionFactory = null, + StockRegistryStorage $stockRegistryStorage = null ) { $this->stockConfiguration = $stockConfiguration; $this->stockStateProvider = $stockStateProvider; @@ -131,31 +137,25 @@ public function __construct( $this->localeDate = $localeDate; $this->indexProcessor = $indexProcessor; $this->dateTime = $dateTime; - } - - /** - * @deprecated - * @return \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory - */ - private function getProductCollectionFactory() - { - if ($this->productCollectionFactory === null) { - $this->productCollectionFactory = ObjectManager::getInstance()->get( - \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory::class - ); + if (null === $productCollectionFactory) { + $productCollectionFactory = ObjectManager::getInstance()->get(ProductCollectionFactory::class); } - - return $this->productCollectionFactory; + $this->productCollectionFactory = $productCollectionFactory; + if (null === $stockRegistryStorage) { + $stockRegistryStorage = ObjectManager::getInstance()->get(StockRegistryStorage::class); + } + $this->stockRegistryStorage = $stockRegistryStorage; } /** * @inheritdoc + * @throws \Magento\Framework\Exception\CouldNotSaveException */ public function save(\Magento\CatalogInventory\Api\Data\StockItemInterface $stockItem) { try { /** @var \Magento\Catalog\Model\Product $product */ - $product = $this->getProductCollectionFactory()->create() + $product = $this->productCollectionFactory->create() ->setFlag('has_stock_status_filter') ->addIdFilter($stockItem->getProductId()) ->addFieldToSelect('type_id') @@ -190,8 +190,8 @@ public function save(\Magento\CatalogInventory\Api\Data\StockItemInterface $stoc $this->resource->save($stockItem); $this->indexProcessor->reindexRow($stockItem->getProductId()); - $this->getStockRegistryStorage()->removeStockItem($stockItem->getProductId()); - $this->getStockRegistryStorage()->removeStockStatus($stockItem->getProductId()); + $this->stockRegistryStorage->removeStockItem($stockItem->getProductId()); + $this->stockRegistryStorage->removeStockStatus($stockItem->getProductId()); } catch (\Exception $exception) { throw new CouldNotSaveException(__('Unable to save Stock Item'), $exception); } @@ -200,6 +200,7 @@ public function save(\Magento\CatalogInventory\Api\Data\StockItemInterface $stoc /** * @inheritdoc + * @throws \Magento\Framework\Exception\NoSuchEntityException */ public function get($stockItemId) { @@ -226,13 +227,14 @@ public function getList(\Magento\CatalogInventory\Api\StockItemCriteriaInterface /** * @inheritdoc + * @throws \Magento\Framework\Exception\CouldNotDeleteException */ public function delete(StockItemInterface $stockItem) { try { $this->resource->delete($stockItem); - $this->getStockRegistryStorage()->removeStockItem($stockItem->getProductId()); - $this->getStockRegistryStorage()->removeStockStatus($stockItem->getProductId()); + $this->stockRegistryStorage->removeStockItem($stockItem->getProductId()); + $this->stockRegistryStorage->removeStockStatus($stockItem->getProductId()); } catch (\Exception $exception) { throw new CouldNotDeleteException( __('Unable to remove Stock Item with id "%1"', $stockItem->getItemId()), @@ -244,6 +246,7 @@ public function delete(StockItemInterface $stockItem) /** * @inheritdoc + * @throws \Magento\Framework\Exception\CouldNotDeleteException */ public function deleteById($id) { @@ -258,16 +261,4 @@ public function deleteById($id) } return true; } - - /** - * @return StockRegistryStorage - */ - private function getStockRegistryStorage() - { - if (null === $this->stockRegistryStorage) { - $this->stockRegistryStorage = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\CatalogInventory\Model\StockRegistryStorage'); - } - return $this->stockRegistryStorage; - } } diff --git a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php index beb7084e95bbd..bb9e7f8e3abb3 100644 --- a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php +++ b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php @@ -98,7 +98,11 @@ class ShippingInformationManagement implements \Magento\Checkout\Api\ShippingInf * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector + * @param CartExtensionFactory|null $cartExtensionFactory + * @param ShippingAssignmentFactory|null $shippingAssignmentFactory + * @param ShippingFactory|null $shippingFactory * @codeCoverageIgnore + * @throws \RuntimeException */ public function __construct( \Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement, @@ -109,7 +113,10 @@ public function __construct( Logger $logger, \Magento\Customer\Api\AddressRepositoryInterface $addressRepository, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector + \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector, + CartExtensionFactory $cartExtensionFactory = null, + ShippingAssignmentFactory $shippingAssignmentFactory = null, + ShippingFactory $shippingFactory = null ) { $this->paymentMethodManagement = $paymentMethodManagement; $this->paymentDetailsFactory = $paymentDetailsFactory; @@ -120,6 +127,18 @@ public function __construct( $this->addressRepository = $addressRepository; $this->scopeConfig = $scopeConfig; $this->totalsCollector = $totalsCollector; + if (!$cartExtensionFactory) { + $cartExtensionFactory = ObjectManager::getInstance()->get(CartExtensionFactory::class); + } + $this->cartExtensionFactory = $cartExtensionFactory; + if (!$shippingAssignmentFactory) { + $shippingAssignmentFactory = ObjectManager::getInstance()->get(ShippingAssignmentFactory::class); + } + $this->shippingAssignmentFactory = $shippingAssignmentFactory; + if (!$shippingFactory) { + $shippingFactory = ObjectManager::getInstance()->get(ShippingFactory::class); + } + $this->shippingFactory = $shippingFactory; } /** @@ -200,19 +219,19 @@ private function prepareShippingAssignment(CartInterface $quote, AddressInterfac { $cartExtension = $quote->getExtensionAttributes(); if ($cartExtension === null) { - $cartExtension = $this->getCartExtensionFactory()->create(); + $cartExtension = $this->cartExtensionFactory->create(); } $shippingAssignments = $cartExtension->getShippingAssignments(); if (empty($shippingAssignments)) { - $shippingAssignment = $this->getShippingAssignmentFactory()->create(); + $shippingAssignment = $this->shippingAssignmentFactory->create(); } else { $shippingAssignment = $shippingAssignments[0]; } $shipping = $shippingAssignment->getShipping(); if ($shipping === null) { - $shipping = $this->getShippingFactory()->create(); + $shipping = $this->shippingFactory->create(); } $shipping->setAddress($address); @@ -221,37 +240,4 @@ private function prepareShippingAssignment(CartInterface $quote, AddressInterfac $cartExtension->setShippingAssignments([$shippingAssignment]); return $quote->setExtensionAttributes($cartExtension); } - - /** - * @return CartExtensionFactory - */ - private function getCartExtensionFactory() - { - if (!$this->cartExtensionFactory) { - $this->cartExtensionFactory = ObjectManager::getInstance()->get(CartExtensionFactory::class); - } - return $this->cartExtensionFactory; - } - - /** - * @return ShippingAssignmentFactory - */ - private function getShippingAssignmentFactory() - { - if (!$this->shippingAssignmentFactory) { - $this->shippingAssignmentFactory = ObjectManager::getInstance()->get(ShippingAssignmentFactory::class); - } - return $this->shippingAssignmentFactory; - } - - /** - * @return ShippingFactory - */ - private function getShippingFactory() - { - if (!$this->shippingFactory) { - $this->shippingFactory = ObjectManager::getInstance()->get(ShippingFactory::class); - } - return $this->shippingFactory; - } } diff --git a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php index c55a275c47299..fac78bce11f20 100644 --- a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php +++ b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php @@ -6,6 +6,8 @@ */ namespace Magento\ConfigurableProduct\Model; +use Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory; +use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\StateException; use Magento\Framework\Exception\NoSuchEntityException; @@ -38,7 +40,7 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI private $optionsFactory; /** - * @var \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory + * @var AttributeFactory */ private $attributeFactory; @@ -47,17 +49,24 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI * @param \Magento\Catalog\Api\Data\ProductInterfaceFactory $productFactory * @param \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $configurableType * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper + * @param AttributeFactory|null $attributeFactory + * @throws \RuntimeException */ public function __construct( \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Catalog\Api\Data\ProductInterfaceFactory $productFactory, \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $configurableType, - \Magento\Framework\Api\DataObjectHelper $dataObjectHelper + \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, + AttributeFactory $attributeFactory = null ) { $this->productRepository = $productRepository; $this->productFactory = $productFactory; $this->configurableType = $configurableType; $this->dataObjectHelper = $dataObjectHelper; + if (null !== $attributeFactory) { + $attributeFactory = ObjectManager::getInstance()->get(AttributeFactory::class); + } + $this->attributeFactory = $attributeFactory; } /** @@ -176,28 +185,12 @@ public function removeChild($sku, $childSku) private function getOptionsFactory() { if (!$this->optionsFactory) { - $this->optionsFactory = \Magento\Framework\App\ObjectManager::getInstance() + $this->optionsFactory = ObjectManager::getInstance() ->get(\Magento\ConfigurableProduct\Helper\Product\Options\Factory::class); } return $this->optionsFactory; } - /** - * Get Attribute Factory - * - * @return \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory - * - * @deprecated - */ - private function getAttributeFactory() - { - if (!$this->attributeFactory) { - $this->attributeFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get(\Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory::class); - } - return $this->attributeFactory; - } - /** * Get Configurable Attribute Data * @@ -208,7 +201,7 @@ private function getConfigurableAttributesData($attributeIds) { $configurableAttributesData = []; $attributeValues = []; - $attributes = $this->getAttributeFactory()->create() + $attributes = $this->attributeFactory->create() ->getCollection() ->addFieldToFilter('attribute_id', $attributeIds) ->getItems(); diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php index 412c9ef297761..8061e0a824ba0 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php @@ -5,10 +5,89 @@ */ namespace Magento\Customer\Controller\Adminhtml\Index; +use Magento\Customer\Api\AccountManagementInterface; +use Magento\Customer\Api\AddressRepositoryInterface; +use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Customer\Api\Data\AddressInterfaceFactory; +use Magento\Customer\Api\Data\CustomerInterfaceFactory; use Magento\Customer\Controller\RegistryConstants; +use Magento\Customer\Model\Address\Mapper; +use Magento\Framework\Api\DataObjectHelper; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\DataObjectFactory as ObjectFactory; +use Magento\Quote\Model\QuoteFactory; +use Magento\Quote\Api\CartRepositoryInterface; +use Magento\Store\Model\StoreManagerInterface; class Cart extends \Magento\Customer\Controller\Adminhtml\Index { + /** + * @var QuoteFactory + */ + private $quoteFactory; + + public function __construct( + \Magento\Backend\App\Action\Context $context, + \Magento\Framework\Registry $coreRegistry, + \Magento\Framework\App\Response\Http\FileFactory $fileFactory, + \Magento\Customer\Model\CustomerFactory $customerFactory, + \Magento\Customer\Model\AddressFactory $addressFactory, + \Magento\Customer\Model\Metadata\FormFactory $formFactory, + \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory, + \Magento\Customer\Helper\View $viewHelper, + \Magento\Framework\Math\Random $random, + CustomerRepositoryInterface $customerRepository, + \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter, + Mapper $addressMapper, + AccountManagementInterface $customerAccountManagement, + AddressRepositoryInterface $addressRepository, + CustomerInterfaceFactory $customerDataFactory, + AddressInterfaceFactory $addressDataFactory, + \Magento\Customer\Model\Customer\Mapper $customerMapper, + \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, + DataObjectHelper $dataObjectHelper, + ObjectFactory $objectFactory, + \Magento\Framework\View\LayoutFactory $layoutFactory, + \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory, + \Magento\Framework\View\Result\PageFactory $resultPageFactory, + \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory, + \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, + QuoteFactory $quoteFactory = null + ) { + parent::__construct( + $context, + $coreRegistry, + $fileFactory, + $customerFactory, + $addressFactory, + $formFactory, + $subscriberFactory, + $viewHelper, + $random, + $customerRepository, + $extensibleDataObjectConverter, + $addressMapper, + $customerAccountManagement, + $addressRepository, + $customerDataFactory, + $addressDataFactory, + $customerMapper, + $dataObjectProcessor, + $dataObjectHelper, + $objectFactory, + $layoutFactory, + $resultLayoutFactory, + $resultPageFactory, + $resultForwardFactory, + $resultJsonFactory + ); + if (null === $quoteFactory) { + $quoteFactory = ObjectManager::getInstance()->get(QuoteFactory::class); + } + $this->quoteFactory = $quoteFactory; + } + + /** * Handle and then get cart grid contents * @@ -23,15 +102,15 @@ public function execute() $deleteItemId = $this->getRequest()->getPost('delete'); if ($deleteItemId) { /** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ - $quoteRepository = $this->_objectManager->create('Magento\Quote\Api\CartRepositoryInterface'); + $quoteRepository = $this->_objectManager->create(CartRepositoryInterface::class); /** @var \Magento\Quote\Model\Quote $quote */ try { $quote = $quoteRepository->getForCustomer($customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $quote = $this->_objectManager->create('\Magento\Quote\Model\QuoteFactory')->create(); + $quote = $this->quoteFactory->create(); } $quote->setWebsite( - $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface')->getWebsite($websiteId) + $this->_objectManager->get(StoreManagerInterface::class)->getWebsite($websiteId) ); $item = $quote->getItemById($deleteItemId); if ($item && $item->getId()) { diff --git a/app/code/Magento/Customer/Model/Customer/DataProvider.php b/app/code/Magento/Customer/Model/Customer/DataProvider.php index a7ead2262dc06..6710dd5212f6d 100644 --- a/app/code/Magento/Customer/Model/Customer/DataProvider.php +++ b/app/code/Magento/Customer/Model/Customer/DataProvider.php @@ -7,25 +7,25 @@ use Magento\Customer\Api\AddressMetadataInterface; use Magento\Customer\Api\CustomerMetadataInterface; +use Magento\Customer\Api\Data\AddressInterface; +use Magento\Customer\Api\Data\CustomerInterface; +use Magento\Customer\Model\Address; use Magento\Customer\Model\Attribute; +use Magento\Customer\Model\Customer; use Magento\Customer\Model\FileProcessor; use Magento\Customer\Model\FileProcessorFactory; -use Magento\Customer\Api\Data\AddressInterface; -use Magento\Customer\Api\Data\CustomerInterface; use Magento\Customer\Model\ResourceModel\Address\Attribute\Source\CountryWithWebsites; +use Magento\Customer\Model\ResourceModel\Customer\Collection; +use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory as CustomerCollectionFactory; use Magento\Eav\Api\Data\AttributeInterface; use Magento\Eav\Model\Config; use Magento\Eav\Model\Entity\Attribute\AbstractAttribute; use Magento\Eav\Model\Entity\Type; -use Magento\Customer\Model\Address; -use Magento\Customer\Model\Customer; use Magento\Framework\App\ObjectManager; use Magento\Framework\Session\SessionManagerInterface; +use Magento\Framework\View\Element\UiComponent\DataProvider\FilterPool; use Magento\Ui\Component\Form\Field; use Magento\Ui\DataProvider\EavValidationRules; -use Magento\Customer\Model\ResourceModel\Customer\Collection; -use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory as CustomerCollectionFactory; -use Magento\Framework\View\Element\UiComponent\DataProvider\FilterPool; /** * Class DataProvider @@ -129,7 +129,7 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider 'rp_token', 'confirmation', ]; - + /** * @param string $name * @param string $primaryFieldName @@ -140,6 +140,8 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider * @param FilterPool $filterPool * @param array $meta * @param array $data + * @param FileProcessorFactory|null $fileProcessorFactory + * @throws \Magento\Framework\Exception\LocalizedException */ public function __construct( $name, @@ -150,7 +152,8 @@ public function __construct( Config $eavConfig, FilterPool $filterPool, array $meta = [], - array $data = [] + array $data = [], + FileProcessorFactory $fileProcessorFactory = null ) { parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data); $this->eavValidationRules = $eavValidationRules; @@ -164,6 +167,10 @@ public function __construct( $this->meta['address']['children'] = $this->getAttributesMeta( $this->eavConfig->getEntityType('customer_address') ); + if (null === $fileProcessorFactory) { + $fileProcessorFactory = ObjectManager::getInstance()->get(FileProcessorFactory::class); + } + $this->fileProcessorFactory = $fileProcessorFactory; } /** @@ -273,7 +280,7 @@ private function getFileUploaderData( : ''; /** @var FileProcessor $fileProcessor */ - $fileProcessor = $this->getFileProcessorFactory()->create([ + $fileProcessor = $this->fileProcessorFactory->create([ 'entityTypeCode' => $entityType->getEntityTypeCode(), ]); @@ -534,20 +541,4 @@ protected function prepareAddressData($addressId, array &$addresses, array $cust $addresses[$addressId]['street'] = explode("\n", $addresses[$addressId]['street']); } } - - /** - * Get FileProcessorFactory instance - * - * @return FileProcessorFactory - * - * @deprecated - */ - private function getFileProcessorFactory() - { - if ($this->fileProcessorFactory === null) { - $this->fileProcessorFactory = ObjectManager::getInstance() - ->get(\Magento\Customer\Model\FileProcessorFactory::class); - } - return $this->fileProcessorFactory; - } } diff --git a/app/code/Magento/Customer/Model/Metadata/Form/File.php b/app/code/Magento/Customer/Model/Metadata/Form/File.php index 8870fa6579e55..2b32b06fa0b3c 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/File.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/File.php @@ -73,6 +73,7 @@ class File extends AbstractData * @param Filesystem $fileSystem * @param UploaderFactory $uploaderFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @throws \RuntimeException */ public function __construct( \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, @@ -85,13 +86,18 @@ public function __construct( \Magento\Framework\Url\EncoderInterface $urlEncoder, \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $fileValidator, Filesystem $fileSystem, - UploaderFactory $uploaderFactory + UploaderFactory $uploaderFactory, + FileProcessorFactory $fileProcessorFactory = null ) { parent::__construct($localeDate, $logger, $attribute, $localeResolver, $value, $entityTypeCode, $isAjax); $this->urlEncoder = $urlEncoder; $this->_fileValidator = $fileValidator; $this->_fileSystem = $fileSystem; $this->uploaderFactory = $uploaderFactory; + if (null === $fileProcessorFactory) { + $fileProcessorFactory = ObjectManager::getInstance()->get(FileProcessorFactory::class); + } + $this->fileProcessorFactory = $fileProcessorFactory; } /** @@ -402,10 +408,6 @@ protected function getFileProcessor() */ protected function getFileProcessorFactory() { - if ($this->fileProcessorFactory === null) { - $this->fileProcessorFactory = ObjectManager::getInstance() - ->get('Magento\Customer\Model\FileProcessorFactory'); - } return $this->fileProcessorFactory; } } diff --git a/app/code/Magento/Customer/Model/Metadata/Form/Image.php b/app/code/Magento/Customer/Model/Metadata/Form/Image.php index a1cad8464e11b..12107c1c1af5e 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/Image.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/Image.php @@ -10,18 +10,73 @@ use Magento\Customer\Api\AddressMetadataInterface; use Magento\Customer\Api\CustomerMetadataInterface; use Magento\Customer\Model\FileProcessor; +use Magento\Customer\Model\FileProcessorFactory; use Magento\Framework\Api\ArrayObjectSearch; use Magento\Framework\Api\Data\ImageContentInterface; -use Magento\Framework\Api\Data\ImageContentInterfaceFactory; +use Magento\Framework\Api\Data\ImageContentInterfaceFactory as ImageContentFactory; use Magento\Framework\App\ObjectManager; +use Magento\Framework\File\UploaderFactory; +use Magento\Framework\Filesystem; class Image extends File { /** - * @var ImageContentInterfaceFactory + * @var ImageContentFactory */ private $imageContentFactory; + /** + * Image constructor. + * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate + * @param \Psr\Log\LoggerInterface $logger + * @param \Magento\Customer\Api\Data\AttributeMetadataInterface $attribute + * @param \Magento\Framework\Locale\ResolverInterface $localeResolver + * @param null $value + * @param string $entityTypeCode + * @param bool $isAjax + * @param \Magento\Framework\Url\EncoderInterface $urlEncoder + * @param \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $fileValidator + * @param Filesystem $fileSystem + * @param UploaderFactory $uploaderFactory + * @param FileProcessorFactory|null $fileProcessorFactory + * @param ImageContentFactory|null $imageContentFactory + * @throws \RuntimeException + */ + public function __construct( + \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, + \Psr\Log\LoggerInterface $logger, + \Magento\Customer\Api\Data\AttributeMetadataInterface $attribute, + \Magento\Framework\Locale\ResolverInterface $localeResolver, + $value, + $entityTypeCode, + $isAjax, + \Magento\Framework\Url\EncoderInterface $urlEncoder, + \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $fileValidator, + Filesystem $fileSystem, + UploaderFactory $uploaderFactory, + FileProcessorFactory $fileProcessorFactory = null, + ImageContentFactory $imageContentFactory = null + ) { + parent::__construct( + $localeDate, + $logger, + $attribute, + $localeResolver, + $value, + $entityTypeCode, + $isAjax, + $urlEncoder, + $fileValidator, + $fileSystem, + $uploaderFactory, + $fileProcessorFactory + ); + if (null === $imageContentFactory) { + $imageContentFactory = ObjectManager::getInstance()->get(ImageContentFactory::class); + } + $this->imageContentFactory = $imageContentFactory; + } + /** * Validate file by attribute validate rules * Return array of errors @@ -138,7 +193,7 @@ protected function processCustomerValue(array $value) $base64EncodedData = $this->getFileProcessor()->getBase64EncodedData($temporaryFile); /** @var ImageContentInterface $imageContentDataObject */ - $imageContentDataObject = $this->getImageContentFactory()->create() + $imageContentDataObject = $this->imageContentFactory->create() ->setName($value['name']) ->setBase64EncodedData($base64EncodedData) ->setType($value['type']); @@ -151,20 +206,4 @@ protected function processCustomerValue(array $value) return $this->_value; } - - /** - * Get ImageContentInterfaceFactory instance - * - * @return ImageContentInterfaceFactory - * - * @deprecated - */ - private function getImageContentFactory() - { - if ($this->imageContentFactory === null) { - $this->imageContentFactory = ObjectManager::getInstance() - ->get('Magento\Framework\Api\Data\ImageContentInterfaceFactory'); - } - return $this->imageContentFactory; - } } diff --git a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php index 9aa3887a23656..bc52e7a997b57 100644 --- a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php +++ b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php @@ -6,6 +6,9 @@ namespace Magento\Directory\Model\Currency\Import; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\HTTP\ZendClientFactory; + /** * Currency rate import model (From www.webservicex.net) */ @@ -21,7 +24,7 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor /** * Http Client Factory * - * @var \Magento\Framework\HTTP\ZendClientFactory + * @var ZendClientFactory */ protected $httpClientFactory; @@ -31,17 +34,24 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor * @var \Magento\Framework\App\Config\ScopeConfigInterface */ private $scopeConfig; + /** + * @var ZendClientFactory|null + */ + private $zendClientFactory; /** * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig + * @param ZendClientFactory|null $zendClientFactory */ public function __construct( \Magento\Directory\Model\CurrencyFactory $currencyFactory, - \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig + \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, + ZendClientFactory $zendClientFactory = null ) { parent::__construct($currencyFactory); $this->scopeConfig = $scopeConfig; + $this->zendClientFactory = $zendClientFactory ?: ObjectManager::getInstance()->get(ZendClientFactory::class); } /** @@ -55,7 +65,7 @@ protected function _convert($currencyFrom, $currencyTo, $retry = 0) $url = str_replace('{{CURRENCY_FROM}}', $currencyFrom, self::CURRENCY_CONVERTER_URL); $url = str_replace('{{CURRENCY_TO}}', $currencyTo, $url); /** @var \Magento\Framework\HTTP\ZendClient $httpClient */ - $httpClient = $this->getHttpClientFactory()->create(); + $httpClient = $this->zendClientFactory->create(); try { $response = $httpClient->setUri( @@ -85,20 +95,4 @@ protected function _convert($currencyFrom, $currencyTo, $retry = 0) } } } - - /** - * Get HttpClientFactory dependency - * - * @return \Magento\Framework\HTTP\ZendClientFactory - * - * @deprecated - */ - private function getHttpClientFactory() - { - if ($this->httpClientFactory === null) { - $this->httpClientFactory = \Magento\Framework\App\ObjectManager::getInstance() - ->get('Magento\Framework\HTTP\ZendClientFactory'); - } - return $this->httpClientFactory; - } } diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php index 50a7a33098d6d..952cf8d273d1c 100644 --- a/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php +++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php @@ -5,8 +5,10 @@ */ namespace Magento\Downloadable\Controller\Adminhtml\Product\Initialization\Helper\Plugin; -use Magento\Downloadable\Api\Data\SampleInterfaceFactory as SampleFactory; use Magento\Downloadable\Api\Data\LinkInterfaceFactory as LinkFactory; +use Magento\Downloadable\Api\Data\SampleInterfaceFactory as SampleFactory; +use Magento\Downloadable\Model\Link\Builder as LinkBuilder; +use Magento\Downloadable\Model\Sample\Builder as SampleBuilder; use Magento\Framework\App\ObjectManager; use Magento\Framework\App\RequestInterface; @@ -31,22 +33,34 @@ class Downloadable private $linkFactory; /** - * @var \Magento\Downloadable\Model\Sample\Builder + * @var SampleBuilder */ private $sampleBuilder; /** - * @var \Magento\Downloadable\Model\Link\Builder + * @var LinkBuilder */ private $linkBuilder; /** * @param RequestInterface $request + * @param SampleFactory $sampleFactory + * @param SampleBuilder|null $sampleBuilder + * @param LinkFactory $linkFactory + * @param LinkBuilder|null $linkBuilder */ public function __construct( - RequestInterface $request + RequestInterface $request, + SampleFactory $sampleFactory = null, + SampleBuilder $sampleBuilder = null, + LinkFactory $linkFactory = null, + LinkBuilder $linkBuilder = null ) { $this->request = $request; + $this->sampleFactory = $sampleFactory ?: ObjectManager::getInstance()->get(SampleFactory::class); + $this->sampleBuilder = $sampleBuilder ?: ObjectManager::getInstance()->get(SampleBuilder::class); + $this->linkFactory = $linkFactory ?: ObjectManager::getInstance()->get(LinkFactory::class); + $this->linkBuilder = $linkBuilder ?: ObjectManager::getInstance()->get(LinkBuilder::class); } /** @@ -56,6 +70,7 @@ public function __construct( * @param \Magento\Catalog\Model\Product $product * * @return \Magento\Catalog\Model\Product + * @throws \Magento\Framework\Exception\LocalizedException * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) @@ -73,11 +88,9 @@ public function afterInitialize( if (!$linkData || (isset($linkData['is_delete']) && $linkData['is_delete'])) { continue; } else { - $links[] = $this->getLinkBuilder()->setData( - $linkData - )->build( - $this->getLinkFactory()->create() - ); + $links[] = $this->linkBuilder + ->setData($linkData) + ->build($this->linkFactory->create()); } } $extension->setDownloadableProductLinks($links); @@ -88,11 +101,9 @@ public function afterInitialize( if (!$sampleData || (isset($sampleData['is_delete']) && (bool)$sampleData['is_delete'])) { continue; } else { - $samples[] = $this->getSampleBuilder()->setData( - $sampleData - )->build( - $this->getSampleFactory()->create() - ); + $samples[] = $this->sampleBuilder + ->setData($sampleData) + ->build($this->sampleFactory->create()); } } $extension->setDownloadableProductSamples($samples); @@ -106,66 +117,4 @@ public function afterInitialize( } return $product; } - - /** - * Get LinkBuilder instance - * - * @deprecated - * @return \Magento\Downloadable\Model\Link\Builder - */ - private function getLinkBuilder() - { - if (!$this->linkBuilder) { - $this->linkBuilder = ObjectManager::getInstance()->get(\Magento\Downloadable\Model\Link\Builder::class); - } - - return $this->linkBuilder; - } - - /** - * Get SampleBuilder instance - * - * @deprecated - * @return \Magento\Downloadable\Model\Sample\Builder - */ - private function getSampleBuilder() - { - if (!$this->sampleBuilder) { - $this->sampleBuilder = ObjectManager::getInstance()->get( - \Magento\Downloadable\Model\Sample\Builder::class - ); - } - - return $this->sampleBuilder; - } - - /** - * Get LinkFactory instance - * - * @deprecated - * @return LinkFactory - */ - private function getLinkFactory() - { - if (!$this->linkFactory) { - $this->linkFactory = ObjectManager::getInstance()->get(LinkFactory::class); - } - - return $this->linkFactory; - } - - /** - * Get Sample Factory - * - * @deprecated - * @return SampleFactory - */ - private function getSampleFactory() - { - if (!$this->sampleFactory) { - $this->sampleFactory = ObjectManager::getInstance()->get(SampleFactory::class); - } - - return $this->sampleFactory; - } } diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php index 53cd9eb7fd4d2..a627631e99577 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php @@ -6,12 +6,13 @@ namespace Magento\Indexer\Console\Command; use Magento\Backend\App\Area\FrontNameResolver; -use Magento\Framework\App\ObjectManager; -use Magento\Framework\App\ObjectManager\ConfigLoader; +use Magento\Framework\App\ObjectManagerFactory; +use Magento\Framework\Indexer\IndexerInterface; use Magento\Framework\ObjectManagerInterface; +use Magento\Indexer\Model\Indexer\CollectionFactory as IndexerCollectionFactory; use Symfony\Component\Console\Command\Command; -use Magento\Indexer\Model\IndexerInterface; -use Magento\Framework\App\ObjectManagerFactory; +use Magento\Framework\App\State; +use Magento\Framework\ObjectManager\ConfigLoaderInterface; /** * An Abstract class for Indexer related commands. @@ -27,15 +28,23 @@ abstract class AbstractIndexerCommand extends Command * @var ObjectManagerInterface */ private $objectManager; + /** + * @var IndexerCollectionFactory|null + */ + private $collectionFactory; /** - * Constructor * @param ObjectManagerFactory $objectManagerFactory + * @param IndexerCollectionFactory|null $collectionFactory + * @throws \LogicException */ - public function __construct(ObjectManagerFactory $objectManagerFactory) - { + public function __construct( + ObjectManagerFactory $objectManagerFactory, + IndexerCollectionFactory $collectionFactory = null + ) { $this->objectManagerFactory = $objectManagerFactory; parent::__construct(); + $this->collectionFactory = $collectionFactory; } /** @@ -45,8 +54,10 @@ public function __construct(ObjectManagerFactory $objectManagerFactory) */ protected function getAllIndexers() { - $collectionFactory = $this->getObjectManager()->create('Magento\Indexer\Model\Indexer\CollectionFactory'); - return $collectionFactory->create()->getItems(); + if (null === $this->collectionFactory) { + $this->collectionFactory = $this->getObjectManager()->create(IndexerCollectionFactory::class); + } + return $this->collectionFactory->create()->getItems(); } /** @@ -56,13 +67,13 @@ protected function getAllIndexers() */ protected function getObjectManager() { - if (null == $this->objectManager) { + if (null === $this->objectManager) { $area = FrontNameResolver::AREA_CODE; $this->objectManager = $this->objectManagerFactory->create($_SERVER); /** @var \Magento\Framework\App\State $appState */ - $appState = $this->objectManager->get('Magento\Framework\App\State'); + $appState = $this->objectManager->get(State::class); $appState->setAreaCode($area); - $configLoader = $this->objectManager->get('Magento\Framework\ObjectManager\ConfigLoaderInterface'); + $configLoader = $this->objectManager->get(ConfigLoaderInterface::class); $this->objectManager->configure($configLoader->load($area)); } return $this->objectManager; diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php index a0295bdef43f6..57ffbc492d093 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php @@ -5,11 +5,11 @@ */ namespace Magento\Indexer\Console\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Input\InputArgument; +use Magento\Framework\App\ObjectManagerFactory; use Magento\Framework\Indexer\IndexerInterface; +use Magento\Indexer\Model\IndexerFactory; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; /** * An Abstract class for all Indexer related commands. @@ -20,6 +20,26 @@ abstract class AbstractIndexerManageCommand extends AbstractIndexerCommand * Indexer name option */ const INPUT_KEY_INDEXERS = 'index'; + /** + * @var IndexerFactory|null + */ + private $indexerFactory; + + /** + * AbstractIndexerManageCommand constructor. + * @param ObjectManagerFactory $objectManagerFactory + * @param null $collectionFactory + * @param IndexerFactory|null $indexerFactory + * @throws \LogicException + */ + public function __construct( + ObjectManagerFactory $objectManagerFactory, + $collectionFactory = null, + IndexerFactory $indexerFactory = null + ) { + parent::__construct($objectManagerFactory, $collectionFactory); + $this->indexerFactory = $indexerFactory; + } /** * Gets list of indexers @@ -38,7 +58,7 @@ protected function getIndexers(InputInterface $input) if (empty($requestedTypes)) { return $this->getAllIndexers(); } else { - $indexerFactory = $this->getObjectManager()->create('Magento\Indexer\Model\IndexerFactory'); + $indexerFactory = $this->getIndexerFactory(); $indexers = []; $unsupportedTypes = []; foreach ($requestedTypes as $code) { @@ -57,8 +77,8 @@ protected function getIndexers(InputInterface $input) $availableTypes[] = $indexer->getId(); } throw new \InvalidArgumentException( - "The following requested index types are not supported: '" . join("', '", $unsupportedTypes) - . "'." . PHP_EOL . 'Supported types: ' . join(", ", $availableTypes) + "The following requested index types are not supported: '" . implode("', '", $unsupportedTypes) + . "'." . PHP_EOL . 'Supported types: ' . implode(', ', $availableTypes) ); } } @@ -69,6 +89,7 @@ protected function getIndexers(InputInterface $input) * Get list of options and arguments for the command * * @return mixed + * @throws \InvalidArgumentException */ public function getInputList() { @@ -80,4 +101,17 @@ public function getInputList() ), ]; } + + /** + * @deprecated + * @return mixed + */ + private function getIndexerFactory() + { + if (null === $this->indexerFactory) { + $this->indexerFactory = $this->getObjectManager()->create(IndexerFactory::class); + } + + return $this->indexerFactory; + } } diff --git a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php index b83cc0c8cf2f5..f10b5a9910a32 100644 --- a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php +++ b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php @@ -10,6 +10,8 @@ use Magento\Customer\Api\AddressRepositoryInterface; use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Quote\Api\Data\CartExtensionFactory; +use Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor; use Magento\Sales\Model\Order\Email\Sender\OrderSender; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\App\ObjectManager; @@ -141,12 +143,12 @@ class Multishipping extends \Magento\Framework\DataObject protected $totalsCollector; /** - * @var \Magento\Quote\Api\Data\CartExtensionFactory + * @var CartExtensionFactory */ private $cartExtensionFactory; /** - * @var \Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor + * @var ShippingAssignmentProcessor */ private $shippingAssignmentProcessor; @@ -173,7 +175,10 @@ class Multishipping extends \Magento\Framework\DataObject * @param \Magento\Framework\Api\FilterBuilder $filterBuilder * @param \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector * @param array $data + * @param CartExtensionFactory|null $cartExtensionFactory + * @param ShippingAssignmentProcessor|null $shippingAssignmentProcessor * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @throws \RuntimeException */ public function __construct( \Magento\Checkout\Model\Session $checkoutSession, @@ -197,7 +202,9 @@ public function __construct( \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Api\FilterBuilder $filterBuilder, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector, - array $data = [] + array $data = [], + CartExtensionFactory $cartExtensionFactory = null, + ShippingAssignmentProcessor $shippingAssignmentProcessor = null ) { $this->_eventManager = $eventManager; $this->_scopeConfig = $scopeConfig; @@ -222,6 +229,14 @@ public function __construct( $this->totalsCollector = $totalsCollector; parent::__construct($data); $this->_init(); + if (!$cartExtensionFactory) { + $cartExtensionFactory = ObjectManager::getInstance()->get(CartExtensionFactory::class); + } + $this->cartExtensionFactory = $cartExtensionFactory; + if (!$shippingAssignmentProcessor) { + $shippingAssignmentProcessor = ObjectManager::getInstance()->get(ShippingAssignmentProcessor::class); + } + $this->shippingAssignmentProcessor = $shippingAssignmentProcessor; } /** @@ -979,10 +994,10 @@ private function prepareShippingAssignment($quote) { $cartExtension = $quote->getExtensionAttributes(); if ($cartExtension === null) { - $cartExtension = $this->getCartExtensionFactory()->create(); + $cartExtension = $this->cartExtensionFactory->create(); } /** @var \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment */ - $shippingAssignment = $this->getShippingAssignmentProcessor()->create($quote); + $shippingAssignment = $this->shippingAssignmentProcessor->create($quote); $shipping = $shippingAssignment->getShipping(); $shipping->setMethod(null); @@ -990,28 +1005,4 @@ private function prepareShippingAssignment($quote) $cartExtension->setShippingAssignments([$shippingAssignment]); return $quote->setExtensionAttributes($cartExtension); } - - /** - * @return \Magento\Quote\Api\Data\CartExtensionFactory - */ - private function getCartExtensionFactory() - { - if (!$this->cartExtensionFactory) { - $this->cartExtensionFactory = ObjectManager::getInstance() - ->get(\Magento\Quote\Api\Data\CartExtensionFactory::class); - } - return $this->cartExtensionFactory; - } - - /** - * @return \Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor - */ - private function getShippingAssignmentProcessor() - { - if (!$this->shippingAssignmentProcessor) { - $this->shippingAssignmentProcessor = ObjectManager::getInstance() - ->get(\Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor::class); - } - return $this->shippingAssignmentProcessor; - } } diff --git a/app/code/Magento/Quote/Model/QuoteManagement.php b/app/code/Magento/Quote/Model/QuoteManagement.php index bcc891a2dfa28..80fa01a22a448 100644 --- a/app/code/Magento/Quote/Model/QuoteManagement.php +++ b/app/code/Magento/Quote/Model/QuoteManagement.php @@ -150,13 +150,14 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param \Magento\Customer\Model\CustomerFactory $customerModelFactory - * @param \Magento\Quote\Model\Quote\AddressFactory $quoteAddressFactory, + * @param \Magento\Quote\Model\Quote\AddressFactory $quoteAddressFactory , * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper * @param StoreManagerInterface $storeManager * @param \Magento\Checkout\Model\Session $checkoutSession * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Customer\Api\AccountManagementInterface $accountManagement * @param QuoteFactory $quoteFactory + * @param QuoteIdMaskFactory|null $quoteIdMaskFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -179,7 +180,8 @@ public function __construct( \Magento\Checkout\Model\Session $checkoutSession, \Magento\Customer\Model\Session $customerSession, \Magento\Customer\Api\AccountManagementInterface $accountManagement, - \Magento\Quote\Model\QuoteFactory $quoteFactory + \Magento\Quote\Model\QuoteFactory $quoteFactory, + \Magento\Quote\Model\QuoteIdMaskFactory $quoteIdMaskFactory = null ) { $this->eventManager = $eventManager; $this->quoteValidator = $quoteValidator; @@ -201,6 +203,8 @@ public function __construct( $this->accountManagement = $accountManagement; $this->customerSession = $customerSession; $this->quoteFactory = $quoteFactory; + $this->quoteIdMaskFactory = $quoteIdMaskFactory ?: ObjectManager::getInstance() + ->get(\Magento\Quote\Model\QuoteIdMaskFactory::class); } /** @@ -268,9 +272,8 @@ public function assignCustomer($cartId, $customerId, $storeId) $quote->setCustomer($customer); $quote->setCustomerIsGuest(0); - $quoteIdMaskFactory = $this->getQuoteIdMaskFactory(); /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = $quoteIdMaskFactory->create()->load($cartId, 'quote_id'); + $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'quote_id'); if ($quoteIdMask->getId()) { $quoteIdMask->delete(); } @@ -559,17 +562,4 @@ protected function _prepareCustomerQuote($quote) $shipping->setIsDefaultBilling(true); } } - - /** - * @return \Magento\Quote\Model\QuoteIdMaskFactory - * @deprecated - */ - private function getQuoteIdMaskFactory() - { - if (!$this->quoteIdMaskFactory) { - $this->quoteIdMaskFactory = ObjectManager::getInstance() - ->get(\Magento\Quote\Model\QuoteIdMaskFactory::class); - } - return $this->quoteIdMaskFactory; - } } diff --git a/app/code/Magento/Quote/Model/QuoteRepository.php b/app/code/Magento/Quote/Model/QuoteRepository.php index ac0ca69417567..afe683ff418aa 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository.php +++ b/app/code/Magento/Quote/Model/QuoteRepository.php @@ -71,6 +71,8 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface */ private $loadHandler; + private $quoteCollectionFactory; + /** * @param QuoteFactory $quoteFactory * @param StoreManagerInterface $storeManager @@ -84,12 +86,15 @@ public function __construct( StoreManagerInterface $storeManager, \Magento\Quote\Model\ResourceModel\Quote\Collection $quoteCollection, \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory $searchResultsDataFactory, - JoinProcessorInterface $extensionAttributesJoinProcessor + JoinProcessorInterface $extensionAttributesJoinProcessor, + QuoteCollectionFactory $quoteCollectionFactory = null ) { $this->quoteFactory = $quoteFactory; $this->storeManager = $storeManager; $this->searchResultsDataFactory = $searchResultsDataFactory; $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor; + $this->quoteCollectionFactory = $quoteCollectionFactory + ?: ObjectManager::getInstance()->get(QuoteCollectionFactory::class); } /** @@ -201,16 +206,13 @@ protected function loadQuote($loadMethod, $loadField, $identifier, array $shared /** * Get quote collection - * Temporary method to support release backward compatibility. * * @deprecated * @return QuoteCollection */ protected function getQuoteCollection() { - /** @var \Magento\Quote\Model\ResourceModel\Quote\CollectionFactory $collectionFactory */ - $collectionFactory = ObjectManager::getInstance()->get(QuoteCollectionFactory::class); - return $collectionFactory->create(); + return $this->quoteCollectionFactory->create(); } /** diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php index 586971c143dc2..5d51d5c665001 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php @@ -6,6 +6,7 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; use Magento\Framework\App\ObjectManager; +use Magento\SalesRule\Model\RuleFactory; class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Ui\Component\Layout\Tabs\TabInterface @@ -48,6 +49,8 @@ class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements * @param \Magento\Rule\Block\Actions $ruleActions * @param \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset * @param array $data + * @param RuleFactory|null $ruleFactory + * @throws \RuntimeException */ public function __construct( \Magento\Backend\Block\Template\Context $context, @@ -56,27 +59,17 @@ public function __construct( \Magento\Config\Model\Config\Source\Yesno $sourceYesno, \Magento\Rule\Block\Actions $ruleActions, \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset, - array $data = [] + array $data = [], + RuleFactory $ruleFactory = null ) { $this->_rendererFieldset = $rendererFieldset; $this->_ruleActions = $ruleActions; $this->_sourceYesno = $sourceYesno; parent::__construct($context, $registry, $formFactory, $data); - } - - /** - * The getter function to get the new RuleFactory dependency - * - * @return \Magento\SalesRule\Model\RuleFactory - * - * @deprecated - */ - private function getRuleFactory() - { - if ($this->ruleFactory === null) { - $this->ruleFactory = ObjectManager::getInstance()->get('Magento\SalesRule\Model\RuleFactory'); + if ($ruleFactory === null) { + $ruleFactory = ObjectManager::getInstance()->get(RuleFactory::class); } - return $this->ruleFactory; + $this->ruleFactory = $ruleFactory; } /** @@ -169,7 +162,7 @@ protected function addTabToForm($model, $fieldsetId = 'actions_fieldset', $formN { if (!$model) { $id = $this->getRequest()->getParam('id'); - $model = $this->getRuleFactory()->create(); + $model = $this->ruleFactory->create(); $model->load($id); } diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php index dbf237e405c28..aab4ec8a3edca 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Conditions.php @@ -6,6 +6,7 @@ namespace Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab; use Magento\Framework\App\ObjectManager; +use Magento\SalesRule\Model\RuleFactory; class Conditions extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Ui\Component\Layout\Tabs\TabInterface @@ -28,7 +29,7 @@ class Conditions extends \Magento\Backend\Block\Widget\Form\Generic implements protected $_nameInLayout = 'conditions_apply_to'; /** - * @var \Magento\SalesRule\Model\RuleFactory + * @var RuleFactory */ private $ruleFactory; @@ -41,6 +42,8 @@ class Conditions extends \Magento\Backend\Block\Widget\Form\Generic implements * @param \Magento\Rule\Block\Conditions $conditions * @param \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset * @param array $data + * @param RuleFactory|null $ruleFactory + * @throws \RuntimeException */ public function __construct( \Magento\Backend\Block\Template\Context $context, @@ -48,26 +51,16 @@ public function __construct( \Magento\Framework\Data\FormFactory $formFactory, \Magento\Rule\Block\Conditions $conditions, \Magento\Backend\Block\Widget\Form\Renderer\Fieldset $rendererFieldset, - array $data = [] + array $data = [], + RuleFactory $ruleFactory = null ) { $this->_rendererFieldset = $rendererFieldset; $this->_conditions = $conditions; parent::__construct($context, $registry, $formFactory, $data); - } - - /** - * The getter function to get the new RuleFactory dependency - * - * @return \Magento\SalesRule\Model\RuleFactory - * - * @deprecated - */ - private function getRuleFactory() - { - if ($this->ruleFactory === null) { - $this->ruleFactory = ObjectManager::getInstance()->get('Magento\SalesRule\Model\RuleFactory'); + if ($ruleFactory === null) { + $ruleFactory = ObjectManager::getInstance()->get(RuleFactory::class); } - return $this->ruleFactory; + $this->ruleFactory = $ruleFactory; } /** @@ -160,7 +153,7 @@ protected function addTabToForm($model, $fieldsetId = 'conditions_fieldset', $fo { if (!$model) { $id = $this->getRequest()->getParam('id'); - $model = $this->getRuleFactory()->create(); + $model = $this->ruleFactory->create(); $model->load($id); } $conditionsFieldSetId = $model->getConditionsFieldSetId($formName); diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php b/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php new file mode 100644 index 0000000000000..6539f867ad953 --- /dev/null +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php @@ -0,0 +1,155 @@ +classNameExtractor = $classNameExtractor; + } + + /** + * Find classes created by object manager that are not requested in constructor + * + * @param string $fileContent + * @return array + */ + public function find($fileContent) + { + $classNames = []; + + $patterns = [ + [ // Class name with ::class annotation + 'pattern' => '/(get|create)\(\s*([a-z0-9\\\\]+)::class\s*\)/im', + 'skipBeginningSlash' => false + ], + [ // Class as a string + 'pattern' => '/(get|create)\\(\\s*' + . '[\'"]([\\\\]{0,2}[A-Z][A-Za-z]+([\\\\]{1,2}[A-Z][A-Za-z]+){2,}(?!\\\\+))[\'"]' + . '\\)/im' + , + 'skipBeginningSlash' => true, + ], + ]; + + foreach ($patterns as $patternData) { + $pattern = $patternData['pattern']; + $skipBeginningSlash = $patternData['skipBeginningSlash']; + preg_match_all( + $pattern, + $fileContent, + $shortNameMatches + ); + + if (isset($shortNameMatches[2])) { + foreach ($shortNameMatches[2] as $shortName) { + if (!$skipBeginningSlash && 0 !== strpos($shortName, '\\')) { + $class = $this->matchPartialNamespace($fileContent, $shortName); + } else { + $class = $shortName; + } + $class = ltrim($class, '\\'); + + if (\Magento\Framework\App\Utility\Classes::isVirtual($class)) { + continue; + } + + $className = $this->classNameExtractor->getNameWithNamespace($fileContent); + if ($className) { + $arguments = $this->getConstructorArguments($className); + if (in_array($class, $arguments)) { + continue; + } + } + + $classNames[] = $class; + } + } + } + return $classNames; + } + + /** + * Get constructor arguments + * + * @param string $className + * @return string[] + */ + private function getConstructorArguments($className) + { + $arguments = []; + $reflectionClass = new \ReflectionClass($className); + $constructor = $reflectionClass->getConstructor(); + if ($constructor) { + $classParameters = $constructor->getParameters(); + foreach ($classParameters as $classParameter) { + if ($classParameter->getType()) { + $parameterType = $classParameter->getType(); + $arguments[] = ltrim($parameterType, '\\'); + } + } + } + return $arguments; + } + + /** + * Match partial namespace + * + * @param $fileContent + * @param $shortName + * @return string + */ + private function matchPartialNamespace($fileContent, $shortName) + { + preg_match_all( + '/^use\s([a-z0-9\\\\]+' . str_replace('\\', '\\\\', $shortName) . ');$/im', + $fileContent, + $fullNameMatches + ); + if (isset($fullNameMatches[1][0])) { + $class = $fullNameMatches[1][0]; + } else { + preg_match_all( + '/^use\s([a-z0-9\\\\]+)\sas\s' . str_replace('\\', '\\\\', $shortName) . ';$/im', + $fileContent, + $fullNameAliasMatches + ); + if (isset($fullNameAliasMatches[1][0])) { + $class = $fullNameAliasMatches[1][0]; + } else { + $forwardSlashPos = strpos($shortName, '\\'); + $partialNamespace = substr($shortName, 0, $forwardSlashPos); + preg_match_all( + '/^use\s([a-z0-9\\\\]+)' . $partialNamespace . ';$/im', + $fileContent, + $partialNamespaceMatches + ); + if ($forwardSlashPos && isset($partialNamespaceMatches[1][0])) { + $class = $partialNamespaceMatches[1][0] . $shortName; + } else { + $class = $this->classNameExtractor->getNamespace($fileContent) . '\\' . $shortName; + } + } + } + return $class; + } +} diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php b/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php index 2ffbc127d9d79..6470bc0c22086 100644 --- a/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php @@ -1,6 +1,6 @@ getPhpFiles( - Files::INCLUDE_APP_CODE - | Files::INCLUDE_PUB_CODE - | Files::INCLUDE_LIBS - | Files::INCLUDE_TEMPLATES - | Files::INCLUDE_TESTS - | Files::AS_DATA_SET - | Files::INCLUDE_NON_CLASSES - )); + $phpFiles = Files::composeDataSets($phpFiles); + $phpFiles = array_intersect_key($phpFiles, $fileUtilities->getPhpFiles($fileTypes)); } } else { - $phpFiles = $fileHelper->getPhpFiles( - Files::INCLUDE_APP_CODE - | Files::INCLUDE_PUB_CODE - | Files::INCLUDE_LIBS - | Files::INCLUDE_TEMPLATES - | Files::INCLUDE_TESTS - | Files::AS_DATA_SET - | Files::INCLUDE_NON_CLASSES - ); + $phpFiles = $fileUtilities->getPhpFiles($fileTypes); } return $phpFiles; } + + /** + * Get changed content. + * + * @param string $fileName + * @return string + */ + public static function getChangedContent($fileName) + { + $data = []; + $extension = self::getFileExtension($fileName); + $fileName = ltrim(str_replace(BP, '', $fileName), DIRECTORY_SEPARATOR); + $changedFilesContentFile = BP . sprintf(self::CHANGED_FILES_CONTENT_FILE, $extension); + if (file_exists($changedFilesContentFile)) { + $changedContent = file_get_contents($changedFilesContentFile); + $data = json_decode($changedContent, true); + } + + return isset($data[$fileName]) ? $data[$fileName] : ''; + } + + /** + * Get file extension. + * + * @param string $fileName + * @return string + */ + public static function getFileExtension($fileName) + { + $fileInfo = pathinfo($fileName); + return isset($fileInfo['extension']) ? $fileInfo['extension'] : 'unknown'; + } } diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/ClassNameExtractor.php b/dev/tests/static/framework/Magento/TestFramework/Utility/ClassNameExtractor.php new file mode 100644 index 0000000000000..523165513fd5b --- /dev/null +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/ClassNameExtractor.php @@ -0,0 +1,66 @@ +getNamespace($fileContent); + $name = $this->getName($fileContent); + if ($name) { + return $namespace ? $namespace . '\\' . $name : $name; + } + return false; + } + + /** + * Get class name + * + * @param string $fileContent + * @return string|bool + */ + public function getName($fileContent) + { + $namespace = $this->getNamespace($fileContent); + if (isset($namespace)) { + preg_match_all( + '/^\s*(class|abstract\sclass|interface)\s+([a-z0-9]+)(\s+(extends|implements)|\s*$)/im', + $fileContent, + $classMatches + ); + if (isset($classMatches[2][0])) { + return $classMatches[2][0]; + } + } + return false; + } + + /** + * Get class namespace + * + * @param string $fileContent + * @return string|bool + */ + public function getNamespace($fileContent) + { + preg_match_all( + '/namespace\s([a-z0-9\\\\]+);/im', + $fileContent, + $namespaceMatches + ); + if (isset($namespaceMatches[1][0])) { + return $namespaceMatches[1][0]; + } + return false; + } +} diff --git a/dev/tests/static/framework/bootstrap.php b/dev/tests/static/framework/bootstrap.php index be6ead56e5c0c..97cf6692b2561 100644 --- a/dev/tests/static/framework/bootstrap.php +++ b/dev/tests/static/framework/bootstrap.php @@ -17,6 +17,7 @@ $componentRegistrar = new ComponentRegistrar(); $dirSearch = new DirSearch($componentRegistrar, new ReadFactory(new DriverPool())); $themePackageList = new ThemePackageList($componentRegistrar, new ThemePackageFactory()); +$regexIteratorFactory = new Magento\Framework\App\Utility\RegexIteratorFactory(); \Magento\Framework\App\Utility\Files::setInstance( - new Files($componentRegistrar, $dirSearch, $themePackageList) + new Files($componentRegistrar, $dirSearch, $themePackageList, $regexIteratorFactory) ); diff --git a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinderTest.php b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinderTest.php new file mode 100644 index 0000000000000..97df93fefb1e1 --- /dev/null +++ b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinderTest.php @@ -0,0 +1,61 @@ +assertEquals( + $expected, + $instantiatedByObjectManagerClassExtractor->find($fileContent) + ); + + } + + /** + * @return array + */ + public function getNameWithNamespaceDataProvider() + { + return [ + [ + file_get_contents(__DIR__ . '/Foo.php'), + [ + BuilderInterfaceFactory::class, + BarFactory::class, + PartialNamespaceBarFactory::class, + UrlFactory::class, + OptionFactory::class, + ProductLinkInterfaceFactory::class + ] + ] + ]; + } +} diff --git a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Bar.php b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Bar.php new file mode 100644 index 0000000000000..b74a99dd71a8e --- /dev/null +++ b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Bar.php @@ -0,0 +1,15 @@ +assertEquals( + $classNameExtractor->getNameWithNamespace($this->getFileContent($file)), + $className + ); + + } + + /** + * @return array + */ + public function getNameWithNamespaceDataProvider() + { + return [ + [ + 'class_with_namespace.txt', + 'Magento\ModuleName\SubDirectoryName\Foo' + ], + [ + 'class_implements_interface.txt', + 'Magento\ModuleName\SubDirectoryName\Foo' + ], + [ + 'class_with_comment.txt', + 'Magento\ModuleName\SubDirectoryName\Foo' + ], + [ + 'missing_class_keyword.txt', + false + ], + [ + 'class_without_namespace.txt', + 'Foo' + ], + [ + 'implements_keyword_on_different_line.txt', + 'Foo' + ], + [ + 'extra_whitespaces.txt', + 'Foo' + ] + ]; + } + + /** + * @param string $file + * @param string $className + * @dataProvider getNameDataProvider + */ + public function testGetName($file, $className) + { + $classNameExtractor = new \Magento\TestFramework\Utility\ClassNameExtractor(); + $this->assertEquals( + $classNameExtractor->getName($this->getFileContent($file)), + $className + ); + + } + + /** + * @return array + */ + public function getNameDataProvider() + { + return [ + [ + 'class_with_namespace.txt', + 'Foo' + ], + [ + 'missing_class_keyword.txt', + false + ], + [ + 'implements_keyword_on_different_line.txt', + 'Foo' + ], + [ + 'extra_whitespaces.txt', + 'Foo' + ] + ]; + } + + /** + * @param string $file + * @param string $className + * @dataProvider getNamespaceDataProvider + */ + public function testGetNamespace($file, $className) + { + $classNameExtractor = new \Magento\TestFramework\Utility\ClassNameExtractor(); + $this->assertEquals( + $classNameExtractor->getNamespace($this->getFileContent($file)), + $className + ); + + } + + /** + * @return array + */ + public function getNamespaceDataProvider() + { + return [ + [ + 'missing_class_keyword.txt', + 'Magento\ModuleName\SubDirectoryName' + ], + [ + 'class_without_namespace.txt', + false + ] + ]; + } + + /** + * @param $file + * @return bool|string + */ + private function getFileContent($file) + { + return file_get_contents(__DIR__ . '/_files/' . $file); + } +} diff --git a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Foo.php b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Foo.php new file mode 100644 index 0000000000000..9118b3e2d452e --- /dev/null +++ b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/Foo.php @@ -0,0 +1,90 @@ +get(\Magento\Catalog\Model\Indexer\Product\Flat\Table\BuilderInterfaceFactory::class); + } + + /** + * @return BarFactory + */ + public function getBarFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance()->get(BarFactory::class); + } + + /** + * @return PartialNamespace\BarFactory + */ + public function getPartialNamespaceBarFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance()->get(PartialNamespace\BarFactory::class); + } + + /** + * @return UrlFactory + */ + public function getUrlFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance()->get(UrlFactory::class); + } + + /** + * @return Product\OptionFactory + */ + public function getOptionFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance()->get(Product\OptionFactory::class); + } + + /** + * @return \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory + */ + public function getProductLinkFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance() + ->get( + \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory::class + ); + } + + /** + * @return \Magento\Customer\Api\CustomerRepositoryInterfaceFactory + */ + public function getCustomerRepositoryFactory() + { + return \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Customer\Api\CustomerRepositoryInterfaceFactory::class); + } +} diff --git a/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/PartialNamespace/Bar.php b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/PartialNamespace/Bar.php new file mode 100644 index 0000000000000..025f20981d544 --- /dev/null +++ b/dev/tests/static/framework/tests/unit/testsuite/Magento/TestFramework/Utility/PartialNamespace/Bar.php @@ -0,0 +1,15 @@ +classNameExtractor = new ClassNameExtractor(); + $this->autogeneratedClassNotInConstructorFinder = new AutogeneratedClassNotInConstructorFinder( + $this->classNameExtractor + ); + $this->fileUtilities = Files::init(); + } + + public function testAutogeneratedClassesRequestedInConstructor() + { + $fileTypes = Files::INCLUDE_APP_CODE | Files::INCLUDE_LIBS | Files::INCLUDE_SETUP | Files::AS_DATA_SET; + $changedFiles = ChangedFiles::getPhpFiles(__DIR__ . '/_files/changed_files*', $fileTypes); + $phpFiles = $this->fileUtilities->getPhpFiles($fileTypes); + + $existingClasses = []; + $classesCreatedByObjectManager = []; + foreach ($phpFiles as $file) { + $filePath = $file[0]; + $fileContent = file_get_contents($filePath); + $className = $this->classNameExtractor->getNameWithNamespace($fileContent); + if ($className) { + $existingClasses = array_merge( + $existingClasses, + [$filePath => $className] + ); + } + } + + foreach ($changedFiles as $file) { + $filePath = $file[0]; + $fileContent = file_get_contents($filePath); + $className = $this->classNameExtractor->getNameWithNamespace($fileContent); + if ($className) { + $tmpClassesCreatedByObjectManager = array_diff( + $this->autogeneratedClassNotInConstructorFinder->find($fileContent), + $this->getWhitelistedClasses() + ); + + if (!empty($tmpClassesCreatedByObjectManager)) { + $classesCreatedByObjectManager = array_merge( + $classesCreatedByObjectManager, + [$filePath => $tmpClassesCreatedByObjectManager] + ); + } + } + } + + $existingClasses = array_unique($existingClasses); + + $generatedDependenciesNotInConstructor = []; + foreach ($classesCreatedByObjectManager as $key => $classes) { + $autogeneratedClasses = array_diff($classes, $existingClasses); + if (!empty($autogeneratedClasses)) { + $generatedDependenciesNotInConstructor[$key] = $autogeneratedClasses; + } + } + + $this->assertEmpty( + $generatedDependenciesNotInConstructor, + "The following autogenerated classes need to be requested in constructor, otherwise compiler " + . "will not be able to find and generate these classes \r\n" + . print_r($generatedDependenciesNotInConstructor, true) + ); + } + + /** + * Get whitelisted classes + * + * @return string[] + */ + private function getWhitelistedClasses() + { + if (!$this->autogeneratedClassesWhitelist) { + $this->autogeneratedClassesWhitelist = require __DIR__ + . '/_files/autogenerated_class_not_in_constructor_whitelist.php'; + } + return $this->autogeneratedClassesWhitelist; + } +} diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/autogenerated_class_not_in_constructor_whitelist.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/autogenerated_class_not_in_constructor_whitelist.php new file mode 100644 index 0000000000000..51d03521a2f73 --- /dev/null +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/autogenerated_class_not_in_constructor_whitelist.php @@ -0,0 +1,18 @@ +componentRegistrar = new ComponentRegistrar(); - $this->dirSearch = $this->getMock('Magento\Framework\Component\DirSearch', [], [], '', false); - $themePackageList = $this->getMock('Magento\Framework\View\Design\Theme\ThemePackageList', [], [], '', false); - Files::setInstance(new Files($this->componentRegistrar, $this->dirSearch, $themePackageList)); + $this->dirSearch = $this->getMock(\Magento\Framework\Component\DirSearch::class, [], [], '', false); + + $themePackageList = $this->getMock( + \Magento\Framework\View\Design\Theme\ThemePackageList::class, + [], + [], + '', + false + ); + Files::setInstance( + new Files( + $this->componentRegistrar, + $this->dirSearch, + $themePackageList + ) + ); } protected function tearDown() diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index d56864a577db8..c80a830026387 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -1,11 +1,11 @@ componentRegistrar = $componentRegistrar; + $this->dirSearch = $dirSearch; + $this->themePackageList = $themePackageList; + $this->regexIteratorFactory = $regexIteratorFactory ?: ObjectManager::getInstance() + ->get(RegexIteratorFactory::class); + } + /** * Setter for an instance of self * @@ -111,23 +157,6 @@ public static function composeDataSets(array $files) return $result; } - /** - * Set path to source code - * - * @param ComponentRegistrar $componentRegistrar - * @param DirSearch $dirSearch - * @param ThemePackageList $themePackageList - */ - public function __construct( - ComponentRegistrar $componentRegistrar, - DirSearch $dirSearch, - ThemePackageList $themePackageList - ) { - $this->componentRegistrar = $componentRegistrar; - $this->dirSearch = $dirSearch; - $this->themePackageList = $themePackageList; - } - /** * Get list of regular expressions for matching test directories in modules * @@ -170,14 +199,15 @@ public function getPhpFiles($flags = 0) } $key = __METHOD__ . BP . $flags; if (!isset(self::$_cache[$key])) { - $files = []; - - $files = array_merge($files, $this->getAppCodeFiles($flags)); - $files = array_merge($files, $this->getTestFiles($flags)); - $files = array_merge($files, $this->getDevToolsFiles($flags)); - $files = array_merge($files, $this->getTemplateFiles($flags)); - $files = array_merge($files, $this->getLibraryFiles($flags)); - $files = array_merge($files, $this->getPubFiles($flags)); + $files = array_merge( + $this->getAppCodeFiles($flags), + $this->getTestFiles($flags), + $this->getDevToolsFiles($flags), + $this->getTemplateFiles($flags), + $this->getLibraryFiles($flags), + $this->getPubFiles($flags), + $this->getSetupPhpFiles($flags) + ); self::$_cache[$key] = $files; } if ($flags & self::AS_DATA_SET) { @@ -339,7 +369,7 @@ public function getXmlFiles() */ public function getMainConfigFiles($asDataSet = true) { - $cacheKey = __METHOD__ . '|' . serialize(func_get_args()); + $cacheKey = __METHOD__ . '|' . implode('|', [$asDataSet]); if (!isset(self::$_cache[$cacheKey])) { $configXmlPaths = []; foreach ($this->componentRegistrar->getPaths(ComponentRegistrar::MODULE) as $moduleDir) { @@ -375,7 +405,7 @@ public function getConfigFiles( $excludedFileNames = ['wsdl.xml', 'wsdl2.xml', 'wsi.xml'], $asDataSet = true ) { - $cacheKey = __METHOD__ . '|' . serialize(func_get_args()); + $cacheKey = __METHOD__ . '|' . json_encode([$fileNamePattern, $excludedFileNames, $asDataSet]); if (!isset(self::$_cache[$cacheKey])) { $files = $this->dirSearch->collectFiles(ComponentRegistrar::MODULE, "/etc/{$fileNamePattern}"); $files = array_filter( @@ -391,6 +421,7 @@ function ($file) use ($excludedFileNames) { } return self::$_cache[$cacheKey]; } + // @codingStandardsIgnoreEnd /** @@ -406,7 +437,7 @@ public function getXmlCatalogFiles( $excludedFileNames = [], $asDataSet = true ) { - $cacheKey = __METHOD__ . '|' . serialize(func_get_args()); + $cacheKey = __METHOD__ . '|' . json_encode([$fileNamePattern, $excludedFileNames, $asDataSet]); if (!isset(self::$_cache[$cacheKey])) { $files = $this->getFilesSubset( $this->componentRegistrar->getPaths(ComponentRegistrar::MODULE), @@ -457,7 +488,7 @@ function ($file) use ($excludedFileNames) { */ public function getLayoutConfigFiles($fileNamePattern = '*.xml', $asDataSet = true) { - $cacheKey = __METHOD__ . '|' . serialize(func_get_args()); + $cacheKey = __METHOD__ . '|' . implode('|', [$fileNamePattern, $asDataSet]); if (!isset(self::$_cache[$cacheKey])) { self::$_cache[$cacheKey] = $this->dirSearch->collectFiles( ComponentRegistrar::THEME, @@ -898,6 +929,7 @@ private function accumulateThemeStaticFiles($area, $locale, $filePattern, &$resu null, null, null, + null ]; } } @@ -961,10 +993,10 @@ protected function _parseModuleStatic($file) { foreach ($this->componentRegistrar->getPaths(ComponentRegistrar::MODULE) as $moduleName => $modulePath) { if (preg_match( - '/^' . preg_quote("{$modulePath}/", '/') . 'view\/([a-z]+)\/web\/(.+)$/i', - $file, - $matches - ) === 1 + '/^' . preg_quote("{$modulePath}/", '/') . 'view\/([a-z]+)\/web\/(.+)$/i', + $file, + $matches + ) === 1 ) { list(, $area, $filePath) = $matches; return [$area, '', '', $moduleName, $filePath, $file]; @@ -1267,6 +1299,7 @@ private function getPaths() * @param string $class * @param string &$path * @return bool + * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function classFileExists($class, &$path = '') { @@ -1297,7 +1330,33 @@ public function classFileExists($class, &$path = '') $directories = array_merge($directories, $this->getPaths()); - return $this->checkDirectories($path, $directories, $namespace, $className); + foreach ($directories as $dir) { + $fullPath = $dir . '/' . $path; + if ($this->classFileExistsCheckContent($fullPath, $namespace, $className)) { + return true; + } + $classParts = explode('/', $path, 3); + if (count($classParts) >= 3) { + // Check if it's PSR-4 class with trimmed vendor and package name parts + $trimmedFullPath = $dir . '/' . $classParts[2]; + if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { + return true; + } + } + $classParts = explode('/', $path, 4); + if (count($classParts) >= 4) { + // Check if it's a library under framework directory + $trimmedFullPath = $dir . '/' . $classParts[3]; + if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { + return true; + } + $trimmedFullPath = $dir . '/' . $classParts[2] . '/' . $classParts[3]; + if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { + return true; + } + } + } + return false; } /** @@ -1362,7 +1421,7 @@ public function getNamespaces() public function getModuleFile($namespace, $module, $file) { return $this->componentRegistrar->getPath(ComponentRegistrar::MODULE, $namespace . '_' . $module) . - '/' . $file; + '/' . $file; } /** @@ -1399,7 +1458,7 @@ public function getModulePhpFiles($module, $asDataSet = true) */ public function getComposerFiles($componentType, $asDataSet = true) { - $key = __METHOD__ . '|' . serialize(func_get_args()); + $key = __METHOD__ . '|' . implode('|', [$componentType, $asDataSet]); if (!isset(self::$_cache[$key])) { $excludes = $componentType == ComponentRegistrar::MODULE ? $this->getModuleTestDirsRegex() : []; $files = $this->getFilesSubset( @@ -1541,43 +1600,24 @@ protected function getFilesSubset(array $dirPatterns, $fileNamePattern, $exclude } /** - * Check class exists in searchable directories. + * Get list of PHP files in setup application * - * @param string $path - * @param array $directories - * @param string $namespace - * @param string $className - * @return bool + * @param int $flags + * @return array */ - private function checkDirectories(&$path, $directories, $namespace, $className) + private function getSetupPhpFiles($flags = null) { - foreach ($directories as $dir) { - $fullPath = $dir . '/' . $path; - if ($this->classFileExistsCheckContent($fullPath, $namespace, $className)) { - return true; - } - $classParts = explode('/', $path, 3); - if (count($classParts) >= 3) { - // Check if it's PSR-4 class with trimmed vendor and package name parts - $trimmedFullPath = $dir . '/' . $classParts[2]; - if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { - return true; - } - } - $classParts = explode('/', $path, 4); - if (count($classParts) >= 4) { - // Check if it's a library under framework directory - $trimmedFullPath = $dir . '/' . $classParts[3]; - if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { - return true; - } - $trimmedFullPath = $dir . '/' . $classParts[2] . '/' . $classParts[3]; - if ($this->classFileExistsCheckContent($trimmedFullPath, $namespace, $className)) { - return true; - } + $files = []; + $setupAppPath = BP . '/setup'; + if ($flags & self::INCLUDE_SETUP && file_exists($setupAppPath)) { + $regexIterator = $this->regexIteratorFactory->create( + $setupAppPath, + '/.*php$/' + ); + foreach ($regexIterator as $file) { + $files[] = $file[0]; } } - - return false; + return $files; } } diff --git a/lib/internal/Magento/Framework/App/Utility/RegexIteratorFactory.php b/lib/internal/Magento/Framework/App/Utility/RegexIteratorFactory.php new file mode 100644 index 0000000000000..01cb80c932056 --- /dev/null +++ b/lib/internal/Magento/Framework/App/Utility/RegexIteratorFactory.php @@ -0,0 +1,26 @@ + Date: Mon, 13 Nov 2017 13:27:49 +0200 Subject: [PATCH 020/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud - Fix static tests --- .../Product/Initialization/Helper.php | 8 ++--- .../Model/Product/Option/Repository.php | 2 ++ .../Catalog/Model/ProductLink/Repository.php | 2 ++ .../Model/ResourceModel/Category/Flat.php | 15 ---------- .../Controller/Adminhtml/Index/Cart.php | 30 ++++++++++++++++++- .../Customer/Model/Metadata/Form/File.php | 2 +- .../Model/Currency/Import/Webservicex.php | 1 + .../Command/AbstractIndexerCommand.php | 1 + .../Command/AbstractIndexerManageCommand.php | 1 + .../Magento/Quote/Model/QuoteRepository.php | 4 +++ 10 files changed, 45 insertions(+), 21 deletions(-) diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php index 2240a2469b71a..374c8b69b268d 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php @@ -109,10 +109,10 @@ public function __construct( Js $jsHelper, DateFilter $dateFilter, LinkTypeProvider $linkTypeProvider = null, - CustomOptionFactory $customOptionFactory, - ProductLinkFactory $productLinkFactory, - ProductRepository $productRepository, - DateTime $dateTimeFilter + CustomOptionFactory $customOptionFactory = null, + ProductLinkFactory $productLinkFactory = null, + ProductRepository $productRepository = null, + DateTime $dateTimeFilter = null ) { if (null === $linkTypeProvider) { $linkTypeProvider = ObjectManager::getInstance()->get(LinkTypeProvider::class); diff --git a/app/code/Magento/Catalog/Model/Product/Option/Repository.php b/app/code/Magento/Catalog/Model/Product/Option/Repository.php index a4a1537c5741a..38a8c590c2ddc 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Repository.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Repository.php @@ -58,6 +58,8 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Catalog\Model\ResourceModel\Product\Option $optionResource * @param Converter $converter + * @param \Magento\Catalog\Model\Product\OptionFactory $optionFactory + * @param \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory $collectionFactory */ public function __construct( \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, diff --git a/app/code/Magento/Catalog/Model/ProductLink/Repository.php b/app/code/Magento/Catalog/Model/ProductLink/Repository.php index b1e09183ecf07..d5635696d6b7a 100644 --- a/app/code/Magento/Catalog/Model/ProductLink/Repository.php +++ b/app/code/Magento/Catalog/Model/ProductLink/Repository.php @@ -84,6 +84,8 @@ class Repository implements \Magento\Catalog\Api\ProductLinkRepositoryInterface * @param LinksInitializer $linkInitializer * @param Management $linkManagement * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + * @param ProductLinkInterfaceFactory $productLinkFactory + * @param ProductLinkExtensionFactory $productLinkExtensionFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php index 09c77355cde35..639957bb962f7 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php @@ -703,19 +703,4 @@ public function getProductsPosition($category) return $this->getConnection()->fetchPairs($select, $bind); } - - /** - * Get instance of CategoryFlatCollectionFactory - * - * @return CategoryFlatCollectionFactory - */ - private function getCategoryFlatCollectionFactory() - { - if (!$this->categoryFlatCollectionFactory instanceof CategoryFlatCollectionFactory) { - $this->categoryFlatCollectionFactory = ObjectManager::getInstance() - ->get(CategoryFlatCollectionFactory::class); - } - - return $this->categoryFlatCollectionFactory; - } } diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php index 8061e0a824ba0..ea454f816819e 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php @@ -26,6 +26,35 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index */ private $quoteFactory; + /** + * Cart constructor. + * @param \Magento\Backend\App\Action\Context $context + * @param \Magento\Framework\Registry $coreRegistry + * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory + * @param \Magento\Customer\Model\CustomerFactory $customerFactory + * @param \Magento\Customer\Model\AddressFactory $addressFactory + * @param \Magento\Customer\Model\Metadata\FormFactory $formFactory + * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory + * @param \Magento\Customer\Helper\View $viewHelper + * @param \Magento\Framework\Math\Random $random + * @param CustomerRepositoryInterface $customerRepository + * @param \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter + * @param Mapper $addressMapper + * @param AccountManagementInterface $customerAccountManagement + * @param AddressRepositoryInterface $addressRepository + * @param CustomerInterfaceFactory $customerDataFactory + * @param AddressInterfaceFactory $addressDataFactory + * @param \Magento\Customer\Model\Customer\Mapper $customerMapper + * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor + * @param DataObjectHelper $dataObjectHelper + * @param ObjectFactory $objectFactory + * @param \Magento\Framework\View\LayoutFactory $layoutFactory + * @param \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory + * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory + * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory + * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory + * @param QuoteFactory|null $quoteFactory + */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\Registry $coreRegistry, @@ -87,7 +116,6 @@ public function __construct( $this->quoteFactory = $quoteFactory; } - /** * Handle and then get cart grid contents * diff --git a/app/code/Magento/Customer/Model/Metadata/Form/File.php b/app/code/Magento/Customer/Model/Metadata/Form/File.php index 2b32b06fa0b3c..2d7177048a32a 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/File.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/File.php @@ -72,8 +72,8 @@ class File extends AbstractData * @param \Magento\MediaStorage\Model\File\Validator\NotProtectedExtension $fileValidator * @param Filesystem $fileSystem * @param UploaderFactory $uploaderFactory + * @param FileProcessorFactory|null $fileProcessorFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) - * @throws \RuntimeException */ public function __construct( \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, diff --git a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php index bc52e7a997b57..631f539cf8aa9 100644 --- a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php +++ b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php @@ -34,6 +34,7 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor * @var \Magento\Framework\App\Config\ScopeConfigInterface */ private $scopeConfig; + /** * @var ZendClientFactory|null */ diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php index a627631e99577..7dbf419d54578 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php @@ -28,6 +28,7 @@ abstract class AbstractIndexerCommand extends Command * @var ObjectManagerInterface */ private $objectManager; + /** * @var IndexerCollectionFactory|null */ diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php index 57ffbc492d093..788cab10fde2f 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php @@ -20,6 +20,7 @@ abstract class AbstractIndexerManageCommand extends AbstractIndexerCommand * Indexer name option */ const INPUT_KEY_INDEXERS = 'index'; + /** * @var IndexerFactory|null */ diff --git a/app/code/Magento/Quote/Model/QuoteRepository.php b/app/code/Magento/Quote/Model/QuoteRepository.php index afe683ff418aa..072c233e991bf 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository.php +++ b/app/code/Magento/Quote/Model/QuoteRepository.php @@ -71,6 +71,9 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface */ private $loadHandler; + /** + * @var QuoteCollectionFactory + */ private $quoteCollectionFactory; /** @@ -79,6 +82,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface * @param \Magento\Quote\Model\ResourceModel\Quote\Collection $quoteCollection * @param \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory $searchResultsDataFactory * @param JoinProcessorInterface $extensionAttributesJoinProcessor + * @param QuoteCollectionFactory|null $quoteCollectionFactory * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function __construct( From 262446caca18596afa081b2deec396c622b4d026 Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 13 Nov 2017 17:16:29 +0200 Subject: [PATCH 021/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- lib/internal/Magento/Framework/App/Utility/Files.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index c80a830026387..6f57a37161fbf 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -8,8 +8,8 @@ use Magento\Framework\App\ObjectManager; use Magento\Framework\Component\ComponentRegistrar; use Magento\Framework\Component\DirSearch; -use Magento\Framework\View\Design\Theme\ThemePackageList; use Magento\Framework\Filesystem\Glob; +use Magento\Framework\View\Design\Theme\ThemePackageList; /** * A helper to gather specific kind of files in Magento application @@ -992,12 +992,8 @@ protected function _accumulateFilesByPatterns(array $patterns, $filePattern, arr protected function _parseModuleStatic($file) { foreach ($this->componentRegistrar->getPaths(ComponentRegistrar::MODULE) as $moduleName => $modulePath) { - if (preg_match( - '/^' . preg_quote("{$modulePath}/", '/') . 'view\/([a-z]+)\/web\/(.+)$/i', - $file, - $matches - ) === 1 - ) { + $pattern = '/^' . preg_quote("{$modulePath}/", '/') . 'view\/([a-z]+)\/web\/(.+)$/i'; + if (preg_match($pattern,$file,$matches) === 1) { list(, $area, $filePath) = $matches; return [$area, '', '', $moduleName, $filePath, $file]; } From 04c9cdb72a872b19b22524737d6e2c2aad099c5a Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 13 Nov 2017 17:18:08 +0200 Subject: [PATCH 022/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- app/code/Magento/Catalog/Model/Product/Option/Repository.php | 4 ++-- app/code/Magento/Catalog/Model/ProductLink/Repository.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Catalog/Model/Product/Option/Repository.php b/app/code/Magento/Catalog/Model/Product/Option/Repository.php index 38a8c590c2ddc..a3f4138b43619 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Repository.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Repository.php @@ -65,8 +65,8 @@ public function __construct( \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Catalog\Model\ResourceModel\Product\Option $optionResource, \Magento\Catalog\Model\Product\Option\Converter $converter, - \Magento\Catalog\Model\Product\OptionFactory $optionFactory, - \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory $collectionFactory + \Magento\Catalog\Model\Product\OptionFactory $optionFactory = null, + \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory $collectionFactory = null ) { $this->productRepository = $productRepository; $this->optionResource = $optionResource; diff --git a/app/code/Magento/Catalog/Model/ProductLink/Repository.php b/app/code/Magento/Catalog/Model/ProductLink/Repository.php index d5635696d6b7a..8944aa492ed75 100644 --- a/app/code/Magento/Catalog/Model/ProductLink/Repository.php +++ b/app/code/Magento/Catalog/Model/ProductLink/Repository.php @@ -94,8 +94,8 @@ public function __construct( \Magento\Catalog\Model\Product\Initialization\Helper\ProductLinks $linkInitializer, \Magento\Catalog\Model\ProductLink\Management $linkManagement, \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, - \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory $productLinkFactory, - \Magento\Catalog\Api\Data\ProductLinkExtensionFactory $productLinkExtensionFactory + \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory $productLinkFactory = null, + \Magento\Catalog\Api\Data\ProductLinkExtensionFactory $productLinkExtensionFactory = null ) { $this->productRepository = $productRepository; $this->entityCollectionProvider = $entityCollectionProvider; From bb60ab8df9c6fa5fb00805a2511d49aa1b632452 Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 13 Nov 2017 17:35:10 +0200 Subject: [PATCH 023/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- .../Controller/Adminhtml/Product/Initialization/Helper.php | 1 + .../Magento/Checkout/Model/ShippingInformationManagement.php | 1 + app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php | 4 ++++ app/code/Magento/Customer/Model/Customer/DataProvider.php | 1 + app/code/Magento/Customer/Model/Metadata/Form/Image.php | 4 ++++ .../Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php | 3 +++ lib/internal/Magento/Framework/App/Utility/Files.php | 2 +- 7 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php index 374c8b69b268d..8c15188fdcd2e 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php @@ -100,6 +100,7 @@ class Helper * @param ProductRepository $productRepository * @param CustomOptionFactory $customOptionFactory * @param DateTime $dateTimeFilter + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( RequestInterface $request, diff --git a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php index bb9e7f8e3abb3..41f3818b6ae77 100644 --- a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php +++ b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php @@ -103,6 +103,7 @@ class ShippingInformationManagement implements \Magento\Checkout\Api\ShippingInf * @param ShippingFactory|null $shippingFactory * @codeCoverageIgnore * @throws \RuntimeException + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement, diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php index ea454f816819e..8a7a35a79643c 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php @@ -19,6 +19,9 @@ use Magento\Quote\Api\CartRepositoryInterface; use Magento\Store\Model\StoreManagerInterface; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Cart extends \Magento\Customer\Controller\Adminhtml\Index { /** @@ -54,6 +57,7 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory * @param QuoteFactory|null $quoteFactory + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Backend\App\Action\Context $context, diff --git a/app/code/Magento/Customer/Model/Customer/DataProvider.php b/app/code/Magento/Customer/Model/Customer/DataProvider.php index 6710dd5212f6d..c6a9fd4b63964 100644 --- a/app/code/Magento/Customer/Model/Customer/DataProvider.php +++ b/app/code/Magento/Customer/Model/Customer/DataProvider.php @@ -142,6 +142,7 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider * @param array $data * @param FileProcessorFactory|null $fileProcessorFactory * @throws \Magento\Framework\Exception\LocalizedException + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( $name, diff --git a/app/code/Magento/Customer/Model/Metadata/Form/Image.php b/app/code/Magento/Customer/Model/Metadata/Form/Image.php index 12107c1c1af5e..410fef7c85e06 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/Image.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/Image.php @@ -18,6 +18,9 @@ use Magento\Framework\File\UploaderFactory; use Magento\Framework\Filesystem; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Image extends File { /** @@ -41,6 +44,7 @@ class Image extends File * @param FileProcessorFactory|null $fileProcessorFactory * @param ImageContentFactory|null $imageContentFactory * @throws \RuntimeException + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, diff --git a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php index 5d51d5c665001..313a7e55f115c 100644 --- a/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php +++ b/app/code/Magento/SalesRule/Block/Adminhtml/Promo/Quote/Edit/Tab/Actions.php @@ -8,6 +8,9 @@ use Magento\Framework\App\ObjectManager; use Magento\SalesRule\Model\RuleFactory; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Actions extends \Magento\Backend\Block\Widget\Form\Generic implements \Magento\Ui\Component\Layout\Tabs\TabInterface { diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index 6f57a37161fbf..f1b5de6a50e6b 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -993,7 +993,7 @@ protected function _parseModuleStatic($file) { foreach ($this->componentRegistrar->getPaths(ComponentRegistrar::MODULE) as $moduleName => $modulePath) { $pattern = '/^' . preg_quote("{$modulePath}/", '/') . 'view\/([a-z]+)\/web\/(.+)$/i'; - if (preg_match($pattern,$file,$matches) === 1) { + if (preg_match($pattern, $file, $matches) === 1) { list(, $area, $filePath) = $matches; return [$area, '', '', $moduleName, $filePath, $file]; } From 2b56594127db15341afcbc6ce8fe4bf7a62a71b9 Mon Sep 17 00:00:00 2001 From: Leonid Poluyanov Date: Thu, 16 Nov 2017 17:24:11 +0200 Subject: [PATCH 024/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- .../Product/Initialization/Helper.php | 11 +- .../Product/Initialization/HelperTest.php | 8 +- .../Model/Product/Option/RepositoryTest.php | 6 +- .../ShippingInformationManagementTest.php | 2 +- .../Model/LinkManagement.php | 41 ++- .../Test/Unit/Model/LinkManagementTest.php | 38 +-- .../Customer/Model/Metadata/Form/File.php | 2 +- .../Customer/Model/Metadata/Form/Image.php | 7 +- .../Unit/Model/Metadata/Form/FileTest.php | 21 +- .../Unit/Model/Metadata/Form/ImageTest.php | 73 ++--- .../Model/Currency/Import/Webservicex.php | 15 +- .../Helper/Plugin/DownloadableTest.php | 56 ++-- .../Command/AbstractIndexerManageCommand.php | 1 + .../Model/Checkout/Type/MultishippingTest.php | 25 +- .../Test/Unit/Model/QuoteManagementTest.php | 252 +++++++++--------- .../Test/Unit/Model/QuoteRepositoryTest.php | 18 +- ...togeneratedClassNotInConstructorFinder.php | 32 ++- .../TestFramework/Utility/ChangedFiles.php | 3 +- .../Utility/ClassNameExtractor.php | 2 +- ...AutogeneratedClassNotInConstructorTest.php | 2 +- .../Magento/Framework/App/Utility/Files.php | 2 +- .../App/Utility/RegexIteratorFactory.php | 2 +- .../Setup/Fixtures/CartPriceRulesFixture.php | 48 ++-- .../SearchTermDescriptionGeneratorFactory.php | 96 +++++-- .../Setup/Mvc/Bootstrap/InitParamListener.php | 10 +- .../Fixtures/CartPriceRulesFixtureTest.php | 107 +++++--- .../Mvc/Bootstrap/InitParamListenerTest.php | 37 +-- 27 files changed, 513 insertions(+), 404 deletions(-) diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php index 8c15188fdcd2e..8fed1619500ab 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php @@ -100,6 +100,7 @@ class Helper * @param ProductRepository $productRepository * @param CustomOptionFactory $customOptionFactory * @param DateTime $dateTimeFilter + * @param LinkResolver $linkResolver * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -113,7 +114,8 @@ public function __construct( CustomOptionFactory $customOptionFactory = null, ProductLinkFactory $productLinkFactory = null, ProductRepository $productRepository = null, - DateTime $dateTimeFilter = null + DateTime $dateTimeFilter = null, + LinkResolver $linkResolver = null ) { if (null === $linkTypeProvider) { $linkTypeProvider = ObjectManager::getInstance()->get(LinkTypeProvider::class); @@ -130,6 +132,9 @@ public function __construct( if (null === $dateTimeFilter) { $dateTimeFilter = ObjectManager::getInstance()->get(DateTime::class); } + if (null === $linkResolver) { + $linkResolver = ObjectManager::getInstance()->get(LinkResolver::class); + } $this->request = $request; $this->storeManager = $storeManager; $this->stockFilter = $stockFilter; @@ -141,6 +146,7 @@ public function __construct( $this->productLinkFactory = $productLinkFactory; $this->productRepository = $productRepository; $this->dateTimeFilter = $dateTimeFilter; + $this->linkResolver = $linkResolver; } /** @@ -251,8 +257,7 @@ public function initializeFromData(\Magento\Catalog\Model\Product $product, arra return empty($valueData['is_delete']); }); } - - $customOption = $this->getCustomOptionFactory()->create(['data' => $customOptionData]); + $customOption = $this->customOptionFactory->create(['data' => $customOptionData]); $customOption->setProductSku($product->getSku()); $customOptions[] = $customOption; } diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php index 4a271ced63a3e..7f875e5fcb417 100644 --- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php @@ -11,7 +11,7 @@ use Magento\Catalog\Controller\Adminhtml\Product\Initialization\StockDataFilter; use Magento\Catalog\Model\Product; use Magento\Catalog\Model\Product\Option; -use Magento\Catalog\Model\ProductRepository; +use Magento\Catalog\Api\ProductRepositoryInterface\Proxy; use Magento\Framework\App\RequestInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Store\Api\Data\StoreInterface; @@ -124,8 +124,8 @@ protected function setUp() ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); - $this->productRepositoryMock = $this->getMockBuilder(ProductRepository::class) - ->disableOriginalConstructor() + $this->productRepositoryMock = $this->getMockBuilder(Proxy::class) + ->setMethods(['getById']) ->getMock(); $this->requestMock = $this->getMockBuilder(RequestInterface::class) ->setMethods(['getPost']) @@ -704,7 +704,7 @@ private function assembleProductRepositoryMock($links) ->willReturn($link['sku']); // Even optional arguments need to be provided for returnMapValue - $repositoryReturnMap[] = [$link['id'], false, null, false, $mockLinkedProduct]; + $repositoryReturnMap[] = [$link['id'], $mockLinkedProduct]; } } diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/Option/RepositoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/Option/RepositoryTest.php index c09739de4f0e4..9fbf7783dcb80 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Product/Option/RepositoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/Option/RepositoryTest.php @@ -95,14 +95,14 @@ protected function setUp() $this->optionRepository = new Repository( $this->productRepositoryMock, $this->optionResourceMock, - $this->converterMock + $this->converterMock, + $optionFactory, + $this->optionCollectionFactory ); $this->setProperties( $this->optionRepository, [ - 'optionFactory' => $optionFactory, - 'collectionFactory' => $this->optionCollectionFactory, 'metadataPool' => $metadataPool ] ); diff --git a/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php b/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php index a11da4ef71874..119427bc24577 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php @@ -146,7 +146,7 @@ protected function setUp() $this->shippingAssignmentFactoryMock = $this->getMock(\Magento\Quote\Model\ShippingAssignmentFactory::class, ['create'], [], '', false); $this->cartExtensionFactoryMock = - $this->getMock(\Magento\Quote\Api\Data\CartExtensionInterfaceFactory::class, ['create'], [], '', false); + $this->getMock(\Magento\Quote\Api\Data\CartExtensionFactory::class, ['create'], [], '', false); $this->shippingFactoryMock = $this->getMock(\Magento\Quote\Model\ShippingFactory::class, ['create'], [], '', false); diff --git a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php index fac78bce11f20..f51cff67451eb 100644 --- a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php +++ b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php @@ -6,7 +6,6 @@ */ namespace Magento\ConfigurableProduct\Model; -use Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory; use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\StateException; @@ -40,7 +39,7 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI private $optionsFactory; /** - * @var AttributeFactory + * @var \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory */ private $attributeFactory; @@ -49,7 +48,8 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI * @param \Magento\Catalog\Api\Data\ProductInterfaceFactory $productFactory * @param \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $configurableType * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper - * @param AttributeFactory|null $attributeFactory + * @param \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory|null $attributeFactory + * @param \Magento\ConfigurableProduct\Helper\Product\Options\Factory|null $optionsFactory * @throws \RuntimeException */ public function __construct( @@ -57,16 +57,25 @@ public function __construct( \Magento\Catalog\Api\Data\ProductInterfaceFactory $productFactory, \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $configurableType, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, - AttributeFactory $attributeFactory = null + \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory $attributeFactory = null, + \Magento\ConfigurableProduct\Helper\Product\Options\Factory $optionsFactory = null ) { $this->productRepository = $productRepository; $this->productFactory = $productFactory; $this->configurableType = $configurableType; $this->dataObjectHelper = $dataObjectHelper; - if (null !== $attributeFactory) { - $attributeFactory = ObjectManager::getInstance()->get(AttributeFactory::class); + if (null === $attributeFactory) { + $attributeFactory = ObjectManager::getInstance()->get( + \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory::class + ); } $this->attributeFactory = $attributeFactory; + if (null === $optionsFactory) { + $optionsFactory = ObjectManager::getInstance()->get( + \Magento\ConfigurableProduct\Helper\Product\Options\Factory::class + ); + } + $this->optionsFactory = $optionsFactory; } /** @@ -136,9 +145,7 @@ public function addChild($sku, $childSku) } $configurableOptionData = $this->getConfigurableAttributesData($attributeIds); - /** @var \Magento\ConfigurableProduct\Helper\Product\Options\Factory $optionFactory */ - $optionFactory = $this->getOptionsFactory(); - $options = $optionFactory->create($configurableOptionData); + $options = $this->optionsFactory->create($configurableOptionData); $childrenIds[] = $child->getId(); $product->getExtensionAttributes()->setConfigurableProductOptions($options); $product->getExtensionAttributes()->setConfigurableProductLinks($childrenIds); @@ -175,22 +182,6 @@ public function removeChild($sku, $childSku) return true; } - /** - * Get Options Factory - * - * @return \Magento\ConfigurableProduct\Helper\Product\Options\Factory - * - * @deprecated - */ - private function getOptionsFactory() - { - if (!$this->optionsFactory) { - $this->optionsFactory = ObjectManager::getInstance() - ->get(\Magento\ConfigurableProduct\Helper\Product\Options\Factory::class); - } - return $this->optionsFactory; - } - /** * Get Configurable Attribute Data * diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Model/LinkManagementTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Model/LinkManagementTest.php index fb50d74f39efd..e41c981f52e88 100644 --- a/app/code/Magento/ConfigurableProduct/Test/Unit/Model/LinkManagementTest.php +++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Model/LinkManagementTest.php @@ -36,6 +36,12 @@ class LinkManagementTest extends \PHPUnit_Framework_TestCase */ protected $object; + /** \Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory|\PHPUnit_Framework_MockObject_MockObject */ + private $attributeFactory; + + /** \Magento\ConfigurableProduct\Helper\Product\Options\Factory|\PHPUnit_Framework_MockObject_MockObject */ + private $productOptionsFactory; + /** * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Api\DataObjectHelper */ @@ -56,9 +62,16 @@ protected function setUp() ->disableOriginalConstructor() ->getMock(); - $this->configurableType = - $this->getMockBuilder('Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable') - ->disableOriginalConstructor()->getMock(); + $this->configurableType = $this->getMockBuilder( + '\Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable' + )->disableOriginalConstructor()->getMock(); + + $this->attributeFactory = $this->getMockBuilder( + '\Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory' + )->disableOriginalConstructor()->setMethods(['create'])->getMock(); + $this->productOptionsFactory = $this->getMockBuilder( + '\Magento\ConfigurableProduct\Helper\Product\Options\Factory' + )->disableOriginalConstructor()->setMethods(['create'])->getMock(); $this->object = $this->objectManagerHelper->getObject( '\Magento\ConfigurableProduct\Model\LinkManagement', @@ -67,6 +80,8 @@ protected function setUp() 'productFactory' => $this->productFactory, 'configurableType' => $this->configurableType, 'dataObjectHelper' => $this->dataObjectHelperMock, + 'attributeFactory' => $this->attributeFactory, + 'optionsFactory' => $this->productOptionsFactory ] ); } @@ -164,22 +179,13 @@ public function testAddChild() ->disableOriginalConstructor() ->setMethods(['getAttributeCode']) ->getMock(); - $optionsFactoryMock = $this->getMockBuilder('Magento\ConfigurableProduct\Helper\Product\Options\Factory') - ->disableOriginalConstructor() - ->setMethods(['create']) - ->getMock(); $reflectionClass = new \ReflectionClass('Magento\ConfigurableProduct\Model\LinkManagement'); $optionsFactoryReflectionProperty = $reflectionClass->getProperty('optionsFactory'); $optionsFactoryReflectionProperty->setAccessible(true); - $optionsFactoryReflectionProperty->setValue($this->object, $optionsFactoryMock); - - $attributeFactoryMock = $this->getMockBuilder('Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory') - ->disableOriginalConstructor() - ->setMethods(['create']) - ->getMock(); + $optionsFactoryReflectionProperty->setValue($this->object, $this->productOptionsFactory); $attributeFactoryReflectionProperty = $reflectionClass->getProperty('attributeFactory'); $attributeFactoryReflectionProperty->setAccessible(true); - $attributeFactoryReflectionProperty->setValue($this->object, $attributeFactoryMock); + $attributeFactoryReflectionProperty->setValue($this->object, $this->attributeFactory); $attributeMock = $this->getMockBuilder('Magento\Catalog\Model\ResourceModel\Eav\Attribute') ->disableOriginalConstructor() @@ -217,8 +223,8 @@ public function testAddChild() $simple->expects($this->any())->method('getData')->willReturn('color'); $optionMock->expects($this->any())->method('getAttributeId')->willReturn('1'); - $optionsFactoryMock->expects($this->any())->method('create')->willReturn([$optionMock]); - $attributeFactoryMock->expects($this->any())->method('create')->willReturn($attributeMock); + $this->productOptionsFactory->expects($this->any())->method('create')->willReturn([$optionMock]); + $this->attributeFactory->expects($this->any())->method('create')->willReturn($attributeMock); $attributeMock->expects($this->any())->method('getCollection')->willReturn($attributeCollectionMock); $attributeCollectionMock->expects($this->any())->method('addFieldToFilter')->willReturnSelf(); $attributeCollectionMock->expects($this->any())->method('getItems')->willReturn([$attributeMock]); diff --git a/app/code/Magento/Customer/Model/Metadata/Form/File.php b/app/code/Magento/Customer/Model/Metadata/Form/File.php index 2d7177048a32a..1db03b57e6160 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/File.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/File.php @@ -392,7 +392,7 @@ public function outputValue($format = \Magento\Customer\Model\Metadata\ElementFa protected function getFileProcessor() { if ($this->fileProcessor === null) { - $this->fileProcessor = $this->getFileProcessorFactory()->create([ + $this->fileProcessor = $this->fileProcessorFactory->create([ 'entityTypeCode' => $this->_entityTypeCode, ]); } diff --git a/app/code/Magento/Customer/Model/Metadata/Form/Image.php b/app/code/Magento/Customer/Model/Metadata/Form/Image.php index 410fef7c85e06..3526af99ee563 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/Image.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/Image.php @@ -193,8 +193,9 @@ protected function processCustomerValue(array $value) { $temporaryFile = FileProcessor::TMP_DIR . '/' . ltrim($value['file'], '/'); - if ($this->getFileProcessor()->isExist($temporaryFile)) { - $base64EncodedData = $this->getFileProcessor()->getBase64EncodedData($temporaryFile); + $fileProcessor = $this->fileProcessorFactory->create(); + if ($fileProcessor->isExist($temporaryFile)) { + $base64EncodedData = $fileProcessor->getBase64EncodedData($temporaryFile); /** @var ImageContentInterface $imageContentDataObject */ $imageContentDataObject = $this->imageContentFactory->create() @@ -203,7 +204,7 @@ protected function processCustomerValue(array $value) ->setType($value['type']); // Remove temporary file - $this->getFileProcessor()->removeUploadedFile($temporaryFile); + $fileProcessor->removeUploadedFile($temporaryFile); return $imageContentDataObject; } diff --git a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/FileTest.php b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/FileTest.php index af55a57ca6731..7ab9bcc75b2ad 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/FileTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/FileTest.php @@ -32,6 +32,11 @@ class FileTest extends AbstractFormTestCase */ protected $uploaderFactoryMock; + /** + * @var \Magento\Customer\Model\FileProcessorFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $fileProcessorFactory; + /** * @var \Magento\Customer\Model\FileProcessor|\PHPUnit_Framework_MockObject_MockObject */ @@ -50,7 +55,6 @@ protected function setUp() $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http') ->disableOriginalConstructor()->getMock(); $this->uploaderFactoryMock = $this->getMock('Magento\Framework\File\UploaderFactory', [], [], '', false); - $this->fileProcessorMock = $this->getMockBuilder('Magento\Customer\Model\FileProcessor') ->disableOriginalConstructor() ->getMock(); @@ -59,7 +63,6 @@ protected function setUp() /** * @param array|bool $expected * @param string $attributeCode - * @param bool $isAjax * @param string $delete * @dataProvider extractValueNoRequestScopeDataProvider */ @@ -448,6 +451,9 @@ public function testOutputValueJson() */ private function initialize(array $data) { + $this->fileProcessorFactory = $this->getMockBuilder(\Magento\Customer\Model\FileProcessorFactory::class) + ->disableOriginalConstructor()->setMethods(['create'])->getMock(); + $this->fileProcessorFactory->expects($this->any())->method('create')->willReturn($this->fileProcessorMock); $model = new \Magento\Customer\Model\Metadata\Form\File( $this->localeMock, $this->loggerMock, @@ -459,14 +465,8 @@ private function initialize(array $data) $this->urlEncode, $this->fileValidatorMock, $this->fileSystemMock, - $this->uploaderFactoryMock - ); - - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $objectManager->setBackwardCompatibleProperty( - $model, - 'fileProcessor', - $this->fileProcessorMock + $this->uploaderFactoryMock, + $this->fileProcessorFactory ); return $model; @@ -514,7 +514,6 @@ public function testCompactValueRemoveUiComponentValue() 'isAjax' => false, 'entityTypeCode' => self::ENTITY_TYPE, ]); - $this->fileProcessorMock->expects($this->once()) ->method('removeUploadedFile') ->with($value) diff --git a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/ImageTest.php b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/ImageTest.php index 1eb2952e0d9a0..12d4859cda2e0 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/ImageTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/Metadata/Form/ImageTest.php @@ -8,6 +8,7 @@ use Magento\Customer\Api\AddressMetadataInterface; use Magento\Customer\Api\CustomerMetadataInterface; use Magento\Customer\Model\FileProcessor; +use Magento\Customer\Model\FileProcessorFactory; class ImageTest extends AbstractFormTestCase { @@ -41,6 +42,11 @@ class ImageTest extends AbstractFormTestCase */ private $fileProcessorMock; + /** + * @var FileProcessorFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $fileProcessorFactory; + /** * @var \Magento\Framework\Api\Data\ImageContentInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject */ @@ -76,6 +82,11 @@ protected function setUp() ->disableOriginalConstructor() ->getMock(); + $this->fileProcessorFactory = $this->getMockBuilder('Magento\Customer\Model\FileProcessorFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->imageContentFactory = $this->getMockBuilder('Magento\Framework\Api\Data\ImageContentInterfaceFactory') ->disableOriginalConstructor() ->setMethods(['create']) @@ -88,6 +99,8 @@ protected function setUp() */ private function initialize(array $data) { + $this->fileProcessorFactory->expects($this->any())->method('create') + ->willReturn($this->fileProcessorMock); $model = new \Magento\Customer\Model\Metadata\Form\Image( $this->localeMock, $this->loggerMock, @@ -99,18 +112,8 @@ private function initialize(array $data) $this->urlEncode, $this->fileValidatorMock, $this->fileSystemMock, - $this->uploaderFactoryMock - ); - - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $objectManager->setBackwardCompatibleProperty( - $model, - 'fileProcessor', - $this->fileProcessorMock - ); - $objectManager->setBackwardCompatibleProperty( - $model, - 'imageContentFactory', + $this->uploaderFactoryMock, + $this->fileProcessorFactory, $this->imageContentFactory ); @@ -124,11 +127,11 @@ public function testValidateIsNotValidFile() 'name' => 'realFileName', ]; - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getStoreLabel') ->willReturn('File Input Field Label'); - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['tmp_name']) ->willReturn(true); @@ -149,11 +152,11 @@ public function testValidate() 'name' => 'logo.gif', ]; - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getStoreLabel') ->willReturn('File Input Field Label'); - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['name']) ->willReturn(true); @@ -186,14 +189,13 @@ public function testValidateMaxFileSize() ->method('getValue') ->willReturn($maxFileSize); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getStoreLabel') ->willReturn('File Input Field Label'); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getValidationRules') ->willReturn([$validationRuleMock]); - - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['name']) ->willReturn(true); @@ -225,14 +227,13 @@ public function testValidateMaxImageWidth() ->method('getValue') ->willReturn($maxImageWidth); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getStoreLabel') ->willReturn('File Input Field Label'); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getValidationRules') ->willReturn([$validationRuleMock]); - - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['name']) ->willReturn(true); @@ -264,14 +265,14 @@ public function testValidateMaxImageHeight() ->method('getValue') ->willReturn($maxImageHeight); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getStoreLabel') ->willReturn('File Input Field Label'); - $this->attributeMetadataMock->expects($this->once()) + $this->attributeMetadataMock->expects($this->atLeastOnce()) ->method('getValidationRules') ->willReturn([$validationRuleMock]); - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['name']) ->willReturn(true); @@ -310,7 +311,7 @@ public function testCompactValueUiComponentAddress() 'file' => 'filename.ext2', ]; - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('moveTemporaryFile') ->with($value['file']) ->willReturn(true); @@ -336,35 +337,35 @@ public function testCompactValueUiComponentCustomer() $base64EncodedData = 'encoded_data'; - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['file']) ->willReturn(true); - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('getBase64EncodedData') ->with(FileProcessor::TMP_DIR . '/' . $value['file']) ->willReturn($base64EncodedData); - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('removeUploadedFile') ->with(FileProcessor::TMP_DIR . '/' . $value['file']) ->willReturnSelf(); $imageContentMock = $this->getMockBuilder('Magento\Framework\Api\Data\ImageContentInterface') ->getMockForAbstractClass(); - $imageContentMock->expects($this->once()) + $imageContentMock->expects($this->atLeastOnce()) ->method('setName') ->with($value['name']) ->willReturnSelf(); - $imageContentMock->expects($this->once()) + $imageContentMock->expects($this->atLeastOnce()) ->method('setBase64EncodedData') ->with($base64EncodedData) ->willReturnSelf(); - $imageContentMock->expects($this->once()) + $imageContentMock->expects($this->atLeastOnce()) ->method('setType') ->with($value['type']) ->willReturnSelf(); - $this->imageContentFactory->expects($this->once()) + $this->imageContentFactory->expects($this->atLeastOnce()) ->method('create') ->willReturn($imageContentMock); @@ -387,7 +388,7 @@ public function testCompactValueUiComponentCustomerNotExists() 'type' => 'image', ]; - $this->fileProcessorMock->expects($this->once()) + $this->fileProcessorMock->expects($this->atLeastOnce()) ->method('isExist') ->with(FileProcessor::TMP_DIR . '/' . $value['file']) ->willReturn(false); diff --git a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php index 631f539cf8aa9..54bb57ebbffc2 100644 --- a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php +++ b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php @@ -24,7 +24,7 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor /** * Http Client Factory * - * @var ZendClientFactory + * @var ZendClientFactory|null */ protected $httpClientFactory; @@ -35,24 +35,19 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor */ private $scopeConfig; - /** - * @var ZendClientFactory|null - */ - private $zendClientFactory; - /** * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param ZendClientFactory|null $zendClientFactory + * @param ZendClientFactory|null $httpClientFactory */ public function __construct( \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - ZendClientFactory $zendClientFactory = null + ZendClientFactory $httpClientFactory = null ) { parent::__construct($currencyFactory); $this->scopeConfig = $scopeConfig; - $this->zendClientFactory = $zendClientFactory ?: ObjectManager::getInstance()->get(ZendClientFactory::class); + $this->httpClientFactory = $httpClientFactory ?: ObjectManager::getInstance()->get(ZendClientFactory::class); } /** @@ -66,7 +61,7 @@ protected function _convert($currencyFrom, $currencyTo, $retry = 0) $url = str_replace('{{CURRENCY_FROM}}', $currencyFrom, self::CURRENCY_CONVERTER_URL); $url = str_replace('{{CURRENCY_TO}}', $currencyTo, $url); /** @var \Magento\Framework\HTTP\ZendClient $httpClient */ - $httpClient = $this->zendClientFactory->create(); + $httpClient = $this->httpClientFactory->create(); try { $response = $httpClient->setUri( diff --git a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Product/Initialization/Helper/Plugin/DownloadableTest.php b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Product/Initialization/Helper/Plugin/DownloadableTest.php index 8d37518d64b66..a2fa45e483294 100644 --- a/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Product/Initialization/Helper/Plugin/DownloadableTest.php +++ b/app/code/Magento/Downloadable/Test/Unit/Controller/Adminhtml/Product/Initialization/Helper/Plugin/DownloadableTest.php @@ -40,42 +40,49 @@ class DownloadableTest extends \PHPUnit_Framework_TestCase protected $sampleFactoryMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Json\Helper\Data + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Downloadable\Model\linkFactory */ - protected $jsonHelperMock; + protected $linkFactory; /** - * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Downloadable\Model\linkFactory + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Downloadable\Model\Sample\Builder */ - protected $linkFactory; + private $sampleBuilder; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Downloadable\Model\Link\Builder + */ + private $linkBuilder; protected function setUp() { - $this->jsonHelperMock = $this->getMock(\Magento\Framework\Json\Helper\Data::class, [], [], '', false); - $this->requestMock = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false); - $this->productMock = $this->getMock( - 'Magento\Catalog\Model\Product', - ['setDownloadableData', 'getExtensionAttributes', '__wakeup'], - [], - '', - false - ); - $this->subjectMock = $this->getMock( - 'Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper', - [], - [], - '', - false - ); + $this->requestMock = $this->getMockBuilder(\Magento\Framework\App\Request\Http::class) + ->disableOriginalConstructor() + ->getMock(); + $this->productMock = $this->getMockBuilder(\Magento\Catalog\Model\Product::class) + ->setMethods(['setDownloadableData', 'getExtensionAttributes']) + ->disableOriginalConstructor() + ->getMock(); + $this->subjectMock = $this->getMockBuilder( + \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper::class + )->disableOriginalConstructor()->getMock(); $this->extensionAttributesMock = $this->getMockBuilder(ProductExtensionInterface::class) ->disableOriginalConstructor() ->setMethods(['setDownloadableProductSamples', 'setDownloadableProductLinks']) ->getMockForAbstractClass(); - $this->sampleFactoryMock = $this->getMockBuilder('\Magento\Downloadable\Api\Data\SampleInterfaceFactory') + $this->sampleFactoryMock = $this->getMockBuilder(\Magento\Downloadable\Api\Data\SampleInterfaceFactory::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->sampleBuilder = $this->getMockBuilder(\Magento\Downloadable\Model\Sample\Builder::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->linkFactory = $this->getMockBuilder(\Magento\Downloadable\Api\Data\LinkInterfaceFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); - $this->linkFactoryMock = $this->getMockBuilder('\Magento\Downloadable\Api\Data\LinkInterfaceFactory') + $this->linkBuilder = $this->getMockBuilder(\Magento\Downloadable\Model\Link\Builder::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); @@ -83,8 +90,9 @@ protected function setUp() new \Magento\Downloadable\Controller\Adminhtml\Product\Initialization\Helper\Plugin\Downloadable( $this->requestMock, $this->sampleFactoryMock, - $this->linkFactoryMock, - $this->jsonHelperMock + $this->sampleBuilder, + $this->linkFactory, + $this->linkBuilder ); } diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php index 788cab10fde2f..d8dbc54a81849 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php @@ -5,6 +5,7 @@ */ namespace Magento\Indexer\Console\Command; +use Magento\Framework\App\ObjectManager; use Magento\Framework\App\ObjectManagerFactory; use Magento\Framework\Indexer\IndexerInterface; use Magento\Indexer\Model\IndexerFactory; diff --git a/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php index 24a6f32b37a8d..0137c1fda4bdb 100644 --- a/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php +++ b/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php @@ -146,6 +146,11 @@ protected function setUp() $this->customerSessionMock->expects($this->atLeastOnce())->method('getCustomerDataObject') ->willReturn($this->customerMock); $this->totalsCollectorMock = $this->createSimpleMock(TotalsCollector::class); + $this->cartExtensionFactoryMock = $this->getMockBuilder(CartExtensionFactory::class) + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $this->shippingAssignmentProcessorMock = $this->createSimpleMock(ShippingAssignmentProcessor::class); $this->model = new Multishipping( $this->checkoutSessionMock, $this->customerSessionMock, @@ -168,24 +173,8 @@ protected function setUp() $this->searchCriteriaBuilderMock, $this->filterBuilderMock, $this->totalsCollectorMock, - $data - ); - - $this->cartExtensionFactoryMock = $this->getMockBuilder(CartExtensionFactory::class) - ->setMethods(['create']) - ->disableOriginalConstructor() - ->getMock(); - $this->shippingAssignmentProcessorMock = $this->createSimpleMock(ShippingAssignmentProcessor::class); - - $objectManager = new ObjectManager($this); - $objectManager->setBackwardCompatibleProperty( - $this->model, - 'cartExtensionFactory', - $this->cartExtensionFactoryMock - ); - $objectManager->setBackwardCompatibleProperty( - $this->model, - 'shippingAssignmentProcessor', + $data, + $this->cartExtensionFactoryMock, $this->shippingAssignmentProcessorMock ); } diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php index 26a51d25b127d..bb365f54daf10 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php @@ -126,6 +126,16 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase */ private $quoteIdMock; + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\QuoteFactory + */ + private $quoteFactory; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\QuoteIdMaskFactory + */ + private $quoteIdMaskFactory; + /** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ @@ -237,7 +247,14 @@ protected function setUp() false ); - $this->quoteFactoryMock = $this->getMock('\Magento\Quote\Model\QuoteFactory', ['create'], [], '', false); + $this->quoteFactory = $this->getMockBuilder(\Magento\Quote\Model\QuoteFactory::class) + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $this->quoteIdMaskFactory = $this->getMockBuilder(\Magento\Quote\Model\QuoteIdMaskFactory::class) + ->setMethods(['crete']) + ->disableOriginalConstructor() + ->getMock(); $this->model = $objectManager->getObject( '\Magento\Quote\Model\QuoteManagement', [ @@ -260,7 +277,8 @@ protected function setUp() 'checkoutSession' => $this->checkoutSessionMock, 'customerSession' => $this->customerSessionMock, 'accountManagement' => $this->accountManagementMock, - 'quoteFactory' => $this->quoteFactoryMock + 'quoteFactory' => $this->quoteFactory, + 'quoteIdMaskFactory' => $this->quoteIdMaskFactory ] ); @@ -285,7 +303,7 @@ public function testCreateEmptyCartAnonymous() $this->quoteAddressFactory->expects($this->any())->method('create')->willReturn($quoteAddress); - $this->quoteFactoryMock->expects($this->once())->method('create')->willReturn($quoteMock); + $this->quoteFactory->expects($this->once())->method('create')->willReturn($quoteMock); $quoteMock->expects($this->any())->method('setStoreId')->with($storeId); $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock); @@ -311,7 +329,7 @@ public function testCreateEmptyCartForCustomer() ->with($userId) ->willThrowException(new NoSuchEntityException()); - $this->quoteFactoryMock->expects($this->once())->method('create')->willReturn($quoteMock); + $this->quoteFactory->expects($this->once())->method('create')->willReturn($quoteMock); $quoteMock->expects($this->any())->method('setStoreId')->with($storeId); $quoteMock->expects($this->any())->method('setCustomerIsGuest')->with(0); @@ -336,7 +354,7 @@ public function testCreateEmptyCartForCustomerReturnExistsQuote() ->method('getActiveForCustomer') ->with($userId)->willReturn($quoteMock); - $this->quoteFactoryMock->expects($this->never())->method('create')->willReturn($quoteMock); + $this->quoteFactory->expects($this->never())->method('create')->willReturn($quoteMock); $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock); $this->storeManagerMock->expects($this->once())->method('getStore')->willReturnSelf(); @@ -705,32 +723,33 @@ public function testPlaceOrderIfCustomerIsGuest() ->with(\Magento\Customer\Api\Data\GroupInterface::NOT_LOGGED_IN_ID); /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\QuoteManagement $service */ - $service = $this->getMock( - '\Magento\Quote\Model\QuoteManagement', - ['submit'], - [ - 'eventManager' => $this->eventManager, - 'quoteValidator' => $this->quoteValidator, - 'orderFactory' => $this->orderFactory, - 'orderManagement' => $this->orderManagement, - 'customerManagement' => $this->customerManagement, - 'quoteAddressToOrder' => $this->quoteAddressToOrder, - 'quoteAddressToOrderAddress' => $this->quoteAddressToOrderAddress, - 'quoteItemToOrderItem' => $this->quoteItemToOrderItem, - 'quotePaymentToOrderPayment' => $this->quotePaymentToOrderPayment, - 'userContext' => $this->userContextMock, - 'quoteRepository' => $this->quoteRepositoryMock, - 'customerRepository' => $this->customerRepositoryMock, - 'customerModelFactory' => $this->customerFactoryMock, - 'quoteAddressFactory' => $this->quoteAddressFactory, - 'dataObjectHelper' => $this->dataObjectHelperMock, - 'storeManager' => $this->storeManagerMock, - 'checkoutSession' => $this->checkoutSessionMock, - 'customerSession' => $this->customerSessionMock, - 'accountManagement' => $this->accountManagementMock, - 'quoteFactory' => $this->quoteFactoryMock - ] - ); + $service = $this->getMockBuilder(\Magento\Quote\Model\QuoteManagement::class) + ->setMethods(['submit']) + ->setConstructorArgs( + [ + 'eventManager' => $this->eventManager, + 'quoteValidator' => $this->quoteValidator, + 'orderFactory' => $this->orderFactory, + 'orderManagement' => $this->orderManagement, + 'customerManagement' => $this->customerManagement, + 'quoteAddressToOrder' => $this->quoteAddressToOrder, + 'quoteAddressToOrderAddress' => $this->quoteAddressToOrderAddress, + 'quoteItemToOrderItem' => $this->quoteItemToOrderItem, + 'quotePaymentToOrderPayment' => $this->quotePaymentToOrderPayment, + 'userContext' => $this->userContextMock, + 'quoteRepository' => $this->quoteRepositoryMock, + 'customerRepository' => $this->customerRepositoryMock, + 'customerModelFactory' => $this->customerFactoryMock, + 'quoteAddressFactory' => $this->quoteAddressFactory, + 'dataObjectHelper' => $this->dataObjectHelperMock, + 'storeManager' => $this->storeManagerMock, + 'checkoutSession' => $this->checkoutSessionMock, + 'customerSession' => $this->customerSessionMock, + 'accountManagement' => $this->accountManagementMock, + 'quoteFactory' => $this->quoteFactory, + 'quoteIdMaskFactory' => $this->quoteIdMaskFactory + ] + )->getMock(); $orderMock = $this->getMock( '\Magento\Sales\Model\Order', [], @@ -763,32 +782,34 @@ public function testPlaceOrder() $orderStatus = 'status1'; /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\QuoteManagement $service */ - $service = $this->getMock( - '\Magento\Quote\Model\QuoteManagement', - ['submit'], - [ - 'eventManager' => $this->eventManager, - 'quoteValidator' => $this->quoteValidator, - 'orderFactory' => $this->orderFactory, - 'orderManagement' => $this->orderManagement, - 'customerManagement' => $this->customerManagement, - 'quoteAddressToOrder' => $this->quoteAddressToOrder, - 'quoteAddressToOrderAddress' => $this->quoteAddressToOrderAddress, - 'quoteItemToOrderItem' => $this->quoteItemToOrderItem, - 'quotePaymentToOrderPayment' => $this->quotePaymentToOrderPayment, - 'userContext' => $this->userContextMock, - 'quoteRepository' => $this->quoteRepositoryMock, - 'customerRepository' => $this->customerRepositoryMock, - 'customerModelFactory' => $this->customerFactoryMock, - 'quoteAddressFactory' => $this->quoteAddressFactory, - 'dataObjectHelper' => $this->dataObjectHelperMock, - 'storeManager' => $this->storeManagerMock, - 'checkoutSession' => $this->checkoutSessionMock, - 'customerSession' => $this->customerSessionMock, - 'accountManagement' => $this->accountManagementMock, - 'quoteFactory' => $this->quoteFactoryMock - ] - ); + $service = $this->getMockBuilder(\Magento\Quote\Model\QuoteManagement::class) + ->setMethods(['submit']) + ->setConstructorArgs( + [ + 'eventManager' => $this->eventManager, + 'quoteValidator' => $this->quoteValidator, + 'orderFactory' => $this->orderFactory, + 'orderManagement' => $this->orderManagement, + 'customerManagement' => $this->customerManagement, + 'quoteAddressToOrder' => $this->quoteAddressToOrder, + 'quoteAddressToOrderAddress' => $this->quoteAddressToOrderAddress, + 'quoteItemToOrderItem' => $this->quoteItemToOrderItem, + 'quotePaymentToOrderPayment' => $this->quotePaymentToOrderPayment, + 'userContext' => $this->userContextMock, + 'quoteRepository' => $this->quoteRepositoryMock, + 'customerRepository' => $this->customerRepositoryMock, + 'customerModelFactory' => $this->customerFactoryMock, + 'quoteAddressFactory' => $this->quoteAddressFactory, + 'dataObjectHelper' => $this->dataObjectHelperMock, + 'storeManager' => $this->storeManagerMock, + 'checkoutSession' => $this->checkoutSessionMock, + 'customerSession' => $this->customerSessionMock, + 'accountManagement' => $this->accountManagementMock, + 'quoteFactory' => $this->quoteFactory, + 'quoteIdMaskFactory' => $this->quoteIdMaskFactory + ] + )->getMock(); + $orderMock = $this->getMock( '\Magento\Sales\Model\Order', [], @@ -842,12 +863,12 @@ public function testPlaceOrder() /** * @param $isGuest * @param $isVirtual - * @param Quote\Address $billingAddress - * @param Quote\Payment $payment + * @param \Magento\Quote\Model\Quote\Address $billingAddress + * @param \Magento\Quote\Model\Quote\Payment $payment * @param $customerId * @param $id * @param array $quoteItems - * @param Quote\Address $shippingAddress + * @param \Magento\Quote\Model\Quote\Address $shippingAddress * @return \PHPUnit_Framework_MockObject_MockObject */ protected function getQuote( @@ -860,66 +881,40 @@ protected function getQuote( array $quoteItems, \Magento\Quote\Model\Quote\Address $shippingAddress = null ) { - $quote = $this->getMock( - 'Magento\Quote\Model\Quote', - [ - 'setIsActive', - 'getCustomerEmail', - 'getAllVisibleItems', - 'getCustomerIsGuest', - 'isVirtual', - 'getBillingAddress', - 'getShippingAddress', - 'getId', - 'getCustomer', - 'getAllItems', - 'getPayment', - 'reserveOrderId' - ], - [], - '', - false - ); - $quote->expects($this->once()) - ->method('setIsActive') - ->with(false); - $quote->expects($this->any()) - ->method('getAllVisibleItems') - ->willReturn($quoteItems); - $quote->expects($this->once()) - ->method('getAllItems') - ->willReturn($quoteItems); - $quote->expects($this->once()) - ->method('getCustomerIsGuest') - ->willReturn($isGuest); - $quote->expects($this->once()) - ->method('isVirtual') - ->willReturn($isVirtual); + $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class) + ->setMethods( + [ + 'setIsActive', + 'getCustomerEmail', + 'getAllVisibleItems', + 'getCustomerIsGuest', + 'isVirtual', + 'getBillingAddress', + 'getShippingAddress', + 'getId', + 'getCustomer', + 'getAllItems', + 'getPayment', + 'reserveOrderId' + ] + )->disableOriginalConstructor()->getMock(); + $quote->expects($this->once())->method('setIsActive')->with(false); + $quote->expects($this->any())->method('getAllVisibleItems')->willReturn($quoteItems); + $quote->expects($this->once())->method('getAllItems')->willReturn($quoteItems); + $quote->expects($this->once())->method('getCustomerIsGuest')->willReturn($isGuest); + $quote->expects($this->once())->method('isVirtual')->willReturn($isVirtual); if ($shippingAddress) { $quote->expects($this->exactly(3)) ->method('getShippingAddress') ->willReturn($shippingAddress); } - $quote->expects($this->once()) - ->method('getBillingAddress') - ->willReturn($billingAddress); - $quote->expects($this->once()) - ->method('getPayment') - ->willReturn($payment); - - $customer = $this->getMock('Magento\Customer\Model\Customer', [], [], '', false); - $customer->expects($this->once()) - ->method('getId') - ->willReturn($customerId); - $quote->expects($this->atLeastOnce()) - ->method('getCustomerEmail') - ->willReturn('customer@example.com'); - $quote->expects($this->any()) - ->method('getCustomer') - ->willReturn($customer); - $quote->expects($this->once()) - ->method('getId') - ->willReturn($id); + $quote->expects($this->once())->method('getBillingAddress')->willReturn($billingAddress); + $quote->expects($this->once())->method('getPayment')->willReturn($payment); + $customer = $this->getMockBuilder('Magento\Customer\Model\Customer')->disableOriginalConstructor()->getMock(); + $customer->expects($this->once())->method('getId')->willReturn($customerId); + $quote->expects($this->atLeastOnce())->method('getCustomerEmail')->willReturn('customer@example.com'); + $quote->expects($this->any())->method('getCustomer')->willReturn($customer); + $quote->expects($this->once())->method('getId')->willReturn($id); return $quote; } @@ -944,14 +939,21 @@ protected function prepareOrderFactory( \Magento\Sales\Api\Data\OrderAddressInterface $shippingAddress = null, $customerId = null ) { - $order = $this->getMock( - 'Magento\Sales\Model\Order', - ['setShippingAddress', 'getAddressesCollection', 'getAddresses', 'getBillingAddress', 'addAddresses', - 'setBillingAddress', 'setAddresses', 'setPayment', 'setItems', 'setQuoteId'], - [], - '', - false - ); + $order = $this->getMockBuilder(\Magento\Sales\Model\Order::class) + ->setMethods( + [ + 'setShippingAddress', + 'getAddressesCollection', + 'getAddresses', + 'getBillingAddress', + 'addAddresses', + 'setBillingAddress', + 'setAddresses', + 'setPayment', + 'setItems', + 'setQuoteId' + ] + )->disableOriginalConstructor()->getMock(); $this->orderFactory->expects($this->once()) ->method('create') @@ -984,7 +986,9 @@ protected function prepareOrderFactory( public function testGetCartForCustomer() { $customerId = 100; - $cartMock = $this->getMock('\Magento\Quote\Model\Quote', [], [], '', false); + $cartMock = $this->getMockBuilder(\Magento\Quote\Model\Quote::class) + ->disableOriginalConstructor() + ->getMock(); $this->quoteRepositoryMock->expects($this->once()) ->method('getActiveForCustomer') ->with($customerId) diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php index c5c443795e845..05dfba0bbda0d 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php @@ -47,9 +47,9 @@ class QuoteRepositoryTest extends \PHPUnit_Framework_TestCase protected $searchResultsDataFactory; /** - * @var \Magento\Quote\Model\ResourceModel\Quote\Collection|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Quote\Model\ResourceModel\Quote\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $quoteCollectionMock; + protected $quoteCollectionFactory; /** * @var JoinProcessorInterface|\PHPUnit_Framework_MockObject_MockObject @@ -93,9 +93,9 @@ protected function setUp() false ); - $this->quoteCollectionMock = - $this->getMock('Magento\Quote\Model\ResourceModel\Quote\Collection', [], [], '', false); - + $this->quoteCollectionFactory = $this->getMockBuilder( + 'Magento\Quote\Model\ResourceModel\Quote\CollectionFactory' + )->disableOriginalConstructor()->setMethods(['create'])->getMock(); $this->extensionAttributesJoinProcessorMock = $this->getMock( 'Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface', [], @@ -110,7 +110,7 @@ protected function setUp() 'quoteFactory' => $this->quoteFactoryMock, 'storeManager' => $this->storeManagerMock, 'searchResultsDataFactory' => $this->searchResultsDataFactory, - 'quoteCollection' => $this->quoteCollectionMock, + 'quoteCollectionFactory' => $this->quoteCollectionFactory, 'extensionAttributesJoinProcessor' => $this->extensionAttributesJoinProcessorMock ] ); @@ -435,7 +435,11 @@ public function testGetListSuccess($direction, $expectedDirection) $filterMock->expects($this->once())->method('getValue')->will($this->returnValue('filter_value')); //back in getList() - $this->quoteCollectionMock->expects($this->once())->method('getSize')->willReturn($pageSize); + $quoteCollection = $this->getMockBuilder('Magento\Quote\Model\ResourceModel\Quote\Collection') + ->disableOriginalConstructor() + ->getMock(); + $quoteCollection->expects($this->once())->method('getSize')->willReturn($pageSize); + $this->quoteCollectionFactory->expects($this->atLeastOnce())->method('create')->willReturn($quoteCollection); $searchResult->expects($this->once())->method('setTotalCount')->with($pageSize); $sortOrderMock = $this->getMockBuilder('Magento\Framework\Api\SortOrder') ->setMethods(['getField', 'getDirection']) diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php b/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php index 6539f867ad953..38a370368cf10 100644 --- a/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/AutogeneratedClassNotInConstructorFinder.php @@ -1,10 +1,12 @@ getParameters(); foreach ($classParameters as $classParameter) { - if ($classParameter->getType()) { - $parameterType = $classParameter->getType(); - $arguments[] = ltrim($parameterType, '\\'); + try { + /** @var ParameterReflection $classParameter */ + $dependency = $classParameter->getClass(); + if ($dependency instanceof \ReflectionClass) { + $arguments[] = $dependency->getName(); + } + } catch (\ReflectionException $e) { + if (preg_match('#^Class ([A-Za-z0-9_\\\\]+) does not exist$#', $e->getMessage(), $result)) { + $arguments[] = $result[1]; + } else { + throw $e; + } } } } @@ -146,7 +159,16 @@ private function matchPartialNamespace($fileContent, $shortName) if ($forwardSlashPos && isset($partialNamespaceMatches[1][0])) { $class = $partialNamespaceMatches[1][0] . $shortName; } else { - $class = $this->classNameExtractor->getNamespace($fileContent) . '\\' . $shortName; + preg_match_all( + '/^use\s([a-z0-9\\\\]+)\sas\s' . $partialNamespace . ';$/im', + $fileContent, + $partialNamespaceMatches + ); + if ($forwardSlashPos && isset($partialNamespaceMatches[1][0])) { + $class = str_replace($partialNamespace, $partialNamespaceMatches[1][0], $shortName); + } else { + $class = $this->classNameExtractor->getNamespace($fileContent) . '\\' . $shortName; + } } } } diff --git a/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php b/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php index 6470bc0c22086..e5c243a53dd49 100644 --- a/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php +++ b/dev/tests/static/framework/Magento/TestFramework/Utility/ChangedFiles.php @@ -1,9 +1,8 @@ ruleFactory = $ruleFactory ?: $this->fixtureModel->getObjectManager() + ->get(\Magento\SalesRule\Model\RuleFactory::class); + } + /** * {@inheritdoc} * @SuppressWarnings(PHPMD) @@ -62,8 +80,6 @@ public function execute() $storeManager = $this->fixtureModel->getObjectManager()->create(\Magento\Store\Model\StoreManager::class); /** @var $category \Magento\Catalog\Model\Category */ $category = $this->fixtureModel->getObjectManager()->get(\Magento\Catalog\Model\Category::class); - /** @var $model \Magento\SalesRule\Model\RuleFactory */ - $modelFactory = $this->fixtureModel->getObjectManager()->get(\Magento\SalesRule\Model\RuleFactory::class); //Get all websites $categoriesArray = []; @@ -90,9 +106,9 @@ public function execute() $categoriesArray = array_values($categoriesArray); if ($this->cartRulesAdvancedType == false) { - $this->generateRules($modelFactory, $categoriesArray); + $this->generateRules($this->ruleFactory, $categoriesArray); } else { - $this->generateAdvancedRules($modelFactory, $categoriesArray); + $this->generateAdvancedRules($this->ruleFactory, $categoriesArray); } } @@ -142,11 +158,11 @@ public function generateCondition($ruleId, $categoriesArray) } /** - * @param \Magento\SalesRule\Model\RuleFactory $modelFactory + * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory * @param array $categoriesArray * @return void */ - public function generateRules($modelFactory, $categoriesArray) + public function generateRules($ruleFactory, $categoriesArray) { for ($i = 0; $i < $this->cartPriceRulesCount; $i++) { $ruleName = sprintf('Cart Price Rule %1$d', $i); @@ -218,11 +234,11 @@ public function generateRules($modelFactory, $categoriesArray) } unset($data['rule']); - $model = $modelFactory->create(); - $model->loadPost($data); + $rule = $ruleFactory->create(); + $rule->loadPost($data); $useAutoGeneration = (int)!empty($data['use_auto_generation']); - $model->setUseAutoGeneration($useAutoGeneration); - $model->save(); + $rule->setUseAutoGeneration($useAutoGeneration); + $rule->save(); } } @@ -327,11 +343,11 @@ public function generateAdvancedCondition($ruleId, $categoriesArray) } /** - * @param \Magento\SalesRule\Model\RuleFactory $modelFactory + * @param \Magento\SalesRule\Model\RuleFactory $ruleFactory * @param array $categoriesArray * @return void */ - public function generateAdvancedRules($modelFactory, $categoriesArray) + public function generateAdvancedRules($ruleFactory, $categoriesArray) { $j = 0; for ($i = 0; $i < $this->cartPriceRulesCount; $i++) { @@ -409,11 +425,11 @@ public function generateAdvancedRules($modelFactory, $categoriesArray) } unset($data['rule']); - $model = $modelFactory->create(); - $model->loadPost($data); + $rule = $ruleFactory->create(); + $rule->loadPost($data); $useAutoGeneration = (int)!empty($data['use_auto_generation']); - $model->setUseAutoGeneration($useAutoGeneration); - $model->save(); + $rule->setUseAutoGeneration($useAutoGeneration); + $rule->save(); } } diff --git a/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php b/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php index fed645e975ed1..98cc8b9649f7a 100644 --- a/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php +++ b/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php @@ -5,8 +5,16 @@ */ namespace Magento\Setup\Model; +use Magento\Framework\ObjectManagerInterface; +use Magento\Setup\Fixtures\FixtureConfig; +use Magento\Setup\Model\Description\DescriptionSentenceGeneratorFactory; +use Magento\Setup\Model\Description\DescriptionParagraphGeneratorFactory; +use Magento\Setup\Model\Description\DescriptionGeneratorFactory; +use Magento\Setup\Model\DictionaryFactory; +use Magento\Setup\Model\SearchTermManagerFactory; + /** - * Search Term Description Generator Factory + * Search term description generator factory * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class SearchTermDescriptionGeneratorFactory @@ -22,15 +30,60 @@ class SearchTermDescriptionGeneratorFactory private $fixtureConfig; /** - * @param \Magento\Framework\ObjectManagerInterface $objectManager - * @param \Magento\Setup\Fixtures\FixtureConfig $fixtureConfig + * @var \Magento\Setup\Model\Description\DescriptionSentenceGeneratorFactory + */ + private $sentenceGeneratorFactory; + + /** + * @var \Magento\Setup\Model\Description\DescriptionParagraphGeneratorFactory + */ + private $paragraphGeneratorFactory; + + /** + * @var \Magento\Setup\Model\Description\DescriptionGeneratorFactory + */ + private $descriptionGeneratorFactory; + + /** + * @var \Magento\Setup\Model\DictionaryFactory + */ + private $dictionaryFactory; + + /** + * @var \Magento\Setup\Model\SearchTermManagerFactory + */ + private $searchTermManagerFactory; + + /** + * @param ObjectManagerInterface $objectManager + * @param FixtureConfig $fixtureConfig + * @param DescriptionSentenceGeneratorFactory|null $descriptionSentenceGeneratorFactory + * @param DescriptionParagraphGeneratorFactory|null $descriptionParagraphGeneratorFactory + * @param DescriptionGeneratorFactory|null $descriptionGeneratorFactory + * @param DictionaryFactory|null $dictionaryFactory + * @param SearchTermManagerFactory|null $searchTermManagerFactory */ public function __construct( - \Magento\Framework\ObjectManagerInterface $objectManager, - \Magento\Setup\Fixtures\FixtureConfig $fixtureConfig + ObjectManagerInterface $objectManager, + FixtureConfig $fixtureConfig, + DescriptionSentenceGeneratorFactory $descriptionSentenceGeneratorFactory = null, + DescriptionParagraphGeneratorFactory $descriptionParagraphGeneratorFactory = null, + DescriptionGeneratorFactory $descriptionGeneratorFactory = null, + DictionaryFactory $dictionaryFactory = null, + SearchTermManagerFactory $searchTermManagerFactory = null ) { $this->objectManager = $objectManager; $this->fixtureConfig = $fixtureConfig; + $this->sentenceGeneratorFactory = $descriptionSentenceGeneratorFactory + ?: $objectManager->get(\Magento\Setup\Model\Description\DescriptionSentenceGeneratorFactory::class); + $this->paragraphGeneratorFactory = $descriptionParagraphGeneratorFactory + ?: $objectManager->get(\Magento\Setup\Model\Description\DescriptionParagraphGeneratorFactory::class); + $this->descriptionGeneratorFactory = $descriptionGeneratorFactory + ?: $objectManager->get(\Magento\Setup\Model\Description\DescriptionGeneratorFactory::class); + $this->dictionaryFactory = $dictionaryFactory + ?: $objectManager->get(\Magento\Setup\Model\DictionaryFactory::class); + $this->searchTermManagerFactory = $searchTermManagerFactory + ?: $objectManager->get(\Magento\Setup\Model\SearchTermManagerFactory::class); } /** @@ -92,32 +145,19 @@ function (&$searchTerm, $key, $websitesCount) { */ private function buildDescriptionGenerator(array $descriptionConfig) { - $sentenceGeneratorFactory = $this->objectManager->create( - \Magento\Setup\Model\Description\DescriptionSentenceGeneratorFactory::class - ); - $paragraphGeneratorFactory = $this->objectManager->create( - \Magento\Setup\Model\Description\DescriptionParagraphGeneratorFactory::class - ); - $descriptionGeneratorFactory = $this->objectManager->create( - \Magento\Setup\Model\Description\DescriptionGeneratorFactory::class - ); - $dictionaryFactory = $this->objectManager->create( - \Magento\Setup\Model\DictionaryFactory::class - ); - - $sentenceGenerator = $sentenceGeneratorFactory->create([ - 'dictionary' => $dictionaryFactory->create([ + $sentenceGenerator = $this->sentenceGeneratorFactory->create([ + 'dictionary' => $this->dictionaryFactory->create([ 'dictionaryFilePath' => realpath(__DIR__ . '/../Fixtures/_files/dictionary.csv') ]), 'sentenceConfig' => $descriptionConfig['paragraphs']['sentences'] ]); - $paragraphGenerator = $paragraphGeneratorFactory->create([ + $paragraphGenerator = $this->paragraphGeneratorFactory->create([ 'sentenceGenerator' => $sentenceGenerator, 'paragraphConfig' => $descriptionConfig['paragraphs'] ]); - $descriptionGenerator = $descriptionGeneratorFactory->create([ + $descriptionGenerator = $this->descriptionGeneratorFactory->create([ 'paragraphGenerator' => $paragraphGenerator, 'mixinManager' => $this->objectManager->create(\Magento\Setup\Model\Description\MixinManager::class), 'descriptionConfig' => $descriptionConfig @@ -135,13 +175,11 @@ private function buildDescriptionGenerator(array $descriptionConfig) */ private function buildSearchTermManager(array $searchTermsConfig, $totalProductsCount) { - $searchTermManagerFactory = $this->objectManager->get( - \Magento\Setup\Model\SearchTermManagerFactory::class + return $this->searchTermManagerFactory->create( + [ + 'searchTerms' => $searchTermsConfig, + 'totalProductsCount' => $totalProductsCount + ] ); - - return $searchTermManagerFactory->create([ - 'searchTerms' => $searchTermsConfig, - 'totalProductsCount' => $totalProductsCount - ]); } } diff --git a/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php b/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php index 7e5d6eb3b4905..3ea2eea847001 100644 --- a/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php +++ b/setup/src/Magento/Setup/Mvc/Bootstrap/InitParamListener.php @@ -23,7 +23,7 @@ use Zend\Stdlib\RequestInterface; /** - * A listener that injects relevant Magento initialization parameters and initializes Magento\Filesystem component. + * A listener that injects relevant Magento initialization parameters and initializes filesystem. * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ @@ -35,8 +35,6 @@ class InitParamListener implements ListenerAggregateInterface, FactoryInterface const BOOTSTRAP_PARAM = 'magento-init-params'; /** - * List of ZF event listeners - * * @var \Zend\Stdlib\CallbackHandler[] */ private $listeners = []; @@ -170,9 +168,9 @@ private function getSetupCookiePath(\Magento\Framework\ObjectManagerInterface $o /** @var \Magento\Backend\App\BackendAppList $backendAppList */ $backendAppList = $objectManager->get(\Magento\Backend\App\BackendAppList::class); $backendApp = $backendAppList->getBackendApp('setup'); - /** @var \Magento\Backend\Model\UrlFactory $backendUrlFactory */ - $backendUrlFactory = $objectManager->get(\Magento\Backend\Model\UrlFactory::class); - $baseUrl = parse_url($backendUrlFactory->create()->getBaseUrl(), PHP_URL_PATH); + /** @var \Magento\Backend\Model\Url $url */ + $url = $objectManager->create(\Magento\Backend\Model\Url::class); + $baseUrl = parse_url($url->getBaseUrl(), PHP_URL_PATH); $baseUrl = \Magento\Framework\App\Request\Http::getUrlNoScript($baseUrl); $cookiePath = $baseUrl . $backendApp->getCookiePath(); return $cookiePath; diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php index c8eb60180e843..e13a8ee4def32 100755 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php @@ -6,7 +6,7 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\CartPriceRulesFixture; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -16,8 +16,13 @@ class CartPriceRulesFixtureTest extends \PHPUnit_Framework_TestCase /** * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Setup\Fixtures\FixtureModel */ - private $fixtureModelMock; + private $fixtureModel; + /** + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\SalesRule\Model\RuleFactory + */ + private $ruleFactory; + /** * @var \Magento\Setup\Fixtures\CartPriceRulesFixture */ @@ -25,27 +30,42 @@ class CartPriceRulesFixtureTest extends \PHPUnit_Framework_TestCase public function setUp() { - $this->fixtureModelMock = $this->getMock(\Magento\Setup\Fixtures\FixtureModel::class, [], [], '', false); - - $this->model = new CartPriceRulesFixture($this->fixtureModelMock); + $objectManagerHelper = new ObjectManagerHelper($this); + $this->fixtureModel = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) + ->disableOriginalConstructor() + ->getMock(); + $this->ruleFactory = $this->getMockBuilder(\Magento\SalesRule\Model\RuleFactory::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->model = $objectManagerHelper->getObject( + \Magento\Setup\Fixtures\CartPriceRulesFixture::class, + ['fixtureModel' => $this->fixtureModel, 'ruleFactory' => $this->ruleFactory] + ); } public function testExecute() { - $storeMock = $this->getMock(\Magento\Store\Model\Store::class, [], [], '', false); - $storeMock->expects($this->once()) + $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class) + ->disableOriginalConstructor() + ->getMock(); + $storeMock->expects($this->atLeastOnce()) ->method('getRootCategoryId') ->will($this->returnValue(2)); - $websiteMock = $this->getMock(\Magento\Store\Model\Website::class, [], [], '', false); - $websiteMock->expects($this->once()) + $websiteMock = $this->getMockBuilder(\Magento\Store\Model\Website::class) + ->disableOriginalConstructor() + ->getMock(); + $websiteMock->expects($this->atLeastOnce()) ->method('getGroups') ->will($this->returnValue([$storeMock])); - $websiteMock->expects($this->once()) + $websiteMock->expects($this->atLeastOnce()) ->method('getId') ->will($this->returnValue('website_id')); - $contextMock = $this->getMock(\Magento\Framework\Model\ResourceModel\Db\Context::class, [], [], '', false); + $contextMock = $this->getMockBuilder(\Magento\Framework\Model\ResourceModel\Db\Context::class) + ->disableOriginalConstructor() + ->getMock(); $abstractDbMock = $this->getMockForAbstractClass( \Magento\Framework\Model\ResourceModel\Db\AbstractDb::class, [$contextMock], @@ -55,42 +75,41 @@ public function testExecute() true, ['getAllChildren'] ); - $abstractDbMock->expects($this->once()) + $abstractDbMock->expects($this->atLeastOnce()) ->method('getAllChildren') ->will($this->returnValue([1])); - $storeManagerMock = $this->getMock(\Magento\Store\Model\StoreManager::class, [], [], '', false); - $storeManagerMock->expects($this->once()) + $storeManagerMock = $this->getMockBuilder(\Magento\Store\Model\StoreManager::class) + ->disableOriginalConstructor() + ->getMock(); + $storeManagerMock->expects($this->atLeastOnce()) ->method('getWebsites') ->will($this->returnValue([$websiteMock])); - $categoryMock = $this->getMock(\Magento\Catalog\Model\Category::class, [], [], '', false); - $categoryMock->expects($this->once()) + $categoryMock = $this->getMockBuilder(\Magento\Catalog\Model\Category::class) + ->disableOriginalConstructor() + ->getMock(); + $categoryMock->expects($this->atLeastOnce()) ->method('getResource') ->will($this->returnValue($abstractDbMock)); - $categoryMock->expects($this->once()) + $categoryMock->expects($this->atLeastOnce()) ->method('getPath') ->will($this->returnValue('path/to/file')); - $categoryMock->expects($this->once()) + $categoryMock->expects($this->atLeastOnce()) ->method('getId') ->will($this->returnValue('category_id')); - $modelMock = $this->getMock(\Magento\SalesRule\Model\Rule::class, [], [], '', false); - $modelFactoryMock = $this->getMock(\Magento\SalesRule\Model\RuleFactory::class, ['create'], [], '', false); - $modelFactoryMock->expects($this->once()) - ->method('create') - ->willReturn($modelMock); - $objectValueMap = [ - [\Magento\SalesRule\Model\RuleFactory::class, $modelFactoryMock], [\Magento\Catalog\Model\Category::class, $categoryMock] ]; - $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManager\ObjectManager::class, [], [], '', false); - $objectManagerMock->expects($this->once()) + $objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManager\ObjectManager::class) + ->disableOriginalConstructor() + ->getMock(); + $objectManagerMock->expects($this->atLeastOnce()) ->method('create') ->will($this->returnValue($storeManagerMock)); - $objectManagerMock->expects($this->exactly(2)) + $objectManagerMock->expects($this->atLeastOnce()) ->method('get') ->will($this->returnValueMap($objectValueMap)); @@ -100,35 +119,47 @@ public function testExecute() ['cart_price_rules_advanced_type', false, false] ]; - $this->fixtureModelMock + $this->fixtureModel ->expects($this->exactly(3)) ->method('getValue') ->will($this->returnValueMap($valueMap)); - $this->fixtureModelMock - ->expects($this->exactly(3)) + $this->fixtureModel + ->expects($this->exactly(2)) ->method('getObjectManager') ->will($this->returnValue($objectManagerMock)); + $rule = $this->getMockBuilder(\Magento\SalesRule\Model\Rule::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->ruleFactory->expects($this->once()) + ->method('create') + ->willReturn($rule); + $this->model->execute(); } public function testNoFixtureConfigValue() { - $ruleMock = $this->getMock(\Magento\SalesRule\Model\Rule::class, [], [], '', false); + $ruleMock = $this->getMockBuilder(\Magento\SalesRule\Model\Rule::class) + ->disableOriginalConstructor() + ->getMock(); $ruleMock->expects($this->never())->method('save'); - $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManager\ObjectManager::class, [], [], '', false); + $objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManager\ObjectManager::class) + ->disableOriginalConstructor() + ->getMock(); $objectManagerMock->expects($this->never()) ->method('get') ->with($this->equalTo(\Magento\SalesRule\Model\Rule::class)) ->willReturn($ruleMock); - $this->fixtureModelMock + $this->fixtureModel ->expects($this->never()) ->method('getObjectManager') ->willReturn($objectManagerMock); - $this->fixtureModelMock - ->expects($this->once()) + $this->fixtureModel + ->expects($this->atLeastOnce()) ->method('getValue') ->willReturn(false); @@ -254,8 +285,6 @@ public function testGetActionTitle() public function testIntroduceParamLabels() { - $this->assertSame([ - 'cart_price_rules' => 'Cart Price Rules' - ], $this->model->introduceParamLabels()); + $this->assertSame(['cart_price_rules' => 'Cart Price Rules'], $this->model->introduceParamLabels()); } } diff --git a/setup/src/Magento/Setup/Test/Unit/Mvc/Bootstrap/InitParamListenerTest.php b/setup/src/Magento/Setup/Test/Unit/Mvc/Bootstrap/InitParamListenerTest.php index 904f334eb52d7..8926de900e431 100644 --- a/setup/src/Magento/Setup/Test/Unit/Mvc/Bootstrap/InitParamListenerTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Mvc/Bootstrap/InitParamListenerTest.php @@ -19,7 +19,7 @@ class InitParamListenerTest extends \PHPUnit_Framework_TestCase { - /** @var InitParamListener */ + /** @var InitParamListener */ private $listener; /** @var \PHPUnit_Framework_MockObject_MockObject */ @@ -244,6 +244,7 @@ private function prepareEventManager() */ public function testAuthPreDispatch() { + $cookiePath = 'test'; $eventMock = $this->getMockBuilder(\Zend\Mvc\MvcEvent::class) ->disableOriginalConstructor() ->getMock(); @@ -278,13 +279,7 @@ public function testAuthPreDispatch() $backendAppMock = $this->getMockBuilder(\Magento\Backend\App\BackendApp::class) ->disableOriginalConstructor() ->getMock(); - $backendUrlFactoryMock = $this->getMockBuilder(\Magento\Backend\Model\UrlFactory::class) - ->setMethods(['create']) - ->disableOriginalConstructor() - ->getMock(); - $backendUrlMock = $this->getMockBuilder(\Magento\Backend\Model\Url::class) - ->disableOriginalConstructor() - ->getMock(); + $urlMock = $this->getMockBuilder(\Magento\Backend\Model\Url::class)->disableOriginalConstructor()->getMock(); $authenticationMock = $this->getMockBuilder(\Magento\Backend\Model\Auth::class) ->disableOriginalConstructor() ->getMock(); @@ -340,10 +335,6 @@ public function testAuthPreDispatch() \Magento\Backend\App\BackendAppList::class, $backendAppListMock, ], - [ - \Magento\Backend\Model\UrlFactory::class, - $backendUrlFactoryMock, - ], [ \Magento\Backend\Model\Auth::class, $authenticationMock, @@ -352,7 +343,20 @@ public function testAuthPreDispatch() ); $objectManagerMock->expects($this->any()) ->method('create') - ->willReturn($adminSessionMock); + ->willReturnMap( + [ + [ + \Magento\Backend\Model\Auth\Session::class, + ['sessionConfig' => $sessionConfigMock, 'appState' => $adminAppStateMock], + $adminSessionMock + ], + [ + \Magento\Backend\Model\Url::class, + [], + $urlMock + ] + ] + ); $omProvider->expects($this->once()) ->method('get') ->willReturn($objectManagerMock); @@ -364,10 +368,9 @@ public function testAuthPreDispatch() ->willReturn($serviceManagerMock); $backendAppMock->expects($this->once()) ->method('getCookiePath') - ->willReturn(''); - $backendUrlFactoryMock->expects($this->once()) - ->method('create') - ->willReturn($backendUrlMock); + ->willReturn($cookiePath); + $urlMock->expects($this->once())->method('getBaseUrl')->willReturn('http://base-url/'); + $sessionConfigMock->expects($this->once())->method('setCookiePath')->with('/' . $cookiePath); $backendAppListMock->expects($this->once()) ->method('getBackendApp') ->willReturn($backendAppMock); From 5d1ec8b792dce66dfa621802303f9753d6c21b33 Mon Sep 17 00:00:00 2001 From: IvanK <32677673+nemesis-back@users.noreply.github.com> Date: Mon, 20 Nov 2017 20:48:29 +0300 Subject: [PATCH 025/555] [Backport for 2.1 of #9904] #8069: Saving Category with existing image causes an exception --- .../Category/Attribute/Backend/Image.php | 27 +++++++++++++++---- .../Category/Attribute/Backend/ImageTest.php | 5 ++-- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php b/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php index a8bc510817f1b..2a29f8d62ca55 100644 --- a/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php +++ b/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php @@ -52,6 +52,11 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend */ private $imageUploader; + /** + * @var string + */ + private $additionalData = '_additional_data_'; + /** * Image constructor. * @@ -80,9 +85,9 @@ public function beforeSave($object) { $attributeName = $this->getAttribute()->getName(); $value = $object->getData($attributeName); - $imageName = $this->getUploadedImageName($value); - if ($imageName) { + if ($imageName = $this->getUploadedImageName($value)) { + $object->setData($this->additionalData . $attributeName, $value); $object->setData($attributeName, $imageName); } else if (!is_string($value)) { $object->setData($attributeName, ''); @@ -125,15 +130,27 @@ private function getImageUploader() } /** - * Save uploaded file and set its name to category. + * Check if temporary file is available for new image upload. + * + * @param array $value + * @return bool + */ + private function isTmpFileAvailable($value) + { + return is_array($value) && isset($value[0]['tmp_name']); + } + + /** + * Save uploaded file and set its name to category * * @param \Magento\Framework\DataObject $object * @return \Magento\Catalog\Model\Category\Attribute\Backend\Image */ public function afterSave($object) { - $imageName = $object->getData($this->getAttribute()->getName(), null); - if ($imageName) { + $value = $object->getData($this->additionalData . $this->getAttribute()->getName()); + + if ($this->isTmpFileAvailable($value) && $imageName = $this->getUploadedImageName($value)) { try { $this->getImageUploader()->moveFileFromTmp($imageName); } catch (\Exception $e) { diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php index 9ad566cf93e36..96ee74254763f 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php @@ -164,7 +164,8 @@ public function testAfterSave() $object = new \Magento\Framework\DataObject( [ - 'test_attribute' => 'test1234.jpg' + 'test_attribute' => 'test1234.jpg', + '_additional_data_test_attribute' => [['name' => 'test1234.jpg', 'tmp_name' => 'test-test-1234']] ] ); $model->afterSave($object); @@ -207,7 +208,7 @@ public function testAfterSaveWithExceptions() ->with($this->equalTo($exception)); $object = new \Magento\Framework\DataObject( [ - 'test_attribute' => 'test1234.jpg' + '_additional_data_test_attribute' => [['name' => 'test1234.jpg', 'tmp_name' => 'test-test-1234']] ] ); $model->afterSave($object); From b8f69cb6ed7962bdb9135eff1f7ec5345c4995be Mon Sep 17 00:00:00 2001 From: Daniel Renaud Date: Mon, 20 Nov 2017 16:10:35 -0600 Subject: [PATCH 026/555] MAGETWO-69213: [Backport] - Braintree saved credit card error for reorder between $2001-$3000 does not display error to customer - for 2.1 --- .../view/payment/method-renderer/cc-form.js | 32 +++++++++ .../js/view/payment/method-renderer/vault.js | 3 +- .../payment/method-renderer/cc-form.test.js | 68 +++++++++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js diff --git a/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js b/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js index f37aea1b48315..27393cba84a48 100644 --- a/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js +++ b/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/cc-form.js @@ -36,6 +36,8 @@ define( braintreeDeviceData: null, paymentMethodNonce: null, lastBillingAddress: null, + ccCode: null, + ccMessageContainer: null, validatorManager: validatorManager, code: 'braintree', @@ -138,9 +140,39 @@ define( return; } + this.restoreMessageContainer(); + this.restoreCode(); + + /** + * Define onReady callback + */ + braintree.onReady = function () {}; this.initBraintree(); }, + /** + * Restore original message container for cc-form component + */ + restoreMessageContainer: function () { + this.messageContainer = this.ccMessageContainer; + }, + + /** + * Restore original code for cc-form component + */ + restoreCode: function () { + this.code = this.ccCode; + }, + + /** @inheritdoc */ + initChildren: function () { + this._super(); + this.ccMessageContainer = this.messageContainer; + this.ccCode = this.code; + + return this; + }, + /** * Init config */ diff --git a/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/vault.js b/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/vault.js index a89c0c9877d09..99b5d5b9dc80c 100644 --- a/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/vault.js +++ b/app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/vault.js @@ -52,7 +52,7 @@ define([ var self = this; /** - * Define already callback + * Define onReady callback */ Braintree.onReady = function () { self.getPaymentMethodNonce(); @@ -78,6 +78,7 @@ define([ formComponent.setPaymentMethodNonce(response.paymentMethodNonce); formComponent.additionalData['public_hash'] = self.publicHash; formComponent.code = self.code; + formComponent.messageContainer = self.messageContainer; formComponent.placeOrder(); }); }) diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js new file mode 100644 index 0000000000000..935cefaa446ba --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js @@ -0,0 +1,68 @@ +/** + * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +/* eslint-disable max-nested-callbacks */ +define([ + 'jquery', + 'squire', + 'ko', + 'Magento_Ui/js/model/messages' +], function ($, Squire, ko, Messages) { + 'use strict'; + + describe('Magento_Braintree/js/view/payment/method-renderer/cc-form', function () { + var injector = new Squire(), + mocks = { + 'Magento_Checkout/js/model/quote': { + billingAddress: ko.observable(), + shippingAddress: ko.observable(), + paymentMethod: ko.observable() + }, + 'Magento_Braintree/js/view/payment/validator-handler': jasmine.createSpyObj( + 'validator-handler', + ['initialize'] + ), + 'Magento_Braintree/js/view/payment/adapter': jasmine.createSpyObj( + 'adapter', + ['setup', 'setConfig'] + ) + }, + braintreeCcForm; + + beforeAll(function (done) { + window.checkoutConfig = { + quoteData: {}, + payment: { + braintree: { + hasFraudProtection: true + } + } + }; + injector.mock(mocks); + injector.require(['Magento_Braintree/js/view/payment/method-renderer/cc-form'], function (Constr) { + braintreeCcForm = new Constr({ + provider: 'provName', + name: 'test', + index: 'test' + }); + + done(); + }); + }); + + it('Check if payment code and message container are restored after onActiveChange call.', function () { + var expectedMessageContainer = braintreeCcForm.messageContainer, + expectedCode = braintreeCcForm.code; + + braintreeCcForm.code = 'braintree-vault'; + braintreeCcForm.messageContainer = new Messages(); + + braintreeCcForm.onActiveChange(true); + + expect(braintreeCcForm.getCode()).toEqual(expectedCode); + expect(braintreeCcForm.messageContainer).toEqual(expectedMessageContainer); + }); + }); +}); From 8747deb34242aa5605eb771e38570f8a02fbcb40 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 21 Nov 2017 19:44:19 +0200 Subject: [PATCH 027/555] MAGETWO-80426: Calling the getCustomAttributes() method on a product instance before it is saved, internal _data property structure is changed and extracted incorrectly before saved --- .../Magento/Framework/Model/AbstractExtensibleModel.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php b/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php index b4061cc320608..4178c6b511823 100644 --- a/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php +++ b/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php @@ -113,7 +113,12 @@ protected function initializeCustomAttributes() $customAttributeCodes = $this->getCustomAttributesCodes(); foreach ($customAttributeCodes as $customAttributeCode) { - if (isset($this->_data[$customAttributeCode])) { + if (isset($this->_data[self::CUSTOM_ATTRIBUTES][$customAttributeCode])) { + $customAttribute = $this->customAttributeFactory->create() + ->setAttributeCode($customAttributeCode) + ->setValue($this->_data[self::CUSTOM_ATTRIBUTES][$customAttributeCode]->getValue()); + $customAttributes[$customAttributeCode] = $customAttribute; + } elseif (isset($this->_data[$customAttributeCode])) { $customAttribute = $this->customAttributeFactory->create() ->setAttributeCode($customAttributeCode) ->setValue($this->_data[$customAttributeCode]); From 47f7ddd0c5164a6d074da6645d6e3761bb4e8da8 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 22 Nov 2017 11:54:57 +0200 Subject: [PATCH 028/555] MAGETWO-80426: Calling the getCustomAttributes() method on a product instance before it is saved, internal _data property structure is changed and extracted incorrectly before saved - Update unit tests to set custom attribute by CustomAttributesDataInterface; --- app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php | 2 +- app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php index 5b93ecc245ce0..06464d9afe591 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php @@ -550,7 +550,7 @@ public function testGetCustomAttributes() $this->assertEquals("description", $this->category->getCustomAttribute($descriptionAttributeCode)->getValue()); //Change the attribute value, should reflect in getCustomAttribute - $this->category->setData($descriptionAttributeCode, "new description"); + $this->category->setCustomAttribute($descriptionAttributeCode, "new description"); $this->assertEquals(1, count($this->category->getCustomAttributes())); $this->assertNotNull($this->category->getCustomAttribute($descriptionAttributeCode)); $this->assertEquals( diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php index ee224b9aae230..6c400c410295a 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php @@ -1247,7 +1247,7 @@ public function testGetCustomAttributes() $this->assertEquals("red", $this->model->getCustomAttribute($colorAttributeCode)->getValue()); //Change the attribute value, should reflect in getCustomAttribute - $this->model->setData($colorAttributeCode, "blue"); + $this->model->setCustomAttribute($colorAttributeCode, "blue"); $this->assertEquals(1, count($this->model->getCustomAttributes())); $this->assertNotNull($this->model->getCustomAttribute($colorAttributeCode)); $this->assertEquals("blue", $this->model->getCustomAttribute($colorAttributeCode)->getValue()); From 1cda6ea9d05779d85069a256ef9827f96e5ec874 Mon Sep 17 00:00:00 2001 From: Stas Kozar Date: Wed, 22 Nov 2017 18:19:25 +0200 Subject: [PATCH 029/555] MAGETWO-60154: [Backport] Saving category deletes UrlRewrites for subcategories and all products in them - for 2.1.x --- .../Model/CategoryProductUrlPathGenerator.php | 67 ++++++++++ .../Product/AnchorUrlRewriteGenerator.php | 2 +- .../Product/CanonicalUrlRewriteGenerator.php | 2 +- .../Product/CategoriesUrlRewriteGenerator.php | 2 +- .../Product/CurrentUrlRewritesRegenerator.php | 59 ++++++++- .../Model/ProductScopeRewriteGenerator.php | 49 ++++++- .../Observer/UrlRewriteHandler.php | 53 ++++---- .../CategoryProductUrlPathGeneratorTest.php | 119 +++++++++++++++++ .../ProductScopeRewriteGeneratorTest.php | 4 + .../Unit/Observer/UrlRewriteHandlerTest.php | 83 ++++++------ .../Model/CategoryUrlRewriteGeneratorTest.php | 122 +++++++++++++++++- 11 files changed, 476 insertions(+), 86 deletions(-) create mode 100644 app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php create mode 100644 app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php diff --git a/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php new file mode 100644 index 0000000000000..a76080bedc194 --- /dev/null +++ b/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php @@ -0,0 +1,67 @@ +productScopeRewriteGenerator = $productScopeRewriteGenerator; + } + + /** + * Generate product url rewrites based on all product categories. + * + * @param Product $product + * @param int|null $rootCategoryId + * @return \Magento\UrlRewrite\Service\V1\Data\UrlRewrite[] + */ + public function generate(Product $product, $rootCategoryId = null) + { + if ($product->getVisibility() == Visibility::VISIBILITY_NOT_VISIBLE) { + return []; + } + + $storeId = $product->getStoreId(); + + $productCategories = $product->getCategoryCollection() + ->addAttributeToSelect('url_key') + ->addAttributeToSelect('url_path'); + + $urls = $this->productScopeRewriteGenerator->isGlobalScope($storeId) + ? $this->productScopeRewriteGenerator->generateForGlobalScope( + $productCategories, + $product, + $rootCategoryId + ) + : $this->productScopeRewriteGenerator->generateForSpecificStoreView( + $storeId, + $productCategories, + $product, + $rootCategoryId + ); + + return $urls; + } +} diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Product/AnchorUrlRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/Product/AnchorUrlRewriteGenerator.php index a647f88465fe2..b8a043349a648 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Product/AnchorUrlRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Product/AnchorUrlRewriteGenerator.php @@ -41,7 +41,7 @@ public function __construct( } /** - * Generate list based on categories + * Generate product rewrites for anchor categories. * * @param int $storeId * @param Product $product diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Product/CanonicalUrlRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/Product/CanonicalUrlRewriteGenerator.php index 372bc4564d611..8bc64770f4b75 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Product/CanonicalUrlRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Product/CanonicalUrlRewriteGenerator.php @@ -30,7 +30,7 @@ public function __construct(ProductUrlPathGenerator $productUrlPathGenerator, Ur } /** - * Generate list based on store view + * Generate product rewrites without categories. * * @param int $storeId * @param Product $product diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Product/CategoriesUrlRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/Product/CategoriesUrlRewriteGenerator.php index 7f77683fe654c..918034bb4e8c2 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Product/CategoriesUrlRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Product/CategoriesUrlRewriteGenerator.php @@ -31,7 +31,7 @@ public function __construct(ProductUrlPathGenerator $productUrlPathGenerator, Ur } /** - * Generate list based on categories + * Generate product rewrites with categories. * * @param int $storeId * @param Product $product diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Product/CurrentUrlRewritesRegenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/Product/CurrentUrlRewritesRegenerator.php index 72b03df45f70f..ef62dedc1ab93 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Product/CurrentUrlRewritesRegenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Product/CurrentUrlRewritesRegenerator.php @@ -6,6 +6,7 @@ namespace Magento\CatalogUrlRewrite\Model\Product; use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\CategoryRepository; use Magento\Catalog\Model\Product; use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; use Magento\UrlRewrite\Model\OptionProvider; @@ -67,19 +68,26 @@ class CurrentUrlRewritesRegenerator */ private $mergeDataProviderPrototype; + /** + * @var CategoryRepository + */ + private $categoryRepository; + /** * @param UrlFinderInterface $urlFinder * @param ProductUrlPathGenerator $productUrlPathGenerator * @param UrlRewriteFactory $urlRewriteFactory * @param UrlRewriteFinder|null $urlRewriteFinder * @param \Magento\UrlRewrite\Model\MergeDataProviderFactory|null $mergeDataProviderFactory + * @param CategoryRepository|null $categoryRepository */ public function __construct( UrlFinderInterface $urlFinder, ProductUrlPathGenerator $productUrlPathGenerator, UrlRewriteFactory $urlRewriteFactory, UrlRewriteFinder $urlRewriteFinder = null, - MergeDataProviderFactory $mergeDataProviderFactory = null + MergeDataProviderFactory $mergeDataProviderFactory = null, + CategoryRepository $categoryRepository = null ) { $this->urlFinder = $urlFinder; $this->productUrlPathGenerator = $productUrlPathGenerator; @@ -89,11 +97,12 @@ public function __construct( if (!isset($mergeDataProviderFactory)) { $mergeDataProviderFactory = ObjectManager::getInstance()->get(MergeDataProviderFactory::class); } + $this->categoryRepository = $categoryRepository ?: ObjectManager::getInstance()->get(CategoryRepository::class); $this->mergeDataProviderPrototype = $mergeDataProviderFactory->create(); } /** - * Generate list based on current rewrites + * Generate product rewrites based on current rewrites without anchor categories. * * @param int $storeId * @param Product $product @@ -126,6 +135,52 @@ public function generate($storeId, Product $product, ObjectRegistry $productCate return $mergeDataProvider->getData(); } + /** + * Generate product rewrites for anchor categories based on current rewrites. + * + * @param int $storeId + * @param Product $product + * @param ObjectRegistry $productCategories + * @param int|null $rootCategoryId + * @return UrlRewrite[] + */ + public function generateAnchor( + $storeId, + Product $product, + ObjectRegistry $productCategories, + $rootCategoryId = null + ) { + $anchorCategoryIds = []; + $mergeDataProvider = clone $this->mergeDataProviderPrototype; + + $currentUrlRewrites = $this->urlRewriteFinder->findAllByData( + $product->getEntityId(), + $storeId, + ProductUrlRewriteGenerator::ENTITY_TYPE, + $rootCategoryId + ); + + foreach ($productCategories->getList() as $productCategory) { + $anchorCategoryIds = array_merge($productCategory->getAnchorsAbove(), $anchorCategoryIds); + } + + foreach ($currentUrlRewrites as $currentUrlRewrite) { + $metadata = $currentUrlRewrite->getMetadata(); + if (isset($metadata['category_id']) && $metadata['category_id'] > 0) { + $category = $this->categoryRepository->get($metadata['category_id'], $storeId); + if (in_array($category->getId(), $anchorCategoryIds)) { + $mergeDataProvider->merge( + $currentUrlRewrite->getIsAutogenerated() + ? $this->generateForAutogenerated($currentUrlRewrite, $storeId, $category, $product) + : $this->generateForCustom($currentUrlRewrite, $storeId, $category, $product) + ); + } + } + } + + return $mergeDataProvider->getData(); + } + /** * @param UrlRewrite $url * @param int $storeId diff --git a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php index 40753a16f69a3..b5a2fde7fa4b1 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php @@ -5,6 +5,7 @@ */ namespace Magento\CatalogUrlRewrite\Model; +use Magento\Catalog\Api\CategoryRepositoryInterface; use Magento\Catalog\Model\Category; use Magento\Catalog\Model\Product; use Magento\CatalogUrlRewrite\Model\Product\CanonicalUrlRewriteGenerator; @@ -80,6 +81,11 @@ class ProductScopeRewriteGenerator */ private $mergeDataProviderPrototype; + /** + * @var CategoryRepositoryInterface + */ + private $categoryRepository; + /** * @param StoreViewService $storeViewService * @param StoreManagerInterface $storeManager @@ -89,6 +95,7 @@ class ProductScopeRewriteGenerator * @param CurrentUrlRewritesRegenerator $currentUrlRewritesRegenerator * @param AnchorUrlRewriteGenerator $anchorUrlRewriteGenerator * @param \Magento\UrlRewrite\Model\MergeDataProviderFactory|null $mergeDataProviderFactory + * @param CategoryRepositoryInterface|null $categoryRepository */ public function __construct( StoreViewService $storeViewService, @@ -98,7 +105,8 @@ public function __construct( CategoriesUrlRewriteGenerator $categoriesUrlRewriteGenerator, CurrentUrlRewritesRegenerator $currentUrlRewritesRegenerator, AnchorUrlRewriteGenerator $anchorUrlRewriteGenerator, - MergeDataProviderFactory $mergeDataProviderFactory = null + MergeDataProviderFactory $mergeDataProviderFactory = null, + CategoryRepositoryInterface $categoryRepository = null ) { $this->storeViewService = $storeViewService; $this->storeManager = $storeManager; @@ -111,6 +119,8 @@ public function __construct( $mergeDataProviderFactory = ObjectManager::getInstance()->get(MergeDataProviderFactory::class); } $this->mergeDataProviderPrototype = $mergeDataProviderFactory->create(); + $this->categoryRepository = $categoryRepository ?: + ObjectManager::getInstance()->get(CategoryRepositoryInterface::class); } /** @@ -167,9 +177,12 @@ public function generateForSpecificStoreView($storeId, $productCategories, Produ $mergeDataProvider = clone $this->mergeDataProviderPrototype; $categories = []; foreach ($productCategories as $category) { - if ($this->isCategoryProperForGenerating($category, $storeId)) { - $categories[] = $category; + if (!$this->isCategoryProperForGenerating($category, $storeId)) { + continue; } + + // category should be loaded per appropriate store if category's URL key has been changed + $categories[] = $this->getCategoryWithOverriddenUrlKey($storeId, $category); } $productCategories = $this->objectRegistryFactory->create(['entities' => $categories]); @@ -190,6 +203,14 @@ public function generateForSpecificStoreView($storeId, $productCategories, Produ $mergeDataProvider->merge( $this->anchorUrlRewriteGenerator->generate($storeId, $product, $productCategories) ); + $mergeDataProvider->merge( + $this->currentUrlRewritesRegenerator->generateAnchor( + $storeId, + $product, + $productCategories, + $rootCategoryId + ) + ); return $mergeDataProvider->getData(); } @@ -210,4 +231,26 @@ public function isCategoryProperForGenerating(Category $category, $storeId) return false; } + + /** + * Checks if URL key has been changed for provided category and returns reloaded category, + * in other case - returns provided category. + * + * @param $storeId + * @param Category $category + * @return Category + */ + private function getCategoryWithOverriddenUrlKey($storeId, Category $category) + { + $isUrlKeyOverridden = $this->storeViewService->doesEntityHaveOverriddenUrlKeyForStore( + $storeId, + $category->getEntityId(), + Category::ENTITY + ); + + if (!$isUrlKeyOverridden) { + return $category; + } + return $this->categoryRepository->get($category->getEntityId(), $storeId); + } } diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php index b6f25c4ed1cf9..ba2e76e428644 100644 --- a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php +++ b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php @@ -6,7 +6,7 @@ namespace Magento\CatalogUrlRewrite\Observer; use Magento\Catalog\Model\Category; -use Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator; +use Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator; use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; use Magento\Framework\App\ObjectManager; @@ -35,11 +35,11 @@ class UrlRewriteHandler protected $productCollectionFactory; /** - * Generates product url rewrites based on category. + * Generates product url rewrites based on all categories. * - * @var CategoryBasedProductRewriteGenerator + * @var CategoryProductUrlPathGenerator */ - private $categoryBasedProductRewriteGenerator; + private $categoryProductUrlPathGenerator; /** * Container for new generated url rewrites. @@ -54,6 +54,7 @@ class UrlRewriteHandler * @param ProductUrlRewriteGenerator $productUrlRewriteGenerator * @param UrlPersistInterface $urlPersist * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory + * @param CategoryProductUrlPathGenerator $categoryProductUrlPathGenerator * @param \Magento\UrlRewrite\Model\MergeDataProviderFactory|null $mergeDataProviderFactory */ public function __construct( @@ -62,6 +63,7 @@ public function __construct( ProductUrlRewriteGenerator $productUrlRewriteGenerator, UrlPersistInterface $urlPersist, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, + CategoryProductUrlPathGenerator $categoryProductUrlPathGenerator, MergeDataProviderFactory $mergeDataProviderFactory = null ) { $this->childrenCategoriesProvider = $childrenCategoriesProvider; @@ -69,6 +71,7 @@ public function __construct( $this->productUrlRewriteGenerator = $productUrlRewriteGenerator; $this->urlPersist = $urlPersist; $this->productCollectionFactory = $productCollectionFactory; + $this->categoryProductUrlPathGenerator = $categoryProductUrlPathGenerator; if (!isset($mergeDataProviderFactory)) { $mergeDataProviderFactory = ObjectManager::getInstance()->get(MergeDataProviderFactory::class); } @@ -84,11 +87,12 @@ public function __construct( public function generateProductUrlRewrites(Category $category) { $mergeDataProvider = clone $this->mergeDataProviderPrototype; - $this->isSkippedProduct = []; + $this->isSkippedProduct[$category->getEntityId()] = []; $saveRewriteHistory = $category->getData('save_rewrites_history'); $storeId = $category->getStoreId(); + if ($category->getChangedProductIds()) { - $this->isSkippedProduct = $category->getAffectedProductIds(); + $this->isSkippedProduct[$category->getEntityId()] = $category->getAffectedProductIds(); $collection = $this->productCollectionFactory->create() ->setStoreId($storeId) ->addIdFilter($category->getAffectedProductIds()) @@ -134,7 +138,7 @@ public function generateProductUrlRewrites(Category $category) * @param int|null $rootCategoryId * @return UrlRewrite[] */ - public function getCategoryProductsUrlRewrites( + private function getCategoryProductsUrlRewrites( Category $category, $storeId, $saveRewriteHistory, @@ -142,42 +146,29 @@ public function getCategoryProductsUrlRewrites( ) { $mergeDataProvider = clone $this->mergeDataProviderPrototype; /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */ - $productCollection = $category->getProductCollection() - ->addAttributeToSelect('name') - ->addAttributeToSelect('visibility') - ->addAttributeToSelect('url_key') - ->addAttributeToSelect('url_path'); + $productCollection = $this->productCollectionFactory->create(); + + $productCollection->setStoreId($storeId) + ->addAttributeToSelect(['name', 'visibility', 'url_key', 'url_path']) + ->addCategoriesFilter(['eq' => [$category->getEntityId()]]); + foreach ($productCollection as $product) { - if (in_array($product->getId(), $this->isSkippedProduct)) { + if (isset($this->isSkippedProduct[$category->getEntityId()]) && + in_array($product->getId(), $this->isSkippedProduct[$category->getEntityId()]) + ) { continue; } - $this->isSkippedProduct[] = $product->getId(); + $this->isSkippedProduct[$category->getEntityId()][] = $product->getId(); $product->setStoreId($storeId); $product->setData('save_rewrites_history', $saveRewriteHistory); $mergeDataProvider->merge( - $this->getCategoryBasedProductRewriteGenerator()->generate($product, $category, $rootCategoryId) + $this->categoryProductUrlPathGenerator->generate($product, $rootCategoryId) ); } return $mergeDataProvider->getData(); } - /** - * Retrieve generator, which use single category for different products. - * - * @deprecated - * @return CategoryBasedProductRewriteGenerator|mixed - */ - private function getCategoryBasedProductRewriteGenerator() - { - if (!$this->categoryBasedProductRewriteGenerator) { - $this->categoryBasedProductRewriteGenerator = ObjectManager::getInstance() - ->get(CategoryBasedProductRewriteGenerator::class); - } - - return $this->categoryBasedProductRewriteGenerator; - } - /** * @param Category $category * @return void diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php new file mode 100644 index 0000000000000..d6cc36f01e8f8 --- /dev/null +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php @@ -0,0 +1,119 @@ +productScopeRewriteGeneratorMock = $this->getMockBuilder(ProductScopeRewriteGenerator::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->generator = new CategoryProductUrlPathGenerator( + $this->productScopeRewriteGeneratorMock + ); + } + + public function testGenerationWithGlobalScope() + { + $categoryMock = $this->getMockBuilder(Category::class) + ->disableOriginalConstructor() + ->getMock(); + $categoryCollectionMock = $this->getMockBuilder(Collection::class) + ->disableOriginalConstructor() + ->getMock(); + $productMock = $this->getMockBuilder(Product::class) + ->disableOriginalConstructor() + ->getMock(); + $storeId = 1; + $categoryId = 1; + $urls = ['dummy-url.html']; + + $productMock->expects($this->once()) + ->method('getVisibility') + ->willReturn(2); + $productMock->expects($this->once()) + ->method('getStoreId') + ->willReturn($storeId); + $productMock->expects($this->once()) + ->method('getCategoryCollection') + ->willReturn($categoryCollectionMock); + $categoryCollectionMock->expects($this->atLeastOnce()) + ->method('addAttributeToSelect') + ->willReturnSelf(); + + $this->productScopeRewriteGeneratorMock->expects($this->once()) + ->method('isGlobalScope') + ->with($storeId) + ->willReturn(true); + $this->productScopeRewriteGeneratorMock->expects($this->once()) + ->method('generateForGlobalScope') + ->with($categoryCollectionMock, $productMock, $categoryId) + ->willReturn($urls); + + $this->assertEquals($urls, $this->generator->generate($productMock, $categoryId)); + } + + public function testGenerationWithSpecificStore() + { + $categoryMock = $this->getMockBuilder(Category::class) + ->disableOriginalConstructor() + ->getMock(); + $categoryCollectionMock = $this->getMockBuilder(Collection::class) + ->disableOriginalConstructor() + ->getMock(); + $productMock = $this->getMockBuilder(Product::class) + ->disableOriginalConstructor() + ->getMock(); + $storeId = 1; + $categoryId = 1; + $urls = ['dummy-url.html']; + + $productMock->expects($this->once()) + ->method('getVisibility') + ->willReturn(2); + $productMock->expects($this->once()) + ->method('getStoreId') + ->willReturn($storeId); + $productMock->expects($this->once()) + ->method('getCategoryCollection') + ->willReturn($categoryCollectionMock); + $categoryCollectionMock->expects($this->atLeastOnce()) + ->method('addAttributeToSelect') + ->willReturnSelf(); + + $this->productScopeRewriteGeneratorMock->expects($this->once()) + ->method('isGlobalScope') + ->with($storeId) + ->willReturn(false); + $this->productScopeRewriteGeneratorMock->expects($this->once()) + ->method('generateForSpecificStoreView') + ->with($storeId, $categoryCollectionMock, $productMock, $categoryId) + ->willReturn($urls); + + $this->assertEquals($urls, $this->generator->generate($productMock, $categoryId)); + } +} diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/ProductScopeRewriteGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/ProductScopeRewriteGeneratorTest.php index da117a0d4a37a..a25c9b049a7c3 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/ProductScopeRewriteGeneratorTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/ProductScopeRewriteGeneratorTest.php @@ -117,6 +117,8 @@ public function testGenerationForGlobalScope() ->setStoreId(3); $this->currentUrlRewritesRegenerator->expects($this->any())->method('generate') ->will($this->returnValue([$current])); + $this->currentUrlRewritesRegenerator->expects($this->any())->method('generateAnchor') + ->will($this->returnValue([$current])); $anchorCategories = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite(); $anchorCategories->setRequestPath('category-4') ->setStoreId(4); @@ -158,6 +160,8 @@ public function testGenerationForSpecificStore() ->will($this->returnValue([])); $this->currentUrlRewritesRegenerator->expects($this->any())->method('generate') ->will($this->returnValue([])); + $this->currentUrlRewritesRegenerator->expects($this->any())->method('generateAnchor') + ->will($this->returnValue([])); $this->anchorUrlRewriteGenerator->expects($this->any())->method('generate') ->will($this->returnValue([])); diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php index 0691bc22475a6..a135107b47bcf 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php @@ -5,7 +5,7 @@ */ namespace Magento\CatalogUrlRewrite\Test\Unit\Observer; -use Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator; +use Magento\Catalog\Model\ResourceModel\Product\Collection as ProductCollection; use Magento\CatalogUrlRewrite\Observer\UrlRewriteHandler; use Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider; use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; @@ -15,6 +15,7 @@ use Magento\UrlRewrite\Model\UrlPersistInterface; use Magento\UrlRewrite\Model\MergeDataProviderFactory; use Magento\UrlRewrite\Model\MergeDataProvider; +use Magento\CatalogUrlRewrite\Model\CategoryProductUrlPathGenerator; /** * Tests UrlRewriteHandler class. @@ -64,9 +65,9 @@ class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase private $mergeDataProviderMock; /** - * @var CategoryBasedProductRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject + * @var $CategoryProductUrlPathGenerator|\PHPUnit_Framework_MockObject_MockObject */ - private $categoryBasedProductRewriteGeneratorMock; + private $categoryProductUrlPathGeneratorMock; /** * @var \Magento\Catalog\Model\Category|\PHPUnit_Framework_MockObject_MockObject @@ -125,6 +126,9 @@ protected function setUp() ->setMethods(['getData']) ->disableOriginalConstructor() ->getMock(); + $this->categoryProductUrlPathGeneratorMock = $this->getMockBuilder(CategoryProductUrlPathGenerator::class) + ->disableOriginalConstructor() + ->getMock(); $this->mergeDataProviderFactoryMock->expects($this->any()) ->method('create') ->willReturn($this->mergeDataProviderMock); @@ -135,20 +139,15 @@ protected function setUp() $this->productUrlRewriteGeneratorMock, $this->urlPersistMock, $this->collectionFactoryMock, + $this->categoryProductUrlPathGeneratorMock, $this->mergeDataProviderFactoryMock ); - $this->categoryBasedProductRewriteGeneratorMock = $this->getMockBuilder( - CategoryBasedProductRewriteGenerator::class - ) - ->disableOriginalConstructor() - ->getMock(); - $this->objectManager = new ObjectManager($this); $this->objectManager->setBackwardCompatibleProperty( $this->urlRewriteHandler, - 'categoryBasedProductRewriteGenerator', - $this->categoryBasedProductRewriteGeneratorMock + 'categoryProductUrlPathGenerator', + $this->categoryProductUrlPathGeneratorMock ); $this->productItem = $this->getMock( @@ -182,6 +181,7 @@ public function testDeleteCategoryRewritesForChildren() * Covers generateProductUrlRewrites(), getCategoryProductsUrlRewrites() methods. * * @dataProvider generateProductUrlRewritesDataProvider + * @param array $affectedProductIds * @return void */ public function testGenerateProductUrlRewrites($affectedProductIds) @@ -202,7 +202,7 @@ public function testGenerateProductUrlRewrites($affectedProductIds) $this->categoryMock->expects($this->any()) ->method('getChangedProductIds') ->willReturn($affectedProductIds); - $this->categoryMock->expects($this->once()) + $this->categoryMock->expects($this->any()) ->method('getEntityId') ->willReturn($categoryId); @@ -230,15 +230,15 @@ public function testGenerateProductUrlRewrites($affectedProductIds) /** * Calls when $affectedProductIds is not empty. * - * @param $saveRewritesHistory - * @param $storeId - * @param $categoryId - * @param $affectedProductIds + * @param bool $saveRewritesHistory + * @param int $storeId + * @param int $categoryId + * @param array $affectedProductIds * @return void */ private function callIfAffectedProductsIsset($saveRewritesHistory, $storeId, $categoryId, $affectedProductIds) { - $productCollectionMock = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product\Collection::class) + $productCollectionMock = $this->getMockBuilder(ProductCollection::class) ->setMethods( [ 'getData', @@ -257,7 +257,8 @@ private function callIfAffectedProductsIsset($saveRewritesHistory, $storeId, $ca ->method('addIdFilter') ->with($affectedProductIds) ->willReturn($productCollectionMock); - $productCollectionMock = $this->setAdditionalMocks($productCollectionMock, $storeId, $saveRewritesHistory); + $productCollectionMock = + $this->setAdditionalMocks($productCollectionMock, $storeId, $categoryId, $saveRewritesHistory); $this->collectionFactoryMock->expects($this->any()) ->method('create') ->willReturn($productCollectionMock); @@ -270,29 +271,27 @@ private function callIfAffectedProductsIsset($saveRewritesHistory, $storeId, $ca /** * Calls when $affectedProductIds is empty. * - * @param $saveRewritesHistory - * @param $storeId - * @param $categoryId - * @param $affectedProductIds + * @param bool $saveRewritesHistory + * @param int $storeId + * @param int $categoryId + * @param array $affectedProductIds * @return void */ private function getCategoryProductsUrlRewrites($saveRewritesHistory, $storeId, $categoryId, $affectedProductIds) { $productCollection = $this->getMock( - \Magento\Catalog\Model\ResourceModel\Product\Collection::class, - ['addAttributeToSelect'], + ProductCollection::class, + ['addAttributeToSelect', 'setStoreId', 'addCategoriesFilter'], [], '', false ); - $productCollection = $this->setAdditionalMocks($productCollection, $storeId, $saveRewritesHistory); - $this->categoryMock->expects($this->once()) - ->method('getProductCollection') - ->willReturn($productCollection); + $productCollection = $this->setAdditionalMocks($productCollection, $storeId, $categoryId, $saveRewritesHistory); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($productCollection); $categoryBasedProductRewriteGenerated = $this->getProductUrlRewriteResult($affectedProductIds); - $this->categoryBasedProductRewriteGeneratorMock->expects($this->once()) + $this->categoryProductUrlPathGeneratorMock->expects($this->once()) ->method('generate') - ->with($this->productItem, $this->categoryMock, $categoryId) + ->with($this->productItem, $categoryId) ->willReturn($categoryBasedProductRewriteGenerated); $this->productItem->expects($this->exactly(2)) ->method('getId') @@ -319,6 +318,7 @@ public function generateProductUrlRewritesDataProvider() /** * Returns products urlRewrite result. * + * @param array $affectedProductIds * @return array */ private function getProductUrlRewriteResult($affectedProductIds) @@ -360,20 +360,21 @@ private function getProductUrlRewriteResult($affectedProductIds) /** * Sets additional data to the product Collection Mock. * - * @param $productCollectionMock - * @return $productCollectionMock + * @param ProductCollection|\PHPUnit_Framework_MockObject_MockObject $productCollectionMock + * @param int $storeId + * @param int $categoryId + * @param bool $saveRewritesHistory + * @return ProductCollection|\PHPUnit_Framework_MockObject_MockObject $productCollectionMock */ - private function setAdditionalMocks($productCollectionMock, $storeId, $saveRewritesHistory) + private function setAdditionalMocks($productCollectionMock, $storeId, $categoryId, $saveRewritesHistory) { + $productCollectionMock->expects($this->once())->method('setStoreId')->with($storeId)->willReturnSelf(); $productCollectionMock->expects($this->any())->method('addAttributeToSelect') - ->willReturnMap( - [ - ['visibility', false, $productCollectionMock], - ['name', false, $productCollectionMock], - ['url_key', false, $productCollectionMock], - ['url_path', false, $productCollectionMock] - ] - ); + ->willReturnSelf(); + $productCollectionMock->expects($this->any()) + ->method('addCategoriesFilter') + ->with(['eq' => [$categoryId]]) + ->willReturnSelf(); $this->productItem->expects($this->once()) ->method('setStoreId') ->with($storeId) diff --git a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php index 37cab0809c1e1..97d75c27f0c5c 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php @@ -10,6 +10,7 @@ use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; use Magento\UrlRewrite\Model\OptionProvider; +use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; /** @@ -27,20 +28,20 @@ protected function setUp() public function tearDown() { - $category = $this->objectManager->create('Magento\Catalog\Model\Category'); + $category = $this->objectManager->create(\Magento\Catalog\Model\Category::class); $category->load(3); $category->delete(); } /** - * @magentoDataFixture Magento/CatalogUrlRewrite/_files/categories.php + * @magentoDataFixture Magento/CatalogUrlRewrite/_files/categories_with_products.php * @magentoDbIsolation enabled * @magentoAppIsolation enabled */ public function testGenerateUrlRewritesWithoutSaveHistory() { /** @var \Magento\Catalog\Model\Category $category */ - $category = $this->objectManager->create('Magento\Catalog\Model\Category'); + $category = $this->objectManager->create(\Magento\Catalog\Model\Category::class); $category->load(3); $category->setData('save_rewrites_history', false); $category->setUrlKey('new-url'); @@ -58,17 +59,62 @@ public function testGenerateUrlRewritesWithoutSaveHistory() ]; $this->assertResults($categoryExpectedResult, $actualResults); + + /** @var \Magento\Catalog\Model\ProductRepository $productRepository */ + $productRepository = $this->objectManager->create(\Magento\Catalog\Model\ProductRepository::class); + $product = $productRepository->get('12345'); + $productForTest = $product->getId(); + + $productFilter = [ + UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_ID => [$productForTest] + ]; + $actualResults = $this->getActualResults($productFilter); + $productExpectedResult = [ + [ + 'simple-product-two.html', + 'catalog/product/view/id/' . $productForTest, + 1, + 0, + ], + [ + 'new-url/category-1-1/category-1-1-1/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/5', + 1, + 0, + ], + [ + 'new-url/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/3', + 1, + 0, + ], + [ + 'new-url/category-1-1/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/4', + 1, + 0, + ], + [ + '/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/2', + 1, + 0, + ], + ]; + + $this->assertResults($productExpectedResult, $actualResults); } /** * @magentoDbIsolation enabled - * @magentoDataFixture Magento/CatalogUrlRewrite/_files/categories.php + * @magentoDataFixture Magento/CatalogUrlRewrite/_files/categories_with_products.php * @magentoAppIsolation enabled */ public function testGenerateUrlRewritesWithSaveHistory() { /** @var \Magento\Catalog\Model\Category $category */ - $category = $this->objectManager->create('Magento\Catalog\Model\Category'); + $category = $this->objectManager->create(\Magento\Catalog\Model\Category::class); $category->load(3); $category->setData('save_rewrites_history', true); $category->setUrlKey('new-url'); @@ -94,6 +140,69 @@ public function testGenerateUrlRewritesWithSaveHistory() ]; $this->assertResults($categoryExpectedResult, $actualResults); + + /** @var \Magento\Catalog\Model\ProductRepository $productRepository */ + $productRepository = $this->objectManager->create(\Magento\Catalog\Model\ProductRepository::class); + $product = $productRepository->get('12345'); + $productForTest = $product->getId(); + + $productFilter = [ + UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_ID => [$productForTest] + ]; + $actualResults = $this->getActualResults($productFilter); + $productExpectedResult = [ + [ + 'simple-product-two.html', + 'catalog/product/view/id/' . $productForTest, + 1, + 0, + ], + [ + 'new-url/category-1-1/category-1-1-1/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/5', + 1, + 0, + ], + [ + 'category-1/category-1-1/category-1-1-1/simple-product-two.html', + 'new-url/category-1-1/category-1-1-1/simple-product-two.html', + 0, + OptionProvider::PERMANENT, + ], + [ + 'new-url/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/3', + 1, + 0, + ], + [ + 'new-url/category-1-1/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/4', + 1, + 0, + ], + [ + '/simple-product-two.html', + 'catalog/product/view/id/' . $productForTest . '/category/2', + 1, + 0, + ], + [ + 'category-1/simple-product-two.html', + 'new-url/simple-product-two.html', + 0, + OptionProvider::PERMANENT, + ], + [ + 'category-1/category-1-1/simple-product-two.html', + 'new-url/category-1-1/simple-product-two.html', + 0, + OptionProvider::PERMANENT, + ], + ]; + + $this->assertResults($productExpectedResult, $actualResults); } /** @@ -103,7 +212,7 @@ public function testGenerateUrlRewritesWithSaveHistory() protected function getActualResults(array $filter) { /** @var \Magento\UrlRewrite\Model\UrlFinderInterface $urlFinder */ - $urlFinder = $this->objectManager->get('\Magento\UrlRewrite\Model\UrlFinderInterface'); + $urlFinder = $this->objectManager->get(\Magento\UrlRewrite\Model\UrlFinderInterface::class); $actualResults = []; foreach ($urlFinder->findAllByData($filter) as $url) { $actualResults[] = [ @@ -122,6 +231,7 @@ protected function getActualResults(array $filter) */ protected function assertResults($expected, $actual) { + $this->assertEquals(count($expected), count($actual), 'Number of rewrites does not match'); foreach ($expected as $row) { $this->assertContains( $row, From ab1cb7b9347344882ae7cd1c4d9940492e249b0b Mon Sep 17 00:00:00 2001 From: Stas Kozar Date: Wed, 22 Nov 2017 18:39:30 +0200 Subject: [PATCH 030/555] MAGETWO-60154: [Backport] Saving category deletes UrlRewrites for subcategories and all products in them - for 2.1.x --- .../Model/ProductScopeRewriteGenerator.php | 2 +- .../Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php index b5a2fde7fa4b1..0f6c188e25ea8 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php @@ -236,7 +236,7 @@ public function isCategoryProperForGenerating(Category $category, $storeId) * Checks if URL key has been changed for provided category and returns reloaded category, * in other case - returns provided category. * - * @param $storeId + * @param int $storeId * @param Category $category * @return Category */ diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php index d6cc36f01e8f8..dc8754393a070 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php @@ -39,9 +39,6 @@ public function setUp() public function testGenerationWithGlobalScope() { - $categoryMock = $this->getMockBuilder(Category::class) - ->disableOriginalConstructor() - ->getMock(); $categoryCollectionMock = $this->getMockBuilder(Collection::class) ->disableOriginalConstructor() ->getMock(); @@ -79,9 +76,6 @@ public function testGenerationWithGlobalScope() public function testGenerationWithSpecificStore() { - $categoryMock = $this->getMockBuilder(Category::class) - ->disableOriginalConstructor() - ->getMock(); $categoryCollectionMock = $this->getMockBuilder(Collection::class) ->disableOriginalConstructor() ->getMock(); From e098fe6235d2f6980d82ad3133fd027d19cfe5bd Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 23 Nov 2017 15:39:16 +0200 Subject: [PATCH 031/555] MAGETWO-83263: Configuration Update --- .htaccess | 4 ++++ .htaccess.sample | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.htaccess b/.htaccess index c67d0b95272b4..aac68c16e8d48 100644 --- a/.htaccess +++ b/.htaccess @@ -106,6 +106,10 @@ DirectoryIndex index.php order allow,deny deny from all + + order allow,deny + deny from all + order allow,deny deny from all diff --git a/.htaccess.sample b/.htaccess.sample index 13e1e7d48d3e3..7142bf9e3e2a6 100644 --- a/.htaccess.sample +++ b/.htaccess.sample @@ -270,6 +270,10 @@ DirectoryIndex index.php order allow,deny deny from all + + order allow,deny + deny from all + order allow,deny deny from all From 318cbb52da4f86a3e00422f8dbbc6bfc02f49a47 Mon Sep 17 00:00:00 2001 From: Stas Kozar Date: Thu, 23 Nov 2017 15:40:02 +0200 Subject: [PATCH 032/555] MAGETWO-60154: [Backport] Saving category deletes UrlRewrites for subcategories and all products in them - for 2.1.x --- .../Model/CategoryProductUrlPathGenerator.php | 3 +-- .../CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php | 1 + .../Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php | 2 +- .../Model/CategoryUrlRewriteGeneratorTest.php | 5 ++--- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php index a76080bedc194..5ca1800e5c424 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/CategoryProductUrlPathGenerator.php @@ -9,8 +9,7 @@ use Magento\Catalog\Model\Product\Visibility; /** - * Class ProductUrlRewriteGenerator. - * @package Magento\CatalogUrlRewrite\Model + * Generates product url rewrites based on all categories. */ class CategoryProductUrlPathGenerator { diff --git a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php index 0f6c188e25ea8..ba7dee8d8ec86 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/ProductScopeRewriteGenerator.php @@ -251,6 +251,7 @@ private function getCategoryWithOverriddenUrlKey($storeId, Category $category) if (!$isUrlKeyOverridden) { return $category; } + return $this->categoryRepository->get($category->getEntityId(), $storeId); } } diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php index dc8754393a070..b9c007c34e383 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryProductUrlPathGeneratorTest.php @@ -12,7 +12,7 @@ use Magento\Catalog\Model\ResourceModel\Category\Collection; /** - * Class CategoryProductUrlPathGeneratorTest + * Tests CategoryProductUrlPathGenerator class. */ class CategoryProductUrlPathGeneratorTest extends \PHPUnit_Framework_TestCase { diff --git a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php index 97d75c27f0c5c..1907bb57cd38c 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php @@ -12,7 +12,6 @@ use Magento\UrlRewrite\Model\OptionProvider; use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; - /** * @magentoAppArea adminhtml */ @@ -122,7 +121,7 @@ public function testGenerateUrlRewritesWithSaveHistory() $categoryFilter = [ UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE, - UrlRewrite::ENTITY_ID => [3, 4, 5] + UrlRewrite::ENTITY_ID => [3, 4, 5], ]; $actualResults = $this->getActualResults($categoryFilter); $categoryExpectedResult = [ @@ -135,7 +134,7 @@ public function testGenerateUrlRewritesWithSaveHistory() 'category-1/category-1-1/category-1-1-1.html', 'new-url/category-1-1/category-1-1-1.html', 0, - OptionProvider::PERMANENT + OptionProvider::PERMANENT, ], ]; From 7b78c24b482186f95bf165b2c55ce45562bce751 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 23 Nov 2017 15:40:45 +0200 Subject: [PATCH 033/555] MAGETWO-83263: Configuration Update --- .htaccess | 4 ++-- .htaccess.sample | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.htaccess b/.htaccess index aac68c16e8d48..28c123418534b 100644 --- a/.htaccess +++ b/.htaccess @@ -106,10 +106,10 @@ DirectoryIndex index.php order allow,deny deny from all - + order allow,deny deny from all - + order allow,deny deny from all diff --git a/.htaccess.sample b/.htaccess.sample index 7142bf9e3e2a6..0b67b16cfd571 100644 --- a/.htaccess.sample +++ b/.htaccess.sample @@ -270,10 +270,10 @@ DirectoryIndex index.php order allow,deny deny from all - + order allow,deny deny from all - + order allow,deny deny from all From 6237c3029fcecab9d424996884db893178a04674 Mon Sep 17 00:00:00 2001 From: Stas Kozar Date: Thu, 23 Nov 2017 15:44:22 +0200 Subject: [PATCH 034/555] MAGETWO-60154: [Backport] Saving category deletes UrlRewrites for subcategories and all products in them - for 2.1.x --- .../Model/CategoryUrlRewriteGeneratorTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php index 1907bb57cd38c..be882b8ac3abf 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogUrlRewrite/Model/CategoryUrlRewriteGeneratorTest.php @@ -48,7 +48,7 @@ public function testGenerateUrlRewritesWithoutSaveHistory() $categoryFilter = [ UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE, - UrlRewrite::ENTITY_ID => [3, 4, 5] + UrlRewrite::ENTITY_ID => [3, 4, 5], ]; $actualResults = $this->getActualResults($categoryFilter); $categoryExpectedResult = [ @@ -66,7 +66,7 @@ public function testGenerateUrlRewritesWithoutSaveHistory() $productFilter = [ UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, - UrlRewrite::ENTITY_ID => [$productForTest] + UrlRewrite::ENTITY_ID => [$productForTest], ]; $actualResults = $this->getActualResults($productFilter); $productExpectedResult = [ @@ -147,7 +147,7 @@ public function testGenerateUrlRewritesWithSaveHistory() $productFilter = [ UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, - UrlRewrite::ENTITY_ID => [$productForTest] + UrlRewrite::ENTITY_ID => [$productForTest], ]; $actualResults = $this->getActualResults($productFilter); $productExpectedResult = [ From 4e6b7701fb4ee93736adea06db8ef11080176947 Mon Sep 17 00:00:00 2001 From: Sergey Shvets Date: Thu, 23 Nov 2017 17:33:39 +0200 Subject: [PATCH 035/555] MAGETWO-83646: Encrypted scope-specific config values fail to decrypt on PHP7 #8591 --- .../App/Config/Source/RuntimeConfigSource.php | 9 +- .../Config/Block/System/Config/Form.php | 21 +- .../Unit/Block/System/Config/FormTest.php | 310 ++++++++++++------ .../Framework/App/Config/Scope/Converter.php | 23 +- .../Test/Unit/Config/Scope/ConverterTest.php | 22 +- 5 files changed, 250 insertions(+), 135 deletions(-) diff --git a/app/code/Magento/Config/App/Config/Source/RuntimeConfigSource.php b/app/code/Magento/Config/App/Config/Source/RuntimeConfigSource.php index be03562cd2db8..88bbe3e2c6ac8 100644 --- a/app/code/Magento/Config/App/Config/Source/RuntimeConfigSource.php +++ b/app/code/Magento/Config/App/Config/Source/RuntimeConfigSource.php @@ -3,6 +3,7 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Config\App\Config\Source; use Magento\Framework\App\Config\ConfigSourceInterface; @@ -84,12 +85,12 @@ private function loadConfig() } } - foreach ($config as $scope => &$item) { + foreach ($config as $scope => $item) { if ($scope === ScopeConfigInterface::SCOPE_TYPE_DEFAULT) { - $item = $this->converter->convert($item); + $config[$scope] = $this->converter->convert($item); } else { - foreach ($item as &$scopeItems) { - $scopeItems = $this->converter->convert($scopeItems); + foreach ($item as $scopeCode => $scopeItems) { + $config[$scope][$scopeCode] = $this->converter->convert($scopeItems); } } } diff --git a/app/code/Magento/Config/Block/System/Config/Form.php b/app/code/Magento/Config/Block/System/Config/Form.php index 07eca2e2766f9..cd384759f71bd 100644 --- a/app/code/Magento/Config/Block/System/Config/Form.php +++ b/app/code/Magento/Config/Block/System/Config/Form.php @@ -3,7 +3,6 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\Config\Block\System\Config; use Magento\Config\App\Config\Type\System; @@ -351,21 +350,21 @@ protected function _initElement( $data = $this->_configData[$path]; $inherit = false; + if ($field->hasBackendModel()) { + $backendModel = $field->getBackendModel(); + $backendModel->setPath($path) + ->setValue($data) + ->setWebsite($this->getWebsiteCode()) + ->setStore($this->getStoreCode()) + ->afterLoad(); + $data = $backendModel->getValue(); + } + } elseif ($field->getConfigPath() !== null) { $data = $this->getConfigValue($field->getConfigPath()); } else { $data = $this->getConfigValue($path); } - - if ($field->hasBackendModel()) { - $backendModel = $field->getBackendModel(); - $backendModel->setPath($path) - ->setValue($data) - ->setWebsite($this->getWebsiteCode()) - ->setStore($this->getStoreCode()) - ->afterLoad(); - $data = $backendModel->getValue(); - } } $fieldRendererClass = $field->getFrontendModel(); if ($fieldRendererClass) { diff --git a/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php b/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php index 0f261f5fb9a08..354437662ba5d 100644 --- a/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php +++ b/app/code/Magento/Config/Test/Unit/Block/System/Config/FormTest.php @@ -4,27 +4,13 @@ * See COPYING.txt for license details. */ +// @codingStandardsIgnoreFile + namespace Magento\Config\Test\Unit\Block\System\Config; use Magento\Config\Model\Config\Reader\Source\Deployed\SettingChecker; use Magento\Framework\App\DeploymentConfig; -use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Store\Model\StoreManagerInterface; -use Magento\Framework\Data\Form; -use Magento\Config\Model\Config\Structure; -use Magento\Framework\App\RequestInterface; -use Magento\Framework\View\Layout; -use Magento\Backend\Model\Url; -use Magento\Config\Model\Config\Factory; -use Magento\Framework\Data\FormFactory; -use Magento\Framework\App\Config\ScopeConfigInterface; -use Magento\Config\Model\Config; -use Magento\Backend\Block\Template\Context; -use Magento\Config\Model\Config\Structure\Element\Section; -use Magento\Config\Model\Config\Structure\Element\Group; -use Magento\Config\Block\System\Config\Form\Fieldset; -use Magento\Config\Model\Config\Structure\Element\Field; -use Magento\Framework\Data\Form\Element\AbstractElement; /** * Test System config form block @@ -94,9 +80,16 @@ class FormTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $this->_systemConfigMock = $this->createMock(Structure::class); + $this->_systemConfigMock = $this->getMock( + 'Magento\Config\Model\Config\Structure', + [], + [], + '', + false, + false + ); - $requestMock = $this->createMock(RequestInterface::class); + $requestMock = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false, false); $requestParams = [ ['website', '', 'website_code'], ['section', '', 'section_code'], @@ -104,41 +97,79 @@ protected function setUp() ]; $requestMock->expects($this->any())->method('getParam')->will($this->returnValueMap($requestParams)); - $layoutMock = $this->createMock(Layout::class); + $layoutMock = $this->getMock('Magento\Framework\View\Layout', [], [], '', false, false); - $this->_urlModelMock = $this->createMock(Url::class); - $configFactoryMock = $this->createMock(Factory::class); - $this->_formFactoryMock = $this->createMock(FormFactory::class); - $this->_fieldsetFactoryMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Fieldset\Factory::class); - $this->_fieldFactoryMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Field\Factory::class); - $this->_coreConfigMock = $this->getMockBuilder(ScopeConfigInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); + $this->_urlModelMock = $this->getMock('Magento\Backend\Model\Url', [], [], '', false, false); + $configFactoryMock = $this->getMock( + 'Magento\Config\Model\Config\Factory', + [], + [], + '', + false, + false + ); + $this->_formFactoryMock = $this->getMock( + 'Magento\Framework\Data\FormFactory', + ['create'], + [], + '', + false, + false + ); + $this->_fieldsetFactoryMock = $this->getMock( + 'Magento\Config\Block\System\Config\Form\Fieldset\Factory', + [], + [], + '', + false, + false + ); + $this->_fieldFactoryMock = $this->getMock( + 'Magento\Config\Block\System\Config\Form\Field\Factory', + [], + [], + '', + false, + false + ); + $this->_coreConfigMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); - $this->_backendConfigMock = $this->createMock(Config::class); + $this->_backendConfigMock = $this->getMock('Magento\Config\Model\Config', [], [], '', false, false); - $configFactoryMock->expects($this->once()) - ->method('create') - ->with(['data' => ['section' => 'section_code', 'website' => 'website_code', 'store' => 'store_code']]) - ->will($this->returnValue($this->_backendConfigMock)); + $configFactoryMock->expects( + $this->once() + )->method( + 'create' + )->with( + ['data' => ['section' => 'section_code', 'website' => 'website_code', 'store' => 'store_code']] + )->will( + $this->returnValue($this->_backendConfigMock) + ); - $this->_backendConfigMock - ->expects($this->once()) - ->method('load') - ->will($this->returnValue(['section1/group1/field1' => 'some_value'])); + $this->_backendConfigMock->expects( + $this->once() + )->method( + 'load' + )->will( + $this->returnValue(['section1/group1/field1' => 'some_value']) + ); - $this->_formMock = $this->getMockBuilder(Form::class) - ->disableOriginalConstructor() - ->setMethods(['setParent', 'setBaseUrl', 'addFieldset']) - ->getMock(); + $this->_formMock = $this->getMock( + 'Magento\Framework\Data\Form', + ['setParent', 'setBaseUrl', 'addFieldset'], + [], + '', + false, + false + ); $this->storeManagerMock = $this->getMockBuilder(StoreManagerInterface::class) ->getMockForAbstractClass(); - $helper = new ObjectManager($this); + $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $context = $helper->getObject( - Context::class, + 'Magento\Backend\Block\Template\Context', [ 'scopeConfig' => $this->_coreConfigMock, 'request' => $requestMock, @@ -158,24 +189,25 @@ protected function setUp() 'context' => $context, ]; - $objectArguments = $helper->getConstructArguments(\Magento\Config\Block\System\Config\Form::class, $data); - $this->_objectBuilder = $this->getMockBuilder(\Magento\Config\Block\System\Config\Form::class) + $objectArguments = $helper->getConstructArguments('Magento\Config\Block\System\Config\Form', $data); + $this->_objectBuilder = $this->getMockBuilder('Magento\Config\Block\System\Config\Form') ->setConstructorArgs($objectArguments) ->setMethods(['something']); - $deploymentConfigMock = $this->createMock(DeploymentConfig::class); + $deploymentConfigMock = $this->getMockBuilder(DeploymentConfig::class) + ->disableOriginalConstructor() + ->getMock(); $deploymentConfigMock->expects($this->any()) ->method('get') ->willReturn([]); - /** @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\ObjectManagerInterface $objectManagerMock */ - $objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class); + $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManagerInterface::class); $objectManagerMock->expects($this->any()) ->method('get') ->willReturnMap([ [DeploymentConfig::class, $deploymentConfigMock] ]); \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock); - $this->object = $helper->getObject(\Magento\Config\Block\System\Config\Form::class, $data); + $this->object = $helper->getObject('Magento\Config\Block\System\Config\Form', $data); $this->object->setData('scope_id', 1); } @@ -193,7 +225,9 @@ public function testInitForm($sectionIsVisible) $this->_formMock->expects($this->once())->method('setBaseUrl')->with('base_url'); $this->_urlModelMock->expects($this->any())->method('getBaseUrl')->will($this->returnValue('base_url')); - $sectionMock = $this->createMock(Section::class); + $sectionMock = $this->getMockBuilder('\Magento\Config\Model\Config\Structure\Element\Section') + ->disableOriginalConstructor() + ->getMock(); if ($sectionIsVisible) { $sectionMock->expects($this->once()) ->method('isVisible') @@ -201,7 +235,14 @@ public function testInitForm($sectionIsVisible) $sectionMock->expects($this->once()) ->method('getChildren') ->willReturn([ - $this->createMock(Group::class) + $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Group', + [], + [], + '', + false, + false + ) ]); } @@ -252,7 +293,14 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $this->_formMock->expects($this->once())->method('setBaseUrl')->with('base_url'); $this->_urlModelMock->expects($this->any())->method('getBaseUrl')->will($this->returnValue('base_url')); - $fieldsetRendererMock = $this->createMock(Fieldset::class); + $fieldsetRendererMock = $this->getMock( + 'Magento\Config\Block\System\Config\Form\Fieldset', + [], + [], + '', + false, + false + ); $this->_fieldsetFactoryMock->expects( $this->once() )->method( @@ -262,7 +310,7 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) ); $cloneModelMock = $this->getMock( - Config::class, + 'Magento\Config\Model\Config', ['getPrefixes'], [], '', @@ -270,7 +318,14 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) false ); - $groupMock = $this->createMock(Group::class); + $groupMock = $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Group', + [], + [], + '', + false, + false + ); $groupMock->expects($this->once())->method('getFrontendModel')->will($this->returnValue(false)); $groupMock->expects($this->any())->method('getPath')->will($this->returnValue('section_id_group_id')); $groupMock->expects($this->once())->method('getLabel')->will($this->returnValue('label')); @@ -279,13 +334,24 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $groupMock->expects($this->once())->method('populateFieldset'); $groupMock->expects($this->once())->method('shouldCloneFields')->will($this->returnValue($shouldCloneFields)); $groupMock->expects($this->once())->method('getData')->will($this->returnValue('some group data')); - $groupMock->expects($this->once()) - ->method('getDependencies') - ->with('store_code') - ->will($this->returnValue([]) - ); + $groupMock->expects( + $this->once() + )->method( + 'getDependencies' + )->with( + 'store_code' + )->will( + $this->returnValue([]) + ); - $sectionMock = $this->createMock(Section::class); + $sectionMock = $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Section', + [], + [], + '', + false, + false + ); $sectionMock->expects($this->once())->method('isVisible')->will($this->returnValue(true)); $sectionMock->expects($this->once())->method('getChildren')->will($this->returnValue([$groupMock])); @@ -300,7 +366,11 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) $this->returnValue($sectionMock) ); - $formFieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class); + $formFieldsetMock = $this->getMock( + 'Magento\Framework\Data\Form\Element\Fieldset', + [], + [], + '', false, false); $params = [ 'legend' => 'label', @@ -320,13 +390,9 @@ public function testInitGroup($shouldCloneFields, $prefixes, $callNum) ); if ($shouldCloneFields) { - $cloneModelMock->expects($this->once()) - ->method('getPrefixes') - ->will($this->returnValue($prefixes)); + $cloneModelMock->expects($this->once())->method('getPrefixes')->will($this->returnValue($prefixes)); - $groupMock->expects($this->once()) - ->method('getCloneModel') - ->will($this->returnValue($cloneModelMock)); + $groupMock->expects($this->once())->method('getCloneModel')->will($this->returnValue($cloneModelMock)); } if ($shouldCloneFields && $prefixes) { @@ -379,33 +445,71 @@ public function testInitFields( $hasBackendModel ) { // Parameters initialization - /** @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Data\Form\Element\Fieldset $fieldsetMock */ - $fieldsetMock = $this->createMock(\Magento\Framework\Data\Form\Element\Fieldset::class); - /** @var \PHPUnit_Framework_MockObject_MockObject | Group $groupMock */ - $groupMock = $this->createMock(Group::class); - /** @var \PHPUnit_Framework_MockObject_MockObject | Section $sectionMock */ - $sectionMock = $this->createMock(Section::class); + $fieldsetMock = $this->getMock( + 'Magento\Framework\Data\Form\Element\Fieldset', + [], + [], + '', + false, + false + ); + $groupMock = $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Group', + [], + [], + '', + false, + false + ); + $sectionMock = $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Section', + [], + [], + '', + false, + false + ); $fieldPrefix = 'fieldPrefix'; $labelPrefix = 'labelPrefix'; // Field Renderer Mock configuration - $fieldRendererMock = $this->createMock(\Magento\Config\Block\System\Config\Form\Field::class); - $this->_fieldFactoryMock - ->expects($this->once()) - ->method('create') - ->will($this->returnValue($fieldRendererMock)); - - $this->_backendConfigMock - ->expects($this->once()) - ->method('extendConfig') - ->with('some/config/path', false, ['section1/group1/field1' => 'some_value']) - ->will($this->returnValue($backendConfigValue)); - - $this->_coreConfigMock - ->expects($this->any()) - ->method('getValue') - ->with($configPath) - ->will($this->returnValue($configValue)); + $fieldRendererMock = $this->getMock( + 'Magento\Config\Block\System\Config\Form\Field', + [], + [], + '', + false, + false + ); + $this->_fieldFactoryMock->expects( + $this->once() + )->method( + 'create' + )->will( + $this->returnValue($fieldRendererMock) + ); + + $this->_backendConfigMock->expects( + $this->once() + )->method( + 'extendConfig' + )->with( + 'some/config/path', + false, + ['section1/group1/field1' => 'some_value'] + )->will( + $this->returnValue($backendConfigValue) + ); + + $this->_coreConfigMock->expects( + $this->any() + )->method( + 'getValue' + )->with( + $configPath + )->will( + $this->returnValue($configValue) + ); /** @var \Magento\Store\Api\Data\StoreInterface|\PHPUnit_Framework_MockObject_MockObject $storeMock */ $storeMock = $this->getMockBuilder(\Magento\Store\Api\Data\StoreInterface::class) @@ -420,7 +524,14 @@ public function testInitFields( ->willReturn($storeMock); // Field mock configuration - $fieldMock = $this->createMock(Field::class); + $fieldMock = $this->getMock( + 'Magento\Config\Model\Config\Structure\Element\Field', + [], + [], + '', + false, + false + ); $fieldMock->expects($this->any())->method('getPath')->will($this->returnValue('section1/group1/field1')); $fieldMock->expects($this->any())->method('getConfigPath')->will($this->returnValue($configPath)); $fieldMock->expects($this->any())->method('getGroupPath')->will($this->returnValue('some/config/path')); @@ -460,7 +571,7 @@ public function testInitFields( $sectionMock->expects($this->once())->method('getId')->will($this->returnValue('section1')); $formFieldMock = $this->getMockForAbstractClass( - AbstractElement::class, + 'Magento\Framework\Data\Form\Element\AbstractElement', [], '', false, @@ -516,7 +627,7 @@ public function testInitFields( ->method('getPlaceholderValue') ->willReturn($placeholderValue); - $helper = new ObjectManager($this); + $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $helper->setBackwardCompatibleProperty($this->object, 'settingChecker', $settingCheckerMock); @@ -530,21 +641,8 @@ public function initFieldsDataProvider() { return [ [['section1/group1/field1' => 'some_value'], false, null, false, 'some_value', null, 1], - [[], 'Config Value', 'some/config/path', true, 'Config Value', null, 1], + [[], 'Config Value', 'some/config/path', true, 'Config Value', null, 0], [[], 'Config Value', 'some/config/path', true, 'Placeholder Value', 'Placeholder Value', 0] ]; } - - /** - * Creates default mock - * - * @param string $className - * @return \PHPUnit_Framework_MockObject_MockObject - */ - private function createMock($className) - { - return $this->getMockBuilder($className) - ->disableOriginalConstructor() - ->getMock(); - } } diff --git a/lib/internal/Magento/Framework/App/Config/Scope/Converter.php b/lib/internal/Magento/Framework/App/Config/Scope/Converter.php index ecf92bed1d560..e944c1f71b2d3 100644 --- a/lib/internal/Magento/Framework/App/Config/Scope/Converter.php +++ b/lib/internal/Magento/Framework/App/Config/Scope/Converter.php @@ -5,6 +5,7 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Framework\App\Config\Scope; class Converter implements \Magento\Framework\Config\ConverterInterface @@ -19,7 +20,7 @@ public function convert($source) { $output = []; foreach ($source as $key => $value) { - $this->_setArrayValue($output, $key, $value); + $output = $this->_setArrayValue($output, $key, $value); } return $output; } @@ -27,21 +28,19 @@ public function convert($source) /** * Set array value by path * - * @param array &$container + * @param array $output * @param string $path * @param string $value - * @return void + * @return array */ - protected function _setArrayValue(array &$container, $path, $value) + protected function _setArrayValue(array $output, $path, $value) { - $segments = explode('/', $path); - $currentPointer = & $container; - foreach ($segments as $segment) { - if (!isset($currentPointer[$segment])) { - $currentPointer[$segment] = []; - } - $currentPointer = & $currentPointer[$segment]; + $parts = array_reverse(explode('/', $path)); + + $result = $value; + foreach ($parts as $part) { + $result = [$part => $result]; } - $currentPointer = $value; + return array_merge_recursive($output, $result); } } diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php index 50cc44c1354d6..0a061ef0cbe65 100644 --- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php +++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php @@ -3,6 +3,7 @@ * Copyright © 2013-2017 Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Framework\App\Test\Unit\Config\Scope; class ConverterTest extends \PHPUnit_Framework_TestCase @@ -19,8 +20,25 @@ protected function setUp() public function testConvert() { - $data = ['some/config/path1' => 'value1', 'some/config/path2' => 'value2']; - $expectedResult = ['some' => ['config' => ['path1' => 'value1', 'path2' => 'value2']]]; + $data = [ + 'some/config/path1' => 'value1', + 'some/config/path2' => 'value2', + 'some/config/path2' => 'value3', + 'some2/config/path2' => 'value4', + ]; + $expectedResult = [ + 'some' => [ + 'config' => [ + 'path1' => 'value1', + 'path2' => 'value3', + ] + ], + 'some2' => [ + 'config' => [ + 'path2' => 'value4', + ] + ] + ]; $this->assertEquals($expectedResult, $this->_model->convert($data)); } } From 4e05cd3f4af7c0c15a1f3de537955d129407efc3 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 23 Nov 2017 18:06:52 +0200 Subject: [PATCH 036/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Parse French, arabic dates with hyphen as separator; --- .../Magento/Framework/Stdlib/DateTime/Timezone.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 025e964b884ff..66e924bb7915b 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -173,16 +173,11 @@ public function date($date = null, $locale = null, $useTimezone = true) ); // IntlDateFormatter does not parse correctly date formats per some locales // It depends on ICU lib version used by intl extension - // For locales like fr_FR, ar_KW parse date without time + // For locales like fr_FR, ar_KW parse date with hyphen as separator try { $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); } catch (\Exception $e) { - $formatter = new \IntlDateFormatter( - $locale, - \IntlDateFormatter::SHORT, - \IntlDateFormatter::NONE, - new \DateTimeZone($timezone) - ); + $date = str_replace('/', '-', $date); $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); } } From 5fbe1611915ce2b8ea5454c97c2bdddebe715cd5 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 23 Nov 2017 18:32:02 +0200 Subject: [PATCH 037/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale --- lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index ae1b6bdf19e8f..66e924bb7915b 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -153,7 +153,7 @@ public function getDateTimeFormat($type) * {@inheritdoc} * @SuppressWarnings(PHPMD.NPathComplexity) */ - public function date($date = null, $locale = null, $useTimezone = true, $includeTime = true) + public function date($date = null, $locale = null, $useTimezone = true) { $locale = $locale ?: $this->_localeResolver->getLocale(); $timezone = $useTimezone @@ -165,11 +165,10 @@ public function date($date = null, $locale = null, $useTimezone = true, $include } elseif ($date instanceof \DateTime) { return $date->setTimezone(new \DateTimeZone($timezone)); } elseif (!is_numeric($date)) { - $timeType = $includeTime ? \IntlDateFormatter::SHORT : \IntlDateFormatter::NONE; $formatter = new \IntlDateFormatter( $locale, \IntlDateFormatter::SHORT, - $timeType, + \IntlDateFormatter::SHORT, new \DateTimeZone($timezone) ); // IntlDateFormatter does not parse correctly date formats per some locales From 968f2000cd9ad063116fa5eee23d57c801cc0569 Mon Sep 17 00:00:00 2001 From: Sergey Shvets Date: Fri, 24 Nov 2017 13:40:12 +0200 Subject: [PATCH 038/555] MAGETWO-83646: Encrypted scope-specific config values fail to decrypt on PHP7 #8591 --- .../Framework/App/Config/Scope/Converter.php | 23 +++++++++++++------ .../Test/Unit/Config/Scope/ConverterTest.php | 6 ++++- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/internal/Magento/Framework/App/Config/Scope/Converter.php b/lib/internal/Magento/Framework/App/Config/Scope/Converter.php index e944c1f71b2d3..00fad15ebe577 100644 --- a/lib/internal/Magento/Framework/App/Config/Scope/Converter.php +++ b/lib/internal/Magento/Framework/App/Config/Scope/Converter.php @@ -28,19 +28,28 @@ public function convert($source) /** * Set array value by path * - * @param array $output + * @param array $container * @param string $path * @param string $value * @return array */ - protected function _setArrayValue(array $output, $path, $value) + protected function _setArrayValue(array $container, $path, $value) { - $parts = array_reverse(explode('/', $path)); + $parts = explode('/', $path); - $result = $value; - foreach ($parts as $part) { - $result = [$part => $result]; + if (count($parts) > 0) { + $parts = array_reverse($parts); + + $result = $value; + foreach ($parts as $part) { + $part = trim($part); + if ($part !== '') { + $result = [$part => $result]; + } + } + + $container = array_merge_recursive($container, $result); } - return array_merge_recursive($output, $result); + return $container; } } diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php index 0a061ef0cbe65..d5e9c877f09fa 100644 --- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php +++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Scope/ConverterTest.php @@ -25,13 +25,17 @@ public function testConvert() 'some/config/path2' => 'value2', 'some/config/path2' => 'value3', 'some2/config/path2' => 'value4', + 'some/bad/path////' => 'value5', ]; $expectedResult = [ 'some' => [ 'config' => [ 'path1' => 'value1', 'path2' => 'value3', - ] + ], + 'bad' => [ + 'path' => 'value5', + ], ], 'some2' => [ 'config' => [ From 0947734901bf11af0ec813eb9acb344af86d5bc4 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 24 Nov 2017 14:08:03 +0200 Subject: [PATCH 039/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Update unit tests; --- .../Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php index 77b1b989073e7..dc4369f363dda 100644 --- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php +++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php @@ -56,7 +56,7 @@ public function dateIncludeTimeDataProvider() 'Parse date without time' => [ '19/05/2017', // date 'ar_KW', // locale - 1495170000 // expected timestamp + 1495152000 // expected timestamp ], 'Parse date with time' => [ '05/19/2017 00:01 am', // date From f9855e760f3446d3c6374560b815693fc4935c14 Mon Sep 17 00:00:00 2001 From: Ievgen Shakhsuvarov Date: Fri, 24 Nov 2017 14:35:29 +0200 Subject: [PATCH 040/555] magento/magento2#12321: Trying to get data from non existent products - Fixed according to static test results --- .../Reports/Model/ResourceModel/Quote/Item/Collection.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php index 6c67715f7f8b4..0bbe82c035be0 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php @@ -6,8 +6,6 @@ namespace Magento\Reports\Model\ResourceModel\Quote\Item; -use Magento\Framework\App\ResourceConnection; - /** * Collection of Magento\Quote\Model\Quote\Item * @@ -89,7 +87,6 @@ protected function _construct() $this->_init('Magento\Quote\Model\Quote\Item', 'Magento\Quote\Model\ResourceModel\Quote\Item'); } - /** * Prepare select query for products in carts report * From 429558b76cfc4ce5dc2e8fe79eea875e747e8412 Mon Sep 17 00:00:00 2001 From: Leonid Poluyanov Date: Fri, 24 Nov 2017 18:43:56 +0200 Subject: [PATCH 041/555] MAGETWO-69036: Lazy-loaders cause fatal errors in production mode on cloud --- .../Adminhtml/Product/AddAttributeToTemplate.php | 1 + .../Controller/Adminhtml/Product/Builder.php | 1 + .../Adminhtml/Product/Initialization/Helper.php | 14 +++++++------- .../Catalog/Model/Product/Option/Repository.php | 6 ++++-- .../Catalog/Model/ProductLink/Repository.php | 5 +++-- .../Catalog/Model/ResourceModel/Category/Flat.php | 5 +++-- .../Customer/Controller/Adminhtml/Index/Cart.php | 1 + .../Customer/Model/Customer/DataProvider.php | 1 + .../Magento/Customer/Model/Metadata/Form/File.php | 1 + .../Model/Currency/Import/Webservicex.php | 3 ++- .../Initialization/Helper/Plugin/Downloadable.php | 5 +++-- .../Console/Command/AbstractIndexerCommand.php | 2 ++ .../Command/AbstractIndexerManageCommand.php | 2 ++ app/code/Magento/Quote/Model/QuoteManagement.php | 1 + app/code/Magento/Quote/Model/QuoteRepository.php | 1 + .../Magento/Framework/App/Utility/Files.php | 1 + .../SearchTermDescriptionGeneratorFactory.php | 1 + 17 files changed, 35 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php index 53280624ac5ce..1a07607b6551b 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/AddAttributeToTemplate.php @@ -83,6 +83,7 @@ class AddAttributeToTemplate extends \Magento\Catalog\Controller\Adminhtml\Produ * @param Builder $productBuilder * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory * @param AttributeGroupInterfaceFactory|null $attributeGroupFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php index 23132e99d273a..e50cf07a29777 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php @@ -46,6 +46,7 @@ class Builder * @param Registry $registry * @param WysiwygModel\Config $wysiwygConfig * @param StoreFactory|null $storeFactory + * @throws \RuntimeException */ public function __construct( ProductFactory $productFactory, diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php index 8fed1619500ab..3c27988848d39 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php @@ -94,13 +94,13 @@ class Helper * @param ProductLinks $productLinks * @param Js $jsHelper * @param DateFilter $dateFilter - * @param LinkTypeProvider $linkTypeProvider - * @param CustomOptionFactory $customOptionFactory - * @param ProductLinkFactory $productLinkFactory - * @param ProductRepository $productRepository - * @param CustomOptionFactory $customOptionFactory - * @param DateTime $dateTimeFilter - * @param LinkResolver $linkResolver + * @param LinkTypeProvider|null $linkTypeProvider + * @param CustomOptionFactory|null $customOptionFactory + * @param ProductLinkFactory|null $productLinkFactory + * @param ProductRepository|null $productRepository + * @param DateTime|null $dateTimeFilter + * @param LinkResolver|null $linkResolver + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Catalog/Model/Product/Option/Repository.php b/app/code/Magento/Catalog/Model/Product/Option/Repository.php index a3f4138b43619..8af6a42eedfc5 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Repository.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Repository.php @@ -58,8 +58,9 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Catalog\Model\ResourceModel\Product\Option $optionResource * @param Converter $converter - * @param \Magento\Catalog\Model\Product\OptionFactory $optionFactory - * @param \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory $collectionFactory + * @param \Magento\Catalog\Model\Product\OptionFactory|null $optionFactory + * @param \Magento\Catalog\Model\ResourceModel\Product\Option\CollectionFactory|null $collectionFactory + * @throws \RuntimeException */ public function __construct( \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, @@ -257,6 +258,7 @@ private function getMetadataPool() /** * @return \Magento\Framework\EntityManager\HydratorPool + * @throws \RuntimeException * @deprecated */ private function getHydratorPool() diff --git a/app/code/Magento/Catalog/Model/ProductLink/Repository.php b/app/code/Magento/Catalog/Model/ProductLink/Repository.php index 8944aa492ed75..9062d315e1aa3 100644 --- a/app/code/Magento/Catalog/Model/ProductLink/Repository.php +++ b/app/code/Magento/Catalog/Model/ProductLink/Repository.php @@ -84,8 +84,9 @@ class Repository implements \Magento\Catalog\Api\ProductLinkRepositoryInterface * @param LinksInitializer $linkInitializer * @param Management $linkManagement * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor - * @param ProductLinkInterfaceFactory $productLinkFactory - * @param ProductLinkExtensionFactory $productLinkExtensionFactory + * @param ProductLinkInterfaceFactory|null $productLinkFactory + * @param ProductLinkExtensionFactory|null $productLinkExtensionFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php index 639957bb962f7..3c349a5e0d239 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php @@ -96,8 +96,9 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Model\Config $catalogConfig * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param string $connectionName - * @param CategoryFlatCollectionFactory $categoryFlatCollectionFactory + * @param string|null $connectionName + * @param CategoryFlatCollectionFactory|null $categoryFlatCollectionFactory + * @throws \RuntimeException */ public function __construct( \Magento\Framework\Model\ResourceModel\Db\Context $context, diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php index 8a7a35a79643c..c935eb20e019b 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php @@ -57,6 +57,7 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory * @param QuoteFactory|null $quoteFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Customer/Model/Customer/DataProvider.php b/app/code/Magento/Customer/Model/Customer/DataProvider.php index c6a9fd4b63964..373d40516eb75 100644 --- a/app/code/Magento/Customer/Model/Customer/DataProvider.php +++ b/app/code/Magento/Customer/Model/Customer/DataProvider.php @@ -142,6 +142,7 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider * @param array $data * @param FileProcessorFactory|null $fileProcessorFactory * @throws \Magento\Framework\Exception\LocalizedException + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Customer/Model/Metadata/Form/File.php b/app/code/Magento/Customer/Model/Metadata/Form/File.php index 1db03b57e6160..a1a627682268c 100644 --- a/app/code/Magento/Customer/Model/Metadata/Form/File.php +++ b/app/code/Magento/Customer/Model/Metadata/Form/File.php @@ -73,6 +73,7 @@ class File extends AbstractData * @param Filesystem $fileSystem * @param UploaderFactory $uploaderFactory * @param FileProcessorFactory|null $fileProcessorFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php index 54bb57ebbffc2..d0f2cf082c6b9 100644 --- a/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php +++ b/app/code/Magento/Directory/Model/Currency/Import/Webservicex.php @@ -24,7 +24,7 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor /** * Http Client Factory * - * @var ZendClientFactory|null + * @var ZendClientFactory */ protected $httpClientFactory; @@ -39,6 +39,7 @@ class Webservicex extends \Magento\Directory\Model\Currency\Import\AbstractImpor * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param ZendClientFactory|null $httpClientFactory + * @throws \RuntimeException */ public function __construct( \Magento\Directory\Model\CurrencyFactory $currencyFactory, diff --git a/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php b/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php index 952cf8d273d1c..e2a298493b962 100644 --- a/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php +++ b/app/code/Magento/Downloadable/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Downloadable.php @@ -44,10 +44,11 @@ class Downloadable /** * @param RequestInterface $request - * @param SampleFactory $sampleFactory + * @param SampleFactory|null $sampleFactory * @param SampleBuilder|null $sampleBuilder - * @param LinkFactory $linkFactory + * @param LinkFactory|null $linkFactory * @param LinkBuilder|null $linkBuilder + * @throws \RuntimeException */ public function __construct( RequestInterface $request, diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php index 7dbf419d54578..85630f3762ab7 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerCommand.php @@ -52,6 +52,7 @@ public function __construct( * Returns all indexers * * @return IndexerInterface[] + * @throws \Magento\Framework\Exception\LocalizedException */ protected function getAllIndexers() { @@ -65,6 +66,7 @@ protected function getAllIndexers() * Gets initialized object manager * * @return ObjectManagerInterface + * @throws \Magento\Framework\Exception\LocalizedException */ protected function getObjectManager() { diff --git a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php index d8dbc54a81849..07d23553b2b9b 100644 --- a/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php +++ b/app/code/Magento/Indexer/Console/Command/AbstractIndexerManageCommand.php @@ -49,6 +49,7 @@ public function __construct( * @param InputInterface $input * @return IndexerInterface[] * @throws \InvalidArgumentException + * @throws \Magento\Framework\Exception\LocalizedException */ protected function getIndexers(InputInterface $input) { @@ -107,6 +108,7 @@ public function getInputList() /** * @deprecated * @return mixed + * @throws \Magento\Framework\Exception\LocalizedException */ private function getIndexerFactory() { diff --git a/app/code/Magento/Quote/Model/QuoteManagement.php b/app/code/Magento/Quote/Model/QuoteManagement.php index 80fa01a22a448..69285de71909b 100644 --- a/app/code/Magento/Quote/Model/QuoteManagement.php +++ b/app/code/Magento/Quote/Model/QuoteManagement.php @@ -158,6 +158,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface * @param \Magento\Customer\Api\AccountManagementInterface $accountManagement * @param QuoteFactory $quoteFactory * @param QuoteIdMaskFactory|null $quoteIdMaskFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( diff --git a/app/code/Magento/Quote/Model/QuoteRepository.php b/app/code/Magento/Quote/Model/QuoteRepository.php index 072c233e991bf..1967c2dc256b9 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository.php +++ b/app/code/Magento/Quote/Model/QuoteRepository.php @@ -83,6 +83,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface * @param \Magento\Quote\Api\Data\CartSearchResultsInterfaceFactory $searchResultsDataFactory * @param JoinProcessorInterface $extensionAttributesJoinProcessor * @param QuoteCollectionFactory|null $quoteCollectionFactory + * @throws \RuntimeException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function __construct( diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index 9261ca617c532..ea70499c82025 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -101,6 +101,7 @@ class Files * @param DirSearch $dirSearch * @param ThemePackageList $themePackageList * @param RegexIteratorFactory|null $regexIteratorFactory + * @throws \RuntimeException */ public function __construct( ComponentRegistrar $componentRegistrar, diff --git a/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php b/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php index 98cc8b9649f7a..9b5cf2a196543 100644 --- a/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php +++ b/setup/src/Magento/Setup/Model/SearchTermDescriptionGeneratorFactory.php @@ -62,6 +62,7 @@ class SearchTermDescriptionGeneratorFactory * @param DescriptionGeneratorFactory|null $descriptionGeneratorFactory * @param DictionaryFactory|null $dictionaryFactory * @param SearchTermManagerFactory|null $searchTermManagerFactory + * @throws \RuntimeException */ public function __construct( ObjectManagerInterface $objectManager, From 6543e3954849dd6551c7ff1e691b33e519c00f66 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 24 Nov 2017 19:33:41 +0200 Subject: [PATCH 042/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Change logic for timezone date method; --- .../Magento/Framework/Stdlib/DateTime/Timezone.php | 8 ++++---- .../Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 66e924bb7915b..19d5eaeb7cea0 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -171,13 +171,13 @@ public function date($date = null, $locale = null, $useTimezone = true) \IntlDateFormatter::SHORT, new \DateTimeZone($timezone) ); - // IntlDateFormatter does not parse correctly date formats per some locales - // It depends on ICU lib version used by intl extension - // For locales like fr_FR, ar_KW parse date with hyphen as separator try { $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); } catch (\Exception $e) { - $date = str_replace('/', '-', $date); + // IntlDateFormatter does not parse correctly date formats per some locales + // It depends on ICU lib version used by intl extension + // For locales like fr_FR, ar_KW transform date to m/d/Y format + $date = \DateTime::createFromFormat('d/m/Y', $date)->format('m/d/Y'); $date = $formatter->parse($date) ?: (new \DateTime($date))->getTimestamp(); } } diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php index dc4369f363dda..77b1b989073e7 100644 --- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php +++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php @@ -56,7 +56,7 @@ public function dateIncludeTimeDataProvider() 'Parse date without time' => [ '19/05/2017', // date 'ar_KW', // locale - 1495152000 // expected timestamp + 1495170000 // expected timestamp ], 'Parse date with time' => [ '05/19/2017 00:01 am', // date From 3d8131702199ef09a91c4e5c6dd29a15e74066fc Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 24 Nov 2017 19:49:26 +0200 Subject: [PATCH 043/555] MAGETWO-71669: [Magento Cloud] Incorrect date format with Arabic language locale - Update unit test; --- .../Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php index 77b1b989073e7..3400568bd8295 100644 --- a/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php +++ b/lib/internal/Magento/Framework/Stdlib/Test/Unit/DateTime/TimezoneTest.php @@ -56,7 +56,7 @@ public function dateIncludeTimeDataProvider() 'Parse date without time' => [ '19/05/2017', // date 'ar_KW', // locale - 1495170000 // expected timestamp + 1495177200 // expected timestamp ], 'Parse date with time' => [ '05/19/2017 00:01 am', // date From 54ae0cef01f1310c806e620918e582f5ff145dec Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 27 Nov 2017 14:55:19 +0200 Subject: [PATCH 044/555] MAGETWO-84444: MySQL triggers for Indexers not removed after upgrade --- .../Magento/CatalogInventory/etc/mview.xml | 5 +- .../Magento/Indexer/Setup/RecurringData.php | 56 ++++++++++ app/etc/di.xml | 7 ++ .../Mview/Test/Unit/View/SubscriptionTest.php | 35 +++++- .../Framework/Mview/View/Subscription.php | 101 ++++++++++++------ .../Magento/Framework/Mview/etc/mview.xsd | 2 +- 6 files changed, 171 insertions(+), 35 deletions(-) create mode 100644 app/code/Magento/Indexer/Setup/RecurringData.php diff --git a/app/code/Magento/CatalogInventory/etc/mview.xml b/app/code/Magento/CatalogInventory/etc/mview.xml index 58a051a3d0e1b..3dd8419d7e3c8 100644 --- a/app/code/Magento/CatalogInventory/etc/mview.xml +++ b/app/code/Magento/CatalogInventory/etc/mview.xml @@ -5,10 +5,13 @@ * See COPYING.txt for license details. */ --> - + +
      +
      diff --git a/app/code/Magento/Indexer/Setup/RecurringData.php b/app/code/Magento/Indexer/Setup/RecurringData.php new file mode 100644 index 0000000000000..38ea0e5b79e20 --- /dev/null +++ b/app/code/Magento/Indexer/Setup/RecurringData.php @@ -0,0 +1,56 @@ +indexerFactory = $indexerFactory; + $this->configInterface = $configInterface; + } + + /** + * {@inheritdoc} + */ + public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) + { + foreach (array_keys($this->configInterface->getIndexers()) as $indexerId) { + $indexer = $this->indexerFactory->create()->load($indexerId); + if ($indexer->isScheduled()) { + $indexer->getView()->unsubscribe()->subscribe(); + } + } + } +} diff --git a/app/etc/di.xml b/app/etc/di.xml index 279d5b9b93942..fedc537b85df0 100755 --- a/app/etc/di.xml +++ b/app/etc/di.xml @@ -1221,4 +1221,11 @@ + + + + updated_at + + + diff --git a/lib/internal/Magento/Framework/Mview/Test/Unit/View/SubscriptionTest.php b/lib/internal/Magento/Framework/Mview/Test/Unit/View/SubscriptionTest.php index aae82938c8312..545689a43913f 100644 --- a/lib/internal/Magento/Framework/Mview/Test/Unit/View/SubscriptionTest.php +++ b/lib/internal/Magento/Framework/Mview/Test/Unit/View/SubscriptionTest.php @@ -62,7 +62,7 @@ protected function setUp() $this->resourceMock->expects($this->any()) ->method('getTableName') - ->willReturn($this->tableName); + ->will($this->returnArgument(0)); $this->model = new Subscription( $this->resourceMock, @@ -89,11 +89,15 @@ public function testGetColumnName() $this->assertEquals('columnName', $this->model->getColumnName()); } + /** + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ public function testCreate() { $triggerName = 'trigger_name'; $this->resourceMock->expects($this->atLeastOnce())->method('getTriggerName')->willReturn($triggerName); $triggerMock = $this->getMockBuilder('Magento\Framework\DB\Ddl\Trigger') + ->setMethods(['setName', 'getName', 'setTime', 'setEvent', 'setTable', 'addStatement']) ->disableOriginalConstructor() ->getMock(); $triggerMock->expects($this->exactly(3)) @@ -114,8 +118,35 @@ public function testCreate() ->method('setTable') ->with($this->tableName) ->will($this->returnSelf()); - $triggerMock->expects($this->exactly(6)) + + $triggerMock->expects($this->at(4)) + ->method('addStatement') + ->with("INSERT IGNORE INTO test_view_cl (entity_id) VALUES (NEW.columnName);") + ->will($this->returnSelf()); + + $triggerMock->expects($this->at(5)) + ->method('addStatement') + ->with("INSERT IGNORE INTO other_test_view_cl (entity_id) VALUES (NEW.columnName);") + ->will($this->returnSelf()); + + $triggerMock->expects($this->at(11)) + ->method('addStatement') + ->with("INSERT IGNORE INTO test_view_cl (entity_id) VALUES (NEW.columnName);") + ->will($this->returnSelf()); + + $triggerMock->expects($this->at(12)) + ->method('addStatement') + ->with("INSERT IGNORE INTO other_test_view_cl (entity_id) VALUES (NEW.columnName);") + ->will($this->returnSelf()); + + $triggerMock->expects($this->at(18)) + ->method('addStatement') + ->with("INSERT IGNORE INTO test_view_cl (entity_id) VALUES (OLD.columnName);") + ->will($this->returnSelf()); + + $triggerMock->expects($this->at(19)) ->method('addStatement') + ->with("INSERT IGNORE INTO other_test_view_cl (entity_id) VALUES (OLD.columnName);") ->will($this->returnSelf()); $changelogMock = $this->getMockForAbstractClass( diff --git a/lib/internal/Magento/Framework/Mview/View/Subscription.php b/lib/internal/Magento/Framework/Mview/View/Subscription.php index c3da91c833185..3c4bd1dce2d76 100644 --- a/lib/internal/Magento/Framework/Mview/View/Subscription.php +++ b/lib/internal/Magento/Framework/Mview/View/Subscription.php @@ -10,6 +10,8 @@ use Magento\Framework\App\ResourceConnection; use Magento\Framework\DB\Ddl\Trigger; +use Magento\Framework\DB\Ddl\TriggerFactory; +use Magento\Framework\Mview\ViewInterface; class Subscription implements SubscriptionInterface { @@ -21,12 +23,12 @@ class Subscription implements SubscriptionInterface protected $connection; /** - * @var \Magento\Framework\DB\Ddl\TriggerFactory + * @var TriggerFactory */ protected $triggerFactory; /** - * @var \Magento\Framework\Mview\View\CollectionInterface + * @var CollectionInterface */ protected $viewCollection; @@ -57,21 +59,32 @@ class Subscription implements SubscriptionInterface */ protected $resource; + /** + * List of columns that can be updated in a subscribed table + * without creating a new change log entry + * + * @var array + */ + private $ignoredUpdateColumns = []; + /** * @param ResourceConnection $resource - * @param \Magento\Framework\DB\Ddl\TriggerFactory $triggerFactory - * @param \Magento\Framework\Mview\View\CollectionInterface $viewCollection - * @param \Magento\Framework\Mview\ViewInterface $view + * @param TriggerFactory $triggerFactory + * @param CollectionInterface $viewCollection + * @param ViewInterface $view * @param string $tableName * @param string $columnName + * @param array $ignoredUpdateColumns + * @throws \DomainException */ public function __construct( ResourceConnection $resource, - \Magento\Framework\DB\Ddl\TriggerFactory $triggerFactory, - \Magento\Framework\Mview\View\CollectionInterface $viewCollection, - \Magento\Framework\Mview\ViewInterface $view, + TriggerFactory $triggerFactory, + CollectionInterface $viewCollection, + ViewInterface $view, $tableName, - $columnName + $columnName, + array $ignoredUpdateColumns = [] ) { $this->connection = $resource->getConnection(); $this->triggerFactory = $triggerFactory; @@ -80,12 +93,14 @@ public function __construct( $this->tableName = $tableName; $this->columnName = $columnName; $this->resource = $resource; + $this->ignoredUpdateColumns = $ignoredUpdateColumns; } /** - * Create subsciption + * Create subscription * - * @return \Magento\Framework\Mview\View\SubscriptionInterface + * @return SubscriptionInterface + * @throws \InvalidArgumentException */ public function create() { @@ -102,7 +117,7 @@ public function create() // Add statements for linked views foreach ($this->getLinkedViews() as $view) { - /** @var \Magento\Framework\Mview\ViewInterface $view */ + /** @var ViewInterface $view */ $trigger->addStatement($this->buildStatement($event, $view->getChangelog())); } @@ -116,7 +131,8 @@ public function create() /** * Remove subscription * - * @return \Magento\Framework\Mview\View\SubscriptionInterface + * @return SubscriptionInterface + * @throws \InvalidArgumentException */ public function remove() { @@ -131,7 +147,7 @@ public function remove() // Add statements for linked views foreach ($this->getLinkedViews() as $view) { - /** @var \Magento\Framework\Mview\ViewInterface $view */ + /** @var ViewInterface $view */ $trigger->addStatement($this->buildStatement($event, $view->getChangelog())); } @@ -154,10 +170,10 @@ public function remove() protected function getLinkedViews() { if (!$this->linkedViews) { - $viewList = $this->viewCollection->getViewsByStateMode(\Magento\Framework\Mview\View\StateInterface::MODE_ENABLED); + $viewList = $this->viewCollection->getViewsByStateMode(StateInterface::MODE_ENABLED); foreach ($viewList as $view) { - /** @var \Magento\Framework\Mview\ViewInterface $view */ + /** @var ViewInterface $view */ // Skip the current view if ($view->getId() == $this->getView()->getId()) { continue; @@ -175,35 +191,58 @@ protected function getLinkedViews() } /** - * Build trigger statement for INSER, UPDATE, DELETE events + * Build trigger statement for INSERT, UPDATE, DELETE events * * @param string $event - * @param \Magento\Framework\Mview\View\ChangelogInterface $changelog + * @param ChangelogInterface $changelog * @return string */ protected function buildStatement($event, $changelog) { switch ($event) { case Trigger::EVENT_INSERT: + $trigger = 'INSERT IGNORE INTO %s (%s) VALUES (NEW.%s);'; + break; + case Trigger::EVENT_UPDATE: - return sprintf( - "INSERT IGNORE INTO %s (%s) VALUES (NEW.%s);", - $this->connection->quoteIdentifier($this->resource->getTableName($changelog->getName())), - $this->connection->quoteIdentifier($changelog->getColumnName()), - $this->connection->quoteIdentifier($this->getColumnName()) - ); + $trigger = 'INSERT IGNORE INTO %s (%s) VALUES (NEW.%s);'; + + if ($this->connection->isTableExists($this->getTableName()) + && $describe = $this->connection->describeTable($this->getTableName()) + ) { + $columnNames = array_column($describe, 'COLUMN_NAME'); + $columnNames = array_diff($columnNames, $this->ignoredUpdateColumns); + if ($columnNames) { + $columns = []; + foreach ($columnNames as $columnName) { + $columns[] = sprintf( + 'NEW.%1$s != OLD.%1$s', + $this->connection->quoteIdentifier($columnName) + ); + } + $trigger = sprintf( + "IF (%s) THEN %s END IF;", + implode(' OR ', $columns), + $trigger + ); + } + } + break; case Trigger::EVENT_DELETE: - return sprintf( - "INSERT IGNORE INTO %s (%s) VALUES (OLD.%s);", - $this->connection->quoteIdentifier($this->resource->getTableName($changelog->getName())), - $this->connection->quoteIdentifier($changelog->getColumnName()), - $this->connection->quoteIdentifier($this->getColumnName()) - ); + $trigger = 'INSERT IGNORE INTO %s (%s) VALUES (OLD.%s);'; + break; default: return ''; } + + return sprintf( + $trigger, + $this->connection->quoteIdentifier($this->resource->getTableName($changelog->getName())), + $this->connection->quoteIdentifier($changelog->getColumnName()), + $this->connection->quoteIdentifier($this->getColumnName()) + ); } /** @@ -225,7 +264,7 @@ private function getAfterEventTriggerName($event) /** * Retrieve View related to subscription * - * @return \Magento\Framework\Mview\ViewInterface + * @return ViewInterface * @codeCoverageIgnore */ public function getView() diff --git a/lib/internal/Magento/Framework/Mview/etc/mview.xsd b/lib/internal/Magento/Framework/Mview/etc/mview.xsd index 1dad5b3f41510..b7d6bbdde68a7 100644 --- a/lib/internal/Magento/Framework/Mview/etc/mview.xsd +++ b/lib/internal/Magento/Framework/Mview/etc/mview.xsd @@ -106,7 +106,7 @@ - Subscription model must be a valid PHP class or interface name. + DEPRECATED. Subscription model must be a valid PHP class or interface name. From 4afb99e763139f8ed02467e8ab85f978d7b0d02f Mon Sep 17 00:00:00 2001 From: Illia Grybkov Date: Mon, 27 Nov 2017 17:57:26 +0200 Subject: [PATCH 045/555] MAGETWO-84444: MySQL triggers for Indexers not removed after upgrade --- app/code/Magento/Indexer/Setup/RecurringData.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Indexer/Setup/RecurringData.php b/app/code/Magento/Indexer/Setup/RecurringData.php index 38ea0e5b79e20..eb6e6ee9e7185 100644 --- a/app/code/Magento/Indexer/Setup/RecurringData.php +++ b/app/code/Magento/Indexer/Setup/RecurringData.php @@ -28,8 +28,6 @@ class RecurringData implements InstallDataInterface private $configInterface; /** - * RecurringData constructor. - * * @param IndexerFactory $indexerFactory * @param ConfigInterface $configInterface */ @@ -43,6 +41,7 @@ public function __construct( /** * {@inheritdoc} + * @throws \Exception */ public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { From 5f622839f363a17af51f7de029dd8a1eae637431 Mon Sep 17 00:00:00 2001 From: Daniel Renaud Date: Mon, 27 Nov 2017 10:53:12 -0600 Subject: [PATCH 046/555] MAGETWO-69213: [Backport] - Braintree saved credit card error for reorder between $2001-$3000 does not display error to customer - for 2.1 --- .../Customer/view/frontend/web/js/model/customer-addresses.js | 2 +- .../frontend/js/view/payment/method-renderer/cc-form.test.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Customer/view/frontend/web/js/model/customer-addresses.js b/app/code/Magento/Customer/view/frontend/web/js/model/customer-addresses.js index 02a2f224feff8..2c1afaf7aa6d3 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/model/customer-addresses.js +++ b/app/code/Magento/Customer/view/frontend/web/js/model/customer-addresses.js @@ -15,7 +15,7 @@ define( return { getAddressItems: function() { var items = []; - if (isLoggedIn) { + if (isLoggedIn()) { var customerData = window.customerData; if (Object.keys(customerData).length) { $.each(customerData.addresses, function (key, item) { diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js index 935cefaa446ba..cae757029bfe8 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Braintree/frontend/js/view/payment/method-renderer/cc-form.test.js @@ -18,7 +18,8 @@ define([ 'Magento_Checkout/js/model/quote': { billingAddress: ko.observable(), shippingAddress: ko.observable(), - paymentMethod: ko.observable() + paymentMethod: ko.observable(), + totals: ko.observable({}) }, 'Magento_Braintree/js/view/payment/validator-handler': jasmine.createSpyObj( 'validator-handler', From 536872747e48db058ed6a0be5ce8665e6f198424 Mon Sep 17 00:00:00 2001 From: Oscar Recio Date: Sun, 5 Nov 2017 13:40:38 +0100 Subject: [PATCH 047/555] Generate new FormKey and replace for oldRequestParams --- .../Model/Plugin/CustomerFlushFormKey.php | 52 +++++++++++++++++++ app/code/Magento/Customer/etc/di.xml | 3 ++ 2 files changed, 55 insertions(+) create mode 100644 app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php diff --git a/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php b/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php new file mode 100644 index 0000000000000..0d5b084df30e3 --- /dev/null +++ b/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php @@ -0,0 +1,52 @@ +session = $session; + $this->dataFormKey = $dataFormKey; + } + + /** + * @param FlushFormKey $subject + * @param callable $proceed + * @param array $args + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + public function aroundExecute(FlushFormKey $subject, callable $proceed, ...$args) + { + $currentFormKey = $this->dataFormKey->getFormKey(); + $proceed(...$args); + $beforeParams = $this->session->getBeforeRequestParams(); + if ($beforeParams['form_key'] == $currentFormKey) { + $beforeParams['form_key'] = $this->dataFormKey->getFormKey(); + $this->session->setBeforeRequestParams($beforeParams); + } + } +} diff --git a/app/code/Magento/Customer/etc/di.xml b/app/code/Magento/Customer/etc/di.xml index 48e02e6d030f2..5b33328bb176d 100644 --- a/app/code/Magento/Customer/etc/di.xml +++ b/app/code/Magento/Customer/etc/di.xml @@ -313,6 +313,9 @@ + + + Magento\Customer\Model\Cache\Type\Notification From f79d97e0c0f5c5bd581e6106316a121929575de3 Mon Sep 17 00:00:00 2001 From: Volodymyr Kublytskyi Date: Tue, 28 Nov 2017 15:10:28 +0200 Subject: [PATCH 048/555] Fixed static tests and backported unit test --- .../Model/Plugin/CustomerFlushFormKey.php | 9 +- .../Model/Plugin/CustomerFlushFormKeyTest.php | 106 ++++++++++++++++++ 2 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 app/code/Magento/Customer/Test/Unit/Model/Plugin/CustomerFlushFormKeyTest.php diff --git a/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php b/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php index 0d5b084df30e3..583bae2ec8ae4 100644 --- a/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php +++ b/app/code/Magento/Customer/Model/Plugin/CustomerFlushFormKey.php @@ -7,6 +7,7 @@ use Magento\Customer\Model\Session; use Magento\Framework\Data\Form\FormKey as DataFormKey; +use \Magento\Framework\Event\Observer; use Magento\PageCache\Observer\FlushFormKey; class CustomerFlushFormKey @@ -36,13 +37,15 @@ public function __construct(Session $session, DataFormKey $dataFormKey) /** * @param FlushFormKey $subject * @param callable $proceed - * @param array $args + * @param Observer $observer + * @return void + * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function aroundExecute(FlushFormKey $subject, callable $proceed, ...$args) + public function aroundExecute(FlushFormKey $subject, callable $proceed, Observer $observer) { $currentFormKey = $this->dataFormKey->getFormKey(); - $proceed(...$args); + $proceed($observer); $beforeParams = $this->session->getBeforeRequestParams(); if ($beforeParams['form_key'] == $currentFormKey) { $beforeParams['form_key'] = $this->dataFormKey->getFormKey(); diff --git a/app/code/Magento/Customer/Test/Unit/Model/Plugin/CustomerFlushFormKeyTest.php b/app/code/Magento/Customer/Test/Unit/Model/Plugin/CustomerFlushFormKeyTest.php new file mode 100644 index 0000000000000..6697cd43cea4b --- /dev/null +++ b/app/code/Magento/Customer/Test/Unit/Model/Plugin/CustomerFlushFormKeyTest.php @@ -0,0 +1,106 @@ +cookieFormKey = $this->getMockBuilder(CookieFormKey::class) + ->disableOriginalConstructor() + ->getMock(); + + /** @var DataFormKey | MockObject */ + $this->dataFormKey = $this->getMockBuilder(DataFormKey::class) + ->disableOriginalConstructor() + ->getMock(); + + /** @var Session | MockObject */ + $this->customerSession = $this->getMockBuilder(Session::class) + ->disableOriginalConstructor() + ->setMethods(['getBeforeRequestParams', 'setBeforeRequestParams']) + ->getMock(); + + } + + /** + * @dataProvider aroundFlushFormKeyProvider + * @param $beforeFormKey + * @param $currentFormKey + * @param $getFormKeyTimes + * @param $setBeforeParamsTimes + */ + public function testAroundFlushFormKey( + $beforeFormKey, + $currentFormKey, + $getFormKeyTimes, + $setBeforeParamsTimes + ) { + $observerDto = new Observer(); + $observer = new FlushFormKey($this->cookieFormKey, $this->dataFormKey); + $plugin = new CustomerFlushFormKey($this->customerSession, $this->dataFormKey); + + $beforeParams['form_key'] = $beforeFormKey; + + $this->dataFormKey->expects($this->exactly($getFormKeyTimes)) + ->method('getFormKey') + ->willReturn($currentFormKey); + + $this->customerSession->expects($this->once()) + ->method('getBeforeRequestParams') + ->willReturn($beforeParams); + + $this->customerSession->expects($this->exactly($setBeforeParamsTimes)) + ->method('setBeforeRequestParams') + ->with($beforeParams); + + $proceed = function ($observerDto) use ($observer) { + return $observer->execute($observerDto); + }; + + $plugin->aroundExecute($observer, $proceed, $observerDto); + } + + /** + * Data provider for testAroundFlushFormKey + * + * @return array + */ + public function aroundFlushFormKeyProvider() + { + return [ + 'valid form key' => ['form_key_value', 'form_key_value', 2, 1], + 'corrupted form key' => ['form_old_key_value', 'form_key_value', 1, 0], + 'missed form key' => [null, 'form_key_value', 1, 0] + ]; + } +} From 90de24095ed8a30f20456299b9ad4dc4e2ceb641 Mon Sep 17 00:00:00 2001 From: Michail Slabko Date: Wed, 29 Nov 2017 16:34:15 +0200 Subject: [PATCH 049/555] MAGETWO-83326: Run scenarios on PAT for 2.1 --- setup/performance-toolkit/README.md | 198 + setup/performance-toolkit/README.txt | 87 - setup/performance-toolkit/benchmark.jmx | 34763 ++++++++++++++-- .../files/downloadable_original.txt | 1 + .../files/downloadable_sample.txt | 1 + .../files/search_terms.csv | 10 + .../performance-toolkit/profiles/ce/small.xml | 12 + 7 files changed, 31481 insertions(+), 3591 deletions(-) create mode 100644 setup/performance-toolkit/README.md delete mode 100644 setup/performance-toolkit/README.txt create mode 100644 setup/performance-toolkit/files/downloadable_original.txt create mode 100644 setup/performance-toolkit/files/downloadable_sample.txt create mode 100644 setup/performance-toolkit/files/search_terms.csv diff --git a/setup/performance-toolkit/README.md b/setup/performance-toolkit/README.md new file mode 100644 index 0000000000000..778a1457e10a2 --- /dev/null +++ b/setup/performance-toolkit/README.md @@ -0,0 +1,198 @@ +## Performance Toolkit + +## Overview + +The Performance Toolkit enables you to test the performance of your Magento installations and the impact of your customizations. It allows you to generate sample data for testing performance and to run Apache JMeter scenarios, which imitate users activity. As a result, you get a set of metrics, that you can use to judge how changes affect performance, and the overall load capacity of your server(s). + +## Installation + +### Apache JMeter + +- Go to the [Download Apache JMeter](http://jmeter.apache.org/download_jmeter.cgi) page and download JMeter in the *Binaries* section. Note that Java 8 or later is required. +- Unzip the archive. + +### JSON Plugins +- Go to the [JMeter Installing Plugins](https://jmeter-plugins.org/install/Install/) page. +- Download `plugins-manager.jar` and put it into the `{JMeter path}/lib/ext` directory. Then restart JMeter. +- Follow the instructions provided on the [JMeter Plugins Manager](https://jmeter-plugins.org/wiki/PluginsManager/) page to open Plugins Manager. +- Select *Json Plugins* from the plugins listed on the *Available Plugins* tab, then click the *Apply changes and restart JMeter* button. + +## Quick Start + +Before running the JMeter tests for the first time, you will need to first use the `php bin/magento setup:performance:generate-fixtures {profile path}` command to generate the test data. +You can find the configuration files of available B2C profiles in the folders `setup/performance-toolkit/profiles/ce` and `setup/performance-toolkit/profiles/ee`. + +It can take a significant amount of time to generate a profile. For example, generating the large profile can take up to 4 hours. So we recommend using the `-s` option to skip indexation. Then you can start indexation manually. + +Splitting generation and indexation processes doesn't reduce total processing time, but it requires fewer resources. For example, to generate a small profile, use commands: + + php bin/magento setup:performance:generate-fixtures -s setup/performance-toolkit/profiles/ce/small.xml + php bin/magento indexer:reindex + +For more information about the available profiles and generating fixtures generation, read [Generate data for performance testing](http://devdocs.magento.com/guides/v2.2/config-guide/cli/config-cli-subcommands-perf-data.html). + +For run Admin Pool in multithreading mode, please be sure, that: + - "Admin Account Sharing" is enabled + + `Follow Stores > Configuration > Advanced > Admin > Security. + Set Admin Account Sharing to Yes.` + + - Indexers setup in "Update by schedule" mode: + + `Follow System > Tool > Index Management + Set "Update by schedule" for all idexers` + +**Note:** Before generating medium or large profiles, it may be necessary to increase the value of `tmp_table_size` and `max_heap_table_size` parameters for MySQL to 512Mb or more. The value of `memory_limit` for PHP should be 1Gb or more. + +### Run JMeter scenario via console + +The following parameters can be passed to the `benchmark.jmx` scenario: + +| Parameter Name | Default Value | Description | +| --------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------- | +| host | localhost | URL component 'host' of application being tested (URL or IP). | +| base_path | / | Base path for tested site. | +| admin_path | admin | Admin backend path. | +| admin_user | admin | Admin backend user. | +| admin_password | 123123q | Admin backend password. | +| customer_password | 123123q | Storefront customer password. | +| customers_page_size | 20 | Page size for customers grid in Magento Admin. | +| files_folder | ./files/ | Path to various files that are used in scenario (`setup/performance-toolkit/files`). | +| loops | 1 | Number of loops to run. | +| frontendPoolUsers | 1 | Total number of Frontend threads. | +| adminPoolUsers | 1 | Total number of Admin threads. | +| browseCatalogByGuestPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog browsing activities. | +| browseCatalogByCustomerPercentage | 0 | Percentage of threads in Frontend Pool that emulate catalog browsing activities. | +| siteSearchPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog search activities. | +| searchQuickPercentage | 60 | Percentage of threads in Frontend Pool that emulate catalog search activities. | +| searchQuickFilterPercentage | 30 | Percentage of threads in Frontend Pool that emulate catalog search activities. | +| searchAdvancedPercentage | 10 | Percentage of threads in Frontend Pool that emulate catalog search activities. | +| checkoutByGuestPercentage | 4 | Percentage of threads in Frontend Pool that emulate checkout by guest. | +| checkoutByCustomerPercentage | 4 | Percentage of threads in Frontend Pool that emulate checkout by customer. | +| addToCartByGuestPercentage | 28 | Percentage of threads in Frontend Pool that emulate abandoned cart activities. | +| addToWishlistPercentage | 2 | Percentage of threads in Frontend Pool that emulate adding products to Wishlist. | +| compareProductsPercentage | 2 | Percentage of threads in Frontend Pool that emulate products comparison. | +| productCompareDelay | 0 | Delay (s) between iterations of product comparison. | +| promotionRulesPercentage | 10 | Percentage of threads in Admin Pool that emulate creation of promotion rules. | +| adminPromotionsManagementDelay | 0 | Delay (s) between creation of promotion rules. | +| adminCategoryManagementPercentage | 10 | Percentage of threads in Merchandising Pool that emulate category management activities. | +| adminProductEditingPercentage | 35 | Percentage of threads in Merchandising Pool that emulate product editing. | +| adminProductCreationPercentage | 25 | Percentage of threads in Merchandising Pool that emulate creation of products. | +| adminPromotionRulesPercentage | 15 | Percentage of threads in Admin Pool that emulate admin rules creating activities. | +| adminCategoryManagementDelay | 0 | Delay (s) between iterations of category management activities. | +| apiProcessOrders | 5 | Number of orders for process in Admin API - Process Orders. | +| adminEditOrderPercentage | 15 | Percentage of threads in Admin Pool that emulate order edit. | +| csrPoolUsers | 0 | Users of Customer Support Request (CSR) Pool. | +| othersPoolUsers | 0 | Users of Others Pool. | +| browseCustomerGridPercentage | 10 | Percentage of threads in CSR Pool that emulate customers browsing activities. | +| adminCreateOrderPercentage | 70 | Percentage of threads in CSR Pool that emulate creation of orders. | +| adminReturnsManagementPercentage | 20 | Percentage of threads in CSR Pool that emulate creation/processing of returns. | +| adminCreateProcessReturnsDelay | 0 | Delay (s) between creation of returns. | +| wishlistDelay | 0 | Delay (s) between adding products to Wishlist. | +| categories_count | 100 | Total number of categories that are be used in scenario. | +| simple_products_count | 30 | Total number of simple products that are be used in scenario. | + +Parameters must be passed to the command line with the `J` prefix: + +`-J{parameter_name}={parameter_value}` + +The required parameters are `{host}` and `{base_path}`. All other parameters are optional. If you do not pass any custom value, a default value will be used. + +There are some options that you should pass to JMeter in the console mode: + +`-n` Run scenario in Non-GUI mode +`-t` Path to the JMX file to be run +`-l` Path to the JTL file to log sample results to +`-j` Path to JMeter run log file + +To get more details about available JMeter options, read [Non-GUI Mode](http://jmeter.apache.org/usermanual/get-started.html#non_gui). + +For example, you can run the B2C scenario via console with 90 threads for the Frontend Pool and 10 threads for the Admin Pool: + + cd {JMeter path}/bin/ + jmeter -n -t {path to peformance toolkit}/benchmark.jmx -j ./jmeter.log -l ./jmeter-results.jtl -Jhost=magento2.dev -Jbase_path=/ -Jadmin_path=admin -JfrontendPoolUsers=90 -JadminPoolUsers=10 + +As a result, you will get `jmeter.log` and `jmeter-results.jtl`. The`jmeter.log` contains information about the test run and can be helpful in determining the cause of an error. The JTL file is a text file containing the results of a test run. It can be opened in the GUI mode to perform analysis of the results (see the *Output* section below). + +### Run JMeter scenario via GUI + +**Note:** Use the GUI mode only for scenario debugging and viewing reports. Use console mode for real-life load testing, because it requires significantly fewer resources. + +- Change directories to `{JMeter path}/bin/` and run `jmeter.bat`. +- Click *File -> Open (Ctrl+O)* and select `benchmark.jmx` file or drag and drop the `benchmark.jmx` file in the opened GUI. + +In the root node (*Performance Test Plan*) in the left panel, you can change *User Defined Variables* listed in the previous section. +To run a script, click the *Start* button (green arrow in the top menu). + +## Output + +The results of running a JMeter scenario are available in the *View Results Tree* and *Aggregate Report* nodes in the left panel of the JMeter GUI. + +When the script is run via GUI, the results are available in the left panel. Choose the corresponding report. When the script is run via console, a JTL report is generated. You can run JMeter GUI later and open it in the corresponding report node. + +### View Results Tree + +This report shows the tree of all requests and responses made during the scenario run. It provides information about the response time, headers and response codes. This report is useful for scenario debugging, but should be disabled during load testing because it consumes a lot of resources. + +You can open a JTL file in this report to debug a scenario and view the requests that cause errors. By default, a JTL file doesn't contain bodies of requests/responses, so it is better to debug scenarios in the GUI mode. + +For more details, read [View Results Tree](http://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree). + +### Aggregate Report + +This report contains aggregated information about all requests. It provides request count, min, max, average, error rate, approximate throughput, etc. You can open a JTL file in this report to analyze the results of a scenario run. + +For more details, read [Aggregate Report](http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report). + +### Detailed URLs Report (Legacy) + +This report contains information about URLs. Note that the URL is displayed only in a generated report file (URL is not displayed in the GUI). The report file name is `{report_save_path}/detailed-urls-report.log`. It can be opened as a CSV file. + +For more details, read [View Results in Table](http://jmeter.apache.org/usermanual/component_reference.html#View_Results_in_Table). + +### Summary Report (Legacy) + +The report contains aggregated information about threads. The report file name is `{report_save_path}/summary-report.log`. + +For more details, read [Summary Report](http://jmeter.apache.org/usermanual/component_reference.html#Summary_Report). + +## Additional Information + +### Scenarios + +`benchmark.jmx` scenario has the following pools and default percentage breakdown for each scenario: + +**Frontend Pool** (frontendPoolUsers) + +| Scenario Name | % of Pool | +| ------------------------- | --------- | +| Catalog Browsing By Guest | 30 | +| Site Search | 30 | +| Add To Cart By Guest | 28 | +| Add to Wishlist | 2 | +| Compare Products | 2 | +| Checkout By Guest | 4 | +| Checkout By Customer | 4 | + +Site Search thread group contains 3 variations: +- Quick Search (60%) +- Quick Search With Filtration (30%) +- Advanced Search (10%) + +**Admin Pool** (adminPoolUsers) + +| Scenario Name |% of Pool | +| ----------------------------| --------- | +| Admin Promotion Rules | 15 | +| Admin Edit Order | 15 | +| Admin Category Management | 10 | +| Admin Edit Product | 35 | +| Admin Create Product | 25 | + +**CSR Pool** (csrPoolUsers) + +| Scenario Name | % of Pool | +| -------------------------- | --------- | +| Browse Customer Grid | 10 | +| Admin Create Order | 70 | +| Admin Returns Management | 20 | diff --git a/setup/performance-toolkit/README.txt b/setup/performance-toolkit/README.txt deleted file mode 100644 index 59ea7a69df706..0000000000000 --- a/setup/performance-toolkit/README.txt +++ /dev/null @@ -1,87 +0,0 @@ -Performance Toolkit -============= - -Installation ------------ -jMeter: --- go to http://jmeter.apache.org/download_jmeter.cgi and download jMeter in Binary section (pay you attention that Java 6 or later is required) --- unzip archive - -Plugins (only if you want to use additional reports (like graphs)): --- go to http://jmeter-plugins.org/downloads/all/ and download JMeterPlugins-Standard and JMeterPlugins-Extras --- unzip them to appropriate ext directory of your jMeter instance. --- additional reports can now be added via GUI. - - -Usage ------------ -Before running the jMeter tests for the first time, you will need to first use bin/magento setup:performance:generate-fixtures command to generate the test data. - -1. Run via console -Scenario can accept parameters that are described bellow in format : - - URL component 'host' of application being tested (URL or IP). Default is 'localhost'. - Base path for tested site. Default is '/'. - Path where reports will be saved. Reports will be saved in current working directory by default. Default is './'. - Ramp period (seconds). Period the request will be distributed within. Default is '300'. - Number of orders in the period specified in the current allocation. If is specified, the parameter will be recalculated. Default is '0'. - Number of concurrent users. Recommended amount is 100. Minimal amount is 10. Default is '100'. - Percentage of users that will only reach the add to cart stage. Default is '62'. - Percentage of users that will only reach the view catalog stage. Default is '30'. - Percentage of users that will reach the guest checkout stage. Default is '4'. - Percentage of users that will reach the (logged-in) customer checkout stage. Default is '4'. - Number of loops to run. Default is '1'. - Admin backend path. Default is 'admin'. - Admin backend user. Default is 'admin'. - Admin backend password. Default is '123123q'. - Deviation (ms) for "think time" emulation. Default is '1000'. - Constant delay offset (ms) for "think time" emulation. Default is '2000'. - -Necessary parameters must be passed to command line with "J" prefix: "-J=" - -Example: -> cd /directory_of_jMeter/bin/ -> jmeter -n -t /path_to_benchmark_file/benchmark.jmx -Jhost=magento2.dev -Jbase_path=/ -Jusers=100 -Jramp_period=300 -Jreport_save_path=./ - -2. Run via GUI --- Open jMeter/bin directory and run jmeter.bat --- Click in menu File -> Open (Ctrl+O) and select file; or drag and drop benchmark.jmx file in opened GUI. - -On the first tab 'Test Toolkit' you can change 'User Defined variables' like as , , , , . -For running script click "Start" (green arrow in the top menu). - - -Results of running (Report types) ------------ - -After running via GUI you can see result of working in left panel. Choose the corresponding report. -After running script via console report will be generated in the path that has been specified in . - - -Threads ------------ - -jMeter script consists of five threads. Setup thread and four user threads. -Percentage ratio between threads is as follows: -Browsing, adding items to the cart and abandon cart (BrowsAddToCart suffix in reports) - 62% -Just browsing (BrowsAddToCart suffix in reports) - 30% -Browsing, adding items to cart and checkout it as guest (GuestChkt suffix in reports) - 4% -Browsing, adding items to cart and checkout as registered customer (CustomerChkt suffix in reports) - 4% - - -About reports: ------------ - -Summary Report. -Report contains aggregated information about threads. -Report file name is {report_save_path}/summary-report.log -Details http://jmeter.apache.org/usermanual/component_reference.html#Summary_Report - -Detailed URLs report. -Report contains information about URLs. -Pay your attention that URL is displayed only in generated report file (in GUI, URL is not displayed). -Report file name is {report_save_path}/detailed-urls-report.log (can be open as csv format). -Details http://jmeter.apache.org/usermanual/component_reference.html#View_Results_in_Table - -About other types read on -http://jmeter.apache.org/usermanual/component_reference.html diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index 45844253f31d0..def40ab136cd5 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -1,37 +1,37 @@ - + - + - + false false - - abandonedCartByGuest - ${__P(abandonedCartByGuest,0)} + + host + ${__P(host,localhost)} = - - abandonedCartByCustomer - ${__P(abandonedCartByCustomer,0)} + + base_path + ${__P(base_path,/)} = - - admin_delay - ${__P(admin_delay,150)} + + files_folder + ${__P(files_folder,./files/)} = - - admin_enabled - ${__P(admin_enabled,0)} + + request_protocol + ${__P(request_protocol,http)} = @@ -49,79 +49,44 @@ ${__P(admin_user,admin)} = - - adminBrowseCustomersGridScenario1_ViewOddGridPages - ${__P(adminBrowseCustomersGridScenario1_ViewOddGridPages,0)} - = - - - adminBrowseCustomersGridScenario2_ViewEvenGridPages - ${__P(adminBrowseCustomersGridScenario2_ViewEvenGridPages,0)} - = - - - adminBrowseCustomersGridScenario3_Filtering - ${__P(adminBrowseCustomersGridScenario3_Filtering,0)} - = - - - adminBrowseCustomersGridScenario4_Sorting - ${__P(adminBrowseCustomersGridScenario4_Sorting,0)} - = - - - adminBrowseCustomersGridScenario5_FilteringAndSorting - ${__P(adminBrowseCustomersGridScenario5_FilteringAndSorting,0)} - = - - - adminBrowseOrdersGridScenario1_ViewOddGridPages - ${__P(adminBrowseOrdersGridScenario1_ViewOddGridPages,0)} + + seedForRandom + ${__P(seedForRandom,1)} = - - adminBrowseOrdersGridScenario2_ViewEvenGridPages - ${__P(adminBrowseOrdersGridScenario2_ViewEvenGridPages,0)} - = - - - adminBrowseOrdersGridScenario3_Filtering - ${__P(adminBrowseOrdersGridScenario3_Filtering,0)} - = - - - adminBrowseOrdersGridScenario4_Sorting - ${__P(adminBrowseOrdersGridScenario4_Sorting,0)} + + loops + ${__P(loops,1)} = - - adminBrowseOrdersGridScenario5_FilteringAndSorting - ${__P(adminBrowseOrdersGridScenario5_FilteringAndSorting,0)} + + addToCartByCustomerPercentage + ${__P(addToCartByCustomerPercentage,0)} = - - adminBrowseProductsGridScenario1_ViewOddGridPages - ${__P(adminBrowseProductsGridScenario1_ViewOddGridPages,0)} + + addToCartByGuestPercentage + ${__P(addToCartByGuestPercentage,28)} = - - adminBrowseProductsGridScenario2_ViewEvenGridPages - ${__P(adminBrowseProductsGridScenario2_ViewEvenGridPages,0)} + + addToWishlistPercentage + ${__P(addToWishlistPercentage,2)} = - - adminBrowseProductsGridScenario3_Filtering - ${__P(adminBrowseProductsGridScenario3_Filtering,0)} + + adminAccountManagementPercentage + ${__P(adminAccountManagementPercentage,0)} = - - adminBrowseProductsGridScenario4_Sorting - ${__P(adminBrowseProductsGridScenario4_Sorting,0)} + + adminCMSManagementDelay + ${__P(adminCMSManagementDelay,0)} = - - adminBrowseProductsGridScenario5_FilteringAndSorting - ${__P(adminBrowseProductsGridScenario5_FilteringAndSorting,0)} + + adminCMSManagementPercentage + ${__P(adminCMSManagementPercentage,0)} = @@ -129,54 +94,29 @@ ${__P(adminCategoryCount,0)} = - - adminCategoryManagement - ${__P(adminCategoryManagement,0)} - = - adminCategoryManagementDelay ${__P(adminCategoryManagementDelay,0)} = - - admin_category_management_percent - ${__P(admin_category_management_percent,100)} - = - - - adminCMSManagement - ${__P(adminCMSManagement,0)} - = - - - adminCMSManagementDelay - ${__P(adminCMSManagementDelay,0)} - = - - - admin_cms_management_percent - ${__P(admin_cms_management_percent,100)} - = - - - adminCreateOrder - ${__P(adminCreateOrder,0)} + + adminCategoryManagementPercentage + ${__P(adminCategoryManagementPercentage,10)} = - - adminCreateProduct - ${__P(adminCreateProduct,0)} + + adminCreateOrderPercentage + ${__P(adminCreateOrderPercentage,70)} = - - adminCreateProduct_percent - ${__P(adminCreateProduct_percent,100)} + + adminCreateProcessReturns + ${__P(adminCreateProcessReturns,0)} = - - adminCustomerManagement - ${__P(adminCustomerManagement,0)} + + adminCreateProcessReturnsDelay + ${__P(adminCreateProcessReturnsDelay,0)} = @@ -184,9 +124,9 @@ ${__P(adminCustomerManagementDelay,0)} = - - admin_customer_management_percent - ${__P(admin_customer_management_percent,100)} + + adminCustomerManagementPercentage + ${__P(adminCustomerManagementPercentage,0)} = @@ -194,104 +134,99 @@ ${__P(adminEditOrder,0)} = + + adminEditOrderPercentage + ${__P(adminEditOrderPercentage,15)} + = + adminEditProduct ${__P(adminEditProduct,0)} = - - adminExportCustomers - ${__P(adminExportCustomers,0)} - = - - - adminExportProducts - ${__P(adminExportProducts,0)} - = - adminImportCustomerBehavior - ${__P(adminImportCustomerBehavior,)} + ${__P(adminImportCustomerBehavior,append)} = adminImportCustomerFilePath - ${__P(adminImportCustomerFilePath,0)} - = - - - adminImportCustomers - ${__P(adminImportCustomers,0)} + ${__P(adminImportCustomerFilePath,import_customers/customer_import_addupdate.csv)} = adminImportProductBehavior - ${__P(adminImportProductBehavior,)} + ${__P(adminImportProductBehavior,append)} = adminImportProductFilePath - ${__P(adminImportProductFilePath,0)} + ${__P(adminImportProductFilePath,import_products/product_import_append_1.csv)} = - - adminImportProductFilePath-2 - ${__P(adminImportProductFilePath-2,0)} + + adminPoolUsers + ${__P(adminPoolUsers,1)} = - - adminImportProducts - ${__P(adminImportProducts,0)} + + adminProductCreationPercentage + ${__P(adminProductCreationPercentage,25)} = - - adminPrepForImport - ${__P(adminPrepForImport,0)} + + adminProductEditingPercentage + ${__P(adminProductEditingPercentage,35)} = - - apiBrowseAndBuyFlow - ${__P(apiBrowseAndBuyFlow,0)} + + adminPromotionRulesPercentage + ${__P(adminPromotionRulesPercentage,15)} = - - apiBrowseAndBuyFlowPercent - ${__P(apiBrowseAndBuyFlowPercent,100)} + + adminPromotionsManagement + ${__P(adminPromotionsManagement,0)} = - - apiCustomerSync - ${__P(apiCustomerSync,0)} + + adminPromotionsManagementDelay + ${__P(adminPromotionsManagementDelay,0)} = - - apiCustomerSyncPercent - ${__P(apiCustomerSyncPercent,100)} + + adminReturnsManagementPercentage + ${__P(adminReturnsManagementPercentage,20)} = - - apiOrderInvoiceShipmentSync - ${__P(apiOrderInvoiceShipmentSync,0)} + + admin_browse_customer_filter_text + ${__P(admin_browse_customer_filter_text,Firstname)} + = + + + admin_browse_orders_filter_text + ${__P(admin_browse_orders_filter_text,pending)} = - - apiOrderInvoiceShipmentSyncPercent - ${__P(apiOrderInvoiceShipmentSyncPercent,100)} + + admin_browse_product_filter_text + ${__P(admin_browse_product_filter_text,Product)} = - - apiProductSync - ${__P(apiProductSync,0)} + + apiOrderInvoiceShipmentSync + ${__P(apiOrderInvoiceShipmentSync,0)} = - - apiProductSyncPercent - ${__P(apiProductSyncPercent,100)} + + apiPoolUsers + ${__P(apiPoolUsers,0)} = - - apiSnapshot - ${__P(apiSnapshot,0)} + + apiProcessOrders + ${__P(apiProcessOrders,5)} = @@ -299,9 +234,29 @@ ${__P(bamboo_build_number,)} = - - base_path - ${__P(base_path,)} + + browseCatalogByCustomerPercentage + ${__P(browseCatalogByCustomerPercentage,0)} + = + + + browseCatalogByGuestPercentage + ${__P(browseCatalogByGuestPercentage,30)} + = + + + browseCustomerGridPercentage + ${__P(browseCustomerGridPercentage,10)} + = + + + browseOrderGridPercentage + ${__P(browseOrderGridPercentage,0)} + = + + + browseProductGridPercentage + ${__P(browseProductGridPercentage,0)} = @@ -309,39 +264,44 @@ ${__P(cache_indicator,0)} = - - catalogBrowsingByGuest - ${__P(catalogBrowsingByGuest,0)} + + categories_count + ${__P(categories_count,100)} = - - catalogBrowsingByCustomer - ${__P(catalogBrowsingByCustomer,0)} + + checkoutByCustomerPercentage + ${__P(checkoutByCustomerPercentage,4)} = - - checkoutByGuest - ${__P(checkoutByGuest,0)} + + checkoutByGuestPercentage + ${__P(checkoutByGuestPercentage,4)} = - - checkoutByCustomer - ${__P(checkoutByCustomer,0)} + + compareProductsPercentage + ${__P(compareProductsPercentage,2)} = - - customer_checkout_percent - ${__P(customer_checkout_percent,4)} + + configurable_products_count + ${__P(configurable_products_count,30)} + = + + + csrPoolUsers + ${__P(csrPoolUsers,0)} = - - customer_limit - ${__P(customer_limit,20)} + + customer_checkout_percent + ${__P(customer_checkout_percent,100)} = customer_password - 123123q + ${__P(customer_password,123123q)} = @@ -354,24 +314,39 @@ ${__P(dashboard_enabled,0)} = - - files_folder - ${__P(files_folder,/opt/mpaf/tool/fragments/files/)} + + exportCustomersPercentage + ${__P(exportCustomersPercentage,0)} + = + + + exportProductsPercentage + ${__P(exportProductsPercentage,0)} + = + + + form_key + ${__P(form_key,uVEW54r8kKday8Wk)} + = + + + frontendPoolUsers + ${__P(frontendPoolUsers,1)} = guest_checkout_percent - ${__P(guest_checkout_percent,4)} + ${__P(guest_checkout_percent,100)} = - - host - ${__P(host,)} + + importCustomersPercentage + ${__P(importCustomersPercentage,0)} = - - loops - ${__P(loops,1)} + + importProductsPercentage + ${__P(importProductsPercentage,0)} = @@ -379,34 +354,29 @@ ${__P(lineItemsAmount,10)} = - - orders - ${__P(orders,0)} - = - orders_page_size ${__P(orders_page_size,20)} = - - products_page_size - ${__P(products_page_size,20)} + + othersPoolUsers + ${__P(othersPoolUsers,0)} = - - productCompareByGuest - ${__P(productCompareByGuest,0)} + + productCompareDelay + ${__P(productCompareDelay,0)} = - - products_compare_delay - ${__P(product_compare_delay,0)} + + productGridMassActionPercentage + ${__P(productGridMassActionPercentage,0)} = - - product_compare_percent - ${__P(product_compare_percent,100)} + + products_page_size + ${__P(products_page_size,20)} = @@ -429,14 +399,9 @@ ${__P(response_time_file_name,production.csv)} = - - reviewByCustomer - ${__P(reviewByCustomer,0)} - = - - - review_percent - ${__P(review_percent,100)} + + reviewByCustomerPercentage + ${__P(reviewByCustomerPercentage,0)} = @@ -449,39 +414,29 @@ ${__P(scenario,)} = - - searchQuick - ${__P(searchQuick,0)} - = - - - searchQuick_percent - ${__P(searchQuick_percent,0)} - = - - - searchQuickFilter - ${__P(searchQuickFilter,0)} + + searchAdvancedPercentage + ${__P(searchAdvancedPercentage,10)} = - - searchQuickFilter_percent - ${__P(searchQuickFilter_percent,0)} + + searchQuickFilterPercentage + ${__P(searchQuickFilterPercentage,30)} = - - searchAdvanced - ${__P(searchAdvanced,0)} + + searchQuickPercentage + ${__P(searchQuickPercentage,60)} = - - searchAdvanced_percent - ${__P(searchAdvanced_percent,0)} + + simple_products_count + ${__P(simple_products_count,30)} = - - setupAndTearDownThread - ${__P(setupAndTearDownThread,1)} + + siteSearchPercentage + ${__P(siteSearchPercentage,30)} = @@ -491,7 +446,7 @@ start_time - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + ${__P(start_time,${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)})} = @@ -499,9 +454,9 @@ ${__P(starting_index,0)} = - - test_duration - ${__P(test_duration,900)} + + think_time_delay_offset + ${__P(think_time_delay_offset,2000)} = @@ -509,44 +464,14 @@ ${__P(think_time_deviation,1000)} = - - think_time_delay_offset - ${__P(think_time_delay_offset,2000)} - = - url_suffix - .html - = - - - users - ${__P(users,100)} - = - - - view_catalog_percent - ${__P(view_catalog_percent,62)} - = - - - view_product_add_to_cart_percent - ${__P(view_product_add_to_cart_percent,30)} + ${__P(url_suffix,.html)} = website_id - 1 - = - - - wishlistByCustomer - ${__P(wishlistByCustomer,0)} - = - - - wishlist_percent - ${__P(wishlist_percent,100)} + ${__P(website_id,1)} = @@ -558,6 +483,76 @@ + + false + + + + true + true + true + + true + true + true + true + false + true + true + false + false + true + false + false + true + false + false + 0 + true + true + true + true + + + + mpaf/tool/fragments/ce/view_results_tree.jmx + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + + + /tmp/aggregate-jmeter-results.jtl + mpaf/tool/fragments/ce/aggregate_report.jmx + + @@ -566,12 +561,12 @@ - http + ${request_protocol} utf-8 Java 4 - + mpaf/tool/fragments/ce/http_request_default.jmx @@ -593,9 +588,24 @@ gzip, deflate - + mpaf/tool/fragments/ce/http_header_manager.jmx + + stoptest + + false + 1 + + 1 + 1 + 1384333221000 + 1384333221000 + false + + + mpaf/tool/fragments/ce/setup/setup.jmx + @@ -607,28 +617,23 @@ true true + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + true - + mpaf/tool/fragments/ce/http_cookie_manager.jmx - - stoptest - - false - 1 - - ${setupAndTearDownThread} - 1 - 1384333221000 - 1384333221000 - false - - - - - - props.remove("category_url_key"); + + +props.remove("category_url_key"); props.remove("category_url_keys_list"); props.remove("category_name"); props.remove("category_names_list"); @@ -644,13 +649,14 @@ props.put("activeAdminThread", ""); String path = "${host}"; String environment = path.substring(4, 6); props.put("environment", environment); - - - false - - - - Boolean stopTestOnError (String error) { + + + false + mpaf/tool/fragments/ce/setup/initialize.jmx + + + + Boolean stopTestOnError (String error) { log.error(error); System.out.println(error); SampleResult.setStopTest(true); @@ -667,11 +673,14 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr return stopTestOnError("\"base_path\" parameter is invalid. It must start and end with \"/\""); } - - - false - - + + + false + mpaf/tool/fragments/ce/setup/validate_user_defined_variables.jmx + + + + @@ -680,7 +689,7 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr - + ${request_protocol} ${base_path}${admin_path} GET @@ -727,14 +736,14 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr - false + true = true dummy - false + true ${admin_form_key} = true @@ -760,7 +769,7 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr - + ${request_protocol} ${base_path}${admin_path}/admin/dashboard/ POST @@ -771,19 +780,18 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr Java false - Implementation needs to be set to Java as per http://stackoverflow.com/questions/19636282/jmeter-error-in-redirect-url-for-get + mpaf/tool/fragments/ce/setup/login.jmx - - - <title>Dashboard / Magento Admin</title> - - Assertion.response_data - false - 2 - - - + + + <title>Dashboard / Magento Admin</title> + + Assertion.response_data + false + 2 + + false admin_form_key @@ -793,128 +801,35 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr 1 - + + + + + + + + + + + + + + + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/extract_categories.jmx + + + - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - types - = - true - massaction_prepare_key - - - true - config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api - = - true - types - - - - - - - - - - ${base_path}${admin_path}/admin/cache/massEnable - POST - true - false - true - false - false - - Begin by enabling all cache types - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - types - = - true - massaction_prepare_key - - - true - config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api - = - true - types - - - - - - - - - - ${base_path}${admin_path}/admin/cache/massRefresh - POST - true - false - true - false - false - - Refresh all cache types - - - - - - - - - - - - - ${base_path} - GET - true - false - true - false - false - - Site - Get Category 1 - - - - - <span>Category ([0-9]+)</span> + <span>Category ([0-9]+)</span> Assertion.response_data false @@ -960,15 +875,15 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr import java.util.ArrayList; -// If it is first iteration of cycle then recreate category url key list -if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) { - categoryUrlKeysList = new ArrayList(); - props.put("category_url_keys_list", categoryUrlKeysList); - props.put("category_url_key", vars.get("category_url_key")); -} else { - categoryUrlKeysList = props.get("category_url_keys_list"); -} -categoryUrlKeysList.add(vars.get("category_url_key")); + // If it is first iteration of cycle then recreate category url key list + if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) { + categoryUrlKeysList = new ArrayList(); + props.put("category_url_keys_list", categoryUrlKeysList); + props.put("category_url_key", vars.get("category_url_key")); + } else { + categoryUrlKeysList = props.get("category_url_keys_list"); + } + categoryUrlKeysList.add(vars.get("category_url_key")); false @@ -993,16 +908,16 @@ categoryUrlKeysList.add(vars.get("category_url_key")); import java.util.ArrayList; -// If it is first iteration of cycle then recreate category name list -if (1 == Integer.parseInt(vars.get("category_name_counter"))) { - categoryNamesList = new ArrayList(); - props.put("category_names_list",categoryNamesList); - props.put("category_name", vars.get("category_name")); -} else { - categoryNamesList = props.get("category_names_list"); -} -log.info("category name: " + vars.get("category_name")); -categoryNamesList.add(vars.get("category_name")); + // If it is first iteration of cycle then recreate category name list + if (1 == Integer.parseInt(vars.get("category_name_counter"))) { + categoryNamesList = new ArrayList(); + props.put("category_names_list",categoryNamesList); + props.put("category_name", vars.get("category_name")); + } else { + categoryNamesList = props.get("category_names_list"); + } + log.info("category name: " + vars.get("category_name")); + categoryNamesList.add(vars.get("category_name")); false @@ -1011,69 +926,51 @@ categoryNamesList.add(vars.get("category_name")); props.put("category_url_key", vars.get("category_url_key")); -props.put("category_name", vars.get("category_name")); + props.put("category_name", vars.get("category_name")); false - - - - - - - - - - - - ${base_path}catalogsearch/result/?limit=30&q=Simple - GET - true - false - true - false - false - - + + + + mpaf/tool/fragments/ce/setup/extract_configurable_products.jmx + + + - - - (?i)Search results for: (.+?)Simple(.+?) + + + + Content-Type + application/json + + + Accept + */* + - Assertion.response_data - false - 2 - - - - false - simple_products_url_keys - <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).+?Simple - $2$ - - -1 - + - - - simple_products_url_keys - simple_products_url_key - true - - - - - + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + - + ${request_protocol} - ${base_path}${simple_products_url_key}${url_suffix} - GET + ${base_path}rest/V1/integration/admin/token + POST true false true @@ -1082,106 +979,152 @@ props.put("category_name", vars.get("category_name")); - - - simple_product_id - .//input[@type="hidden" and @name="product"]/@value - false - true - false - + + admin_token + $ + + + BODY + - - - simple_product_title - .//*[@data-ui-id='page-title-wrapper']/text() - false - true - false - - - - false - simple_product_uenc - "uenc":"([^"]+)" - $1$ - - 1 - simple_product_1_url_key - - - + - ^\d+$ + ^[a-z0-9-]+$ Assertion.response_data false 1 variable - simple_product_id + admin_token - - - ^.+$ + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + true + type_id + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + configurable + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + ${configurable_products_count} + = + true + searchCriteria[pageSize] + - Assertion.response_data - false - 1 - variable - simple_product_title - + + + + + + ${request_protocol} + + ${base_path}rest/V1/products + GET + true + false + true + false + false + + + + + false + configurable_products_url_keys + url_key\",\"value\":\"(.*?)\" + $1$ + + -1 + - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - simple_products_url_key - + + false + configurable_product_ids + \"id\":(\d+), + $1$ + + -1 + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - simple_product_uenc - + + false + configurable_product_names + name\":\"(.*?)\" + $1$ + + -1 + + + + false + configurable_product_skus + sku\":\"(.*?)\" + $1$ + + -1 + + + + configurable_product_ids + configurable_product_id + true + + 1 1 - simple_products_counter + configurable_products_counter false - + import java.util.ArrayList; import java.util.HashMap; +import org.apache.commons.codec.binary.Base64; // If it is first iteration of cycle then recreate productList -if (1 == Integer.parseInt(vars.get("simple_products_counter"))) { +if (1 == Integer.parseInt(vars.get("configurable_products_counter"))) { productList = new ArrayList(); - props.put("simple_products_list", productList); + props.put("configurable_products_list", productList); } else { - productList = props.get("simple_products_list"); + productList = props.get("configurable_products_list"); } +String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))+ vars.get("url_suffix"); +encodedUrl = Base64.encodeBase64(productUrl.getBytes()); // Create product map Map productMap = new HashMap(); -productMap.put("id", vars.get("simple_product_id")); -productMap.put("title", vars.get("simple_product_title")); -productMap.put("url_key", vars.get("simple_products_url_key")); -productMap.put("uenc", vars.get("simple_product_uenc")); +productMap.put("id", vars.get("configurable_product_id")); +productMap.put("title", vars.get("configurable_product_names_" + vars.get("configurable_products_counter"))); +productMap.put("sku", vars.get("configurable_product_skus_" + vars.get("configurable_products_counter"))); +productMap.put("url_key", vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))); +productMap.put("uenc", new String(encodedUrl)); // Collect products map in products list productList.add(productMap); @@ -1191,64 +1134,46 @@ productList.add(productMap); - - - - - - - - - - - ${base_path}catalogsearch/result/?limit=30&q=Configurable - GET - true - false - true - false - false - - + + + + mpaf/tool/fragments/ce/setup/extract_simple_products.jmx + + + - - - Search results for: (.+?)Configurable(.+?) - <div class="search results"> + + + + Content-Type + application/json + + + Accept + */* + - Assertion.response_data - false - 2 - - - - false - configurable_products_url_keys - <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s).+?Configurable - $2$ - - -1 - + - - - configurable_products_url_keys - configurable_products_url_key - true - - - - - + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + - + ${request_protocol} - ${base_path}${configurable_products_url_key}${url_suffix} - GET + ${base_path}rest/V1/integration/admin/token + POST true false true @@ -1257,177 +1182,223 @@ productList.add(productMap); - - - configurable_product_id - .//input[@type="hidden" and @name="product"]/@value - false - true - false - + + admin_token + $ + + + BODY + - - - configurable_product_title - .//*[@data-ui-id='page-title-wrapper']/text() - false - true - false - + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + - + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + true + type_id + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + simple + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + ${simple_products_count} + = + true + searchCriteria[pageSize] + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/products + GET + true + false + true + false + false + + + + false - configurable_product_uenc - "uenc":"([^"]+)" + simple_products_url_keys + url_key\",\"value\":\"(.*?)\" $1$ - 1 - simple_product_1_url_key + -1 - + false - configurable_product_attribute_id - "[sp|json]+Config": \{"attributes":\{.*:{"id":"(\d+).*:{"id":"(\d+) + simple_product_ids + \"id\":(\d+), $1$ - 1 - - - - false - configurable_product_attribute_id_2 - "[sp|json]+Config": \{"attributes":\{.*:{"id":"(\d+).*:{"id":"(\d+) - $2$ - - 1 + -1 - + false - configurable_product_attribute_option_id - "options":\[\{"id":"(\d+)" + simple_product_names + name\":\"(.*?)\" $1$ - 1 + -1 - + false - configurable_product_attribute_option_id_2 - "options":\[\{"id":"(\d+)" + simple_product_skus + sku\":\"(.*?)\" $1$ - 2 + -1 - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - configurable_product_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - configurable_product_title - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - configurable_products_url_key - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - configurable_product_attribute_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - configurable_product_attribute_option_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - configurable_product_uenc - - + + + simple_product_ids + simple_product_id + true + + 1 1 - configurable_products_counter + simple_products_counter false - + import java.util.ArrayList; import java.util.HashMap; +import org.apache.commons.codec.binary.Base64; // If it is first iteration of cycle then recreate productList -if (1 == Integer.parseInt(vars.get("configurable_products_counter"))) { +if (1 == Integer.parseInt(vars.get("simple_products_counter"))) { productList = new ArrayList(); - props.put("configurable_products_list", productList); + props.put("simple_products_list", productList); } else { - productList = props.get("configurable_products_list"); + productList = props.get("simple_products_list"); } - +String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))+ vars.get("url_suffix"); +encodedUrl = Base64.encodeBase64(productUrl.getBytes()); // Create product map Map productMap = new HashMap(); -productMap.put("id", vars.get("configurable_product_id")); -productMap.put("title", vars.get("configurable_product_title")); -productMap.put("url_key", vars.get("configurable_products_url_key")); -productMap.put("uenc", vars.get("configurable_product_uenc")); -productMap.put("attribute_id", vars.get("configurable_product_attribute_id")); -productMap.put("attribute_id_2", vars.get("configurable_product_attribute_id_2")); -productMap.put("attribute_option_id", vars.get("configurable_product_attribute_option_id")); -productMap.put("attribute_option_id_2", vars.get("configurable_product_attribute_option_id_2")); +productMap.put("id", vars.get("simple_product_id")); +productMap.put("title", vars.get("simple_product_names_" + vars.get("simple_products_counter"))); +productMap.put("sku", vars.get("simple_product_skus_" + vars.get("simple_products_counter"))); +productMap.put("url_key", vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))); +productMap.put("uenc", new String(encodedUrl)); // Collect products map in products list -productList.add(productMap); +productList.add(productMap); false + + + + mpaf/tool/fragments/ce/setup/extract_admin_users.jmx + + + + + + + false + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/user/roleGrid/limit/200/?ajax=true&isAjax=true + POST + true + false + true + false + false + + + + + + + false + import java.util.regex.Pattern; + import java.util.regex.Matcher; + import java.util.LinkedList; + + LinkedList adminUserList = new LinkedList(); + String response = new String(data); + Pattern pattern = Pattern.compile("<td\\W*?data-column=.username[^>]*?>\\W*?(\\w+)\\W*?<"); + Matcher matcher = pattern.matcher(response); + + while (matcher.find()) { + adminUserList.add(matcher.group(1)); + } + + adminUserList.poll(); + props.put("adminUserList", adminUserList); + + + + + + + + mpaf/tool/fragments/ce/setup/extract_customers.jmx + + @@ -1436,7 +1407,7 @@ productList.add(productMap); - + ${request_protocol} ${base_path}${admin_path}/customer/index/ GET @@ -1470,113 +1441,140 @@ manager.add(cookie); - - - - - - true - customer_listing - = - true - namespace - - - true - - = - true - search - - - true - customer_since[locale]=en_US&website_id=1 - = - true - filters[placeholder] - - - true - ${customers_page_size} - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - entity_id - = - true - sorting[field] - - - true - asc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - - - - - - - - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":0 - - Assertion.response_data - false - 20 - - - - false - customer_emails - \"email\":\"([^"]+) - $1$ - - -1 - - - - false - customer_ids - \"entity_id\":\"([^"]+) - $1$ - - -1 - - - - + + + + + true + customer_listing + = + true + namespace + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + customer_since[locale]=en_US + = + true + filters[placeholder] + + + true + 1 + = + true + filters[website_id] + + + true + ${customers_page_size} + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + $.totalRecords + 0 + true + false + true + true + + + + customer_emails + $.items[*].email + + + BODY + + + + customer_ids + $.items[*].entity_id + + + BODY + + + + false + + + import java.util.LinkedList; +LinkedList emailsList = new LinkedList(); +props.put("customer_emails_list", emailsList); + + + + customer_emails customer_email true @@ -1592,16 +1590,16 @@ manager.add(cookie); - import java.util.ArrayList; + +try { -// If it is first iteration of cycle then recreate emailsList -if (1 == Integer.parseInt(vars.get("email_counter"))) { - emailsList = new ArrayList(); - props.put("customer_emails_list", emailsList); -} else { - emailsList = props.get("customer_emails_list"); +props.get("customer_emails_list").add(vars.get("customer_email")); + +} catch (java.lang.Exception e) { + log.error("error…", e); + SampleResult.setStopThread(true); } -emailsList.add(vars.get("customer_email")); + false @@ -1640,46 +1638,12 @@ idsList.add(vars.get("customer_id")); - - Boolean stopTestOnError (String error) { - log.error(error); - System.out.println(error); - SampleResult.setStopTest(true); - return false; -} - -if (props.get("simple_products_list") == null) { - return stopTestOnError("Cannot find simple products. Test stopped."); -} -if (props.get("configurable_products_list") == null) { - return stopTestOnError("Cannot find configurable products. Test stopped."); -} -if (props.get("customer_emails_list") == null) { - return stopTestOnError("Cannot find customer emails. Test stopped."); -} -if (props.get("category_url_keys_list") == null) { - return stopTestOnError("Cannot find category url keys. Test stopped."); -} -if (props.get("category_names_list") == null) { - return stopTestOnError("Cannot find category names. Test stopped."); -} -int orders = Integer.parseInt(vars.get("orders")); - - -if (orders > 0) { - int checkout_sum = Integer.parseInt(vars.get("guest_checkout_percent")) + Integer.parseInt(vars.get("customer_checkout_percent")); - checkout_sum = checkout_sum > 0 ? checkout_sum : 1; - int users = orders * (100 / checkout_sum); - props.put("users", users); -} else { - props.put("users", Integer.parseInt(vars.get("users"))); -} - - - - false - - + + + + mpaf/tool/fragments/ce/setup/cache.jmx + + "${cache_indicator}" == "1" || "${cache_indicator}" == "2" false @@ -1687,7 +1651,7 @@ if (orders > 0) { // Default to disable all cache types -vars.put("cache_types", "config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api"); +vars.put("cache_types", "config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,translate,config_webservice,config_integration_api"); if ("${cache_indicator}" == "1") { // Only disable Full Page Cache @@ -1729,7 +1693,7 @@ if ("${cache_indicator}" == "1") { - + ${request_protocol} ${base_path}${admin_path}/admin/cache/massDisable POST @@ -1752,7 +1716,7 @@ if ("${cache_indicator}" == "1") { - false + true ${admin_form_key} = true @@ -1765,7 +1729,7 @@ if ("${cache_indicator}" == "1") { - + ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET @@ -1792,7 +1756,6 @@ if ("${cache_indicator}" == "1") { INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> WEBSERVICE(?s).+?<span>Enabled</span> REFLECTION(?s).+?<span>Enabled</span> - TARGET_RULE(?s).+?<span>Enabled</span> Assertion.response_data false @@ -1810,7 +1773,7 @@ if ("${cache_indicator}" == "1") { - false + true ${admin_form_key} = true @@ -1823,7 +1786,7 @@ if ("${cache_indicator}" == "1") { - + ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET @@ -1850,7 +1813,6 @@ if ("${cache_indicator}" == "1") { INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> WEBSERVICE(?s).+?<span>Enabled</span> REFLECTION(?s).+?<span>Enabled</span> - TARGET_RULE(?s).+?<span>Enabled</span Assertion.response_data false @@ -1868,7 +1830,7 @@ if ("${cache_indicator}" == "1") { - false + true ${admin_form_key} = true @@ -1881,7 +1843,7 @@ if ("${cache_indicator}" == "1") { - + ${request_protocol} ${base_path}${admin_path}/admin/cache/ GET @@ -1908,7 +1870,6 @@ if ("${cache_indicator}" == "1") { INTEGRATION_API_CONFIG(?s).+?<span>Disabled</span> WEBSERVICE(?s).+?<span>Disabled</span> REFLECTION(?s).+?<span>Disabled</span> - TARGET_RULE(?s).+?<span>Disabled</span Assertion.response_data false @@ -1917,326 +1878,135 @@ if ("${cache_indicator}" == "1") { - - - - - true - ["customer_form_login"] - = - true - blocks - - - true - ["default","customer_account_login"] - = - true - handles - - - true - {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} - = - true - originalRequest - - - true - true - = - true - ajax - - - true - true - = - true - isAjax - - - - - - - - - - ${base_path}page_cache/block/render/ - GET - true - false - true - false - false - - - - - - "customer_form_login" - Registered Customers - form_key - - Assertion.response_data - false - 2 - - - - false - form_key - <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - form_key - - - - - - - - false - 1 - = - true - product - - - false - - = - true - related_product - - - false - 1 - = - true - qty - - - false - ${form_key} - = - true - form_key - - - - - - - - - - ${base_path}checkout/cart/add - POST - true - false - true - false - false - - - - - continue - - false - ${loops} - - ${__javaScript(Math.round(props.get("users")*${view_catalog_percent}/100>>0))} - ${ramp_period} - 1437409133000 - 1437409133000 - false - - - - - - rv1 - '.' - 1 - 999999 - 1 - true - - - - - rv2 - '.' - 1 - 999999 - 2 - true - - - - - rv3 - '.' - 1 - 999999 - 3 - true - - - - - Passing arguments between threads - number = (int)(${rv1} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); - -number1 = (int)(${rv2} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); - -number = (int)(${rv3} * props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); + + Boolean stopTestOnError (String error) { + log.error(error); + System.out.println(error); + SampleResult.setStopTest(true); + return false; +} -number = (int)(Math.random() * props.get("category_url_keys_list").size()); -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); -vars.put("testLabel", "CatProdBrows"); +if (props.get("simple_products_list") == null) { + return stopTestOnError("Cannot find simple products. Test stopped."); +} +if (props.get("configurable_products_list") == null) { + return stopTestOnError("Cannot find configurable products. Test stopped."); +} +if (props.get("customer_emails_list") == null) { + return stopTestOnError("Cannot find customer emails. Test stopped."); +} +if (props.get("category_url_keys_list") == null) { + return stopTestOnError("Cannot find category url keys. Test stopped."); +} +if (props.get("category_names_list") == null) { + return stopTestOnError("Cannot find category names. Test stopped."); +} + - true - - - - - - - - - - - - - - ${base_path} - GET - true - false - true - false - false - - - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - + false + mpaf/tool/fragments/ce/setup/validate_properties.jmx - + - + + + true + 1 + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + - + ${request_protocol} - ${base_path}${category_url_key}${url_suffix} - GET + ${base_path}checkout/cart/add + POST true false true false false - - - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - - false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> - $1$ - - 1 - simple_product_1_url_key - - - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - + mpaf/tool/fragments/ce/setup/warmup_add_to_cart.jmx - + - + + + false + ["customer_form_login"] + = + true + blocks + + + false + ["default","customer_account_login"] + = + true + handles + + + false + {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} + = + true + originalRequest + + + true + true + = + true + ajax + + + true + true + = + true + isAjax + + - + ${request_protocol} - ${base_path}${simple_product_1_url_key}${url_suffix} + ${base_path}page_cache/block/render/ GET true false @@ -2244,12 +2014,13 @@ vars.put("testLabel", "CatProdBrows"); false false - + mpaf/tool/fragments/ce/setup/ajax_load_login_form.jmx - <title>${simple_product_1_name} - <span>In stock</span> + "customer_form_login" + Registered Customers + form_key Assertion.response_data false @@ -2257,14 +2028,153 @@ vars.put("testLabel", "CatProdBrows"); + + + + continue + + false + ${loops} + + ${frontendPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${browseCatalogByCustomerPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Catalog Browsing By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + - - ${think_time_delay_offset} - ${think_time_deviation} - + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + - + @@ -2272,47 +2182,9 @@ vars.put("testLabel", "CatProdBrows"); - + ${request_protocol} - ${base_path}${simple_product_2_url_key}${url_suffix} - GET - true - false - true - false - false - - - - - - <title>${simple_product_2_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - - - - - - - ${base_path}${configurable_product_1_url_key}${url_suffix} + ${base_path}customer/account/login/ GET true false @@ -2320,12 +2192,11 @@ vars.put("testLabel", "CatProdBrows"); false false - + mpaf/tool/fragments/ce/common/open_login_page.jmx - <title>${configurable_product_1_name} - <span>In stock</span> + <title>Customer Login</title> Assertion.response_data false @@ -2333,159 +2204,37 @@ vars.put("testLabel", "CatProdBrows"); - - - - continue - - false - ${loops} - - ${__javaScript(Math.round(props.get("users")*${view_product_add_to_cart_percent}/100>>0))} - ${ramp_period} - 1437411475000 - 1437411475000 - false - - - - - - rv1 - '.' - 1 - 999999 - 1 - true - - - - - rv2 - '.' - 1 - 999999 - 2 - true - - - - - rv3 - '.' - 1 - 999999 - 3 - true - - - - - Passing arguments between threads - number = (int)(${rv1} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); -vars.put("simple_product_1_uenc", simpleList.get("uenc")); - -number1 = (int)(${rv2} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); -vars.put("simple_product_2_uenc", simpleList.get("uenc")); - -number = (int)(${rv3} * props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_attribute_id", configurableList.get("attribute_id")); -vars.put("configurable_attribute_id_2", configurableList.get("attribute_id_2")); -vars.put("configurable_option_id", configurableList.get("attribute_option_id")); -vars.put("configurable_option_id_2", configurableList.get("attribute_option_id_2")); -vars.put("configurable_product_1_uenc", simpleList.get("uenc")); - -number = (int)(Math.random() * props.get("category_url_keys_list").size()); -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); -vars.put("testLabel", "BrowsAddToCart"); -vars.put("loadType", "Guest"); - - - true - - - - - - - - - - - - - - ${base_path} - GET - true - false - true - false - false - - - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - - + - - true - ["customer_form_login"] - = - true - blocks - - + true - ["default","customer_account_login"] + ${form_key} = true - handles + form_key - + true - {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} + ${customer_email} = true - originalRequest + login[username] - + true - true + ${customer_password} = true - ajax + login[password] - + true - true + = true - isAjax + send @@ -2493,39 +2242,37 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}page_cache/block/render/ - GET + ${base_path}customer/account/loginPost/ + POST true false true false false - + mpaf/tool/fragments/ce/common/login.jmx - "customer_form_login" - Registered Customers - form_key + <title>My Account</title> Assertion.response_data false 2 - + false - form_key - <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> + addressId + customer/address/edit/id/([^'"]+)/ $1$ 1 - + ^.+$ @@ -2533,18 +2280,85 @@ vars.put("loadType", "Guest"); false 1 variable - form_key + addressId - - - ${think_time_delay_offset} - ${think_time_deviation} - + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + - + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + @@ -2552,7 +2366,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET @@ -2562,7 +2376,7 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/open_category.jmx @@ -2596,144 +2410,276 @@ vars.put("loadType", "Guest"); - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - - - - - - - ${base_path}${simple_product_1_url_key}${url_suffix} - GET - true - false - true - false - false - - + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx - - - <title>${simple_product_1_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - + + 1 + + 1 + _counter + + true + true + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + - - ${think_time_delay_offset} - ${think_time_deviation} - + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - - - - false - ${simple_product_1_id} - = - true - product - - - false - - = - true - related_product - - - false - 1 - = - true - qty - - - false - ${form_key} - = - true - form_key - - - - - - - - - - ${base_path}checkout/cart/add/uenc/${simple_product_1_uenc}/product/${simple_product_1_id}/ - POST - true - false - true - false - false - - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + 1 + false + 1 + ${browseCatalogByGuestPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - - X-Requested-With - XMLHttpRequest + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Catalog Browsing By Guest"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true - + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx - - + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + - - - true - cart,messages - = - true - sections - - - true - true - = - true - update_section_id - - - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} - = - true - _ - - + - + ${request_protocol} - ${base_path}customer/section/load/ + ${base_path}${category_url_key}${url_suffix} GET true false @@ -2741,177 +2687,317 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/open_category.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - - - You added ${simple_product_1_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - This product is out of stock. + <span class="base" data-ui-id="page-title">${category_name}</span> Assertion.response_data false 6 - + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + - \"summary_count\":1 + ^[0-9]+$ Assertion.response_data false - 2 + 1 + variable + category_id - - ${think_time_delay_offset} - ${think_time_deviation} - + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - - - - - - - - - - ${base_path}${simple_product_2_url_key}${url_suffix} - GET - true - false - true - false - false - - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx - - - <title>${simple_product_2_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - + + 1 + + 1 + _counter + + true + true + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + - - ${think_time_delay_offset} - ${think_time_deviation} - + + 1 + false + 1 + ${siteSearchPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Site Search"); + + true + + + + + ${files_folder}search_terms.csv + UTF-8 + + , + false + true + false + shareMode.thread + mpaf/tool/fragments/ce/search/search_terms.jmx - - - - - false - ${simple_product_2_id} - = - true - product - - - false - - = - true - related_product - - - false - 1 - = - true - qty - - - false - ${form_key} - = - true - form_key - - - - - - - - - - ${base_path}checkout/cart/add/uenc/${simple_product_2_uenc}/product/${simple_product_2_id}/ - POST - true - false - true - false - false - - + + 1 + false + 1 + ${searchQuickPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - - X-Requested-With - XMLHttpRequest + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Quick Search"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true - + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx - - + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + - + true - cart,messages - = - true - sections - true - - - true - true - = - true - update_section_id - true - - - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + q + ${searchTerm} = true - _ - true @@ -2919,9 +3005,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}customer/section/load/ + ${base_path}catalogsearch/result/ GET true false @@ -2929,56 +3015,207 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/search/search_quick.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - + - You added ${simple_product_2_name} to your shopping cart. + Search results for: + <span class="toolbar-number">\d<\/span> Items|Items <span class="toolbar-number">1 Assertion.response_data false 2 - - - This product is out of stock. - - Assertion.response_data - false - 6 - + + false + product_url_keys + <a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s). + $2$ + + -1 + - - - \"summary_count\":2 - - Assertion.response_data - false - 2 - + + + + +foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr")); + +if (foundProducts > 3) { + foundProducts = 3; +} + +vars.put("foundProducts", String.valueOf(foundProducts)); + + + + true + mpaf/tool/fragments/ce/search/set_found_items.jmx + + + + true + ${foundProducts} + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + mpaf/tool/fragments/ce/search/searched_products_setup.jmx + +number = vars.get("_counter"); +product = vars.get("product_url_keys_"+number); + +vars.put("product_url_key", product); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + - - ${think_time_delay_offset} - ${think_time_deviation} - + + 1 + false + 1 + ${searchQuickFilterPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Quick Search With Filtration"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx - + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + - + + + true + q + ${searchTerm} + = + true + + @@ -2986,7 +3223,7 @@ vars.put("loadType", "Guest"); - ${base_path}${configurable_product_1_url_key}${url_suffix} + ${base_path}catalogsearch/result/ GET true false @@ -2994,72 +3231,353 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/search/search_quick_filter.jmx - + - <title>${configurable_product_1_name} - <span>In stock</span> + Search results for: + Items <span class="toolbar-number">1 Assertion.response_data false 2 + + 0 + attribute_1_options_count + count((//div[@class="filter-options-content"])[1]//li[@class="item"]) + false + true + false + + + + 0 + attribute_2_options_count + count((//div[@class="filter-options-content"])[2]//li[@class="item"]) + false + true + false + + + + + attribute_1_filter_url + ((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[${__javaScript(Math.floor(Math.random()*${attribute_1_options_count})+1)}]/@href + false + true + false + + + + false + product_url_keys + <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s). + $2$ + + -1 + + - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - false - ${configurable_product_1_id} - = - true - product - - - false - - = - true - related_product - - - false - 1 - = - true - qty - - - false - ${configurable_option_id} - = - true - super_attribute[${configurable_attribute_id}] - - - false - ${configurable_option_id_2} - = - true - super_attribute[${configurable_attribute_id_2}] - - - false - ${form_key} - = - true - form_key - - + + ${attribute_1_options_count} > 0 + false + mpaf/tool/fragments/ce/search/search_quick_filter-first-attribute.jmx + + + vars.put("search_url", vars.get("attribute_1_filter_url")); + + + false + + + + + + + + + + + + + ${attribute_1_filter_url} + GET + true + false + true + false + false + + + + + + Search results for: + <span class="toolbar-number">[1-9]+ + + Assertion.response_data + false + 2 + + + + 0 + attribute_2_options_count + count((//div[@class="filter-options-content"])[2]//li[@class="item"]) + false + true + false + + + + + attribute_2_filter_url + ((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[${__javaScript(Math.floor(Math.random()*${attribute_2_options_count})+1)}]/@href + false + true + false + + + + false + product_url_keys + <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s). + $2$ + + -1 + + + + + + + ${attribute_2_options_count} > 0 + false + mpaf/tool/fragments/ce/search/search_quick_filter-second-attribute.jmx + + + vars.put("search_url", vars.get("attribute_2_filter_url")); + + + false + + + + + + + + + + + + + ${attribute_2_filter_url} + GET + true + false + true + false + false + + + + + + Search results for: + <span class="toolbar-number">[1-9]+ + + Assertion.response_data + false + 2 + + + + false + product_url_keys + <a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s). + $2$ + + -1 + + + + + + + +foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr")); + +if (foundProducts > 3) { + foundProducts = 3; +} + +vars.put("foundProducts", String.valueOf(foundProducts)); + + + + true + mpaf/tool/fragments/ce/search/set_found_items.jmx + + + + true + ${foundProducts} + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + mpaf/tool/fragments/ce/search/searched_products_setup.jmx + +number = vars.get("_counter"); +product = vars.get("product_url_keys_"+number); + +vars.put("product_url_key", product); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + 1 + false + 1 + ${searchAdvancedPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Advanced Search"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + @@ -3067,63 +3585,118 @@ vars.put("loadType", "Guest"); - ${base_path}checkout/cart/add/uenc/${configurable_product_1_uenc}/product/${configurable_product_1_id}/ - POST + ${base_path}catalogsearch/advanced/ + GET true false true false false - + mpaf/tool/fragments/ce/search/open_advanced_search_page.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - + + + <title>Advanced Search</title> + + Assertion.response_data + false + 2 + + + + + attribute_name + (//select[@class="multiselect"])[last()]/@name + false + true + false + + + + 0 + attribute_options_count + count((//select[@class="multiselect"])[last()]/option) + false + true + false + + + + + attribute_value + ((//select[@class="multiselect"])[last()]/option)[${__javaScript(Math.floor(Math.random()*${attribute_options_count})+1)}]/@value + false + true + false + + + + + - + - + true - cart,messages + name + = true - sections - true - + true - true + sku + = true - update_section_id - true - - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + + true + description + ${searchTerm} + = + true + + + true + short_description + + = + true + + + true + price%5Bfrom%5D + + = + true + + + true + price%5Bto%5D + ${priceTo} = true - _ - true + + + + + + + + - + ${request_protocol} - ${base_path}customer/section/load/ + ${base_path}catalogsearch/advanced/result/ GET true false @@ -3131,132 +3704,212 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/search/search_advanced.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - + - You added ${configurable_product_1_name} to your shopping cart. + items</strong> were found using the following search criteria Assertion.response_data false 2 - - - We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":3 - - Assertion.response_data - false - 2 - + + false + product_url_keys + <a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}">(?s). + $2$ + + -1 + - - - continue - - false - ${loops} - - ${__javaScript(Math.round(props.get("users")*${guest_checkout_percent}/100>>0))} - ${ramp_period} - 1437409133000 - 1437409133000 - false - - - - - - rv1 - '.' - 1 - 999999 - 1 - true - - - - - rv2 - '.' - 1 - 999999 - 2 - true - - - - - rv3 - '.' - 1 - 999999 - 3 - true - - - - - Passing arguments between threads - number = (int)(${rv1} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); -vars.put("simple_product_1_uenc", simpleList.get("uenc")); + + +foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr")); -number1 = (int)(${rv2} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); -vars.put("simple_product_2_uenc", simpleList.get("uenc")); +if (foundProducts > 3) { + foundProducts = 3; +} -number = (int)(${rv3} * props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_attribute_id", configurableList.get("attribute_id")); -vars.put("configurable_attribute_id_2", configurableList.get("attribute_id_2")); -vars.put("configurable_option_id", configurableList.get("attribute_option_id")); -vars.put("configurable_option_id_2", configurableList.get("attribute_option_id_2")); -vars.put("configurable_product_1_uenc", simpleList.get("uenc")); +vars.put("foundProducts", String.valueOf(foundProducts)); + + + + true + mpaf/tool/fragments/ce/search/set_found_items.jmx + + + + true + ${foundProducts} + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + mpaf/tool/fragments/ce/search/searched_products_setup.jmx + +number = vars.get("_counter"); +product = vars.get("product_url_keys_"+number); -number = (int)(Math.random() * props.get("category_url_keys_list").size()); -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); -vars.put("testLabel", "GuestChkt"); -vars.put("loadType", "Guest"); +vars.put("product_url_key", product); + true - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + + + 1 + false + 1 + ${addToCartByGuestPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Add To Cart By Guest"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + @@ -3264,7 +3917,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path} GET @@ -3274,7 +3927,7 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/open_home_page.jmx @@ -3287,102 +3940,7 @@ vars.put("loadType", "Guest"); - - - - - true - ["customer_form_login"] - = - true - blocks - - - true - ["default","customer_account_login"] - = - true - handles - - - true - {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} - = - true - originalRequest - - - true - true - = - true - ajax - - - true - true - = - true - isAjax - - - - - - - - - - ${base_path}page_cache/block/render/ - GET - true - false - true - false - false - - - - - - "customer_form_login" - Registered Customers - form_key - - Assertion.response_data - false - 2 - - - - false - form_key - <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - form_key - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - + @@ -3390,7 +3948,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path}${category_url_key}${url_suffix} GET @@ -3400,7 +3958,7 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/open_category.jmx @@ -3434,76 +3992,113 @@ vars.put("loadType", "Guest"); - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - - - - - - - ${base_path}${simple_product_1_url_key}${url_suffix} - GET - true - false - true - false - false - - + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx - - - <title>${simple_product_1_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - + + 1 + + 1 + _counter + + true + true + - + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + - - ${think_time_delay_offset} - ${think_time_deviation} - + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + - false - ${simple_product_1_id} + true + ${product_id} = true product - false + true = true related_product - false + true 1 = true qty - false + true ${form_key} = true @@ -3515,9 +4110,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}checkout/cart/add/uenc/${simple_product_1_uenc}/product/${simple_product_1_id}/ + ${base_path}checkout/cart/add/ POST true false @@ -3525,8 +4120,7 @@ vars.put("loadType", "Guest"); false false - - + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx @@ -3535,11 +4129,11 @@ vars.put("loadType", "Guest"); XMLHttpRequest - + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - + @@ -3557,8 +4151,8 @@ vars.put("loadType", "Guest"); update_section_id - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + true + ${__time()}${__Random(1,1000000)} = true _ @@ -3569,7 +4163,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path}customer/section/load/ GET @@ -3579,21 +4173,11 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/load_cart_section.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - You added ${simple_product_1_name} to your shopping cart. + You added ${product_name} to your shopping cart. Assertion.response_data false @@ -3611,85 +4195,246 @@ vars.put("loadType", "Guest"); - \"summary_count\":1 + \"summary_count\":${totalProductsAdded} Assertion.response_data false 2 - - - - ${think_time_delay_offset} - ${think_time_deviation} - + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + - - - - - - - - - - - ${base_path}${simple_product_2_url_key}${url_suffix} - GET - true - false - true - false - false - - + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx - - - <title>${simple_product_2_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - + + 1 + + 1 + _counter + + true + true + - + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + - - ${think_time_delay_offset} - ${think_time_deviation} - + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + - false - ${simple_product_2_id} + true + ${product_id} = true product - false + true = true related_product - false + true 1 = true qty - false + true ${form_key} = true @@ -3701,9 +4446,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}checkout/cart/add/uenc/${simple_product_2_uenc}/product/${simple_product_2_id}/ + ${base_path}checkout/cart/add/ POST true false @@ -3711,8 +4456,38 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx + + @@ -3720,11 +4495,11 @@ vars.put("loadType", "Guest"); XMLHttpRequest - + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - + @@ -3733,7 +4508,6 @@ vars.put("loadType", "Guest"); = true sections - true true @@ -3741,15 +4515,13 @@ vars.put("loadType", "Guest"); = true update_section_id - true - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + true + ${__time()}${__Random(1,1000000)} = true _ - true @@ -3757,7 +4529,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path}customer/section/load/ GET @@ -3767,21 +4539,11 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/load_cart_section.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - You added ${simple_product_2_name} to your shopping cart. + You added ${product_name} to your shopping cart. Assertion.response_data false @@ -3799,22 +4561,142 @@ vars.put("loadType", "Guest"); - \"summary_count\":2 + \"summary_count\":${totalProductsAdded} Assertion.response_data false 2 - + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + 1 + false + 1 + ${addToWishlistPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Add to Wishlist"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + - - ${think_time_delay_offset} - ${think_time_deviation} - + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + - + @@ -3822,9 +4704,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}${configurable_product_1_url_key}${url_suffix} + ${base_path}customer/account/login/ GET true false @@ -3832,12 +4714,11 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/open_login_page.jmx - <title>${configurable_product_1_name} - <span>In stock</span> + <title>Customer Login</title> Assertion.response_data false @@ -3846,56 +4727,36 @@ vars.put("loadType", "Guest"); - - ${think_time_delay_offset} - ${think_time_deviation} - - - - + - - false - ${configurable_product_1_id} - = - true - product - - - false - - = - true - related_product - - - false - 1 + + true + ${form_key} = true - qty + form_key - - false - ${configurable_option_id} + + true + ${customer_email} = true - super_attribute[${configurable_attribute_id}] + login[username] - - false - ${configurable_option_id_2} + + true + ${customer_password} = true - super_attribute[${configurable_attribute_id_2}] + login[password] - - false - ${form_key} + + true + = true - form_key + send @@ -3903,9 +4764,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}checkout/cart/add/uenc/${configurable_product_1_uenc}/product/${configurable_product_1_id}/ + ${base_path}customer/account/loginPost/ POST true false @@ -3913,45 +4774,61 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/login.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - - - - - + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + true - cart,messages + = true sections - true true - true + false = true update_section_id - true - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + true + ${__time()}${__Random(1,1000000)} = true _ - true @@ -3959,7 +4836,7 @@ vars.put("loadType", "Guest"); - + ${request_protocol} ${base_path}customer/section/load/ GET @@ -3970,53 +4847,251 @@ vars.put("loadType", "Guest"); false - - - - - X-Requested-With - XMLHttpRequest - - - - - - You added ${configurable_product_1_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. - - Assertion.response_data - false - 6 - + + true + 5 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + - - - \"summary_count\":3 - - Assertion.response_data - false - 2 - + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + false + + + true + ${product_uenc} + = + true + uenc + + + true + ${product_id} + = + true + product + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/wishlist/add_to_wishlist.jmx + + + + <title>My Wish List</title> + + Assertion.response_data + false + 16 + + + + false + wishListItems + data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)" + $2$ + + -1 + + + + + + + + + true + wishlist,messages + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/wishlist/load_wishlist_section.jmx + + + + {"wishlist":{"counter":" + + Assertion.response_data + false + 16 + + + + ${wishlistDelay}*1000 + + + + + + + wishListItems + wishListItem + true + mpaf/tool/fragments/ce/wishlist/clear_wishlist.jmx + + + 1 + 5 + 1 + counter + + true + true + + + + + + true + ${form_key} + = + true + form_key + true + + + true + ${wishListItem} + = + true + item + true + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/remove/ + POST + true + false + true + false + false + + - - ${think_time_delay_offset} - ${think_time_deviation} - - - - + @@ -4024,9 +5099,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}checkout/ + ${base_path}customer/account/logout/ GET true false @@ -4034,147 +5109,277 @@ vars.put("loadType", "Guest"); false false - + mpaf/tool/fragments/ce/common/logout.jmx - + - <title>Checkout</title> + You are signed out. Assertion.response_data false 2 - - - <title>Shopping Cart</title> - - Assertion.response_data - false - 6 - - - - false - cart_id - "quoteData":{"entity_id":"([^'"]+)", - $1$ - - 1 - - - - false - form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - cart_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - form_key - - + + - - ${think_time_delay_offset} - ${think_time_deviation} - + + 1 + false + 1 + ${compareProductsPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Compare Products"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx - - true - - - - false - {"customerEmail":"test@example.com"} - = - - + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + + - + ${request_protocol} - ${base_path}rest/default/V1/customers/isEmailAvailable - POST + ${base_path}${category_url_key}${url_suffix} + GET true false true false false - + mpaf/tool/fragments/ce/product_compare/open_category.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - + + + <span class="base" data-ui-id="page-title">${category_name}</span> - + Assertion.response_data + false + 6 + - + + false + random_product_compare_id + catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\" + $1$ + + 1 + + + - true + ^[0-9]+$ Assertion.response_data false - 8 + 1 + variable + random_product_compare_id - - ${think_time_delay_offset} - ${think_time_deviation} - + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - true - + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + - - false - {"address":{"country_id":"US","postcode":"95630"}} + + true + ${product_id} + = + true + product + + + true + ${form_key} + = + true + form_key + + + true + ${product_uenc} = + true + uenc @@ -4182,9 +5387,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods + ${base_path}catalog/product_compare/add/ POST true false @@ -4192,54 +5397,32 @@ vars.put("loadType", "Guest"); false false - - - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - - - "available":true - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - + mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx - - true - + + - - false - {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + + true + compare-products,messages + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} = + true + _ @@ -4247,42 +5430,21 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information - POST + ${base_path}customer/section/load/ + GET true false true false false - + mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - + - {"payment_methods": + \"compare-products\":{\"count\":${totalProductsAdded} Assertion.response_data false @@ -4290,31 +5452,122 @@ vars.put("loadType", "Guest"); + - - ${think_time_delay_offset} - ${think_time_deviation} - + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - true - + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + - - false - {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}} + + true + ${product_id} = + true + product - - + + true + ${form_key} + = + true + form_key + + + true + ${product_uenc} + = + true + uenc + + + - + ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information + ${base_path}catalog/product_compare/add/ POST true false @@ -4322,60 +5575,64 @@ vars.put("loadType", "Guest"); false false - - - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 + mpaf/tool/fragments/ce/product_compare/product_compare_add.jmx + + + + + + + true + compare-products,messages + = + true + sections - - X-Requested-With - XMLHttpRequest + + true + false + = + true + update_section_id - - Accept - application/json + + true + ${__time()}${__Random(1,1000000)} + = + true + _ - - - - - "[0-9]+" - - Assertion.response_data - false - 2 - - - - order_id - $ - - - BODY - - + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx + - ^\d+$ + \"compare-products\":{\"count\":${totalProductsAdded} Assertion.response_data false - 1 - variable - order_id + 2 + - + @@ -4383,9 +5640,9 @@ vars.put("loadType", "Guest"); - + ${request_protocol} - ${base_path}checkout/onepage/success/ + ${base_path}catalog/product_compare/index/ GET true false @@ -4393,127 +5650,149 @@ vars.put("loadType", "Guest"); false false - - - - - Thank you for your purchase! - Your order # is + mpaf/tool/fragments/ce/product_compare/compare_products.jmx + + + + 1 + 0 + ${__javaScript(Math.round(${productCompareDelay}*1000))} + mpaf/tool/fragments/ce/product_compare/compare_products_pause.jmx + + + + + + + true + ${form_key} + = + true + form_key + - Assertion.response_data - false - 2 - - - + + + + + + ${request_protocol} + + ${base_path}catalog/product_compare/clear + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_compare/compare_products_clear.jmx + + - - continue - - false - ${loops} - - ${__javaScript(Math.round(props.get("users")*${customer_checkout_percent}/100>>0))} - ${ramp_period} - 1437177203000 - 1437177203000 - false - - - - - - rv1 - '.' - 1 - 999999 - 1 - true - - - - - rv2 - '.' - 1 - 999999 - 2 - true - - - - - rv3 - '.' - 1 - 999999 - 3 - true - - - - - Passing arguments between threads - import org.apache.jmeter.samplers.SampleResult; + + 1 + false + 1 + ${checkoutByGuestPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Checkout By Guest"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; -number = (int)(${rv1} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); -vars.put("simple_product_1_uenc", simpleList.get("uenc")); +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} -number1 = (int)(${rv2} * props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); -vars.put("simple_product_2_uenc", simpleList.get("uenc")); +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; -number = (int)(${rv3} * props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_attribute_id", configurableList.get("attribute_id")); -vars.put("configurable_attribute_id_2", configurableList.get("attribute_id_2")); -vars.put("configurable_option_id", configurableList.get("attribute_option_id")); -vars.put("configurable_option_id_2", configurableList.get("attribute_option_id_2")); -vars.put("configurable_product_1_uenc", simpleList.get("uenc")); +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); -number = (int)(Math.random() * props.get("category_url_keys_list").size()); vars.put("category_url_key", props.get("category_url_keys_list").get(number)); vars.put("category_name", props.get("category_names_list").get(number)); - -emails_index = 0; -if (!props.containsKey("customer_emails_index")) { - props.put("customer_emails_index", emails_index); -} - -try { - emails_index = props.get("customer_emails_index"); - emails_list = props.get("customer_emails_list"); - if (emails_index == emails_list.size()) { - emails_index=0; - } - vars.put("customer_email", emails_list.get(emails_index)); - props.put("customer_emails_index", ++emails_index); -} -catch (java.lang.Exception e) { - log.error("Caught Exception in 'Customer Checkout' thread."); - log.info("Using default email address - user_1@example.com"); - vars.put("customer_email", "user_1@example.com"); -} -vars.put("testLabel", "CustomerChkt"); -vars.put("loadType", "Customer"); - - - true - - - - + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + @@ -4521,7 +5800,7 @@ vars.put("loadType", "Customer"); - + ${request_protocol} ${base_path} GET @@ -4531,7 +5810,7 @@ vars.put("loadType", "Customer"); false false - + mpaf/tool/fragments/ce/common/open_home_page.jmx @@ -4544,13 +5823,7 @@ vars.put("loadType", "Customer"); - - ${think_time_delay_offset} - ${think_time_deviation} - - - - + @@ -4558,9 +5831,9 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}customer/account/login/ + ${base_path}${category_url_key}${url_suffix} GET true false @@ -4568,56 +5841,151 @@ vars.put("loadType", "Customer"); false false - + mpaf/tool/fragments/ce/common/open_category.jmx - <title>Customer Login</title> + <span class="base" data-ui-id="page-title">${category_name}</span> Assertion.response_data false - 2 + 6 + + + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + + + ^[0-9]+$ + + Assertion.response_data + false + 1 + variable + category_id - - - - - true - ["customer_form_login"] - = - true - blocks - - - true - ["default","customer_account_login"] - = - true - handles - - + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + true - {"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"} + ${product_id} = true - originalRequest + product - + true - true + = true - ajax + related_product - + true - true + 1 = true - isAjax + qty + + + true + ${form_key} + = + true + form_key @@ -4625,87 +5993,52 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}page_cache/block/render/ - GET + ${base_path}checkout/cart/add/ + POST true false true false false - + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx - - - "customer_form_login" - Registered Customers - form_key - - Assertion.response_data - false - 2 - - - - false - form_key - <input name=\\"form_key\\" type=\\"hidden\\" value=\\"([^'"]+)\\" \\/> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - form_key - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + - + - - true - ${form_key} - = - true - form_key - - + true - ${customer_email} + cart,messages = true - login[username] + sections - + true - ${customer_password} + true = true - login[password] + update_section_id - + true - + ${__time()}${__Random(1,1000000)} = true - send + _ @@ -4713,197 +6046,278 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}customer/account/loginPost/ - POST + ${base_path}customer/section/load/ + GET true false true false false - + mpaf/tool/fragments/ce/load_cart_section.jmx - <title>My Account</title> + You added ${product_name} to your shopping cart. Assertion.response_data false 2 - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - + - ^.+$ + This product is out of stock. Assertion.response_data false - 1 - variable - addressId + 6 - - false - form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - + - ^.+$ + \"summary_count\":${totalProductsAdded} Assertion.response_data false - 1 - variable - form_key + 2 - - - - ${think_time_delay_offset} - ${think_time_deviation} - + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + - - - - - - - - - - - ${base_path}${category_url_key}${url_suffix} - GET - true - false - true - false - false - - + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - - false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> - $1$ - - 1 - simple_product_1_url_key - - - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - + + 1 + + 1 + _counter + + true + true + - + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + - - ${think_time_delay_offset} - ${think_time_deviation} - + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + - - - - - - - - - - - ${base_path}${simple_product_1_url_key}${url_suffix} - GET - true - false - true - false - false - - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx - - - <title>${simple_product_1_name} - <span>In stock</span> + + + + Content-Type + application/json + + + Accept + */* + - Assertion.response_data - false - 2 - + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + - - ${think_time_delay_offset} - ${think_time_deviation} - - - - + - false - ${simple_product_1_id} + true + ${product_id} = true product - false + true = true related_product - false + true 1 = true qty - false + true ${form_key} = true @@ -4915,9 +6329,9 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}checkout/cart/add/uenc/${simple_product_1_uenc}/product/${simple_product_1_id}/ + ${base_path}checkout/cart/add/ POST true false @@ -4925,9 +6339,38 @@ vars.put("loadType", "Customer"); false false - - + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx + + @@ -4935,11 +6378,11 @@ vars.put("loadType", "Customer"); XMLHttpRequest - + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - + @@ -4957,8 +6400,8 @@ vars.put("loadType", "Customer"); update_section_id - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + true + ${__time()}${__Random(1,1000000)} = true _ @@ -4969,7 +6412,7 @@ vars.put("loadType", "Customer"); - + ${request_protocol} ${base_path}customer/section/load/ GET @@ -4979,8 +6422,36 @@ vars.put("loadType", "Customer"); false false - + mpaf/tool/fragments/ce/load_cart_section.jmx + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + @@ -4988,12 +6459,38 @@ vars.put("loadType", "Customer"); XMLHttpRequest - + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}checkout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_start.jmx + - You added ${simple_product_1_name} to your shopping cart. + <title>Checkout</title> Assertion.response_data false @@ -5002,356 +6499,26626 @@ vars.put("loadType", "Customer"); - This product is out of stock. + <title>Shopping Cart</title> Assertion.response_data false 6 - + + false + cart_id + "quoteData":{"entity_id":"([^'"]+)", + $1$ + + 1 + + + - \"summary_count\":1 + ^.+$ Assertion.response_data false - 2 + 1 + variable + cart_id - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - + + true + + + + false + {"customerEmail":"test@example.com"} + = + + - + ${request_protocol} - ${base_path}${simple_product_2_url_key}${url_suffix} - GET + ${base_path}rest/default/V1/customers/isEmailAvailable + POST true false true false false - + mpaf/tool/fragments/ce/guest_checkout/checkout_email_available.jmx + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + - <title>${simple_product_2_name} - <span>In stock</span> + true Assertion.response_data false - 2 + 8 - - ${think_time_delay_offset} - ${think_time_deviation} - - + + true + + + + false + {"address":{"country_id":"US","postcode":"95630"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "available":true + + Assertion.response_data + false + 2 + + + - - + + true + - + false - ${simple_product_2_id} + {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + {"payment_methods": + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "[0-9]+" + + Assertion.response_data + false + 2 + + + + order_id + $ + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + + + + + + + + + + + ${request_protocol} + + ${base_path}checkout/onepage/success/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_success.jmx + + + + Thank you for your purchase! + Your order # is + + Assertion.response_data + false + 2 + + + + + + + + + 1 + false + 1 + ${checkoutByCustomerPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Checkout By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${category_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_category.jmx + + + + <span class="base" data-ui-id="page-title">${category_name}</span> + + Assertion.response_data + false + 6 + + + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + + + ^[0-9]+$ + + Assertion.response_data + false + 1 + variable + category_id + + + + + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx + + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}checkout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/customer_checkout/checkout_start.jmx + + + + <title>Checkout</title> + + Assertion.response_data + false + 2 + + + + + <title>Shopping Cart</title> + + Assertion.response_data + false + 6 + + + + false + cart_id + "quoteData":{"entity_id":"([^'"]+)", + $1$ + + 1 + + + + false + address_id + "default_billing":"([^'"]+)", + $1$ + + 1 + + + + false + customer_id + "customer_id":([^'",]+), + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + cart_id + + + + + [0-9]+$ + + Assertion.response_data + false + 1 + variable + address_id + + + + + [0-9]+$ + + Assertion.response_data + false + 1 + variable + customer_id + + + + + + true + + + + false + {"addressId":"${addressId}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "available":true + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/mine/shipping-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx + + + + + Referer + ${host}${base_path}checkout/onepage + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + {"payment_methods" + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/mine/payment-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx + + + + + Referer + ${host}${base_path}checkout/onepage + + + Content-Type + application/json; charset=UTF-8 + + + Accept + application/json + + + X-Requested-With + XMLHttpRequest + + + + + + + "[0-9]+" + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}checkout/onepage/success/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/customer_checkout/checkout_success.jmx + + + + Thank you for your purchase! + Your order number is + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + false + + + curSampler = ctx.getCurrentSampler(); +if(curSampler.getName().contains("Checkout success")) { + manager = curSampler.getCookieManager(); + manager.clear(); +} + + mpaf/tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx + + + + + + + 1 + false + 1 + ${reviewByCustomerPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Product Review By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + 3 + = + true + ratings[1] + + + true + + = + true + validate_rating + + + true + FirstName + = + true + nickname + + + true + Some Review Title + = + true + title + + + true + Some Review Text + = + true + detail + + + + + + + + ${request_protocol} + + ${base_path}review/product/post/id/${product_id} + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_review/product_review.jmx + + + + HTTP/1.1 200 OK + + Assertion.response_headers + false + 16 + + + + + + + + + true + review,messages + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_review/load_review.jmx + + + + 1 + 0 + ${__javaScript(Math.round(${reviewDelay}*1000))} + mpaf/tool/fragments/ce/product_review/product_review_pause.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + + + + 1 + false + 1 + ${addToCartByCustomerPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Add To Cart By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${category_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_category.jmx + + + + <span class="base" data-ui-id="page-title">${category_name}</span> + + Assertion.response_data + false + 6 + + + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + + + ^[0-9]+$ + + Assertion.response_data + false + 1 + variable + category_id + + + + + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx + + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + + + continue + + false + ${loops} + + ${adminPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${adminProductEditingPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Edit Product"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx + import java.util.ArrayList; + import java.util.HashMap; + +try { + simpleCount = props.get("simple_products_list").size(); + configCount = props.get("configurable_products_list").size(); + productCount = 0; + if (simpleCount > configCount) { + productCount = configCount; + } else { + productCount = simpleCount; + } + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + threadsNumber = 1; + } + //Current thread number starts from 0 + currentThreadNum = ctx.getThreadNum(); + + String siterator = vars.get("threadIterator_" + currentThreadNum.toString()); + iterator = 0; + if(siterator == null){ + vars.put("threadIterator_" + currentThreadNum.toString() , "0"); + } else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString()); + } + + //Number of products for one thread + productClusterLength = productCount / threadsNumber; + //Index of the current product from the cluster + i = productClusterLength * currentThreadNum + iterator; + + if (iterator >= productClusterLength) { + vars.put("threadIterator_" + currentThreadNum.toString(), "0"); + iterator = 0; + } + + //ids of simple and configurable products to edit + vars.put("simple_product_id", props.get("simple_products_list").get(i).get("id")); + vars.put("configurable_product_id", props.get("configurable_products_list").get(i).get("id")); + + //id of related product + do { + relatedIndex = (int)(Math.random() * props.get("simple_products_list").size()); + } while(i == relatedIndex); + vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); + } catch (Exception ex) { + log.info("Script execution failed", ex); +} + + + false + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/ + GET + true + false + true + false + false + + + + + + Product + + Assertion.response_data + false + 16 + + + + false + simple_product_name + ,"name":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_sku + ,"sku":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_category_id + ,"category_ids":."(\d+)". + $1$ + + 1 + + + + + Passing arguments between threads + //Additional category to be added + + int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); + if (categoryId > 4) { + categoryId = categoryId - 1; + } else { + categoryId = categoryId + 1; + } + vars.put("category_additional", categoryId.toString()); + //New price + vars.put("price_new", "9999"); + //New special price + vars.put("special_price_new", "8888"); + //New quantity + vars.put("quantity_new", "100600"); + + + false + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${simple_product_name} + = + true + product[name] + false + + + true + ${simple_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + ${quantity_new} + = + true + product[quantity_and_stock_status][qty] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 1.0000 + = + true + product[weight] + false + + + true + 1 + = + true + product[product_has_weight] + false + + + true + ${simple_product_category_id} + = + true + product[category_ids][] + false + + + true + <p>Full simple product Description ${simple_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + + = + true + product[configurable_variations] + false + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + + = + true + product[image] + false + + + true + + = + true + product[small_image] + false + + + true + + = + true + product[thumbnail] + false + + + true + ${simple_product_name} + = + true + product[url_key] + false + + + true + ${simple_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${simple_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${simple_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + ${quantity_new} + = + true + product[stock_data][original_inventory_qty] + false + + + true + ${quantity_new} + = + true + product[stock_data][qty] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + + = + true + new-variations-attribute-set-id + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${simple_product_name} + = + true + product[name] + false + + + true + ${simple_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + ${quantity_new} + = + true + product[quantity_and_stock_status][qty] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 1.0000 + = + true + product[weight] + false + + + true + 1 + = + true + product[product_has_weight] + false + + + true + ${simple_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + + + true + <p>Full simple product Description ${simple_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + + = + true + product[configurable_variations] + false + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + + = + true + product[image] + false + + + true + + = + true + product[small_image] + false + + + true + + = + true + product[thumbnail] + false + + + true + ${simple_product_name} + = + true + product[url_key] + false + + + true + ${simple_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${simple_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${simple_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + ${quantity_new} + = + true + product[stock_data][original_inventory_qty] + false + + + true + ${quantity_new} + = + true + product[stock_data][qty] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + + = + true + new-variations-attribute-set-id + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/ + GET + true + false + true + false + false + + + + + + Product + + Assertion.response_data + false + 16 + + + + false + configurable_product_name + ,"name":"([^'"]+)", + $1$ + + 1 + + + + false + configurable_product_sku + ,"sku":"([^'"]+)", + $1$ + + 1 + + + + false + configurable_product_category_id + ,"category_ids":."(\d+)" + $1$ + + 1 + + + + false + configurable_attribute_id + ,"configurable_variation":"([^'"]+)", + $1$ + + 1 + true + + + + false + configurable_matrix + "configurable-matrix":(\[.*?\]) + $1$ + + 1 + true + + + + associated_products_ids + $.[*].id + + configurable_matrix + VAR + + + + false + configurable_product_data + (\{"product":.*?configurable_attributes_data.*?\})\s*< + $1$ + + 1 + + + + configurable_attributes_data + $.product.configurable_attributes_data + + configurable_product_data + VAR + + + + false + configurable_attribute_ids + "attribute_id":"(\d+)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_codes + "code":"(\w+)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_labels + "label":"(.*?)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_values + "values":(\{(?:\}|.*?\}\})) + $1$ + + -1 + variable + configurable_attributes_data + + + + + configurable_attribute_ids + configurable_attribute_id + true + + + + 1 + ${configurable_attribute_ids_matchNr} + 1 + attribute_counter + + true + true + + + + return vars.get("configurable_attribute_values_" + vars.get("attribute_counter")); + + + false + + + + false + attribute_${configurable_attribute_id}_values + "value_index":"(\d+)" + $1$ + + -1 + configurable_attribute_values_${attribute_counter} + + + + + + + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${configurable_product_name} + = + true + product[name] + false + + + true + ${configurable_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 3 + = + true + product[weight] + false + + + true + ${configurable_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + false + + + true + <p>Configurable product description ${configurable_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + ${configurable_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${configurable_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${configurable_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + ${configurable_attribute_id} + = + true + product[configurable_variation] + false + + + true + ${configurable_product_name} + = + true + product[url_key] + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + + + true + 4 + = + true + product[visibility] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 50 + = + true + product[stock_data][qty] + false + + + true + configurable + = + true + product[stock_data][type_id] + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/ + POST + true + false + true + false + false + + + + + false + + + try { + int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); + for (int i = 1; i <= attributesCount; i++) { + attributeId = vars.get("configurable_attribute_ids_" + i.toString()); + attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); + attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); + ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); + ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); + ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); + + int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); + for (int j = 1; j <= valuesCount; j++) { + attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", + "1" + ); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", + attributeValue + ); + } + } + ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); + } catch (Exception e) { + log.error("error???", e); + } + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${configurable_product_name} + = + true + product[name] + false + + + true + ${configurable_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id]admin + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 3 + = + true + product[weight] + false + + + true + ${configurable_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + false + + + true + <p>Configurable product description ${configurable_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + ${configurable_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${configurable_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${configurable_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + ${configurable_attribute_id} + = + true + product[configurable_variation] + false + + + true + ${configurable_product_name} + = + true + product[url_key] + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + + + true + 4 + = + true + product[visibility] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 50 + = + true + product[stock_data][qty] + false + + + true + configurable + = + true + product[stock_data][type_id] + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + false + + + try { + int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); + for (int i = 1; i <= attributesCount; i++) { + attributeId = vars.get("configurable_attribute_ids_" + i.toString()); + attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); + attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); + ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); + ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); + ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); + + int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); + for (int j = 1; j <= valuesCount; j++) { + attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", + "1" + ); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", + attributeValue + ); + } + } + ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); + } catch (Exception e) { + log.error("error???", e); + } + + + + + You saved the product + + Assertion.response_data + false + 2 + if have trouble see messages-message-error + + + + + + + + + + 1 + false + 1 + ${adminProductCreationPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Create Product"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +relatedIndex = random.nextInt(props.get("simple_products_list").size()); +vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); + + + true + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + + Authorization + Bearer ${admin_token} + + + mpaf/tool/fragments/ce/api/header_manager.jmx + + + + + + + false + mysize,mycolor + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + false + attribute_code + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + false + in + = + true + searchCriteria[filterGroups][0][filters][0][condition_type] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attributes + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx + + + product_attributes + $.items + + + BODY + + + + javascript + + + + +var attributesData = JSON.parse(vars.get("product_attributes")), +maxOptions = 2; + +attributes = []; +for (i in attributesData) { + if (i >= 2) { + break; + } + var data = attributesData[i], + attribute = { + "id": data.attribute_id, + "code": data.attribute_code, + "label": data.default_frontend_label, + "options": [] + }; + + var processedOptions = 0; + for (optionN in data.options) { + var option = data.options[optionN]; + if (parseInt(option.value) > 0 && processedOptions < maxOptions) { + processedOptions++; + attribute.options.push(option); + } + } + attributes.push(attribute); +} + +vars.putObject("product_attributes", attributes); + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx + + + + false + attribute_set_id + catalog\/product_set\/edit\/id\/([\d]+)\/"[\D\d]*Attribute Set 1 + $1$ + + 1 + + + + false + + + import org.apache.commons.codec.binary.Base64; + +byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes()); +vars.put("attribute_set_filter", new String(encodedBytes)); + + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_id", simpleList.get("id")); +vars.put("simple_product_1_name", simpleList.get("title")); + +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_id", simpleList.get("id")); +vars.put("simple_product_2_name", simpleList.get("title")); + +number2 = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number2); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); + +//Additional category to be added +//int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); +//vars.put("category_additional", (categoryId+1).toString()); +//New price +vars.put("price_new", "9999"); +//New special price +vars.put("special_price_new", "8888"); +//New quantity +vars.put("quantity_new", "100600"); +vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}"); + + + + + true + mpaf/tool/fragments/ce/admin_create_product/setup.jmx + + + + mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 42 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + + + true + option title one + = + true + bundle_options[bundle_options][0][title] + + + true + + = + true + bundle_options[bundle_options][0][option_id] + + + true + + = + true + bundle_options[bundle_options][0][delete] + + + true + select + = + true + bundle_options[bundle_options][0][type] + + + true + 1 + = + true + bundle_options[bundle_options][0][required] + + + true + 0 + = + true + bundle_options[bundle_options][0][position] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][option_id] + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][0][bundle_selections][0][product_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][delete] + + + true + 25 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][0][position] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][option_id] + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][0][bundle_selections][1][product_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][delete] + + + true + 10.99 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][position] + + + true + option title two + = + true + bundle_options[bundle_options][1][title] + + + true + + = + true + bundle_options[bundle_options][1][option_id] + + + true + + = + true + bundle_options[bundle_options][1][delete] + + + true + select + = + true + bundle_options[bundle_options][1][type] + + + true + 1 + = + true + bundle_options[bundle_options][1][required] + + + true + 1 + = + true + bundle_options[bundle_options][1][position] + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][option_id] + true + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][1][bundle_selections][0][product_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][delete] + true + + + true + 5.00 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][position] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][option_id] + true + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][1][bundle_selections][1][product_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][delete] + true + + + true + 7.00 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][position] + true + + + true + 2 + = + true + affect_bundle_product_selections + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 42 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + false + + + true + option title one + = + true + bundle_options[bundle_options][0][title] + false + + + true + + = + true + bundle_options[bundle_options][0][option_id] + false + + + true + + = + true + bundle_options[bundle_options][0][delete] + false + + + true + select + = + true + bundle_options[bundle_options][0][type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][required] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][position] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][0][bundle_selections][0][product_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][delete] + false + + + true + 25 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][0][position] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][0][bundle_selections][1][product_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][delete] + false + + + true + 10.99 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][position] + false + + + true + option title two + = + true + bundle_options[bundle_options][1][title] + false + + + true + + = + true + bundle_options[bundle_options][1][option_id] + false + + + true + + = + true + bundle_options[bundle_options][1][delete] + false + + + true + select + = + true + bundle_options[bundle_options][1][type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][required] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][position] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][1][bundle_selections][0][product_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][delete] + false + + + true + 5.00 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][position] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][1][bundle_selections][1][product_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][delete] + false + + + true + 7.00 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][position] + false + + + true + 2 + = + true + affect_bundle_product_selections + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + option title one + option title two + ${simple_product_2_name} + ${simple_product_1_name} + + + Assertion.response_data + false + 2 + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + ${admin_form_key} + = + true + form_key + true + + + true + ${attribute_set_id} + = + true + new-variations-attribute-set-id + true + + + true + 1 + = + true + product[affect_product_custom_options] + true + + + true + ${attribute_set_id} + = + true + product[attribute_set_id] + true + + + true + 4 + = + true + product[category_ids][0] + true + + + true + + = + true + product[custom_layout_update] + true + + + true + + = + true + product[description] + true + + + true + 0 + = + true + product[gift_message_available] + true + + + true + 1 + = + true + product[gift_wrapping_available] + true + + + true + + = + true + product[gift_wrapping_price] + true + + + true + + = + true + product[image] + true + + + true + 2 + = + true + product[is_returnable] + true + + + true + ${configurable_sku} - Meta Description + = + true + product[meta_description] + true + + + true + ${configurable_sku} - Meta Keyword + = + true + product[meta_keyword] + true + + + true + ${configurable_sku} - Meta Title + = + true + product[meta_title] + true + + + true + ${configurable_sku} + = + true + product[name] + true + + + true + container2 + = + true + product[options_container] + true + + + true + ${price_new} + = + true + product[price] + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + true + + + true + 1000 + = + true + product[quantity_and_stock_status][qty] + true + + + true + + = + true + product[short_description] + true + + + true + ${configurable_sku} + = + true + product[sku] + true + + + true + + = + true + product[small_image] + true + + + true + ${special_price_new} + = + true + product[special_price] + true + + + true + 1 + = + true + product[status] + true + + + true + 0 + = + true + product[stock_data][backorders] + true + + + true + 1 + = + true + product[stock_data][deferred_stock_update] + true + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + true + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + true + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + true + + + true + 1 + = + true + product[stock_data][manage_stock] + true + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + true + + + true + 0 + = + true + product[stock_data][min_qty] + true + + + true + 1 + = + true + product[stock_data][min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_backorders] + true + + + true + 1 + = + true + product[stock_data][use_config_deferred_stock_update] + true + + + true + 1 + = + true + product[stock_data][use_config_enable_qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + true + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + true + + + true + 2 + = + true + product[tax_class_id] + true + + + true + + = + true + product[thumbnail] + true + + + true + + = + true + product[url_key] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + true + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + 1 + = + true + product[use_config_is_returnable] + true + + + true + 4 + = + true + product[visibility] + true + + + true + 1 + = + true + product[website_ids][1] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + javascript + + + + +attributes = vars.getObject("product_attributes"); + +for (i in attributes) { + var attribute = attributes[i]; + sampler.addArgument("attribute_codes[" + i + "]", attribute.code); + sampler.addArgument("attributes[" + i + "]", attribute.id); + sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); + addConfigurableAttributeData(attribute); +} + +addConfigurableMatrix(attributes); + +function addConfigurableAttributeData(attribute) { + var attributeId = attribute.id; + + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); + attribute.options.forEach(function (option, index) { + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); + }); +} + +/** + * Build 4 simple products for Configurable + */ +function addConfigurableMatrix(attributes) { + + var attribute1 = attributes[0], + attribute2 = attributes[1], + productIndex = 1, + products = []; + var variationNames = []; + attribute1.options.forEach(function (option1) { + attribute2.options.forEach(function (option2) { + var productAttributes = {}, + namePart = option1.label + "+" + option2.label, + variationKey = option1.value + "-" + option2.value; + productAttributes[attribute1.code] = option1.value; + productAttributes[attribute2.code] = option2.value; + + variationNames.push(namePart + " - " + vars.get("configurable_sku")); + var product = { + "id": null, + "name": namePart + " - " + vars.get("configurable_sku"), + "sku": namePart + " - " + vars.get("configurable_sku"), + "status": 1, + "price": "100", + "price_currency": "$", + "price_string": "$100", + "weight": "6", + "qty": "50", + "variationKey": variationKey, + "configurable_attribute": JSON.stringify(productAttributes), + "thumbnail_image": "", + "media_gallery": {"images": {}}, + "image": [], + "was_changed": true, + "canEdit": 1, + "newProduct": 1, + "record_id": productIndex + }; + productIndex++; + products.push(product); + }); + }); + + sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); + vars.putObject("configurable_variations_assertion", variationNames); +} + + mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + ${admin_form_key} + = + true + form_key + true + + + true + ${attribute_set_id} + = + true + new-variations-attribute-set-id + true + + + true + 1 + = + true + product[affect_product_custom_options] + true + + + true + ${attribute_set_id} + = + true + product[attribute_set_id] + true + + + true + 4 + = + true + product[category_ids][0] + true + + + true + + = + true + product[custom_layout_update] + true + + + true + + = + true + product[description] + true + + + true + 0 + = + true + product[gift_message_available] + true + + + true + 1 + = + true + product[gift_wrapping_available] + true + + + true + + = + true + product[gift_wrapping_price] + true + + + true + + = + true + product[image] + true + + + true + 2 + = + true + product[is_returnable] + true + + + true + ${configurable_sku} - Meta Description + = + true + product[meta_description] + true + + + true + ${configurable_sku} - Meta Keyword + = + true + product[meta_keyword] + true + + + true + ${configurable_sku} - Meta Title + = + true + product[meta_title] + true + + + true + ${configurable_sku} + = + true + product[name] + true + + + true + container2 + = + true + product[options_container] + true + + + true + ${price_new} + = + true + product[price] + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + true + + + true + 1000 + = + true + product[quantity_and_stock_status][qty] + true + + + true + + = + true + product[short_description] + true + + + true + ${configurable_sku} + = + true + product[sku] + true + + + true + + = + true + product[small_image] + true + + + true + ${special_price_new} + = + true + product[special_price] + true + + + true + 1 + = + true + product[status] + true + + + true + 0 + = + true + product[stock_data][backorders] + true + + + true + 1 + = + true + product[stock_data][deferred_stock_update] + true + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + true + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + true + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + true + + + true + 1 + = + true + product[stock_data][manage_stock] + true + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + true + + + true + 0 + = + true + product[stock_data][min_qty] + true + + + true + 1 + = + true + product[stock_data][min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_backorders] + true + + + true + 1 + = + true + product[stock_data][use_config_deferred_stock_update] + true + + + true + 1 + = + true + product[stock_data][use_config_enable_qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + true + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + true + + + true + 2 + = + true + product[tax_class_id] + true + + + true + + = + true + product[thumbnail] + true + + + true + + = + true + product[url_key] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + true + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + 1 + = + true + product[use_config_is_returnable] + true + + + true + 4 + = + true + product[visibility] + true + + + true + 1 + = + true + product[website_ids][1] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx + + + + You saved the product + + Assertion.response_data + false + 2 + + + + javascript + + + + +var configurableVariations = vars.getObject("configurable_variations_assertion"), +response = SampleResult.getResponseDataAsString(); + +configurableVariations.forEach(function (variation) { + if (response.indexOf(variation) == -1) { + AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\""); + AssertionResult.setFailure(true); + } +}); + + + + + + javascript + + + + +attributes = vars.getObject("product_attributes"); + +for (i in attributes) { + var attribute = attributes[i]; + sampler.addArgument("attribute_codes[" + i + "]", attribute.code); + sampler.addArgument("attributes[" + i + "]", attribute.id); + sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); + addConfigurableAttributeData(attribute); +} + +addConfigurableMatrix(attributes); + +function addConfigurableAttributeData(attribute) { + var attributeId = attribute.id; + + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); + attribute.options.forEach(function (option, index) { + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); + }); +} + +/** + * Build 4 simple products for Configurable + */ +function addConfigurableMatrix(attributes) { + + var attribute1 = attributes[0], + attribute2 = attributes[1], + productIndex = 1, + products = []; + var variationNames = []; + attribute1.options.forEach(function (option1) { + attribute2.options.forEach(function (option2) { + var productAttributes = {}, + namePart = option1.label + "+" + option2.label, + variationKey = option1.value + "-" + option2.value; + productAttributes[attribute1.code] = option1.value; + productAttributes[attribute2.code] = option2.value; + + variationNames.push(namePart + " - " + vars.get("configurable_sku")); + var product = { + "id": null, + "name": namePart + " - " + vars.get("configurable_sku"), + "sku": namePart + " - " + vars.get("configurable_sku"), + "status": 1, + "price": "100", + "price_currency": "$", + "price_string": "$100", + "weight": "6", + "qty": "50", + "variationKey": variationKey, + "configurable_attribute": JSON.stringify(productAttributes), + "thumbnail_image": "", + "media_gallery": {"images": {}}, + "image": [], + "was_changed": true, + "canEdit": 1, + "newProduct": 1, + "record_id": productIndex + }; + productIndex++; + products.push(product); + }); + }); + + sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); + vars.putObject("configurable_variations_assertion", variationNames); +} + + mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + + + + + + mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + ${files_folder}downloadable_original.txt + links + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true + POST + false + false + true + true + false + + + + + original_file + $.file + + + BODY + + + + + + + + ${files_folder}downloadable_sample.txt + samples + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true + POST + false + false + true + true + false + + + + + sample_file + $.file + + + BODY + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + on + = + true + is_downloadable + + + true + Links + = + true + product[links_title] + + + true + 0 + = + true + product[links_purchased_separately] + + + true + ${original_file} + = + true + downloadable[link][0][file][0][file] + false + + + true + downloadable_original.txt + = + true + downloadable[link][0][file][0][name] + false + + + true + 13 + = + true + downloadable[link][0][file][0][size] + false + + + true + new + = + true + downloadable[link][0][file][0][status] + false + + + true + 1 + = + true + downloadable[link][0][is_shareable] + + + true + 0 + = + true + downloadable[link][0][is_unlimited] + + + true + + = + true + downloadable[link][0][link_url] + + + true + 0 + = + true + downloadable[link][0][number_of_downloads] + true + + + true + 120 + = + true + downloadable[link][0][price] + true + + + true + 0 + = + true + downloadable[link][0][record_id] + true + + + true + file + = + true + downloadable[link][0][sample][type] + + + true + + = + true + downloadable[link][0][sample][url] + + + true + 1 + = + true + downloadable[link][0][sort_order] + + + true + Original Link + = + true + downloadable[link][0][title] + + + true + file + = + true + downloadable[link][0][type] + + + true + ${sample_file} + = + true + downloadable[sample][0][file][0][file] + true + + + true + downloadable_sample.txt + = + true + downloadable[sample][0][file][0][name] + true + + + true + 14 + = + true + downloadable[sample][0][file][0][size] + true + + + true + new + = + true + downloadable[sample][0][file][0][status] + true + + + true + 0 + = + true + downloadable[sample][0][record_id] + true + + + true + + = + true + downloadable[sample][0][sample_url] + true + + + true + 1 + = + true + downloadable[sample][0][sort_order] + true + + + true + Sample Link + = + true + downloadable[sample][0][title] + true + + + true + file + = + true + downloadable[sample][0][type] + true + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + 4 + = + true + new-variations-attribute-set-id + false + + + true + + = + true + product[configurable_variation] + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + false + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + ${original_file} + = + true + downloadable[link][0][file][0][file] + false + + + true + downloadable_original.txt + = + true + downloadable[link][0][file][0][name] + false + + + true + 13 + = + true + downloadable[link][0][file][0][size] + false + + + true + new + = + true + downloadable[link][0][file][0][status] + false + + + true + 1 + = + true + downloadable[link][0][is_shareable] + true + + + true + 0 + = + true + downloadable[link][0][is_unlimited] + true + + + true + + = + true + downloadable[link][0][link_url] + true + + + true + 0 + = + true + downloadable[link][0][number_of_downloads] + false + + + true + 120 + = + true + downloadable[link][0][price] + false + + + true + 0 + = + true + downloadable[link][0][record_id] + false + + + true + file + = + true + downloadable[link][0][sample][type] + true + + + true + + = + true + downloadable[link][0][sample][url] + true + + + true + 1 + = + true + downloadable[link][0][sort_order] + true + + + true + Original Link + = + true + downloadable[link][0][title] + true + + + true + file + = + true + downloadable[link][0][type] + true + + + true + ${sample_file} + = + true + downloadable[sample][0][file][0][file] + true + + + true + downloadable_sample.txt + = + true + downloadable[sample][0][file][0][name] + true + + + true + 14 + = + true + downloadable[sample][0][file][0][size] + true + + + true + new + = + true + downloadable[sample][0][file][0][status] + true + + + true + 0 + = + true + downloadable[sample][0][record_id] + true + + + true + + = + true + downloadable[sample][0][sample_url] + true + + + true + 1 + = + true + downloadable[sample][0][sort_order] + true + + + true + Sample Link + = + true + downloadable[sample][0][title] + true + + + true + file + = + true + downloadable[sample][0][type] + true + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + 4 + = + true + new-variations-attribute-set-id + false + + + true + + = + true + product[configurable_variation] + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + product[options][1][is_delete] + false + + + true + 1 + = + true + product[options][1][is_require] + false + + + true + select + = + true + product[options][1][previous_group] + false + + + true + drop_down + = + true + product[options][1][previous_type] + false + + + true + 0 + = + true + product[options][1][sort_order] + false + + + true + Product Option Title One + = + true + product[options][1][title] + false + + + true + drop_down + = + true + product[options][1][type] + false + + + true + + = + true + product[options][1][values][1][is_delete] + false + + + true + 200 + = + true + product[options][1][values][1][price] + false + + + true + fixed + = + true + product[options][1][values][1][price_type] + false + + + true + sku-one + = + true + product[options][1][values][1][sku] + false + + + true + 0 + = + true + product[options][1][values][1][sort_order] + false + + + true + Row Title + = + true + product[options][1][values][1][title] + false + + + true + + = + true + product[options][2][is_delete] + false + + + true + 1 + = + true + product[options][2][is_require] + false + + + true + 250 + = + true + product[options][2][max_characters] + false + + + true + text + = + true + product[options][2][previous_group] + false + + + true + field + = + true + product[options][2][previous_type] + false + + + true + 500 + = + true + product[options][2][price] + false + + + true + fixed + = + true + product[options][2][price_type] + false + + + true + sku-two + = + true + product[options][2][sku] + false + + + true + 1 + = + true + product[options][2][sort_order] + false + + + true + Field Title + = + true + product[options][2][title] + false + + + true + field + = + true + product[options][2][type] + false + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + 4 + = + true + new-variations-attribute-set-id + true + + + true + + = + true + product[configurable_variation] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + product[options][1][is_delete] + true + + + true + 1 + = + true + product[options][1][is_require] + + + true + select + = + true + product[options][1][previous_group] + false + + + true + drop_down + = + true + product[options][1][previous_type] + false + + + true + 0 + = + true + product[options][1][sort_order] + false + + + true + Product Option Title One + = + true + product[options][1][title] + + + true + drop_down + = + true + product[options][1][type] + + + true + + = + true + product[options][1][values][1][is_delete] + false + + + true + 200 + = + true + product[options][1][values][1][price] + + + true + fixed + = + true + product[options][1][values][1][price_type] + + + true + sku-one + = + true + product[options][1][values][1][sku] + + + true + 0 + = + true + product[options][1][values][1][sort_order] + + + true + Row Title + = + true + product[options][1][values][1][title] + + + true + + = + true + product[options][2][is_delete] + false + + + true + 1 + = + true + product[options][2][is_require] + + + true + 250 + = + true + product[options][2][max_characters] + + + true + text + = + true + product[options][2][previous_group] + + + true + field + = + true + product[options][2][previous_type] + + + true + 500 + = + true + product[options][2][price] + + + true + fixed + = + true + product[options][2][price_type] + + + true + sku-two + = + true + product[options][2][sku] + + + true + 1 + = + true + product[options][2][sort_order] + + + true + Field Title + = + true + product[options][2][title] + + + true + field + = + true + product[options][2][type] + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + 4 + = + true + new-variations-attribute-set-id + true + + + true + + = + true + product[configurable_variation] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + + + + 1 + false + 1 + ${adminCategoryManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Category Management"); + + true + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + mpaf/tool/fragments/ce/setup/setup_admin_category_management.jmx + + + + props.remove("admin_category_ids_list"); + + + false + + + + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + true + children_count + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + 0 + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + level + = + true + searchCriteria[filterGroups][1][filters][0][field] + + + true + 2 + = + true + searchCriteria[filterGroups][1][filters][0][value] + + + true + gt + = + true + searchCriteria[filterGroups][1][filters][0][conditionType] + + + true + ${adminCategoryCount} + = + true + searchCriteria[pageSize] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories + GET + true + false + true + false + false + + + + + false + category_list_id + \{\"id\":(\d+), + $1$ + + -1 + + + + + category_list_id + category_id + true + + + + import java.util.ArrayList; + + adminCategoryIdsList = props.get("admin_category_ids_list"); + // If it is first iteration of cycle then recreate categories ids list + if (adminCategoryIdsList == null) { + adminCategoryIdsList = new ArrayList(); + props.put("admin_category_ids_list", adminCategoryIdsList); + } + adminCategoryIdsList.add(vars.get("category_id")); + + + false + + + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.ArrayList; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { +random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_url_key", simpleList.get("url_key")); +vars.put("simple_product_1_name", simpleList.get("title")); +vars.put("simple_product_1_id", simpleList.get("id")); + +do { +number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_url_key", simpleList.get("url_key")); +vars.put("simple_product_2_name", simpleList.get("title")); +vars.put("simple_product_2_id", simpleList.get("id")); + +do { +number2 = random.nextInt(props.get("simple_products_list").size()); +} while(number2 == number1 || number2 == number); +simpleList = props.get("simple_products_list").get(number2); +vars.put("simple_product_3_url_key", simpleList.get("url_key")); +vars.put("simple_product_3_name", simpleList.get("title")); +vars.put("simple_product_3_id", simpleList.get("id")); + +do { +number3 = random.nextInt(props.get("simple_products_list").size()); +} while(number3 == number2 || number3 == number1 || number3 == number); +simpleList = props.get("simple_products_list").get(number3); +vars.put("simple_product_4_url_key", simpleList.get("url_key")); +vars.put("simple_product_4_name", simpleList.get("title")); +vars.put("simple_product_4_id", simpleList.get("id")); + +do { +number4 = random.nextInt(props.get("simple_products_list").size()); +} while(number4 == number3 || number4 == number2 || number4 == number1 || number4 == number); +simpleList = props.get("simple_products_list").get(number4); +vars.put("simple_product_5_url_key", simpleList.get("url_key")); +vars.put("simple_product_5_name", simpleList.get("title")); +vars.put("simple_product_5_id", simpleList.get("id")); + +categoryIndex = random.nextInt(props.get("admin_category_ids_list").size()); +vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex)); +do { +categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size()); +} while(categoryIndex == categoryIndexNew); +vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew)); + + + true + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id} + GET + true + false + true + false + false + + + + + + <title>New Category + + Assertion.response_data + false + 2 + + + + + + + + true + + = + true + id + + + true + ${parent_category_id} + = + true + parent + + + true + + = + true + path + + + true + + = + true + store_id + + + true + 0 + = + true + is_active + + + true + 0 + = + true + include_in_menu + + + true + 1 + = + true + is_anchor + + + true + true + = + true + use_config[available_sort_by] + + + true + true + = + true + use_config[default_sort_by] + + + true + true + = + true + use_config[filter_price_range] + + + true + false + = + true + use_default[url_key] + + + true + 0 + = + true + url_key_create_redirect + + + true + 0 + = + true + custom_use_parent_settings + + + true + 0 + = + true + custom_apply_to_products + + + true + Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + name + + + true + admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + url_key + + + true + + = + true + meta_title + + + true + + = + true + description + + + true + PRODUCTS + = + true + display_mode + + + true + position + = + true + default_sort_by + + + true + + = + true + meta_keywords + + + true + + = + true + meta_description + + + true + + = + true + custom_layout_update + + + false + {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""} + = + true + category_products + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/save/ + POST + true + false + true + false + false + + + + + URL + admin_category_id + /catalog/category/edit/id/(\d+)/ + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_id + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + false + admin_category_entity_id + "entity_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_attribute_set_id + "attribute_set_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_parent_id + "parent_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_created_at + "created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_updated_at + "updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_path + "entity_id":(.+)"path":"([^\"]+)" + $2$ + + 1 + + + + false + admin_category_level + "level":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_name + "entity_id":(.+)"name":"([^"]+)" + $2$ + + 1 + + + + false + admin_category_url_key + "url_key":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_url_path + "url_path":"([^"]+)" + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_entity_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_attribute_set_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_parent_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_updated_at + + + + + ^[\d\\\/]+$ + + Assertion.response_data + false + 1 + variable + admin_category_path + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_level + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_name + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_key + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_path + + + + + ${simple_product_1_name} + ${simple_product_2_name} + ${simple_product_3_name} + ${simple_product_4_name} + ${simple_product_5_name} + + Assertion.response_data + false + 2 + + + + + + + + true + ${admin_category_id} + = + true + id + + + true + ${admin_form_key} + = + true + form_key + + + true + append + = + true + point + + + true + ${new_parent_category_id} + = + true + pid + + + true + ${parent_category_id} + = + true + paid + + + true + 0 + = + true + aid + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/move/ + POST + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/ + GET + true + false + true + false + false + + + + + + You deleted the category. + + Assertion.response_data + false + 2 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))} + + + + + + + + + 1 + false + 1 + ${adminPromotionRulesPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Promotion Rules"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/ + GET + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/new + GET + true + false + true + false + false + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + true + + + true + 1--1 + = + true + id + + + true + Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal + = + true + type + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form + POST + true + false + true + false + false + + + + + + + + true + Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + name + + + true + 0 + = + true + is_active + + + true + 0 + = + true + use_auto_generation + + + true + 1 + = + true + is_rss + + + true + 0 + = + true + apply_to_shipping + + + true + 0 + = + true + stop_rules_processing + + + true + + = + true + coupon_code + + + true + + = + true + uses_per_coupon + + + true + + = + true + uses_per_customer + + + true + + = + true + sort_order + + + true + 5 + = + true + discount_amount + + + true + 0 + = + true + discount_qty + + + true + + = + true + discount_step + + + true + + = + true + reward_points_delta + + + true + + = + true + store_labels[0] + + + true + Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + description + + + true + 1 + = + true + coupon_type + + + true + cart_fixed + = + true + simple_action + + + true + 1 + = + true + website_ids[0] + + + true + 0 + = + true + customer_group_ids[0] + + + true + + = + true + from_date + + + true + + = + true + to_date + + + true + Magento\SalesRule\Model\Rule\Condition\Combine + = + true + rule[conditions][1][type] + + + true + all + = + true + rule[conditions][1][aggregator] + + + true + 1 + = + true + rule[conditions][1][value] + + + true + Magento\SalesRule\Model\Rule\Condition\Address + = + true + rule[conditions][1--1][type] + + + true + base_subtotal + = + true + rule[conditions][1--1][attribute] + + + true + >= + = + true + rule[conditions][1--1][operator] + + + true + 100 + = + true + rule[conditions][1--1][value] + + + true + + = + true + rule[conditions][1][new_chlid] + + + true + Magento\SalesRule\Model\Rule\Condition\Product\Combine + = + true + rule[actions][1][type] + + + true + all + = + true + rule[actions][1][aggregator] + + + true + 1 + = + true + rule[actions][1][value] + + + true + + = + true + rule[actions][1][new_child] + + + true + + = + true + store_labels[1] + + + true + + = + true + store_labels[2] + + + true + + = + true + related_banners + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/save/ + POST + true + false + true + false + false + + + + + + You saved the rule. + + Assertion.response_data + false + 16 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))} + + + + + + + + + 1 + false + 1 + ${adminEditOrderPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Edit Order"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + + + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; + + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); + + + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } + + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx + + + + + + true + pending + = + true + history[status] + false + + + true + Some text + = + true + history[comment] + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx + + + + Not Notified + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + invoice[items][${item_ids_1}] + + + true + 1 + = + true + invoice[items][${item_ids_2}] + + + true + Invoiced + = + true + invoice[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx + + + + New Shipment + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + shipment[items][${item_ids_1}] + + + true + 1 + = + true + shipment[items][${item_ids_2}] + + + true + Shipped + = + true + shipment[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx + + + + The shipment has been created + + Assertion.response_data + false + 2 + + + + + + + + + + 1 + false + 1 + ${adminCustomerManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Customer Management"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + true + customer_listing + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 20 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + + X-Requested-With + XMLHttpRequest + + + + + + + + + + true + customer_listing + = + true + namespace + + + true + Lastname + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 20 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + + X-Requested-With + XMLHttpRequest + + + + + + false + customer_edit_url_path + actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/", + /customer/index/edit/id/$2$/ + + 0 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + customer_edit_url_path + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}${customer_edit_url_path} + GET + true + false + true + false + false + + + + + + Customer Information + + Assertion.response_data + false + 2 + + + + false + admin_customer_entity_id + "entity_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_website_id + "website_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_firstname + "firstname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_lastname + "lastname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_email + "email":"([^\@]+@[^.]+.[^"]+)" + $1$ + + 1 + + + + false + admin_customer_group_id + "group_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_store_id + "store_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_created_at + "created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_updated_at + "updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_is_active + "is_active":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_disable_auto_group_change + "disable_auto_group_change":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_created_in + "created_in":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_dob + "dob":"(\d+)-(\d+)-(\d+)" + $2$/$3$/$1$ + + 1 + + + + false + admin_customer_default_billing + "default_billing":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_default_shipping + "default_shipping":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_gender + "gender":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_failures_num + "failures_num":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_address_entity_id + "address":\{"\d+":{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}" + $1$ + + 1 + + + + false + admin_customer_address_created_at + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_updated_at + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_is_active + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_address_city + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_country_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_firstname + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_lastname + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_postcode + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_region + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_region_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_street + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\] + $1$ + + 1 + + + + false + admin_customer_address_telephone + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_customer_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)" + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_entity_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_website_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_firstname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_lastname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_email + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_group_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_store_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_updated_at + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_is_active + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_disable_auto_group_change + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_created_in + + + + + ^\d+/\d+/\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_dob + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_default_billing + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_default_shipping + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_gender + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_failures_num + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_entity_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_updated_at + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_is_active + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_city + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_country_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_firstname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_lastname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_postcode + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_region + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_region_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_street + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_telephone + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_customer_id + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_customer_entity_id} + = + true + customer[entity_id] + + + true + ${admin_customer_website_id} + = + true + customer[website_id] + + + true + ${admin_customer_email} + = + true + customer[email] + + + true + ${admin_customer_group_id} + = + true + customer[group_id] + + + true + ${admin_customer_store_id} + = + true + customer[store_id] + + + true + ${admin_customer_created_at} + = + true + customer[created_at] + + + true + ${admin_customer_updated_at} + = + true + customer[updated_at] + + + true + ${admin_customer_is_active} + = + true + customer[is_active] + + + true + ${admin_customer_disable_auto_group_change} + = + true + customer[disable_auto_group_change] + + + true + ${admin_customer_created_in} + = + true + customer[created_in] + + + true + + = + true + customer[prefix] + + + true + ${admin_customer_firstname} 1 + = + true + customer[firstname] + + + true + + = + true + customer[middlename] + + + true + ${admin_customer_lastname} 1 + = + true + customer[lastname] + + + true + + = + true + customer[suffix] + + + true + ${admin_customer_dob} + = + true + customer[dob] + + + true + ${admin_customer_default_billing} + = + true + customer[default_billing] + + + true + ${admin_customer_default_shipping} + = + true + customer[default_shipping] + + + true + + = + true + customer[taxvat] + + + true + ${admin_customer_gender} + = + true + customer[gender] + + + true + ${admin_customer_failures_num} + = + true + customer[failures_num] + + + true + ${admin_customer_store_id} + = + true + customer[sendemail_store_id] + + + true + ${admin_customer_address_entity_id} + = + true + address[${admin_customer_address_entity_id}][entity_id] + + + true + ${admin_customer_address_created_at} + = + true + address[${admin_customer_address_entity_id}][created_at] + + + true + ${admin_customer_address_updated_at} + = + true + address[${admin_customer_address_entity_id}][updated_at] + + + true + ${admin_customer_address_is_active} + = + true + address[${admin_customer_address_entity_id}][is_active] + + + true + ${admin_customer_address_city} + = + true + address[${admin_customer_address_entity_id}][city] + + + true + + = + true + address[${admin_customer_address_entity_id}][company] + + + true + ${admin_customer_address_country_id} + = + true + address[${admin_customer_address_entity_id}][country_id] + + + true + ${admin_customer_address_firstname} + = + true + address[${admin_customer_address_entity_id}][firstname] + + + true + ${admin_customer_address_lastname} + = + true + address[${admin_customer_address_entity_id}][lastname] + + + true + + = + true + address[${admin_customer_address_entity_id}][middlename] + + + true + ${admin_customer_address_postcode} + = + true + address[${admin_customer_address_entity_id}][postcode] + + + true + + = + true + address[${admin_customer_address_entity_id}][prefix] + + + true + ${admin_customer_address_region} + = + true + address[${admin_customer_address_entity_id}][region] + + + true + ${admin_customer_address_region_id} + = + true + address[${admin_customer_address_entity_id}][region_id] + + + true + ${admin_customer_address_street} + = + true + address[${admin_customer_address_entity_id}][street][0] + + + true + + = + true + address[${admin_customer_address_entity_id}][street][1] + + + true + + = + true + address[${admin_customer_address_entity_id}][suffix] + + + true + ${admin_customer_address_telephone} + = + true + address[${admin_customer_address_entity_id}][telephone] + + + true + + = + true + address[${admin_customer_address_entity_id}][vat_id] + + + true + ${admin_customer_address_customer_id} + = + true + address[${admin_customer_address_entity_id}][customer_id] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_billing] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_shipping] + + + true + + = + true + address[new_0][prefix] + + + true + John + = + true + address[new_0][firstname] + + + true + + = + true + address[new_0][middlename] + + + true + Doe + = + true + address[new_0][lastname] + + + true + + = + true + address[new_0][suffix] + + + true + Test Company + = + true + address[new_0][company] + + + true + Folsom + = + true + address[new_0][city] + + + true + 95630 + = + true + address[new_0][postcode] + + + true + 1234567890 + = + true + address[new_0][telephone] + + + true + + = + true + address[new_0][vat_id] + + + true + false + = + true + address[new_0][default_billing] + + + true + false + = + true + address[new_0][default_shipping] + + + true + 123 Main + = + true + address[new_0][street][0] + + + true + + = + true + address[new_0][street][1] + + + true + + = + true + address[new_0][region] + + + true + US + = + true + address[new_0][country_id] + + + true + 12 + = + true + address[new_0][region_id] + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index/validate/ + POST + true + false + true + false + false + + + + + + 200 + + Assertion.response_code + false + 16 + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_customer_entity_id} + = + true + customer[entity_id] + + + true + ${admin_customer_website_id} + = + true + customer[website_id] + + + true + ${admin_customer_email} + = + true + customer[email] + + + true + ${admin_customer_group_id} + = + true + customer[group_id] + + + true + ${admin_customer_store_id} + = + true + customer[store_id] + + + true + ${admin_customer_created_at} + = + true + customer[created_at] + + + true + ${admin_customer_updated_at} + = + true + customer[updated_at] + + + true + ${admin_customer_is_active} + = + true + customer[is_active] + + + true + ${admin_customer_disable_auto_group_change} + = + true + customer[disable_auto_group_change] + + + true + ${admin_customer_created_in} + = + true + customer[created_in] + + + true + + = + true + customer[prefix] + + + true + ${admin_customer_firstname} 1 + = + true + customer[firstname] + + + true + + = + true + customer[middlename] + + + true + ${admin_customer_lastname} 1 + = + true + customer[lastname] + + + true + + = + true + customer[suffix] + + + true + ${admin_customer_dob} + = + true + customer[dob] + + + true + ${admin_customer_default_billing} + = + true + customer[default_billing] + + + true + ${admin_customer_default_shipping} + = + true + customer[default_shipping] + + + true + + = + true + customer[taxvat] + + + true + ${admin_customer_gender} + = + true + customer[gender] + + + true + ${admin_customer_failures_num} + = + true + customer[failures_num] + + + true + ${admin_customer_store_id} + = + true + customer[sendemail_store_id] + + + true + ${admin_customer_address_entity_id} + = + true + address[${admin_customer_address_entity_id}][entity_id] + + + + true + ${admin_customer_address_created_at} + = + true + address[${admin_customer_address_entity_id}][created_at] + + + true + ${admin_customer_address_updated_at} + = + true + address[${admin_customer_address_entity_id}][updated_at] + + + true + ${admin_customer_address_is_active} + = + true + address[${admin_customer_address_entity_id}][is_active] + + + true + ${admin_customer_address_city} + = + true + address[${admin_customer_address_entity_id}][city] + + + true + + = + true + address[${admin_customer_address_entity_id}][company] + + + true + ${admin_customer_address_country_id} + = + true + address[${admin_customer_address_entity_id}][country_id] + + + true + ${admin_customer_address_firstname} + = + true + address[${admin_customer_address_entity_id}][firstname] + + + true + ${admin_customer_address_lastname} + = + true + address[${admin_customer_address_entity_id}][lastname] + + + true + + = + true + address[${admin_customer_address_entity_id}][middlename] + + + true + ${admin_customer_address_postcode} + = + true + address[${admin_customer_address_entity_id}][postcode] + + + true + + = + true + address[${admin_customer_address_entity_id}][prefix] + + + true + ${admin_customer_address_region} + = + true + address[${admin_customer_address_entity_id}][region] + + + true + ${admin_customer_address_region_id} + = + true + address[${admin_customer_address_entity_id}][region_id] + + + true + ${admin_customer_address_street} + = + true + address[${admin_customer_address_entity_id}][street][0] + + + true + + = + true + address[${admin_customer_address_entity_id}][street][1] + + + true + + = + true + address[${admin_customer_address_entity_id}][suffix] + + + true + ${admin_customer_address_telephone} + = + true + address[${admin_customer_address_entity_id}][telephone] + + + true + + = + true + address[${admin_customer_address_entity_id}][vat_id] + + + true + ${admin_customer_address_customer_id} + = + true + address[${admin_customer_address_entity_id}][customer_id] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_billing] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_shipping] + + + true + + = + true + address[new_0][prefix] + + + true + John + = + true + address[new_0][firstname] + + + true + + = + true + address[new_0][middlename] + + + true + Doe + = + true + address[new_0][lastname] + + + true + + = + true + address[new_0][suffix] + + + true + Test Company + = + true + address[new_0][company] + + + true + Folsom + = + true + address[new_0][city] + + + true + 95630 + = + true + address[new_0][postcode] + + + true + 1234567890 + = + true + address[new_0][telephone] + + + true + + = + true + address[new_0][vat_id] + + + true + false + = + true + address[new_0][default_billing] + + + true + false + = + true + address[new_0][default_shipping] + + + true + 123 Main + = + true + address[new_0][street][0] + + + true + + = + true + address[new_0][street][1] + + + true + + = + true + address[new_0][region] + + + true + US + = + true + address[new_0][country_id] + + + true + 12 + = + true + address[new_0][region_id] + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index/save/ + POST + true + false + true + true + false + + + + + + You saved the customer. + + Assertion.response_data + false + 2 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))} + + + + + + + + + 1 + false + 1 + ${adminCMSManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin CMS Management"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/ + GET + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/new + GET + true + false + true + false + false + + + + + + + + true + <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + content + + + true + + = + true + content_heading + + + true + ${admin_form_key} + = + true + form_key + + + true + + = + true + identifier + + + true + 1 + = + true + is_active + + + true + + = + true + layout_update_xml + + + true + + = + true + meta_description + + + true + + = + true + meta_keywords + + + true + + = + true + meta_title + + + false + {} + = + true + nodes_data + + + true + + = + true + node_ids + + + true + + = + true + page_id + + + true + 1column + = + true + page_layout + + + true + 0 + = + true + store_id[0] + + + true + CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + title + + + true + 0 + = + true + website_root + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/save/ + POST + true + false + true + false + false + + + + + + You saved the page. + + Assertion.response_data + false + 16 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))} + + + + + + + + + 1 + false + 1 + ${adminAccountManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Account management"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/history/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_orders.jmx + + + + <title>My Orders</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_orders.jmx + "${orderId}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/view/order_id/${orderId} + GET + true + false + true + false + false + + + + + + <title>Order # + + Assertion.response_data + false + 2 + + + + false + shipment_tab + sales/order/shipment/order_id/(\d+)..Order Shipments + $1$ + NOT_FOUND + 1 + + + + + May not have shipped + "${shipment_tab}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/shipment/order_id/${orderId} + GET + true + false + true + false + false + + + + + + Track this shipment + + Assertion.response_data + false + 2 + + + + false + popupLink + popupWindow": {"windowURL":"([^'"]+)", + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${popupLink} + GET + true + false + true + false + false + + + + + + <title>Tracking Information</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/customer/products + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx + + + + <title>My Downloadable Products</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + false + linkId + downloadable/download/link/id/(\d+)/ + $1$ + + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_downloadables.jmx + "${orderId}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/view/order_id/${orderId} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx + + + + <title>Order # + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/download/link/id/${linkId} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/download_product.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path}wishlist + GET + true + false + true + false + false + + + + + + <title>My Wish List</title> + + Assertion.response_data + false + 2 + + + + false + wishlistId + wishlist/index/update/wishlist_id/([^'"]+)/ + $1$ + + 1 + mpaf/tool/fragments/ce/account_management/my_wish_list.jmx + + + + false + buttonTitle + Update Wish List + FOUND + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_wishlist.jmx + "${buttonTitle}" === "FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/share_wish_list.jmx + + + + <title>Wish List Sharing</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + true + + + true + ${customer_email} + = + true + emails + + + true + [TEST] See my wishlist!!! + = + true + message + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/send_wish_list.jmx + + + + <title>My Wish List</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + + + + 1 + false + 1 + ${browseProductGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Browse Product Grid"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + + vars.put("gridEntityType" , "Product"); + + pagesCount = parseInt(vars.get("products_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "product_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "price"); + vars.put("grid_sort_field_3", "attribute_set_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + 1 + false + 1 + ${browseOrderGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Browse Order Grid"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + + vars.put("gridEntityType" , "Order"); + + pagesCount = parseInt(vars.get("orders_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "sales_order_grid"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text")); + vars.put("grid_filter_field", "status"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "increment_id"); + vars.put("grid_sort_field_2", "created_at"); + vars.put("grid_sort_field_3", "billing_name"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + continue + + false + ${loops} + + ${csrPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${adminReturnsManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Returns Management"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + + + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; + + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); + + + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } + + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + invoice[items][${item_ids_1}] + + + true + 1 + = + true + invoice[items][${item_ids_2}] + + + true + Invoiced + = + true + invoice[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx + + + + New Memo + + Assertion.response_data + false + 2 + + + + + + 1 + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_submit.jmx + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + creditmemo[items][${item_ids_1}][qty] + + + true + 1 + = + true + creditmemo[items][${item_ids_2}][qty] + + + true + 1 + = + true + creditmemo[do_offline] + + + true + Credit Memo added + = + true + creditmemo[comment_text] + + + true + 10 + = + true + creditmemo[shipping_amount] + + + true + 0 + = + true + creditmemo[adjustment_positive] + + + true + 0 + = + true + creditmemo[adjustment_negative] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ + POST + true + false + true + false + false + + + + + + You created the credit memo + + Assertion.response_data + false + 2 + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + creditmemo[items][${item_ids_1}][qty] + + + true + 1 + = + true + creditmemo[do_offline] + + + true + Credit Memo added + = + true + creditmemo[comment_text] + + + true + 10 + = + true + creditmemo[shipping_amount] + + + true + 0 + = + true + creditmemo[adjustment_positive] + + + true + 0 + = + true + creditmemo[adjustment_negative] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ + POST + true + false + true + false + false + + + + + + You created the credit memo + + Assertion.response_data + false + 2 + + + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))} + mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx + + + + + + + + 1 + false + 1 + ${browseCustomerGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Browse Customer Grid"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + + vars.put("gridEntityType" , "Customer"); + + pagesCount = parseInt(vars.get("customers_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "customer_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "group_id"); + vars.put("grid_sort_field_3", "billing_country_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + 1 + false + 1 + ${adminCreateOrderPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Create Order"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_url_key", simpleList.get("url_key")); +vars.put("simple_product_1_name", simpleList.get("title")); +vars.put("simple_product_1_id", simpleList.get("id")); + +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_url_key", simpleList.get("url_key")); +vars.put("simple_product_2_name", simpleList.get("title")); +vars.put("simple_product_2_id", simpleList.get("id")); + +number = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_sku", configurableList.get("sku")); +vars.put("configurable_attribute_id", configurableList.get("attribute_id")); +vars.put("configurable_option_id", configurableList.get("attribute_option_id")); + + +customers_index = 0; +if (!props.containsKey("customer_ids_index")) { + props.put("customer_ids_index", customers_index); +} + +try { + customers_index = props.get("customer_ids_index"); + customers_list = props.get("customer_ids_list"); + + if (customers_index == customers_list.size()) { + customers_index=0; + } + vars.put("customer_id", customers_list.get(customers_index)); + props.put("customer_ids_index", ++customers_index); +} +catch (java.lang.Exception e) { + log.error("Caught Exception in 'Admin Create Order' thread."); + SampleResult.setStopThread(true); +} + + + true + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/start/ + GET + true + false + true + false + false + + Detected the start of a redirect chain + + + + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + + + + true + item[${simple_product_1_id}][qty] + 1 + = + true + + + true + item[${simple_product_2_id}][qty] + 1 + = + true + + + true + item[${configurable_product_1_id}][qty] + 1 + = + true + + + true + customer_id + ${customer_id} + = + true + + + true + store_id + 1 + = + true + + + true + currency_id + + = + true + + + true + form_key + ${admin_form_key} + = + true + + + true + payment[method] + checkmo + = + true + + + true + reset_shipping + 1 + = + true + + + true + json + 1 + = + true + + + true + as_js_varname + iFrameResponse + = + true + + + true + form_key + ${admin_form_key} + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + false + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + + ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]); + } +} catch (Exception e) { + log.error("error???", e); +} + + + + + + + + true + collect_shipping_rates + 1 + = + true + + + true + customer_id + ${customer_id} + = + true + + + true + store_id + 1 + = + true + + + true + currency_id + false + = + true + + + true + form_key + ${admin_form_key} + = + true + + + true + payment[method] + checkmo + = + true + + + true + json + true + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true + POST + true + false + true + false + false + + + + + + shipping_method + Flat Rate + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + limit + 20 + = + true + + + true + entity_id + + = + true + + + true + name + + = + true + + + true + email + + = + true + + + true + Telephone + + = + true + + + true + billing_postcode + + = + true + + + true + billing_country_id + + = + true + + + true + billing_regione + + = + true + + + true + store_name + + = + true + + + true + page + 1 + = + true + + + true + order[currency] + USD + = + true + + + true + sku + + = + true + + + true + qty + + = + true + + + true + limit + 20 + = + true + + + true + entity_id + + = + true + + + true + name + + = + true + + + true + sku + + = + true + + + true + price[from] + + = + true + + + true + price[to] + + = + true + + + true + in_products + + = + true + + + true + page + 1 + = + true + + + true + coupon_code + + = + true + + + true + order[account][group_id] + 1 + = + true + + + true + order[account][email] + user_${customer_id}@example.com + = + true + + + true + order[billing_address][customer_address_id] + + = + true + + + true + order[billing_address][prefix] + + = + true + + + true + order[billing_address][firstname] + Anthony + = + true + + + true + order[billing_address][middlename] + + = + true + + + true + order[billing_address][lastname] + Nealy + = + true + + + true + order[billing_address][suffix] + + = + true + + + true + order[billing_address][company] + + = + true + + + true + order[billing_address][street][0] + 123 Freedom Blvd. #123 + = + true + + + true + order[billing_address][street][1] + + = + true + + + true + order[billing_address][city] + Fayetteville + = + true + + + true + order[billing_address][country_id] + US + = + true + + + true + order[billing_address][region] + + = + true + + + true + order[billing_address][region_id] + 5 + = + true + + + true + order[billing_address][postcode] + 123123 + = + true + + + true + order[billing_address][telephone] + 022-333-4455 + = + true + + + true + order[billing_address][fax] + + = + true + + + true + order[billing_address][vat_id] + + = + true + + + true + shipping_same_as_billing + on + = + true + + + true + payment[method] + checkmo + = + true + + + true + order[shipping_method] + flatrate_flatrate + = + true + + + true + order[comment][customer_note] + + = + true + + + true + order[comment][customer_note_notify] + 1 + = + true + + + true + order[send_confirmation] + 1 + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/save/ + POST + true + false + true + true + false + + Detected the start of a redirect chain + + + + false + order_id + ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/ + $1$ + + 1 + + + + false + order_item_1 + order_item_(\d+)_title + $1$ + + 1 + + + + false + order_item_2 + order_item_(\d+)_title + $1$ + + 2 + + + + false + order_item_3 + order_item_(\d+)_title + $1$ + + 3 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_2 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_3 + + + + + You created the order. + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + invoice[items][${order_item_1}] + 1 + = + true + + + true + invoice[items][${order_item_2}] + 1 + = + true + + + true + invoice[items][${order_item_3}] + 1 + = + true + + + true + invoice[comment_text] + + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + + The invoice has been created. + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + shipment[items][${order_item_1}] + 1 + = + true + + + true + shipment[items][${order_item_2}] + 1 + = + true + + + true + shipment[items][${order_item_3}] + 1 + = + true + + + true + shipment[comment_text] + + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + + The shipment has been created. + + Assertion.response_data + false + 2 + + + + + + + + + + + + continue + + false + ${loops} + + ${apiPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + + Authorization + Bearer ${admin_token} + + + mpaf/tool/fragments/ce/api/header_manager.jmx + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Create Customer"); + + true + + + + + true + + + + false + { + "customer": { + + "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com", + "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "lastname": "Doe" + }, + "password": "test@123" +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/customers + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_customer.jmx + + + customer_id + $.id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + customer_id + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/customers/${customer_id} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_customer.jmx + + + $.id + ${customer_id} + true + false + false + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Product Attribute Management"); + + true + + + + + true + + + + false + { + "attributeSet": { + "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "sort_order": 500 + }, + "skeletonId": "4" +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attribute-sets/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_attribute_set.jmx + + + attribute_set_id + $.attribute_set_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + attribute_set_id + + + + + + true + + + + false + { + "group": { + "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attribute_set_id": ${attribute_set_id} + } +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attribute-sets/groups + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_attribute_group.jmx + + + attribute_group_id + $.attribute_group_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + attribute_set_id + + + + + + true + + + + false + { + "attribute": { + "attribute_code": "attr_code_${__time()}", + "frontend_labels": [ + { + "store_id": 0, + "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}" + } + ], + "default_value": "default value", + "frontend_input": "textarea", + "is_required": true + } +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attributes/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_attribute.jmx + + + attribute_id + $.attribute_id + + + BODY + + + + attribute_code + $.attribute_code + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + attribute_id + + + + + ^[a-z0-9-_]+$ + + Assertion.response_data + false + 1 + variable + attribute_code + + + + + + true + + + + false + { + "attributeSetId": "${attribute_set_id}", + "attributeGroupId": "${attribute_group_id}", + "attributeCode": "${attribute_code}", + "sortOrder": 3 +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attribute-sets/attributes + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx + + + $ + (\d+) + true + false + false + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Product Management"); + + true + + + + + true + + + + false + { + "product": { + "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attributeSetId": 4 + } +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx + + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_product_id + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_stock_item_id + + + + + + true + + + + false + { + "stock_item": { + "manage_stock": true, + "is_in_stock": true, + "qty": ${simple_product_id} + } + } + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id} + PUT + true + false + true + false + false + + mpaf/tool/fragments/ce/api/update_product_stock_info.jmx + + + $ + ${simple_stock_item_id} + true + false + false + + + + + + true + + + + true + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/${simple_product_sku} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product.jmx + + + $.sku + ${simple_product_sku} + true + false + false + + + + $.id + ${simple_product_id} + true + false + false + + + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + ${simple_product_id} + true + false + false + + + + + + true + + + + false + { + "product": { + "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "visibility": "4", + "type_id": "simple", + "price": "3.62", + "status": "1", + "attribute_set_id": "4", + "custom_attributes": [ + { + "attribute_code": "cost", + "value": "" + }, + { + "attribute_code": "description", + "value": "Description" + } + ], + "extension_attributes":{ + "stock_item":{ + "manage_stock": true, + "is_in_stock": true, + "qty":"100" + } + } , + "media_gallery_entries": + [{ + "id": null, + "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "position":1, + "disabled":false, + "media_type":"image", + "types":["image"], + "content":{ + "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z", + "type": "image/jpeg", + "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg" + } + } + ] + } +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx + + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_product_id + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_stock_item_id + + + + + + true + + + + true + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/${simple_product_sku} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx + + + $.sku + ${simple_product_sku} + true + false + false + + + + $.id + ${simple_product_id} + true + false + false + + + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + 100 + true + false + false + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Process Orders"); + + true + + + + + // Each thread gets an equal number of orders, based on how many orders are available. + + int apiProcessOrders = Integer.parseInt("${apiProcessOrders}"); + if (apiProcessOrders > 0) { + ordersPerThread = apiProcessOrders; + } else { + ordersPerThread = 1; + } + + + threadNum = ${__threadNum}; + vars.put("ordersPerThread", String.valueOf(ordersPerThread)); + vars.put("threadNum", String.valueOf(threadNum)); + + + + + false + mpaf/tool/fragments/ce/api/process_orders/setup.jmx + + + + + + + true + status + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + Pending + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + ${ordersPerThread} + = + true + searchCriteria[pageSize] + + + true + ${threadNum} + = + true + searchCriteria[current_page] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/orders + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx + + + entity_ids + $.items[*].entity_id + + + BODY + + + + + + entity_ids + order_id + true + mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/order/${order_id}/invoice + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx + + + + "\d+" + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/order/${order_id}/ship + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx + + + + "\d+" + + Assertion.response_data + false + 2 + + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Catalog Browsing"); + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_categories.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + search_category_id + $.id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + search_category_id + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories/${search_category_id} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_category.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + + + + + true + 20 + = + true + searchCriteria[page_size] + true + + + true + 1 + = + true + searchCriteria[current_page] + true + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_products.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Search"); + + true + + + + + + + + true + quick_search_container + = + true + searchCriteria[request_name] + + + true + search_term + = + true + searchCriteria[filter_groups][0][filters][0][field] + + + true + Simple + = + true + searchCriteria[filter_groups][0][filters][0][value] + + + true + 20 + = + true + searchCriteria[page_size] + + + true + 1 + = + true + searchCriteria[current_page] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/search + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx + + + $.total_count + 0 + true + false + true + + + + search_product_id + $.items[0].id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + search_product_id + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Checkout"); + + true + + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_quote.jmx + + + quote_id + $ + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + quote_id + + + + + + true + + + + false + { + "cartItem": { + "sku": "${product_sku}", + "qty":"1", + "quote_id":"${quote_id}" + } +} + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx + + + + $.sku + ${product_sku} + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx + + + $[0].sku + ${product_sku} + true + false + false + + + + + + true + + + + false + { + "storeId": 1 +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_guest_cart.jmx + + + cart_id + $ + + + BODY + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + cart_id + + + + + + true + + + + false + { + "cartItem": { + "sku": "${product_sku}", + "qty":"1", + "quote_id":"${cart_id}" + } +} + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/items + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx + + + $.quote_id + ^[a-z0-9-]+$ + true + false + false + + + + + + true + + + + false + { + "sender": "John Doe", + "recipient": "Jane Roe", + "giftMessage": "Gift Message Text" +} + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx + + + $ + true + true + false + false + + + + + + true + + + + false + {"address":{"country_id":"US","postcode":"95630"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "available":true + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + {"payment_methods": + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "[0-9]+" + + Assertion.response_data + false + 2 + + + + order_id + $ + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + + + + + + + + continue + + false + ${loops} + + ${othersPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${productGridMassActionPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Product Grid Mass Actions"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 20 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/get_product_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + products_number + $.totalRecords + + + BODY + + + + false + + + var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var productsTotal = Integer.parseInt(vars.get("products_number")); +var pageCountProducts = Math.round(productsTotal/productsPageSize); + +vars.put("pages_count_product", String.valueOf(pageCountProducts)); + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var totalNumberOfPages = Integer.parseInt(vars.get("pages_count_product")); + +// Randomly select a page. +var randomProductsPage = Math.floor((Math.random() * totalNumberOfPages) + 1); + +// Get the first and last product id on that page. +var lastProductIdOnPage = randomProductsPage * productsPageSize; +var firstProductIdOnPage = lastProductIdOnPage - productsPageSize + 1; + +var randomProductId1 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId2 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId3 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; + +vars.put("page_number", String.valueOf(randomProductsPage)); +vars.put("productId1", String.valueOf(randomProductId1)); +vars.put("productId2", String.valueOf(randomProductId2)); +vars.put("productId3", String.valueOf(randomProductId3)); + +var randomQuantity = Math.floor(Math.random() * 1000) + 1; +var randomPrice = Math.floor(Math.random() * 500) + 10; +var randomVisibility = Math.floor(random.nextInt(4)) + 1; + +vars.put("quantity", String.valueOf(randomQuantity)); +vars.put("price", String.valueOf(randomPrice)); +vars.put("visibility", String.valueOf(randomVisibility)); + + + + + + false + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/setup.jmx + + + + + + + true + ${admin_form_key} + = + true + form_key + true + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${products_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_grid.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${productId1} + = + true + selected[0] + + + true + ${productId2} + = + true + selected[1] + + + true + ${productId3} + = + true + selected[2] + true + + + true + true + = + true + filters[placeholder] + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + product_listing + = + true + namespace + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/edit + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_update_attributes.jmx + + + + Update Attributes + + Assertion.response_data + false + 2 + + + + + + + + + true + true + = + true + isAjax + true + + + true + ${admin_form_key} + = + true + form_key + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + true + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + true + + + true + ${price} + = + true + attributes[price] + + + true + ${visibility} + = + true + attributes[visibility] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/validate + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/change_attributes.jmx + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + + + true + on + = + true + toggle_price + true + + + true + ${price} + = + true + attributes[price] + + + true + on + = + true + toggle_price + true + + + true + ${visibility} + = + true + attributes[visibility] + + + true + on + = + true + toggle_visibility + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/save/store/0/active_tab/attributes + POST + true + false + true + true + false + + + + + + were updated. + + Assertion.response_data + false + 2 + + + + + + + + + 1 + false + 1 + ${importProductsPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Import Products"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + vars.put("entity", "catalog_product"); +String behavior = "${adminImportProductBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportProductFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_products/setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/import.jmx + + + + Import Settings + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + + + true + 10 + = + true + allowed_error_count + + + true + , + = + true + _import_field_separator + + + true + , + = + true + _import_multiple_value_separator + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/validate + POST + true + false + true + false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + + false + + mpaf/tool/fragments/ce/common/import_validate.jmx + + + + File is valid! To start import process + + Assertion.response_data + false + 16 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + false + + + true + 10 + = + true + allowed_error_count + false + + + true + , + = + true + _import_field_separator + false + + + true + , + = + true + _import_multiple_value_separator + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/start + POST + true + false + true + false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + + false + + mpaf/tool/fragments/ce/common/import_save.jmx + + + + Import successfully done + + Assertion.response_data + false + 16 + + + + + + + + + 1 + false + 1 + ${importCustomersPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Import Customers"); + + true + + + + + vars.put("entity", "customer"); +String behavior = "${adminImportCustomerBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportCustomerFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_customers/setup.jmx + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/import.jmx + + + + Import Settings + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + + + true + 10 + = + true + allowed_error_count + + + true + , + = + true + _import_field_separator + + + true + , + = + true + _import_multiple_value_separator + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/validate + POST + true + false + true + false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + + false + + mpaf/tool/fragments/ce/common/import_validate.jmx + + + + File is valid! To start import process + + Assertion.response_data + false + 16 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + false + + + true + 10 + = + true + allowed_error_count + false + + + true + , + = + true + _import_field_separator + false + + + true + , + = + true + _import_multiple_value_separator + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/start + POST + true + false + true + false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + + false + + mpaf/tool/fragments/ce/common/import_save.jmx + + + + Import successfully done + + Assertion.response_data + false + 16 + + + + + + + + + 1 + false + 1 + ${exportProductsPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Export Products"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/export/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/export.jmx + + + + Export Settings + + Assertion.response_data + false + 2 + + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + attribute_code + + = + true + + + true + export_filter[allow_message][] + , + = + true + + + true + export_filter[allow_open_amount] + + = + true + + + true + export_filter[category_ids] + 24,25,26,27,28,29,30 + = + true + + + true + export_filter[configurable_variations] + + = + true + + + true + export_filter[cost][] + , + = + true + + + true + export_filter[country_of_manufacture] + + = + true + + + true + export_filter[created_at] + + = + true + + + true + export_filter[custom_design] + + = + true + + + true + export_filter[custom_design_from][] + , + = + true + + + true + export_filter[custom_design_to][] + , + = + true + + + true + export_filter[custom_layout_update] + + = + true + + + true + export_filter[description] + + = + true + + + true + export_filter[email_template] + + = + true + + + true + export_filter[gallery] + + = + true + + + true + export_filter[gift_message_available] + + = + true + + + true + export_filter[gift_wrapping_available] + + = + true + + + true + export_filter[gift_wrapping_price][] + , + = + true + + + true + export_filter[group_price][] + , + = + true + + + true + export_filter[has_options] + + = + true + + + true + export_filter[image] + + = + true + + + true + export_filter[image_label] + + = + true + + + true + export_filter[is_redeemable][] + , + = + true + + + true + export_filter[is_returnable] + + = + true + + + true + export_filter[lifetime][] + , + = + true + + + true + export_filter[links_exist][] + , + = + true + + + true + export_filter[links_purchased_separately][] + , + = + true + + + true + export_filter[links_title] + + = + true + + + true + export_filter[media_gallery] + + = + true + + + true + export_filter[meta_description] + + = + true + + + true + export_filter[meta_keyword] + + = + true + + + true + export_filter[meta_title] + + = + true + + + true + export_filter[minimal_price][] + , + = + true + + + true + export_filter[msrp][] + , + = + true + + + true + export_filter[msrp_display_actual_price_type] + + = + true + + + true + export_filter[name] + + = + true + + + true + export_filter[news_from_date][] + , + = + true + + + true + export_filter[news_to_date][] + , + = + true + + + true + export_filter[old_id][] + , + = + true + + + true + export_filter[open_amount_max][] + , + = + true + + + true + export_filter[open_amount_min][] + , + = + true + + + true + export_filter[options_container] + + = + true + + + true + export_filter[page_layout] + + = + true + + + true + export_filter[price][] + , + = + true + + + true + export_filter[price_type][] + , + = + true + + + true + export_filter[price_view] + + = + true + + + true + export_filter[quantity_and_stock_status] + + = + true + + + true + export_filter[related_tgtr_position_behavior][] + , + = + true + + + true + export_filter[related_tgtr_position_limit][] + , + = + true + + + true + export_filter[required_options] + + = + true + + + true + export_filter[samples_title] + + = + true + + + true + export_filter[shipment_type][] + , + = + true + + + true + export_filter[short_description] + + = + true + + + true + export_filter[sku] + + = + true + + + true + export_filter[sku_type][] + , + = + true + + + true + export_filter[small_image] + + = + true + + + true + export_filter[small_image_label] + + = + true + + + true + export_filter[special_from_date][] + , + = + true + + + true + export_filter[special_price][] + , + = + true + + + true + export_filter[special_to_date][] + , + = + true + + + true + export_filter[status] + + = + true + + + true + export_filter[tax_class_id] + = true - product - - false + + true + export_filter[thumbnail] = true - related_product - - false - 1 + + true + export_filter[thumbnail_label] + = true - qty - - false - ${form_key} + + true + export_filter[tier_price][] + , = true - form_key - - - - - - - - - ${base_path}checkout/cart/add/uenc/${simple_product_2_uenc}/product/${simple_product_2_id}/ - POST - true - false - true - false - false - - - - - - - X-Requested-With - XMLHttpRequest - - - - - - - - - - + true - cart,messages + export_filter[updated_at] + = true - sections - true - + true - true + export_filter[upsell_tgtr_position_behavior][] + , = true - update_section_id - true - - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + + true + export_filter[upsell_tgtr_position_limit][] + , = true - _ - true - - - - - - - - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - - X-Requested-With - XMLHttpRequest - - - - - - - - You added ${simple_product_2_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - This product is out of stock. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":2 - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - - - - - - - ${base_path}${configurable_product_1_url_key}${url_suffix} - GET - true - false - true - false - false - - - - - - <title>${configurable_product_1_name} - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - - false - ${configurable_product_1_id} + + true + export_filter[url_key] + = true - product - - false + + true + export_filter[url_path] = true - related_product - - false - 1 + + true + export_filter[use_config_allow_message][] + , = true - qty - - false - ${configurable_option_id} + + true + export_filter[use_config_email_template][] + , = true - super_attribute[${configurable_attribute_id}] - - false - ${configurable_option_id_2} + + true + export_filter[use_config_is_redeemable][] + , = true - super_attribute[${configurable_attribute_id_2}] - - false - ${form_key} + + true + export_filter[use_config_lifetime][] + , = true - form_key - - - - - - - - - ${base_path}checkout/cart/add/uenc/${configurable_product_1_uenc}/product/${configurable_product_1_id}/ - POST - true - false - true - false - false - - - - - - - X-Requested-With - XMLHttpRequest - - - - - - - - - - + true - cart,messages + export_filter[visibility] + = true - sections - true - + true - true + export_filter[weight][] + , = true - update_section_id - true - - false - ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} + + true + export_filter[weight_type][] + , + = + true + + + true + frontend_label + = true - _ - true @@ -5359,64 +33126,122 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}customer/section/load/ - GET + ${base_path}${admin_path}/admin/export/export/entity/catalog_product/file_format/csv + POST true false true false false - + mpaf/tool/fragments/ce/export_products/export_products.jmx - - - - X-Requested-With - XMLHttpRequest - - - - - - - - You added ${configurable_product_1_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - We don't have as many &quot;${configurable_product_1_name}&quot; as you requested. - - Assertion.response_data - false - 6 - - - \"summary_count\":3 + Simple Product 1 Assertion.response_data false - 2 + 16 + + + - - ${think_time_delay_offset} - ${think_time_deviation} - + + 1 + false + 1 + ${exportCustomersPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Export Customers"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + @@ -5424,9 +33249,9 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}checkout/ + ${base_path}${admin_path} GET true false @@ -5434,73 +33259,27 @@ vars.put("loadType", "Customer"); false false - + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - + - <title>Checkout</title> + Welcome + <title>Magento Admin</title> Assertion.response_data false 2 - - - <title>Shopping Cart</title> - - Assertion.response_data - false - 6 - - - - false - cart_id - "quoteData":{"entity_id":"([^'"]+)", - $1$ - - 1 - - false - form_key + admin_form_key <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ 1 - - false - address_id - "default_billing":"([^'"]+)", - $1$ - - 1 - - - - false - customer_id - "customer_id":([^'",]+), - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - cart_id - - ^.+$ @@ -5509,47 +33288,41 @@ vars.put("loadType", "Customer"); false 1 variable - form_key - - - - - [0-9]+$ - - Assertion.response_data - false - 1 - variable - address_id - - - - - [0-9]+$ - - Assertion.response_data - false - 1 - variable - customer_id + admin_form_key - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - true - + + - - false - {"addressId":"${addressId}"} + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} = + true + login[password] + + + true + ${admin_user} + = + true + login[username] @@ -5557,42 +33330,49 @@ vars.put("loadType", "Customer"); - + ${request_protocol} - ${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/export/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/export.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - "available":true + Export Settings Assertion.response_data false @@ -5601,175 +33381,251 @@ vars.put("loadType", "Customer"); - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - true - + + - - false - {"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + + true + ${admin_form_key} + = + true + form_key + false + + + true + + = + true + attribute_code + true + + + true + + = + true + export_filter[confirmation] + true + + + true + + = + true + export_filter[created_at] + true + + + true + + = + true + export_filter[created_in] + true + + + true + , + = + true + export_filter[default_billing][] + true + + + true + , + = + true + export_filter[default_shipping][] + true + + + true + + = + true + export_filter[disable_auto_group_change] + true + + + true + , + = + true + export_filter[dob][] + true + + + true + + = + true + export_filter[email] + true + + + true + + = + true + export_filter[firstname] + true + + + true + + = + true + export_filter[gender] + true + + + true + + = + true + export_filter[group_id] + true + + + true + + = + true + export_filter[lastname] + true + + + true + + = + true + export_filter[middlename] + true + + + true + + = + true + export_filter[password_hash] + true + + + true + = + true + export_filter[prefix] + true - - - - - - - - - ${base_path}rest/default/V1/carts/mine/shipping-information - POST - true - false - true - false - false - - - - - - - Referer - ${host}${base_path}checkout/onepage + + true + , + = + true + export_filter[reward_update_notification][] + true - - Content-Type - application/json; charset=UTF-8 + + true + , + = + true + export_filter[reward_warning_notification][] + true - - X-Requested-With - XMLHttpRequest + + true + + = + true + export_filter[rp_token] + true - - Accept - application/json + + true + , + = + true + export_filter[rp_token_created_at][] + true - - - - - - {"payment_methods" - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - true - - - - false - {"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":5,"regionCode":"AR","region":"Arkansas","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}} + + true + = + true + export_filter[store_id] + true - - - - - - - - - ${base_path}rest/default/V1/carts/mine/payment-information - POST - true - false - true - false - false - - - - - - - Referer - ${host}${base_path}checkout/onepage + + true + + = + true + export_filter[suffix] + true - - Content-Type - application/json; charset=UTF-8 + + true + + = + true + export_filter[taxvat] + true - - Accept - application/json + + true + + = + true + export_filter[website_id] + true - - X-Requested-With - XMLHttpRequest + + true + + = + true + frontend_label + true - - - - - "[0-9]+" - - Assertion.response_data - false - 2 - - - - - - ${think_time_delay_offset} - ${think_time_deviation} - - - - - - - + ${request_protocol} - ${base_path}checkout/onepage/success/ - GET + ${base_path}${admin_path}/admin/export/export/entity/customer/file_format/csv + POST true false true false false - + mpaf/tool/fragments/ce/export_customers/export_customers.jmx - + - Thank you for your purchase! - Your order number is + user_1@example.com Assertion.response_data false - 2 + 16 - + + + + + stoptest @@ -5783,7 +33639,7 @@ vars.put("loadType", "Customer"); false - + mpaf/tool/fragments/ce/tear_down.jmx "${dashboard_enabled}" == "1" @@ -5794,28 +33650,28 @@ vars.put("loadType", "Customer"); - false + true ${__property(environment)} = true environment - false + true ${start_time} = true startTime - false + true ${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)} = true endTime - false + true ${redis_host} = true @@ -5827,7 +33683,7 @@ vars.put("loadType", "Customer"); - + ${request_protocol} ${base_path}DeploymentEvent.php POST @@ -5869,7 +33725,6 @@ vars.put("loadType", "Customer"); props.remove("category_name"); props.remove("simple_products_list"); props.remove("configurable_products_list"); -props.remove("users"); props.remove("customer_emails_list"); @@ -5878,107 +33733,7 @@ props.remove("customer_emails_list"); - - false - - saveConfig - - - true - true - true - - true - true - true - true - false - true - true - false - false - false - false - false - false - false - false - 0 - true - true - - - - - - - true - true - true - - true - true - true - true - false - true - true - false - false - true - false - false - true - false - false - 0 - true - true - true - true - - - - - - - - false - - saveConfig - - - false - false - false - - false - false - false - false - false - false - false - false - false - false - true - false - false - false - false - 0 - true - true - true - true - - - ${report_save_path}/detailed-urls-report.log - - - - + false saveConfig @@ -6010,8 +33765,8 @@ props.remove("customer_emails_list"); true - ${report_save_path}/summary-report.log - + ${response_time_file_name} + mpaf/tool/fragments/ce/common/aggregate_graph.jmx diff --git a/setup/performance-toolkit/files/downloadable_original.txt b/setup/performance-toolkit/files/downloadable_original.txt new file mode 100644 index 0000000000000..9fbb20e6aa426 --- /dev/null +++ b/setup/performance-toolkit/files/downloadable_original.txt @@ -0,0 +1 @@ +original text \ No newline at end of file diff --git a/setup/performance-toolkit/files/downloadable_sample.txt b/setup/performance-toolkit/files/downloadable_sample.txt new file mode 100644 index 0000000000000..679aa535f6a97 --- /dev/null +++ b/setup/performance-toolkit/files/downloadable_sample.txt @@ -0,0 +1 @@ +sample text \ No newline at end of file diff --git a/setup/performance-toolkit/files/search_terms.csv b/setup/performance-toolkit/files/search_terms.csv new file mode 100644 index 0000000000000..6522526e2e16c --- /dev/null +++ b/setup/performance-toolkit/files/search_terms.csv @@ -0,0 +1,10 @@ +searchTerm,priceTo +Mizuho,1000 +Scotiabank,1000 +Johnson,1000 +Caterpillar,1000 +Eni,1000 +adidas,1000 +Société Générale,1000 +China State Construction,1000 +Deutsche Bank,1000 diff --git a/setup/performance-toolkit/profiles/ce/small.xml b/setup/performance-toolkit/profiles/ce/small.xml index e8905bd9c77de..8ecb4162f4b11 100644 --- a/setup/performance-toolkit/profiles/ce/small.xml +++ b/setup/performance-toolkit/profiles/ce/small.xml @@ -57,6 +57,18 @@ 0 0 + + admin/security/session_lifetime + default + 0 + 7200 + + + admin/security/admin_account_sharing + default + 0 + 1 + carriers/flatrate/active default From ed49c03ea2ab068ee0ec4dc646bb76a1f1652eab Mon Sep 17 00:00:00 2001 From: Michail Slabko Date: Wed, 29 Nov 2017 17:22:51 +0200 Subject: [PATCH 050/555] MAGETWO-83326: Run scenarios on PAT for 2.1 --- setup/performance-toolkit/benchmark.jmx | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index def40ab136cd5..d65ff4a036b7f 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -214,6 +214,11 @@ ${__P(admin_browse_product_filter_text,Product)} = + + apiBasePercentage + ${__P(apiBasePercentage,0)} + = + apiOrderInvoiceShipmentSync ${__P(apiOrderInvoiceShipmentSync,0)} @@ -28825,6 +28830,37 @@ catch (java.lang.Exception e) { mpaf/tool/fragments/_system/thread_group.jmx + + 1 + false + 1 + ${apiBasePercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API"); + + true + + + @@ -30688,6 +30724,8 @@ vars.put("product_sku", product.get("sku")); + + From 13286b77c0bcd7052b276baaa0867624d747acd1 Mon Sep 17 00:00:00 2001 From: Daniel Renaud Date: Mon, 27 Nov 2017 15:03:23 -0600 Subject: [PATCH 051/555] MAGETWO-69577: [Backport for 2.1.x] Auto-generated classes behave differently in unit tests and application - Cherry-pick changes from Magetwo-67626 - Fix generation classes and failing unit tests --- app/autoload.php | 3 - app/bootstrap.php | 3 + .../Model/Plugin/AfterProductLoadTest.php | 2 +- .../Test/Unit/Model/Renderer/RegionTest.php | 4 +- .../Directory/Model/CountryFactory.php | 39 ---- .../Sales/Order/Pdf/Items/CreditmemoTest.php | 93 +++----- .../Paypal/Test/Unit/Model/PayflowproTest.php | 6 +- .../Review/Product/CollectionTest.php | 29 ++- .../Adminhtml/Order/CreditmemoLoaderTest.php | 33 +-- .../Order/CreditmemoDocumentFactoryTest.php | 11 +- .../Order/Invoice/Total/ShippingTest.php | 206 +++++++++--------- .../Test/Unit/Model/Inline/ParserTest.php | 19 +- composer.json | 4 +- dev/tests/unit/framework/autoload.php | 26 ++- .../App/Filesystem/DirectoryList.php | 8 + .../Magento/Framework/Autoload/Populator.php | 10 +- .../Autoload/Test/Unit/PopulatorTest.php | 14 +- .../Code/Generator/InterfaceGenerator.php | 4 +- .../Test/Unit/Relations/RuntimeTest.php | 25 +-- .../ExtensionAttributesGeneratorTest.php | 50 +++++ ...ensionAttributesInterfaceGeneratorTest.php | 51 +++++ .../Unit/Autoloader/FactoryGeneratorTest.php | 50 +++++ .../ExtensionAttributesGenerator.php | 53 +++++ .../ExtensionAttributesInterfaceGenerator.php | 51 +++++ .../ExtensionGeneratorAutoloader.php | 97 --------- .../Unit/Autoloader/FactoryGenerator.php | 49 +++++ .../Autoloader/GeneratedClassesAutoloader.php | 75 +++++++ .../Unit/Autoloader/GeneratorInterface.php | 21 ++ 28 files changed, 631 insertions(+), 405 deletions(-) delete mode 100644 app/code/Magento/Directory/Model/CountryFactory.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesGeneratorTest.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesInterfaceGeneratorTest.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/FactoryGeneratorTest.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesGenerator.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesInterfaceGenerator.php delete mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionGeneratorAutoloader.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/FactoryGenerator.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratedClassesAutoloader.php create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratorInterface.php diff --git a/app/autoload.php b/app/autoload.php index 6fdfcd07fdff1..500f71b8b8a26 100644 --- a/app/autoload.php +++ b/app/autoload.php @@ -35,6 +35,3 @@ } AutoloaderRegistry::registerAutoloader(new ClassLoaderWrapper($composerAutoloader)); - -// Sets default autoload mappings, may be overridden in Bootstrap::create -\Magento\Framework\App\Bootstrap::populateAutoloader(BP, []); diff --git a/app/bootstrap.php b/app/bootstrap.php index eb91654f1fcf4..206ddf69a4dd5 100644 --- a/app/bootstrap.php +++ b/app/bootstrap.php @@ -28,6 +28,9 @@ } require_once __DIR__ . '/autoload.php'; +// Sets default autoload mappings, may be overridden in Bootstrap::create +\Magento\Framework\App\Bootstrap::populateAutoloader(BP, []); + require_once BP . '/app/functions.php'; /* Custom umask value may be provided in optional mage_umask file in root */ diff --git a/app/code/Magento/CatalogInventory/Test/Unit/Model/Plugin/AfterProductLoadTest.php b/app/code/Magento/CatalogInventory/Test/Unit/Model/Plugin/AfterProductLoadTest.php index 28758f4f65018..d2a674a3b0a59 100644 --- a/app/code/Magento/CatalogInventory/Test/Unit/Model/Plugin/AfterProductLoadTest.php +++ b/app/code/Magento/CatalogInventory/Test/Unit/Model/Plugin/AfterProductLoadTest.php @@ -52,7 +52,7 @@ protected function setUp() ->with($productId) ->willReturn($stockItemMock); - $this->productExtensionMock = $this->getMockBuilder('\Magento\Catalog\Api\Data\ProductExtension') + $this->productExtensionMock = $this->getMockBuilder('\Magento\Catalog\Api\Data\ProductExtensionInterface') ->setMethods(['setStockItem']) ->getMock(); $this->productExtensionMock->expects($this->once()) diff --git a/app/code/Magento/Customer/Test/Unit/Model/Renderer/RegionTest.php b/app/code/Magento/Customer/Test/Unit/Model/Renderer/RegionTest.php index a52fd13040d14..baa9fa16e70d0 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Renderer/RegionTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/Renderer/RegionTest.php @@ -14,8 +14,8 @@ class RegionTest extends \PHPUnit_Framework_TestCase public function testRender($regionCollection) { $countryFactoryMock = $this->getMock( - 'Magento\Directory\Model\CountryFactory', - ['create'], + \Magento\Directory\Model\CountryFactory::class, + [], [], '', false diff --git a/app/code/Magento/Directory/Model/CountryFactory.php b/app/code/Magento/Directory/Model/CountryFactory.php deleted file mode 100644 index 223bc7d56dd25..0000000000000 --- a/app/code/Magento/Directory/Model/CountryFactory.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -namespace Magento\Directory\Model; - -class CountryFactory -{ - /** - * @var \Magento\Framework\ObjectManagerInterface - */ - protected $_objectManager; - - /** - * @param \Magento\Framework\ObjectManagerInterface $objectManager - */ - public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager) - { - $this->_objectManager = $objectManager; - } - - /** - * Create new country model - * - * @param array $arguments - * @return \Magento\Directory\Model\Country - */ - public function create(array $arguments = []) - { - return $this->_objectManager->create('Magento\Directory\Model\Country', $arguments, false); - } -} diff --git a/app/code/Magento/Downloadable/Test/Unit/Model/Sales/Order/Pdf/Items/CreditmemoTest.php b/app/code/Magento/Downloadable/Test/Unit/Model/Sales/Order/Pdf/Items/CreditmemoTest.php index 2e381a471b07b..48e915bb75c63 100644 --- a/app/code/Magento/Downloadable/Test/Unit/Model/Sales/Order/Pdf/Items/CreditmemoTest.php +++ b/app/code/Magento/Downloadable/Test/Unit/Model/Sales/Order/Pdf/Items/CreditmemoTest.php @@ -10,71 +10,30 @@ class CreditmemoTest extends \PHPUnit_Framework_TestCase /** * @var \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Creditmemo */ - protected $_model; + private $model; /** * @var \Magento\Sales\Model\Order|\PHPUnit_Framework_MockObject_MockObject */ - protected $_order; + private $order; /** * @var \Magento\Sales\Model\Order\Pdf\AbstractPdf|\PHPUnit_Framework_MockObject_MockObject */ - protected $_pdf; + private $pdf; protected function setUp() { $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $arguments = [ - 'productFactory' => $this->getMock('Magento\Catalog\Model\ProductFactory', [], [], '', false), - 'orderItemCollectionFactory' => $this->getMock( - 'Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory', - [], - [], - '', - false - ), - 'serviceOrderFactory' => $this->getMock( - 'Magento\Sales\Model\Service\OrderFactory', - [], - [], - '', - false - ), - 'currencyFactory' => $this->getMock( - 'Magento\Directory\Model\CurrencyFactory', - [], - [], - '', - false - ), - 'orderHistoryFactory' => $this->getMock( - 'Magento\Sales\Model\Order\Status\HistoryFactory', - [], - [], - '', - false - ), - 'orderTaxCollectionFactory' => $this->getMock( - 'Magento\Tax\Model\ResourceModel\Sales\Order\Tax\CollectionFactory', - [], - [], - '', - false - ), - ]; - $orderConstructorArgs = $objectManager->getConstructArguments('Magento\Sales\Model\Order', $arguments); - $this->_order = $this->getMock('Magento\Sales\Model\Order', ['formatPriceTxt'], $orderConstructorArgs); - $this->_order->expects( - $this->any() - )->method( - 'formatPriceTxt' - )->will( - $this->returnCallback([$this, 'formatPrice']) - ); + $this->order = $this->getMockBuilder(\Magento\Sales\Model\Order::class) + ->disableOriginalConstructor() + ->getMock(); + $this->order->expects($this->any()) + ->method('formatPriceTxt') + ->will($this->returnCallback([$this, 'formatPrice'])); - $this->_pdf = $this->getMock( - 'Magento\Sales\Model\Order\Pdf\AbstractPdf', + $this->pdf = $this->getMock( + \Magento\Sales\Model\Order\Pdf\AbstractPdf::class, ['drawLineBlocks', 'getPdf'], [], '', @@ -96,22 +55,22 @@ protected function setUp() ['string' => new \Magento\Framework\Stdlib\StringUtils(), 'filterManager' => $filterManager] ); - $this->_model = $this->getMock( - 'Magento\Downloadable\Model\Sales\Order\Pdf\Items\Creditmemo', + $this->model = $this->getMock( + \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Creditmemo::class, ['getLinks', 'getLinksTitle'], $modelConstructorArgs ); - $this->_model->setOrder($this->_order); - $this->_model->setPdf($this->_pdf); - $this->_model->setPage(new \Zend_Pdf_Page('a4')); + $this->model->setOrder($this->order); + $this->model->setPdf($this->pdf); + $this->model->setPage(new \Zend_Pdf_Page('a4')); } protected function tearDown() { - $this->_model = null; - $this->_order = null; - $this->_pdf = null; + $this->model = null; + $this->order = null; + $this->pdf = null; } /** @@ -150,7 +109,7 @@ public function testDraw() ], ]; - $this->_model->setItem( + $this->model->setItem( new \Magento\Framework\DataObject( [ 'name' => 'Downloadable Documentation', @@ -170,8 +129,8 @@ public function testDraw() ] ) ); - $this->_model->expects($this->any())->method('getLinksTitle')->will($this->returnValue('Download Links')); - $this->_model->expects( + $this->model->expects($this->any())->method('getLinksTitle')->will($this->returnValue('Download Links')); + $this->model->expects( $this->any() )->method( 'getLinks' @@ -184,7 +143,7 @@ public function testDraw() ) ) ); - $this->_pdf->expects( + $this->pdf->expects( $this->once() )->method( 'drawLineBlocks' @@ -196,8 +155,8 @@ public function testDraw() $this->returnValue($expectedPdfPage) ); - $this->assertNotSame($expectedPdfPage, $this->_model->getPage()); - $this->assertNull($this->_model->draw()); - $this->assertSame($expectedPdfPage, $this->_model->getPage()); + $this->assertNotSame($expectedPdfPage, $this->model->getPage()); + $this->assertNull($this->model->draw()); + $this->assertSame($expectedPdfPage, $this->model->getPage()); } } diff --git a/app/code/Magento/Paypal/Test/Unit/Model/PayflowproTest.php b/app/code/Magento/Paypal/Test/Unit/Model/PayflowproTest.php index b1a8647a937ef..9016c998809a8 100644 --- a/app/code/Magento/Paypal/Test/Unit/Model/PayflowproTest.php +++ b/app/code/Magento/Paypal/Test/Unit/Model/PayflowproTest.php @@ -118,8 +118,10 @@ protected function setUp() $client->expects($this->any())->method('request')->will($this->returnSelf()); $client->expects($this->any())->method('getBody')->will($this->returnValue('RESULT name=value&name2=value2')); - $clientFactory = $this->getMock('Magento\Framework\HTTP\ZendClientFactory', ['create'], [], '', false); - $clientFactory->expects($this->any())->method('create')->will($this->returnValue($client)); + $clientFactory = $this->getMockBuilder(ZendClientFactory::class) + ->disableOriginalConstructor() + ->getMock(); + $clientFactory->method('create')->will($this->returnValue($client)); $this->eventManager = $this->getMockForAbstractClass(ManagerInterface::class); diff --git a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Product/CollectionTest.php b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Product/CollectionTest.php index 4c67d58679c9d..8b61685cd3631 100644 --- a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Product/CollectionTest.php +++ b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Product/CollectionTest.php @@ -65,16 +65,25 @@ protected function setUp() false ); $fetchStrategy->expects($this->any())->method('fetchAll')->will($this->returnValue([])); - $this->model = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this)) - ->getObject( - '\Magento\Review\Model\ResourceModel\Review\Product\Collection', - [ - 'universalFactory' => $universalFactory, - 'storeManager' => $storeManager, - 'eavConfig' => $eavConfig, - 'fetchStrategy' => $fetchStrategy - ] - ); + $productLimitationMock = $this->getMock( + \Magento\Catalog\Model\ResourceModel\Product\Collection\ProductLimitation::class + ); + $productLimitationFactoryMock = $this->getMockBuilder(ProductLimitationFactory::class) + ->disableOriginalConstructor() + ->getMock(); + $productLimitationFactoryMock->method('create') + ->willReturn($productLimitationMock); + $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->model = $this->objectManager->getObject( + \Magento\Review\Model\ResourceModel\Review\Product\Collection::class, + [ + 'universalFactory' => $universalFactory, + 'storeManager' => $storeManager, + 'eavConfig' => $eavConfig, + 'fetchStrategy' => $fetchStrategy, + 'productLimitationFactory' => $productLimitationFactoryMock + ] + ); } /** diff --git a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CreditmemoLoaderTest.php b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CreditmemoLoaderTest.php index 4ce95ff8ecb0e..7ba2c9a9fc07b 100644 --- a/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CreditmemoLoaderTest.php +++ b/app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/CreditmemoLoaderTest.php @@ -14,62 +14,57 @@ class CreditmemoLoaderTest extends \PHPUnit_Framework_TestCase /** * @var \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader */ - protected $loader; + private $loader; /** * @var \Magento\Sales\Api\CreditmemoRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $creditmemoRepositoryMock; + private $creditmemoRepositoryMock; /** * @var \Magento\Sales\Model\Order\CreditmemoFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $creditmemoFactoryMock; + private $creditmemoFactoryMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $orderFactoryMock; + private $orderFactoryMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $invoiceRepositoryMock; + private $invoiceRepositoryMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $serviceOrderFactoryMock; + private $eventManagerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $eventManagerMock; + private $sessionMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $sessionMock; + private $messageManagerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $messageManagerMock; + private $registryMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $registryMock; + private $helperMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $helperMock; - - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $stockConfiguration; + private $stockConfiguration; protected function setUp() { @@ -86,11 +81,7 @@ protected function setUp() ->disableOriginalConstructor() ->setMethods(['create']) ->getMockForAbstractClass(); - $this->serviceOrderFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Service\OrderFactory') - ->disableOriginalConstructor() - ->setMethods(['create']) - ->getMock(); - $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\Manager') + $this->eventManagerMock = $this->getMockBuilder(\Magento\Framework\Event\Manager::class) ->disableOriginalConstructor() ->setMethods([]) ->getMock(); diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoDocumentFactoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoDocumentFactoryTest.php index b5dfb0a1233f8..1dce8ec568a2a 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoDocumentFactoryTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/CreditmemoDocumentFactoryTest.php @@ -6,6 +6,7 @@ namespace Magento\Sales\Test\Unit\Model\Order; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +use Magento\Sales\Api\Data\CreditmemoCommentInterfaceFactory; use Magento\Sales\Api\OrderRepositoryInterface; use Magento\Sales\Model\Order\CreditmemoDocumentFactory; use Magento\Sales\Api\Data\CreditmemoCommentInterface; @@ -41,7 +42,7 @@ class CreditmemoDocumentFactoryTest extends \PHPUnit_Framework_TestCase private $creditmemoFactoryMock; /** - * @var \Magento\Sales\Api\Data\CreditmemoCommentInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject + * @var CreditmemoCommentInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject */ private $commentFactoryMock; @@ -101,11 +102,9 @@ public function setUp() $this->creditmemoFactoryMock = $this->getMockBuilder(CreditmemoFactory::class) ->disableOriginalConstructor() ->getMock(); - $this->commentFactoryMock = - $this->getMockBuilder('Magento\Sales\Api\Data\CreditmemoCommentInterfaceFactory') - ->setMethods(['create']) - ->disableOriginalConstructor() - ->getMock(); + $this->commentFactoryMock = $this->getMockBuilder(CreditmemoCommentInterfaceFactory::class) + ->disableOriginalConstructor() + ->getMock(); $this->hydratorPoolMock = $this->getMockBuilder(HydratorPool::class) ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/Invoice/Total/ShippingTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/Invoice/Total/ShippingTest.php index 2b37ebb026f64..3ea6de1d43e2e 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Order/Invoice/Total/ShippingTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/Invoice/Total/ShippingTest.php @@ -4,19 +4,107 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Sales\Test\Unit\Model\Order\Invoice\Total; +use Magento\Sales\Model\Order\Invoice\Total\Shipping; + +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class ShippingTest extends \PHPUnit_Framework_TestCase { + /** + * @var Shipping + */ + private $total; + + protected function setUp() + { + $this->total = new Shipping(); + } + + /** + * @dataProvider collectWithNoOrZeroPrevInvoiceDataProvider + * @param array $prevInvoicesData + * @param float $orderShipping + * @param float $expectedShipping + */ + public function testCollectWithNoOrZeroPrevInvoice(array $prevInvoicesData, $orderShipping, $expectedShipping) + { + $invoice = $this->createInvoiceStub($prevInvoicesData, $orderShipping); + $invoice->expects($this->exactly(2)) + ->method('setShippingAmount') + ->withConsecutive([0], [$expectedShipping]); + + $this->total->collect($invoice); + } + + /** + * @return array + */ + public static function collectWithNoOrZeroPrevInvoiceDataProvider() + { + return [ + 'no previous invoices' => [ + 'prevInvoicesData' => [[]], + 'orderShipping' => 10.00, + 'expectedShipping' => 10.00, + ], + 'zero shipping in previous invoices' => [ + 'prevInvoicesData' => [['shipping_amount' => '0.0000']], + 'orderShipping' => 10.00, + 'expectedShipping' => 10.00, + ], + ]; + } + + public function testCollectWithPreviousInvoice() + { + $orderShipping = 10.00; + $prevInvoicesData = [['shipping_amount' => '10.000']]; + $invoice = $this->createInvoiceStub($prevInvoicesData, $orderShipping); + $invoice->expects($this->once()) + ->method('setShippingAmount') + ->with(0); + + $this->total->collect($invoice); + } + + /** + * Create stub of an invoice + * + * @param array $prevInvoicesData + * @param float $orderShipping + * @return \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject + */ + private function createInvoiceStub(array $prevInvoicesData, $orderShipping) + { + $order = $this->getMockBuilder(\Magento\Sales\Model\Order::class) + ->disableOriginalConstructor() + ->getMock(); + $order->expects($this->any()) + ->method('getInvoiceCollection') + ->will($this->returnValue($this->getInvoiceCollection($prevInvoicesData))); + $order->expects($this->any()) + ->method('getShippingAmount') + ->willReturn($orderShipping); + /** @var $invoice \Magento\Sales\Model\Order\Invoice|\PHPUnit_Framework_MockObject_MockObject */ + $invoice = $this->getMockBuilder(\Magento\Sales\Model\Order\Invoice::class) + ->disableOriginalConstructor() + ->getMock(); + $invoice->expects($this->any()) + ->method('getOrder') + ->willReturn($order); + return $invoice; + } + /** * Retrieve new invoice collection from an array of invoices' data * * @param array $invoicesData * @return \Magento\Framework\Data\Collection */ - protected function _getInvoiceCollection(array $invoicesData) + private function getInvoiceCollection(array $invoicesData) { $className = 'Magento\Sales\Model\Order\Invoice'; $result = new \Magento\Framework\Data\Collection( @@ -33,12 +121,12 @@ protected function _getInvoiceCollection(array $invoicesData) false ), 'calculatorFactory' => $this->getMock( - 'Magento\Framework\Math\CalculatorFactory', - [], - [], - '', - false - ), + \Magento\Framework\Math\CalculatorFactory::class, + [], + [], + '', + false + ), 'invoiceItemCollectionFactory' => $this->getMock( 'Magento\Sales\Model\ResourceModel\Order\Invoice\Item\CollectionFactory', [], @@ -70,104 +158,4 @@ protected function _getInvoiceCollection(array $invoicesData) } return $result; } - - /** - * @dataProvider collectDataProvider - * @param array $prevInvoicesData - * @param float $orderShipping - * @param float $invoiceShipping - * @param float $expectedShipping - */ - public function testCollect(array $prevInvoicesData, $orderShipping, $invoiceShipping, $expectedShipping) - { - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $arguments = [ - 'productFactory' => $this->getMock('Magento\Catalog\Model\ProductFactory', [], [], '', false), - 'orderItemCollectionFactory' => $this->getMock( - 'Magento\Sales\Model\ResourceModel\Order\Item\CollectionFactory', - [], - [], - '', - false - ), - 'serviceOrderFactory' => $this->getMock( - 'Magento\Sales\Model\Service\OrderFactory', - [], - [], - '', - false - ), - 'currencyFactory' => $this->getMock( - 'Magento\Directory\Model\CurrencyFactory', - [], - [], - '', - false - ), - 'orderHistoryFactory' => $this->getMock( - 'Magento\Sales\Model\Order\Status\HistoryFactory', - [], - [], - '', - false - ), - 'orderTaxCollectionFactory' => $this->getMock( - 'Magento\Tax\Model\ResourceModel\Sales\Order\Tax\CollectionFactory', - [], - [], - '', - false - ), - ]; - $orderConstructorArgs = $objectManager->getConstructArguments('Magento\Sales\Model\Order', $arguments); - /** @var $order \Magento\Sales\Model\Order|PHPUnit_Framework_MockObject_MockObject */ - $order = $this->getMock( - 'Magento\Sales\Model\Order', - ['_init', 'getInvoiceCollection', '__wakeup'], - $orderConstructorArgs, - '', - false - ); - $order->setData('shipping_amount', $orderShipping); - $order->expects( - $this->any() - )->method( - 'getInvoiceCollection' - )->will( - $this->returnValue($this->_getInvoiceCollection($prevInvoicesData)) - ); - /** @var $invoice \Magento\Sales\Model\Order\Invoice|PHPUnit_Framework_MockObject_MockObject */ - $invoice = $this->getMock('Magento\Sales\Model\Order\Invoice', ['_init', '__wakeup'], [], '', false); - $invoice->setData('shipping_amount', $invoiceShipping); - $invoice->setOrder($order); - - $total = new \Magento\Sales\Model\Order\Invoice\Total\Shipping(); - $total->collect($invoice); - - $this->assertEquals($expectedShipping, $invoice->getShippingAmount()); - } - - public static function collectDataProvider() - { - return [ - 'no previous invoices' => [ - 'prevInvoicesData' => [[]], - 'orderShipping' => 10.00, - 'invoiceShipping' => 5.00, - 'expectedShipping' => 10.00, - ], - 'zero shipping in previous invoices' => [ - 'prevInvoicesData' => [['shipping_amount' => '0.0000']], - 'orderShipping' => 10.00, - 'invoiceShipping' => 5.00, - 'expectedShipping' => 10.00, - ], - 'non-zero shipping in previous invoices' => [ - 'prevInvoicesData' => [['shipping_amount' => '10.000']], - 'orderShipping' => 10.00, - 'invoiceShipping' => 5.00, - 'expectedShipping' => 0, - ] - ]; - } } diff --git a/app/code/Magento/Translation/Test/Unit/Model/Inline/ParserTest.php b/app/code/Magento/Translation/Test/Unit/Model/Inline/ParserTest.php index cc20e4ea39a45..a1dd37676ab36 100644 --- a/app/code/Magento/Translation/Test/Unit/Model/Inline/ParserTest.php +++ b/app/code/Magento/Translation/Test/Unit/Model/Inline/ParserTest.php @@ -45,11 +45,26 @@ class ParserTest extends \PHPUnit_Framework_TestCase */ private $translateInlineMock; + /** + * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager|\PHPUnit_Framework_MockObject_MockObject + */ + private $objectManager; + protected function setUp() { - $this->resourceMock = $this->getMockBuilder('Magento\Translation\Model\ResourceModel\StringUtilsFactory') + $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->translateInlineMock = + $this->getMockForAbstractClass(\Magento\Framework\Translate\InlineInterface::class); + $this->appCacheMock = $this->getMockForAbstractClass(\Magento\Framework\App\Cache\TypeListInterface::class); + $this->storeManagerMock = $this->getMockForAbstractClass(\Magento\Store\Model\StoreManagerInterface::class); + $this->storeMock = $this->getMockForAbstractClass(\Magento\Store\Api\Data\StoreInterface::class); + $this->storeManagerMock->expects($this->any()) + ->method('getStore') + ->willReturn($this->storeMock); + $this->resourceFactoryMock = $this->getMockBuilder( + \Magento\Translation\Model\ResourceModel\StringUtilsFactory::class + ) ->disableOriginalConstructor() - ->setMethods([]) ->getMock(); $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') diff --git a/composer.json b/composer.json index ad4f5df401dfa..b9849df3b513d 100644 --- a/composer.json +++ b/composer.json @@ -226,7 +226,9 @@ "Magento\\": "app/code/Magento/" }, "psr-0": { - "": "app/code/" + "": [ + "app/code/" + ] }, "files": [ "app/etc/NonComposerComponentRegistration.php" diff --git a/dev/tests/unit/framework/autoload.php b/dev/tests/unit/framework/autoload.php index 4b2adbe17673f..65776aac46e4a 100644 --- a/dev/tests/unit/framework/autoload.php +++ b/dev/tests/unit/framework/autoload.php @@ -4,10 +4,24 @@ * See COPYING.txt for license details. */ -$autoloader = new \Magento\Framework\TestFramework\Unit\Autoloader\ExtensionGeneratorAutoloader( - new \Magento\Framework\Code\Generator\Io( - new \Magento\Framework\Filesystem\Driver\File(), - TESTS_TEMP_DIR . '/var/generation' - ) +use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\Code\Generator\Io; +use Magento\Framework\Filesystem\Driver\File; +use Magento\Framework\TestFramework\Unit\Autoloader\ExtensionAttributesGenerator; +use Magento\Framework\TestFramework\Unit\Autoloader\ExtensionAttributesInterfaceGenerator; +use Magento\Framework\TestFramework\Unit\Autoloader\FactoryGenerator; +use Magento\Framework\TestFramework\Unit\Autoloader\GeneratedClassesAutoloader; + +$generatorIo = new Io( + new File(), + TESTS_TEMP_DIR . '/' . DirectoryList::getDefaultConfig()[DirectoryList::GENERATED_CODE][DirectoryList::PATH] +); +$generatedCodeAutoloader = new GeneratedClassesAutoloader( + [ + new ExtensionAttributesGenerator(), + new ExtensionAttributesInterfaceGenerator(), + new FactoryGenerator(), + ], + $generatorIo ); -spl_autoload_register([$autoloader, 'load']); +spl_autoload_register([$generatedCodeAutoloader, 'load']); diff --git a/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php b/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php index ae1a6544ef2cb..65c5aed0cc6aa 100644 --- a/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php +++ b/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php @@ -5,6 +5,8 @@ */ namespace Magento\Framework\App\Filesystem; +use Magento\Framework\Code\Generator\Io; + /** * A Magento application specific list of directories */ @@ -107,6 +109,11 @@ class DirectoryList extends \Magento\Framework\Filesystem\DirectoryList const TEMPLATE_MINIFICATION_DIR = 'html'; + /** + * Relative directory key for generated code + */ + const GENERATED_CODE = 'code'; + /** * {@inheritdoc} */ @@ -133,6 +140,7 @@ public static function getDefaultConfig() self::TEMPLATE_MINIFICATION_DIR => [parent::PATH => 'var/view_preprocessed/html'], self::SETUP => [parent::PATH => 'setup/src'], self::COMPOSER_HOME => [parent::PATH => 'var/composer_home'], + self::GENERATED_CODE => [parent::PATH => Io::DEFAULT_DIRECTORY] ]; return parent::getDefaultConfig() + $result; } diff --git a/lib/internal/Magento/Framework/Autoload/Populator.php b/lib/internal/Magento/Framework/Autoload/Populator.php index ff0b303cdd8a5..e6f0bcfa8b107 100644 --- a/lib/internal/Magento/Framework/Autoload/Populator.php +++ b/lib/internal/Magento/Framework/Autoload/Populator.php @@ -6,7 +6,6 @@ namespace Magento\Framework\Autoload; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Autoload\AutoloaderInterface; use Magento\Framework\Filesystem\FileResolver; /** @@ -22,17 +21,10 @@ class Populator */ public static function populateMappings(AutoloaderInterface $autoloader, DirectoryList $dirList) { - $generationDir = $dirList->getPath(DirectoryList::GENERATION); - $frameworkDir = $dirList->getPath(DirectoryList::LIB_INTERNAL); + $generationDir = $dirList->getPath(DirectoryList::GENERATED_CODE); $autoloader->addPsr4('Magento\\', [$generationDir . '/Magento/'], true); - $autoloader->addPsr0('Cm_', $frameworkDir, true); - $autoloader->addPsr0('Credis_', $frameworkDir, true); - - /** Required for Zend functionality */ - FileResolver::addIncludePath($frameworkDir); - /** Required for code generation to occur */ FileResolver::addIncludePath($generationDir); diff --git a/lib/internal/Magento/Framework/Autoload/Test/Unit/PopulatorTest.php b/lib/internal/Magento/Framework/Autoload/Test/Unit/PopulatorTest.php index cba0250dd41f9..b64263ec00a0f 100644 --- a/lib/internal/Magento/Framework/Autoload/Test/Unit/PopulatorTest.php +++ b/lib/internal/Magento/Framework/Autoload/Test/Unit/PopulatorTest.php @@ -31,22 +31,16 @@ public function testPopulateMappings() ->disableOriginalConstructor() ->getMock(); - $mockAutoloader->expects($this->at(0)) + $mockAutoloader->expects($this->once()) ->method('addPsr4') ->with( 'Magento\\', - [DirectoryList::GENERATION . '/Magento/'], + [DirectoryList::GENERATED_CODE . '/Magento/'], true ); - $mockAutoloader->expects($this->at(1)) + $mockAutoloader->expects($this->once()) ->method('addPsr0') - ->with('Cm_', DirectoryList::LIB_INTERNAL, true); - $mockAutoloader->expects($this->at(2)) - ->method('addPsr0') - ->with('Credis_', DirectoryList::LIB_INTERNAL, true); - $mockAutoloader->expects($this->at(3)) - ->method('addPsr0') - ->with('', [DirectoryList::GENERATION]); + ->with('', [DirectoryList::GENERATED_CODE]); Populator::populateMappings($mockAutoloader, $this->mockDirectoryList); } diff --git a/lib/internal/Magento/Framework/Code/Generator/InterfaceGenerator.php b/lib/internal/Magento/Framework/Code/Generator/InterfaceGenerator.php index 5bc9cd7588ef7..876c7a54876cf 100644 --- a/lib/internal/Magento/Framework/Code/Generator/InterfaceGenerator.php +++ b/lib/internal/Magento/Framework/Code/Generator/InterfaceGenerator.php @@ -33,7 +33,9 @@ public function generate() } $output .= 'interface ' . $this->getName(); if (!empty($this->extendedClass)) { - $output .= ' extends ' . $this->extendedClass; + if (!empty($this->extendedClass)) { + $output .= ' extends \\' . ltrim($this->extendedClass, '\\'); + } } $output .= self::LINE_FEED . '{' . self::LINE_FEED . self::LINE_FEED diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/RuntimeTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/RuntimeTest.php index ec2f898fb4112..3900714818aeb 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/RuntimeTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Relations/RuntimeTest.php @@ -4,21 +4,20 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Framework\ObjectManager\Test\Unit\Relations; require_once __DIR__ . '/../_files/Child.php'; + class RuntimeTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Framework\ObjectManager\Relations\Runtime */ - protected $_model; + private $model; protected function setUp() { - $this->_model = new \Magento\Framework\ObjectManager\Relations\Runtime(); + $this->model = new \Magento\Framework\ObjectManager\Relations\Runtime(); } /** @@ -28,7 +27,7 @@ protected function setUp() */ public function testGetParents($type, $parents) { - $this->assertEquals($parents, $this->_model->getParents($type)); + $this->assertEquals($parents, $this->model->getParents($type)); } public function getParentsDataProvider() @@ -42,21 +41,9 @@ public function getParentsDataProvider() /** * @param $entity - * @dataProvider nonExistentGeneratorsDataProvider */ - public function testHasIfNonExists($entity) + public function testHasIfNonExists() { - $this->assertFalse($this->_model->has($entity)); - } - - public function nonExistentGeneratorsDataProvider() - { - return [ - ['Magento\Test\Module\Model\Item\Factory'], - ['Magento\Test\Module\Model\Item\Proxy'], - ['Magento\Test\Module\Model\Item\Interceptor'], - ['Magento\Test\Module\Model\Item\Mapper'], - ['Magento\Test\Module\Model\Item\SearchResults'] - ]; + $this->assertFalse($this->model->has(\NonexistentClass::class)); } } diff --git a/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesGeneratorTest.php b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesGeneratorTest.php new file mode 100644 index 0000000000000..1f4a9257aa1cf --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesGeneratorTest.php @@ -0,0 +1,50 @@ +subject = new ExtensionAttributesGenerator(); + } + + public function testGenerateExtensionAttributes() + { + $this->assertStringMatchesFormat( + "%Anamespace My;%Aclass SimpleExtension implements \My\SimpleExtensionInterface%A", + $this->subject->generate('\My\SimpleExtension') + ); + } + + /** + * @dataProvider generateNonExtensionAttributesDataProvider + * @param string $className + */ + public function testGenerateNonExtensionAttributes($className) + { + $this->assertFalse($this->subject->generate($className)); + } + + /** + * @return array + */ + public function generateNonExtensionAttributesDataProvider() + { + return [ + 'non-extension attribute class' => ['\My\SimpleClass'], + 'non-conventional extension attribute name' => ['\My\Extension'], + ]; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesInterfaceGeneratorTest.php b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesInterfaceGeneratorTest.php new file mode 100644 index 0000000000000..8f86de9ea30ec --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/ExtensionAttributesInterfaceGeneratorTest.php @@ -0,0 +1,51 @@ +subject = new ExtensionAttributesInterfaceGenerator(); + } + + public function testGenerateExtensionAttributesInterface() + { + $this->assertStringMatchesFormat( + "%Anamespace My;%Ainterface SimpleExtensionInterface extends " + . "\\Magento\\Framework\\Api\\ExtensionAttributesInterface%A", + $this->subject->generate('\My\SimpleExtensionInterface') + ); + } + + /** + * @dataProvider generateNonExtensionAttributesInterfaceDataProvider + * @param string $className + */ + public function testGenerateNonExtensionAttributesInterface($className) + { + $this->assertFalse($this->subject->generate($className)); + } + + /** + * @return array + */ + public function generateNonExtensionAttributesInterfaceDataProvider() + { + return [ + 'non-extension attribute interface' => ['\My\SimpleInterface'], + 'non-conventional extension attribute interface name' => ['\My\ExtensionInterface'], + ]; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/FactoryGeneratorTest.php b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/FactoryGeneratorTest.php new file mode 100644 index 0000000000000..fd9cbc9e72170 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Autoloader/FactoryGeneratorTest.php @@ -0,0 +1,50 @@ +subject = new FactoryGenerator(); + } + + public function testGenerateFactory() + { + $this->assertStringMatchesFormat( + '%Anamespace My%Aclass SimpleFactory%Afunction create%A', + $this->subject->generate('\My\SimpleFactory') + ); + } + + /** + * @dataProvider generateNonFactoryDataProvider + * @param string $className + */ + public function testGenerateNonFactory($className) + { + $this->assertFalse($this->subject->generate($className)); + } + + /** + * @return array + */ + public function generateNonFactoryDataProvider() + { + return [ + 'non-factory class' => ['\My\SimpleClass'], + 'non-conventional factory name' => ['\My\Factory'], + ]; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesGenerator.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesGenerator.php new file mode 100644 index 0000000000000..66f80145a4f82 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesGenerator.php @@ -0,0 +1,53 @@ +Extension" + * + * @param string $className + * @return bool|string + */ + public function generate($className) + { + if (!$this->isExtension($className)) { + return false; + } + $classGenerator = new ClassGenerator(); + $implementedInterface = '\\' . ltrim("{$className}Interface", '\\'); + $classGenerator->setName($className) + ->setImplementedInterfaces([$implementedInterface]); + return $classGenerator->generate(); + + } + + /** + * Determines if the passed in class name is an Extension type. + * + * @param string $className + * @return bool + */ + private function isExtension($className) + { + $suffix = "Extension"; + $sourceName = rtrim(substr($className, 0, -strlen($suffix)), '\\'); + return $sourceName . $suffix == $className; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesInterfaceGenerator.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesInterfaceGenerator.php new file mode 100644 index 0000000000000..1d0471bc2d789 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionAttributesInterfaceGenerator.php @@ -0,0 +1,51 @@ +ExtensionInterface" + * + * @param string $className + * @return bool|string + */ + public function generate($className) + { + if (!$this->isExtensionInterface($className)) { + return false; + } + $interfaceGenerator = new InterfaceGenerator(); + $interfaceGenerator->setName($className) + ->setExtendedClass(\Magento\Framework\Api\ExtensionAttributesInterface::class); + return $interfaceGenerator->generate(); + } + + /** + * Determines if the passed in class name is an ExtensionInterface type. + * + * @param string $className + * @return bool + */ + private function isExtensionInterface($className) + { + $suffix = "ExtensionInterface"; + $sourceName = rtrim(substr($className, 0, -strlen($suffix)), '\\'); + return $sourceName . $suffix == $className; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionGeneratorAutoloader.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionGeneratorAutoloader.php deleted file mode 100644 index 9f8cb85b76ecd..0000000000000 --- a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/ExtensionGeneratorAutoloader.php +++ /dev/null @@ -1,97 +0,0 @@ -generatorIo = $generatorIo; - } - - /** - * Load an *Extension or *ExtensionInterface class. If it does not exist, create a stub file and load it. - * - * @param string $className - * @return void - */ - public function load($className) - { - if (!class_exists($className)) { - if (!$this->isExtension($className) && !$this->isExtensionInterface($className)) { - return false; - } - - $resultFileName = $this->generatorIo->generateResultFileName($className); - - if (!$this->generatorIo->fileExists($resultFileName)) { - $this->generatorIo->makeResultFileDirectory($className); - - $classNameParts = explode('\\', $className); - - /* Split the type name and namespace for the file's contents. */ - $justTypeName = $classNameParts[count($classNameParts) - 1]; - - unset($classNameParts[count($classNameParts) - 1]); - $namespace = implode('\\', $classNameParts); - - if ($this->isExtension($className)) { - $content = "namespace $namespace;\n\nclass $justTypeName implements " - . "{$justTypeName}Interface\n{\n\n}"; - } else if ($this->isExtensionInterface($className)) { - $content = "namespace $namespace;\n\ninterface $justTypeName extends " - . "\\Magento\\Framework\\Api\\ExtensionAttributesInterface \n{\n\n}"; - } - - $this->generatorIo->writeResultFile($resultFileName, $content); - } - - include $resultFileName; - } - - return false; - } - - /** - * Determines if the passed in class name is an ExtensionInterface type. - * - * @param string $className - * @return bool - */ - private function isExtensionInterface($className) - { - $suffix = "ExtensionInterface"; - return substr($className, -strlen($suffix), strlen($suffix)) === $suffix; - } - - /** - * Determines if the passed in class name is an Extension type. - * - * @param string $className - * @return bool - */ - private function isExtension($className) - { - $suffix = "Extension"; - return substr($className, -strlen($suffix), strlen($suffix)) === $suffix; - } -} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/FactoryGenerator.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/FactoryGenerator.php new file mode 100644 index 0000000000000..4faa2256eca15 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/FactoryGenerator.php @@ -0,0 +1,49 @@ +Factory" convention + * + * @param string $className + * @return bool|string + */ + public function generate($className) + { + if (!$this->isFactory($className)) { + return false; + } + $methods = [[ + 'name' => 'create', + 'parameters' => [['name' => 'data', 'type' => 'array', 'defaultValue' => []]], + 'body' => '', + ]]; + $classGenerator = new ClassGenerator(); + $classGenerator->setName($className) + ->addMethods($methods); + return $classGenerator->generate(); + } + + /** + * Check if the class name is a factory by convention "Factory" + * + * @param string $className + * @return bool + */ + private function isFactory($className) + { + $sourceName = rtrim(substr($className, 0, -strlen('Factory')), '\\'); + return $sourceName . 'Factory' == $className; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratedClassesAutoloader.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratedClassesAutoloader.php new file mode 100644 index 0000000000000..49de89dd8d2b8 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratedClassesAutoloader.php @@ -0,0 +1,75 @@ +generators = $generators; + $this->generatorIo = $generatorIo; + } + + /** + * Load class + * + * @param string $className + * @return bool + */ + public function load($className) + { + $classSourceFile = $this->generatorIo->generateResultFileName($className); + if ($this->generatorIo->fileExists($classSourceFile)) { + include $classSourceFile; + return true; + } else { + + foreach ($this->generators as $generator) { + $content = $generator->generate($className); + if ($content) { + $this->generatorIo->makeResultFileDirectory($className); + $this->generatorIo->writeResultFile($classSourceFile, $content); + include $classSourceFile; + return true; + } + }; + + } + + return false; + } +} diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratorInterface.php b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratorInterface.php new file mode 100644 index 0000000000000..2d7ed16e63451 --- /dev/null +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Autoloader/GeneratorInterface.php @@ -0,0 +1,21 @@ + Date: Mon, 30 Oct 2017 01:29:23 +0100 Subject: [PATCH 052/555] CMS Page - Handle layout update xml validation exceptions CMS Page - Force validate layout update xml, even in production mode, when saving CMS Page --- .../Adminhtml/Page/PostDataProcessor.php | 77 +++++++++++++++---- .../Cms/Model/Page/DomValidationState.php | 26 +++++++ .../View/Model/Layout/Update/Validator.php | 28 +++++-- .../Model/Layout/Update/ValidatorTest.php | 23 ++++-- 4 files changed, 128 insertions(+), 26 deletions(-) create mode 100644 app/code/Magento/Cms/Model/Page/DomValidationState.php diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/PostDataProcessor.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/PostDataProcessor.php index 6150991be15f5..687a2b558a08a 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/PostDataProcessor.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/PostDataProcessor.php @@ -6,6 +6,14 @@ */ namespace Magento\Cms\Controller\Adminhtml\Page; +use Magento\Cms\Model\Page\DomValidationState; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Config\Dom\ValidationException; + +/** + * Class PostDataProcessor + * @package Magento\Cms\Controller\Adminhtml\Page + */ class PostDataProcessor { /** @@ -23,19 +31,28 @@ class PostDataProcessor */ protected $messageManager; + /** + * @var DomValidationState + */ + private $validationState; + /** * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\Framework\View\Model\Layout\Update\ValidatorFactory $validatorFactory + * @param DomValidationState $validationState */ public function __construct( \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, \Magento\Framework\Message\ManagerInterface $messageManager, - \Magento\Framework\View\Model\Layout\Update\ValidatorFactory $validatorFactory + \Magento\Framework\View\Model\Layout\Update\ValidatorFactory $validatorFactory, + DomValidationState $validationState = null ) { $this->dateFilter = $dateFilter; $this->messageManager = $messageManager; $this->validatorFactory = $validatorFactory; + $this->validationState = $validationState + ?: ObjectManager::getInstance()->get(DomValidationState::class); } /** @@ -61,27 +78,27 @@ public function filter($data) * Validate post data * * @param array $data - * @return bool Return FALSE if someone item is invalid + * @return bool Return FALSE if some item is invalid */ public function validate($data) { - $errorNo = true; if (!empty($data['layout_update_xml']) || !empty($data['custom_layout_update_xml'])) { - /** @var $validatorCustomLayout \Magento\Framework\View\Model\Layout\Update\Validator */ - $validatorCustomLayout = $this->validatorFactory->create(); - if (!empty($data['layout_update_xml']) && !$validatorCustomLayout->isValid($data['layout_update_xml'])) { - $errorNo = false; - } - if (!empty($data['custom_layout_update_xml']) - && !$validatorCustomLayout->isValid($data['custom_layout_update_xml']) - ) { - $errorNo = false; - } - foreach ($validatorCustomLayout->getMessages() as $message) { - $this->messageManager->addError($message); + /** @var $layoutXmlValidator \Magento\Framework\View\Model\Layout\Update\Validator */ + $layoutXmlValidator = $this->validatorFactory->create( + [ + 'validationState' => $this->validationState, + ] + ); + + if (!$this->validateData($data, $layoutXmlValidator)) { + $validatorMessages = $layoutXmlValidator->getMessages(); + foreach ($validatorMessages as $message) { + $this->messageManager->addErrorMessage($message); + } + return false; } } - return $errorNo; + return true; } /** @@ -108,4 +125,32 @@ public function validateRequireEntry(array $data) } return $errorNo; } + + /** + * Validate data, avoid cyclomatic complexity + * + * @param array $data + * @param \Magento\Framework\View\Model\Layout\Update\Validator $layoutXmlValidator + * @return bool + */ + private function validateData($data, $layoutXmlValidator) + { + try { + if (!empty($data['layout_update_xml']) && !$layoutXmlValidator->isValid($data['layout_update_xml'])) { + return false; + } + if (!empty($data['custom_layout_update_xml']) && + !$layoutXmlValidator->isValid($data['custom_layout_update_xml']) + ) { + return false; + } + } catch (ValidationException $e) { + return false; + } catch (\Exception $e) { + $this->messageManager->addExceptionMessage($e, $e->getMessage()); + return false; + } + + return true; + } } diff --git a/app/code/Magento/Cms/Model/Page/DomValidationState.php b/app/code/Magento/Cms/Model/Page/DomValidationState.php new file mode 100644 index 0000000000000..b08ab6342fc5d --- /dev/null +++ b/app/code/Magento/Cms/Model/Page/DomValidationState.php @@ -0,0 +1,26 @@ +_domConfigFactory = $domConfigFactory; $this->_initMessageTemplates(); @@ -73,6 +83,8 @@ public function __construct( 'urn:magento:framework:View/Layout/etc/layout_merged.xsd' ), ]; + $this->validationState = $validationState + ?: ObjectManager::getInstance()->get(ValidationStateInterface::class); } /** @@ -115,7 +127,13 @@ public function isValid($value, $schema = self::LAYOUT_SCHEMA_PAGE_HANDLE, $isSe try { //wrap XML value in the "layout" and "handle" tags to make it validatable $value = '' . $value . ''; - $this->_domConfigFactory->createDom(['xml' => $value, 'schemaFile' => $this->_xsdSchemas[$schema]]); + $this->_domConfigFactory->createDom( + [ + 'xml' => $value, + 'schemaFile' => $this->_xsdSchemas[$schema], + 'validationState' => $this->validationState, + ] + ); if ($isSecurityCheck) { $value = new \Magento\Framework\Simplexml\Element($value); diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Model/Layout/Update/ValidatorTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Model/Layout/Update/ValidatorTest.php index 771bace3fe6ee..7269a51a3ba67 100644 --- a/lib/internal/Magento/Framework/View/Test/Unit/Model/Layout/Update/ValidatorTest.php +++ b/lib/internal/Magento/Framework/View/Test/Unit/Model/Layout/Update/ValidatorTest.php @@ -5,7 +5,7 @@ */ namespace Magento\Framework\View\Test\Unit\Model\Layout\Update; -use \Magento\Framework\View\Model\Layout\Update\Validator; +use Magento\Framework\View\Model\Layout\Update\Validator; class ValidatorTest extends \PHPUnit_Framework_TestCase { @@ -14,6 +14,11 @@ class ValidatorTest extends \PHPUnit_Framework_TestCase */ protected $_objectHelper; + /** + * @var \Magento\Framework\Config\ValidationStateInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $validationState; + protected function setUp() { $this->_objectHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); @@ -27,7 +32,10 @@ protected function setUp() protected function _createValidator($layoutUpdate, $isSchemaValid = true) { $domConfigFactory = $this->getMockBuilder( - 'Magento\Framework\Config\DomFactory' + \Magento\Framework\Config\DomFactory::class + )->disableOriginalConstructor()->getMock(); + $this->validationState = $this->getMockBuilder( + \Magento\Framework\Config\ValidationStateInterface::class )->disableOriginalConstructor()->getMock(); $urnResolver = new \Magento\Framework\Config\Dom\UrnResolver(); @@ -35,6 +43,7 @@ protected function _createValidator($layoutUpdate, $isSchemaValid = true) 'xml' => '' . trim($layoutUpdate) . '', 'schemaFile' => $urnResolver->getRealPath('urn:magento:framework:View/Layout/etc/page_layout.xsd'), + 'validationState' => $this->validationState, ]; $exceptionMessage = 'validation exception'; @@ -49,10 +58,14 @@ protected function _createValidator($layoutUpdate, $isSchemaValid = true) new \Magento\Framework\Config\Dom\ValidationException($exceptionMessage) ) ); - $urnResolver = $this->_objectHelper->getObject('Magento\Framework\Config\Dom\UrnResolver'); + $urnResolver = $this->_objectHelper->getObject(\Magento\Framework\Config\Dom\UrnResolver::class); $model = $this->_objectHelper->getObject( - 'Magento\Framework\View\Model\Layout\Update\Validator', - ['domConfigFactory' => $domConfigFactory, 'urnResolver' => $urnResolver] + \Magento\Framework\View\Model\Layout\Update\Validator::class, + [ + 'domConfigFactory' => $domConfigFactory, + 'urnResolver' => $urnResolver, + 'validationState' => $this->validationState, + ] ); return $model; From 0cb522b272489da2fd8543576673bc0ee3e31d10 Mon Sep 17 00:00:00 2001 From: pdohogne-magento Date: Thu, 30 Nov 2017 14:57:38 -0600 Subject: [PATCH 053/555] MAGETWO-84822: Mock ObjectManager for each test to keep from failing when run individually but not as part of suite --- dev/tests/unit/phpunit.xml.dist | 3 ++ .../Unit/Listener/ReplaceObjectManager.php | 42 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 lib/internal/Magento/Framework/TestFramework/Unit/Listener/ReplaceObjectManager.php diff --git a/dev/tests/unit/phpunit.xml.dist b/dev/tests/unit/phpunit.xml.dist index b765b0cfccda7..c9ec6b04e1826 100644 --- a/dev/tests/unit/phpunit.xml.dist +++ b/dev/tests/unit/phpunit.xml.dist @@ -38,6 +38,9 @@ + + + From a6b9571a25c08634ff32cbd533888e3b5cbf9643 Mon Sep 17 00:00:00 2001 From: Ihor Sviziev Date: Thu, 4 Jan 2018 16:30:57 +0200 Subject: [PATCH 172/555] magento/magento2#12967: Undeclared dependency magento/zendframework1 by magento/framework --- lib/internal/Magento/Framework/composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json index 7410ec2c2281a..7643e8f87839c 100644 --- a/lib/internal/Magento/Framework/composer.json +++ b/lib/internal/Magento/Framework/composer.json @@ -22,7 +22,8 @@ "ext-xsl": "*", "symfony/process": "~2.1", "zendframework/zend-stdlib": "~2.4.6", - "zendframework/zend-http": "~2.4.6" + "zendframework/zend-http": "~2.4.6", + "magento/zendframework1": "~1.12.16" }, "suggest": { "ext-imagick": "Use Image Magick >=3.0.0 as an optional alternative image processing library" From 16a2f6b5f326af5c573b156b0ebf32f18a103120 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 20 Dec 2017 10:37:39 +0200 Subject: [PATCH 173/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/performance-toolkit/.htaccess | 10 +- setup/performance-toolkit/README.md | 6 + setup/performance-toolkit/benchmark.jmx | 29764 ++++++++-------- .../profiles/ce/extra_large.xml | 68 +- .../performance-toolkit/profiles/ce/large.xml | 12 + .../profiles/ce/medium.xml | 16 +- .../Setup/Fixtures/AdminUsersFixture.php | 88 +- .../Setup/Fixtures/CartPriceRulesFixture.php | 18 +- .../Setup/Fixtures/ConfigsApplyFixture.php | 2 +- .../Fixtures/ConfigurableProductsFixture.php | 74 +- .../Setup/Fixtures/EavVariationsFixture.php | 7 +- .../Magento/Setup/Fixtures/FixtureModel.php | 11 +- .../Magento/Setup/Fixtures/OrdersFixture.php | 17 +- .../Fixtures/Quote/QuoteConfiguration.php | 138 + .../Setup/Fixtures/Quote/QuoteGenerator.php | 793 + .../Fixtures/Quote/QuoteGeneratorFactory.php | 50 + .../Magento/Setup/Fixtures/StoresFixture.php | 21 +- .../Setup/Fixtures/TaxRulesFixture.php | 20 +- .../Fixtures/WebsiteCategoryProvider.php | 4 + .../Fixtures/_files/orders_fixture_data.json | 2 +- .../AttributeSet/SwatchesGeneratorTest.php | 9 +- .../Fixtures/AttributeSetsFixtureTest.php | 2 +- .../Fixtures/CartPriceRulesFixtureTest.php | 16 +- .../Unit/Fixtures/CategoriesFixtureTest.php | 4 +- .../Unit/Fixtures/ConfigsApplyFixtureTest.php | 6 +- .../ConfigurableProductsFixtureTest.php | 11 +- .../Fixtures/CustomerGroupsFixtureTest.php | 10 +- .../Unit/Fixtures/CustomersFixtureTest.php | 6 +- .../Fixtures/EavVariationsFixtureTest.php | 82 +- .../Test/Unit/Fixtures/FixtureModelTest.php | 2 +- .../Fixtures/Quote/QuoteConfigurationTest.php | 74 + .../Quote/QuoteGeneratorFactoryTest.php | 60 + .../Fixtures/Quote/QuoteGeneratorTest.php | 282 + .../Test/Unit/Fixtures/StoresFixtureTest.php | 86 +- .../Unit/Fixtures/TaxRulesFixtureTest.php | 15 +- 35 files changed, 16928 insertions(+), 14858 deletions(-) create mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php create mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php create mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php create mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php create mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php create mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php diff --git a/setup/performance-toolkit/.htaccess b/setup/performance-toolkit/.htaccess index 281d5c33db37c..707c26b075e16 100644 --- a/setup/performance-toolkit/.htaccess +++ b/setup/performance-toolkit/.htaccess @@ -1,2 +1,8 @@ -order allow,deny -deny from all + + order allow,deny + deny from all + += 2.4> + Require all denied + + diff --git a/setup/performance-toolkit/README.md b/setup/performance-toolkit/README.md index 778a1457e10a2..e9a678be1118b 100644 --- a/setup/performance-toolkit/README.md +++ b/setup/performance-toolkit/README.md @@ -44,6 +44,12 @@ For run Admin Pool in multithreading mode, please be sure, that: **Note:** Before generating medium or large profiles, it may be necessary to increase the value of `tmp_table_size` and `max_heap_table_size` parameters for MySQL to 512Mb or more. The value of `memory_limit` for PHP should be 1Gb or more. +There are two JMeter scenarios located in `setup/performance-toolkit` folder: `benchmark.jmx`. + +**Note:** To be sure that all quotes are empty, run the following MySQL query before each run of a scenario: + + UPDATE quote SET is_active = 0 WHERE is_active = 1; + ### Run JMeter scenario via console The following parameters can be passed to the `benchmark.jmx` scenario: diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index d65ff4a036b7f..caab44f74f8ab 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -224,11 +224,6 @@ ${__P(apiOrderInvoiceShipmentSync,0)} = - - apiPoolUsers - ${__P(apiPoolUsers,0)} - = - apiProcessOrders ${__P(apiProcessOrders,5)} @@ -809,58 +804,163 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr - + + mpaf/tool/fragments/ce/setup/extract_categories.jmx + - - - - - - - - - - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/setup/extract_categories.jmx - + - - - <span>Category ([0-9]+)</span> + + + + Content-Type + application/json + + + Accept + */* + - Assertion.response_data - false - 2 - - - - false - category_url_keys - <a href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}" class="level-top" > - $2$ - - -1 - simple_product_1_url_key - + - - false - category_names - <a href="http://${host}${base_path}(index.php/)?category-([0-9]+)${url_suffix}" class="level-top" ><span>([^'"]+)</span> - $3$ - - -1 - simple_product_1_url_key - + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + true + path + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + 1/2/% + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + like + = + true + searchCriteria[filterGroups][0][filters][0][conditionType] + + + true + level + = + true + searchCriteria[filterGroups][1][filters][0][field] + + + true + 2 + = + true + searchCriteria[filterGroups][1][filters][0][value] + + + true + ${categories_count} + = + true + searchCriteria[pageSize] + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/categories/list + GET + true + false + false + false + false + + + + + false + category_url_keys + url_key\",\"value\":\"(.*?)\" + $1$ + + -1 + + + + false + category_names + name\":\"(.*?)\" + $1$ + + -1 + + + category_url_keys @@ -880,15 +980,15 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr import java.util.ArrayList; - // If it is first iteration of cycle then recreate category url key list - if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) { - categoryUrlKeysList = new ArrayList(); - props.put("category_url_keys_list", categoryUrlKeysList); - props.put("category_url_key", vars.get("category_url_key")); - } else { - categoryUrlKeysList = props.get("category_url_keys_list"); - } - categoryUrlKeysList.add(vars.get("category_url_key")); +// If it is first iteration of cycle then recreate category url key list +if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) { + categoryUrlKeysList = new ArrayList(); + props.put("category_url_keys_list", categoryUrlKeysList); + props.put("category_url_key", vars.get("category_url_key")); +} else { + categoryUrlKeysList = props.get("category_url_keys_list"); +} +categoryUrlKeysList.add(vars.get("category_url_key")); false @@ -913,16 +1013,16 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr import java.util.ArrayList; - // If it is first iteration of cycle then recreate category name list - if (1 == Integer.parseInt(vars.get("category_name_counter"))) { - categoryNamesList = new ArrayList(); - props.put("category_names_list",categoryNamesList); - props.put("category_name", vars.get("category_name")); - } else { - categoryNamesList = props.get("category_names_list"); - } - log.info("category name: " + vars.get("category_name")); - categoryNamesList.add(vars.get("category_name")); +// If it is first iteration of cycle then recreate category name list +if (1 == Integer.parseInt(vars.get("category_name_counter"))) { + categoryNamesList = new ArrayList(); + props.put("category_names_list",categoryNamesList); + props.put("category_name", vars.get("category_name")); +} else { + categoryNamesList = props.get("category_names_list"); +} + +categoryNamesList.add(vars.get("category_name")); false @@ -931,11 +1031,12 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr props.put("category_url_key", vars.get("category_url_key")); - props.put("category_name", vars.get("category_name")); +props.put("category_name", vars.get("category_name")); false + @@ -2050,11 +2151,11 @@ if (props.get("category_names_list") == null) { mpaf/tool/fragments/_system/thread_group.jmx - + 1 false 1 - ${browseCatalogByCustomerPercentage} + ${browseCatalogByGuestPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -2075,510 +2176,7 @@ if (testLabel - vars.put("testLabel", "Catalog Browsing By Customer"); - - true - - - - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; - -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} - -vars.putObject("randomIntGenerator", random); - - - - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("category_url_keys_list").size()); - -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); - - - - false - mpaf/tool/fragments/ce/common/extract_category_setup.jmx - - - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/login/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_login_page.jmx - - - - <title>Customer Login</title> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - - - - - - - ${request_protocol} - - ${base_path}customer/account/loginPost/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/common/login.jmx - - - - <title>My Account</title> - - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - addressId - - - - - - - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - - - - - - - - ${request_protocol} - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_home_page.jmx - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${category_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_category.jmx - - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - - false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> - $1$ - - 1 - simple_product_1_url_key - - - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - - - - - - true - 2 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("configurable_products_list").size()); -product = props.get("configurable_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - - - 1 - false - 1 - ${browseCatalogByGuestPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Catalog Browsing By Guest"); + vars.put("testLabel", "Catalog Browsing By Guest"); true @@ -8147,12 +7745,29 @@ if(curSampler.getName().contains("Checkout success")) { - - + + + + + continue + + false + ${loops} + + ${adminPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + 1 false 1 - ${reviewByCustomerPercentage} + ${adminProductEditingPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -8173,95 +7788,71 @@ if (testLabel - vars.put("testLabel", "Product Review By Customer"); + vars.put("testLabel", "Admin Edit Product"); true - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} + formKey = vars.get("form_key_storage"); -vars.putObject("randomIntGenerator", random); + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } - - - true - - + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); - - - true - + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + @@ -8271,7 +7862,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/login/ + ${base_path}${admin_path} GET true false @@ -8279,87 +7870,28 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/common/open_login_page.jmx - - - - <title>Customer Login</title> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - - - - - - - ${request_protocol} - - ${base_path}customer/account/loginPost/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/common/login.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - + - <title>My Account</title> + Welcome + <title>Magento Admin</title> Assertion.response_data false 2 - + false - addressId - customer/address/edit/id/([^'"]+)/ + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ 1 - + ^.+$ @@ -8367,164 +7899,41 @@ vars.put("customer_email", emails_list.get(emails_index)); false 1 variable - addressId + admin_form_key - + + - + true = true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ + dummy - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - true - ${form_key} + ${admin_form_key} = true form_key - - true - 3 - = - true - ratings[1] - - - true - - = - true - validate_rating - - - true - FirstName - = - true - nickname - - + true - Some Review Title + ${admin_password} = true - title + login[password] - + true - Some Review Text + ${admin_user} = true - detail + login[username] @@ -8534,1423 +7943,155 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}review/product/post/id/${product_id} + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false - mpaf/tool/fragments/ce/product_review/product_review.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - - HTTP/1.1 200 OK - - Assertion.response_headers - false - 16 - - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + - - - - - - true - review,messages - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_review/load_review.jmx - - - - 1 - 0 - ${__javaScript(Math.round(${reviewDelay}*1000))} - mpaf/tool/fragments/ce/product_review/product_review_pause.jmx - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/logout/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/logout.jmx + + mpaf/tool/fragments/ce/simple_controller.jmx + - - - You are signed out. - - Assertion.response_data - false - 2 - - - - + + + + mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx + import java.util.ArrayList; + import java.util.HashMap; - - - 1 - false - 1 - ${addToCartByCustomerPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Add To Cart By Customer"); - - true - - - - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; - -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} - -vars.putObject("randomIntGenerator", random); - - - - true - - - - - mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx - -vars.put("totalProductsAdded", "0"); - - - - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("category_url_keys_list").size()); - -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); - - - - false - mpaf/tool/fragments/ce/common/extract_category_setup.jmx - - - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; +try { + simpleCount = props.get("simple_products_list").size(); + configCount = props.get("configurable_products_list").size(); + productCount = 0; + if (simpleCount > configCount) { + productCount = configCount; + } else { + productCount = simpleCount; + } + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + threadsNumber = 1; + } + //Current thread number starts from 0 + currentThreadNum = ctx.getThreadNum(); -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ + String siterator = vars.get("threadIterator_" + currentThreadNum.toString()); iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} + if(siterator == null){ + vars.put("threadIterator_" + currentThreadNum.toString() , "0"); + } else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString()); + } -emails_list = props.get("customer_emails_list"); + //Number of products for one thread + productClusterLength = productCount / threadsNumber; -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); + if (iterator >= productClusterLength) { + vars.put("threadIterator_" + currentThreadNum.toString(), "0"); + iterator = 0; } -} -vars.put("customer_email", emails_list.get(emails_index)); - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/login/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_login_page.jmx - - - - <title>Customer Login</title> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - - - - - - - ${request_protocol} - - ${base_path}customer/account/loginPost/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/common/login.jmx - - - - <title>My Account</title> - - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - addressId - - - - - - - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - - - - - - - - ${request_protocol} - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_home_page.jmx - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${category_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_category.jmx - - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - - false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> - $1$ - - 1 - simple_product_1_url_key - - - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - - - - - - true - 2 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); + //Index of the current product from the cluster + i = productClusterLength * currentThreadNum + iterator; -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - - - mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx - -productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); -productsAdded = productsAdded + 1; + //ids of simple and configurable products to edit + vars.put("simple_product_id", props.get("simple_products_list").get(i).get("id")); + vars.put("configurable_product_id", props.get("configurable_products_list").get(i).get("id")); -vars.put("totalProductsAdded", String.valueOf(productsAdded)); - - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${product_id} - = - true - product - - - true - - = - true - related_product - - - true - 1 - = - true - qty - - - true - ${form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}checkout/cart/add/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - true - cart,messages - = - true - sections - - - true - true - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/load_cart_section.jmx - - - - You added ${product_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - This product is out of stock. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":${totalProductsAdded} - - Assertion.response_data - false - 2 - - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("configurable_products_list").size()); -product = props.get("configurable_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - - - mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx - -productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); -productsAdded = productsAdded + 1; - -vars.put("totalProductsAdded", String.valueOf(productsAdded)); - - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - true - 1 - mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/configurable-products/${product_sku}/options/all - GET - true - false - true - false - false - - - - - attribute_ids - $.[*].attribute_id - NO_VALUE - - BODY - - - - option_values - $.[*].values[0].value_index - NO_VALUE - - BODY - - - - - - - - - - true - ${product_id} - = - true - product - - - true - - = - true - related_product - - - true - 1 - = - true - qty - - - true - ${form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}checkout/cart/add/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx - - - false - - - - try { - attribute_ids = vars.get("attribute_ids"); - option_values = vars.get("option_values"); - attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); - option_values = option_values.replace("[","").replace("]","").replace("\"", ""); - attribute_ids_array = attribute_ids.split(","); - option_values_array = option_values.split(","); - args = ctx.getCurrentSampler().getArguments(); - it = args.iterator(); - while (it.hasNext()) { - argument = it.next(); - if (argument.getStringValue().contains("${")) { - args.removeArgument(argument.getName()); - } - } - for (int i = 0; i < attribute_ids_array.length; i++) { - ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); - } - } catch (Exception e) { - log.error("eror…", e); - } - - mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - true - cart,messages - = - true - sections - - - true - true - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/load_cart_section.jmx - - - - You added ${product_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - This product is out of stock. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":${totalProductsAdded} - - Assertion.response_data - false - 2 - - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - - - continue - - false - ${loops} - - ${adminPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx - - - 1 - false - 1 - ${adminProductEditingPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Edit Product"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx - import java.util.ArrayList; - import java.util.HashMap; - -try { - simpleCount = props.get("simple_products_list").size(); - configCount = props.get("configurable_products_list").size(); - productCount = 0; - if (simpleCount > configCount) { - productCount = configCount; - } else { - productCount = simpleCount; - } - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - threadsNumber = 1; - } - //Current thread number starts from 0 - currentThreadNum = ctx.getThreadNum(); - - String siterator = vars.get("threadIterator_" + currentThreadNum.toString()); - iterator = 0; - if(siterator == null){ - vars.put("threadIterator_" + currentThreadNum.toString() , "0"); - } else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString()); - } - - //Number of products for one thread - productClusterLength = productCount / threadsNumber; - //Index of the current product from the cluster - i = productClusterLength * currentThreadNum + iterator; - - if (iterator >= productClusterLength) { - vars.put("threadIterator_" + currentThreadNum.toString(), "0"); - iterator = 0; - } - - //ids of simple and configurable products to edit - vars.put("simple_product_id", props.get("simple_products_list").get(i).get("id")); - vars.put("configurable_product_id", props.get("configurable_products_list").get(i).get("id")); - - //id of related product - do { - relatedIndex = (int)(Math.random() * props.get("simple_products_list").size()); - } while(i == relatedIndex); - vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); - } catch (Exception ex) { - log.info("Script execution failed", ex); -} - - - false - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/ - GET - true - false - true - false - false - - - - - - Product - - Assertion.response_data - false - 16 - - - - false - simple_product_name - ,"name":"([^'"]+)", - $1$ - - 1 - - - - false - simple_product_sku - ,"sku":"([^'"]+)", - $1$ - - 1 - - - - false - simple_product_category_id - ,"category_ids":."(\d+)". - $1$ - - 1 - - - - - Passing arguments between threads - //Additional category to be added + //id of related product + do { + relatedIndex = (int)(Math.random() * props.get("simple_products_list").size()); + } while(i == relatedIndex); + vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); + } catch (Exception ex) { + log.info("Script execution failed", ex); +} + + + false + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/ + GET + true + false + true + false + false + + + + + + Product + + Assertion.response_data + false + 16 + + + + false + simple_product_name + ,"name":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_sku + ,"sku":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_category_id + ,"category_ids":."(\d+)". + $1$ + + 1 + + + + + Passing arguments between threads + //Additional category to be added int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); if (categoryId > 4) { @@ -12245,173 +10386,7 @@ vars.put("related_product_id", props.get("simple_products_list").get(relatedInde - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - Content-Type - application/json - - - Accept - */* - - - mpaf/tool/fragments/ce/api/header_manager_before_token.jmx - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - - Authorization - Bearer ${admin_token} - - - mpaf/tool/fragments/ce/api/header_manager.jmx - - - - - - - false - mysize,mycolor - = - true - searchCriteria[filterGroups][0][filters][0][value] - - - false - attribute_code - = - true - searchCriteria[filterGroups][0][filters][0][field] - - - false - in - = - true - searchCriteria[filterGroups][0][filters][0][condition_type] - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/products/attributes - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx - - - product_attributes - $.items - - - BODY - - - - javascript - - - - -var attributesData = JSON.parse(vars.get("product_attributes")), -maxOptions = 2; - -attributes = []; -for (i in attributesData) { - if (i >= 2) { - break; - } - var data = attributesData[i], - attribute = { - "id": data.attribute_id, - "code": data.attribute_code, - "label": data.default_frontend_label, - "options": [] - }; - - var processedOptions = 0; - for (optionN in data.options) { - var option = data.options[optionN]; - if (parseInt(option.value) > 0 && processedOptions < maxOptions) { - processedOptions++; - attribute.options.push(option); - } - } - attributes.push(attribute); -} - -vars.putObject("product_attributes", attributes); - - - - - - - + @@ -12421,7 +10396,8 @@ vars.putObject("product_attributes", attributes); ${request_protocol} - ${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter} + + ${base_path}${admin_path}/catalog/product_attribute/index/filter/YXR0cmlidXRlX2NvZGU9Y29sb3I GET true false @@ -12429,81 +10405,1976 @@ vars.putObject("product_attributes", attributes); false false - mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx - + mpaf/tool/fragments/ce/admin_create_product/get_color_attribute_id.jmx false - attribute_set_id - catalog\/product_set\/edit\/id\/([\d]+)\/"[\D\d]*Attribute Set 1 + color_id + product_attribute\/edit\/attribute_id\/([\d]+)\/" >.*\s*(color).* $1$ 1 - - false - - - import org.apache.commons.codec.binary.Base64; + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_id", simpleList.get("id")); -byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes()); -vars.put("attribute_set_filter", new String(encodedBytes)); - - - +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_id", simpleList.get("id")); + +number2 = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number2); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); + +//Additional category to be added +//int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); +//vars.put("category_additional", (categoryId+1).toString()); +//New price +vars.put("price_new", "9999"); +//New special price +vars.put("special_price_new", "8888"); +//New quantity +vars.put("quantity_new", "100600"); + + + true + mpaf/tool/fragments/ce/admin_create_product/setup.jmx + + + + mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + + + true + option title one + = + true + bundle_options[0][title] + + + true + + = + true + bundle_options[0][option_id] + + + true + + = + true + bundle_options[0][delete] + + + true + select + = + true + bundle_options[0][type] + + + true + 1 + = + true + bundle_options[0][required] + + + true + 0 + = + true + bundle_options[0][position] + + + true + + = + true + bundle_selections[0][0][selection_id] + + + true + + = + true + bundle_selections[0][0][option_id] + + + true + ${simple_product_1_id} + = + true + bundle_selections[0][0][product_id] + + + true + + = + true + bundle_selections[0][0][delete] + + + true + 0.00 + = + true + bundle_selections[0][0][selection_price_value] + + + true + 0 + = + true + bundle_selections[0][0][selection_price_type] + + + true + 1 + = + true + bundle_selections[0][0][selection_qty] + + + true + 1 + = + true + bundle_selections[0][0][selection_can_change_qty] + + + true + 0 + = + true + bundle_selections[0][0][position] + + + true + + = + true + bundle_selections[0][1][selection_id] + + + true + + = + true + bundle_selections[0][1][option_id] + + + true + ${simple_product_2_id} + = + true + bundle_selections[0][1][product_id] + + + true + + = + true + bundle_selections[0][1][delete] + + + true + 0.00 + = + true + bundle_selections[0][1][selection_price_value] + + + true + 0 + = + true + bundle_selections[0][1][selection_price_type] + + + true + 1 + = + true + bundle_selections[0][1][selection_qty] + + + true + 1 + = + true + bundle_selections[0][1][selection_can_change_qty] + + + true + 1 + = + true + bundle_selections[0][1][position] + + + true + option title two + = + true + bundle_options[1][title] + + + true + + = + true + bundle_options[1][option_id] + + + true + + = + true + bundle_options[1][delete] + + + true + select + = + true + bundle_options[1][type] + + + true + 1 + = + true + bundle_options[1][required] + + + true + 1 + = + true + bundle_options[1][position] + + + true + + = + true + bundle_selections[1][0][selection_id] + true + + + true + + = + true + bundle_selections[1][0][option_id] + true + + + true + ${simple_product_1_id} + = + true + bundle_selections[1][0][product_id] + true + + + true + + = + true + bundle_selections[1][0][delete] + true + + + true + 0.00 + = + true + bundle_selections[1][0][selection_price_value] + true + + + true + 0 + = + true + bundle_selections[1][0][selection_price_type] + true + + + true + 1 + = + true + bundle_selections[1][0][selection_qty] + true + + + true + 1 + = + true + bundle_selections[1][0][selection_can_change_qty] + true + + + true + 0 + = + true + bundle_selections[1][0][position] + true + + + true + + = + true + bundle_selections[1][1][selection_id] + true + + + true + + = + true + bundle_selections[1][1][option_id] + true + + + true + ${simple_product_2_id} + = + true + bundle_selections[1][1][product_id] + true + + + true + + = + true + bundle_selections[1][1][delete] + true + + + true + 0.00 + = + true + bundle_selections[1][1][selection_price_value] + true + + + true + 0 + = + true + bundle_selections[1][1][selection_price_type] + true + + + true + 1 + = + true + bundle_selections[1][1][selection_qty] + true + + + true + 1 + = + true + bundle_selections[1][1][selection_can_change_qty] + true + + + true + 1 + = + true + bundle_selections[1][1][position] + true + + + true + 2 + = + true + affect_bundle_product_selections + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + false + + + true + option title one + = + true + bundle_options[0][title] + false + + + true + + = + true + bundle_options[0][option_id] + false + + + true + + = + true + bundle_options[0][delete] + false + + + true + select + = + true + bundle_options[0][type] + false + + + true + 1 + = + true + bundle_options[0][required] + false + + + true + 0 + = + true + bundle_options[0][position] + false + + + true + + = + true + bundle_selections[0][0][selection_id] + false + + + true + + = + true + bundle_selections[0][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_selections[0][0][product_id] + false + + + true + + = + true + bundle_selections[0][0][delete] + false + + + true + 0.00 + = + true + bundle_selections[0][0][selection_price_value] + false + + + true + 0 + = + true + bundle_selections[0][0][selection_price_type] + false + + + true + 1 + = + true + bundle_selections[0][0][selection_qty] + false + + + true + 1 + = + true + bundle_selections[0][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_selections[0][0][position] + false + + + true + + = + true + bundle_selections[0][1][selection_id] + false + + + true + + = + true + bundle_selections[0][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_selections[0][1][product_id] + false + + + true + + = + true + bundle_selections[0][1][delete] + false + + + true + 0.00 + = + true + bundle_selections[0][1][selection_price_value] + false + + + true + 0 + = + true + bundle_selections[0][1][selection_price_type] + false + + + true + 1 + = + true + bundle_selections[0][1][selection_qty] + false + + + true + 1 + = + true + bundle_selections[0][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_selections[0][1][position] + false + + + true + option title two + = + true + bundle_options[1][title] + false + + + true + + = + true + bundle_options[1][option_id] + false + + + true + + = + true + bundle_options[1][delete] + false + + + true + select + = + true + bundle_options[1][type] + false + + + true + 1 + = + true + bundle_options[1][required] + false + + + true + 1 + = + true + bundle_options[1][position] + false + + + true + + = + true + bundle_selections[1][0][selection_id] + false + + + true + + = + true + bundle_selections[1][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_selections[1][0][product_id] + false + + + true + + = + true + bundle_selections[1][0][delete] + false + + + true + 0.00 + = + true + bundle_selections[1][0][selection_price_value] + false + + + true + 0 + = + true + bundle_selections[1][0][selection_price_type] + false + + + true + 1 + = + true + bundle_selections[1][0][selection_qty] + false + + + true + 1 + = + true + bundle_selections[1][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_selections[1][0][position] + false + + + true + + = + true + bundle_selections[1][1][selection_id] + false + + + true + + = + true + bundle_selections[1][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_selections[1][1][product_id] + false + + + true + + = + true + bundle_selections[1][1][delete] + false + + + true + 0.00 + = + true + bundle_selections[1][1][selection_price_value] + false + + + true + 0 + = + true + bundle_selections[1][1][selection_price_type] + false + + + true + 1 + = + true + bundle_selections[1][1][selection_qty] + false + + + true + 1 + = + true + bundle_selections[1][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_selections[1][1][position] + false + + + true + 2 + = + true + affect_bundle_product_selections + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - import org.apache.jmeter.samplers.SampleResult; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_id", simpleList.get("id")); -vars.put("simple_product_1_name", simpleList.get("title")); - -do { - number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_id", simpleList.get("id")); -vars.put("simple_product_2_name", simpleList.get("title")); - -number2 = random.nextInt(props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number2); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); - -//Additional category to be added -//int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); -//vars.put("category_additional", (categoryId+1).toString()); -//New price -vars.put("price_new", "9999"); -//New special price -vars.put("special_price_new", "8888"); -//New quantity -vars.put("quantity_new", "100600"); -vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}"); - - - - - true - mpaf/tool/fragments/ce/admin_create_product/setup.jmx - - - mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx + + mpaf/tool/fragments/ce/admin_create_product/create_configurable_product.jmx @@ -12536,7 +12407,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu - + @@ -12546,7 +12417,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu ${request_protocol} - ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/ + ${base_path}${admin_path}/catalog/product/new/set/4/type/configurable/ GET true false @@ -12566,837 +12437,935 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu - + - + true - true + form_key + ${admin_form_key} = true - ajax - false - + true - true + options[0][attribute_id] + ${color_id} = true - isAjax - false - + true - ${admin_form_key} + options[0][id] + PQFYFAT = true - form_key - false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + options[0][is_new] + true = true - product[name] - false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + options[0][label] + green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[sku] - false - + true - 42 + options[0][value] + 0 = true - product[price] - + true - 2 + ${color_id} = true - product[tax_class_id] + options[1][attribute_id] + true - + true - 111 + PQFYFAT1 = true - product[quantity_and_stock_status][qty] + options[1][id] + true - + true - 1 + true = true - product[quantity_and_stock_status][is_in_stock] + options[1][is_new] + true - + true - 1.0000 + red-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[weight] + options[1][label] + true - + true - 1 + 0 = true - product[product_has_weight] + options[1][value] true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_attribute/createOptions/?isAjax=true + POST + true + false + true + false + false + + + + + first_option + $.PQFYFAT + + + BODY + + + + second_option + $.PQFYFAT1 + + + BODY + + + + + + + true - 2 + true = true - product[category_ids][] + ajax + false - + true - <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + true = true - product[description] + isAjax + false - + true - <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + 1 = true - product[short_description] + affect_configurable_product_attributes + true - + true - 1 + color = true - product[status] + attribute_codes[0] + true - + true - + ${color_id} = true - product[configurable_variations] + attributes[0] + true - + true - 1 + Color:green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - affect_configurable_product_attributes + configurable-matrix[0][attributes] + true - + true - + 1 = true - product[image] + configurable-matrix[0][canEdit] + true - - true - + + false + {"color":"${first_option}"} = true - product[small_image] + configurable-matrix[0][configurable_attribute] + true - + true - + green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[thumbnail] + configurable-matrix[0][name] + true - + true - bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + 1 = true - product[url_key] + configurable-matrix[0][newProduct] + true - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + 100 = true - product[meta_title] + configurable-matrix[0][price] + true - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + $ = true - product[meta_keyword] + configurable-matrix[0][price_currency] + true - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + $100 = true - product[meta_description] + configurable-matrix[0][price_string] + true - + true - 1 + 150 = true - product[website_ids][] + configurable-matrix[0][qty] + true - + true - 99 + 0 = true - product[special_price] + configurable-matrix[0][record_id] + true - + true - 1 + green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[stock_data][notify_stock_qty] + configurable-matrix[0][sku] + true - + true = true - product[special_from_date] + configurable-matrix[0][small_image] + true - + true - + 1 = true - product[special_to_date] + configurable-matrix[0][status] + true - + true = true - product[cost] + configurable-matrix[0][swatch_image] + true - + true - 0 + = true - product[tier_price][0][website_id] + configurable-matrix[0][thumbnail] + true - + true - 32000 + ${first_option} = true - product[tier_price][0][cust_group] + configurable-matrix[0][variationKey] + true - + true - 100 + 6 = true - product[tier_price][0][price_qty] + configurable-matrix[0][weight] + true - + true - 90 + Color:red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tier_price][0][price] + configurable-matrix[1][attributes] + true - + true - + 1 = true - product[tier_price][0][delete] + configurable-matrix[1][canEdit] + true - - true - 0 + + false + {"color":"${second_option}"} = true - product[tier_price][1][website_id] + configurable-matrix[1][configurable_attribute] + true - + true - 1 + red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tier_price][1][cust_group] + configurable-matrix[1][name] + true - + true - 101 + 1 = true - product[tier_price][1][price_qty] + configurable-matrix[1][newProduct] + true - + true - 99 + 100 = true - product[tier_price][1][price] + configurable-matrix[1][price] + true - + true - + $ = true - product[tier_price][1][delete] + configurable-matrix[1][price_currency] + true - + true - 1 + $100 = true - product[stock_data][use_config_manage_stock] + configurable-matrix[1][price_string] + true - + true - 100500 + 50 = true - product[stock_data][original_inventory_qty] + configurable-matrix[1][qty] + true - + true - 100500 + 1 = true - product[stock_data][qty] + configurable-matrix[1][record_id] + true - + true - 0 + red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[stock_data][min_qty] + configurable-matrix[1][sku] + true - + true - 1 + = true - product[stock_data][use_config_min_qty] + configurable-matrix[1][small_image] + true - + true 1 = true - product[stock_data][min_sale_qty] + configurable-matrix[1][status] + true - + true - 1 + = true - product[stock_data][use_config_min_sale_qty] + configurable-matrix[1][swatch_image] + true - + true - 10000 + = true - product[stock_data][max_sale_qty] + configurable-matrix[1][thumbnail] + true - + true - 1 + ${second_option} = true - product[stock_data][use_config_max_sale_qty] + configurable-matrix[1][variationKey] + true - + true - 0 + 6 = true - product[stock_data][is_qty_decimal] + configurable-matrix[1][weight] + true - + true - 0 + ${admin_form_key} = true - product[stock_data][is_decimal_divided] + form_key + true - + true - 0 + 4 = true - product[stock_data][backorders] + new-variations-attribute-set-id + true - + true 1 = true - product[stock_data][use_config_backorders] + product[affect_product_custom_options] + true - + true - 1 + 4 = true - product[stock_data][use_config_notify_stock_qty] + product[attribute_set_id] + true - + true - 0 + 4 = true - product[stock_data][enable_qty_increments] + product[category_ids][0] + true - + true - 0 + ${color_id} = true - product[stock_data][qty_increments] + product[configurable_attributes_data][${color_id}][attribute_id] + true - + true - 1 + color = true - product[stock_data][use_config_qty_increments] + product[configurable_attributes_data][${color_id}][code] + true - + true - 1 + Color = true - product[stock_data][is_in_stock] + product[configurable_attributes_data][${color_id}][label] + true - + true - + 0 = true - product[custom_design] + product[configurable_attributes_data][${color_id}][position] + true - + true - + 1 = true - product[custom_design_from] + product[configurable_attributes_data][${color_id}][values][${first_option}][include] + true - + true - + ${first_option} = true - product[custom_design_to] + product[configurable_attributes_data][${color_id}][values][${first_option}][value_index] + true - + true - + 1 = true - product[custom_layout_update] + product[configurable_attributes_data][${color_id}][values][${second_option}][include] + true - + true - + ${second_option} = true - product[page_layout] + product[configurable_attributes_data][${color_id}][values][${second_option}][value_index] + true - + true - container2 + = true - product[options_container] + product[custom_layout_update] + true - + true = true - new-variations-attribute-set-id + product[description] + true - + true 0 = true - product[shipment_type] + product[gift_message_available] + true - + true - option title one + 1 = true - bundle_options[bundle_options][0][title] + product[gift_wrapping_available] + true - + true = true - bundle_options[bundle_options][0][option_id] + product[gift_wrapping_price] + true - + true = true - bundle_options[bundle_options][0][delete] - - - true - select - = - true - bundle_options[bundle_options][0][type] - - - true - 1 - = - true - bundle_options[bundle_options][0][required] + product[image] + true - + true - 0 + 2 = true - bundle_options[bundle_options][0][position] + product[is_returnable] + true - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description = true - bundle_options[bundle_options][0][bundle_selections][0][selection_id] + product[meta_description] + true - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword = true - bundle_options[bundle_options][0][bundle_selections][0][option_id] + product[meta_keyword] + true - + true - ${simple_product_1_id} + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title = true - bundle_options[bundle_options][0][bundle_selections][0][product_id] + product[meta_title] + true - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - bundle_options[bundle_options][0][bundle_selections][0][delete] + product[name] + true - + true - 25 + container2 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + product[options_container] + true - + true - 1 + ${price_new} = true - bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + product[price] + true - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + product[product_has_weight] + true - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + product[quantity_and_stock_status][is_in_stock] + true - + true - 0 + 1000 = true - bundle_options[bundle_options][0][bundle_selections][0][position] + product[quantity_and_stock_status][qty] + true - + true = true - bundle_options[bundle_options][0][bundle_selections][1][selection_id] + product[short_description] + true - + true - + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - bundle_options[bundle_options][0][bundle_selections][1][option_id] + product[sku] + true - + true - ${simple_product_2_id} + = true - bundle_options[bundle_options][0][bundle_selections][1][product_id] + product[small_image] + true - + true - + ${special_price_new} = true - bundle_options[bundle_options][0][bundle_selections][1][delete] + product[special_price] + true - + true - 10.99 + 1 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + product[status] + true - + true 0 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + product[stock_data][backorders] + true - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + product[stock_data][deferred_stock_update] + true - + true - 1 + 0 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + product[stock_data][enable_qty_increments] + true - + true - 1 + 0 = true - bundle_options[bundle_options][0][bundle_selections][1][position] + product[stock_data][is_decimal_divided] + true - + true - option title two + 0 = true - bundle_options[bundle_options][1][title] + product[stock_data][is_qty_decimal] + true - + true - + 1 = true - bundle_options[bundle_options][1][option_id] + product[stock_data][manage_stock] + true - + true - + 10000 = true - bundle_options[bundle_options][1][delete] + product[stock_data][max_sale_qty] + true - + true - select + 0 = true - bundle_options[bundle_options][1][type] + product[stock_data][min_qty] + true - + true 1 = true - bundle_options[bundle_options][1][required] + product[stock_data][min_sale_qty] + true - + true 1 = true - bundle_options[bundle_options][1][position] - - - true - - = - true - bundle_options[bundle_options][1][bundle_selections][0][selection_id] + product[stock_data][notify_stock_qty] true - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][option_id] + product[stock_data][qty_increments] true - + true - ${simple_product_1_id} + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][product_id] + product[stock_data][use_config_backorders] true - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][delete] + product[stock_data][use_config_deferred_stock_update] true - + true - 5.00 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + product[stock_data][use_config_enable_qty_increments] true - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + product[stock_data][use_config_manage_stock] true - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + product[stock_data][use_config_max_sale_qty] true - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + product[stock_data][use_config_min_qty] true - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][position] + product[stock_data][use_config_min_sale_qty] true - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_id] + product[stock_data][use_config_notify_stock_qty] true - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][option_id] + product[stock_data][use_config_qty_increments] true - + true - ${simple_product_2_id} + 2 = true - bundle_options[bundle_options][1][bundle_selections][1][product_id] + product[tax_class_id] true - + true = true - bundle_options[bundle_options][1][bundle_selections][1][delete] + product[thumbnail] true - + true - 7.00 + = true - bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + product[url_key] true - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + product[use_config_gift_message_available] true - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + product[use_config_gift_wrapping_available] true - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + product[use_config_is_returnable] true - + true - 1 + 4 = true - bundle_options[bundle_options][1][bundle_selections][1][position] + product[visibility] true - + true - 2 + 1 = true - affect_bundle_product_selections + product[website_ids][1] true @@ -13469,7 +13438,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu - + @@ -13488,422 +13457,405 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu isAjax false - + true - ${admin_form_key} + 1 = true - form_key + affect_configurable_product_attributes false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + color = true - product[name] + attribute_codes[0] false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + ${color_id} = true - product[sku] + attributes[0] false - - true - 42 - = - true - product[price] - - + true - 2 + Color:green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tax_class_id] + configurable-matrix[0][attributes] + false - + true - 111 + 1 = true - product[quantity_and_stock_status][qty] + configurable-matrix[0][canEdit] + false - - true - 1 + + false + {"color":"${first_option}"} = true - product[quantity_and_stock_status][is_in_stock] + configurable-matrix[0][configurable_attribute] + false - + true - 1.0000 + green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[weight] + configurable-matrix[0][name] + false - + true 1 = true - product[product_has_weight] - true + configurable-matrix[0][newProduct] + false - + true - 2 + 100 = true - product[category_ids][] + configurable-matrix[0][price] + false - + true - <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + $ = true - product[description] + configurable-matrix[0][price_currency] + false - + true - <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + $100 = true - product[short_description] + configurable-matrix[0][price_string] + false - + true - 1 + 150 = true - product[status] + configurable-matrix[0][qty] + false - + true - + 0 = true - product[configurable_variations] + configurable-matrix[0][record_id] + false - + true - 1 + green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - affect_configurable_product_attributes + configurable-matrix[0][sku] + false - + true = true - product[image] + configurable-matrix[0][small_image] + false - + true - + 1 = true - product[small_image] + configurable-matrix[0][status] + false - + true = true - product[thumbnail] + configurable-matrix[0][swatch_image] + false - + true - bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = true - product[url_key] + configurable-matrix[0][thumbnail] + false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + ${first_option} = true - product[meta_title] + configurable-matrix[0][variationKey] + false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + 6 = true - product[meta_keyword] + configurable-matrix[0][weight] + false - + true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + Color:red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[meta_description] + configurable-matrix[1][attributes] + false - + true 1 = true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] + configurable-matrix[1][canEdit] + false - - true - + + false + {"color":"${second_option}"} = true - product[cost] + configurable-matrix[1][configurable_attribute] + false - + true - 0 + red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tier_price][0][website_id] + configurable-matrix[1][name] + false - + true - 32000 + 1 = true - product[tier_price][0][cust_group] + configurable-matrix[1][newProduct] + false - + true 100 = true - product[tier_price][0][price_qty] + configurable-matrix[1][price] + false - + true - 90 + $ = true - product[tier_price][0][price] + configurable-matrix[1][price_currency] + false - + true - + $100 = true - product[tier_price][0][delete] + configurable-matrix[1][price_string] + false - + true - 0 + 50 = true - product[tier_price][1][website_id] + configurable-matrix[1][qty] + false - + true 1 = true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] + configurable-matrix[1][record_id] + false - + true - 99 + red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tier_price][1][price] + configurable-matrix[1][sku] + false - + true = true - product[tier_price][1][delete] + configurable-matrix[1][small_image] + false - + true 1 = true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] + configurable-matrix[1][status] + false - + true - 100500 + = true - product[stock_data][qty] + configurable-matrix[1][swatch_image] + false - + true - 0 + = true - product[stock_data][min_qty] + configurable-matrix[1][thumbnail] + false - + true - 1 + ${second_option} = true - product[stock_data][use_config_min_qty] + configurable-matrix[1][variationKey] + false - + true - 1 + 6 = true - product[stock_data][min_sale_qty] + configurable-matrix[1][weight] + false - + true - 1 + ${admin_form_key} = true - product[stock_data][use_config_min_sale_qty] + form_key + false - + true - 10000 + 4 = true - product[stock_data][max_sale_qty] + new-variations-attribute-set-id + false - + true 1 = true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] + product[affect_product_custom_options] + false - + true - 0 + 4 = true - product[stock_data][backorders] + product[attribute_set_id] + false - + true - 1 + 4 = true - product[stock_data][use_config_backorders] + product[category_ids][0] + false - + true - 1 + ${color_id} = true - product[stock_data][notify_stock_qty] + product[configurable_attributes_data][${color_id}][attribute_id] + false - + true - 1 + color = true - product[stock_data][use_config_notify_stock_qty] + product[configurable_attributes_data][${color_id}][code] + false - + true - 0 + Color = true - product[stock_data][enable_qty_increments] + product[configurable_attributes_data][${color_id}][label] + false - + true 0 = true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] + product[configurable_attributes_data][${color_id}][position] + false - + true 1 = true - product[stock_data][is_in_stock] + product[configurable_attributes_data][${color_id}][values][${first_option}][include] + false - + true - + ${first_option} = true - product[custom_design] + product[configurable_attributes_data][${color_id}][values][${first_option}][value_index] + false - + true - + 1 = true - product[custom_design_from] + product[configurable_attributes_data][${color_id}][values][${second_option}][include] + false - + true - + ${second_option} = true - product[custom_design_to] + product[configurable_attributes_data][${color_id}][values][${second_option}][value_index] + false true @@ -13911,426 +13863,390 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu = true product[custom_layout_update] + false - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - + true = true - new-variations-attribute-set-id + product[description] + false - + true 0 = true - product[shipment_type] + product[gift_message_available] false - + true - option title one + 1 = true - bundle_options[bundle_options][0][title] + product[gift_wrapping_available] false - + true = true - bundle_options[bundle_options][0][option_id] + product[gift_wrapping_price] false - + true = true - bundle_options[bundle_options][0][delete] - false - - - true - select - = - true - bundle_options[bundle_options][0][type] - false - - - true - 1 - = - true - bundle_options[bundle_options][0][required] + product[image] false - + true - 0 + 2 = true - bundle_options[bundle_options][0][position] + product[is_returnable] false - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description = true - bundle_options[bundle_options][0][bundle_selections][0][selection_id] + product[meta_description] false - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword = true - bundle_options[bundle_options][0][bundle_selections][0][option_id] + product[meta_keyword] false - + true - ${simple_product_1_id} + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title = true - bundle_options[bundle_options][0][bundle_selections][0][product_id] + product[meta_title] false - + true - + Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - bundle_options[bundle_options][0][bundle_selections][0][delete] + product[name] false - + true - 25 + container2 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + product[options_container] false - + true - 1 + ${price_new} = true - bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + product[price] false - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + product[product_has_weight] false - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + product[quantity_and_stock_status][is_in_stock] false - + true - 0 + 1000 = true - bundle_options[bundle_options][0][bundle_selections][0][position] + product[quantity_and_stock_status][qty] false - + true = true - bundle_options[bundle_options][0][bundle_selections][1][selection_id] + product[short_description] false - + true - + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - bundle_options[bundle_options][0][bundle_selections][1][option_id] + product[sku] false - + true - ${simple_product_2_id} + = true - bundle_options[bundle_options][0][bundle_selections][1][product_id] + product[small_image] false - + true - + ${special_price_new} = true - bundle_options[bundle_options][0][bundle_selections][1][delete] + product[special_price] false - + true - 10.99 + 1 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + product[status] false - + true 0 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + product[stock_data][backorders] false - + true 1 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + product[stock_data][deferred_stock_update] false - + true - 1 + 0 = true - bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + product[stock_data][enable_qty_increments] false - + true - 1 + 0 = true - bundle_options[bundle_options][0][bundle_selections][1][position] + product[stock_data][is_decimal_divided] false - + true - option title two + 0 = true - bundle_options[bundle_options][1][title] + product[stock_data][is_qty_decimal] false - + true - + 1 = true - bundle_options[bundle_options][1][option_id] + product[stock_data][manage_stock] false - + true - + 10000 = true - bundle_options[bundle_options][1][delete] + product[stock_data][max_sale_qty] false - + true - select + 0 = true - bundle_options[bundle_options][1][type] + product[stock_data][min_qty] false - + true 1 = true - bundle_options[bundle_options][1][required] + product[stock_data][min_sale_qty] false - + true 1 = true - bundle_options[bundle_options][1][position] - false - - - true - - = - true - bundle_options[bundle_options][1][bundle_selections][0][selection_id] + product[stock_data][notify_stock_qty] false - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][option_id] + product[stock_data][qty_increments] false - + true - ${simple_product_1_id} + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][product_id] + product[stock_data][use_config_backorders] false - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][delete] + product[stock_data][use_config_deferred_stock_update] false - + true - 5.00 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + product[stock_data][use_config_enable_qty_increments] false - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + product[stock_data][use_config_manage_stock] false - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + product[stock_data][use_config_max_sale_qty] false - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + product[stock_data][use_config_min_qty] false - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][0][position] + product[stock_data][use_config_min_sale_qty] false - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_id] + product[stock_data][use_config_notify_stock_qty] false - + true - + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][option_id] + product[stock_data][use_config_qty_increments] false - + true - ${simple_product_2_id} + 2 = true - bundle_options[bundle_options][1][bundle_selections][1][product_id] + product[tax_class_id] false - + true = true - bundle_options[bundle_options][1][bundle_selections][1][delete] + product[thumbnail] false - + true - 7.00 + = true - bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + product[url_key] false - + true - 0 + 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + product[use_config_gift_message_available] false - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + product[use_config_gift_wrapping_available] false - + true 1 = true - bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + product[use_config_is_returnable] false - + true - 1 + 4 = true - bundle_options[bundle_options][1][bundle_selections][1][position] + product[visibility] false - + true - 2 + 1 = true - affect_bundle_product_selections + product[website_ids][1] false @@ -14383,7 +14299,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu ${request_protocol} - ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/ + ${base_path}${admin_path}/catalog/product/save/set/4/type/configurable/back/edit/active_tab/product-details/ POST true false @@ -14393,1331 +14309,26 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu - - - You saved the product - option title one - option title two - ${simple_product_2_name} - ${simple_product_1_name} - - - Assertion.response_data - false - 2 - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx - - - - New Product - - Assertion.response_data - false - 2 - - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - 1 - = - true - affect_configurable_product_attributes - true - - - true - ${admin_form_key} - = - true - form_key - true - - - true - ${attribute_set_id} - = - true - new-variations-attribute-set-id - true - - - true - 1 - = - true - product[affect_product_custom_options] - true - - - true - ${attribute_set_id} - = - true - product[attribute_set_id] - true - - - true - 4 - = - true - product[category_ids][0] - true - - - true - - = - true - product[custom_layout_update] - true - - - true - - = - true - product[description] - true - - - true - 0 - = - true - product[gift_message_available] - true - - - true - 1 - = - true - product[gift_wrapping_available] - true - - - true - - = - true - product[gift_wrapping_price] - true - - - true - - = - true - product[image] - true - - - true - 2 - = - true - product[is_returnable] - true - - - true - ${configurable_sku} - Meta Description - = - true - product[meta_description] - true - - - true - ${configurable_sku} - Meta Keyword - = - true - product[meta_keyword] - true - - - true - ${configurable_sku} - Meta Title - = - true - product[meta_title] - true - - - true - ${configurable_sku} - = - true - product[name] - true - - - true - container2 - = - true - product[options_container] - true - - - true - ${price_new} - = - true - product[price] - true - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - true - - - true - 1000 - = - true - product[quantity_and_stock_status][qty] - true - - - true - - = - true - product[short_description] - true - - - true - ${configurable_sku} - = - true - product[sku] - true - - - true - - = - true - product[small_image] - true - - - true - ${special_price_new} - = - true - product[special_price] - true - - - true - 1 - = - true - product[status] - true - - - true - 0 - = - true - product[stock_data][backorders] - true - - - true - 1 - = - true - product[stock_data][deferred_stock_update] - true - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - true - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - true - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - true - - - true - 1 - = - true - product[stock_data][manage_stock] - true - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - true - - - true - 0 - = - true - product[stock_data][min_qty] - true - - - true - 1 - = - true - product[stock_data][min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_backorders] - true - - - true - 1 - = - true - product[stock_data][use_config_deferred_stock_update] - true - - - true - 1 - = - true - product[stock_data][use_config_enable_qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - true - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - true - - - true - 2 - = - true - product[tax_class_id] - true - - - true - - = - true - product[thumbnail] - true - - - true - - = - true - product[url_key] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - true - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - 1 - = - true - product[use_config_is_returnable] - true - - - true - 4 - = - true - product[visibility] - true - - - true - 1 - = - true - product[website_ids][1] - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - javascript - - - - -attributes = vars.getObject("product_attributes"); - -for (i in attributes) { - var attribute = attributes[i]; - sampler.addArgument("attribute_codes[" + i + "]", attribute.code); - sampler.addArgument("attributes[" + i + "]", attribute.id); - sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); - addConfigurableAttributeData(attribute); -} - -addConfigurableMatrix(attributes); - -function addConfigurableAttributeData(attribute) { - var attributeId = attribute.id; - - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); - attribute.options.forEach(function (option, index) { - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); - }); -} - -/** - * Build 4 simple products for Configurable - */ -function addConfigurableMatrix(attributes) { - - var attribute1 = attributes[0], - attribute2 = attributes[1], - productIndex = 1, - products = []; - var variationNames = []; - attribute1.options.forEach(function (option1) { - attribute2.options.forEach(function (option2) { - var productAttributes = {}, - namePart = option1.label + "+" + option2.label, - variationKey = option1.value + "-" + option2.value; - productAttributes[attribute1.code] = option1.value; - productAttributes[attribute2.code] = option2.value; - - variationNames.push(namePart + " - " + vars.get("configurable_sku")); - var product = { - "id": null, - "name": namePart + " - " + vars.get("configurable_sku"), - "sku": namePart + " - " + vars.get("configurable_sku"), - "status": 1, - "price": "100", - "price_currency": "$", - "price_string": "$100", - "weight": "6", - "qty": "50", - "variationKey": variationKey, - "configurable_attribute": JSON.stringify(productAttributes), - "thumbnail_image": "", - "media_gallery": {"images": {}}, - "image": [], - "was_changed": true, - "canEdit": 1, - "newProduct": 1, - "record_id": productIndex - }; - productIndex++; - products.push(product); - }); - }); - - sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); - vars.putObject("configurable_variations_assertion", variationNames); -} - - mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + + + You saved the product + + Assertion.response_data + false + 2 + - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - 1 - = - true - affect_configurable_product_attributes - true - - - true - ${admin_form_key} - = - true - form_key - true - - - true - ${attribute_set_id} - = - true - new-variations-attribute-set-id - true - - - true - 1 - = - true - product[affect_product_custom_options] - true - - - true - ${attribute_set_id} - = - true - product[attribute_set_id] - true - - - true - 4 - = - true - product[category_ids][0] - true - - - true - - = - true - product[custom_layout_update] - true - - - true - - = - true - product[description] - true - - - true - 0 - = - true - product[gift_message_available] - true - - - true - 1 - = - true - product[gift_wrapping_available] - true - - - true - - = - true - product[gift_wrapping_price] - true - - - true - - = - true - product[image] - true - - - true - 2 - = - true - product[is_returnable] - true - - - true - ${configurable_sku} - Meta Description - = - true - product[meta_description] - true - - - true - ${configurable_sku} - Meta Keyword - = - true - product[meta_keyword] - true - - - true - ${configurable_sku} - Meta Title - = - true - product[meta_title] - true - - - true - ${configurable_sku} - = - true - product[name] - true - - - true - container2 - = - true - product[options_container] - true - - - true - ${price_new} - = - true - product[price] - true - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - true - - - true - 1000 - = - true - product[quantity_and_stock_status][qty] - true - - - true - - = - true - product[short_description] - true - - - true - ${configurable_sku} - = - true - product[sku] - true - - - true - - = - true - product[small_image] - true - - - true - ${special_price_new} - = - true - product[special_price] - true - - - true - 1 - = - true - product[status] - true - - - true - 0 - = - true - product[stock_data][backorders] - true - - - true - 1 - = - true - product[stock_data][deferred_stock_update] - true - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - true - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - true - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - true - - - true - 1 - = - true - product[stock_data][manage_stock] - true - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - true - - - true - 0 - = - true - product[stock_data][min_qty] - true - - - true - 1 - = - true - product[stock_data][min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_backorders] - true - - - true - 1 - = - true - product[stock_data][use_config_deferred_stock_update] - true - - - true - 1 - = - true - product[stock_data][use_config_enable_qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - true - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - true - - - true - 2 - = - true - product[tax_class_id] - true - - - true - - = - true - product[thumbnail] - true - - - true - - = - true - product[url_key] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - true - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - 1 - = - true - product[use_config_is_returnable] - true - - - true - 4 - = - true - product[visibility] - true - - - true - 1 - = - true - product[website_ids][1] - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx - - - - You saved the product - - Assertion.response_data - false - 2 - - - - javascript - - - - -var configurableVariations = vars.getObject("configurable_variations_assertion"), -response = SampleResult.getResponseDataAsString(); - -configurableVariations.forEach(function (variation) { - if (response.indexOf(variation) == -1) { - AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\""); - AssertionResult.setFailure(true); - } -}); - - - - - - javascript - - - - -attributes = vars.getObject("product_attributes"); - -for (i in attributes) { - var attribute = attributes[i]; - sampler.addArgument("attribute_codes[" + i + "]", attribute.code); - sampler.addArgument("attributes[" + i + "]", attribute.id); - sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); - addConfigurableAttributeData(attribute); -} - -addConfigurableMatrix(attributes); - -function addConfigurableAttributeData(attribute) { - var attributeId = attribute.id; - - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); - attribute.options.forEach(function (option, index) { - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); - sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); - }); -} - -/** - * Build 4 simple products for Configurable - */ -function addConfigurableMatrix(attributes) { - - var attribute1 = attributes[0], - attribute2 = attributes[1], - productIndex = 1, - products = []; - var variationNames = []; - attribute1.options.forEach(function (option1) { - attribute2.options.forEach(function (option2) { - var productAttributes = {}, - namePart = option1.label + "+" + option2.label, - variationKey = option1.value + "-" + option2.value; - productAttributes[attribute1.code] = option1.value; - productAttributes[attribute2.code] = option2.value; - - variationNames.push(namePart + " - " + vars.get("configurable_sku")); - var product = { - "id": null, - "name": namePart + " - " + vars.get("configurable_sku"), - "sku": namePart + " - " + vars.get("configurable_sku"), - "status": 1, - "price": "100", - "price_currency": "$", - "price_string": "$100", - "weight": "6", - "qty": "50", - "variationKey": variationKey, - "configurable_attribute": JSON.stringify(productAttributes), - "thumbnail_image": "", - "media_gallery": {"images": {}}, - "image": [], - "was_changed": true, - "canEdit": 1, - "newProduct": 1, - "record_id": productIndex - }; - productIndex++; - products.push(product); - }); - }); - - sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); - vars.putObject("configurable_variations_assertion", variationNames); -} - - mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + + + violation + + Assertion.response_data + false + 6 + + - mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx @@ -15783,73 +14394,806 @@ function addConfigurableMatrix(attributes) { - - - - - ${files_folder}downloadable_original.txt - links - text/plain + + + + + ${files_folder}downloadable_original.txt + links + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true + POST + false + false + true + true + false + + + + + original_file + $.file + + + BODY + + + + + + + + ${files_folder}downloadable_sample.txt + samples + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true + POST + false + false + true + true + false + + + + + sample_file + $.file + + + BODY + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + on + = + true + is_downloadable + + + true + Links + = + true + product[links_title] + + + true + 0 + = + true + product[links_purchased_separately] + + + true + ${original_file} + = + true + downloadable[link][0][file][0][file] + false + + + true + downloadable_original.txt + = + true + downloadable[link][0][file][0][name] + false + + + true + 13 + = + true + downloadable[link][0][file][0][size] + false + + + true + new + = + true + downloadable[link][0][file][0][status] + false + + + true + 1 + = + true + downloadable[link][0][is_shareable] + + + true + 0 + = + true + downloadable[link][0][is_unlimited] + + + true + + = + true + downloadable[link][0][link_url] - - - - - + true - ${admin_form_key} + 0 = true - form_key + downloadable[link][0][number_of_downloads] + true + + + true + 120 + = + true + downloadable[link][0][price] + true + + + true + 0 + = + true + downloadable[link][0][record_id] + true + + + true + file + = + true + downloadable[link][0][sample][type] + + + true + + = + true + downloadable[link][0][sample][url] + + + true + 1 + = + true + downloadable[link][0][sort_order] + + + true + Original Link + = + true + downloadable[link][0][title] + + + true + file + = + true + downloadable[link][0][type] + + + true + ${sample_file} + = + true + downloadable[sample][0][file][0][file] + true + + + true + downloadable_sample.txt + = + true + downloadable[sample][0][file][0][name] + true + + + true + 14 + = + true + downloadable[sample][0][file][0][size] + true + + + true + new + = + true + downloadable[sample][0][file][0][status] + true + + + true + 0 + = + true + downloadable[sample][0][record_id] + true + + + true + + = + true + downloadable[sample][0][sample_url] + true + + + true + 1 + = + true + downloadable[sample][0][sort_order] + true + + + true + Sample Link + = + true + downloadable[sample][0][title] + true + + + true + file + = + true + downloadable[sample][0][type] + true + + + true + 1 + = + true + affect_configurable_product_attributes false - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true - POST - false - false - true - true - false - - - - - original_file - $.file - - - BODY - - - - - - - - ${files_folder}downloadable_sample.txt - samples - text/plain + + true + 4 + = + true + new-variations-attribute-set-id + false - - - - - + true - ${admin_form_key} + = true - form_key + product[configurable_variation] false + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + @@ -15858,26 +15202,27 @@ function addConfigurableMatrix(attributes) { ${request_protocol} - ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true + ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/ POST - false + true false true - true + false false - - sample_file - $.file - - - BODY - + + + {"error":false} + + Assertion.response_data + false + 2 + - + @@ -15975,6 +15320,7 @@ function addConfigurableMatrix(attributes) { = true product[short_description] + false true @@ -16046,13 +15392,6 @@ function addConfigurableMatrix(attributes) { true product[special_price] - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true @@ -16235,6 +15574,13 @@ function addConfigurableMatrix(attributes) { true product[stock_data][use_config_backorders] + + true + 1 + = + true + product[stock_data][notify_stock_qty] + true 1 @@ -16312,27 +15658,6 @@ function addConfigurableMatrix(attributes) { true product[options_container] - - true - on - = - true - is_downloadable - - - true - Links - = - true - product[links_title] - - - true - 0 - = - true - product[links_purchased_separately] - true ${original_file} @@ -16371,6 +15696,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][is_shareable] + true true @@ -16378,6 +15704,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][is_unlimited] + true true @@ -16385,6 +15712,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][link_url] + true true @@ -16392,7 +15720,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][number_of_downloads] - true + false true @@ -16400,7 +15728,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][price] - true + false true @@ -16408,7 +15736,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][record_id] - true + false true @@ -16416,6 +15744,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][sample][type] + true true @@ -16423,6 +15752,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][sample][url] + true true @@ -16430,6 +15760,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][sort_order] + true true @@ -16437,6 +15768,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][title] + true true @@ -16444,6 +15776,7 @@ function addConfigurableMatrix(attributes) { = true downloadable[link][0][type] + true true @@ -16591,7 +15924,7 @@ function addConfigurableMatrix(attributes) { ${request_protocol} - ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/ + ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/ POST true false @@ -16603,7 +15936,52 @@ function addConfigurableMatrix(attributes) { - {"error":false} + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found Assertion.response_data false @@ -16611,7 +15989,37 @@ function addConfigurableMatrix(attributes) { - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + @@ -16640,7 +16048,7 @@ function addConfigurableMatrix(attributes) { true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true product[name] @@ -16689,6 +16097,14 @@ function addConfigurableMatrix(attributes) { true product[weight] + + true + 1 + = + true + product[product_has_weight] + true + true 2 @@ -16698,18 +16114,17 @@ function addConfigurableMatrix(attributes) { true - <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> = true product[description] true - <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> = true product[short_description] - false true @@ -16741,28 +16156,28 @@ function addConfigurableMatrix(attributes) { true - downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true product[url_key] true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title = true product[meta_title] true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword = true product[meta_keyword] true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description = true product[meta_description] @@ -16781,6 +16196,13 @@ function addConfigurableMatrix(attributes) { true product[special_price] + + true + 1 + = + true + product[stock_data][notify_stock_qty] + true @@ -16963,13 +16385,6 @@ function addConfigurableMatrix(attributes) { true product[stock_data][use_config_backorders] - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true 1 @@ -17047,197 +16462,197 @@ function addConfigurableMatrix(attributes) { true product[options_container] - + true - ${original_file} + = true - downloadable[link][0][file][0][file] + product[options][1][is_delete] false - + true - downloadable_original.txt + 1 = true - downloadable[link][0][file][0][name] + product[options][1][is_require] false - + true - 13 + select = true - downloadable[link][0][file][0][size] + product[options][1][previous_group] false - + true - new + drop_down = true - downloadable[link][0][file][0][status] + product[options][1][previous_type] false - + true - 1 + 0 = true - downloadable[link][0][is_shareable] - true + product[options][1][sort_order] + false - + true - 0 + Product Option Title One = true - downloadable[link][0][is_unlimited] - true + product[options][1][title] + false - + true - + drop_down = true - downloadable[link][0][link_url] - true + product[options][1][type] + false - + true - 0 + = true - downloadable[link][0][number_of_downloads] + product[options][1][values][1][is_delete] false - + true - 120 + 200 = true - downloadable[link][0][price] + product[options][1][values][1][price] false - + true - 0 + fixed = true - downloadable[link][0][record_id] + product[options][1][values][1][price_type] false - + true - file + sku-one = true - downloadable[link][0][sample][type] - true + product[options][1][values][1][sku] + false - + true - + 0 = true - downloadable[link][0][sample][url] - true + product[options][1][values][1][sort_order] + false - + true - 1 + Row Title = true - downloadable[link][0][sort_order] - true + product[options][1][values][1][title] + false - + true - Original Link + = true - downloadable[link][0][title] - true + product[options][2][is_delete] + false - + true - file + 1 = true - downloadable[link][0][type] - true + product[options][2][is_require] + false - + true - ${sample_file} + 250 = true - downloadable[sample][0][file][0][file] - true + product[options][2][max_characters] + false - + true - downloadable_sample.txt + text = true - downloadable[sample][0][file][0][name] - true + product[options][2][previous_group] + false - + true - 14 + field = true - downloadable[sample][0][file][0][size] - true + product[options][2][previous_type] + false - + true - new + 500 = true - downloadable[sample][0][file][0][status] - true + product[options][2][price] + false - + true - 0 + fixed = true - downloadable[sample][0][record_id] - true + product[options][2][price_type] + false - + true - + sku-two = true - downloadable[sample][0][sample_url] - true + product[options][2][sku] + false - + true 1 = true - downloadable[sample][0][sort_order] - true + product[options][2][sort_order] + false - + true - Sample Link + Field Title = true - downloadable[sample][0][title] - true + product[options][2][title] + false - + true - file + field = true - downloadable[sample][0][type] - true + product[options][2][type] + false true @@ -17245,7 +16660,7 @@ function addConfigurableMatrix(attributes) { = true affect_configurable_product_attributes - false + true true @@ -17253,7 +16668,7 @@ function addConfigurableMatrix(attributes) { = true new-variations-attribute-set-id - false + true true @@ -17261,7 +16676,7 @@ function addConfigurableMatrix(attributes) { = true product[configurable_variation] - false + true true @@ -17313,7 +16728,7 @@ function addConfigurableMatrix(attributes) { ${request_protocol} - ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/ + ${base_path}${admin_path}/catalog/product/validate/set/4/ POST true false @@ -17325,82 +16740,7 @@ function addConfigurableMatrix(attributes) { - You saved the product - - Assertion.response_data - false - 2 - - - - - violation - - Assertion.response_data - false - 6 - - - - - - - mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/ - GET - true - false - true - false - false - - - - - - New Product + {"error":false} Assertion.response_data false @@ -17408,7 +16748,7 @@ function addConfigurableMatrix(attributes) { - + @@ -17503,7 +16843,7 @@ function addConfigurableMatrix(attributes) { true - <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> = true product[description] @@ -17585,13 +16925,6 @@ function addConfigurableMatrix(attributes) { true product[special_price] - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true @@ -17706,408 +17039,1486 @@ function addConfigurableMatrix(attributes) { true - 0 + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + product[options][1][is_delete] + true + + + true + 1 + = + true + product[options][1][is_require] + + + true + select + = + true + product[options][1][previous_group] + false + + + true + drop_down + = + true + product[options][1][previous_type] + false + + + true + 0 + = + true + product[options][1][sort_order] + false + + + true + Product Option Title One + = + true + product[options][1][title] + + + true + drop_down + = + true + product[options][1][type] + + + true + + = + true + product[options][1][values][1][is_delete] + false + + + true + 200 + = + true + product[options][1][values][1][price] + + + true + fixed + = + true + product[options][1][values][1][price_type] + + + true + sku-one + = + true + product[options][1][values][1][sku] + + + true + 0 + = + true + product[options][1][values][1][sort_order] + + + true + Row Title + = + true + product[options][1][values][1][title] + + + true + + = + true + product[options][2][is_delete] + false + + + true + 1 + = + true + product[options][2][is_require] + + + true + 250 + = + true + product[options][2][max_characters] + + + true + text + = + true + product[options][2][previous_group] + + + true + field + = + true + product[options][2][previous_type] + + + true + 500 + = + true + product[options][2][price] + + + true + fixed + = + true + product[options][2][price_type] + + + true + sku-two + = + true + product[options][2][sku] + + + true + 1 + = + true + product[options][2][sort_order] + + + true + Field Title + = + true + product[options][2][title] + + + true + field = true - product[stock_data][min_qty] + product[options][2][type] - + true 1 = true - product[stock_data][use_config_min_qty] + affect_configurable_product_attributes + true - + true - 1 + 4 = true - product[stock_data][min_sale_qty] + new-variations-attribute-set-id + true - + true - 1 + = true - product[stock_data][use_config_min_sale_qty] + product[configurable_variation] + true - + true - 10000 + ${related_product_id} = true - product[stock_data][max_sale_qty] + links[related][0][id] - + true 1 = true - product[stock_data][use_config_max_sale_qty] + links[related][0][position] - + true - 0 + ${related_product_id} = true - product[stock_data][is_qty_decimal] + links[upsell][0][id] - + true - 0 + 1 = true - product[stock_data][is_decimal_divided] + links[upsell][0][position] - + true - 0 + ${related_product_id} = true - product[stock_data][backorders] + links[crosssell][0][id] - + true 1 = true - product[stock_data][use_config_backorders] + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + + + + 1 + false + 1 + ${adminCategoryManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Category Management"); + + true + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + mpaf/tool/fragments/ce/setup/setup_admin_category_management.jmx + + + + props.remove("admin_category_ids_list"); + + + false + + + + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + true + children_count + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + 0 + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + level + = + true + searchCriteria[filterGroups][1][filters][0][field] + + + true + 2 + = + true + searchCriteria[filterGroups][1][filters][0][value] + + + true + gt + = + true + searchCriteria[filterGroups][1][filters][0][conditionType] + + + true + ${adminCategoryCount} + = + true + searchCriteria[pageSize] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories/list + GET + true + false + true + false + false + + + + + false + category_list_id + \{\"id\":(\d+), + $1$ + + -1 + + + + + category_list_id + category_id + true + + + + import java.util.ArrayList; + +adminCategoryIdsList = props.get("admin_category_ids_list"); +// If it is first iteration of cycle then recreate categories ids list +if (adminCategoryIdsList == null) { + adminCategoryIdsList = new ArrayList(); + props.put("admin_category_ids_list", adminCategoryIdsList); +} +adminCategoryIdsList.add(vars.get("category_id")); + + + false + + + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.ArrayList; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { +random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_url_key", simpleList.get("url_key")); +vars.put("simple_product_1_name", simpleList.get("title")); +vars.put("simple_product_1_id", simpleList.get("id")); + +do { +number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_url_key", simpleList.get("url_key")); +vars.put("simple_product_2_name", simpleList.get("title")); +vars.put("simple_product_2_id", simpleList.get("id")); + +do { +number2 = random.nextInt(props.get("simple_products_list").size()); +} while(number2 == number1 || number2 == number); +simpleList = props.get("simple_products_list").get(number2); +vars.put("simple_product_3_url_key", simpleList.get("url_key")); +vars.put("simple_product_3_name", simpleList.get("title")); +vars.put("simple_product_3_id", simpleList.get("id")); + +do { +number3 = random.nextInt(props.get("simple_products_list").size()); +} while(number3 == number2 || number3 == number1 || number3 == number); +simpleList = props.get("simple_products_list").get(number3); +vars.put("simple_product_4_url_key", simpleList.get("url_key")); +vars.put("simple_product_4_name", simpleList.get("title")); +vars.put("simple_product_4_id", simpleList.get("id")); + +do { +number4 = random.nextInt(props.get("simple_products_list").size()); +} while(number4 == number3 || number4 == number2 || number4 == number1 || number4 == number); +simpleList = props.get("simple_products_list").get(number4); +vars.put("simple_product_5_url_key", simpleList.get("url_key")); +vars.put("simple_product_5_name", simpleList.get("title")); +vars.put("simple_product_5_id", simpleList.get("id")); + +categoryIndex = random.nextInt(props.get("admin_category_ids_list").size()); +vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex)); +do { +categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size()); +} while(categoryIndex == categoryIndexNew); +vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew)); + + + true + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - true - 0 - = - true - product[stock_data][enable_qty_increments] + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - true - 0 - = - true - product[stock_data][qty_increments] + + Accept-Encoding + gzip, deflate - - true - 1 - = - true - product[stock_data][use_config_qty_increments] + + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 - - true - 1 - = - true - product[stock_data][is_in_stock] + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - true - - = - true - product[custom_design] + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - true - - = - true - product[custom_design_from] + + Accept-Encoding + gzip, deflate - + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id} + GET + true + false + true + false + false + + + + + + <title>New Category + + Assertion.response_data + false + 2 + + + + + + + true = true - product[custom_design_to] + id - + true - + ${parent_category_id} = true - product[custom_layout_update] + parent - + true = true - product[page_layout] - - - true - container2 - = - true - product[options_container] + path - + true = true - product[options][1][is_delete] - false + store_id - + true - 1 + 0 = true - product[options][1][is_require] - false + is_active - + true - select + 0 = true - product[options][1][previous_group] - false + include_in_menu - + true - drop_down + 1 = true - product[options][1][previous_type] - false + is_anchor - + true - 0 + true = true - product[options][1][sort_order] - false + use_config[available_sort_by] - + true - Product Option Title One + true = true - product[options][1][title] - false + use_config[default_sort_by] - + true - drop_down + true = true - product[options][1][type] - false + use_config[filter_price_range] - + true - + false = true - product[options][1][values][1][is_delete] - false + use_default[url_key] - + true - 200 + 0 = true - product[options][1][values][1][price] - false + url_key_create_redirect - + true - fixed + 0 = true - product[options][1][values][1][price_type] - false + custom_use_parent_settings - + true - sku-one + 0 = true - product[options][1][values][1][sku] - false + custom_apply_to_products - + true - 0 + Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[options][1][values][1][sort_order] - false + name - + true - Row Title + admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[options][1][values][1][title] - false + url_key - + true = true - product[options][2][is_delete] - false + meta_title - + true - 1 + = true - product[options][2][is_require] - false + description - + true - 250 + PRODUCTS = true - product[options][2][max_characters] - false + display_mode - + true - text + position = true - product[options][2][previous_group] - false + default_sort_by - + true - field + = true - product[options][2][previous_type] - false + meta_keywords - + true - 500 + = true - product[options][2][price] - false + meta_description - + true - fixed + = true - product[options][2][price_type] - false + custom_layout_update - - true - sku-two + + false + {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""} = true - product[options][2][sku] - false + category_products - + true - 1 + ${admin_form_key} = true - product[options][2][sort_order] - false + form_key - - true - Field Title - = - true - product[options][2][title] - false + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/save/ + POST + true + false + true + false + false + + + + + URL + admin_category_id + /catalog/category/edit/id/(\d+)/ + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_id + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 - - true - field - = - true - product[options][2][type] - false + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - true - 1 - = - true - affect_configurable_product_attributes - true + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - true - 4 - = - true - new-variations-attribute-set-id - true + + Accept-Encoding + gzip, deflate - + + + + + false + admin_category_entity_id + "entity_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_attribute_set_id + "attribute_set_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_parent_id + "parent_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_created_at + "created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_updated_at + "updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_path + "entity_id":(.+)"path":"([^\"]+)" + $2$ + + 1 + + + + false + admin_category_level + "level":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_name + "entity_id":(.+)"name":"([^"]+)" + $2$ + + 1 + + + + false + admin_category_url_key + "url_key":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_url_path + "url_path":"([^"]+)" + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_entity_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_attribute_set_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_parent_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_updated_at + + + + + ^[\d\\\/]+$ + + Assertion.response_data + false + 1 + variable + admin_category_path + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_level + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_name + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_key + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_path + + + + + ${simple_product_1_name} + ${simple_product_2_name} + ${simple_product_3_name} + ${simple_product_4_name} + ${simple_product_5_name} + + Assertion.response_data + false + 2 + + + + + + + true - + ${admin_category_id} = true - product[configurable_variation] - true + id - + true - ${related_product_id} + ${admin_form_key} = true - links[related][0][id] + form_key - + true - 1 + append = true - links[related][0][position] + point - + true - ${related_product_id} + ${new_parent_category_id} = true - links[upsell][0][id] + pid - + true - 1 + ${parent_category_id} = true - links[upsell][0][position] + paid - + true - ${related_product_id} + 0 = true - links[crosssell][0][id] + aid - + true - 1 + true = true - links[crosssell][0][position] + isAjax @@ -18117,7 +18528,7 @@ function addConfigurableMatrix(attributes) { ${request_protocol} - ${base_path}${admin_path}/catalog/product/validate/set/4/ + ${base_path}${admin_path}/catalog/category/move/ POST true false @@ -18126,10 +18537,30 @@ function addConfigurableMatrix(attributes) { false + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/ + GET + true + false + true + false + false + + - + - {"error":false} + You deleted the category. Assertion.response_data false @@ -18137,688 +18568,587 @@ function addConfigurableMatrix(attributes) { - + + 1 + 0 + ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))} + + + + + + + + + 1 + false + 1 + ${adminPromotionRulesPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Promotion Rules"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx + + + - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/ + GET + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/new + GET + true + false + true + false + false + + + + + + + true - 1.0000 + true = true - product[weight] + isAjax - + true - 1 + ${admin_form_key} = true - product[product_has_weight] + form_key true - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - + true - 100 + 1--1 = true - product[tier_price][0][price_qty] + id - + true - 90 + Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal = true - product[tier_price][0][price] + type - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form + POST + true + false + true + false + false + + + + + + + true - + Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[tier_price][0][delete] + name - + true 0 = true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] + is_active - + true 0 = true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] + use_auto_generation - + true 1 = true - product[stock_data][use_config_max_sale_qty] + is_rss - + true 0 = true - product[stock_data][is_qty_decimal] + apply_to_shipping - + true 0 = true - product[stock_data][is_decimal_divided] + stop_rules_processing - + true - 0 + = true - product[stock_data][backorders] + coupon_code - + true - 1 + = true - product[stock_data][use_config_backorders] + uses_per_coupon - + true - 1 + = true - product[stock_data][notify_stock_qty] + uses_per_customer - + true - 1 + = true - product[stock_data][use_config_notify_stock_qty] + sort_order - + true - 0 + 5 = true - product[stock_data][enable_qty_increments] + discount_amount - + true 0 = true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] + discount_qty - + true = true - product[custom_design_to] + discount_step - + true = true - product[custom_layout_update] + reward_points_delta - + true = true - product[page_layout] - - - true - container2 - = - true - product[options_container] + store_labels[0] - + true - + Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} = true - product[options][1][is_delete] - true + description - + true 1 = true - product[options][1][is_require] + coupon_type - + true - select + cart_fixed = true - product[options][1][previous_group] - false + simple_action - + true - drop_down + 1 = true - product[options][1][previous_type] - false + website_ids[0] - + true 0 = true - product[options][1][sort_order] - false - - - true - Product Option Title One - = - true - product[options][1][title] - - - true - drop_down - = - true - product[options][1][type] + customer_group_ids[0] - + true = true - product[options][1][values][1][is_delete] - false - - - true - 200 - = - true - product[options][1][values][1][price] - - - true - fixed - = - true - product[options][1][values][1][price_type] - - - true - sku-one - = - true - product[options][1][values][1][sku] - - - true - 0 - = - true - product[options][1][values][1][sort_order] - - - true - Row Title - = - true - product[options][1][values][1][title] + from_date - + true = true - product[options][2][is_delete] - false - - - true - 1 - = - true - product[options][2][is_require] - - - true - 250 - = - true - product[options][2][max_characters] - - - true - text - = - true - product[options][2][previous_group] + to_date - + true - field + Magento\SalesRule\Model\Rule\Condition\Combine = true - product[options][2][previous_type] + rule[conditions][1][type] - + true - 500 + all = true - product[options][2][price] + rule[conditions][1][aggregator] - + true - fixed + 1 = true - product[options][2][price_type] + rule[conditions][1][value] - + true - sku-two + Magento\SalesRule\Model\Rule\Condition\Address = true - product[options][2][sku] + rule[conditions][1--1][type] - + true - 1 + base_subtotal = true - product[options][2][sort_order] + rule[conditions][1--1][attribute] - + true - Field Title + >= = true - product[options][2][title] + rule[conditions][1--1][operator] - + true - field + 100 = true - product[options][2][type] + rule[conditions][1--1][value] - + true - 1 + = true - affect_configurable_product_attributes - true + rule[conditions][1][new_chlid] - + true - 4 + Magento\SalesRule\Model\Rule\Condition\Product\Combine = true - new-variations-attribute-set-id - true + rule[actions][1][type] - + true - + all = true - product[configurable_variation] - true + rule[actions][1][aggregator] - + true - ${related_product_id} + 1 = true - links[related][0][id] + rule[actions][1][value] - + true - 1 + = true - links[related][0][position] + rule[actions][1][new_child] - + true - ${related_product_id} + = true - links[upsell][0][id] + store_labels[1] - + true - 1 + = true - links[upsell][0][position] + store_labels[2] - + true - ${related_product_id} + = true - links[crosssell][0][id] + related_banners - + true - 1 + ${admin_form_key} = true - links[crosssell][0][position] + form_key @@ -18828,7 +19158,7 @@ function addConfigurableMatrix(attributes) { ${request_protocol} - ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/ + ${base_path}${admin_path}/sales_rule/promo_quote/save/ POST true false @@ -18840,33 +19170,30 @@ function addConfigurableMatrix(attributes) { - You saved the product - - Assertion.response_data - false - 2 - - - - - violation + You saved the rule. Assertion.response_data false - 6 + 16 + + 1 + 0 + ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))} + + - + 1 false 1 - ${adminCategoryManagementPercentage} + ${adminEditOrderPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -18887,12 +19214,60 @@ if (testLabel - vars.put("testLabel", "Admin Category Management"); + vars.put("testLabel", "Admin Edit Order"); true + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + false @@ -19016,963 +19391,660 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + - - mpaf/tool/fragments/ce/setup/setup_admin_category_management.jmx + + mpaf/tool/fragments/ce/simple_controller.jmx - - props.remove("admin_category_ids_list"); - - - false - - - - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - true - children_count - = - true - searchCriteria[filterGroups][0][filters][0][field] - - - true - 0 - = - true - searchCriteria[filterGroups][0][filters][0][value] - - - true - level - = - true - searchCriteria[filterGroups][1][filters][0][field] - - - true - 2 - = - true - searchCriteria[filterGroups][1][filters][0][value] - - - true - gt - = - true - searchCriteria[filterGroups][1][filters][0][conditionType] - - - true - ${adminCategoryCount} - = - true - searchCriteria[pageSize] - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/categories - GET - true - false - true - false - false - - - - - false - category_list_id - \{\"id\":(\d+), - $1$ - - -1 - - - - - category_list_id - category_id - true - - - - import java.util.ArrayList; + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + - adminCategoryIdsList = props.get("admin_category_ids_list"); - // If it is first iteration of cycle then recreate categories ids list - if (adminCategoryIdsList == null) { - adminCategoryIdsList = new ArrayList(); - props.put("admin_category_ids_list", adminCategoryIdsList); - } - adminCategoryIdsList.add(vars.get("category_id")); - - - false - - - - + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx - import org.apache.jmeter.samplers.SampleResult; -import java.util.ArrayList; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { -random.setSeed(${seedForRandom}); -} -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); -do { -number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; -do { -number2 = random.nextInt(props.get("simple_products_list").size()); -} while(number2 == number1 || number2 == number); -simpleList = props.get("simple_products_list").get(number2); -vars.put("simple_product_3_url_key", simpleList.get("url_key")); -vars.put("simple_product_3_name", simpleList.get("title")); -vars.put("simple_product_3_id", simpleList.get("id")); + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); -do { -number3 = random.nextInt(props.get("simple_products_list").size()); -} while(number3 == number2 || number3 == number1 || number3 == number); -simpleList = props.get("simple_products_list").get(number3); -vars.put("simple_product_4_url_key", simpleList.get("url_key")); -vars.put("simple_product_4_name", simpleList.get("title")); -vars.put("simple_product_4_id", simpleList.get("id")); -do { -number4 = random.nextInt(props.get("simple_products_list").size()); -} while(number4 == number3 || number4 == number2 || number4 == number1 || number4 == number); -simpleList = props.get("simple_products_list").get(number4); -vars.put("simple_product_5_url_key", simpleList.get("url_key")); -vars.put("simple_product_5_name", simpleList.get("title")); -vars.put("simple_product_5_id", simpleList.get("id")); + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } -categoryIndex = random.nextInt(props.get("admin_category_ids_list").size()); -vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex)); -do { -categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size()); -} while(categoryIndex == categoryIndexNew); -vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew)); - - - true - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id} - GET - true - false - true - false - false - - - - - - <title>New Category - - Assertion.response_data - false - 2 - - - - - - - - true - - = - true - id - - - true - ${parent_category_id} - = - true - parent - - - true - - = - true - path - - - true - - = - true - store_id - - - true - 0 - = - true - is_active - - - true - 0 - = - true - include_in_menu - - - true - 1 - = - true - is_anchor - - - true - true - = - true - use_config[available_sort_by] - - - true - true - = - true - use_config[default_sort_by] - - - true - true - = - true - use_config[filter_price_range] - - - true - false - = - true - use_default[url_key] - - - true - 0 - = - true - url_key_create_redirect - - - true - 0 - = - true - custom_use_parent_settings - - - true - 0 - = - true - custom_apply_to_products - - - true - Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - name - - - true - admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - url_key - - - true - - = - true - meta_title - - - true - - = - true - description - - - true - PRODUCTS - = - true - display_mode - - - true - position - = - true - default_sort_by - - - true - - = - true - meta_keywords - - - true - - = - true - meta_description - - - true - - = - true - custom_layout_update - - - false - {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""} - = - true - category_products - - - true - ${admin_form_key} - = - true - form_key - - + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx + + + + + + true + pending + = + true + history[status] + false + + + true + Some text + = + true + history[comment] + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx + + + + Not Notified + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/save/ - POST - true - false - true - false - false - - - - - URL - admin_category_id - /catalog/category/edit/id/(\d+)/ - $1$ - - 1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_id - - - - - - + + true + 1 + = + true + invoice[items][${item_ids_1}] - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - false - admin_category_entity_id - "entity_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_attribute_set_id - "attribute_set_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_parent_id - "parent_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_created_at - "created_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_updated_at - "updated_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_path - "entity_id":(.+)"path":"([^\"]+)" - $2$ - - 1 - - - - false - admin_category_level - "level":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_name - "entity_id":(.+)"name":"([^"]+)" - $2$ - - 1 - - - - false - admin_category_url_key - "url_key":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_url_path - "url_path":"([^"]+)" - $1$ - - 1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_entity_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_attribute_set_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_parent_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_created_at - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_updated_at - - - - - ^[\d\\\/]+$ - - Assertion.response_data - false - 1 - variable - admin_category_path - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_level - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_name - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_url_key - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_url_path - - - - - ${simple_product_1_name} - ${simple_product_2_name} - ${simple_product_3_name} - ${simple_product_4_name} - ${simple_product_5_name} - - Assertion.response_data - false - 2 - - - - - - - - true - ${admin_category_id} - = - true - id - - - true - ${admin_form_key} - = - true - form_key - - - true - append - = - true - point - - - true - ${new_parent_category_id} - = - true - pid - - - true - ${parent_category_id} - = - true - paid - - - true - 0 - = - true - aid - - - true - true - = - true - isAjax - - + + true + 1 + = + true + invoice[items][${item_ids_2}] - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/move/ - POST - true - false - true - false - false - - + + true + Invoiced + = + true + invoice[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx + + + + New Shipment + + Assertion.response_data + false + 2 + - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/ - GET - true - false - true - false - false - - - - - - You deleted the category. - - Assertion.response_data - false - 2 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))} - + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + shipment[items][${item_ids_1}] + + + true + 1 + = + true + shipment[items][${item_ids_2}] + + + true + Shipped + = + true + shipment[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx + + + + The shipment has been created + + Assertion.response_data + false + 2 + + - - + + + + + continue + + false + ${loops} + + ${csrPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + 1 false 1 - ${adminPromotionRulesPercentage} + ${adminReturnsManagementPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -19993,7 +20065,7 @@ if (testLabel - vars.put("testLabel", "Admin Promotion Rules"); + vars.put("testLabel", "Admin Returns Management"); true @@ -20171,418 +20243,708 @@ if (testLabel - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx - + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + + + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; + + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); + + + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } + + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx - - - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/ - GET - true - false - true - false - false - - - - - - + + true + 1 + = + true + invoice[items][${item_ids_1}] - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/new - GET - true - false - true - false - false - - - - - - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - true - - - true - 1--1 - = - true - id - - - true - Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal - = - true - type - - + + true + 1 + = + true + invoice[items][${item_ids_2}] - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form - POST - true - false - true - false - false - - - - - - - - true - Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - name - - - true - 0 - = - true - is_active - - - true - 0 - = - true - use_auto_generation - - - true - 1 - = - true - is_rss - - - true - 0 - = - true - apply_to_shipping - - - true - 0 - = - true - stop_rules_processing - - - true - - = - true - coupon_code - - - true - - = - true - uses_per_coupon - - - true - - = - true - uses_per_customer - - - true - - = - true - sort_order - - - true - 5 - = - true - discount_amount - - - true - 0 - = - true - discount_qty - - - true - - = - true - discount_step - - - true - - = - true - reward_points_delta - - - true - - = - true - store_labels[0] - - - true - Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - description - - - true - 1 - = - true - coupon_type - - - true - cart_fixed - = - true - simple_action - - - true - 1 - = - true - website_ids[0] - - - true - 0 - = - true - customer_group_ids[0] - - - true - - = - true - from_date - - - true - - = - true - to_date - - - true - Magento\SalesRule\Model\Rule\Condition\Combine - = - true - rule[conditions][1][type] - - - true - all - = - true - rule[conditions][1][aggregator] - - - true - 1 - = - true - rule[conditions][1][value] - - - true - Magento\SalesRule\Model\Rule\Condition\Address - = - true - rule[conditions][1--1][type] - - - true - base_subtotal - = - true - rule[conditions][1--1][attribute] - - - true - >= - = - true - rule[conditions][1--1][operator] - - - true - 100 - = - true - rule[conditions][1--1][value] - - - true - - = - true - rule[conditions][1][new_chlid] - - - true - Magento\SalesRule\Model\Rule\Condition\Product\Combine - = - true - rule[actions][1][type] - - - true - all - = - true - rule[actions][1][aggregator] - - - true - 1 - = - true - rule[actions][1][value] - - - true - - = - true - rule[actions][1][new_child] - - - true - - = - true - store_labels[1] - - - true - - = - true - store_labels[2] - - - true - - = - true - related_banners - - - true - ${admin_form_key} - = - true - form_key - - + + true + Invoiced + = + true + invoice[comment_text] - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/save/ - POST - true - false - true - false - false - - - - - - You saved the rule. - - Assertion.response_data - false - 16 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))} - - - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx + + + + New Memo + + Assertion.response_data + false + 2 + + + + + + 1 + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_submit.jmx + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + creditmemo[items][${item_ids_1}][qty] + + + true + 1 + = + true + creditmemo[items][${item_ids_2}][qty] + + + true + 1 + = + true + creditmemo[do_offline] + + + true + Credit Memo added + = + true + creditmemo[comment_text] + + + true + 10 + = + true + creditmemo[shipping_amount] + + + true + 0 + = + true + creditmemo[adjustment_positive] + + + true + 0 + = + true + creditmemo[adjustment_negative] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ + POST + true + false + true + false + false + + + + + + You created the credit memo + + Assertion.response_data + false + 2 + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + creditmemo[items][${item_ids_1}][qty] + + + true + 1 + = + true + creditmemo[do_offline] + + + true + Credit Memo added + = + true + creditmemo[comment_text] + + + true + 10 + = + true + creditmemo[shipping_amount] + + + true + 0 + = + true + creditmemo[adjustment_positive] + + + true + 0 + = + true + creditmemo[adjustment_negative] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ + POST + true + false + true + false + false + + + + + + You created the credit memo + + Assertion.response_data + false + 2 + + + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))} + mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx + + - + 1 false 1 - ${adminEditOrderPercentage} + ${browseCustomerGridPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -20603,7 +20965,7 @@ if (testLabel - vars.put("testLabel", "Admin Edit Order"); + vars.put("testLabel", "Browse Customer Grid"); true @@ -20663,6 +21025,27 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + vars.put("gridEntityType" , "Customer"); + + pagesCount = parseInt(vars.get("customers_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "customer_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "group_id"); + vars.put("grid_sort_field_3", "billing_country_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx + + mpaf/tool/fragments/ce/once_only_controller.jmx @@ -20677,7 +21060,293 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ GET true false @@ -20685,70 +21354,122 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - + + $.totalRecords + 0 + true + false + true + true + - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - + + entity_total_records + $.totalRecords + + + BODY + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + - + + true + ${grid_namespace} + = + true + namespace + true + + true = true - dummy + search + true - + true - ${admin_form_key} + true = true - form_key + filters[placeholder] + true - + true - ${admin_password} + ${grid_entity_page_size} = true - login[password] + paging[pageSize] + true - + true - ${admin_user} + ${page_number} = true - login[username] + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true @@ -20758,432 +21479,331 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}${admin_path}/mui/index/render/ + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx - - - - Create New Order - - Assertion.response_data - false - 2 - + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + - - - - - true - sales_order_grid - = - true - namespace - - - true - - = - true - search - - - true - true - = - true - filters[placeholder] - - - true - 200 - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - increment_id - = - true - sorting[field] - - - true - desc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - false - - - true - pending - = - true - filters[status] - true - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - + + + 1 + false + 1 + ${adminCreateOrderPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Create Order"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - sales_order_grid - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - 200 - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - increment_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - true - pending - = - true - filters[status] - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx - - + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + - totalRecords + Welcome + <title>Magento Admin</title> Assertion.response_data false 2 - + false - order_numbers - \"increment_id\":\"(\d+)\"\, + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ - -1 - simple_products + 1 - - false - order_ids - \"entity_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + - - - mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx - - import java.util.ArrayList; - import java.util.HashMap; - import org.apache.jmeter.protocol.http.util.Base64Encoder; - import java.util.Random; - - // get count of "order_numbers" variable defined in "Search Pending Orders Limit" - int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); - - - int clusterLength; - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - //Number of orders for one thread - clusterLength = ordersCount; - } else { - clusterLength = Math.round(ordersCount / threadsNumber); - if (clusterLength == 0) { - clusterLength = 1; - } - } - - //Current thread number starts from 0 - int currentThreadNum = ctx.getThreadNum(); - - //Index of the current product from the cluster - Random random = new Random(); - int iterator = random.nextInt(clusterLength); - if (iterator == 0) { - iterator = 1; - } - - int i = clusterLength * currentThreadNum + iterator; - - orderNumber = vars.get("order_numbers_" + i.toString()); - orderId = vars.get("order_ids_" + i.toString()); - vars.put("order_number", orderNumber); - vars.put("order_id", orderId); - - - - - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx - - - - #${order_number} - - Assertion.response_data - false - 2 - - - - false - order_status - <span id="order_status">([^<]+)</span> - $1$ - - 1 - simple_products - - - - - - "${order_status}" == "Pending" - false - mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx - - + + - + true - pending + = true - history[status] - false + dummy - + true - Some text + ${admin_form_key} = true - history[comment] + form_key - + true - ${admin_form_key} + ${admin_password} = true - form_key - false + login[password] + + + true + ${admin_user} + = + true + login[username] @@ -21193,225 +21813,1042 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false - mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - - Not Notified - - Assertion.response_data - false - 2 - - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx - - - - Invoice Totals - - Assertion.response_data - false - 2 - - - - false - item_ids - <div id="order_item_(\d+)_title"\s*class="product-title"> - $1$ - - -1 - simple_products - - + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_url_key", simpleList.get("url_key")); +vars.put("simple_product_1_name", simpleList.get("title")); +vars.put("simple_product_1_id", simpleList.get("id")); + +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_url_key", simpleList.get("url_key")); +vars.put("simple_product_2_name", simpleList.get("title")); +vars.put("simple_product_2_id", simpleList.get("id")); + +number = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_sku", configurableList.get("sku")); +vars.put("configurable_attribute_id", configurableList.get("attribute_id")); +vars.put("configurable_option_id", configurableList.get("attribute_option_id")); + + +customers_index = 0; +if (!props.containsKey("customer_ids_index")) { + props.put("customer_ids_index", customers_index); +} + +try { + customers_index = props.get("customer_ids_index"); + customers_list = props.get("customer_ids_list"); + + if (customers_index == customers_list.size()) { + customers_index=0; + } + vars.put("customer_id", customers_list.get(customers_index)); + props.put("customer_ids_index", ++customers_index); +} +catch (java.lang.Exception e) { + log.error("Caught Exception in 'Admin Create Order' thread."); + SampleResult.setStopThread(true); +} + + + true + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/start/ + GET + true + false + true + false + false + + Detected the start of a redirect chain + + + + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + + + + true + item[${simple_product_1_id}][qty] + 1 + = + true + + + true + item[${simple_product_2_id}][qty] + 1 + = + true + + + true + item[${configurable_product_1_id}][qty] + 1 + = + true + + + true + customer_id + ${customer_id} + = + true + + + true + store_id + 1 + = + true + + + true + currency_id + + = + true + + + true + form_key + ${admin_form_key} + = + true + + + true + payment[method] + checkmo + = + true + + + true + reset_shipping + 1 + = + true + + + true + json + 1 + = + true + + + true + as_js_varname + iFrameResponse + = + true + + + true + form_key + ${admin_form_key} + = + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + false + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { - - - - - true - ${admin_form_key} - = - true - form_key - false + ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]); + } +} catch (Exception e) { + log.error("error???", e); +} + + + + + + + + true + collect_shipping_rates + 1 + = + true + + + true + customer_id + ${customer_id} + = + true + + + true + store_id + 1 + = + true + + + true + currency_id + false + = + true + + + true + form_key + ${admin_form_key} + = + true + + + true + payment[method] + checkmo + = + true + + + true + json + true + = + true + + - - true - 1 - = - true - invoice[items][${item_ids_1}] + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true + POST + true + false + true + false + false + + + + + + shipping_method + Flat Rate + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + limit + 20 + = + true + + + true + entity_id + + = + true + + + true + name + + = + true + + + true + email + + = + true + + + true + Telephone + + = + true + + + true + billing_postcode + + = + true + + + true + billing_country_id + + = + true + + + true + billing_regione + + = + true + + + true + store_name + + = + true + + + true + page + 1 + = + true + + + true + order[currency] + USD + = + true + + + true + sku + + = + true + + + true + qty + + = + true + + + true + limit + 20 + = + true + + + true + entity_id + + = + true + + + true + name + + = + true + + + true + sku + + = + true + + + true + price[from] + + = + true + + + true + price[to] + + = + true + + + true + in_products + + = + true + + + true + page + 1 + = + true + + + true + coupon_code + + = + true + + + true + order[account][group_id] + 1 + = + true + + + true + order[account][email] + user_${customer_id}@example.com + = + true + + + true + order[billing_address][customer_address_id] + + = + true + + + true + order[billing_address][prefix] + + = + true + + + true + order[billing_address][firstname] + Anthony + = + true + + + true + order[billing_address][middlename] + + = + true + + + true + order[billing_address][lastname] + Nealy + = + true + + + true + order[billing_address][suffix] + + = + true + + + true + order[billing_address][company] + + = + true + + + true + order[billing_address][street][0] + 123 Freedom Blvd. #123 + = + true + + + true + order[billing_address][street][1] + + = + true + + + true + order[billing_address][city] + Fayetteville + = + true + + + true + order[billing_address][country_id] + US + = + true + + + true + order[billing_address][region] + + = + true + + + true + order[billing_address][region_id] + 5 + = + true + + + true + order[billing_address][postcode] + 123123 + = + true + + + true + order[billing_address][telephone] + 022-333-4455 + = + true + + + true + order[billing_address][fax] + + = + true + + + true + order[billing_address][vat_id] + + = + true + + + true + shipping_same_as_billing + on + = + true + + + true + payment[method] + checkmo + = + true + + + true + order[shipping_method] + flatrate_flatrate + = + true + + + true + order[comment][customer_note] + + = + true + + + true + order[comment][customer_note_notify] + 1 + = + true + + + true + order[send_confirmation] + 1 + = + true + + - - true - 1 - = - true - invoice[items][${item_ids_2}] + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/save/ + POST + true + false + true + true + false + + Detected the start of a redirect chain + + + + false + order_id + ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/ + $1$ + + 1 + + + + false + order_item_1 + order_item_(\d+)_title + $1$ + + 1 + + + + false + order_item_2 + order_item_(\d+)_title + $1$ + + 2 + + + + false + order_item_3 + order_item_(\d+)_title + $1$ + + 3 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_2 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_3 + + + + + You created the order. + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + invoice[items][${order_item_1}] + 1 + = + true + + + true + invoice[items][${order_item_2}] + 1 + = + true + + + true + invoice[items][${order_item_3}] + 1 + = + true + + + true + invoice[comment_text] + + = + true + + - - true - Invoiced - = - true - invoice[comment_text] + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + + The invoice has been created. + + Assertion.response_data + false + 2 + + + + + + + + true + form_key + ${admin_form_key} + = + true + + + true + shipment[items][${order_item_1}] + 1 + = + true + + + true + shipment[items][${order_item_2}] + 1 + = + true + + + true + shipment[items][${order_item_3}] + 1 + = + true + + + true + shipment[comment_text] + + = + true + + - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx - - - - The invoice has been created - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx - - - - New Shipment - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - shipment[items][${item_ids_1}] - - - true - 1 - = - true - shipment[items][${item_ids_2}] - - - true - Shipped - = - true - shipment[comment_text] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx - - - - The shipment has been created - - Assertion.response_data - false - 2 - - + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + + The shipment has been created. + + Assertion.response_data + false + 2 + + + + - + + + continue + + false + ${loops} + + ${othersPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + 1 false @@ -23275,952 +24712,180 @@ if (testLabel true - - = - true - address[${admin_customer_address_entity_id}][street][1] - - - true - - = - true - address[${admin_customer_address_entity_id}][suffix] - - - true - ${admin_customer_address_telephone} - = - true - address[${admin_customer_address_entity_id}][telephone] - - - true - - = - true - address[${admin_customer_address_entity_id}][vat_id] - - - true - ${admin_customer_address_customer_id} - = - true - address[${admin_customer_address_entity_id}][customer_id] - - - true - true - = - true - address[${admin_customer_address_entity_id}][default_billing] - - - true - true - = - true - address[${admin_customer_address_entity_id}][default_shipping] - - - true - - = - true - address[new_0][prefix] - - - true - John - = - true - address[new_0][firstname] - - - true - - = - true - address[new_0][middlename] - - - true - Doe - = - true - address[new_0][lastname] - - - true - - = - true - address[new_0][suffix] - - - true - Test Company - = - true - address[new_0][company] - - - true - Folsom - = - true - address[new_0][city] - - - true - 95630 - = - true - address[new_0][postcode] - - - true - 1234567890 - = - true - address[new_0][telephone] - - - true - - = - true - address[new_0][vat_id] - - - true - false - = - true - address[new_0][default_billing] - - - true - false - = - true - address[new_0][default_shipping] - - - true - 123 Main - = - true - address[new_0][street][0] - - - true - - = - true - address[new_0][street][1] - - - true - - = - true - address[new_0][region] - - - true - US - = - true - address[new_0][country_id] - - - true - 12 - = - true - address[new_0][region_id] - - - true - ${admin_form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/customer/index/save/ - POST - true - false - true - true - false - - - - - - You saved the customer. - - Assertion.response_data - false - 2 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))} - - - - - - - - - 1 - false - 1 - ${adminCMSManagementPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin CMS Management"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/ - GET - true - false - true - false - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/new - GET - true - false - true - false - false - - - - - - - - true - <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = true - content + address[${admin_customer_address_entity_id}][street][1] - + true = true - content_heading + address[${admin_customer_address_entity_id}][suffix] - + true - ${admin_form_key} + ${admin_customer_address_telephone} = true - form_key + address[${admin_customer_address_entity_id}][telephone] - + true = true - identifier + address[${admin_customer_address_entity_id}][vat_id] - + true - 1 + ${admin_customer_address_customer_id} = true - is_active + address[${admin_customer_address_entity_id}][customer_id] - + true - + true = true - layout_update_xml + address[${admin_customer_address_entity_id}][default_billing] - + + true + true + = + true + address[${admin_customer_address_entity_id}][default_shipping] + + true = true - meta_description + address[new_0][prefix] - + + true + John + = + true + address[new_0][firstname] + + true = true - meta_keywords + address[new_0][middlename] - + + true + Doe + = + true + address[new_0][lastname] + + true = true - meta_title + address[new_0][suffix] - - false - {} + + true + Test Company = true - nodes_data + address[new_0][company] - + + true + Folsom + = + true + address[new_0][city] + + + true + 95630 + = + true + address[new_0][postcode] + + + true + 1234567890 + = + true + address[new_0][telephone] + + true = true - node_ids + address[new_0][vat_id] - + + true + false + = + true + address[new_0][default_billing] + + + true + false + = + true + address[new_0][default_shipping] + + + true + 123 Main + = + true + address[new_0][street][0] + + true = true - page_id + address[new_0][street][1] - + true - 1column + = true - page_layout + address[new_0][region] - + true - 0 + US = true - store_id[0] + address[new_0][country_id] - + true - CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + 12 = true - title + address[new_0][region_id] - + true - 0 + ${admin_form_key} = true - website_root + form_key - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/save/ - POST - true - false - true - false - false - - - - - - You saved the page. - - Assertion.response_data - false - 16 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))} - - - - - - - - - 1 - false - 1 - ${adminAccountManagementPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Account management"); - - true - - - - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_home_page.jmx - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/login/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_login_page.jmx - - - - <title>Customer Login</title> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - - - - - - - ${request_protocol} - - ${base_path}customer/account/loginPost/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/common/login.jmx - - - - <title>My Account</title> - - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - addressId - - - - - - - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - - - - - - - - ${request_protocol} - - ${base_path}sales/order/history/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/account_management/my_orders.jmx - - - - <title>My Orders</title> - - Assertion.response_data - false - 2 - - - - false - orderId - sales/order/view/order_id/(\d+)/ - $1$ - NOT_FOUND - 1 - - - - - - mpaf/tool/fragments/ce/account_management/if_orders.jmx - "${orderId}" != "NOT_FOUND" - false - - - - - + @@ -24228,222 +24893,127 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}sales/order/view/order_id/${orderId} - GET + ${base_path}${admin_path}/customer/index/save/ + POST true false true - false + true false - + - <title>Order # + You saved the customer. Assertion.response_data false 2 - - false - shipment_tab - sales/order/shipment/order_id/(\d+)..Order Shipments - $1$ - NOT_FOUND - 1 - - - - - May not have shipped - "${shipment_tab}" != "NOT_FOUND" - false - - - - - - - - - - - ${request_protocol} - - ${base_path}sales/order/shipment/order_id/${orderId} - GET - true - false - true - false - false - - - - - - Track this shipment - - Assertion.response_data - false - 2 - - - - false - popupLink - popupWindow": {"windowURL":"([^'"]+)", - $1$ - - 1 - - - - - - - - - - - - ${request_protocol} - - ${popupLink} - GET - true - false - true - false - false - - - - - - <title>Tracking Information</title> - - Assertion.response_data - false - 2 - - - - - - - - - - - - - - ${request_protocol} - - ${base_path}downloadable/customer/products - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx - - - - <title>My Downloadable Products</title> - - Assertion.response_data - false - 2 - - - - false - orderId - sales/order/view/order_id/(\d+)/ - $1$ - NOT_FOUND - 1 - - - - false - linkId - downloadable/download/link/id/(\d+)/ - $1$ - - 1 - + + 1 + 0 + ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))} + + + + - - mpaf/tool/fragments/ce/account_management/if_downloadables.jmx - "${orderId}" != "NOT_FOUND" - false - - - - - - - - - - - ${request_protocol} - - ${base_path}sales/order/view/order_id/${orderId} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx + + 1 + false + 1 + ${adminCMSManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - <title>Order # - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}downloadable/download/link/id/${linkId} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/account_management/download_product.jmx + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin CMS Management"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + @@ -24453,7 +25023,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}wishlist + ${base_path}${admin_path} GET true false @@ -24461,99 +25031,70 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - + - <title>My Wish List</title> + Welcome + <title>Magento Admin</title> Assertion.response_data false 2 - + false - wishlistId - wishlist/index/update/wishlist_id/([^'"]+)/ + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> $1$ 1 - mpaf/tool/fragments/ce/account_management/my_wish_list.jmx - - - - false - buttonTitle - Update Wish List - FOUND - NOT_FOUND - 1 - - - - mpaf/tool/fragments/ce/account_management/if_wishlist.jmx - "${buttonTitle}" === "FOUND" - false - - - - - - - - - - - ${request_protocol} - - ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/account_management/share_wish_list.jmx - - + - <title>Wish List Sharing</title> + ^.+$ Assertion.response_data false - 2 + 1 + variable + admin_form_key - + + + true + + = + true + dummy + true - ${form_key} + ${admin_form_key} = true form_key - true - + true - ${customer_email} + ${admin_password} = true - emails + login[password] - + true - [TEST] See my wishlist!!! + ${admin_user} = true - message + login[username] @@ -24563,66 +25104,237 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/ + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false - mpaf/tool/fragments/ce/account_management/send_wish_list.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - - <title>My Wish List</title> - - Assertion.response_data - false - 2 - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/ + GET + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/new + GET + true + false + true + false + false + + + + + + + + true + <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + content + + + true + + = + true + content_heading + + + true + ${admin_form_key} + = + true + form_key + + + true + + = + true + identifier + + + true + 1 + = + true + is_active + + + true + + = + true + layout_update_xml + + + true + + = + true + meta_description + + + true + + = + true + meta_keywords + + + true + + = + true + meta_title + + + false + {} + = + true + nodes_data + + + true + + = + true + node_ids + + + true + + = + true + page_id + + + true + 1column + = + true + page_layout + + + true + 0 + = + true + store_id[0] + + + true + CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + title + + + true + 0 + = + true + website_root + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/save/ + POST + true + false + true + false + false + + + + + + You saved the page. + + Assertion.response_data + false + 16 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))} + - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/logout/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/logout.jmx - - - - You are signed out. - - Assertion.response_data - false - 2 - - - - + 1 false 1 - ${browseProductGridPercentage} + ${reviewByCustomerPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -24643,92 +25355,95 @@ if (testLabel - vars.put("testLabel", "Browse Product Grid"); + vars.put("testLabel", "Product Review By Customer"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; - currentFormKey = getFormKeyFromResponse(); +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } +vars.putObject("randomIntGenerator", random); - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - + + + true + + - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - - vars.put("gridEntityType" , "Product"); + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; - pagesCount = parseInt(vars.get("products_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "product_listing"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text")); - vars.put("grid_filter_field", "name"); +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} - // set sort fields and sort directions - vars.put("grid_sort_field_1", "name"); - vars.put("grid_sort_field_2", "price"); - vars.put("grid_sort_field_3", "attribute_set_id"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); - - javascript - mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - + @@ -24738,7 +25453,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} + ${base_path}customer/account/login/ GET true false @@ -24746,158 +25461,49 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/common/open_login_page.jmx - + - Welcome - <title>Magento Admin</title> + <title>Customer Login</title> Assertion.response_data false 2 - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - + - - true - - = - true - dummy - true - ${admin_form_key} + ${form_key} = true form_key - - true - ${admin_password} - = - true - login[password] - true - ${admin_user} + ${customer_email} = true login[username] - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - - + true - ${grid_namespace} + ${customer_password} = true - namespace - true + login[password] - + true = true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true + send @@ -24907,114 +25513,69 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}customer/account/loginPost/ + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + mpaf/tool/fragments/ce/common/login.jmx - - $.totalRecords - 0 - true - false - true - + + + <title>My Account</title> + + Assertion.response_data + false + 2 + - - entity_total_records - $.totalRecords - - - BODY - + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + - - + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - + true - entity_id + = true - sorting[field] - true + sections - + true - asc + false = true - sorting[direction] - true + update_section_id - + true - true + ${__time()}${__Random(1,1000000)} = true - isAjax - true + _ @@ -25024,7 +25585,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ + ${base_path}customer/section/load/ GET true false @@ -25032,122 +25593,173 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx - - $.totalRecords - 0 - true - false - true - true - - - - entity_total_records - $.totalRecords - - - BODY - + + 1 + + 1 + _counter + + true + true + - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); + + + +import java.util.Random; -vars.put("grid_pages_count_filtered", pageCount); - - javascript - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + - + true - ${grid_namespace} + ${form_key} = true - namespace - true + form_key - + + true + 3 + = + true + ratings[1] + + true = true - search - true + validate_rating - + true - true + FirstName = true - filters[placeholder] - true + nickname - + true - ${grid_entity_page_size} + Some Review Title = true - paging[pageSize] - true + title - + true - ${page_number} + Some Review Text = true - paging[current] - true + detail - + + + + + + + ${request_protocol} + + ${base_path}review/product/post/id/${product_id} + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_review/product_review.jmx + + + + HTTP/1.1 200 OK + + Assertion.response_headers + false + 16 + + + + + + + + true - entity_id + review,messages = true - sorting[field] - true + sections - + true - asc + false = true - sorting[direction] - true + update_section_id - + true - true + ${__time()}${__Random(1,1000000)} = true - isAjax - true + _ @@ -25157,7 +25769,7 @@ vars.put("grid_pages_count_filtered", pageCount); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ + ${base_path}customer/section/load/ GET true false @@ -25165,11 +25777,40 @@ vars.put("grid_pages_count_filtered", pageCount); false false - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + mpaf/tool/fragments/ce/product_review/load_review.jmx + + + + 1 + 0 + ${__javaScript(Math.round(${reviewDelay}*1000))} + mpaf/tool/fragments/ce/product_review/product_review_pause.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx - + - \"totalRecords\":[^0]\d* + You are signed out. Assertion.response_data false @@ -25177,145 +25818,14 @@ vars.put("grid_pages_count_filtered", pageCount); - - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - - - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - - - + 1 false 1 - ${browseOrderGridPercentage} + ${apiBasePercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -25336,94 +25846,133 @@ if (testLabel - vars.put("testLabel", "Browse Order Grid"); + vars.put("testLabel", "API"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx - - - vars.put("gridEntityType" , "Order"); - - pagesCount = parseInt(vars.get("orders_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "sales_order_grid"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text")); - vars.put("grid_filter_field", "status"); - - // set sort fields and sort directions - vars.put("grid_sort_field_1", "increment_id"); - vars.put("grid_sort_field_2", "created_at"); - vars.put("grid_sort_field_3", "billing_name"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); - - javascript - mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + + Authorization + Bearer ${admin_token} + + + mpaf/tool/fragments/ce/api/header_manager.jmx - - mpaf/tool/fragments/ce/once_only_controller.jmx - + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Create Customer"); + + true + + + + + true + + + + false + { + "customer": { + + "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com", + "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "lastname": "Doe" + }, + "password": "test@123" +} + = + + @@ -25431,80 +25980,40 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} - GET + ${base_path}rest/default/V1/customers + POST true false true false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/api/create_customer.jmx - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - + + customer_id + $.id + + + BODY + - + - ^.+$ + ^\d+$ Assertion.response_data false 1 variable - admin_form_key + customer_id - + - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - + @@ -25512,85 +26021,73 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}rest/default/V1/customers/${customer_id} + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - + mpaf/tool/fragments/ce/api/check_customer.jmx + + + $.id + ${customer_id} + true + false + false + + + + + - - + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Product Attribute Management"); + + true + + + + + true + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true + + false + { + "attributeSet": { + "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "sort_order": 500 + }, + "skeletonId": "4" +} = - true - isAjax - true @@ -25600,114 +26097,50 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/products/attribute-sets/ + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + mpaf/tool/fragments/ce/api/create_attribute_set.jmx - - $.totalRecords - 0 - true - false - true - - - - entity_total_records - $.totalRecords + + attribute_set_id + $.attribute_set_id BODY - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + attribute_set_id + - - + + true + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true + + false + { + "group": { + "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attribute_set_id": ${attribute_set_id} + } +} = - true - isAjax - true @@ -25717,130 +26150,58 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/products/attribute-sets/groups + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + mpaf/tool/fragments/ce/api/create_attribute_group.jmx - - $.totalRecords - 0 - true - false - true - true - - - - entity_total_records - $.totalRecords + + attribute_group_id + $.attribute_group_id BODY - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); - -vars.put("grid_pages_count_filtered", pageCount); - - javascript - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - ${page_number} - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + attribute_set_id + + + + + + true + + + + false + { + "attribute": { + "attribute_code": "attr_code_${__time()}", + "frontend_labels": [ + { + "store_id": 0, + "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}" + } + ], + "default_value": "default value", + "frontend_input": "textarea", + "is_required": true + } +} = - true - isAjax - true @@ -25850,182 +26211,105 @@ vars.put("grid_pages_count_filtered", pageCount); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/products/attributes/ + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + mpaf/tool/fragments/ce/api/create_attribute.jmx - + + attribute_id + $.attribute_id + + + BODY + + + + attribute_code + $.attribute_code + + + BODY + + + - \"totalRecords\":[^0]\d* + ^\d+$ Assertion.response_data false - 2 + 1 + variable + attribute_id + + + + + ^[a-z0-9-_]+$ + + Assertion.response_data + false + 1 + variable + attribute_code - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - + + true + + + + false + { + "attributeSetId": "${attribute_set_id}", + "attributeGroupId": "${attribute_group_id}", + "attributeCode": "${attribute_code}", + "sortOrder": 3 +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/attribute-sets/attributes + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - + + $ + (\d+) + true + false + false + + - - - - - - continue - - false - ${loops} - - ${csrPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx - - + + 1 false 1 - ${adminReturnsManagementPercentage} + 100 mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -26046,73 +26330,260 @@ if (testLabel - vars.put("testLabel", "Admin Returns Management"); + vars.put("testLabel", "API Product Management"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - + + true + + + + false + { + "product": { + "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attributeSetId": 4 + } +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx + + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_product_id + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_stock_item_id + + + + + + true + + + + false + { + "stock_item": { + "manage_stock": true, + "is_in_stock": true, + "qty": ${simple_product_id} + } + } + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id} + PUT + true + false + true + false + false + + mpaf/tool/fragments/ce/api/update_product_stock_info.jmx + + + $ + ${simple_stock_item_id} + true + false + false + + + + + + true + + + + true + + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products/${simple_product_sku} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product.jmx + + + $.sku + ${simple_product_sku} + true + false + false + + + + $.id + ${simple_product_id} + true + false + false + + + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + ${simple_product_id} + true + false + false + + + - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - + + true + + + + false + { + "product": { + "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "visibility": "4", + "type_id": "simple", + "price": "3.62", + "status": "1", + "attribute_set_id": "4", + "custom_attributes": [ + { + "attribute_code": "cost", + "value": "" + }, + { + "attribute_code": "description", + "value": "Description" + } + ], + "extension_attributes":{ + "stock_item":{ + "manage_stock": true, + "is_in_stock": true, + "qty":"100" + } + } , + "media_gallery_entries": + [{ + "id": null, + "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "position":1, + "disabled":false, + "media_type":"image", + "types":["image"], + "content":{ + "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z", + "type": "image/jpeg", + "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg" + } + } + ] + } +} + = + + @@ -26120,78 +26591,83 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} - GET + ${base_path}rest/default/V1/products + POST true false true false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx - + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + - Welcome - <title>Magento Admin</title> + ^\d+$ Assertion.response_data false - 2 + 1 + variable + simple_product_id - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + - + - ^.+$ + ^\d+$ Assertion.response_data false 1 variable - admin_form_key + simple_stock_item_id - - + + true + - + true = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] @@ -26201,731 +26677,240 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}rest/default/V1/products/${simple_product_sku} + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - + mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - + + $.sku + ${simple_product_sku} + true + false + false + + + + $.id + ${simple_product_id} + true + false + false + + + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + 100 + true + false + false + + + - - mpaf/tool/fragments/ce/simple_controller.jmx - + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx - - - - Create New Order - - Assertion.response_data - false - 2 - - - + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Process Orders"); + + true + + + + + // Each thread gets an equal number of orders, based on how many orders are available. - - - - - true - sales_order_grid - = - true - namespace - - - true - - = - true - search - - - true - true - = - true - filters[placeholder] - - - true - 200 - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - increment_id - = - true - sorting[field] - - - true - desc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - false - - - true - pending - = - true - filters[status] - true - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - - - + int apiProcessOrders = Integer.parseInt("${apiProcessOrders}"); + if (apiProcessOrders > 0) { + ordersPerThread = apiProcessOrders; + } else { + ordersPerThread = 1; + } - - - - - true - ${admin_form_key} - = - true - form_key - - - true - sales_order_grid - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - 200 - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - increment_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - true - pending - = - true - filters[status] - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx - + + threadNum = ${__threadNum}; + vars.put("ordersPerThread", String.valueOf(ordersPerThread)); + vars.put("threadNum", String.valueOf(threadNum)); + + + + + false + mpaf/tool/fragments/ce/api/process_orders/setup.jmx + + + + + + + true + status + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + Pending + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + ${ordersPerThread} + = + true + searchCriteria[pageSize] + + + true + ${threadNum} + = + true + searchCriteria[current_page] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/orders + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx + + + entity_ids + $.items[*].entity_id + + + BODY + + + + + + entity_ids + order_id + true + mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/order/${order_id}/invoice + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx + - totalRecords + "\d+" + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/order/${order_id}/ship + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx + + + + "\d+" Assertion.response_data false 2 - - false - order_numbers - \"increment_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - false - order_ids - \"entity_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - - mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx - - import java.util.ArrayList; - import java.util.HashMap; - import org.apache.jmeter.protocol.http.util.Base64Encoder; - import java.util.Random; - - // get count of "order_numbers" variable defined in "Search Pending Orders Limit" - int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); - - - int clusterLength; - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - //Number of orders for one thread - clusterLength = ordersCount; - } else { - clusterLength = Math.round(ordersCount / threadsNumber); - if (clusterLength == 0) { - clusterLength = 1; - } - } - - //Current thread number starts from 0 - int currentThreadNum = ctx.getThreadNum(); - - //Index of the current product from the cluster - Random random = new Random(); - int iterator = random.nextInt(clusterLength); - if (iterator == 0) { - iterator = 1; - } - - int i = clusterLength * currentThreadNum + iterator; - - orderNumber = vars.get("order_numbers_" + i.toString()); - orderId = vars.get("order_ids_" + i.toString()); - vars.put("order_number", orderNumber); - vars.put("order_id", orderId); - - - - - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx - - - - #${order_number} - - Assertion.response_data - false - 2 - - - - false - order_status - <span id="order_status">([^<]+)</span> - $1$ - - 1 - simple_products - - - - - - "${order_status}" == "Pending" - false - mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx - - - - Invoice Totals - - Assertion.response_data - false - 2 - - - - false - item_ids - <div id="order_item_(\d+)_title"\s*class="product-title"> - $1$ - - -1 - simple_products - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - invoice[items][${item_ids_1}] - - - true - 1 - = - true - invoice[items][${item_ids_2}] - - - true - Invoiced - = - true - invoice[comment_text] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx - - - - The invoice has been created - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx - - - - New Memo - - Assertion.response_data - false - 2 - - - - - - 1 - mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_submit.jmx - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - creditmemo[items][${item_ids_1}][qty] - - - true - 1 - = - true - creditmemo[items][${item_ids_2}][qty] - - - true - 1 - = - true - creditmemo[do_offline] - - - true - Credit Memo added - = - true - creditmemo[comment_text] - - - true - 10 - = - true - creditmemo[shipping_amount] - - - true - 0 - = - true - creditmemo[adjustment_positive] - - - true - 0 - = - true - creditmemo[adjustment_negative] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ - POST - true - false - true - false - false - - - - - - You created the credit memo - - Assertion.response_data - false - 2 - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - creditmemo[items][${item_ids_1}][qty] - - - true - 1 - = - true - creditmemo[do_offline] - - - true - Credit Memo added - = - true - creditmemo[comment_text] - - - true - 10 - = - true - creditmemo[shipping_amount] - - - true - 0 - = - true - creditmemo[adjustment_positive] - - - true - 0 - = - true - creditmemo[adjustment_negative] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ - POST - true - false - true - false - false - - - - - - You created the credit memo - - Assertion.response_data - false - 2 - - - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))} - mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx - - - + 1 false 1 - ${browseCustomerGridPercentage} + 100 mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -26946,93 +26931,14 @@ if (testLabel - vars.put("testLabel", "Browse Customer Grid"); + vars.put("testLabel", "API Catalog Browsing"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - - vars.put("gridEntityType" , "Customer"); - - pagesCount = parseInt(vars.get("customers_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "customer_listing"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text")); - vars.put("grid_filter_field", "name"); - - // set sort fields and sort directions - vars.put("grid_sort_field_1", "name"); - vars.put("grid_sort_field_2", "group_id"); - vars.put("grid_sort_field_3", "billing_country_id"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); - - javascript - mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - + + @@ -27041,7 +26947,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} + ${base_path}rest/default/V1/categories GET true false @@ -27049,70 +26955,91 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/api/get_categories.jmx - + - Welcome - <title>Magento Admin</title> + errors Assertion.response_data false - 2 + 6 + variable + - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - + + search_category_id + $.id + + + BODY + - + - ^.+$ + ^\d+$ Assertion.response_data false 1 variable - admin_form_key + search_category_id - - + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories/${search_category_id} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_category.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + + - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - + true - ${admin_password} + 20 = true - login[password] + searchCriteria[page_size] + true - + true - ${admin_user} + 1 = true - login[username] + searchCriteria[current_page] + true @@ -27122,85 +27049,306 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}rest/default/V1/products + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - + mpaf/tool/fragments/ce/api/get_products.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + - + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Search"); + + true + + + + - + true - ${grid_namespace} + quick_search_container = true - namespace - true + searchCriteria[request_name] - + true - + search_term = true - search - true + searchCriteria[filter_groups][0][filters][0][field] - + true - true + Simple = true - filters[placeholder] - true + searchCriteria[filter_groups][0][filters][0][value] - + true - ${grid_entity_page_size} + 20 = true - paging[pageSize] - true + searchCriteria[page_size] - + true 1 = true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true + searchCriteria[current_page] - - true - asc + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/search + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx + + + $.total_count + 0 + true + false + true + + + + search_product_id + $.items[0].id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + search_product_id + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Checkout"); + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_quote.jmx + + + quote_id + $ + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + quote_id + + + + + + true + + + + false + { + "cartItem": { + "sku": "product_dynamic_${search_product_id}", + "qty":"1", + "quote_id":"${quote_id}" + } +} + = - true - sorting[direction] - true - - true - true + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx + + + + $.sku + product_dynamic_${search_product_id} + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx + + + $[0].sku + product_dynamic_${search_product_id} + true + false + false + + + + + + true + + + + false + { + "storeId": 1 +} = - true - isAjax - true @@ -27210,114 +27358,52 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/guest-carts/ + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + mpaf/tool/fragments/ce/api/create_guest_cart.jmx - - $.totalRecords - 0 - true - false - true - - - - entity_total_records - $.totalRecords + + cart_id + $ BODY - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - + + + ^.+$ + + Assertion.response_data + false + 1 + variable + cart_id + - - + + true + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true + + false + { + "cartItem": { + "sku": "product_dynamic_${search_product_id}", + "qty":"1", + "quote_id":"${cart_id}" + } +} + = - true - isAjax - true @@ -27327,130 +27413,135 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/guest-carts/${cart_id}/items + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx - - $.totalRecords - 0 + + $.quote_id + ^[a-z0-9-]+$ true false - true - true + false - - entity_total_records - $.totalRecords - - - BODY - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); - -vars.put("grid_pages_count_filtered", pageCount); - - javascript - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx - - - + + true + - - true - ${grid_namespace} - = - true - namespace - true - - - true - + + false + { + "sender": "John Doe", + "recipient": "Jane Roe", + "giftMessage": "Gift Message Text" +} + = - true - search - true - - true - true + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx + + + $ + true + true + false + false + + + + + + true + + + + false + {"address":{"country_id":"US","postcode":"95630"}} = - true - filters[placeholder] - true - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx + + + + + Referer + ${base_path}checkout/onepage/ - - true - ${page_number} - = - true - paging[current] - true + + Content-Type + application/json; charset=UTF-8 - - true - entity_id - = - true - sorting[field] - true + + X-Requested-With + XMLHttpRequest - - true - asc - = - true - sorting[direction] - true + + Accept + application/json - - true - true + + + + + + "available":true + + Assertion.response_data + false + 2 + + + + + + true + + + + false + {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} = - true - isAjax - true @@ -27460,19 +27551,40 @@ vars.put("grid_pages_count_filtered", pageCount); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx - + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + - \"totalRecords\":[^0]\d* + {"payment_methods": Assertion.response_data false @@ -27481,144 +27593,93 @@ vars.put("grid_pages_count_filtered", pageCount); - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - - - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - + + true + + + + false + {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "[0-9]+" + + Assertion.response_data + false + 2 + + + + order_id + $ + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + - + 1 false 1 - ${adminCreateOrderPercentage} + ${productGridMassActionPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -27639,7 +27700,7 @@ if (testLabel - vars.put("testLabel", "Admin Create Order"); + vars.put("testLabel", "Product Grid Mass Actions"); true @@ -27816,903 +27877,667 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 20 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/get_product_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + products_number + $.totalRecords + + + BODY + + + + false + + + var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var productsTotal = Integer.parseInt(vars.get("products_number")); +var pageCountProducts = Math.round(productsTotal/productsPageSize); + +vars.put("pages_count_product", String.valueOf(pageCountProducts)); + + + mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx - import org.apache.jmeter.samplers.SampleResult; + + import java.util.Random; Random random = new Random(); if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); + random.setSeed(${seedForRandom}); } -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); - -do { - number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); - -number = random.nextInt(props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_product_1_sku", configurableList.get("sku")); -vars.put("configurable_attribute_id", configurableList.get("attribute_id")); -vars.put("configurable_option_id", configurableList.get("attribute_option_id")); - +var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var totalNumberOfPages = Integer.parseInt(vars.get("pages_count_product")); -customers_index = 0; -if (!props.containsKey("customer_ids_index")) { - props.put("customer_ids_index", customers_index); -} +// Randomly select a page. +var randomProductsPage = Math.floor((Math.random() * totalNumberOfPages) + 1); -try { - customers_index = props.get("customer_ids_index"); - customers_list = props.get("customer_ids_list"); +// Get the first and last product id on that page. +var lastProductIdOnPage = randomProductsPage * productsPageSize; +var firstProductIdOnPage = lastProductIdOnPage - productsPageSize + 1; - if (customers_index == customers_list.size()) { - customers_index=0; - } - vars.put("customer_id", customers_list.get(customers_index)); - props.put("customer_ids_index", ++customers_index); -} -catch (java.lang.Exception e) { - log.error("Caught Exception in 'Admin Create Order' thread."); - SampleResult.setStopThread(true); -} - - - true - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/start/ - GET - true - false - true - false - false - - Detected the start of a redirect chain - - - - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all - GET - true - false - true - false - false - - - - - attribute_ids - $.[*].attribute_id - NO_VALUE - - BODY - - - - option_values - $.[*].values[0].value_index - NO_VALUE - - BODY - - - - - - - - - true - item[${simple_product_1_id}][qty] - 1 - = - true - - - true - item[${simple_product_2_id}][qty] - 1 - = - true - - - true - item[${configurable_product_1_id}][qty] - 1 - = - true - - - true - customer_id - ${customer_id} - = - true - - - true - store_id - 1 - = - true - - - true - currency_id - - = - true - - - true - form_key - ${admin_form_key} - = - true - - - true - payment[method] - checkmo - = - true - - - true - reset_shipping - 1 - = - true - - - true - json - 1 - = - true - - - true - as_js_varname - iFrameResponse - = - true - - - true - form_key - ${admin_form_key} - = - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true - POST - true - false - true - false - false - - Detected the start of a redirect chain - - - - false - - - try { - attribute_ids = vars.get("attribute_ids"); - option_values = vars.get("option_values"); - attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); - option_values = option_values.replace("[","").replace("]","").replace("\"", ""); - attribute_ids_array = attribute_ids.split(","); - option_values_array = option_values.split(","); - args = ctx.getCurrentSampler().getArguments(); - it = args.iterator(); - while (it.hasNext()) { - argument = it.next(); - if (argument.getStringValue().contains("${")) { - args.removeArgument(argument.getName()); - } - } - for (int i = 0; i < attribute_ids_array.length; i++) { +var randomProductId1 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId2 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId3 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; - ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]); - } -} catch (Exception e) { - log.error("error???", e); -} - - - - - - - - true - collect_shipping_rates - 1 - = - true - - - true - customer_id - ${customer_id} - = - true - - - true - store_id - 1 - = - true - - - true - currency_id - false - = - true - - - true - form_key - ${admin_form_key} - = - true - - - true - payment[method] - checkmo - = - true - - - true - json - true - = - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true - POST - true - false - true - false - false - - - - - - shipping_method - Flat Rate - - Assertion.response_data - false - 2 - - - - - - - - true - form_key - ${admin_form_key} - = - true - - - true - limit - 20 - = - true - - - true - entity_id - - = - true - - - true - name - - = - true - - - true - email - - = - true - - - true - Telephone - - = - true - - - true - billing_postcode - - = - true - - - true - billing_country_id - - = - true - - - true - billing_regione - - = - true - - - true - store_name - - = - true - - - true - page - 1 - = - true - - - true - order[currency] - USD - = - true - - - true - sku - - = - true - - - true - qty - - = - true - - - true - limit - 20 - = - true - - - true - entity_id - - = - true - - - true - name - - = - true - - - true - sku - - = - true - - - true - price[from] - - = - true - - - true - price[to] - - = - true - - - true - in_products - - = - true - - - true - page - 1 - = - true - - - true - coupon_code - - = - true - - - true - order[account][group_id] - 1 - = - true - - - true - order[account][email] - user_${customer_id}@example.com - = - true - - - true - order[billing_address][customer_address_id] - - = - true - - - true - order[billing_address][prefix] - - = - true - - - true - order[billing_address][firstname] - Anthony - = - true - - - true - order[billing_address][middlename] - - = - true - - - true - order[billing_address][lastname] - Nealy - = - true - - - true - order[billing_address][suffix] - - = - true - - - true - order[billing_address][company] - - = - true - - - true - order[billing_address][street][0] - 123 Freedom Blvd. #123 - = - true - - - true - order[billing_address][street][1] - - = - true - - - true - order[billing_address][city] - Fayetteville - = - true - - - true - order[billing_address][country_id] - US - = - true - - - true - order[billing_address][region] - - = - true - - - true - order[billing_address][region_id] - 5 - = - true - - - true - order[billing_address][postcode] - 123123 - = - true - - - true - order[billing_address][telephone] - 022-333-4455 - = - true - - - true - order[billing_address][fax] - - = - true - - - true - order[billing_address][vat_id] - - = - true - - - true - shipping_same_as_billing - on - = - true - - - true - payment[method] - checkmo - = - true - - - true - order[shipping_method] - flatrate_flatrate - = - true - - - true - order[comment][customer_note] - - = - true - - - true - order[comment][customer_note_notify] - 1 - = - true - - - true - order[send_confirmation] - 1 - = - true - - +vars.put("page_number", String.valueOf(randomProductsPage)); +vars.put("productId1", String.valueOf(randomProductId1)); +vars.put("productId2", String.valueOf(randomProductId2)); +vars.put("productId3", String.valueOf(randomProductId3)); + +var randomQuantity = Math.floor(Math.random() * 1000) + 1; +var randomPrice = Math.floor(Math.random() * 500) + 10; +var randomVisibility = Math.floor(random.nextInt(4)) + 1; + +vars.put("quantity", String.valueOf(randomQuantity)); +vars.put("price", String.valueOf(randomPrice)); +vars.put("visibility", String.valueOf(randomVisibility)); + + + + + + false + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/setup.jmx + + + + + + + true + ${admin_form_key} + = + true + form_key + true + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${products_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_grid.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${productId1} + = + true + selected[0] + + + true + ${productId2} + = + true + selected[1] + + + true + ${productId3} + = + true + selected[2] + true + + + true + true + = + true + filters[placeholder] + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + product_listing + = + true + namespace + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/edit + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_update_attributes.jmx + + + + Update Attributes + + Assertion.response_data + false + 2 + + + + + + + + + true + true + = + true + isAjax + true - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/save/ - POST - true - false - true - true - false - - Detected the start of a redirect chain - - - - false - order_id - ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/ - $1$ - - 1 - - - - false - order_item_1 - order_item_(\d+)_title - $1$ - - 1 - - - - false - order_item_2 - order_item_(\d+)_title - $1$ - - 2 - - - - false - order_item_3 - order_item_(\d+)_title - $1$ - - 3 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_2 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_3 - + + true + ${admin_form_key} + = + true + form_key + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + true + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + true + + + true + ${price} + = + true + attributes[price] + + + true + ${visibility} + = + true + attributes[visibility] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/validate + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/change_attributes.jmx + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + + + true + on + = + true + toggle_price + true + + + true + ${price} + = + true + attributes[price] + + + true + on + = + true + toggle_price + true + + + true + ${visibility} + = + true + attributes[visibility] + + + true + on + = + true + toggle_visibility + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/save/store/0/active_tab/attributes + POST + true + false + true + true + false + + + + + + were updated. + + Assertion.response_data + false + 2 + + + + + + + + + 1 + false + 1 + ${adminAccountManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - You created the order. - - Assertion.response_data - false - 2 - + + + vars.put("testLabel", "Admin Account management"); + + true + - - + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + - - - true - form_key - ${admin_form_key} - = - true - - - true - invoice[items][${order_item_1}] - 1 - = - true - - - true - invoice[items][${order_item_2}] - 1 - = - true - - - true - invoice[items][${order_item_3}] - 1 - = - true - - - true - invoice[comment_text] - - = - true - - + @@ -28720,20 +28545,19 @@ catch (java.lang.Exception e) { ${request_protocol} - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST + ${base_path} + GET true false true false false - Detected the start of a redirect chain - + mpaf/tool/fragments/ce/common/open_home_page.jmx - + - The invoice has been created. + <title>Home page</title> Assertion.response_data false @@ -28741,45 +28565,209 @@ catch (java.lang.Exception e) { - + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/history/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_orders.jmx + + + + <title>My Orders</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_orders.jmx + "${orderId}" != "NOT_FOUND" + false + + + - - - true - form_key - ${admin_form_key} - = - true - - - true - shipment[items][${order_item_1}] - 1 - = - true - - - true - shipment[items][${order_item_2}] - 1 - = - true - - - true - shipment[items][${order_item_3}] - 1 - = - true - - - true - shipment[comment_text] - - = - true - - + @@ -28787,104 +28775,171 @@ catch (java.lang.Exception e) { ${request_protocol} - ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ - POST + ${base_path}sales/order/view/order_id/${orderId} + GET true false true false false - Detected the start of a redirect chain - + - The shipment has been created. + <title>Order # Assertion.response_data false 2 + + false + shipment_tab + sales/order/shipment/order_id/(\d+)..Order Shipments + $1$ + NOT_FOUND + 1 + + - - - - - - - - - continue - - false - ${loops} - - ${apiPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx + + May not have shipped + "${shipment_tab}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/shipment/order_id/${orderId} + GET + true + false + true + false + false + + - - 1 - false - 1 - ${apiBasePercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + Track this shipment + + Assertion.response_data + false + 2 + + + + false + popupLink + popupWindow": {"windowURL":"([^'"]+)", + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${popupLink} + GET + true + false + true + false + false + + + + + + <title>Tracking Information</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/customer/products + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API"); - - true - - - - - - - Content-Type - application/json - - - Accept - */* - - - mpaf/tool/fragments/ce/api/header_manager_before_token.jmx - + + + <title>My Downloadable Products</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + false + linkId + downloadable/download/link/id/(\d+)/ + $1$ + + 1 + + + - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - + + mpaf/tool/fragments/ce/account_management/if_downloadables.jmx + "${orderId}" != "NOT_FOUND" + false + + + + + @@ -28892,94 +28947,160 @@ if (testLabel ${request_protocol} - ${base_path}rest/V1/integration/admin/token - POST + ${base_path}sales/order/view/order_id/${orderId} + GET true false true false false - mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx - - admin_token - $ - - - BODY - - - + - ^[a-z0-9-]+$ + <title>Order # Assertion.response_data false - 1 - variable - admin_token + 2 - - - - Authorization - Bearer ${admin_token} - - - mpaf/tool/fragments/ce/api/header_manager.jmx + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/download/link/id/${linkId} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/download_product.jmx + - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + + + + + + + ${request_protocol} + + ${base_path}wishlist + GET + true + false + true + false + false + + - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Create Customer"); - - true - - - - - true - + + + <title>My Wish List</title> + + Assertion.response_data + false + 2 + + + + false + wishlistId + wishlist/index/update/wishlist_id/([^'"]+)/ + $1$ + + 1 + mpaf/tool/fragments/ce/account_management/my_wish_list.jmx + + + + false + buttonTitle + Update Wish List + FOUND + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_wishlist.jmx + "${buttonTitle}" === "FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/share_wish_list.jmx + + + + <title>Wish List Sharing</title> + + Assertion.response_data + false + 2 + + + + + + - - false - { - "customer": { - - "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com", - "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "lastname": "Doe" - }, - "password": "test@123" -} + + true + ${form_key} + = + true + form_key + true + + + true + ${customer_email} + = + true + emails + + + true + [TEST] See my wishlist!!! = + true + message @@ -28989,7 +29110,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/customers + ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/ POST true false @@ -28997,30 +29118,21 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/create_customer.jmx + mpaf/tool/fragments/ce/account_management/send_wish_list.jmx - - customer_id - $.id - - - BODY - - - + - ^\d+$ + <title>My Wish List</title> Assertion.response_data false - 1 - variable - customer_id + 2 + - + @@ -29030,7 +29142,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/customers/${customer_id} + ${base_path}customer/account/logout/ GET true false @@ -29038,25 +29150,26 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/check_customer.jmx + mpaf/tool/fragments/ce/common/logout.jmx - - $.id - ${customer_id} - true - false - false - + + + You are signed out. + + Assertion.response_data + false + 2 + - + 1 false 1 - 100 + ${browseCatalogByCustomerPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -29077,28 +29190,113 @@ if (testLabel - vars.put("testLabel", "API Product Attribute Management"); + vars.put("testLabel", "Catalog Browsing By Customer"); true - - true - - - - false - { - "attributeSet": { - "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "sort_order": 500 - }, - "skeletonId": "4" -} - = - - + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + @@ -29106,50 +29304,57 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attribute-sets/ - POST + ${base_path}customer/account/login/ + GET true false true false false - mpaf/tool/fragments/ce/api/create_attribute_set.jmx + mpaf/tool/fragments/ce/common/open_login_page.jmx - - attribute_set_id - $.attribute_set_id - - - BODY - - - + - ^\d+$ + <title>Customer Login</title> Assertion.response_data false - 1 - variable - attribute_set_id + 2 - - true - + + - - false - { - "group": { - "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "attribute_set_id": ${attribute_set_id} - } -} + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + = + true + send @@ -29159,7 +29364,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attribute-sets/groups + ${base_path}customer/account/loginPost/ POST true false @@ -29167,50 +29372,61 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/create_attribute_group.jmx + mpaf/tool/fragments/ce/common/login.jmx - - attribute_group_id - $.attribute_group_id - - - BODY - + + + <title>My Account</title> + + Assertion.response_data + false + 2 + - + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + - ^\d+$ + ^.+$ Assertion.response_data false 1 variable - attribute_set_id + addressId - - - true - + + - - false - { - "attribute": { - "attribute_code": "attr_code_${__time()}", - "frontend_labels": [ - { - "store_id": 0, - "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}" - } - ], - "default_value": "default value", - "frontend_input": "textarea", - "is_required": true - } -} + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} = + true + _ @@ -29220,105 +29436,243 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attributes/ - POST + ${base_path}customer/section/load/ + GET true false true false false - mpaf/tool/fragments/ce/api/create_attribute.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${category_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_category.jmx - - attribute_id - $.attribute_id - - - BODY - - - - attribute_code - $.attribute_code - - - BODY - - - + - ^\d+$ + <span class="base" data-ui-id="page-title">${category_name}</span> Assertion.response_data false - 1 - variable - attribute_id + 6 - + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + - ^[a-z0-9-_]+$ + ^[0-9]+$ Assertion.response_data false 1 variable - attribute_code + category_id - - true - - - - false - { - "attributeSetId": "${attribute_set_id}", - "attributeGroupId": "${attribute_group_id}", - "attributeCode": "${attribute_code}", - "sortOrder": 3 -} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/products/attribute-sets/attributes - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx - - $ - (\d+) - true - false - false - + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + - + 1 false 1 - 100 + ${addToCartByCustomerPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -29339,28 +29693,124 @@ if (testLabel - vars.put("testLabel", "API Product Management"); + vars.put("testLabel", "Add To Cart By Customer"); true - - true - - - - false - { - "product": { - "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", - "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "attributeSetId": 4 - } -} - = - - + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + import org.apache.jmeter.samplers.SampleResult; + +String siterator = vars.get("customer_emails_index"); +int iterator; +if(siterator == null){ + iterator = 0; + vars.put("customer_emails_index", "0"); +} else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("customer_emails_index", iterator.toString()); +} + +emails_list = props.get("customer_emails_list"); + +threadsNumber = ctx.getThreadGroup().getNumThreads(); +emailsCount = emails_list.size(); +if (threadsNumber > emailsCount) { + log.error(" There are not enough customers for this scenario."); +} else { + clusterLength = Math.round(emailsCount / threadsNumber); + threadNum = ctx.getThreadNum(); + emails_index = clusterLength * threadNum + iterator; + maxLimit = clusterLength * (threadNum + 1); + if (emails_index >= maxLimit) { + iterator = 0; + emails_index = clusterLength * threadNum + iterator; + vars.put("customer_emails_index", iterator.toString()); + } +} +vars.put("customer_email", emails_list.get(emails_index)); + + + true + + + + + + @@ -29368,89 +29818,57 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products - POST + ${base_path}customer/account/login/ + GET true false true false false - mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx + mpaf/tool/fragments/ce/common/open_login_page.jmx - - simple_product_id - $.id - - - BODY - - - - simple_product_sku - $.sku - - - BODY - - - - simple_stock_item_id - $.extension_attributes.stock_item.item_id - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - simple_product_id - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - simple_product_sku - - - + - ^\d+$ + <title>Customer Login</title> Assertion.response_data false - 1 - variable - simple_stock_item_id + 2 - - true - + + - - false - { - "stock_item": { - "manage_stock": true, - "is_in_stock": true, - "qty": ${simple_product_id} - } - } + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send @@ -29460,34 +29878,69 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id} - PUT + ${base_path}customer/account/loginPost/ + POST true false true false false - mpaf/tool/fragments/ce/api/update_product_stock_info.jmx + mpaf/tool/fragments/ce/common/login.jmx - - $ - ${simple_stock_item_id} - true - false - false - + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + - - - true - + + - + true = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ @@ -29497,7 +29950,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/${simple_product_sku} + ${base_path}customer/section/load/ GET true false @@ -29505,94 +29958,43 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/check_product.jmx - - - $.sku - ${simple_product_sku} - true - false - false - - - - $.id - ${simple_product_id} - true - false - false - - - - $.extension_attributes.stock_item.item_id - ${simple_stock_item_id} - true - false - false - - - - $.extension_attributes.stock_item.qty - ${simple_product_id} - true - false - false - - - + + - - true - - - - false - { - "product": { - "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", - "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "visibility": "4", - "type_id": "simple", - "price": "3.62", - "status": "1", - "attribute_set_id": "4", - "custom_attributes": [ - { - "attribute_code": "cost", - "value": "" - }, - { - "attribute_code": "description", - "value": "Description" - } - ], - "extension_attributes":{ - "stock_item":{ - "manage_stock": true, - "is_in_stock": true, - "qty":"100" - } - } , - "media_gallery_entries": - [{ - "id": null, - "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "position":1, - "disabled":false, - "media_type":"image", - "types":["image"], - "content":{ - "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z", - "type": "image/jpeg", - "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg" - } - } - ] - } -} - = - - + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + @@ -29600,290 +30002,161 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products - POST + ${base_path}${category_url_key}${url_suffix} + GET true false true false false - mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx + mpaf/tool/fragments/ce/common/open_category.jmx - - simple_product_id - $.id - - - BODY - - - - simple_product_sku - $.sku - - - BODY - - - - simple_stock_item_id - $.extension_attributes.stock_item.item_id - - - BODY - - - + - ^\d+$ + <span class="base" data-ui-id="page-title">${category_name}</span> Assertion.response_data false - 1 - variable - simple_product_id + 6 - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - simple_product_sku - + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + - + - ^\d+$ + ^[0-9]+$ Assertion.response_data false 1 variable - simple_stock_item_id + category_id - - true - - - - true - - = - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/products/${simple_product_sku} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx - - $.sku - ${simple_product_sku} - true - false - false - - - - $.id - ${simple_product_id} - true - false - false - - - - $.extension_attributes.stock_item.item_id - ${simple_stock_item_id} - true - false - false - - - - $.extension_attributes.stock_item.qty - 100 - true - false - false - + + 1 + + 1 + _counter + + true + true + - - - - - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Process Orders"); - - true - - - - // Each thread gets an equal number of orders, based on how many orders are available. - - int apiProcessOrders = Integer.parseInt("${apiProcessOrders}"); - if (apiProcessOrders > 0) { - ordersPerThread = apiProcessOrders; - } else { - ordersPerThread = 1; - } + + +import java.util.Random; +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); - threadNum = ${__threadNum}; - vars.put("ordersPerThread", String.valueOf(ordersPerThread)); - vars.put("threadNum", String.valueOf(threadNum)); +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; +vars.put("totalProductsAdded", String.valueOf(productsAdded)); - false - mpaf/tool/fragments/ce/api/process_orders/setup.jmx + true + - + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + - + true - status + ${product_id} = true - searchCriteria[filterGroups][0][filters][0][field] + product - + true - Pending + = true - searchCriteria[filterGroups][0][filters][0][value] + related_product - + true - ${ordersPerThread} + 1 = true - searchCriteria[pageSize] + qty - + true - ${threadNum} + ${form_key} = true - searchCriteria[current_page] - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/orders - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx - - - entity_ids - $.items[*].entity_id - - - BODY - - - - - - entity_ids - order_id - true - mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx - - - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/order/${order_id}/invoice - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx - - - - "\d+" + form_key + - Assertion.response_data - false - 2 - - - - - - - @@ -29891,7 +30164,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/order/${order_id}/ship + ${base_path}checkout/cart/add/ POST true false @@ -29899,56 +30172,44 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx - - - "\d+" - - Assertion.response_data - false - 2 - - - - + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + - - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Catalog Browsing"); - - true - - - - - - + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + @@ -29956,7 +30217,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/categories + ${base_path}customer/section/load/ GET true false @@ -29964,91 +30225,272 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/get_categories.jmx + mpaf/tool/fragments/ce/load_cart_section.jmx - + - errors + You added ${product_name} to your shopping cart. Assertion.response_data false - 6 - variable - + 2 - - search_category_id - $.id - - - BODY - - - + - ^\d+$ + This product is out of stock. Assertion.response_data false - 1 - variable - search_category_id + 6 - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/categories/${search_category_id} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/get_category.jmx - - + - errors + \"summary_count\":${totalProductsAdded} Assertion.response_data false - 6 - variable - + 2 + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + - - + + - + true - 20 + ${product_id} = true - searchCriteria[page_size] - true + product - + + true + + = + true + related_product + + true 1 = true - searchCriteria[current_page] - true + qty + + + true + ${form_key} + = + true + form_key @@ -30058,99 +30500,80 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products - GET + ${base_path}checkout/cart/add/ + POST true false true false false - mpaf/tool/fragments/ce/api/get_products.jmx - - - - errors - - Assertion.response_data - false - 6 - variable - - - - - - - - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Search"); - - true - + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx - + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + - - true - quick_search_container - = - true - searchCriteria[request_name] - - - true - search_term - = - true - searchCriteria[filter_groups][0][filters][0][field] - - + true - Simple + cart,messages = true - searchCriteria[filter_groups][0][filters][0][value] + sections - + true - 20 + true = true - searchCriteria[page_size] + update_section_id - + true - 1 + ${__time()}${__Random(1,1000000)} = true - searchCriteria[current_page] + _ @@ -30160,7 +30583,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/search + ${base_path}customer/section/load/ GET true false @@ -30168,44 +30591,55 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx + mpaf/tool/fragments/ce/load_cart_section.jmx - - $.total_count - 0 - true - false - true - + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + - - search_product_id - $.items[0].id - - - BODY - + + + This product is out of stock. + + Assertion.response_data + false + 6 + - + - ^\d+$ + \"summary_count\":${totalProductsAdded} Assertion.response_data false - 1 - variable - search_product_id + 2 - + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + - + 1 false 1 - 100 + ${importProductsPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -30226,56 +30660,71 @@ if (testLabel - vars.put("testLabel", "API Checkout"); + vars.put("testLabel", "Import Products"); true - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} + formKey = vars.get("form_key_storage"); -vars.putObject("randomIntGenerator", random); + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } - - - true - - + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + @@ -30285,52 +30734,78 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}rest/default/V1/carts - POST + ${base_path}${admin_path} + GET true false true false false - mpaf/tool/fragments/ce/api/create_quote.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - quote_id - $ - - - BODY - + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + - ^\d+$ + ^.+$ Assertion.response_data false 1 variable - quote_id + admin_form_key - - true - + + - - false - { - "cartItem": { - "sku": "${product_sku}", - "qty":"1", - "quote_id":"${quote_id}" - } -} - + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} = + true + login[username] @@ -30340,28 +30815,37 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}rest/default/V1/carts/${quote_id}/items + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false - mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + - - $.sku - ${product_sku} - true - false - false - - - + + vars.put("entity", "catalog_product"); +String behavior = "${adminImportProductBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportProductFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_products/setup.jmx + - + @@ -30371,7 +30855,7 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}rest/default/V1/carts/${quote_id}/items + ${base_path}${admin_path}/admin/import/ GET true false @@ -30379,221 +30863,71 @@ vars.put("product_sku", product.get("sku")); false false - mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx - - - $[0].sku - ${product_sku} - true - false - false - - - - - - true - - - - false - { - "storeId": 1 -} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/create_guest_cart.jmx + mpaf/tool/fragments/ce/common/import.jmx - - cart_id - $ - - - BODY - - - + - ^.+$ + Import Settings Assertion.response_data false - 1 - variable - cart_id + 2 - - true - + + - - false - { - "cartItem": { - "sku": "${product_sku}", - "qty":"1", - "quote_id":"${cart_id}" - } -} - + + true + ${admin_form_key} = + true + form_key + false - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/items - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx - - - $.quote_id - ^[a-z0-9-]+$ - true - false - false - - - - - - true - - - - false - { - "sender": "John Doe", - "recipient": "Jane Roe", - "giftMessage": "Gift Message Text" -} - + + true + ${entity} = + true + entity - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx - - - $ - true - true - false - false - - - - - - true - - - - false - {"address":{"country_id":"US","postcode":"95630"}} + + true + ${adminImportBehavior} = + true + behavior - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx - - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 + + true + validation-stop-on-errors + = + true + validation_strategy - - X-Requested-With - XMLHttpRequest + + true + 10 + = + true + allowed_error_count - - Accept - application/json + + true + , + = + true + _import_field_separator - - - - - - "available":true - - Assertion.response_data - false - 2 - - - - - - true - - - - false - {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + + true + , = + true + _import_multiple_value_separator @@ -30603,56 +30937,93 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + ${base_path}${admin_path}/admin/import/validate POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx + mpaf/tool/fragments/ce/common/import_validate.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - + - {"payment_methods": + File is valid! To start import process Assertion.response_data false - 2 + 16 - - true - + + - - false - {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}} + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + false + + + true + 10 + = + true + allowed_error_count + false + + + true + , + = + true + _import_field_separator + false + + + true + , = + true + _import_multiple_value_separator + false @@ -30662,93 +31033,45 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information + ${base_path}${admin_path}/admin/import/start POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx + mpaf/tool/fragments/ce/common/import_save.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - - - "[0-9]+" - - Assertion.response_data - false - 2 - - - - order_id - $ - - - BODY - - - ^\d+$ + Import successfully done Assertion.response_data false - 1 - variable - order_id + 16 - - - - - - continue - - false - ${loops} - - ${othersPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx - - + + 1 false 1 - ${productGridMassActionPercentage} + ${importCustomersPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -30769,12 +31092,24 @@ if (testLabel - vars.put("testLabel", "Product Grid Mass Actions"); + vars.put("testLabel", "Import Customers"); true + + vars.put("entity", "customer"); +String behavior = "${adminImportCustomerBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportCustomerFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_customers/setup.jmx + + function getFormKeyFromResponse() @@ -30935,93 +31270,16 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - + + - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + - - - true - ${admin_form_key} - = - true - form_key - - - true - product_listing - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - 20 - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - + @@ -31029,7 +31287,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ + ${base_path}${admin_path}/admin/import/ GET true false @@ -31037,85 +31295,20 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_browse_products_grid/get_product_pages_count.jmx + mpaf/tool/fragments/ce/common/import.jmx - - $.totalRecords - 0 - true - false - true - - - - products_number - $.totalRecords - - - BODY - - - - false - - - var productsPageSize = Integer.parseInt(vars.get("products_page_size")); -var productsTotal = Integer.parseInt(vars.get("products_number")); -var pageCountProducts = Math.round(productsTotal/productsPageSize); - -vars.put("pages_count_product", String.valueOf(pageCountProducts)); - + + + Import Settings + + Assertion.response_data + false + 2 + - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -var productsPageSize = Integer.parseInt(vars.get("products_page_size")); -var totalNumberOfPages = Integer.parseInt(vars.get("pages_count_product")); - -// Randomly select a page. -var randomProductsPage = Math.floor((Math.random() * totalNumberOfPages) + 1); - -// Get the first and last product id on that page. -var lastProductIdOnPage = randomProductsPage * productsPageSize; -var firstProductIdOnPage = lastProductIdOnPage - productsPageSize + 1; - -var randomProductId1 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; -var randomProductId2 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; -var randomProductId3 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; - -vars.put("page_number", String.valueOf(randomProductsPage)); -vars.put("productId1", String.valueOf(randomProductId1)); -vars.put("productId2", String.valueOf(randomProductId2)); -vars.put("productId3", String.valueOf(randomProductId3)); - -var randomQuantity = Math.floor(Math.random() * 1000) + 1; -var randomPrice = Math.floor(Math.random() * 500) + 10; -var randomVisibility = Math.floor(random.nextInt(4)) + 1; - -vars.put("quantity", String.valueOf(randomQuantity)); -vars.put("price", String.valueOf(randomPrice)); -vars.put("visibility", String.valueOf(randomVisibility)); - - - - - - false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/setup.jmx - - + @@ -31124,71 +31317,49 @@ vars.put("visibility", String.valueOf(randomVisibility)); = true form_key - true - - - true - product_listing - = - true - namespace - true - - - true - - = - true - search - true + false - + true - true + ${entity} = true - filters[placeholder] - true + entity - + true - ${products_page_size} + ${adminImportBehavior} = true - paging[pageSize] - true + behavior - + true - ${page_number} + validation-stop-on-errors = true - paging[current] - true + validation_strategy - + true - entity_id + 10 = true - sorting[field] - true + allowed_error_count - + true - asc + , = true - sorting[direction] - true + _import_field_separator - + true - true + , = true - isAjax - true + _import_multiple_value_separator @@ -31198,74 +31369,92 @@ vars.put("visibility", String.valueOf(randomVisibility)); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}${admin_path}/admin/import/validate + POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_grid.jmx + mpaf/tool/fragments/ce/common/import_validate.jmx - totalRecords + File is valid! To start import process Assertion.response_data false - 2 + 16 - + - + true - ${productId1} + ${admin_form_key} = true - selected[0] + form_key + false - + true - ${productId2} + ${entity} = true - selected[1] + entity - + true - ${productId3} + ${adminImportBehavior} = true - selected[2] - true + behavior - + true - true + validation-stop-on-errors = true - filters[placeholder] + validation_strategy false - + true - ${admin_form_key} + 10 = true - form_key + allowed_error_count false - + true - product_listing + , = true - namespace + _import_field_separator + false + + + true + , + = + true + _import_multiple_value_separator false @@ -31276,244 +31465,45 @@ vars.put("visibility", String.valueOf(randomVisibility)); ${request_protocol} - ${base_path}${admin_path}/catalog/product_action_attribute/edit - GET + ${base_path}${admin_path}/admin/import/start + POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_update_attributes.jmx + mpaf/tool/fragments/ce/common/import_save.jmx - Update Attributes + Import successfully done Assertion.response_data false - 2 + 16 - - - - - - true - true - = - true - isAjax - true - - - true - ${admin_form_key} - = - true - form_key - true - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - true - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - ${quantity} - = - true - inventory[qty] - true - - - true - ${price} - = - true - attributes[price] - - - true - ${visibility} - = - true - attributes[visibility] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product_action_attribute/validate - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/change_attributes.jmx - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - ${quantity} - = - true - inventory[qty] - - - true - on - = - true - toggle_price - true - - - true - ${price} - = - true - attributes[price] - - - true - on - = - true - toggle_price - true - - - true - ${visibility} - = - true - attributes[visibility] - - - true - on - = - true - toggle_visibility - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product_action_attribute/save/store/0/active_tab/attributes - POST - true - false - true - true - false - - - - - - were updated. - - Assertion.response_data - false - 2 - - - - + 1 false 1 - ${importProductsPercentage} + ${exportProductsPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -31534,7 +31524,7 @@ if (testLabel - vars.put("testLabel", "Import Products"); + vars.put("testLabel", "Export Products"); true @@ -31707,19 +31697,7 @@ if (testLabel mpaf/tool/fragments/ce/simple_controller.jmx - - vars.put("entity", "catalog_product"); -String behavior = "${adminImportProductBehavior}"; -vars.put("adminImportBehavior", behavior); -String filepath = "${files_folder}${adminImportProductFilePath}"; -vars.put("adminImportFilePath", filepath); - - - true - mpaf/tool/fragments/ce/import_products/setup.jmx - - - + @@ -31729,7 +31707,7 @@ vars.put("adminImportFilePath", filepath); ${request_protocol} - ${base_path}${admin_path}/admin/import/ + ${base_path}${admin_path}/admin/export/ GET true false @@ -31737,11 +31715,11 @@ vars.put("adminImportFilePath", filepath); false false - mpaf/tool/fragments/ce/common/import.jmx + mpaf/tool/fragments/ce/common/export.jmx - Import Settings + Export Settings Assertion.response_data false @@ -31750,586 +31728,561 @@ vars.put("adminImportFilePath", filepath); - + true + form_key ${admin_form_key} = true - form_key - false - + + true + attribute_code + + = + true + + + true + export_filter[allow_message][] + , + = + true + + + true + export_filter[allow_open_amount] + + = + true + + + true + export_filter[category_ids] + 24,25,26,27,28,29,30 + = + true + + + true + export_filter[configurable_variations] + + = + true + + + true + export_filter[cost][] + , + = + true + + + true + export_filter[country_of_manufacture] + + = + true + + + true + export_filter[created_at] + + = + true + + + true + export_filter[custom_design] + + = + true + + + true + export_filter[custom_design_from][] + , + = + true + + + true + export_filter[custom_design_to][] + , + = + true + + + true + export_filter[custom_layout_update] + + = + true + + + true + export_filter[description] + + = + true + + + true + export_filter[email_template] + + = + true + + + true + export_filter[gallery] + + = + true + + + true + export_filter[gift_message_available] + + = + true + + + true + export_filter[gift_wrapping_available] + + = + true + + + true + export_filter[gift_wrapping_price][] + , + = + true + + + true + export_filter[group_price][] + , + = + true + + + true + export_filter[has_options] + + = + true + + + true + export_filter[image] + + = + true + + + true + export_filter[image_label] + + = + true + + + true + export_filter[is_redeemable][] + , + = + true + + + true + export_filter[is_returnable] + + = + true + + + true + export_filter[lifetime][] + , + = + true + + + true + export_filter[links_exist][] + , + = + true + + + true + export_filter[links_purchased_separately][] + , + = + true + + + true + export_filter[links_title] + + = + true + + + true + export_filter[media_gallery] + + = + true + + + true + export_filter[meta_description] + + = + true + + + true + export_filter[meta_keyword] + + = + true + + + true + export_filter[meta_title] + + = + true + + + true + export_filter[minimal_price][] + , + = + true + + + true + export_filter[msrp][] + , + = + true + + + true + export_filter[msrp_display_actual_price_type] + + = + true + + + true + export_filter[name] + + = + true + + + true + export_filter[news_from_date][] + , + = + true + + + true + export_filter[news_to_date][] + , + = + true + + + true + export_filter[old_id][] + , + = + true + + true - ${entity} + export_filter[open_amount_max][] + , = true - entity - + true - ${adminImportBehavior} + export_filter[open_amount_min][] + , = true - behavior - + true - validation-stop-on-errors + export_filter[options_container] + = true - validation_strategy - + true - 10 + export_filter[page_layout] + = true - allowed_error_count - + true + export_filter[price][] , = true - _import_field_separator - + true + export_filter[price_type][] , = true - _import_multiple_value_separator - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/validate - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel + + true + export_filter[price_view] + + = + true - - - false - - mpaf/tool/fragments/ce/common/import_validate.jmx - - - - File is valid! To start import process - - Assertion.response_data - false - 16 - - - - - - - - + true - ${admin_form_key} + export_filter[quantity_and_stock_status] + = true - form_key - false - + true - ${entity} + export_filter[related_tgtr_position_behavior][] + , = true - entity - + true - ${adminImportBehavior} + export_filter[related_tgtr_position_limit][] + , = true - behavior - + true - validation-stop-on-errors + export_filter[required_options] + = true - validation_strategy - false - + true - 10 + export_filter[samples_title] + = true - allowed_error_count - false - + true + export_filter[shipment_type][] , = true - _import_field_separator - false - + true - , + export_filter[short_description] + = true - _import_multiple_value_separator - false - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/start - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel + + true + export_filter[sku] + + = + true - - - false - - mpaf/tool/fragments/ce/common/import_save.jmx - - - - Import successfully done - - Assertion.response_data - false - 16 - - - - - - - - - 1 - false - 1 - ${importCustomersPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Import Customers"); - - true - - - - - vars.put("entity", "customer"); -String behavior = "${adminImportCustomerBehavior}"; -vars.put("adminImportBehavior", behavior); -String filepath = "${files_folder}${adminImportCustomerFilePath}"; -vars.put("adminImportFilePath", filepath); - - - true - mpaf/tool/fragments/ce/import_customers/setup.jmx - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - + + true + export_filter[sku_type][] + , + = + true + + true + export_filter[small_image] = true - dummy - + true - ${admin_form_key} + export_filter[small_image_label] + = true - form_key - + true - ${admin_password} + export_filter[special_from_date][] + , = true - login[password] - + true - ${admin_user} + export_filter[special_price][] + , = true - login[username] - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/import.jmx - - - - Import Settings - - Assertion.response_data - false - 2 - - - - - - - - + true - ${admin_form_key} + export_filter[special_to_date][] + , = true - form_key - false - + true - ${entity} + export_filter[status] + = true - entity - + true - ${adminImportBehavior} + export_filter[tax_class_id] + = true - behavior - + true - validation-stop-on-errors + export_filter[thumbnail] + = true - validation_strategy - + true - 10 + export_filter[thumbnail_label] + = true - allowed_error_count - + true + export_filter[tier_price][] , = true - _import_field_separator - + + true + export_filter[updated_at] + + = + true + + true + export_filter[upsell_tgtr_position_behavior][] , = true - _import_multiple_value_separator - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/validate - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel + + true + export_filter[upsell_tgtr_position_limit][] + , + = + true - - - false - - mpaf/tool/fragments/ce/common/import_validate.jmx - - - - File is valid! To start import process - - Assertion.response_data - false - 16 - - - - - - - - + true - ${admin_form_key} + export_filter[url_key] + = true - form_key - false - + true - ${entity} + export_filter[url_path] + = true - entity - + true - ${adminImportBehavior} + export_filter[use_config_allow_message][] + , = true - behavior - + true - validation-stop-on-errors + export_filter[use_config_email_template][] + , = true - validation_strategy - false - + true - 10 + export_filter[use_config_is_redeemable][] + , = true - allowed_error_count - false - + true + export_filter[use_config_lifetime][] , = true - _import_field_separator - false - + + true + export_filter[visibility] + + = + true + + true + export_filter[weight][] + , + = + true + + + true + export_filter[weight_type][] , = true - _import_multiple_value_separator - false + + + true + frontend_label + + = + true @@ -32339,29 +32292,19 @@ vars.put("adminImportFilePath", filepath); ${request_protocol} - ${base_path}${admin_path}/admin/import/start + ${base_path}${admin_path}/admin/export/export/entity/catalog_product/file_format/csv POST true false true false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel - - - false - mpaf/tool/fragments/ce/common/import_save.jmx + mpaf/tool/fragments/ce/export_products/export_products.jmx - Import successfully done + Simple Product 1 Assertion.response_data false @@ -32373,11 +32316,11 @@ vars.put("adminImportFilePath", filepath); - + 1 false 1 - ${exportProductsPercentage} + ${exportCustomersPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -32398,7 +32341,7 @@ if (testLabel - vars.put("testLabel", "Export Products"); + vars.put("testLabel", "Export Customers"); true @@ -32602,561 +32545,779 @@ if (testLabel - + true - form_key ${admin_form_key} = true + form_key + false true - attribute_code - - = - true - - - true - export_filter[allow_message][] - , - = - true - - - true - export_filter[allow_open_amount] - - = - true - - - true - export_filter[category_ids] - 24,25,26,27,28,29,30 - = - true - - - true - export_filter[configurable_variations] = true + attribute_code + true - - true - export_filter[cost][] - , - = - true - - + true - export_filter[country_of_manufacture] = true + export_filter[confirmation] + true true - export_filter[created_at] = true + export_filter[created_at] + true - + true - export_filter[custom_design] = true + export_filter[created_in] + true - + true - export_filter[custom_design_from][] , = true + export_filter[default_billing][] + true - + true - export_filter[custom_design_to][] , = true + export_filter[default_shipping][] + true - + true - export_filter[custom_layout_update] = true + export_filter[disable_auto_group_change] + true - + true - export_filter[description] - + , = true + export_filter[dob][] + true - + true - export_filter[email_template] = true + export_filter[email] + true - + true - export_filter[gallery] = true + export_filter[firstname] + true - + true - export_filter[gift_message_available] = true + export_filter[gender] + true - + true - export_filter[gift_wrapping_available] = true + export_filter[group_id] + true - - true - export_filter[gift_wrapping_price][] - , - = - true - - - true - export_filter[group_price][] - , - = - true - - + true - export_filter[has_options] = true + export_filter[lastname] + true - + true - export_filter[image] = true + export_filter[middlename] + true - + true - export_filter[image_label] = true + export_filter[password_hash] + true - - true - export_filter[is_redeemable][] - , - = - true - - + true - export_filter[is_returnable] = true + export_filter[prefix] + true - - true - export_filter[lifetime][] - , - = - true - - + true - export_filter[links_exist][] , = true + export_filter[reward_update_notification][] + true - + true - export_filter[links_purchased_separately][] , = true + export_filter[reward_warning_notification][] + true - - true - export_filter[links_title] - - = - true - - - true - export_filter[media_gallery] - - = - true - - - true - export_filter[meta_description] - - = - true - - - true - export_filter[meta_keyword] - - = - true - - + true - export_filter[meta_title] = true + export_filter[rp_token] + true - - true - export_filter[minimal_price][] - , - = - true - - + true - export_filter[msrp][] , = true + export_filter[rp_token_created_at][] + true - + true - export_filter[msrp_display_actual_price_type] = true + export_filter[store_id] + true - + true - export_filter[name] = true + export_filter[suffix] + true - - true - export_filter[news_from_date][] - , - = - true - - - true - export_filter[news_to_date][] - , - = - true - - - true - export_filter[old_id][] - , - = - true - - - true - export_filter[open_amount_max][] - , - = - true - - - true - export_filter[open_amount_min][] - , - = - true - - + true - export_filter[options_container] = true + export_filter[taxvat] + true - + true - export_filter[page_layout] = true + export_filter[website_id] + true - - true - export_filter[price][] - , - = - true - - - true - export_filter[price_type][] - , - = - true - - + true - export_filter[price_view] = true + frontend_label + true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/export/export/entity/customer/file_format/csv + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/export_customers/export_customers.jmx + + + + user_1@example.com + + Assertion.response_data + false + 16 + + + + + + + + + 1 + false + 1 + ${browseProductGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Browse Product Grid"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + + vars.put("gridEntityType" , "Product"); + + pagesCount = parseInt(vars.get("products_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "product_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "price"); + vars.put("grid_sort_field_3", "attribute_set_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + true - export_filter[quantity_and_stock_status] = true + dummy - - true - export_filter[related_tgtr_position_behavior][] - , - = - true - - - true - export_filter[related_tgtr_position_limit][] - , - = - true - - + true - export_filter[required_options] - + ${admin_form_key} = true + form_key - + true - export_filter[samples_title] - + ${admin_password} = true + login[password] - + true - export_filter[shipment_type][] - , + ${admin_user} = true + login[username] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + + + + true - export_filter[short_description] - + ${grid_namespace} = true + namespace + true - + true - export_filter[sku] = true + search + true - + true - export_filter[sku_type][] - , + true = true + filters[placeholder] + true - + true - export_filter[small_image] - + ${grid_entity_page_size} = true + paging[pageSize] + true - + true - export_filter[small_image_label] - + 1 = true + paging[current] + true - + true - export_filter[special_from_date][] - , + entity_id = true + sorting[field] + true - + true - export_filter[special_price][] - , + asc = true + sorting[direction] + true - + true - export_filter[special_to_date][] - , + true = true + isAjax + true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + true - export_filter[status] - + ${grid_namespace} = true + namespace + true - + true - export_filter[tax_class_id] = true + search + true - + true - export_filter[thumbnail] - + ${grid_admin_browse_filter_text} = true + filters[placeholder] + true - + true - export_filter[thumbnail_label] - + ${grid_entity_page_size} = true + paging[pageSize] + true - + true - export_filter[tier_price][] - , + 1 = true + paging[current] + true - + true - export_filter[updated_at] - + entity_id = true + sorting[field] + true - + true - export_filter[upsell_tgtr_position_behavior][] - , + asc = true + sorting[direction] + true - + true - export_filter[upsell_tgtr_position_limit][] - , + true = true + isAjax + true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + true - export_filter[url_key] - + ${grid_namespace} = true + namespace + true - + true - export_filter[url_path] = true + search + true - - true - export_filter[use_config_allow_message][] - , - = - true - - - true - export_filter[use_config_email_template][] - , - = - true - - + true - export_filter[use_config_is_redeemable][] - , + true = true + filters[placeholder] + true - + true - export_filter[use_config_lifetime][] - , + ${grid_entity_page_size} = true + paging[pageSize] + true - + true - export_filter[visibility] - + ${page_number} = true + paging[current] + true - + true - export_filter[weight][] - , + entity_id = true + sorting[field] + true - + true - export_filter[weight_type][] - , + asc = true + sorting[direction] + true - + true - frontend_label - + true = true + isAjax + true @@ -33166,35 +33327,165 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/export/export/entity/catalog_product/file_format/csv - POST + ${base_path}${admin_path}/mui/index/render/ + GET true false true false false - mpaf/tool/fragments/ce/export_products/export_products.jmx + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx - Simple Product 1 + \"totalRecords\":[^0]\d* Assertion.response_data false - 16 + 2 + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + - + 1 false 1 - ${exportCustomersPercentage} + ${browseOrderGridPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -33215,7 +33506,7 @@ if (testLabel - vars.put("testLabel", "Export Customers"); + vars.put("testLabel", "Browse Order Grid"); true @@ -33275,6 +33566,27 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + vars.put("gridEntityType" , "Order"); + + pagesCount = parseInt(vars.get("orders_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "sales_order_grid"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text")); + vars.put("grid_filter_field", "status"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "increment_id"); + vars.put("grid_sort_field_2", "created_at"); + vars.put("grid_sort_field_3", "billing_name"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx + + mpaf/tool/fragments/ce/once_only_controller.jmx @@ -33382,252 +33694,322 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/export/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/export.jmx - - - - Export Settings - - Assertion.response_data - false - 2 - - - - + - - true - ${admin_form_key} - = - true - form_key - false - - - true - - = - true - attribute_code - true - - + true - + ${grid_namespace} = true - export_filter[confirmation] + namespace true - + true = true - export_filter[created_at] + search true - + true - + true = true - export_filter[created_in] + filters[placeholder] true - + true - , + ${grid_entity_page_size} = true - export_filter[default_billing][] + paging[pageSize] true - + true - , + 1 = true - export_filter[default_shipping][] + paging[current] true - + true - + entity_id = true - export_filter[disable_auto_group_change] + sorting[field] true - + true - , + asc = true - export_filter[dob][] + sorting[direction] true - + true - + true = true - export_filter[email] + isAjax true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + true - + ${grid_namespace} = true - export_filter[firstname] + namespace true - + true = true - export_filter[gender] + search true - + true - + ${grid_admin_browse_filter_text} = true - export_filter[group_id] + filters[placeholder] true - + true - + ${grid_entity_page_size} = true - export_filter[lastname] + paging[pageSize] true - + true - + 1 = true - export_filter[middlename] + paging[current] true - + true - + entity_id = true - export_filter[password_hash] + sorting[field] true - + true - + asc = true - export_filter[prefix] + sorting[direction] true - + true - , + true = true - export_filter[reward_update_notification][] + isAjax true - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + true - , + ${grid_namespace} = true - export_filter[reward_warning_notification][] + namespace true - + true = true - export_filter[rp_token] + search true - + true - , + true = true - export_filter[rp_token_created_at][] + filters[placeholder] true - + true - + ${grid_entity_page_size} = true - export_filter[store_id] + paging[pageSize] true - + true - + ${page_number} = true - export_filter[suffix] + paging[current] true - + true - + entity_id = true - export_filter[taxvat] + sorting[field] true - + true - + asc = true - export_filter[website_id] + sorting[direction] true - + true - + true = true - frontend_label + isAjax true @@ -33638,26 +34020,156 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/export/export/entity/customer/file_format/csv - POST + ${base_path}${admin_path}/mui/index/render/ + GET true false true false false - mpaf/tool/fragments/ce/export_customers/export_customers.jmx + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx - user_1@example.com + \"totalRecords\":[^0]\d* Assertion.response_data false - 16 + 2 + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + diff --git a/setup/performance-toolkit/profiles/ce/extra_large.xml b/setup/performance-toolkit/profiles/ce/extra_large.xml index 2b832f6f9ce91..9d6147095a784 100644 --- a/setup/performance-toolkit/profiles/ce/extra_large.xml +++ b/setup/performance-toolkit/profiles/ce/extra_large.xml @@ -5,21 +5,51 @@ * See COPYING.txt for license details. */ --> - + 5 5 5 - 800000 - 50000 - 3000 - 6 - 100 - 100 - 5 - 5000 + 1 + 600000 + + + + + 3 + image + + + 8 + + + Configurable Product %s + 16000 + + + + 2000 + 3 + + 6000 + 5 + 10000 + + 20 + 20 + 2 + + 200 + 50 + 2 + + true + 2 + 2 + 150000 + tax_rates.csv - 80000 + admin/security/use_form_key @@ -27,6 +57,18 @@ 0 0 + + admin/security/session_lifetime + default + 0 + 7200 + + + admin/security/admin_account_sharing + default + 0 + 1 + carriers/flatrate/active default @@ -68,5 +110,11 @@ true + + + + + + diff --git a/setup/performance-toolkit/profiles/ce/large.xml b/setup/performance-toolkit/profiles/ce/large.xml index 50a2f8951948f..266dc978aab32 100644 --- a/setup/performance-toolkit/profiles/ce/large.xml +++ b/setup/performance-toolkit/profiles/ce/large.xml @@ -57,6 +57,18 @@ 0 0 + + admin/security/session_lifetime + default + 0 + 7200 + + + admin/security/admin_account_sharing + default + 0 + 1 + carriers/flatrate/active default diff --git a/setup/performance-toolkit/profiles/ce/medium.xml b/setup/performance-toolkit/profiles/ce/medium.xml index f0022fe801169..819ad609e7b4c 100644 --- a/setup/performance-toolkit/profiles/ce/medium.xml +++ b/setup/performance-toolkit/profiles/ce/medium.xml @@ -39,9 +39,9 @@ 20 2 - 1 + 100 50 - 200 + 2 true 2 @@ -57,6 +57,18 @@ 0 0 + + admin/security/session_lifetime + default + 0 + 7200 + + + admin/security/admin_account_sharing + default + 0 + 1 + carriers/flatrate/active default diff --git a/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php b/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php index 4c6b40b47142b..0a771519c7d5f 100644 --- a/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php +++ b/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php @@ -6,6 +6,14 @@ namespace Magento\Setup\Fixtures; +use Magento\Authorization\Model\Acl\Role\Group; +use Magento\Authorization\Model\RoleFactory; +use Magento\Authorization\Model\RulesFactory; +use Magento\Authorization\Model\UserContextInterface; +use Magento\Framework\Acl\RootResource; +use Magento\User\Model\ResourceModel\User\CollectionFactory as UserCollectionFactory; +use Magento\User\Model\UserFactory; + /** * Generate admin users * @@ -21,36 +29,52 @@ class AdminUsersFixture extends Fixture protected $priority = 5; /** - * @var \Magento\User\Model\UserFactory + * @var UserFactory */ private $userFactory; /** - * @var \Magento\Authorization\Model\RoleFactory + * @var RoleFactory */ private $roleFactory; /** - * @var \Magento\User\Model\ResourceModel\User\CollectionFactory + * @var UserCollectionFactory */ private $userCollectionFactory; /** - * @param \Magento\User\Model\UserFactory $userFactory - * @param \Magento\User\Model\ResourceModel\User\CollectionFactory $userCollectionFactory - * @param \Magento\Authorization\Model\RoleFactory $roleFactory + * @var RulesFactory + */ + private $rulesFactory; + + /** + * @var RootResource + */ + private $rootResource; + + /** * @param FixtureModel $fixtureModel + * @param UserFactory $userFactory + * @param UserCollectionFactory $userCollectionFactory + * @param RoleFactory $roleFactory + * @param RulesFactory $rulesFactory + * @param RootResource $rootResource */ public function __construct( - \Magento\User\Model\UserFactory $userFactory, - \Magento\User\Model\ResourceModel\User\CollectionFactory $userCollectionFactory, - \Magento\Authorization\Model\RoleFactory $roleFactory, - FixtureModel $fixtureModel + FixtureModel $fixtureModel, + UserFactory $userFactory, + UserCollectionFactory $userCollectionFactory, + RoleFactory $roleFactory, + RulesFactory $rulesFactory, + RootResource $rootResource ) { parent::__construct($fixtureModel); $this->userFactory = $userFactory; $this->roleFactory = $roleFactory; $this->userCollectionFactory = $userCollectionFactory; + $this->rulesFactory = $rulesFactory; + $this->rootResource = $rootResource; } /** @@ -65,12 +89,11 @@ public function execute() return; } - $defaultAdminUser = $this->userFactory->create()->loadByUsername('admin'); - $defaultAdminRole = $this->roleFactory->create()->load($defaultAdminUser->getAclRole()); + $role = $this->createAdministratorRole(); for ($i = $adminUsersStartIndex; $i <= $adminUsersNumber; $i++) { $adminUser = $this->userFactory->create(); - $adminUser + $adminUser->setRoleId($role->getId()) ->setEmail('admin' . $i . '@example.com') ->setFirstName('Firstname') ->setLastName('Lastname') @@ -78,17 +101,6 @@ public function execute() ->setPassword('123123q') ->setIsActive(1); $adminUser->save(); - - $role = $this->roleFactory->create(); - $role - ->setUserId($adminUser->getId()) - ->setRoleName('admin') - ->setRoleType($defaultAdminRole->getRoleType()) - ->setUserType($defaultAdminRole->getUserType()) - ->setTreeLevel($defaultAdminRole->getTreeLevel()) - ->setSortOrder($defaultAdminRole->getSortOrder()) - ->setParentId(1); - $role->save(); } } @@ -109,4 +121,32 @@ public function introduceParamLabels() 'admin_users' => 'Admin Users' ]; } + + /** + * Create administrator role with all privileges. + * + * @return \Magento\Authorization\Model\Role + */ + private function createAdministratorRole() + { + $role = $this->roleFactory->create(); + $role->setParentId(0) + ->setTreeLevel(1) + ->setSortOrder(1) + ->setRoleType(Group::ROLE_TYPE) + ->setUserId(0) + ->setUserType(UserContextInterface::USER_TYPE_ADMIN) + ->setRoleName('Example Administrator'); + $role->save(); + + /** @var \Magento\Authorization\Model\Rules $rule */ + $rule = $this->rulesFactory->create(); + $rule->setRoleId($role->getId()) + ->setResourceId($this->rootResource->getId()) + ->setPrivilegies(null) + ->setPermission('allow'); + $rule->save(); + + return $role; + } } diff --git a/setup/src/Magento/Setup/Fixtures/CartPriceRulesFixture.php b/setup/src/Magento/Setup/Fixtures/CartPriceRulesFixture.php index a75355ccf2cf5..0ece7c410f1b7 100755 --- a/setup/src/Magento/Setup/Fixtures/CartPriceRulesFixture.php +++ b/setup/src/Magento/Setup/Fixtures/CartPriceRulesFixture.php @@ -46,6 +46,8 @@ class CartPriceRulesFixture extends Fixture private $ruleFactory; /** + * Constructor + * * @param FixtureModel $fixtureModel * @param \Magento\SalesRule\Model\RuleFactory|null $ruleFactory */ @@ -234,11 +236,11 @@ public function generateRules($ruleFactory, $categoriesArray) } unset($data['rule']); - $rule = $ruleFactory->create(); - $rule->loadPost($data); + $model = $ruleFactory->create(); + $model->loadPost($data); $useAutoGeneration = (int)!empty($data['use_auto_generation']); - $rule->setUseAutoGeneration($useAutoGeneration); - $rule->save(); + $model->setUseAutoGeneration($useAutoGeneration); + $model->save(); } } @@ -425,11 +427,11 @@ public function generateAdvancedRules($ruleFactory, $categoriesArray) } unset($data['rule']); - $rule = $ruleFactory->create(); - $rule->loadPost($data); + $model = $ruleFactory->create(); + $model->loadPost($data); $useAutoGeneration = (int)!empty($data['use_auto_generation']); - $rule->setUseAutoGeneration($useAutoGeneration); - $rule->save(); + $model->setUseAutoGeneration($useAutoGeneration); + $model->save(); } } diff --git a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php index df86ec12164eb..4085f8ed29fd9 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php @@ -14,7 +14,7 @@ class ConfigsApplyFixture extends Fixture /** * @var int */ - protected $priority = 150; + protected $priority = 0; /** * {@inheritdoc} diff --git a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php index bd070c30ba65c..5664b0345ca3b 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php @@ -10,6 +10,7 @@ use Magento\Catalog\Model\Product\Visibility; use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory; use Magento\ConfigurableProduct\Model\Product\Type\Configurable; +use Magento\Eav\Model\Entity\Attribute; use Magento\Eav\Model\ResourceModel\Entity\Attribute\CollectionFactory; use Magento\Framework\Exception\ValidatorException; use Magento\Setup\Model\DataGenerator; @@ -71,6 +72,7 @@ * * @see setup/performance-toolkit/profiles/ce/small.xml * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.TooManyFields) */ class ConfigurableProductsFixture extends Fixture { @@ -150,7 +152,6 @@ class ConfigurableProductsFixture extends Fixture private $swatchesGenerator; /** - * ConfigurableProductsFixture constructor. * @param FixtureModel $fixtureModel * @param AttributeSet\AttributeSetFixture $attributeSetsFixture * @param AttributeSet\Pattern $attributePattern @@ -162,7 +163,7 @@ class ConfigurableProductsFixture extends Fixture * @param CategoryResolver $categoryResolver * @param WebsiteCategoryProvider $websiteCategoryProvider * @param PriceProvider $priceProvider - * @param \Magento\Setup\Fixtures\AttributeSet\SwatchesGenerator $swatchesGenerator + * @param AttributeSet\SwatchesGenerator $swatchesGenerator * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -518,9 +519,14 @@ private function getConfigurableProductConfig() $attributes = count($attributes); } elseif ($attributes && $options) { $attributes = (int)$attributes; - // process dynamic attribute sets - $attributeSet = $this->getAttributeSet($attributes, $options, $config['swatches']); + // convert attributes and options to array for process custom attribute set creation + $attributesData = array_map(function ($options) use ($config) { + return ['options' => $options, 'swatches' => $config['swatches']]; + }, array_fill(0, $attributes, $options)); + + $attributeSet = $this->getCustomAttributeSet($attributesData); } + // do not process if any required option is missed if (count(array_filter([$attributeSet, $attributes, $options])) !== 3) { unset($configurableProductConfig[$i]); @@ -624,36 +630,6 @@ private function getConfigurableSkuPattern($config, $attributeSetName) return $sku; } - /** - * @param int $attributes - * @param int $options - * @param string $swatches - * @return array - */ - private function getAttributeSet($attributes, $options, $swatches) - { - $attributeCode = 'configurable_attribute' . $attributes . '_' . $options . '_'; - - return $this->attributeSetsFixture->createAttributeSet( - $this->attributePattern->generateAttributeSet( - $this->getAttributeSetName($attributes, $options), - $attributes, - $options, - function ($index, $attribute) use ($attributeCode, $options, $swatches) { - $data = [ - 'attribute_code' => $attributeCode . $index, - 'frontend_label' => 'Big Attribute ' . $attributeCode . $index, - ]; - return array_replace_recursive( - $attribute, - $data, - $this->swatchesGenerator->generateSwatchData($options, $attributeCode . $index, $swatches) - ); - } - ) - ); - } - /** * Provide attribute set based on attributes configuration * @@ -662,24 +638,26 @@ function ($index, $attribute) use ($attributeCode, $options, $swatches) { */ private function getCustomAttributeSet(array $attributes) { - $attributeSetName = $this->getAttributeSetName( - count($attributes), - implode(',', array_column($attributes, 'options')) - ); + $attributeSetHash = crc32(json_encode($attributes)); + $attributeSetName = sprintf('Dynamic Attribute Set %s', $attributeSetHash); $pattern = $this->attributePattern->generateAttributeSet( $attributeSetName, count($attributes), array_column($attributes, 'options'), - function ($index, $attribute) use ($attributeSetName, $attributes) { + function ($index, $attribute) use ($attributeSetName, $attributes, $attributeSetHash) { $swatch = []; - $attributeCode = substr(uniqid(sprintf('custom_attribute_%s_', $index)), 0, 30); + $attributeCode = substr( + sprintf('ca_%s_%s', $index, $attributeSetHash), + 0, + Attribute::ATTRIBUTE_CODE_MAX_LENGTH + ); $data = [ 'attribute_code' => $attributeCode, 'frontend_label' => 'Dynamic Attribute ' . $attributeCode, ]; - if (isset($attributes[$index-1]['swatches'])) { + if (isset($attributes[$index - 1]['swatches'])) { $data['is_visible_in_advanced_search'] = 1; $data['is_searchable'] = 1; $data['is_filterable'] = 1; @@ -704,18 +682,6 @@ function ($index, $attribute) use ($attributeSetName, $attributes) { return $this->attributeSetsFixture->createAttributeSet($pattern); } - /** - * Provide attribute set name based on amount of attributes and options per attribute set - * - * @param int $attributesCount - * @param int $optionsCount - * @return string - */ - private function getAttributeSetName($attributesCount, $optionsCount) - { - return uniqid(sprintf('Dynamic Attribute Set %s-%s-', $attributesCount, $optionsCount)) ; - } - /** * @return array */ @@ -906,7 +872,7 @@ private function convertAttributesToDBFormat(array $attributeSet) 'attribute_code', $attributeData['name'] ); - /** @var \Magento\Eav\Model\Entity\Attribute $attribute */ + /** @var Attribute $attribute */ foreach ($attributeCollection as $attribute) { $attributeSetId = $attribute->getAttributeSetId(); $values = []; diff --git a/setup/src/Magento/Setup/Fixtures/EavVariationsFixture.php b/setup/src/Magento/Setup/Fixtures/EavVariationsFixture.php index ed731b8da6712..daaaf1299b6ff 100644 --- a/setup/src/Magento/Setup/Fixtures/EavVariationsFixture.php +++ b/setup/src/Magento/Setup/Fixtures/EavVariationsFixture.php @@ -114,18 +114,17 @@ public function introduceParamLabels() */ private function generateAttribute($optionCount) { - $stores = $this->storeManager->getStores(); - $storeViewsCount = count($stores); + $storeIds = array_keys($this->storeManager->getStores(true)); $options = []; for ($option = 1; $option <= $optionCount; $option++) { $options['order']['option_' . $option] = $option; - $options['value']['option_' . $option] = array_fill(0, $storeViewsCount + 1, 'option ' . $option); + $options['value']['option_' . $option] = array_fill_keys($storeIds, 'option ' . $option); $options['delete']['option_' . $option] = ''; } $data = [ - 'frontend_label' => array_fill(0, $storeViewsCount + 1, 'configurable variations'), + 'frontend_label' => array_fill_keys($storeIds, 'configurable variations'), 'frontend_input' => 'select', 'is_required' => '0', 'option' => $options, diff --git a/setup/src/Magento/Setup/Fixtures/FixtureModel.php b/setup/src/Magento/Setup/Fixtures/FixtureModel.php index e9feed1193314..fc58e83e25d1e 100644 --- a/setup/src/Magento/Setup/Fixtures/FixtureModel.php +++ b/setup/src/Magento/Setup/Fixtures/FixtureModel.php @@ -51,7 +51,7 @@ class FixtureModel * Parameters labels * * @var array - * @deprecated + * @deprecated 2.2.0 */ protected $paramLabels = []; @@ -109,6 +109,11 @@ public function loadFixtures() 'fixtureModel' => $this, ] ); + if (isset($this->fixtures[$fixture->getPriority()])) { + throw new \InvalidArgumentException( + sprintf('Duplicate priority %d in fixture %s', $fixture->getPriority(), $type) + ); + } $this->fixtures[$fixture->getPriority()] = $fixture; } @@ -120,7 +125,7 @@ public function loadFixtures() * Get param labels * * @return array - * @deprecated + * @deprecated 2.2.0 */ public function getParamLabels() { @@ -191,7 +196,7 @@ public function initObjectManager($area = self::AREA_CODE) * Reset object manager * * @return \Magento\Framework\ObjectManagerInterface - * @deprecated + * @deprecated 2.2.0 */ public function resetObjectManager() { diff --git a/setup/src/Magento/Setup/Fixtures/OrdersFixture.php b/setup/src/Magento/Setup/Fixtures/OrdersFixture.php index 67d1d3a73a843..df48bfbcacfef 100644 --- a/setup/src/Magento/Setup/Fixtures/OrdersFixture.php +++ b/setup/src/Magento/Setup/Fixtures/OrdersFixture.php @@ -355,7 +355,7 @@ public function execute() $this->query('quote_item', $order, $itemData); $this->query('quote_item_option', $order, $itemData, [ '%code%' => 'info_buyRequest', - '%value%' => serialize([ + '%value%' => json_encode([ 'product' => $productId($entityId, $i, Type::TYPE_SIMPLE), 'qty' => "1", 'uenc' => 'aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw' @@ -597,7 +597,7 @@ private function prepareSimpleProducts(array $productIds = []) $productsResult[$key]['id'] = $simpleId; $productsResult[$key]['sku'] = $simpleProduct->getSku(); $productsResult[$key]['name'] = $simpleProduct->getName(); - $productsResult[$key]['buyRequest'] = serialize([ + $productsResult[$key]['buyRequest'] = json_encode([ "info_buyRequest" => [ "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", "product" => $simpleId, @@ -622,7 +622,8 @@ private function prepareConfigurableProducts(array $productIds = []) foreach ($productIds as $key => $configurableId) { $configurableProduct = $this->productRepository->getById($configurableId); $options = $this->optionRepository->getList($configurableProduct->getSku()); - $configurableChild = $this->linkManagement->getChildren($configurableProduct->getSku())[0]; + $configurableChild = $configurableProduct->getTypeInstance()->getUsedProducts($configurableProduct); + $configurableChild = reset($configurableChild); $simpleSku = $configurableChild->getSku(); $simpleId = $this->productRepository->get($simpleSku)->getId(); @@ -672,13 +673,13 @@ private function prepareConfigurableProducts(array $productIds = []) $productsResult[$key]['name'] = $configurableProduct->getName(); $productsResult[$key]['childId'] = $simpleId; $productsResult[$key]['buyRequest'] = [ - 'order' => serialize($configurableBuyRequest), - 'quote' => serialize($quoteConfigurableBuyRequest), - 'super_attribute' => serialize($superAttribute) + 'order' => json_encode($configurableBuyRequest), + 'quote' => json_encode($quoteConfigurableBuyRequest), + 'super_attribute' => json_encode($superAttribute) ]; $productsResult[$key]['childBuyRequest'] = [ - 'order' => serialize($simpleBuyRequest), - 'quote' => serialize($quoteSimpleBuyRequest), + 'order' => json_encode($simpleBuyRequest), + 'quote' => json_encode($quoteSimpleBuyRequest), ]; } return $productsResult; diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php new file mode 100644 index 0000000000000..1a95ddc904481 --- /dev/null +++ b/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php @@ -0,0 +1,138 @@ + 'simple_count_to', + 'order_simple_product_count_from' => 'simple_count_from', + 'order_configurable_product_count_to' => 'configurable_count_to', + 'order_configurable_product_count_from' => 'configurable_count_from', + 'order_big_configurable_product_count_to' => 'big_configurable_count_to', + 'order_big_configurable_product_count_from' => 'big_configurable_count_from', + 'order_quotes_enable' => 'order_quotes_enable', + ]; + + /** + * @var string + */ + protected $fixtureDataFilename = 'orders_fixture_data.json'; + + /** + * @var FixtureModel + */ + private $fixtureModel; + + /** + * @param FixtureModel $fixtureModel + */ + public function __construct(FixtureModel $fixtureModel) + { + $this->fixtureModel = $fixtureModel; + } + + /** + * Fills object with data. + * + * @return $this + */ + public function load() + { + $this->addData([ + 'simple_count_to' => self::SIMPLE_PRODUCT_COUNT_TO, + 'simple_count_from' => self::SIMPLE_PRODUCT_COUNT_FROM, + 'configurable_count_to' => self::CONFIGURABLE_PRODUCT_COUNT_TO, + 'configurable_count_from' => self::CONFIGURABLE_PRODUCT_COUNT_FROM, + 'big_configurable_count_to' => self::BIG_CONFIGURABLE_PRODUCT_COUNT_TO, + 'big_configurable_count_from' => self::BIG_CONFIGURABLE_PRODUCT_COUNT_FROM, + ]); + + $this->setData( + 'fixture_data_filename', + dirname(__DIR__) . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . $this->fixtureDataFilename + ); + $this->accumulateData(); + + return $this; + } + + /** + * Accumulate data from fixute model to object values. + * + * @return $this + */ + private function accumulateData() + { + foreach ($this->_globalMap as $getKey => $setKey) { + $value = $this->fixtureModel->getValue($getKey); + if (null !== $value) { + $this->setData($setKey, $value); + } + } + return $this; + } +} diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php new file mode 100644 index 0000000000000..060cb5beab3a5 --- /dev/null +++ b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php @@ -0,0 +1,793 @@ +storeManager = $storeManager; + $this->productCollectionFactory = $productCollectionFactory; + $this->productRepository = $productRepository; + $this->optionRepository = $optionRepository; + $this->linkManagement = $linkManagement; + $this->config = $config; + $this->fixtureModel = $fixtureModel; + } + + /** + * Prepare and save quotes in database. + * + * @throws \Exception + * @return void + */ + public function generateQuotes() + { + $maxItemsPerOrder = $this->config->getSimpleCountTo() + + ($this->config->getConfigurableCountTo() + $this->config->getBigConfigurableCountTo()) * 2; + + $maxItemId = $this->getMaxEntityId( + 'quote_item', + \Magento\Quote\Model\ResourceModel\Quote\Item::class, + 'item_id' + ); + /** @var \Generator $itemIdSequence */ + $itemIdSequence = $this->getItemIdSequence( + $maxItemId, + $this->config->getRequiredQuoteQuantity(), + $maxItemsPerOrder + ); + $this->productStubData = $this->prepareProductsForQuote(); + $this->prepareQueryTemplates(); + + $entityId = $this->getMaxEntityId('quote', \Magento\Quote\Model\ResourceModel\Quote::class, 'entity_id'); + $quoteQty = $this->config->getExistsQuoteQuantity(); + $batchNumber = 0; + while ($quoteQty < $this->config->getRequiredQuoteQuantity()) { + $entityId++; + $batchNumber++; + $quoteQty++; + + try { + $this->saveQuoteWithQuoteItems($entityId, $itemIdSequence); + } catch (\Exception $lastException) { + foreach ($this->resourceConnections as $connection) { + if ($connection->getTransactionLevel() > 0) { + $connection->rollBack(); + } + } + throw $lastException; + } + + if ($batchNumber >= self::BATCH_SIZE) { + $this->commitBatch(); + $batchNumber = 0; + } + } + + foreach ($this->resourceConnections as $connection) { + if ($connection->getTransactionLevel() > 0) { + $connection->commit(); + } + } + } + + /** + * Save quote and quote items. + * + * @param int $entityId + * @param \Generator $itemIdSequence + * @return void + */ + private function saveQuoteWithQuoteItems($entityId, \Generator $itemIdSequence) + { + $productCount = [ + Type::TYPE_SIMPLE => mt_rand( + $this->config->getSimpleCountFrom(), + $this->config->getSimpleCountTo() + ), + Configurable::TYPE_CODE => mt_rand( + $this->config->getConfigurableCountFrom(), + $this->config->getConfigurableCountTo() + ), + QuoteConfiguration::BIG_CONFIGURABLE_TYPE => mt_rand( + $this->config->getBigConfigurableCountFrom(), + $this->config->getBigConfigurableCountTo() + ) + ]; + $quote = [ + '%itemsPerOrder%' => array_sum($productCount), + '%orderNumber%' => 100000000 * $this->getStubProductStoreId($entityId) + $entityId, + '%email%' => "quote_{$entityId}@example.com", + '%time%' => date(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT), + '%productStoreId%' => $this->getStubProductStoreId($entityId), + '%productStoreName%' => $this->getStubProductStoreName($entityId), + '%entityId%' => $entityId, + ]; + $shippingAddress = ['%orderAddressId%' => $entityId * 2 - 1, '%addressType%' => 'shipping']; + $billingAddress = ['%orderAddressId%' => $entityId * 2, '%addressType%' => 'billing']; + $address = $this->getAddressDataFixture(); + + $this->query('quote', $quote); + $this->query('quote_address', $quote, $address, $shippingAddress); + $this->query('quote_address', $quote, $address, $billingAddress); + + for ($i = 0; $i < $productCount[Type::TYPE_SIMPLE]; $i++) { + $this->saveItemSimpleData($entityId, $i, $itemIdSequence->current(), $quote); + $itemIdSequence->next(); + } + + foreach ([Configurable::TYPE_CODE, QuoteConfiguration::BIG_CONFIGURABLE_TYPE] as $type) { + for ($i = 0; $i < $productCount[$type]; $i++) { + // Generate parent item + $parentItemId = $itemIdSequence->current(); + $this->saveParentItemConfigurableData($entityId, $i, $parentItemId, $type, $quote); + $itemIdSequence->next(); + + // Generate child item + $itemId = $itemIdSequence->current(); + $this->saveChildItemConfigurable($entityId, $i, $itemId, $parentItemId, $type, $quote); + $itemIdSequence->next(); + } + } + } + + /** + * Prepare and save quote item with simple product. + * + * @param int $entityId + * @param int $index + * @param int $itemId + * @param array $quote + * @return void + */ + private function saveItemSimpleData($entityId, $index, $itemId, array $quote) + { + $itemData = [ + '%productId%' => $this->getStubProductId($entityId, $index, Type::TYPE_SIMPLE), + '%sku%' => $this->getStubProductSku($entityId, $index, Type::TYPE_SIMPLE), + '%name%' => $this->getStubProductName($entityId, $index, Type::TYPE_SIMPLE), + '%itemId%' => $itemId, + '%productType%' => Type::TYPE_SIMPLE, + '%productOptions%' => $this->getStubProductBuyRequest($entityId, $index, Type::TYPE_SIMPLE), + '%parentItemId%' => 'null', + ]; + $this->query('quote_item', $quote, $itemData); + $this->query('quote_item_option', $quote, $itemData, [ + '%code%' => 'info_buyRequest', + '%value%' => json_encode([ + 'product' => $this->getStubProductId($entityId, $index, Type::TYPE_SIMPLE), + 'qty' => "1", + 'uenc' => 'aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw' + ]) + ]); + } + + /** + * Prepare and save parent quote item for configurable product. + * + * @param int $entityId + * @param int $index + * @param int $parentItemId + * @param string $productType + * @param array $quote + * @return void + */ + private function saveParentItemConfigurableData($entityId, $index, $parentItemId, $productType, array $quote) + { + $itemData = [ + '%productId%' => $this->getStubProductId($entityId, $index, $productType), + '%sku%' => $this->getStubProductSku($entityId, $index, $productType), + '%name%' => $this->getStubProductName($entityId, $index, $productType), + '%productOptions%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['order'], + '%itemId%' => $parentItemId, + '%parentItemId%' => 'null', + '%productType%' => Configurable::TYPE_CODE + ]; + $this->query('quote_item', $quote, $itemData); + $this->query('quote_item_option', $quote, $itemData, [ + '%code%' => 'info_buyRequest', + '%value%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['quote'] + ]); + $this->query('quote_item_option', $quote, $itemData, [ + '%code%' => 'attributes', + '%value%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['super_attribute'] + ]); + $itemData['%productId%'] = $this->getStubProductChildId($entityId, $index, $productType); + $this->query('quote_item_option', $itemData, [ + '%code%' => "product_qty_" . $this->getStubProductChildId($entityId, $index, $productType), + '%value%' => "1" + ]); + $this->query('quote_item_option', $itemData, [ + '%code%' => "simple_product", + '%value%' => $this->getStubProductChildId($entityId, $index, $productType) + ]); + } + + /** + * Prepare and save child quote item for configurable product. + * + * @param int $entityId + * @param int $index + * @param int $itemId + * @param int $parentItemId + * @param string $productType + * @param array $quote + * @return void + */ + private function saveChildItemConfigurable($entityId, $index, $itemId, $parentItemId, $productType, array $quote) + { + $itemData = [ + '%productId%' => $this->getStubProductChildId($entityId, $index, $productType), + '%sku%' => $this->getStubProductSku($entityId, $index, $productType), + '%name%' => $this->getStubProductName($entityId, $index, $productType), + '%productOptions%' => $this->getStubProductChildBuyRequest($entityId, $index, $productType)['order'], + '%itemId%' => $itemId, + '%parentItemId%' => $parentItemId, + '%productType%' => Type::TYPE_SIMPLE + ]; + + $this->query('quote_item', $quote, $itemData); + $this->query('quote_item_option', $itemData, [ + '%code%' => "info_buyRequest", + '%value%' => $this->getStubProductChildBuyRequest($entityId, $index, $productType)['quote'] + ]); + $this->query('quote_item_option', $itemData, [ + '%code%' => "parent_product_id", + '%value%' => $this->getStubProductId($entityId, $index, $productType) + ]); + } + + /** + * Get store id for quote item by product index. + * + * @param int $entityId + * @return int + */ + private function getStubProductStoreId($entityId) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][0]; + } + + /** + * Get store name for quote item by product index. + * + * @param int $entityId + * @return string + */ + private function getStubProductStoreName($entityId) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][1]; + } + + /** + * Get product id for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return int + */ + private function getStubProductId($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['id']; + } + + /** + * Get product SKU for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return string + */ + private function getStubProductSku($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['sku']; + } + + /** + * Get product name for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return string + */ + private function getStubProductName($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['name']; + } + + /** + * Get product buy request for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return string + */ + private function getStubProductBuyRequest($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['buyRequest']; + } + + /** + * Get configurable product child id for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return string + */ + private function getStubProductChildBuyRequest($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['childBuyRequest']; + } + + /** + * Get configurable product child id for quote item by product index. + * + * @param int $entityId + * @param int $index + * @param string $type + * @return int + */ + private function getStubProductChildId($entityId, $index, $type) + { + return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['childId']; + } + + /** + * Get index of item in product stub array. + * + * @param int $entityId + * @return int + */ + private function getProductStubIndex($entityId) + { + $storeCount = count($this->productStubData); + $qty = intdiv($this->config->getRequiredQuoteQuantity(), $storeCount); + return intdiv($entityId, $qty) % $storeCount; + } + + /** + * Get quote address mock data. + * + * @return array + */ + private function getAddressDataFixture() + { + return [ + '%firstName%' => 'First Name', + '%lastName%' => 'Last Name', + '%company%' => 'Company', + '%address%' => 'Address', + '%city%' => 'city', + '%state%' => 'Alabama', + '%country%' => 'US', + '%zip%' => '11111', + '%phone%' => '911' + ]; + } + + /** + * Prepare mock of products for quotes. + * + * @return array + */ + private function prepareProductsForQuote() + { + $result = []; + + foreach ($this->storeManager->getStores() as $store) { + $productsResult = []; + $this->storeManager->setCurrentStore($store->getId()); + + if ($this->config->getSimpleCountTo() > 0) { + $productsResult[Type::TYPE_SIMPLE] = $this->prepareSimpleProducts( + $this->getProductIds($store, Type::TYPE_SIMPLE, $this->config->getSimpleCountTo()) + ); + } + $configurables = [ + Configurable::TYPE_CODE => $this->config->getConfigurableCountTo(), + QuoteConfiguration::BIG_CONFIGURABLE_TYPE => $this->config->getBigConfigurableCountTo(), + ]; + + foreach ($configurables as $type => $qty) { + if ($qty > 0) { + $productsResult[$type] = $this->prepareConfigurableProducts( + $this->getProductIds( + $store, + $type, + $qty + ) + ); + } + } + + $result[] = [ + $store->getId(), + implode(PHP_EOL, [ + $this->storeManager->getWebsite($store->getWebsiteId())->getName(), + $this->storeManager->getGroup($store->getStoreGroupId())->getName(), + $store->getName() + ]), + $productsResult + ]; + } + + return $result; + } + + /** + * Load and prepare INSERT query templates data from external file. + * + * Queries are prepared using external json file, where keys are DB column names and values represent data, + * to be inserted to the table. Data may contain a default value or a placeholder which is replaced later during + * flow (in the query method of this class). + * Additionally, in case if multiple DB connections are set up, transaction is started for each connection. + * + * @return void + */ + private function prepareQueryTemplates() + { + $fileName = $this->config->getFixtureDataFilename(); + $templateData = json_decode(file_get_contents(realpath($fileName)), true); + foreach ($templateData as $table => $template) { + if (isset($template['_table'])) { + $table = $template['_table']; + unset($template['_table']); + } + if (isset($template['_resource'])) { + $resource = $template['_resource']; + unset($template['_resource']); + } else { + $resource = explode("_", $table); + foreach ($resource as &$item) { + $item = ucfirst($item); + } + $resource = "Magento\\" + . array_shift($resource) + . "\\Model\\ResourceModel\\" + . implode("\\", $resource); + } + + $tableName = $this->getTableName($table, $resource); + + $querySuffix = ""; + if (isset($template['_query_suffix'])) { + $querySuffix = $template['_query_suffix']; + unset($template['_query_suffix']); + } + + $fields = implode(', ', array_keys($template)); + $values = implode(', ', array_values($template)); + + $connection = $this->getConnection($resource); + if ($connection->getTransactionLevel() == 0) { + $connection->beginTransaction(); + } + + $this->queryTemplates[$table] = "INSERT INTO `{$tableName}` ({$fields}) VALUES ({$values}){$querySuffix};"; + $this->resourceConnections[$table] = $connection; + } + } + + /** + * Build and execute query. + * + * Builds a database query by replacing placeholder values in the cached queries and executes query in appropriate + * DB connection (if setup). Additionally filters out quote-related queries, if appropriate flag is set. + * + * @param string $table + * @param array ...$replacements + * @return void + */ + protected function query($table, ... $replacements) + { + $query = $this->queryTemplates[$table]; + foreach ($replacements as $data) { + $query = str_replace(array_keys($data), array_values($data), $query); + } + + $this->resourceConnections[$table]->query($query); + } + + /** + * Get maximum order id currently existing in the database. + * + * To support incremental generation of the orders it is necessary to get the maximum order entity_id currently. + * existing in the database. + * + * @param string $tableName + * @param string $resourceName + * @param string $column [optional] + * @return int + */ + private function getMaxEntityId($tableName, $resourceName, $column = 'entity_id') + { + $tableName = $this->getTableName($tableName, $resourceName); + $connection = $this->getConnection($resourceName); + return (int)$connection->query("SELECT MAX(`{$column}`) FROM `{$tableName}`;")->fetchColumn(0); + } + + /** + * Get a limited amount of product id's from a collection filtered by store and specific product type. + * + * @param \Magento\Store\Api\Data\StoreInterface $store + * @param string $typeId + * @param int $limit [optional] + * @return array + */ + private function getProductIds(\Magento\Store\Api\Data\StoreInterface $store, $typeId, $limit = null) + { + /** @var $productCollection \Magento\Catalog\Model\ResourceModel\Product\Collection */ + $productCollection = $this->productCollectionFactory->create(); + $productCollection->addStoreFilter($store->getId()); + $productCollection->addWebsiteFilter($store->getWebsiteId()); + + // "Big%" should be replaced with a configurable value. + if ($typeId === QuoteConfiguration::BIG_CONFIGURABLE_TYPE) { + $productCollection->getSelect()->where(" type_id = '" . Configurable::TYPE_CODE . "' "); + $productCollection->getSelect()->where(" sku LIKE 'Big%' "); + } else { + $productCollection->getSelect()->where(" type_id = '$typeId' "); + $productCollection->getSelect()->where(" sku NOT LIKE 'Big%' "); + } + + return $productCollection->getAllIds($limit); + } + + /** + * Prepare data for the simple products to be used as order items. + * + * Based on the Product Id's load data, which is required to replace placeholders in queries. + * + * @param array $productIds [optional] + * @return array + */ + private function prepareSimpleProducts(array $productIds = []) + { + $productsResult = []; + foreach ($productIds as $key => $simpleId) { + $simpleProduct = $this->productRepository->getById($simpleId); + $productsResult[$key]['id'] = $simpleId; + $productsResult[$key]['sku'] = $simpleProduct->getSku(); + $productsResult[$key]['name'] = $simpleProduct->getName(); + $productsResult[$key]['buyRequest'] = json_encode([ + "info_buyRequest" => [ + "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", + "product" => $simpleId, + "qty" => "1" + ] + ]); + } + return $productsResult; + } + + /** + * Prepare data for the configurable products to be used as order items. + * + * Based on the Product Id's load data, which is required to replace placeholders in queries. + * + * @param array $productIds [optional] + * @return array + */ + private function prepareConfigurableProducts(array $productIds = []) + { + $productsResult = []; + foreach ($productIds as $key => $configurableId) { + $configurableProduct = $this->productRepository->getById($configurableId); + $options = $this->optionRepository->getList($configurableProduct->getSku()); + $configurableChild = $this->linkManagement->getChildren($configurableProduct->getSku())[0]; + $simpleSku = $configurableChild->getSku(); + $simpleId = $this->productRepository->get($simpleSku)->getId(); + + $attributesInfo = []; + $superAttribute = []; + foreach ($options as $option) { + $attributesInfo[] = [ + "label" => $option->getLabel(), + "value" => $option['options']['0']['label'], + "option_id" => $option->getAttributeId(), + "option_value" => $option->getValues()[0]->getValueIndex() + ]; + $superAttribute[$option->getAttributeId()] = $option->getValues()[0]->getValueIndex(); + } + + $configurableBuyRequest = [ + "info_buyRequest" => [ + "uenc" => "aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw", + "product" => $configurableId, + "selected_configurable_option" => $simpleId, + "related_product" => "", + "super_attribute" => $superAttribute, + "qty" => 1 + ], + "attributes_info" => $attributesInfo, + "simple_name" => $configurableChild->getName(), + "simple_sku" => $configurableChild->getSku(), + ]; + $simpleBuyRequest = [ + "info_buyRequest" => [ + "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", + "product" => $configurableId, + "selected_configurable_option" => $simpleId, + "related_product" => "", + "super_attribute" => $superAttribute, + "qty" => "1" + ] + ]; + + $quoteConfigurableBuyRequest = $configurableBuyRequest['info_buyRequest']; + $quoteSimpleBuyRequest = $simpleBuyRequest['info_buyRequest']; + unset($quoteConfigurableBuyRequest['selected_configurable_option']); + unset($quoteSimpleBuyRequest['selected_configurable_option']); + + $productsResult[$key]['id'] = $configurableId; + $productsResult[$key]['sku'] = $simpleSku; + $productsResult[$key]['name'] = $configurableProduct->getName(); + $productsResult[$key]['childId'] = $simpleId; + $productsResult[$key]['buyRequest'] = [ + 'order' => json_encode($configurableBuyRequest), + 'quote' => json_encode($quoteConfigurableBuyRequest), + 'super_attribute' => json_encode($superAttribute) + ]; + $productsResult[$key]['childBuyRequest'] = [ + 'order' => json_encode($simpleBuyRequest), + 'quote' => json_encode($quoteSimpleBuyRequest), + ]; + } + return $productsResult; + } + + /** + * Commit all active transactions at the end of the batch. + * + * Many transactions may exist, since generation process creates a transaction per each available DB connection. + * + * @return void + */ + private function commitBatch() + { + foreach ($this->resourceConnections as $connection) { + if ($connection->getTransactionLevel() > 0) { + $connection->commit(); + $connection->beginTransaction(); + } + } + } + + /** + * Get sequence for order items. + * + * @param int $maxItemId + * @param int $requestedOrders + * @param int $maxItemsPerOrder + * @return \Generator + */ + private function getItemIdSequence($maxItemId, $requestedOrders, $maxItemsPerOrder) + { + $requestedItems = $maxItemId + ($requestedOrders + 1) * $maxItemsPerOrder; + for ($i = $maxItemId + 1; $i <= $requestedItems; $i++) { + yield $i; + } + } + + /** + * Get real table name for db table, validated by db adapter. + * In case prefix or other features mutating default table names are used. + * + * @param string $tableName + * @param string $resourceName + * @return string + */ + private function getTableName($tableName, $resourceName) + { + /** @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ + $resource = $this->fixtureModel->getObjectManager()->get($resourceName); + return $this->getConnection($resourceName)->getTableName($resource->getTable($tableName)); + } + + /** + * Get connection to database for specified resource. + * + * @param string $resourceName + * @return \Magento\Framework\DB\Adapter\AdapterInterface + */ + private function getConnection($resourceName) + { + $resource = $this->fixtureModel->getObjectManager()->get($resourceName); + return $resource->getConnection(); + } +} diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php new file mode 100644 index 0000000000000..8a1adfef75d5a --- /dev/null +++ b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php @@ -0,0 +1,50 @@ +objectManager = $objectManager; + $this->instanceName = $instanceName; + } + + /** + * Create class instance with specified parameters. + * + * @param array $data [optional] + * @return mixed + */ + public function create(array $data = []) + { + return $this->objectManager->create($this->instanceName, $data); + } +} diff --git a/setup/src/Magento/Setup/Fixtures/StoresFixture.php b/setup/src/Magento/Setup/Fixtures/StoresFixture.php index 963fabd6b641e..ab85241c1ece6 100644 --- a/setup/src/Magento/Setup/Fixtures/StoresFixture.php +++ b/setup/src/Magento/Setup/Fixtures/StoresFixture.php @@ -6,15 +6,15 @@ namespace Magento\Setup\Fixtures; -use \Magento\Catalog\Model\Category; -use \Magento\Catalog\Model\CategoryFactory; -use \Magento\Framework\App\Config\Storage\Writer; -use \Magento\Framework\Event\ManagerInterface; -use \Magento\Framework\Locale\Config; -use \Magento\Store\Model\Group; -use \Magento\Store\Model\StoreManager; -use \Magento\Store\Model\Website; -use \Magento\Store\Api\Data\StoreInterface; +use Magento\Catalog\Model\Category; +use Magento\Catalog\Model\CategoryFactory; +use Magento\Framework\App\Config\Storage\Writer; +use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\Locale\Config; +use Magento\Store\Api\Data\StoreInterface; +use Magento\Store\Model\Group; +use Magento\Store\Model\StoreManager; +use Magento\Store\Model\Website; /** * Generate websites, store groups and store views based on profile configuration @@ -41,7 +41,6 @@ */ class StoresFixture extends Fixture { - const DEFAULT_WEBSITE_COUNT = 1; const DEFAULT_STORE_COUNT = 1; @@ -255,6 +254,7 @@ private function generateStoreGroups() while ($existedStoreGroupCount < $this->storeGroupsCount) { $websiteId = $this->websiteIds[$existedStoreGroupCount % $existedWebsitesCount]; $storeGroupName = sprintf('Store Group %d - website_id_%d', ++$existedStoreGroupCount, $websiteId); + $storeGroupCode = sprintf('store_group_%d', $existedStoreGroupCount); $storeGroup = clone $this->defaultStoreGroup; $storeGroup->addData( @@ -262,6 +262,7 @@ private function generateStoreGroups() 'group_id' => null, 'website_id' => $websiteId, 'name' => $storeGroupName, + 'code' => $storeGroupCode, 'root_category_id' => $this->getStoreCategoryId($storeGroupName), ] ); diff --git a/setup/src/Magento/Setup/Fixtures/TaxRulesFixture.php b/setup/src/Magento/Setup/Fixtures/TaxRulesFixture.php index a60145940953b..d9be3735e7691 100644 --- a/setup/src/Magento/Setup/Fixtures/TaxRulesFixture.php +++ b/setup/src/Magento/Setup/Fixtures/TaxRulesFixture.php @@ -6,16 +6,16 @@ namespace Magento\Setup\Fixtures; -use \Magento\Tax\Model\Config; -use \Magento\Config\Model\Config\Backend\Admin\Custom; -use \Magento\Framework\App\Config\Storage\Writer as ConfigWriter; -use \Magento\Tax\Api\Data\TaxRateInterface; -use \Magento\Tax\Api\Data\TaxRuleInterface; -use \Magento\Tax\Api\TaxRateRepositoryInterface; -use \Magento\Tax\Api\TaxRuleRepositoryInterface; -use \Magento\Tax\Api\Data\TaxRateInterfaceFactory; -use \Magento\Tax\Api\Data\TaxRuleInterfaceFactory; -use \Magento\Tax\Model\ResourceModel\Calculation\Rate\CollectionFactory; +use Magento\Config\Model\Config\Backend\Admin\Custom; +use Magento\Framework\App\Config\Storage\Writer as ConfigWriter; +use Magento\Tax\Api\Data\TaxRateInterface; +use Magento\Tax\Api\Data\TaxRateInterfaceFactory; +use Magento\Tax\Api\Data\TaxRuleInterface; +use Magento\Tax\Api\Data\TaxRuleInterfaceFactory; +use Magento\Tax\Api\TaxRateRepositoryInterface; +use Magento\Tax\Api\TaxRuleRepositoryInterface; +use Magento\Tax\Model\Config; +use Magento\Tax\Model\ResourceModel\Calculation\Rate\CollectionFactory; /** * Tax rules fixture generator diff --git a/setup/src/Magento/Setup/Fixtures/WebsiteCategoryProvider.php b/setup/src/Magento/Setup/Fixtures/WebsiteCategoryProvider.php index e96ec9ce57c98..c59a78e31d875 100644 --- a/setup/src/Magento/Setup/Fixtures/WebsiteCategoryProvider.php +++ b/setup/src/Magento/Setup/Fixtures/WebsiteCategoryProvider.php @@ -60,6 +60,7 @@ public function __construct( * * @param int $productIndex Index of generated product * @return array + * @throws \Exception */ public function getWebsiteIds($productIndex) { @@ -67,6 +68,9 @@ public function getWebsiteIds($productIndex) return $this->getAllWebsites(); } else { $categoriesPerWebsite = $this->getCategoriesAndWebsites(); + if (!count($categoriesPerWebsite)) { + throw new \Exception('Cannot find categories. Please, be sure that you have generated categories'); + } return [$categoriesPerWebsite[$productIndex % count($categoriesPerWebsite)]['website']]; } } diff --git a/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json b/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json index 59760c4e5e276..864ad45533afe 100644 --- a/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json +++ b/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json @@ -328,7 +328,7 @@ "cc_number_enc": "NULL", "cc_trans_id": "NULL", "address_status": "NULL", - "additional_information": "'a:1:{s:53:\"a:1:{s:12:\"method_title\";s:19:\"Check \/ Money order\";}\";N;}'" + "additional_information": "'{\"method_title\":\"Check \/ Money order\"}'" }, "sales_order_status_history": { "entity_id": "'%entityId%'", diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSet/SwatchesGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSet/SwatchesGeneratorTest.php index 07aaa3c55e7d1..b79861b439328 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSet/SwatchesGeneratorTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSet/SwatchesGeneratorTest.php @@ -6,16 +6,12 @@ namespace Magento\Setup\Test\Unit\Fixtures\AttributeSet; -use Magento\Setup\Fixtures\ImagesGenerator\ImagesGeneratorFactory; -use Magento\Setup\Fixtures\ImagesGenerator\ImagesGenerator; use Magento\Setup\Fixtures\AttributeSet\SwatchesGenerator; +use Magento\Setup\Fixtures\ImagesGenerator\ImagesGenerator; +use Magento\Setup\Fixtures\ImagesGenerator\ImagesGeneratorFactory; use Magento\Swatches\Helper\Media; use Magento\Swatches\Model\Swatch; -/** - * Class SwatchesGeneratorTest - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ class SwatchesGeneratorTest extends \PHPUnit_Framework_TestCase { /** @@ -72,7 +68,6 @@ public function setUp() public function testGenerateSwatchData() { - $attributeColorType['swatch_input_type'] = Swatch::SWATCH_INPUT_TYPE_VISUAL; $attributeColorType['swatchvisual']['value'] = array_reduce( range(1, 3), diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSetsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSetsFixtureTest.php index e9c4142fb813f..6ee829c8b32d9 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSetsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/AttributeSetsFixtureTest.php @@ -7,7 +7,7 @@ namespace Magento\Setup\Test\Unit\Fixtures; use Magento\Setup\Fixtures\AttributeSet\AttributeSetFixture; -use \Magento\Setup\Fixtures\AttributeSetsFixture; +use Magento\Setup\Fixtures\AttributeSetsFixture; /** * @SuppressWarnings(PHPMD) diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php index e13a8ee4def32..624a033bc8b7d 100755 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php @@ -22,7 +22,7 @@ class CartPriceRulesFixtureTest extends \PHPUnit_Framework_TestCase * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\SalesRule\Model\RuleFactory */ private $ruleFactory; - + /** * @var \Magento\Setup\Fixtures\CartPriceRulesFixture */ @@ -59,7 +59,7 @@ public function testExecute() $websiteMock->expects($this->atLeastOnce()) ->method('getGroups') ->will($this->returnValue([$storeMock])); - $websiteMock->expects($this->atLeastOnce()) + $websiteMock->expects($this->once()) ->method('getId') ->will($this->returnValue('website_id')); @@ -75,7 +75,7 @@ public function testExecute() true, ['getAllChildren'] ); - $abstractDbMock->expects($this->atLeastOnce()) + $abstractDbMock->expects($this->once()) ->method('getAllChildren') ->will($this->returnValue([1])); @@ -92,10 +92,10 @@ public function testExecute() $categoryMock->expects($this->atLeastOnce()) ->method('getResource') ->will($this->returnValue($abstractDbMock)); - $categoryMock->expects($this->atLeastOnce()) + $categoryMock->expects($this->once()) ->method('getPath') ->will($this->returnValue('path/to/file')); - $categoryMock->expects($this->atLeastOnce()) + $categoryMock->expects($this->once()) ->method('getId') ->will($this->returnValue('category_id')); @@ -109,7 +109,7 @@ public function testExecute() $objectManagerMock->expects($this->atLeastOnce()) ->method('create') ->will($this->returnValue($storeManagerMock)); - $objectManagerMock->expects($this->atLeastOnce()) + $objectManagerMock->expects($this->once()) ->method('get') ->will($this->returnValueMap($objectValueMap)); @@ -285,6 +285,8 @@ public function testGetActionTitle() public function testIntroduceParamLabels() { - $this->assertSame(['cart_price_rules' => 'Cart Price Rules'], $this->model->introduceParamLabels()); + $this->assertSame([ + 'cart_price_rules' => 'Cart Price Rules' + ], $this->model->introduceParamLabels()); } } diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CategoriesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CategoriesFixtureTest.php index 589bfe028698e..1bf294fca9906 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CategoriesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CategoriesFixtureTest.php @@ -7,10 +7,10 @@ namespace Magento\Setup\Test\Unit\Fixtures; use Magento\Catalog\Model\CategoryFactory; -use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory; use Magento\Catalog\Model\ResourceModel\Category\Collection; +use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; -use \Magento\Setup\Fixtures\CategoriesFixture; +use Magento\Setup\Fixtures\CategoriesFixture; use Magento\Setup\Fixtures\FixtureModel; class CategoriesFixtureTest extends \PHPUnit_Framework_TestCase diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php index a3b5aa4423002..82f767d73bec8 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php @@ -6,7 +6,7 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\ConfigsApplyFixture; +use Magento\Setup\Fixtures\ConfigsApplyFixture; class ConfigsApplyFixtureTest extends \PHPUnit_Framework_TestCase { @@ -53,7 +53,9 @@ public function testExecute() public function testNoFixtureConfigValue() { - $configMock = $this->getMock(\Magento\Framework\App\Config\ValueInterface::class, [], [], '', false); + $configMock = $this->getMockBuilder(\Magento\Framework\App\Config\ValueInterface::class) + ->setMethods(['save']) + ->getMockForAbstractClass(); $configMock->expects($this->never())->method('save'); $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManager\ObjectManager::class, [], [], '', false); diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php index c09a53e5b2d95..28ade629c9569 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php @@ -8,9 +8,9 @@ use Magento\Eav\Model\ResourceModel\Entity\Attribute\CollectionFactory; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; -use Magento\Setup\Fixtures\ConfigurableProductsFixture; use Magento\Setup\Fixtures\AttributeSet\AttributeSetFixture; use Magento\Setup\Fixtures\AttributeSet\Pattern; +use Magento\Setup\Fixtures\ConfigurableProductsFixture; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -41,7 +41,7 @@ public function setUp() { $this->fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) ->disableOriginalConstructor() - ->setMethods(['createAttributeSet', 'getValue']) + ->setMethods(['createAttributeSet', 'getValue', 'getObjectManager']) ->getMock(); $this->attributeSetsFixtureMock = $this->getMockBuilder(AttributeSetFixture::class) @@ -52,13 +52,6 @@ public function setUp() ->disableOriginalConstructor() ->getMock(); - $this->attributePatternMock = $this->getMockBuilder(CollectionFactory::class) - ->disableOriginalConstructor() - ->getMock(); - $this->attributePatternMock = $this->getMockBuilder(Pattern::class) - ->disableOriginalConstructor() - ->getMock(); - $this->model = (new ObjectManager($this))->getObject(ConfigurableProductsFixture::class, [ 'fixtureModel' => $this->fixtureModelMock, 'attributeSetsFixture' => $this->attributeSetsFixtureMock, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomerGroupsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomerGroupsFixtureTest.php index 1e2c90be42606..032595387f8c4 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomerGroupsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomerGroupsFixtureTest.php @@ -6,11 +6,11 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\CustomerGroupsFixture; -use \Magento\Customer\Api\Data\GroupInterface; -use \Magento\Customer\Api\Data\GroupInterfaceFactory; -use \Magento\Customer\Api\GroupRepositoryInterface; -use \Magento\Customer\Model\ResourceModel\Group\CollectionFactory; +use Magento\Customer\Api\Data\GroupInterface; +use Magento\Customer\Api\Data\GroupInterfaceFactory; +use Magento\Customer\Api\GroupRepositoryInterface; +use Magento\Customer\Model\ResourceModel\Group\CollectionFactory; +use Magento\Setup\Fixtures\CustomerGroupsFixture; /** * Test Customer Groups generation diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php index 732ae4c2bbd51..78ff7a94d8776 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php @@ -7,7 +7,7 @@ namespace Magento\Setup\Test\Unit\Fixtures; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; -use \Magento\Setup\Fixtures\CustomersFixture; +use Magento\Setup\Fixtures\CustomersFixture; class CustomersFixtureTest extends \PHPUnit_Framework_TestCase { @@ -68,12 +68,12 @@ public function setUp() ); $this->collectionFactoryMock = $this->getMock( - \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory::class, + \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory::class, ['create'], [], '', false - ); + ); $this->collectionMock = $this->getMock( \Magento\Customer\Model\ResourceModel\Customer\Collection::class, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/EavVariationsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/EavVariationsFixtureTest.php index 81996008f1bb2..8462e84bb4ffd 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/EavVariationsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/EavVariationsFixtureTest.php @@ -15,10 +15,13 @@ use Magento\Setup\Fixtures\FixtureModel; use Magento\Store\Model\StoreManager; +/** + * Unit test for \Magento\Setup\Fixtures\EavVariationsFixture. + */ class EavVariationsFixtureTest extends \PHPUnit_Framework_TestCase { /** - * @var \PHPUnit_Framework_MockObject_MockObject|FixtureModel + * @var FixtureModel|\PHPUnit_Framework_MockObject_MockObject */ private $fixtureModelMock; @@ -28,22 +31,22 @@ class EavVariationsFixtureTest extends \PHPUnit_Framework_TestCase private $model; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var StoreManager|\PHPUnit_Framework_MockObject_MockObject */ private $storeManagerMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var Set|\PHPUnit_Framework_MockObject_MockObject */ private $attributeSetMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var CacheInterface|\PHPUnit_Framework_MockObject_MockObject */ private $cacheMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var Config|\PHPUnit_Framework_MockObject_MockObject */ private $eavConfigMock; @@ -52,6 +55,9 @@ class EavVariationsFixtureTest extends \PHPUnit_Framework_TestCase */ private $attributeFactoryMock; + /** + * @inheritdoc + */ public function setUp() { $this->fixtureModelMock = $this->getMock(FixtureModel::class, [], [], '', false); @@ -74,13 +80,15 @@ public function setUp() ); } - public function testDoNotExecuteWhenAttributeAleadyExist() + /** + * Test for execute method when attribute already exists. + * + * @return void + */ + public function testDoNotExecuteWhenAttributeAlreadyExist() { - $this->fixtureModelMock - ->expects($this->any()) - ->method('getValue') - ->with('configurable_products', []) - ->willReturn(10); + $this->fixtureModelMock->expects($this->once()) + ->method('getValue')->with('configurable_products', [])->willReturn(10); $this->eavConfigMock->expects($this->once())->method('getEntityAttributeCodes') ->willReturn(['configurable_variation']); $this->attributeFactoryMock->expects($this->never())->method('create'); @@ -88,10 +96,16 @@ public function testDoNotExecuteWhenAttributeAleadyExist() $this->model->execute(); } + /** + * Test for execute method. + * + * @return void + */ public function testExecute() { - $this->eavConfigMock->expects($this->once())->method('getEntityAttributeCodes') - ->willReturn(['attr1', 'attr2']); + $storeId = 5; + $this->eavConfigMock->expects($this->once()) + ->method('getEntityAttributeCodes')->willReturn(['attr1', 'attr2']); $this->fixtureModelMock ->expects($this->any()) ->method('getValue') @@ -100,42 +114,33 @@ public function testExecute() ['configurable_products_variation', 3, 1], ]); - $storeMock = $this->getMock(\Magento\Store\Model\Store::class, [], [], '', false); - $this->storeManagerMock->expects($this->once()) - ->method('getStores') - ->will($this->returnValue([$storeMock])); - + $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class) + ->disableOriginalConstructor()->getMock(); + $this->storeManagerMock->expects($this->once())->method('getStores')->willReturn([$storeId => $storeMock]); $this->attributeSetMock->expects($this->once())->method('load')->willReturnSelf(); - $this->attributeSetMock->expects($this->once()) - ->method('getDefaultGroupId') - ->will($this->returnValue(2)); + $this->attributeSetMock->expects($this->once())->method('getDefaultGroupId')->willReturn(2); $attributeMock = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::class) ->setMethods([ 'setAttributeSetId', 'setAttributeGroupId', 'save', - ])->disableOriginalConstructor() - ->getMock(); - $attributeMock->expects($this->exactly(2)) - ->method('setAttributeSetId') - ->willReturnSelf(); - $attributeMock->expects($this->once()) - ->method('setAttributeGroupId') - ->willReturnSelf(); + ]) + ->disableOriginalConstructor()->getMock(); + $attributeMock->expects($this->exactly(2))->method('setAttributeSetId')->willReturnSelf(); + $attributeMock->expects($this->once())->method('setAttributeGroupId')->willReturnSelf(); $this->attributeFactoryMock->expects($this->once())->method('create') ->with( [ 'data' => [ 'frontend_label' => [ - 'configurable variations', - 'configurable variations', + $storeId => 'configurable variations', ], 'frontend_input' => 'select', 'is_required' => '0', 'option' => [ 'order' => ['option_1' => 1], - 'value' => ['option_1' => ['option 1', 'option 1']], + 'value' => ['option_1' => [$storeId => 'option 1']], 'delete' => ['option_1' => ''], ], 'default' => ['option_0'], @@ -172,16 +177,27 @@ public function testExecute() ] ] )->willReturn($attributeMock); - $this->cacheMock->expects($this->once())->method('remove')->with(Config::ATTRIBUTES_CACHE_ID . Product::ENTITY); + $this->cacheMock->expects($this->once()) + ->method('remove')->with(Config::ATTRIBUTES_CACHE_ID . Product::ENTITY); $this->model->execute(); } + /** + * Test for getActionTitle method. + * + * @return void + */ public function testGetActionTitle() { $this->assertSame('Generating configurable EAV variations', $this->model->getActionTitle()); } + /** + * Test for introduceParamLabels method. + * + * @return void + */ public function testIntroduceParamLabels() { $this->assertSame([], $this->model->introduceParamLabels()); diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/FixtureModelTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/FixtureModelTest.php index 76f22d23c8186..f398d068242a2 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/FixtureModelTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/FixtureModelTest.php @@ -6,7 +6,7 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\FixtureModel; +use Magento\Setup\Fixtures\FixtureModel; class FixtureModelTest extends \PHPUnit_Framework_TestCase { diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php new file mode 100644 index 0000000000000..ffab5c43b0fcf --- /dev/null +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php @@ -0,0 +1,74 @@ +fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) + ->disableOriginalConstructor() + ->getMock(); + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->fixture = $objectManager->getObject( + \Magento\Setup\Fixtures\Quote\QuoteConfiguration::class, + [ + 'fixtureModel' => $this->fixtureModelMock + ] + ); + } + + /** + * Test load method. + * + * @return void + */ + public function testLoad() + { + $dir = str_replace('Test/Unit/', '', dirname(__DIR__)); + $expectedResult = [ + 'simple_count_to' => 1, + 'simple_count_from' => 1, + 'configurable_count_to' => 1, + 'configurable_count_from' => 1, + 'big_configurable_count_to' => 1, + 'big_configurable_count_from' => 1, + 'fixture_data_filename' => + $dir . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . 'orders_fixture_data.json', + 'order_quotes_enable' => 1, + ]; + $this->fixtureModelMock->expects($this->atLeastOnce()) + ->method('getValue') + ->withConsecutive( + ['order_simple_product_count_to'], + ['order_simple_product_count_from'], + ['order_configurable_product_count_to'], + ['order_configurable_product_count_from'], + ['order_big_configurable_product_count_to'], + ['order_big_configurable_product_count_from'], + ['order_quotes_enable',] + )->willReturn(1); + $this->assertSame($expectedResult, $this->fixture->load()->getData()); + } +} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php new file mode 100644 index 0000000000000..9e825617cd07b --- /dev/null +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php @@ -0,0 +1,60 @@ +objectManager = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->fixture = $objectManager->getObject( + \Magento\Setup\Fixtures\Quote\QuoteGeneratorFactory::class, + [ + 'objectManager' => $this->objectManager, + 'instanceName' => \Magento\Setup\Fixtures\Quote\QuoteGenerator::class, + ] + ); + } + + /** + * Test create method. + * + * @return void + */ + public function testCreate() + { + $result = $this->getMockBuilder(\Magento\Setup\Fixtures\Quote\QuoteGenerator::class) + ->disableOriginalConstructor() + ->getMock(); + $this->objectManager->expects($this->once()) + ->method('create') + ->with(\Magento\Setup\Fixtures\Quote\QuoteGenerator::class, []) + ->willReturn($result); + + $this->assertSame($result, $this->fixture->create([])); + } +} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php new file mode 100644 index 0000000000000..a44ac355d81ad --- /dev/null +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php @@ -0,0 +1,282 @@ +fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) + ->disableOriginalConstructor() + ->getMock(); + $this->storeManager = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->productRepository = $this->getMockBuilder(\Magento\Catalog\Api\ProductRepositoryInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->optionRepository = $this->getMockBuilder( + \Magento\ConfigurableProduct\Api\OptionRepositoryInterface::class + ) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->productCollectionFactory = $this->getMockBuilder( + \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory::class + ) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->linkManagement = $this->getMockBuilder(\Magento\ConfigurableProduct\Api\LinkManagementInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $this->config = $this->getMockBuilder(\Magento\Setup\Fixtures\Quote\QuoteConfiguration::class) + ->disableOriginalConstructor() + ->setMethods( + [ + 'getSimpleCountTo', + 'getConfigurableCountTo', + 'getBigConfigurableCountTo', + 'getRequiredQuoteQuantity', + 'getFixtureDataFilename', + 'getExistsQuoteQuantity', + ] + ) + ->getMock(); + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->fixture = $objectManager->getObject( + \Magento\Setup\Fixtures\Quote\QuoteGenerator::class, + [ + 'fixtureModel' => $this->fixtureModelMock, + 'storeManager' => $this->storeManager, + 'productRepository' => $this->productRepository, + 'optionRepository' => $this->optionRepository, + 'productCollectionFactory' => $this->productCollectionFactory, + 'linkManagement' => $this->linkManagement, + 'config' => $this->config, + ] + ); + } + + /** + * Test generateQuotes method. + * + * @return void + */ + public function testGenerateQuotes() + { + $storeId = 1; + $websiteId = 1; + $storeGroupId = 1; + $simpleProductIds = [1, 2]; + $configurableProductId = [3]; + $bigConfigurableProductId = [4]; + $dir = str_replace('Test/Unit/', '', dirname(__DIR__)); + $store = $this->getMockBuilder(\Magento\Store\Api\Data\StoreInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $website = $this->getMockBuilder(\Magento\Store\Api\Data\WebsiteInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $storeGroup = $this->getMockBuilder(\Magento\Store\Api\Data\GroupInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $productCollection = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product\Collection::class) + ->disableOriginalConstructor() + ->getMock(); + $select = $this->getMockBuilder(\Magento\Framework\DB\Select::class) + ->disableOriginalConstructor() + ->getMock(); + $this->config->expects($this->atLeastOnce())->method('getSimpleCountTo')->willReturn(2); + $this->config->expects($this->atLeastOnce())->method('getConfigurableCountTo')->willReturn(1); + $this->config->expects($this->atLeastOnce())->method('getBigConfigurableCountTo')->willReturn(1); + $this->config->expects($this->atLeastOnce())->method('getRequiredQuoteQuantity')->willReturn(1); + $this->config->expects($this->atLeastOnce())->method('getExistsQuoteQuantity')->willReturn(0); + $this->config->expects($this->atLeastOnce()) + ->method('getFixtureDataFilename') + ->willReturn($dir . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . 'orders_fixture_data.json'); + $this->storeManager->expects($this->atLeastOnce())->method('getStores')->willReturn([$store]); + $this->storeManager->expects($this->atLeastOnce()) + ->method('getWebsite')->with($websiteId)->willReturn($website); + $this->storeManager->expects($this->atLeastOnce()) + ->method('getGroup')->with($storeGroupId)->willReturn($storeGroup); + $store->expects($this->atLeastOnce())->method('getId')->willReturn($storeId); + $store->expects($this->atLeastOnce())->method('getWebsiteId')->willReturn($websiteId); + $store->expects($this->atLeastOnce())->method('getStoreGroupId')->willReturn($storeGroupId); + $website->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); + $store->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); + $storeGroup->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); + $this->storeManager->expects($this->atLeastOnce())->method('setCurrentStore')->with($storeId); + $this->productCollectionFactory->expects($this->atLeastOnce()) + ->method('create')->willReturn($productCollection); + $productCollection->expects($this->atLeastOnce())->method('addStoreFilter')->with(1)->willReturnSelf(); + $productCollection->expects($this->atLeastOnce())->method('addWebsiteFilter')->with(1)->willReturnSelf(); + $productCollection->expects($this->atLeastOnce())->method('getSelect')->willReturn($select); + $select->expects($this->atLeastOnce()) + ->method('where') + ->withConsecutive( + [' type_id = \'simple\' '], + [' sku NOT LIKE \'Big%\' '], + [' type_id = \'configurable\' '], + [' sku NOT LIKE \'Big%\' '], + [' type_id = \'configurable\' '], + [' sku LIKE \'Big%\' '] + )->willReturnSelf(); + $productCollection->expects($this->atLeastOnce()) + ->method('getAllIds') + ->withConsecutive([2], [1], [1]) + ->willReturnOnConsecutiveCalls($simpleProductIds, $configurableProductId, $bigConfigurableProductId); + $this->prepareProducts(); + $this->mockConnection(); + $this->fixture->generateQuotes(); + } + + /** + * Prepare products mocks. + * + * @return void + */ + private function prepareProducts() + { + $product = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $configurableChild = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $childProduct = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $option = $this->getMockBuilder(\Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute::class) + ->disableOriginalConstructor() + ->getMock(); + $optionValue = $this->getMockBuilder(\Magento\ConfigurableProduct\Api\Data\OptionValueInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->productRepository->expects($this->atLeastOnce()) + ->method('getById') + ->withConsecutive([1], [2], [3], [4]) + ->willReturn($product); + $product->expects($this->atLeastOnce()) + ->method('getSku')->willReturnOnConsecutiveCalls('sku1', 'sku2', 'sku3', 'sku3', 'sku4', 'sku4'); + $product->expects($this->atLeastOnce()) + ->method('getName')->willReturnOnConsecutiveCalls('name1', 'name2', 'name3', 'name4'); + $this->serializer->expects($this->atLeastOnce()) + ->method('serialize') + ->willReturn('a:1:{i:10;i:1;}'); + $this->optionRepository->expects($this->atLeastOnce()) + ->method('getList') + ->withConsecutive(['sku3'], ['sku4']) + ->willReturn([$option]); + $this->linkManagement->expects($this->atLeastOnce()) + ->method('getChildren') + ->withConsecutive(['sku3'], ['sku4']) + ->willReturn([$configurableChild]); + $configurableChild->expects($this->atLeastOnce()) + ->method('getSku') + ->willReturnOnConsecutiveCalls('childSku3', 'childSku3', 'childSku4', 'childSku4'); + $this->productRepository->expects($this->atLeastOnce()) + ->method('get') + ->withConsecutive(['childSku3'], ['childSku4']) + ->willReturn($childProduct); + $childProduct->expects($this->atLeastOnce())->method('getId')->willReturnOnConsecutiveCalls(10, 11); + $option->expects($this->atLeastOnce())->method('getLabel')->willReturnOnConsecutiveCalls('label3', 'label4'); + $option->expects($this->atLeastOnce()) + ->method('getAttributeId')->willReturnOnConsecutiveCalls(10, 10, 20, 20); + $option->expects($this->atLeastOnce())->method('getValues')->willReturn([$optionValue]); + $optionValue->expects($this->atLeastOnce())->method('getValueIndex')->willReturn(1); + $configurableChild->expects($this->atLeastOnce()) + ->method('getName')->willReturnOnConsecutiveCalls('childName3', 'childName4'); + } + + /** + * Mock connection to DB and queries. + * + * @return void + */ + private function mockConnection() + { + $objectManager = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $resource = $this->getMockBuilder(\Magento\Framework\Model\ResourceModel\Db\AbstractDb::class) + ->disableOriginalConstructor() + ->getMock(); + $connection = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $statement = $this->getMockBuilder(\Magento\Framework\DB\Statement\Pdo\Mysql::class) + ->disableOriginalConstructor() + ->getMock(); + $this->fixtureModelMock->expects($this->atLeastOnce())->method('getObjectManager')->willReturn($objectManager); + $objectManager->expects($this->atLeastOnce()) + ->method('get') + ->willReturn($resource); + $resource->expects($this->atLeastOnce())->method('getConnection')->willReturn($connection); + $connection->expects($this->atLeastOnce()) + ->method('getTableName') + ->willReturn('table_name'); + $resource->expects($this->atLeastOnce()) + ->method('getTable') + ->willReturn('table_name'); + $connection->expects($this->atLeastOnce()) + ->method('query') + ->willReturn($statement); + $connection->expects($this->atLeastOnce())->method('getTransactionLevel')->willReturn(0); + $connection->expects($this->atLeastOnce())->method('beginTransaction')->willReturnSelf(); + $statement->expects($this->atLeastOnce())->method('fetchColumn')->with(0)->willReturn(25); + } +} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/StoresFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/StoresFixtureTest.php index 00092e72d3ff9..ac2bf55b86b92 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/StoresFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/StoresFixtureTest.php @@ -6,24 +6,18 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\FixtureModel; -use \Magento\Setup\Fixtures\StoresFixture; -use \Magento\Catalog\Api\Data\CategoryInterface; -use \Magento\Catalog\Model\CategoryFactory; -use \Magento\Framework\App\Config\Storage\Writer; -use \Magento\Framework\Event\ManagerInterface; -use \Magento\Framework\Locale\Config; -use \Magento\Store\Api\Data\GroupInterface; -use \Magento\Store\Api\Data\WebsiteInterface; -use \Magento\Store\Api\Data\StoreInterface; -use \Magento\Store\Model\StoreManager; - -// @codingStandardsIgnoreFile +use Magento\Catalog\Api\Data\CategoryInterface; +use Magento\Catalog\Model\CategoryFactory; +use Magento\Framework\App\Config\Storage\Writer; +use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\Locale\Config; +use Magento\Setup\Fixtures\FixtureModel; +use Magento\Setup\Fixtures\StoresFixture; +use Magento\Store\Api\Data\GroupInterface; +use Magento\Store\Api\Data\StoreInterface; +use Magento\Store\Api\Data\WebsiteInterface; +use Magento\Store\Model\StoreManager; -/** - * Tests Magento\Setup\Model\PackagesData - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - */ class StoresFixtureTest extends \PHPUnit_Framework_TestCase { @@ -170,6 +164,26 @@ public function testExecute() $storeMock->expects($this->exactly(11)) ->method('addData') + ->withConsecutive( + [ + [ + 'store_id' => null, + 'name' => 'Store view 2 - website_id_1 - group_id_1', + 'website_id' => 1, + 'group_id' => 1, + 'code' => 'store_view_2', + ] + ], + [ + [ + 'store_id' => null, + 'name' => 'Store view 3 - website_id_1 - group_id_1', + 'website_id' => 1, + 'group_id' => 1, + 'code' => 'store_view_3', + ] + ] + ) ->willReturn($storeMock); $storeGroupMock = $this->getMockBuilder(GroupInterface::class) @@ -183,6 +197,26 @@ public function testExecute() $storeGroupMock->expects($this->exactly(5)) ->method('addData') + ->withConsecutive( + [ + [ + 'group_id' => null, + 'website_id' => 1, + 'name' => 'Store Group 2 - website_id_1', + 'code' => 'store_group_2', + 'root_category_id' => $categoryMock, + ] + ], + [ + [ + 'group_id' => null, + 'website_id' => 1, + 'name' => 'Store Group 3 - website_id_1', + 'code' => 'store_group_3', + 'root_category_id' => $categoryMock, + ] + ] + ) ->willReturn($storeGroupMock); $websiteMock = $this->getMockBuilder(WebsiteInterface::class) @@ -196,6 +230,24 @@ public function testExecute() $websiteMock->expects($this->exactly(2)) ->method('addData') + ->withConsecutive( + [ + [ + 'website_id' => null, + 'code' => 'website_2', + 'name' => 'Website 2', + 'is_default' => false, + ] + ], + [ + [ + 'website_id' => null, + 'code' => 'website_3', + 'name' => 'Website 3', + 'is_default' => false, + ] + ] + ) ->willReturn($storeGroupMock); $this->storeManagerMock->expects($this->once()) diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/TaxRulesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/TaxRulesFixtureTest.php index 6468425d5b0e4..af79d2a9addc2 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/TaxRulesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/TaxRulesFixtureTest.php @@ -6,13 +6,13 @@ namespace Magento\Setup\Test\Unit\Fixtures; -use \Magento\Setup\Fixtures\TaxRulesFixture; -use \Magento\Framework\App\Config\Storage\Writer as ConfigWriter; -use \Magento\Tax\Api\TaxRateRepositoryInterface; -use \Magento\Tax\Api\TaxRuleRepositoryInterface; -use \Magento\Tax\Api\Data\TaxRateInterfaceFactory; -use \Magento\Tax\Api\Data\TaxRuleInterfaceFactory; -use \Magento\Tax\Model\ResourceModel\Calculation\Rate\CollectionFactory; +use Magento\Framework\App\Config\Storage\Writer as ConfigWriter; +use Magento\Setup\Fixtures\TaxRulesFixture; +use Magento\Tax\Api\Data\TaxRateInterfaceFactory; +use Magento\Tax\Api\Data\TaxRuleInterfaceFactory; +use Magento\Tax\Api\TaxRateRepositoryInterface; +use Magento\Tax\Api\TaxRuleRepositoryInterface; +use Magento\Tax\Model\ResourceModel\Calculation\Rate\CollectionFactory; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -62,7 +62,6 @@ class TaxRulesFixtureTest extends \PHPUnit_Framework_TestCase public function testExecute() { - $this->fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) ->disableOriginalConstructor() ->getMock(); From 4e18beea3f5baa2a284d2cfeef288ca184012605 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 20 Dec 2017 11:31:50 +0200 Subject: [PATCH 174/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Catalog/Block/Product/ImageBuilder.php | 11 +++++-- .../Magento/Catalog/Model/Product/Image.php | 31 ++++++++++++------- .../Image/NotLoadInfoImageException.php | 10 ++++++ .../Wishlist/CustomerData/Wishlist.php | 11 +++++-- 4 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php diff --git a/app/code/Magento/Catalog/Block/Product/ImageBuilder.php b/app/code/Magento/Catalog/Block/Product/ImageBuilder.php index 8d2068ef254b5..b159e59c0ff16 100644 --- a/app/code/Magento/Catalog/Block/Product/ImageBuilder.php +++ b/app/code/Magento/Catalog/Block/Product/ImageBuilder.php @@ -6,6 +6,7 @@ namespace Magento\Catalog\Block\Product; use Magento\Catalog\Helper\ImageFactory as HelperFactory; +use Magento\Catalog\Model\Product\Image\NotLoadInfoImageException; class ImageBuilder { @@ -129,7 +130,11 @@ public function create() ? 'Magento_Catalog::product/image.phtml' : 'Magento_Catalog::product/image_with_borders.phtml'; - $imagesize = $helper->getResizedImageInfo(); + try { + $imagesize = $helper->getResizedImageInfo(); + } catch (NotLoadInfoImageException $exception) { + $imagesize = [$helper->getWidth(), $helper->getHeight()]; + } $data = [ 'data' => [ @@ -140,8 +145,8 @@ public function create() 'label' => $helper->getLabel(), 'ratio' => $this->getRatio($helper), 'custom_attributes' => $this->getCustomAttributes(), - 'resized_image_width' => !empty($imagesize[0]) ? $imagesize[0] : $helper->getWidth(), - 'resized_image_height' => !empty($imagesize[1]) ? $imagesize[1] : $helper->getHeight(), + 'resized_image_width' => $imagesize[0], + 'resized_image_height' => $imagesize[1], ], ]; diff --git a/app/code/Magento/Catalog/Model/Product/Image.php b/app/code/Magento/Catalog/Model/Product/Image.php index 29f03e2abb537..8baa688fe59ee 100644 --- a/app/code/Magento/Catalog/Model/Product/Image.php +++ b/app/code/Magento/Catalog/Model/Product/Image.php @@ -11,6 +11,7 @@ */ namespace Magento\Catalog\Model\Product; +use Magento\Catalog\Model\Product\Image\NotLoadInfoImageException; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Image as MagentoImage; use Magento\Store\Model\Store; @@ -936,21 +937,29 @@ protected function _fileExists($filename) * Return resized product image information * * @return array + * @throws NotLoadInfoImageException */ public function getResizedImageInfo() { - $fileInfo = null; - if ($this->_newFile === true) { - $asset = $this->_assetRepo->createAsset( - "Magento_Catalog::images/product/placeholder/{$this->getDestinationSubdir()}.jpg" - ); - $img = $asset->getSourceFile(); - $fileInfo = getimagesize($img); - } else { - if ($this->_mediaDirectory->isFile($this->_mediaDirectory->getAbsolutePath($this->_newFile))) { - $fileInfo = getimagesize($this->_mediaDirectory->getAbsolutePath($this->_newFile)); + try { + $fileInfo = null; + if ($this->_newFile === true) { + $asset = $this->_assetRepo->createAsset( + "Magento_Catalog::images/product/placeholder/{$this->getDestinationSubdir()}.jpg" + ); + $image = $asset->getSourceFile(); + $fileInfo = getimagesize($image); + } else { + $image = $this->_mediaDirectory->getAbsolutePath($this->_newFile); + if ($this->_mediaDirectory->isFile($image)) { + $fileInfo = getimagesize($image); + } + } + return $fileInfo; + } finally { + if (empty($fileInfo)) { + throw new NotLoadInfoImageException(__('Can\'t get information about the picture: %1', $image)); } } - return $fileInfo; } } diff --git a/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php new file mode 100644 index 0000000000000..0a503e48d0af0 --- /dev/null +++ b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php @@ -0,0 +1,10 @@ +getResizedImageInfo(); + try { + $imagesize = $helper->getResizedImageInfo(); + } catch (NotLoadInfoImageException $exception) { + $imagesize = [$helper->getWidth(), $helper->getHeight()]; + } $width = $helper->getFrame() ? $helper->getWidth() - : (!empty($imagesize[0]) ? $imagesize[0] : $helper->getWidth()); + : $imagesize[0]; $height = $helper->getFrame() ? $helper->getHeight() - : (!empty($imagesize[1]) ? $imagesize[1] : $helper->getHeight()); + : $imagesize[1]; return [ 'template' => $template, From 5f0e1d6e433a4755c85fe4c25cf466d326e7ac3a Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 20 Dec 2017 14:49:14 +0200 Subject: [PATCH 175/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Setup/Fixtures/FixtureModelTest.php | 4 +- .../FixturesAsserts/BundleProductsAssert.php | 4 +- .../ConfigurableProductsAssert.php | 4 +- .../Fixtures/FixturesAsserts/ImagesAssert.php | 3 + .../FixturesAsserts/SimpleProductsAssert.php | 4 +- setup/performance-toolkit/README.md | 2 +- setup/performance-toolkit/benchmark.jmx | 46993 ++++++++-------- .../profiles/ce/extra_large.xml | 1 + .../performance-toolkit/profiles/ce/large.xml | 1 + .../profiles/ce/medium.xml | 1 + .../performance-toolkit/profiles/ce/small.xml | 1 + .../Setup/Fixtures/AttributeSet/Pattern.php | 4 +- .../AttributeSet/SwatchesGenerator.php | 2 +- .../Setup/Fixtures/ConfigsApplyFixture.php | 9 +- .../Fixtures/ConfigurableProductsFixture.php | 1 + .../Magento/Setup/Fixtures/FixtureModel.php | 31 +- .../Fixtures/IndexersStatesApplyFixture.php | 14 +- .../Unit/Fixtures/ConfigsApplyFixtureTest.php | 12 +- .../IndexersStatesApplyFixtureTest.php | 13 +- 19 files changed, 23940 insertions(+), 23164 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixtureModelTest.php b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixtureModelTest.php index 9450179b540ba..bc71899f00212 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixtureModelTest.php +++ b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixtureModelTest.php @@ -6,9 +6,9 @@ namespace Magento\Setup\Fixtures; -use Magento\TestFramework\Helper\Bootstrap; use Magento\Framework\Indexer\IndexerRegistry; use Magento\Indexer\Model\Config; +use Magento\TestFramework\Helper\Bootstrap; /** * Class Application test @@ -118,7 +118,7 @@ public function testFixtureGeneration() foreach ($this->entityAsserts as $entityAssert) { try { - $entityAssert->assert(); + $this->assertTrue($entityAssert->assert()); } catch (\AssertionError $assertionError) { $this->assertTrue(false, $assertionError->getMessage()); } diff --git a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/BundleProductsAssert.php b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/BundleProductsAssert.php index c5094438fba2b..d7eee77f141e2 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/BundleProductsAssert.php +++ b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/BundleProductsAssert.php @@ -48,7 +48,7 @@ public function __construct( /** * Asserts that generated bundled products are valid * - * @return void + * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \AssertionError */ @@ -74,5 +74,7 @@ public function assert() throw new \AssertionError('Bundle option product links amount is wrong'); } } + + return true; } } diff --git a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ConfigurableProductsAssert.php b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ConfigurableProductsAssert.php index ee25de39d82a4..19edc789426ca 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ConfigurableProductsAssert.php +++ b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ConfigurableProductsAssert.php @@ -46,7 +46,7 @@ public function __construct( /** * Asserts that generated configurable products are valid * - * @return void + * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \Magento\Framework\Exception\InputException * @throws \AssertionError @@ -86,5 +86,7 @@ public function assert() throw new \AssertionError('Configurable option values amount is wrong'); } } + + return true; } } diff --git a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ImagesAssert.php b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ImagesAssert.php index 5a52ba2304a75..c815a2eb98bbc 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ImagesAssert.php +++ b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/ImagesAssert.php @@ -70,6 +70,7 @@ public function __construct( /** * Performs assertions over images * + * @return bool * @throws \AssertionError */ public function assert() @@ -82,6 +83,8 @@ public function assert() $this->assertProductMediaAttributes($product); $this->assertProductImageExistsInFS($product); } + + return true; } /** diff --git a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/SimpleProductsAssert.php b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/SimpleProductsAssert.php index 3c153373fbbe1..50628f365943d 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/SimpleProductsAssert.php +++ b/dev/tests/integration/testsuite/Magento/Setup/Fixtures/FixturesAsserts/SimpleProductsAssert.php @@ -43,7 +43,7 @@ public function __construct( /** * Asserts that generated simple products are valid * - * @return void + * @return bool * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \AssertionError */ @@ -52,5 +52,7 @@ public function assert() $product = $this->productRepository->get(sprintf(SimpleProductsFixture::SKU_PATTERN, 1)); $this->productAssert->assertProductsCount(SimpleProductsFixture::SKU_PATTERN, 2); $this->productAssert->assertProductType('simple', $product); + + return true; } } diff --git a/setup/performance-toolkit/README.md b/setup/performance-toolkit/README.md index e9a678be1118b..6d883d7421d1b 100644 --- a/setup/performance-toolkit/README.md +++ b/setup/performance-toolkit/README.md @@ -44,7 +44,7 @@ For run Admin Pool in multithreading mode, please be sure, that: **Note:** Before generating medium or large profiles, it may be necessary to increase the value of `tmp_table_size` and `max_heap_table_size` parameters for MySQL to 512Mb or more. The value of `memory_limit` for PHP should be 1Gb or more. -There are two JMeter scenarios located in `setup/performance-toolkit` folder: `benchmark.jmx`. +There are two JMeter scenarios located in `setup/performance-toolkit` folder: `benchmark.jmx` and `benchmark_2015.jmx` (legacy version). **Note:** To be sure that all quotes are empty, run the following MySQL query before each run of a scenario: diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index caab44f74f8ab..154915cd3a4fc 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -1,7 +1,7 @@ @@ -59,6 +59,11 @@ ${__P(loops,1)} = + + accountManagementPercentage + ${__P(accountManagementPercentage,0)} + = + addToCartByCustomerPercentage ${__P(addToCartByCustomerPercentage,0)} @@ -74,11 +79,6 @@ ${__P(addToWishlistPercentage,2)} = - - adminAccountManagementPercentage - ${__P(adminAccountManagementPercentage,0)} - = - adminCMSManagementDelay ${__P(adminCMSManagementDelay,0)} @@ -224,9 +224,14 @@ ${__P(apiOrderInvoiceShipmentSync,0)} = + + apiPoolUsers + ${__P(apiPoolUsers,0)} + = + apiProcessOrders - ${__P(apiProcessOrders,5)} + ${__P(apiProcessOrders,1)} = @@ -259,11 +264,6 @@ ${__P(browseProductGridPercentage,0)} = - - cache_indicator - ${__P(cache_indicator,0)} - = - categories_count ${__P(categories_count,100)} @@ -306,7 +306,7 @@ customers_page_size - ${__P(customers_page_size,20)} + ${__P(customers_page_size,100)} = @@ -314,6 +314,11 @@ ${__P(dashboard_enabled,0)} = + + deadLocksPoolUsers + ${__P(deadLocksPoolUsers,1)} + = + exportCustomersPercentage ${__P(exportCustomersPercentage,0)} @@ -359,11 +364,6 @@ ${__P(orders_page_size,20)} = - - othersPoolUsers - ${__P(othersPoolUsers,0)} - = - productCompareDelay ${__P(productCompareDelay,0)} @@ -1746,246 +1746,6 @@ idsList.add(vars.get("customer_id")); - - mpaf/tool/fragments/ce/setup/cache.jmx - - - - "${cache_indicator}" == "1" || "${cache_indicator}" == "2" - false - - - - // Default to disable all cache types -vars.put("cache_types", "config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,translate,config_webservice,config_integration_api"); - -if ("${cache_indicator}" == "1") { - // Only disable Full Page Cache - vars.put("cache_types", "full_page"); -} - - - - false - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - types - = - true - massaction_prepare_key - - - true - ${cache_types} - = - true - types - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/cache/massDisable - POST - true - false - true - false - true - false - - - - - - "${cache_indicator}" == "0" - false - - - - - - - true - ${admin_form_key} - = - true - form_key - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/cache/ - GET - true - false - true - false - true - false - - - - - - TRANSLATE(?s).+?<span>Enabled</span> - CONFIG(?s).+?<span>Enabled</span> - LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Enabled</span> - BLOCK_HTML(?s).+?<span>Enabled</span> - COLLECTION_DATA(?s).+?<span>Enabled</span> - EAV(?s).+?<span>Enabled</span> - FPC(?s).+?<span>Enabled</span> - DB_DDL(?s).+?<span>Enabled</span> - INTEGRATION(?s).+?<span>Enabled</span> - INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> - WEBSERVICE(?s).+?<span>Enabled</span> - REFLECTION(?s).+?<span>Enabled</span> - - Assertion.response_data - false - 2 - - - - - - "${cache_indicator}" == "1" - false - - - - - - - true - ${admin_form_key} - = - true - form_key - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/cache/ - GET - true - false - true - false - true - false - - - - - - TRANSLATE(?s).+?<span>Enabled</span> - CONFIG(?s).+?<span>Enabled</span> - LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Enabled</span> - BLOCK_HTML(?s).+?<span>Enabled</span> - COLLECTION_DATA(?s).+?<span>Enabled</span> - EAV(?s).+?<span>Enabled</span> - FPC(?s).+?<span>Disabled</span> - DB_DDL(?s).+?<span>Enabled</span> - INTEGRATION(?s).+?<span>Enabled</span> - INTEGRATION_API_CONFIG(?s).+?<span>Enabled</span> - WEBSERVICE(?s).+?<span>Enabled</span> - REFLECTION(?s).+?<span>Enabled</span> - - Assertion.response_data - false - 2 - - - - - - "${cache_indicator}" == "2" - false - - - - - - - true - ${admin_form_key} - = - true - form_key - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/cache/ - GET - true - false - true - false - true - false - - - - - - TRANSLATE(?s).+?<span>Disabled</span> - CONFIG(?s).+?<span>Disabled</span> - LAYOUT_GENERAL_CACHE_TAG(?s).+?<span>Disabled</span> - BLOCK_HTML(?s).+?<span>Disabled</span> - COLLECTION_DATA(?s).+?<span>Disabled</span> - EAV(?s).+?<span>Disabled</span> - FPC(?s).+?<span>Disabled</span> - DB_DDL(?s).+?<span>Disabled</span> - INTEGRATION(?s).+?<span>Disabled</span> - INTEGRATION_API_CONFIG(?s).+?<span>Disabled</span> - WEBSERVICE(?s).+?<span>Disabled</span> - REFLECTION(?s).+?<span>Disabled</span> - - Assertion.response_data - false - 2 - - - - - - Boolean stopTestOnError (String error) { log.error(error); @@ -2151,11 +1911,11 @@ if (props.get("category_names_list") == null) { mpaf/tool/fragments/_system/thread_group.jmx - + 1 false 1 - ${browseCatalogByGuestPercentage} + ${browseCatalogByCustomerPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -2176,7 +1936,539 @@ if (testLabel - vars.put("testLabel", "Catalog Browsing By Guest"); + vars.put("testLabel", "Catalog Browsing By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; + +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} + +vars.putObject("randomIntGenerator", random); + + + + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); + +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("customer_email", customerUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${category_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_category.jmx + + + + <span class="base" data-ui-id="page-title">${category_name}</span> + + Assertion.response_data + false + 6 + + + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + + + ^[0-9]+$ + + Assertion.response_data + false + 1 + variable + category_id + + + + + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${browseCatalogByGuestPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Catalog Browsing By Guest"); true @@ -2867,7 +3159,7 @@ if (testLabel attribute_1_filter_url - ((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[${__javaScript(Math.floor(Math.random()*${attribute_1_options_count})+1)}]/@href + ((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href false true false @@ -2938,7 +3230,7 @@ if (testLabel attribute_2_filter_url - ((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[${__javaScript(Math.floor(Math.random()*${attribute_2_options_count})+1)}]/@href + ((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href false true false @@ -3228,7 +3520,7 @@ if (testLabel attribute_value - ((//select[@class="multiselect"])[last()]/option)[${__javaScript(Math.floor(Math.random()*${attribute_options_count})+1)}]/@value + ((//select[@class="multiselect"])[last()]/option)[1]/@value false true false @@ -4260,44 +4552,31 @@ vars.putObject("randomIntGenerator", random); + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); } -vars.put("customer_email", emails_list.get(emails_index)); +vars.put("customer_email", customerUser); + true + @@ -4488,7 +4767,7 @@ vars.put("product_sku", product.get("sku")); mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - + @@ -4519,7 +4798,7 @@ vars.put("product_sku", product.get("sku")); - + @@ -4582,7 +4861,7 @@ vars.put("product_sku", product.get("sku")); - + @@ -4656,7 +4935,7 @@ vars.put("product_sku", product.get("sku")); true - + @@ -4723,7 +5002,18 @@ vars.put("product_sku", product.get("sku")); 2 - + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + + @@ -6522,44 +6812,31 @@ vars.put("category_name", props.get("category_names_list").get(number)); mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); } -vars.put("customer_email", emails_list.get(emails_index)); +vars.put("customer_email", customerUser); + true + @@ -7742,32 +8019,26 @@ if(curSampler.getName().contains("Checkout success")) { mpaf/tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + - - - - - continue - - false - ${loops} - - ${adminPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx - - + + 1 false 1 - ${adminProductEditingPercentage} + ${reviewByCustomerPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -7788,71 +8059,82 @@ if (testLabel - vars.put("testLabel", "Admin Edit Product"); + vars.put("testLabel", "Product Review By Customer"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; - currentFormKey = getFormKeyFromResponse(); +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } +vars.putObject("randomIntGenerator", random); - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - + + + true + + - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("customer_email", customerUser); + + + + true + + - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - + @@ -7862,7 +8144,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} + ${base_path}customer/account/login/ GET true false @@ -7870,28 +8152,87 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/common/open_login_page.jmx - + - Welcome - <title>Magento Admin</title> + <title>Customer Login</title> Assertion.response_data false 2 - + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> + addressId + customer/address/edit/id/([^'"]+)/ $1$ 1 - + ^.+$ @@ -7899,41 +8240,164 @@ if (testLabel false 1 variable - admin_form_key + addressId - - + - + true = true - dummy + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + true - ${admin_form_key} + ${form_key} = true form_key - + true - ${admin_password} + 3 = true - login[password] + ratings[1] - + true - ${admin_user} + = true - login[username] + validate_rating + + + true + FirstName + = + true + nickname + + + true + Some Review Title + = + true + title + + + true + Some Review Text + = + true + detail @@ -7943,14646 +8407,815 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ + ${base_path}review/product/post/id/${product_id} POST true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - + mpaf/tool/fragments/ce/product_review/product_review.jmx - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - + + + HTTP/1.1 200 OK + + Assertion.response_headers + false + 16 + + + + + + + + true + review,messages + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_review/load_review.jmx + + + + 1 + 0 + ${__javaScript(Math.round(${reviewDelay}*1000))} + mpaf/tool/fragments/ce/product_review/product_review_pause.jmx + - - mpaf/tool/fragments/ce/simple_controller.jmx - + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx - - - - mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx - import java.util.ArrayList; - import java.util.HashMap; - -try { - simpleCount = props.get("simple_products_list").size(); - configCount = props.get("configurable_products_list").size(); - productCount = 0; - if (simpleCount > configCount) { - productCount = configCount; - } else { - productCount = simpleCount; - } - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - threadsNumber = 1; - } - //Current thread number starts from 0 - currentThreadNum = ctx.getThreadNum(); + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + + + - String siterator = vars.get("threadIterator_" + currentThreadNum.toString()); - iterator = 0; - if(siterator == null){ - vars.put("threadIterator_" + currentThreadNum.toString() , "0"); - } else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString()); + + + 1 + false + 1 + ${addToCartByCustomerPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Add To Cart By Customer"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx + +import java.util.Random; - //Number of products for one thread - productClusterLength = productCount / threadsNumber; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); +} - if (iterator >= productClusterLength) { - vars.put("threadIterator_" + currentThreadNum.toString(), "0"); - iterator = 0; - } +vars.putObject("randomIntGenerator", random); + + + + true + + + + + mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx + +vars.put("totalProductsAdded", "0"); + + + + true + + + + + +import java.util.Random; - //Index of the current product from the cluster - i = productClusterLength * currentThreadNum + iterator; +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("category_url_keys_list").size()); - //ids of simple and configurable products to edit - vars.put("simple_product_id", props.get("simple_products_list").get(i).get("id")); - vars.put("configurable_product_id", props.get("configurable_products_list").get(i).get("id")); +vars.put("category_url_key", props.get("category_url_keys_list").get(number)); +vars.put("category_name", props.get("category_names_list").get(number)); + + + + false + mpaf/tool/fragments/ce/common/extract_category_setup.jmx + + + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("customer_email", customerUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_home_page.jmx + + + + <title>Home page</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${category_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_category.jmx + + + + <span class="base" data-ui-id="page-title">${category_name}</span> + + Assertion.response_data + false + 6 + + + + false + category_id + <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + $1$ + + 1 + simple_product_1_url_key + + + + + ^[0-9]+$ + + Assertion.response_data + false + 1 + variable + category_id + + + + + + true + 2 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; - //id of related product - do { - relatedIndex = (int)(Math.random() * props.get("simple_products_list").size()); - } while(i == relatedIndex); - vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); - } catch (Exception ex) { - log.info("Script execution failed", ex); -} - - - false - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/ - GET - true - false - true - false - false - - - - - - Product - - Assertion.response_data - false - 16 - - - - false - simple_product_name - ,"name":"([^'"]+)", - $1$ - - 1 - - - - false - simple_product_sku - ,"sku":"([^'"]+)", - $1$ - - 1 - - - - false - simple_product_category_id - ,"category_ids":."(\d+)". - $1$ - - 1 - - - - - Passing arguments between threads - //Additional category to be added +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); - int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); - if (categoryId > 4) { - categoryId = categoryId - 1; - } else { - categoryId = categoryId + 1; - } - vars.put("category_additional", categoryId.toString()); - //New price - vars.put("price_new", "9999"); - //New special price - vars.put("special_price_new", "8888"); - //New quantity - vars.put("quantity_new", "100600"); - - - false - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${simple_product_name} - = - true - product[name] - false - - - true - ${simple_product_sku} - = - true - product[sku] - false - - - true - ${price_new} - = - true - product[price] - false - - - true - 2 - = - true - product[tax_class_id] - false - - - true - ${quantity_new} - = - true - product[quantity_and_stock_status][qty] - false - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - false - - - true - 1.0000 - = - true - product[weight] - false - - - true - 1 - = - true - product[product_has_weight] - false - - - true - ${simple_product_category_id} - = - true - product[category_ids][] - false - - - true - <p>Full simple product Description ${simple_product_id} Edited</p> - = - true - product[description] - false - - - true - 1 - = - true - product[status] - false - - - true - - = - true - product[configurable_variations] - false - - - true - 1 - = - true - affect_configurable_product_attributes - false - - - true - - = - true - product[image] - false - - - true - - = - true - product[small_image] - false - - - true - - = - true - product[thumbnail] - false - - - true - ${simple_product_name} - = - true - product[url_key] - false - - - true - ${simple_product_name} Meta Title Edited - = - true - product[meta_title] - false - - - true - ${simple_product_name} Meta Keyword Edited - = - true - product[meta_keyword] - false - - - true - ${simple_product_name} Meta Description Edited - = - true - product[meta_description] - false - - - true - 1 - = - true - product[website_ids][] - false - - - true - ${special_price_new} - = - true - product[special_price] - false - - - true - - = - true - product[special_from_date] - false - - - true - - = - true - product[special_to_date] - false - - - true - - = - true - product[cost] - false - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - false - - - true - ${quantity_new} - = - true - product[stock_data][original_inventory_qty] - false - - - true - ${quantity_new} - = - true - product[stock_data][qty] - false - - - true - 0 - = - true - product[stock_data][min_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - false - - - true - 1 - = - true - product[stock_data][min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - false - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - false - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - false - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - false - - - true - 0 - = - true - product[stock_data][backorders] - false - - - true - 1 - = - true - product[stock_data][use_config_backorders] - false - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - false - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - false - - - true - 0 - = - true - product[stock_data][qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - false - - - true - 1 - = - true - product[stock_data][is_in_stock] - false - - - true - - = - true - product[custom_design] - false - - - true - - = - true - product[custom_design_from] - false - - - true - - = - true - product[custom_design_to] - false - - - true - - = - true - product[custom_layout_update] - false - - - true - - = - true - product[page_layout] - false - - - true - container2 - = - true - product[options_container] - false - - - true - - = - true - new-variations-attribute-set-id - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true - POST - true - false - true - false - false - - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${simple_product_name} - = - true - product[name] - false - - - true - ${simple_product_sku} - = - true - product[sku] - false - - - true - ${price_new} - = - true - product[price] - false - - - true - 2 - = - true - product[tax_class_id] - false - - - true - ${quantity_new} - = - true - product[quantity_and_stock_status][qty] - false - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - false - - - true - 1.0000 - = - true - product[weight] - false - - - true - 1 - = - true - product[product_has_weight] - false - - - true - ${simple_product_category_id} - = - true - product[category_ids][] - false - - - true - ${category_additional} - = - true - product[category_ids][] - - - true - <p>Full simple product Description ${simple_product_id} Edited</p> - = - true - product[description] - false - - - true - 1 - = - true - product[status] - false - - - true - - = - true - product[configurable_variations] - false - - - true - 1 - = - true - affect_configurable_product_attributes - false - - - true - - = - true - product[image] - false - - - true - - = - true - product[small_image] - false - - - true - - = - true - product[thumbnail] - false - - - true - ${simple_product_name} - = - true - product[url_key] - false - - - true - ${simple_product_name} Meta Title Edited - = - true - product[meta_title] - false - - - true - ${simple_product_name} Meta Keyword Edited - = - true - product[meta_keyword] - false - - - true - ${simple_product_name} Meta Description Edited - = - true - product[meta_description] - false - - - true - 1 - = - true - product[website_ids][] - false - - - true - ${special_price_new} - = - true - product[special_price] - false - - - true - - = - true - product[special_from_date] - false - - - true - - = - true - product[special_to_date] - false - - - true - - = - true - product[cost] - false - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - false - - - true - ${quantity_new} - = - true - product[stock_data][original_inventory_qty] - false - - - true - ${quantity_new} - = - true - product[stock_data][qty] - false - - - true - 0 - = - true - product[stock_data][min_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - false - - - true - 1 - = - true - product[stock_data][min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - false - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - false - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - false - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - false - - - true - 0 - = - true - product[stock_data][backorders] - false - - - true - 1 - = - true - product[stock_data][use_config_backorders] - false - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - false - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - false - - - true - 0 - = - true - product[stock_data][qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - false - - - true - 1 - = - true - product[stock_data][is_in_stock] - false - - - true - - = - true - product[custom_design] - false - - - true - - = - true - product[custom_design_from] - false - - - true - - = - true - product[custom_design_to] - false - - - true - - = - true - product[custom_layout_update] - false - - - true - - = - true - product[page_layout] - false - - - true - container2 - = - true - product[options_container] - false - - - true - - = - true - new-variations-attribute-set-id - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - - You saved the product - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/ - GET - true - false - true - false - false - - - - - - Product - - Assertion.response_data - false - 16 - - - - false - configurable_product_name - ,"name":"([^'"]+)", - $1$ - - 1 - - - - false - configurable_product_sku - ,"sku":"([^'"]+)", - $1$ - - 1 - - - - false - configurable_product_category_id - ,"category_ids":."(\d+)" - $1$ - - 1 - - - - false - configurable_attribute_id - ,"configurable_variation":"([^'"]+)", - $1$ - - 1 - true - - - - false - configurable_matrix - "configurable-matrix":(\[.*?\]) - $1$ - - 1 - true - - - - associated_products_ids - $.[*].id - - configurable_matrix - VAR - - - - false - configurable_product_data - (\{"product":.*?configurable_attributes_data.*?\})\s*< - $1$ - - 1 - - - - configurable_attributes_data - $.product.configurable_attributes_data - - configurable_product_data - VAR - - - - false - configurable_attribute_ids - "attribute_id":"(\d+)" - $1$ - - -1 - variable - configurable_attributes_data - - - - false - configurable_attribute_codes - "code":"(\w+)" - $1$ - - -1 - variable - configurable_attributes_data - - - - false - configurable_attribute_labels - "label":"(.*?)" - $1$ - - -1 - variable - configurable_attributes_data - - - - false - configurable_attribute_values - "values":(\{(?:\}|.*?\}\})) - $1$ - - -1 - variable - configurable_attributes_data - - - - - configurable_attribute_ids - configurable_attribute_id - true - - - - 1 - ${configurable_attribute_ids_matchNr} - 1 - attribute_counter - - true - true - - - - return vars.get("configurable_attribute_values_" + vars.get("attribute_counter")); - - - false - - - - false - attribute_${configurable_attribute_id}_values - "value_index":"(\d+)" - $1$ - - -1 - configurable_attribute_values_${attribute_counter} - - - - - - - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${configurable_product_name} - = - true - product[name] - false - - - true - ${configurable_product_sku} - = - true - product[sku] - false - - - true - ${price_new} - = - true - product[price] - false - - - true - 2 - = - true - product[tax_class_id] - false - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - false - - - true - 3 - = - true - product[weight] - false - - - true - ${configurable_product_category_id} - = - true - product[category_ids][] - false - - - true - ${category_additional} - = - true - product[category_ids][] - false - - - true - <p>Configurable product description ${configurable_product_id} Edited</p> - = - true - product[description] - false - - - true - 1 - = - true - product[status] - false - - - true - ${configurable_product_name} Meta Title Edited - = - true - product[meta_title] - false - - - true - ${configurable_product_name} Meta Keyword Edited - = - true - product[meta_keyword] - false - - - true - ${configurable_product_name} Meta Description Edited - = - true - product[meta_description] - false - - - true - 1 - = - true - product[website_ids][] - false - - - true - ${special_price_new} - = - true - product[special_price] - false - - - true - - = - true - product[special_from_date] - false - - - true - - = - true - product[special_to_date] - false - - - true - - = - true - product[cost] - false - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - false - - - true - 0 - = - true - product[stock_data][min_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - false - - - true - 1 - = - true - product[stock_data][min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - false - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - false - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - false - - - true - 0 - = - true - product[stock_data][backorders] - false - - - true - 1 - = - true - product[stock_data][use_config_backorders] - false - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - false - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - false - - - true - 0 - = - true - product[stock_data][qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - false - - - true - 1 - = - true - product[stock_data][is_in_stock] - false - - - true - - = - true - product[custom_design] - false - - - true - - = - true - product[custom_design_from] - false - - - true - - = - true - product[custom_design_to] - false - - - true - - = - true - product[custom_layout_update] - false - - - true - - = - true - product[page_layout] - false - - - true - container2 - = - true - product[options_container] - false - - - true - ${configurable_attribute_id} - = - true - product[configurable_variation] - false - - - true - ${configurable_product_name} - = - true - product[url_key] - - - true - 1 - = - true - product[use_config_gift_message_available] - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - - - true - 4 - = - true - product[visibility] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 50 - = - true - product[stock_data][qty] - false - - - true - configurable - = - true - product[stock_data][type_id] - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/ - POST - true - false - true - false - false - - - - - false - - - try { - int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); - for (int i = 1; i <= attributesCount; i++) { - attributeId = vars.get("configurable_attribute_ids_" + i.toString()); - attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); - attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); - ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); - ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); - ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); - - int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); - for (int j = 1; j <= valuesCount; j++) { - attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); - ctx.getCurrentSampler().addArgument( - "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", - "1" - ); - ctx.getCurrentSampler().addArgument( - "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", - attributeValue - ); - } - } - ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); - } catch (Exception e) { - log.error("error???", e); - } - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${configurable_product_name} - = - true - product[name] - false - - - true - ${configurable_product_sku} - = - true - product[sku] - false - - - true - ${price_new} - = - true - product[price] - false - - - true - 2 - = - true - product[tax_class_id]admin - false - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - false - - - true - 3 - = - true - product[weight] - false - - - true - ${configurable_product_category_id} - = - true - product[category_ids][] - false - - - true - ${category_additional} - = - true - product[category_ids][] - false - - - true - <p>Configurable product description ${configurable_product_id} Edited</p> - = - true - product[description] - false - - - true - 1 - = - true - product[status] - false - - - true - ${configurable_product_name} Meta Title Edited - = - true - product[meta_title] - false - - - true - ${configurable_product_name} Meta Keyword Edited - = - true - product[meta_keyword] - false - - - true - ${configurable_product_name} Meta Description Edited - = - true - product[meta_description] - false - - - true - 1 - = - true - product[website_ids][] - false - - - true - ${special_price_new} - = - true - product[special_price] - false - - - true - - = - true - product[special_from_date] - false - - - true - - = - true - product[special_to_date] - false - - - true - - = - true - product[cost] - false - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - false - - - true - 0 - = - true - product[stock_data][min_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - false - - - true - 1 - = - true - product[stock_data][min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - false - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - false - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - false - - - true - 0 - = - true - product[stock_data][backorders] - false - - - true - 1 - = - true - product[stock_data][use_config_backorders] - false - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - false - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - false - - - true - 0 - = - true - product[stock_data][qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - false - - - true - 1 - = - true - product[stock_data][is_in_stock] - false - - - true - - = - true - product[custom_design] - false - - - true - - = - true - product[custom_design_from] - false - - - true - - = - true - product[custom_design_to] - false - - - true - - = - true - product[custom_layout_update] - false - - - true - - = - true - product[page_layout] - false - - - true - container2 - = - true - product[options_container] - false - - - true - ${configurable_attribute_id} - = - true - product[configurable_variation] - false - - - true - ${configurable_product_name} - = - true - product[url_key] - - - true - 1 - = - true - product[use_config_gift_message_available] - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - - - true - 4 - = - true - product[visibility] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 50 - = - true - product[stock_data][qty] - false - - - true - configurable - = - true - product[stock_data][type_id] - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - false - - - try { - int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); - for (int i = 1; i <= attributesCount; i++) { - attributeId = vars.get("configurable_attribute_ids_" + i.toString()); - attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); - attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); - ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); - ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); - ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); - ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); - - int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); - for (int j = 1; j <= valuesCount; j++) { - attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); - ctx.getCurrentSampler().addArgument( - "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", - "1" - ); - ctx.getCurrentSampler().addArgument( - "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", - attributeValue - ); - } - } - ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); - } catch (Exception e) { - log.error("error???", e); - } - - - - - You saved the product - - Assertion.response_data - false - 2 - if have trouble see messages-message-error - - - - - - - - - - 1 - false - 1 - ${adminProductCreationPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Create Product"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx - import org.apache.jmeter.samplers.SampleResult; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -relatedIndex = random.nextInt(props.get("simple_products_list").size()); -vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); - - - true - - - - - - - - - - - - ${request_protocol} - - - ${base_path}${admin_path}/catalog/product_attribute/index/filter/YXR0cmlidXRlX2NvZGU9Y29sb3I - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_product/get_color_attribute_id.jmx - - - false - color_id - product_attribute\/edit\/attribute_id\/([\d]+)\/" >.*\s*(color).* - $1$ - - 1 - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - import org.apache.jmeter.samplers.SampleResult; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_id", simpleList.get("id")); - -do { - number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_id", simpleList.get("id")); - -number2 = random.nextInt(props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number2); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); - -//Additional category to be added -//int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); -//vars.put("category_additional", (categoryId+1).toString()); -//New price -vars.put("price_new", "9999"); -//New special price -vars.put("special_price_new", "8888"); -//New quantity -vars.put("quantity_new", "100600"); - - - true - mpaf/tool/fragments/ce/admin_create_product/setup.jmx - - - - mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/ - GET - true - false - true - false - false - - - - - - New Product - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[configurable_variations] - - - true - 1 - = - true - affect_configurable_product_attributes - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - - = - true - new-variations-attribute-set-id - - - true - 0 - = - true - product[shipment_type] - - - true - option title one - = - true - bundle_options[0][title] - - - true - - = - true - bundle_options[0][option_id] - - - true - - = - true - bundle_options[0][delete] - - - true - select - = - true - bundle_options[0][type] - - - true - 1 - = - true - bundle_options[0][required] - - - true - 0 - = - true - bundle_options[0][position] - - - true - - = - true - bundle_selections[0][0][selection_id] - - - true - - = - true - bundle_selections[0][0][option_id] - - - true - ${simple_product_1_id} - = - true - bundle_selections[0][0][product_id] - - - true - - = - true - bundle_selections[0][0][delete] - - - true - 0.00 - = - true - bundle_selections[0][0][selection_price_value] - - - true - 0 - = - true - bundle_selections[0][0][selection_price_type] - - - true - 1 - = - true - bundle_selections[0][0][selection_qty] - - - true - 1 - = - true - bundle_selections[0][0][selection_can_change_qty] - - - true - 0 - = - true - bundle_selections[0][0][position] - - - true - - = - true - bundle_selections[0][1][selection_id] - - - true - - = - true - bundle_selections[0][1][option_id] - - - true - ${simple_product_2_id} - = - true - bundle_selections[0][1][product_id] - - - true - - = - true - bundle_selections[0][1][delete] - - - true - 0.00 - = - true - bundle_selections[0][1][selection_price_value] - - - true - 0 - = - true - bundle_selections[0][1][selection_price_type] - - - true - 1 - = - true - bundle_selections[0][1][selection_qty] - - - true - 1 - = - true - bundle_selections[0][1][selection_can_change_qty] - - - true - 1 - = - true - bundle_selections[0][1][position] - - - true - option title two - = - true - bundle_options[1][title] - - - true - - = - true - bundle_options[1][option_id] - - - true - - = - true - bundle_options[1][delete] - - - true - select - = - true - bundle_options[1][type] - - - true - 1 - = - true - bundle_options[1][required] - - - true - 1 - = - true - bundle_options[1][position] - - - true - - = - true - bundle_selections[1][0][selection_id] - true - - - true - - = - true - bundle_selections[1][0][option_id] - true - - - true - ${simple_product_1_id} - = - true - bundle_selections[1][0][product_id] - true - - - true - - = - true - bundle_selections[1][0][delete] - true - - - true - 0.00 - = - true - bundle_selections[1][0][selection_price_value] - true - - - true - 0 - = - true - bundle_selections[1][0][selection_price_type] - true - - - true - 1 - = - true - bundle_selections[1][0][selection_qty] - true - - - true - 1 - = - true - bundle_selections[1][0][selection_can_change_qty] - true - - - true - 0 - = - true - bundle_selections[1][0][position] - true - - - true - - = - true - bundle_selections[1][1][selection_id] - true - - - true - - = - true - bundle_selections[1][1][option_id] - true - - - true - ${simple_product_2_id} - = - true - bundle_selections[1][1][product_id] - true - - - true - - = - true - bundle_selections[1][1][delete] - true - - - true - 0.00 - = - true - bundle_selections[1][1][selection_price_value] - true - - - true - 0 - = - true - bundle_selections[1][1][selection_price_type] - true - - - true - 1 - = - true - bundle_selections[1][1][selection_qty] - true - - - true - 1 - = - true - bundle_selections[1][1][selection_can_change_qty] - true - - - true - 1 - = - true - bundle_selections[1][1][position] - true - - - true - 2 - = - true - affect_bundle_product_selections - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/set/4/ - POST - true - false - true - false - false - - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[configurable_variations] - - - true - 1 - = - true - affect_configurable_product_attributes - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - - = - true - new-variations-attribute-set-id - - - true - 0 - = - true - product[shipment_type] - false - - - true - option title one - = - true - bundle_options[0][title] - false - - - true - - = - true - bundle_options[0][option_id] - false - - - true - - = - true - bundle_options[0][delete] - false - - - true - select - = - true - bundle_options[0][type] - false - - - true - 1 - = - true - bundle_options[0][required] - false - - - true - 0 - = - true - bundle_options[0][position] - false - - - true - - = - true - bundle_selections[0][0][selection_id] - false - - - true - - = - true - bundle_selections[0][0][option_id] - false - - - true - ${simple_product_1_id} - = - true - bundle_selections[0][0][product_id] - false - - - true - - = - true - bundle_selections[0][0][delete] - false - - - true - 0.00 - = - true - bundle_selections[0][0][selection_price_value] - false - - - true - 0 - = - true - bundle_selections[0][0][selection_price_type] - false - - - true - 1 - = - true - bundle_selections[0][0][selection_qty] - false - - - true - 1 - = - true - bundle_selections[0][0][selection_can_change_qty] - false - - - true - 0 - = - true - bundle_selections[0][0][position] - false - - - true - - = - true - bundle_selections[0][1][selection_id] - false - - - true - - = - true - bundle_selections[0][1][option_id] - false - - - true - ${simple_product_2_id} - = - true - bundle_selections[0][1][product_id] - false - - - true - - = - true - bundle_selections[0][1][delete] - false - - - true - 0.00 - = - true - bundle_selections[0][1][selection_price_value] - false - - - true - 0 - = - true - bundle_selections[0][1][selection_price_type] - false - - - true - 1 - = - true - bundle_selections[0][1][selection_qty] - false - - - true - 1 - = - true - bundle_selections[0][1][selection_can_change_qty] - false - - - true - 1 - = - true - bundle_selections[0][1][position] - false - - - true - option title two - = - true - bundle_options[1][title] - false - - - true - - = - true - bundle_options[1][option_id] - false - - - true - - = - true - bundle_options[1][delete] - false - - - true - select - = - true - bundle_options[1][type] - false - - - true - 1 - = - true - bundle_options[1][required] - false - - - true - 1 - = - true - bundle_options[1][position] - false - - - true - - = - true - bundle_selections[1][0][selection_id] - false - - - true - - = - true - bundle_selections[1][0][option_id] - false - - - true - ${simple_product_1_id} - = - true - bundle_selections[1][0][product_id] - false - - - true - - = - true - bundle_selections[1][0][delete] - false - - - true - 0.00 - = - true - bundle_selections[1][0][selection_price_value] - false - - - true - 0 - = - true - bundle_selections[1][0][selection_price_type] - false - - - true - 1 - = - true - bundle_selections[1][0][selection_qty] - false - - - true - 1 - = - true - bundle_selections[1][0][selection_can_change_qty] - false - - - true - 0 - = - true - bundle_selections[1][0][position] - false - - - true - - = - true - bundle_selections[1][1][selection_id] - false - - - true - - = - true - bundle_selections[1][1][option_id] - false - - - true - ${simple_product_2_id} - = - true - bundle_selections[1][1][product_id] - false - - - true - - = - true - bundle_selections[1][1][delete] - false - - - true - 0.00 - = - true - bundle_selections[1][1][selection_price_value] - false - - - true - 0 - = - true - bundle_selections[1][1][selection_price_type] - false - - - true - 1 - = - true - bundle_selections[1][1][selection_qty] - false - - - true - 1 - = - true - bundle_selections[1][1][selection_can_change_qty] - false - - - true - 1 - = - true - bundle_selections[1][1][position] - false - - - true - 2 - = - true - affect_bundle_product_selections - false - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - - You saved the product - - Assertion.response_data - false - 2 - - - - - violation - - Assertion.response_data - false - 6 - - - - - - - mpaf/tool/fragments/ce/admin_create_product/create_configurable_product.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/4/type/configurable/ - GET - true - false - true - false - false - - - - - - New Product - - Assertion.response_data - false - 2 - - - - - - - - true - form_key - ${admin_form_key} - = - true - - - true - options[0][attribute_id] - ${color_id} - = - true - - - true - options[0][id] - PQFYFAT - = - true - - - true - options[0][is_new] - true - = - true - - - true - options[0][label] - green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - - - true - options[0][value] - 0 - = - true - - - true - ${color_id} - = - true - options[1][attribute_id] - true - - - true - PQFYFAT1 - = - true - options[1][id] - true - - - true - true - = - true - options[1][is_new] - true - - - true - red-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - options[1][label] - true - - - true - 0 - = - true - options[1][value] - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product_attribute/createOptions/?isAjax=true - POST - true - false - true - false - false - - - - - first_option - $.PQFYFAT - - - BODY - - - - second_option - $.PQFYFAT1 - - - BODY - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - 1 - = - true - affect_configurable_product_attributes - true - - - true - color - = - true - attribute_codes[0] - true - - - true - ${color_id} - = - true - attributes[0] - true - - - true - Color:green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][attributes] - true - - - true - 1 - = - true - configurable-matrix[0][canEdit] - true - - - false - {"color":"${first_option}"} - = - true - configurable-matrix[0][configurable_attribute] - true - - - true - green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][name] - true - - - true - 1 - = - true - configurable-matrix[0][newProduct] - true - - - true - 100 - = - true - configurable-matrix[0][price] - true - - - true - $ - = - true - configurable-matrix[0][price_currency] - true - - - true - $100 - = - true - configurable-matrix[0][price_string] - true - - - true - 150 - = - true - configurable-matrix[0][qty] - true - - - true - 0 - = - true - configurable-matrix[0][record_id] - true - - - true - green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][sku] - true - - - true - - = - true - configurable-matrix[0][small_image] - true - - - true - 1 - = - true - configurable-matrix[0][status] - true - - - true - - = - true - configurable-matrix[0][swatch_image] - true - - - true - - = - true - configurable-matrix[0][thumbnail] - true - - - true - ${first_option} - = - true - configurable-matrix[0][variationKey] - true - - - true - 6 - = - true - configurable-matrix[0][weight] - true - - - true - Color:red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][attributes] - true - - - true - 1 - = - true - configurable-matrix[1][canEdit] - true - - - false - {"color":"${second_option}"} - = - true - configurable-matrix[1][configurable_attribute] - true - - - true - red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][name] - true - - - true - 1 - = - true - configurable-matrix[1][newProduct] - true - - - true - 100 - = - true - configurable-matrix[1][price] - true - - - true - $ - = - true - configurable-matrix[1][price_currency] - true - - - true - $100 - = - true - configurable-matrix[1][price_string] - true - - - true - 50 - = - true - configurable-matrix[1][qty] - true - - - true - 1 - = - true - configurable-matrix[1][record_id] - true - - - true - red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][sku] - true - - - true - - = - true - configurable-matrix[1][small_image] - true - - - true - 1 - = - true - configurable-matrix[1][status] - true - - - true - - = - true - configurable-matrix[1][swatch_image] - true - - - true - - = - true - configurable-matrix[1][thumbnail] - true - - - true - ${second_option} - = - true - configurable-matrix[1][variationKey] - true - - - true - 6 - = - true - configurable-matrix[1][weight] - true - - - true - ${admin_form_key} - = - true - form_key - true - - - true - 4 - = - true - new-variations-attribute-set-id - true - - - true - 1 - = - true - product[affect_product_custom_options] - true - - - true - 4 - = - true - product[attribute_set_id] - true - - - true - 4 - = - true - product[category_ids][0] - true - - - true - ${color_id} - = - true - product[configurable_attributes_data][${color_id}][attribute_id] - true - - - true - color - = - true - product[configurable_attributes_data][${color_id}][code] - true - - - true - Color - = - true - product[configurable_attributes_data][${color_id}][label] - true - - - true - 0 - = - true - product[configurable_attributes_data][${color_id}][position] - true - - - true - 1 - = - true - product[configurable_attributes_data][${color_id}][values][${first_option}][include] - true - - - true - ${first_option} - = - true - product[configurable_attributes_data][${color_id}][values][${first_option}][value_index] - true - - - true - 1 - = - true - product[configurable_attributes_data][${color_id}][values][${second_option}][include] - true - - - true - ${second_option} - = - true - product[configurable_attributes_data][${color_id}][values][${second_option}][value_index] - true - - - true - - = - true - product[custom_layout_update] - true - - - true - - = - true - product[description] - true - - - true - 0 - = - true - product[gift_message_available] - true - - - true - 1 - = - true - product[gift_wrapping_available] - true - - - true - - = - true - product[gift_wrapping_price] - true - - - true - - = - true - product[image] - true - - - true - 2 - = - true - product[is_returnable] - true - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - true - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - true - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - true - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - true - - - true - container2 - = - true - product[options_container] - true - - - true - ${price_new} - = - true - product[price] - true - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - true - - - true - 1000 - = - true - product[quantity_and_stock_status][qty] - true - - - true - - = - true - product[short_description] - true - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - true - - - true - - = - true - product[small_image] - true - - - true - ${special_price_new} - = - true - product[special_price] - true - - - true - 1 - = - true - product[status] - true - - - true - 0 - = - true - product[stock_data][backorders] - true - - - true - 1 - = - true - product[stock_data][deferred_stock_update] - true - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - true - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - true - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - true - - - true - 1 - = - true - product[stock_data][manage_stock] - true - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - true - - - true - 0 - = - true - product[stock_data][min_qty] - true - - - true - 1 - = - true - product[stock_data][min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_backorders] - true - - - true - 1 - = - true - product[stock_data][use_config_deferred_stock_update] - true - - - true - 1 - = - true - product[stock_data][use_config_enable_qty_increments] - true - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - true - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - true - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - true - - - true - 2 - = - true - product[tax_class_id] - true - - - true - - = - true - product[thumbnail] - true - - - true - - = - true - product[url_key] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - true - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - 1 - = - true - product[use_config_is_returnable] - true - - - true - 4 - = - true - product[visibility] - true - - - true - 1 - = - true - product[website_ids][1] - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/set/4/ - POST - true - false - true - false - false - - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - 1 - = - true - affect_configurable_product_attributes - false - - - true - color - = - true - attribute_codes[0] - false - - - true - ${color_id} - = - true - attributes[0] - false - - - true - Color:green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][attributes] - false - - - true - 1 - = - true - configurable-matrix[0][canEdit] - false - - - false - {"color":"${first_option}"} - = - true - configurable-matrix[0][configurable_attribute] - false - - - true - green ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][name] - false - - - true - 1 - = - true - configurable-matrix[0][newProduct] - false - - - true - 100 - = - true - configurable-matrix[0][price] - false - - - true - $ - = - true - configurable-matrix[0][price_currency] - false - - - true - $100 - = - true - configurable-matrix[0][price_string] - false - - - true - 150 - = - true - configurable-matrix[0][qty] - false - - - true - 0 - = - true - configurable-matrix[0][record_id] - false - - - true - green-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[0][sku] - false - - - true - - = - true - configurable-matrix[0][small_image] - false - - - true - 1 - = - true - configurable-matrix[0][status] - false - - - true - - = - true - configurable-matrix[0][swatch_image] - false - - - true - - = - true - configurable-matrix[0][thumbnail] - false - - - true - ${first_option} - = - true - configurable-matrix[0][variationKey] - false - - - true - 6 - = - true - configurable-matrix[0][weight] - false - - - true - Color:red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][attributes] - false - - - true - 1 - = - true - configurable-matrix[1][canEdit] - false - - - false - {"color":"${second_option}"} - = - true - configurable-matrix[1][configurable_attribute] - false - - - true - red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][name] - false - - - true - 1 - = - true - configurable-matrix[1][newProduct] - false - - - true - 100 - = - true - configurable-matrix[1][price] - false - - - true - $ - = - true - configurable-matrix[1][price_currency] - false - - - true - $100 - = - true - configurable-matrix[1][price_string] - false - - - true - 50 - = - true - configurable-matrix[1][qty] - false - - - true - 1 - = - true - configurable-matrix[1][record_id] - false - - - true - red ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - configurable-matrix[1][sku] - false - - - true - - = - true - configurable-matrix[1][small_image] - false - - - true - 1 - = - true - configurable-matrix[1][status] - false - - - true - - = - true - configurable-matrix[1][swatch_image] - false - - - true - - = - true - configurable-matrix[1][thumbnail] - false - - - true - ${second_option} - = - true - configurable-matrix[1][variationKey] - false - - - true - 6 - = - true - configurable-matrix[1][weight] - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 4 - = - true - new-variations-attribute-set-id - false - - - true - 1 - = - true - product[affect_product_custom_options] - false - - - true - 4 - = - true - product[attribute_set_id] - false - - - true - 4 - = - true - product[category_ids][0] - false - - - true - ${color_id} - = - true - product[configurable_attributes_data][${color_id}][attribute_id] - false - - - true - color - = - true - product[configurable_attributes_data][${color_id}][code] - false - - - true - Color - = - true - product[configurable_attributes_data][${color_id}][label] - false - - - true - 0 - = - true - product[configurable_attributes_data][${color_id}][position] - false - - - true - 1 - = - true - product[configurable_attributes_data][${color_id}][values][${first_option}][include] - false - - - true - ${first_option} - = - true - product[configurable_attributes_data][${color_id}][values][${first_option}][value_index] - false - - - true - 1 - = - true - product[configurable_attributes_data][${color_id}][values][${second_option}][include] - false - - - true - ${second_option} - = - true - product[configurable_attributes_data][${color_id}][values][${second_option}][value_index] - false - - - true - - = - true - product[custom_layout_update] - false - - - true - - = - true - product[description] - false - - - true - 0 - = - true - product[gift_message_available] - false - - - true - 1 - = - true - product[gift_wrapping_available] - false - - - true - - = - true - product[gift_wrapping_price] - false - - - true - - = - true - product[image] - false - - - true - 2 - = - true - product[is_returnable] - false - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - false - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - false - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - false - - - true - Configurable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - container2 - = - true - product[options_container] - false - - - true - ${price_new} - = - true - product[price] - false - - - true - 1 - = - true - product[product_has_weight] - false - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - false - - - true - 1000 - = - true - product[quantity_and_stock_status][qty] - false - - - true - - = - true - product[short_description] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - - = - true - product[small_image] - false - - - true - ${special_price_new} - = - true - product[special_price] - false - - - true - 1 - = - true - product[status] - false - - - true - 0 - = - true - product[stock_data][backorders] - false - - - true - 1 - = - true - product[stock_data][deferred_stock_update] - false - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - false - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - false - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - false - - - true - 1 - = - true - product[stock_data][manage_stock] - false - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - false - - - true - 0 - = - true - product[stock_data][min_qty] - false - - - true - 1 - = - true - product[stock_data][min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_backorders] - false - - - true - 1 - = - true - product[stock_data][use_config_deferred_stock_update] - false - - - true - 1 - = - true - product[stock_data][use_config_enable_qty_increments] - false - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - false - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - false - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - false - - - true - 2 - = - true - product[tax_class_id] - false - - - true - - = - true - product[thumbnail] - false - - - true - - = - true - product[url_key] - false - - - true - 1 - = - true - product[use_config_gift_message_available] - false - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - false - - - true - 1 - = - true - product[use_config_is_returnable] - false - - - true - 4 - = - true - product[visibility] - false - - - true - 1 - = - true - product[website_ids][1] - false - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/set/4/type/configurable/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - - You saved the product - - Assertion.response_data - false - 2 - - - - - violation - - Assertion.response_data - false - 6 - - - - - - - mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/ - GET - true - false - true - false - false - - - - - - New Product - - Assertion.response_data - false - 2 - - - - - - - - ${files_folder}downloadable_original.txt - links - text/plain - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true - POST - false - false - true - true - false - - - - - original_file - $.file - - - BODY - - - - - - - - ${files_folder}downloadable_sample.txt - samples - text/plain - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true - POST - false - false - true - true - false - - - - - sample_file - $.file - - - BODY - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - on - = - true - is_downloadable - - - true - Links - = - true - product[links_title] - - - true - 0 - = - true - product[links_purchased_separately] - - - true - ${original_file} - = - true - downloadable[link][0][file][0][file] - false - - - true - downloadable_original.txt - = - true - downloadable[link][0][file][0][name] - false - - - true - 13 - = - true - downloadable[link][0][file][0][size] - false - - - true - new - = - true - downloadable[link][0][file][0][status] - false - - - true - 1 - = - true - downloadable[link][0][is_shareable] - - - true - 0 - = - true - downloadable[link][0][is_unlimited] - - - true - - = - true - downloadable[link][0][link_url] - - - true - 0 - = - true - downloadable[link][0][number_of_downloads] - true - - - true - 120 - = - true - downloadable[link][0][price] - true - - - true - 0 - = - true - downloadable[link][0][record_id] - true - - - true - file - = - true - downloadable[link][0][sample][type] - - - true - - = - true - downloadable[link][0][sample][url] - - - true - 1 - = - true - downloadable[link][0][sort_order] - - - true - Original Link - = - true - downloadable[link][0][title] - - - true - file - = - true - downloadable[link][0][type] - - - true - ${sample_file} - = - true - downloadable[sample][0][file][0][file] - true - - - true - downloadable_sample.txt - = - true - downloadable[sample][0][file][0][name] - true - - - true - 14 - = - true - downloadable[sample][0][file][0][size] - true - - - true - new - = - true - downloadable[sample][0][file][0][status] - true - - - true - 0 - = - true - downloadable[sample][0][record_id] - true - - - true - - = - true - downloadable[sample][0][sample_url] - true - - - true - 1 - = - true - downloadable[sample][0][sort_order] - true - - - true - Sample Link - = - true - downloadable[sample][0][title] - true - - - true - file - = - true - downloadable[sample][0][type] - true - - - true - 1 - = - true - affect_configurable_product_attributes - false - - - true - 4 - = - true - new-variations-attribute-set-id - false - - - true - - = - true - product[configurable_variation] - false - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/ - POST - true - false - true - false - false - - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - false - - - true - 1 - = - true - product[status] - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - ${original_file} - = - true - downloadable[link][0][file][0][file] - false - - - true - downloadable_original.txt - = - true - downloadable[link][0][file][0][name] - false - - - true - 13 - = - true - downloadable[link][0][file][0][size] - false - - - true - new - = - true - downloadable[link][0][file][0][status] - false - - - true - 1 - = - true - downloadable[link][0][is_shareable] - true - - - true - 0 - = - true - downloadable[link][0][is_unlimited] - true - - - true - - = - true - downloadable[link][0][link_url] - true - - - true - 0 - = - true - downloadable[link][0][number_of_downloads] - false - - - true - 120 - = - true - downloadable[link][0][price] - false - - - true - 0 - = - true - downloadable[link][0][record_id] - false - - - true - file - = - true - downloadable[link][0][sample][type] - true - - - true - - = - true - downloadable[link][0][sample][url] - true - - - true - 1 - = - true - downloadable[link][0][sort_order] - true - - - true - Original Link - = - true - downloadable[link][0][title] - true - - - true - file - = - true - downloadable[link][0][type] - true - - - true - ${sample_file} - = - true - downloadable[sample][0][file][0][file] - true - - - true - downloadable_sample.txt - = - true - downloadable[sample][0][file][0][name] - true - - - true - 14 - = - true - downloadable[sample][0][file][0][size] - true - - - true - new - = - true - downloadable[sample][0][file][0][status] - true - - - true - 0 - = - true - downloadable[sample][0][record_id] - true - - - true - - = - true - downloadable[sample][0][sample_url] - true - - - true - 1 - = - true - downloadable[sample][0][sort_order] - true - - - true - Sample Link - = - true - downloadable[sample][0][title] - true - - - true - file - = - true - downloadable[sample][0][type] - true - - - true - 1 - = - true - affect_configurable_product_attributes - false - - - true - 4 - = - true - new-variations-attribute-set-id - false - - - true - - = - true - product[configurable_variation] - false - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - - You saved the product - - Assertion.response_data - false - 2 - - - - - violation - - Assertion.response_data - false - 6 - - - - - - - mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/ - GET - true - false - true - false - false - - - - - - records found - - Assertion.response_data - false - 2 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/ - GET - true - false - true - false - false - - - - - - New Product - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - - = - true - product[options][1][is_delete] - false - - - true - 1 - = - true - product[options][1][is_require] - false - - - true - select - = - true - product[options][1][previous_group] - false - - - true - drop_down - = - true - product[options][1][previous_type] - false - - - true - 0 - = - true - product[options][1][sort_order] - false - - - true - Product Option Title One - = - true - product[options][1][title] - false - - - true - drop_down - = - true - product[options][1][type] - false - - - true - - = - true - product[options][1][values][1][is_delete] - false - - - true - 200 - = - true - product[options][1][values][1][price] - false - - - true - fixed - = - true - product[options][1][values][1][price_type] - false - - - true - sku-one - = - true - product[options][1][values][1][sku] - false - - - true - 0 - = - true - product[options][1][values][1][sort_order] - false - - - true - Row Title - = - true - product[options][1][values][1][title] - false - - - true - - = - true - product[options][2][is_delete] - false - - - true - 1 - = - true - product[options][2][is_require] - false - - - true - 250 - = - true - product[options][2][max_characters] - false - - - true - text - = - true - product[options][2][previous_group] - false - - - true - field - = - true - product[options][2][previous_type] - false - - - true - 500 - = - true - product[options][2][price] - false - - - true - fixed - = - true - product[options][2][price_type] - false - - - true - sku-two - = - true - product[options][2][sku] - false - - - true - 1 - = - true - product[options][2][sort_order] - false - - - true - Field Title - = - true - product[options][2][title] - false - - - true - field - = - true - product[options][2][type] - false - - - true - 1 - = - true - affect_configurable_product_attributes - true - - - true - 4 - = - true - new-variations-attribute-set-id - true - - - true - - = - true - product[configurable_variation] - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/validate/set/4/ - POST - true - false - true - false - false - - - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - ajax - false - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[name] - false - - - true - SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[sku] - false - - - true - 123 - = - true - product[price] - - - true - 2 - = - true - product[tax_class_id] - - - true - 111 - = - true - product[quantity_and_stock_status][qty] - - - true - 1 - = - true - product[quantity_and_stock_status][is_in_stock] - - - true - 1.0000 - = - true - product[weight] - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 2 - = - true - product[category_ids][] - - - true - <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[description] - - - true - <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - product[short_description] - - - true - 1 - = - true - product[status] - - - true - - = - true - product[image] - - - true - - = - true - product[small_image] - - - true - - = - true - product[thumbnail] - - - true - simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - product[url_key] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title - = - true - product[meta_title] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword - = - true - product[meta_keyword] - - - true - Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description - = - true - product[meta_description] - - - true - 1 - = - true - product[website_ids][] - - - true - 99 - = - true - product[special_price] - - - true - - = - true - product[special_from_date] - - - true - - = - true - product[special_to_date] - - - true - - = - true - product[cost] - - - true - 0 - = - true - product[tier_price][0][website_id] - - - true - 32000 - = - true - product[tier_price][0][cust_group] - - - true - 100 - = - true - product[tier_price][0][price_qty] - - - true - 90 - = - true - product[tier_price][0][price] - - - true - - = - true - product[tier_price][0][delete] - - - true - 0 - = - true - product[tier_price][1][website_id] - - - true - 1 - = - true - product[tier_price][1][cust_group] - - - true - 101 - = - true - product[tier_price][1][price_qty] - - - true - 99 - = - true - product[tier_price][1][price] - - - true - - = - true - product[tier_price][1][delete] - - - true - 1 - = - true - product[stock_data][use_config_manage_stock] - - - true - 100500 - = - true - product[stock_data][original_inventory_qty] - - - true - 100500 - = - true - product[stock_data][qty] - - - true - 0 - = - true - product[stock_data][min_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_qty] - - - true - 1 - = - true - product[stock_data][min_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_min_sale_qty] - - - true - 10000 - = - true - product[stock_data][max_sale_qty] - - - true - 1 - = - true - product[stock_data][use_config_max_sale_qty] - - - true - 0 - = - true - product[stock_data][is_qty_decimal] - - - true - 0 - = - true - product[stock_data][is_decimal_divided] - - - true - 0 - = - true - product[stock_data][backorders] - - - true - 1 - = - true - product[stock_data][use_config_backorders] - - - true - 1 - = - true - product[stock_data][notify_stock_qty] - - - true - 1 - = - true - product[stock_data][use_config_notify_stock_qty] - - - true - 0 - = - true - product[stock_data][enable_qty_increments] - - - true - 0 - = - true - product[stock_data][qty_increments] - - - true - 1 - = - true - product[stock_data][use_config_qty_increments] - - - true - 1 - = - true - product[stock_data][is_in_stock] - - - true - - = - true - product[custom_design] - - - true - - = - true - product[custom_design_from] - - - true - - = - true - product[custom_design_to] - - - true - - = - true - product[custom_layout_update] - - - true - - = - true - product[page_layout] - - - true - container2 - = - true - product[options_container] - - - true - - = - true - product[options][1][is_delete] - true - - - true - 1 - = - true - product[options][1][is_require] - - - true - select - = - true - product[options][1][previous_group] - false - - - true - drop_down - = - true - product[options][1][previous_type] - false - - - true - 0 - = - true - product[options][1][sort_order] - false - - - true - Product Option Title One - = - true - product[options][1][title] - - - true - drop_down - = - true - product[options][1][type] - - - true - - = - true - product[options][1][values][1][is_delete] - false - - - true - 200 - = - true - product[options][1][values][1][price] - - - true - fixed - = - true - product[options][1][values][1][price_type] - - - true - sku-one - = - true - product[options][1][values][1][sku] - - - true - 0 - = - true - product[options][1][values][1][sort_order] - - - true - Row Title - = - true - product[options][1][values][1][title] - - - true - - = - true - product[options][2][is_delete] - false - - - true - 1 - = - true - product[options][2][is_require] - - - true - 250 - = - true - product[options][2][max_characters] - - - true - text - = - true - product[options][2][previous_group] - - - true - field - = - true - product[options][2][previous_type] - - - true - 500 - = - true - product[options][2][price] - - - true - fixed - = - true - product[options][2][price_type] - - - true - sku-two - = - true - product[options][2][sku] - - - true - 1 - = - true - product[options][2][sort_order] - - - true - Field Title - = - true - product[options][2][title] - - - true - field - = - true - product[options][2][type] - - - true - 1 - = - true - affect_configurable_product_attributes - true - - - true - 4 - = - true - new-variations-attribute-set-id - true - - - true - - = - true - product[configurable_variation] - true - - - true - ${related_product_id} - = - true - links[related][0][id] - - - true - 1 - = - true - links[related][0][position] - - - true - ${related_product_id} - = - true - links[upsell][0][id] - - - true - 1 - = - true - links[upsell][0][position] - - - true - ${related_product_id} - = - true - links[crosssell][0][id] - - - true - 1 - = - true - links[crosssell][0][position] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/ - POST - true - false - true - false - false - - - - - - You saved the product - - Assertion.response_data - false - 2 - - - - - violation - - Assertion.response_data - false - 6 - - - - - - - - - - 1 - false - 1 - ${adminCategoryManagementPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Category Management"); - - true - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - mpaf/tool/fragments/ce/setup/setup_admin_category_management.jmx - - - - props.remove("admin_category_ids_list"); - - - false - - - - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - true - children_count - = - true - searchCriteria[filterGroups][0][filters][0][field] - - - true - 0 - = - true - searchCriteria[filterGroups][0][filters][0][value] - - - true - level - = - true - searchCriteria[filterGroups][1][filters][0][field] - - - true - 2 - = - true - searchCriteria[filterGroups][1][filters][0][value] - - - true - gt - = - true - searchCriteria[filterGroups][1][filters][0][conditionType] - - - true - ${adminCategoryCount} - = - true - searchCriteria[pageSize] - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/categories/list - GET - true - false - true - false - false - - - - - false - category_list_id - \{\"id\":(\d+), - $1$ - - -1 - - - - - category_list_id - category_id - true - - - - import java.util.ArrayList; - -adminCategoryIdsList = props.get("admin_category_ids_list"); -// If it is first iteration of cycle then recreate categories ids list -if (adminCategoryIdsList == null) { - adminCategoryIdsList = new ArrayList(); - props.put("admin_category_ids_list", adminCategoryIdsList); -} -adminCategoryIdsList.add(vars.get("category_id")); - - - false - - - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx - import org.apache.jmeter.samplers.SampleResult; -import java.util.ArrayList; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { -random.setSeed(${seedForRandom}); -} -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); - -do { -number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); - -do { -number2 = random.nextInt(props.get("simple_products_list").size()); -} while(number2 == number1 || number2 == number); -simpleList = props.get("simple_products_list").get(number2); -vars.put("simple_product_3_url_key", simpleList.get("url_key")); -vars.put("simple_product_3_name", simpleList.get("title")); -vars.put("simple_product_3_id", simpleList.get("id")); - -do { -number3 = random.nextInt(props.get("simple_products_list").size()); -} while(number3 == number2 || number3 == number1 || number3 == number); -simpleList = props.get("simple_products_list").get(number3); -vars.put("simple_product_4_url_key", simpleList.get("url_key")); -vars.put("simple_product_4_name", simpleList.get("title")); -vars.put("simple_product_4_id", simpleList.get("id")); - -do { -number4 = random.nextInt(props.get("simple_products_list").size()); -} while(number4 == number3 || number4 == number2 || number4 == number1 || number4 == number); -simpleList = props.get("simple_products_list").get(number4); -vars.put("simple_product_5_url_key", simpleList.get("url_key")); -vars.put("simple_product_5_name", simpleList.get("title")); -vars.put("simple_product_5_id", simpleList.get("id")); - -categoryIndex = random.nextInt(props.get("admin_category_ids_list").size()); -vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex)); -do { -categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size()); -} while(categoryIndex == categoryIndexNew); -vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew)); - - - true - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id} - GET - true - false - true - false - false - - - - - - <title>New Category - - Assertion.response_data - false - 2 - - - - - - - - true - - = - true - id - - - true - ${parent_category_id} - = - true - parent - - - true - - = - true - path - - - true - - = - true - store_id - - - true - 0 - = - true - is_active - - - true - 0 - = - true - include_in_menu - - - true - 1 - = - true - is_anchor - - - true - true - = - true - use_config[available_sort_by] - - - true - true - = - true - use_config[default_sort_by] - - - true - true - = - true - use_config[filter_price_range] - - - true - false - = - true - use_default[url_key] - - - true - 0 - = - true - url_key_create_redirect - - - true - 0 - = - true - custom_use_parent_settings - - - true - 0 - = - true - custom_apply_to_products - - - true - Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - name - - - true - admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - url_key - - - true - - = - true - meta_title - - - true - - = - true - description - - - true - PRODUCTS - = - true - display_mode - - - true - position - = - true - default_sort_by - - - true - - = - true - meta_keywords - - - true - - = - true - meta_description - - - true - - = - true - custom_layout_update - - - false - {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""} - = - true - category_products - - - true - ${admin_form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/save/ - POST - true - false - true - false - false - - - - - URL - admin_category_id - /catalog/category/edit/id/(\d+)/ - $1$ - - 1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_id - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/ - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - false - admin_category_entity_id - "entity_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_attribute_set_id - "attribute_set_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_parent_id - "parent_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_created_at - "created_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_updated_at - "updated_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_path - "entity_id":(.+)"path":"([^\"]+)" - $2$ - - 1 - - - - false - admin_category_level - "level":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_name - "entity_id":(.+)"name":"([^"]+)" - $2$ - - 1 - - - - false - admin_category_url_key - "url_key":"([^"]+)" - $1$ - - 1 - - - - false - admin_category_url_path - "url_path":"([^"]+)" - $1$ - - 1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_entity_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_attribute_set_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_parent_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_created_at - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_updated_at - - - - - ^[\d\\\/]+$ - - Assertion.response_data - false - 1 - variable - admin_category_path - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_category_level - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_name - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_url_key - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_category_url_path - - - - - ${simple_product_1_name} - ${simple_product_2_name} - ${simple_product_3_name} - ${simple_product_4_name} - ${simple_product_5_name} - - Assertion.response_data - false - 2 - - - - - - - - true - ${admin_category_id} - = - true - id - - - true - ${admin_form_key} - = - true - form_key - - - true - append - = - true - point - - - true - ${new_parent_category_id} - = - true - pid - - - true - ${parent_category_id} - = - true - paid - - - true - 0 - = - true - aid - - - true - true - = - true - isAjax - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/move/ - POST - true - false - true - false - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/ - GET - true - false - true - false - false - - - - - - You deleted the category. - - Assertion.response_data - false - 2 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))} - - - - - - - - - 1 - false - 1 - ${adminPromotionRulesPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Promotion Rules"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/ - GET - true - false - true - false - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/new - GET - true - false - true - false - false - - - - - - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - true - - - true - 1--1 - = - true - id - - - true - Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal - = - true - type - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form - POST - true - false - true - false - false - - - - - - - - true - Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - name - - - true - 0 - = - true - is_active - - - true - 0 - = - true - use_auto_generation - - - true - 1 - = - true - is_rss - - - true - 0 - = - true - apply_to_shipping - - - true - 0 - = - true - stop_rules_processing - - - true - - = - true - coupon_code - - - true - - = - true - uses_per_coupon - - - true - - = - true - uses_per_customer - - - true - - = - true - sort_order - - - true - 5 - = - true - discount_amount - - - true - 0 - = - true - discount_qty - - - true - - = - true - discount_step - - - true - - = - true - reward_points_delta - - - true - - = - true - store_labels[0] - - - true - Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - description - - - true - 1 - = - true - coupon_type - - - true - cart_fixed - = - true - simple_action - - - true - 1 - = - true - website_ids[0] - - - true - 0 - = - true - customer_group_ids[0] - - - true - - = - true - from_date - - - true - - = - true - to_date - - - true - Magento\SalesRule\Model\Rule\Condition\Combine - = - true - rule[conditions][1][type] - - - true - all - = - true - rule[conditions][1][aggregator] - - - true - 1 - = - true - rule[conditions][1][value] - - - true - Magento\SalesRule\Model\Rule\Condition\Address - = - true - rule[conditions][1--1][type] - - - true - base_subtotal - = - true - rule[conditions][1--1][attribute] - - - true - >= - = - true - rule[conditions][1--1][operator] - - - true - 100 - = - true - rule[conditions][1--1][value] - - - true - - = - true - rule[conditions][1][new_chlid] - - - true - Magento\SalesRule\Model\Rule\Condition\Product\Combine - = - true - rule[actions][1][type] - - - true - all - = - true - rule[actions][1][aggregator] - - - true - 1 - = - true - rule[actions][1][value] - - - true - - = - true - rule[actions][1][new_child] - - - true - - = - true - store_labels[1] - - - true - - = - true - store_labels[2] - - - true - - = - true - related_banners - - - true - ${admin_form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales_rule/promo_quote/save/ - POST - true - false - true - false - false - - - - - - You saved the rule. - - Assertion.response_data - false - 16 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))} - - - - - - - - - 1 - false - 1 - ${adminEditOrderPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Edit Order"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx - - - - Create New Order - - Assertion.response_data - false - 2 - - - - - - - - - true - sales_order_grid - = - true - namespace - - - true - - = - true - search - - - true - true - = - true - filters[placeholder] - - - true - 200 - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - increment_id - = - true - sorting[field] - - - true - desc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - false - - - true - pending - = - true - filters[status] - true - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - sales_order_grid - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - 200 - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - increment_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - true - pending - = - true - filters[status] - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - - - - false - order_numbers - \"increment_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - false - order_ids - \"entity_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - - - mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx - - import java.util.ArrayList; - import java.util.HashMap; - import org.apache.jmeter.protocol.http.util.Base64Encoder; - import java.util.Random; - - // get count of "order_numbers" variable defined in "Search Pending Orders Limit" - int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); - - - int clusterLength; - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - //Number of orders for one thread - clusterLength = ordersCount; - } else { - clusterLength = Math.round(ordersCount / threadsNumber); - if (clusterLength == 0) { - clusterLength = 1; - } - } - - //Current thread number starts from 0 - int currentThreadNum = ctx.getThreadNum(); - - //Index of the current product from the cluster - Random random = new Random(); - int iterator = random.nextInt(clusterLength); - if (iterator == 0) { - iterator = 1; - } - - int i = clusterLength * currentThreadNum + iterator; - - orderNumber = vars.get("order_numbers_" + i.toString()); - orderId = vars.get("order_ids_" + i.toString()); - vars.put("order_number", orderNumber); - vars.put("order_id", orderId); - - - - - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx - - - - #${order_number} - - Assertion.response_data - false - 2 - - - - false - order_status - <span id="order_status">([^<]+)</span> - $1$ - - 1 - simple_products - - - - - - "${order_status}" == "Pending" - false - mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx - - - - - - true - pending - = - true - history[status] - false - - - true - Some text - = - true - history[comment] - - - true - ${admin_form_key} - = - true - form_key - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx - - - - Not Notified - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx - - - - Invoice Totals - - Assertion.response_data - false - 2 - - - - false - item_ids - <div id="order_item_(\d+)_title"\s*class="product-title"> - $1$ - - -1 - simple_products - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - invoice[items][${item_ids_1}] - - - true - 1 - = - true - invoice[items][${item_ids_2}] - - - true - Invoiced - = - true - invoice[comment_text] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx - - - - The invoice has been created - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx - - - - New Shipment - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - shipment[items][${item_ids_1}] - - - true - 1 - = - true - shipment[items][${item_ids_2}] - - - true - Shipped - = - true - shipment[comment_text] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx - - - - The shipment has been created - - Assertion.response_data - false - 2 - - - - - - - - - - - - continue - - false - ${loops} - - ${csrPoolUsers} - ${ramp_period} - 1505803944000 - 1505803944000 - false - - - mpaf/tool/fragments/_system/thread_group.jmx - - - 1 - false - 1 - ${adminReturnsManagementPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Returns Management"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx - - - - Create New Order - - Assertion.response_data - false - 2 - - - - - - - - - true - sales_order_grid - = - true - namespace - - - true - - = - true - search - - - true - true - = - true - filters[placeholder] - - - true - 200 - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - increment_id - = - true - sorting[field] - - - true - desc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - - true - ${admin_form_key} - = - true - form_key - false - - - true - pending - = - true - filters[status] - true - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - - - true - sales_order_grid - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - 200 - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - increment_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - true - pending - = - true - filters[status] - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx - - - - totalRecords - - Assertion.response_data - false - 2 - - - - false - order_numbers - \"increment_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - false - order_ids - \"entity_id\":\"(\d+)\"\, - $1$ - - -1 - simple_products - - - - - - mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx - - import java.util.ArrayList; - import java.util.HashMap; - import org.apache.jmeter.protocol.http.util.Base64Encoder; - import java.util.Random; - - // get count of "order_numbers" variable defined in "Search Pending Orders Limit" - int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); - - - int clusterLength; - int threadsNumber = ctx.getThreadGroup().getNumThreads(); - if (threadsNumber == 0) { - //Number of orders for one thread - clusterLength = ordersCount; - } else { - clusterLength = Math.round(ordersCount / threadsNumber); - if (clusterLength == 0) { - clusterLength = 1; - } - } - - //Current thread number starts from 0 - int currentThreadNum = ctx.getThreadNum(); - - //Index of the current product from the cluster - Random random = new Random(); - int iterator = random.nextInt(clusterLength); - if (iterator == 0) { - iterator = 1; - } - - int i = clusterLength * currentThreadNum + iterator; - - orderNumber = vars.get("order_numbers_" + i.toString()); - orderId = vars.get("order_ids_" + i.toString()); - vars.put("order_number", orderNumber); - vars.put("order_id", orderId); - - - - - false - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx - - - - #${order_number} - - Assertion.response_data - false - 2 - - - - false - order_status - <span id="order_status">([^<]+)</span> - $1$ - - 1 - simple_products - - - - - - "${order_status}" == "Pending" - false - mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx - - - - Invoice Totals - - Assertion.response_data - false - 2 - - - - false - item_ids - <div id="order_item_(\d+)_title"\s*class="product-title"> - $1$ - - -1 - simple_products - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - invoice[items][${item_ids_1}] - - - true - 1 - = - true - invoice[items][${item_ids_2}] - - - true - Invoiced - = - true - invoice[comment_text] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx - - - - The invoice has been created - - Assertion.response_data - false - 2 - - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx - - - - New Memo - - Assertion.response_data - false - 2 - - - - - - 1 - mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_submit.jmx - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - creditmemo[items][${item_ids_1}][qty] - - - true - 1 - = - true - creditmemo[items][${item_ids_2}][qty] - - - true - 1 - = - true - creditmemo[do_offline] - - - true - Credit Memo added - = - true - creditmemo[comment_text] - - - true - 10 - = - true - creditmemo[shipping_amount] - - - true - 0 - = - true - creditmemo[adjustment_positive] - - - true - 0 - = - true - creditmemo[adjustment_negative] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ - POST - true - false - true - false - false - - - - - - You created the credit memo - - Assertion.response_data - false - 2 - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - creditmemo[items][${item_ids_1}][qty] - - - true - 1 - = - true - creditmemo[do_offline] - - - true - Credit Memo added - = - true - creditmemo[comment_text] - - - true - 10 - = - true - creditmemo[shipping_amount] - - - true - 0 - = - true - creditmemo[adjustment_positive] - - - true - 0 - = - true - creditmemo[adjustment_negative] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ - POST - true - false - true - false - false - - - - - - You created the credit memo - - Assertion.response_data - false - 2 - - - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))} - mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx - - - - - - - - 1 - false - 1 - ${browseCustomerGridPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Browse Customer Grid"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - - vars.put("gridEntityType" , "Customer"); - - pagesCount = parseInt(vars.get("customers_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "customer_listing"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text")); - vars.put("grid_filter_field", "name"); - - // set sort fields and sort directions - vars.put("grid_sort_field_1", "name"); - vars.put("grid_sort_field_2", "group_id"); - vars.put("grid_sort_field_3", "billing_country_id"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); - - javascript - mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx - - - $.totalRecords - 0 - true - false - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - - - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx - - - $.totalRecords - 0 - true - false - true - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); - -vars.put("grid_pages_count_filtered", pageCount); - - javascript - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - ${page_number} - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - - - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - - - - - - - 1 - false - 1 - ${adminCreateOrderPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Admin Create Order"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx - import org.apache.jmeter.samplers.SampleResult; -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -number = random.nextInt(props.get("simple_products_list").size()); -simpleList = props.get("simple_products_list").get(number); -vars.put("simple_product_1_url_key", simpleList.get("url_key")); -vars.put("simple_product_1_name", simpleList.get("title")); -vars.put("simple_product_1_id", simpleList.get("id")); - -do { - number1 = random.nextInt(props.get("simple_products_list").size()); -} while(number == number1); -simpleList = props.get("simple_products_list").get(number1); -vars.put("simple_product_2_url_key", simpleList.get("url_key")); -vars.put("simple_product_2_name", simpleList.get("title")); -vars.put("simple_product_2_id", simpleList.get("id")); - -number = random.nextInt(props.get("configurable_products_list").size()); -configurableList = props.get("configurable_products_list").get(number); -vars.put("configurable_product_1_url_key", configurableList.get("url_key")); -vars.put("configurable_product_1_name", configurableList.get("title")); -vars.put("configurable_product_1_id", configurableList.get("id")); -vars.put("configurable_product_1_sku", configurableList.get("sku")); -vars.put("configurable_attribute_id", configurableList.get("attribute_id")); -vars.put("configurable_option_id", configurableList.get("attribute_option_id")); - - -customers_index = 0; -if (!props.containsKey("customer_ids_index")) { - props.put("customer_ids_index", customers_index); -} - -try { - customers_index = props.get("customer_ids_index"); - customers_list = props.get("customer_ids_list"); - - if (customers_index == customers_list.size()) { - customers_index=0; - } - vars.put("customer_id", customers_list.get(customers_index)); - props.put("customer_ids_index", ++customers_index); -} -catch (java.lang.Exception e) { - log.error("Caught Exception in 'Admin Create Order' thread."); - SampleResult.setStopThread(true); -} - - - true - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/start/ - GET - true - false - true - false - false - - Detected the start of a redirect chain - - - - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/integration/admin/token - POST - true - false - true - false - false - - - - - admin_token - $ - - - BODY - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all - GET - true - false - true - false - false - - - - - attribute_ids - $.[*].attribute_id - NO_VALUE - - BODY - - - - option_values - $.[*].values[0].value_index - NO_VALUE - - BODY - - - - - - - - - true - item[${simple_product_1_id}][qty] - 1 - = - true - - - true - item[${simple_product_2_id}][qty] - 1 - = - true - - - true - item[${configurable_product_1_id}][qty] - 1 - = - true - - - true - customer_id - ${customer_id} - = - true - - - true - store_id - 1 - = - true - - - true - currency_id - - = - true - - - true - form_key - ${admin_form_key} - = - true - - - true - payment[method] - checkmo - = - true - - - true - reset_shipping - 1 - = - true - - - true - json - 1 - = - true - - - true - as_js_varname - iFrameResponse - = - true - - - true - form_key - ${admin_form_key} - = - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true - POST - true - false - true - false - false - - Detected the start of a redirect chain - - - - false - - - try { - attribute_ids = vars.get("attribute_ids"); - option_values = vars.get("option_values"); - attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); - option_values = option_values.replace("[","").replace("]","").replace("\"", ""); - attribute_ids_array = attribute_ids.split(","); - option_values_array = option_values.split(","); - args = ctx.getCurrentSampler().getArguments(); - it = args.iterator(); - while (it.hasNext()) { - argument = it.next(); - if (argument.getStringValue().contains("${")) { - args.removeArgument(argument.getName()); - } - } - for (int i = 0; i < attribute_ids_array.length; i++) { +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; - ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]); - } -} catch (Exception e) { - log.error("error???", e); -} - - - - - - - - true - collect_shipping_rates - 1 - = - true - - - true - customer_id - ${customer_id} - = - true - - - true - store_id - 1 - = - true - - - true - currency_id - false - = - true - - - true - form_key - ${admin_form_key} - = - true - - - true - payment[method] - checkmo - = - true - - - true - json - true - = - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true - POST - true - false - true - false - false - - - - - - shipping_method - Flat Rate - - Assertion.response_data - false - 2 - - - - - - - - true - form_key - ${admin_form_key} - = - true - - - true - limit - 20 - = - true - - - true - entity_id - - = - true - - - true - name - - = - true - - - true - email - - = - true - - - true - Telephone - - = - true - - - true - billing_postcode - - = - true - - - true - billing_country_id - - = - true - - - true - billing_regione - - = - true - - - true - store_name - - = - true - - - true - page - 1 - = - true - - - true - order[currency] - USD - = - true - - - true - sku - - = - true - - - true - qty - - = - true - - - true - limit - 20 - = - true - - - true - entity_id - - = - true - - - true - name - - = - true - - - true - sku - - = - true - - - true - price[from] - - = - true - - - true - price[to] - - = - true - - - true - in_products - - = - true - - - true - page - 1 - = - true - - - true - coupon_code - - = - true - - - true - order[account][group_id] - 1 - = - true - - - true - order[account][email] - user_${customer_id}@example.com - = - true - - - true - order[billing_address][customer_address_id] - - = - true - - - true - order[billing_address][prefix] - - = - true - - - true - order[billing_address][firstname] - Anthony - = - true - - - true - order[billing_address][middlename] - - = - true - - - true - order[billing_address][lastname] - Nealy - = - true - - - true - order[billing_address][suffix] - - = - true - - - true - order[billing_address][company] - - = - true - - - true - order[billing_address][street][0] - 123 Freedom Blvd. #123 - = - true - - - true - order[billing_address][street][1] - - = - true - - - true - order[billing_address][city] - Fayetteville - = - true - - - true - order[billing_address][country_id] - US - = - true - - - true - order[billing_address][region] - - = - true - - - true - order[billing_address][region_id] - 5 - = - true - - - true - order[billing_address][postcode] - 123123 - = - true - - - true - order[billing_address][telephone] - 022-333-4455 - = - true - - - true - order[billing_address][fax] - - = - true - - - true - order[billing_address][vat_id] - - = - true - - - true - shipping_same_as_billing - on - = - true - - - true - payment[method] - checkmo - = - true - - - true - order[shipping_method] - flatrate_flatrate - = - true - - - true - order[comment][customer_note] - - = - true +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + - - true - order[comment][customer_note_notify] - 1 - = - true + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + true + 1 + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +import java.util.Random; + +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("configurable_products_list").size()); +product = props.get("configurable_products_list").get(number); + +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx + + + + mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx + +productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); +productsAdded = productsAdded + 1; + +vars.put("totalProductsAdded", String.valueOf(productsAdded)); + + + + true + + + + + + - - true - order[send_confirmation] - 1 + + + + + ${request_protocol} + + ${base_path}${product_url_key}${url_suffix} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx + + + + <span>In stock</span> + + Assertion.response_data + false + 2 + + + + + + true + 1 + mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} = - true @@ -22592,146 +9225,554 @@ catch (java.lang.Exception e) { ${request_protocol} - ${base_path}${admin_path}/sales/order_create/save/ + ${base_path}rest/V1/integration/admin/token POST true false true - true + false false - Detected the start of a redirect chain - - false - order_id - ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/ - $1$ - - 1 - - - - false - order_item_1 - order_item_(\d+)_title - $1$ - - 1 - - - - false - order_item_2 - order_item_(\d+)_title - $1$ - - 2 - - - - false - order_item_3 - order_item_(\d+)_title - $1$ - - 3 - + + admin_token + $ + + + BODY + - + - ^\d+$ + ^[a-z0-9-]+$ Assertion.response_data false 1 variable - order_id + admin_token - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_1 - + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${product_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_2 - + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_item_3 - + + + + + + + + true + ${product_id} + = + true + product + + + true + + = + true + related_product + + + true + 1 + = + true + qty + + + true + ${form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}checkout/cart/add/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx + + + false + + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); + } + } catch (Exception e) { + log.error("eror…", e); + } + + mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx - + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + + + true + cart,messages + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/load_cart_section.jmx + + + + You added ${product_name} to your shopping cart. + + Assertion.response_data + false + 2 + + + + + This product is out of stock. + + Assertion.response_data + false + 6 + + + + + \"summary_count\":${totalProductsAdded} + + Assertion.response_data + false + 2 + + + + + + + X-Requested-With + XMLHttpRequest + + + mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + + + ${base_path}checkout/cart/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/open_cart.jmx + + - You created the order. + <title>Shopping Cart</title> Assertion.response_data false 2 + + false + cart_items_qty_inputs + name="cart\[([^\[\]]+)\]\[qty\]" + $1$ + + -1 + + - + + + true + ${cart_items_qty_inputs_matchNr} + mpaf/tool/fragments/ce/loop_controller.jmx + + + 1 + + 1 + _counter + + true + true + + + + + +id = vars.get("_counter"); +vars.put("uenc", vars.get("cart_items_uencs_" + id)); +vars.put("item_id", vars.get("cart_items_qty_inputs_" + id)); + + + + true + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart_setup.jmx + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${uenc} + = + true + uenc + + + false + ${item_id} + = + true + id + + + + + + + + + + ${base_path}checkout/cart/delete/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart.jmx + + + + + + + true + cart + = + true + sections + + + true + true + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/check_cart_is_empty.jmx + + + + \"summary_count\":0 + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${accountManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Account management"); + + true + + + + + + + 30 + ${host} + / + false + 0 + true + true + + + ${form_key} + ${host} + ${base_path} + false + 0 + true + true + + + true + mpaf/tool/fragments/ce/http_cookie_manager.jmx + + + + get-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_customer_email.jmx + +customerUserList = props.get("customer_emails_list"); +customerUser = customerUserList.poll(); +if (customerUser == null) { + SampleResult.setResponseMessage("customernUser list is empty"); + SampleResult.setResponseData("customerUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("customer_email", customerUser); + + + + true + + + + + - - - true - form_key - ${admin_form_key} - = - true - - - true - invoice[items][${order_item_1}] - 1 - = - true - - - true - invoice[items][${order_item_2}] - 1 - = - true - - - true - invoice[items][${order_item_3}] - 1 - = - true - - - true - invoice[comment_text] - - = - true - - + @@ -22739,20 +9780,19 @@ catch (java.lang.Exception e) { ${request_protocol} - ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ - POST + ${base_path} + GET true false true false false - Detected the start of a redirect chain - + mpaf/tool/fragments/ce/common/open_home_page.jmx - + - The invoice has been created. + <title>Home page</title> Assertion.response_data false @@ -22760,45 +9800,209 @@ catch (java.lang.Exception e) { - + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/login/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/open_login_page.jmx + + + + <title>Customer Login</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + + + true + ${customer_email} + = + true + login[username] + + + true + ${customer_password} + = + true + login[password] + + + true + + = + true + send + + + + + + + + ${request_protocol} + + ${base_path}customer/account/loginPost/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/common/login.jmx + + + + <title>My Account</title> + + Assertion.response_data + false + 2 + + + + false + addressId + customer/address/edit/id/([^'"]+)/ + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + addressId + + + + + + + + true + + = + true + sections + + + true + false + = + true + update_section_id + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}customer/section/load/ + GET + true + false + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/history/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_orders.jmx + + + + <title>My Orders</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_orders.jmx + "${orderId}" != "NOT_FOUND" + false + + + - - - true - form_key - ${admin_form_key} - = - true - - - true - shipment[items][${order_item_1}] - 1 - = - true - - - true - shipment[items][${order_item_2}] - 1 - = - true - - - true - shipment[items][${order_item_3}] - 1 - = - true - - - true - shipment[comment_text] - - = - true - - + @@ -22806,41 +10010,416 @@ catch (java.lang.Exception e) { ${request_protocol} - ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ - POST + ${base_path}sales/order/view/order_id/${orderId} + GET true false true false false - Detected the start of a redirect chain - + - The shipment has been created. + <title>Order # Assertion.response_data false 2 + + false + shipment_tab + sales/order/shipment/order_id/(\d+)..Order Shipments + $1$ + NOT_FOUND + 1 + + + + + May not have shipped + "${shipment_tab}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/shipment/order_id/${orderId} + GET + true + false + true + false + false + + + + + + Track this shipment + + Assertion.response_data + false + 2 + + + + false + popupLink + popupWindow": {"windowURL":"([^'"]+)", + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${popupLink} + GET + true + false + true + false + false + + + + + + <title>Tracking Information</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/customer/products + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx + + + + <title>My Downloadable Products</title> + + Assertion.response_data + false + 2 + + + + false + orderId + sales/order/view/order_id/(\d+)/ + $1$ + NOT_FOUND + 1 + + + + false + linkId + downloadable/download/link/id/(\d+)/ + $1$ + + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_downloadables.jmx + "${orderId}" != "NOT_FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}sales/order/view/order_id/${orderId} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx + + + + <title>Order # + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}downloadable/download/link/id/${linkId} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/download_product.jmx + + + + + + + + + + + + ${request_protocol} + + ${base_path}wishlist + GET + true + false + true + false + false + + + + + + <title>My Wish List</title> + + Assertion.response_data + false + 2 + + + + false + wishlistId + wishlist/index/update/wishlist_id/([^'"]+)/ + $1$ + + 1 + mpaf/tool/fragments/ce/account_management/my_wish_list.jmx + + + + false + buttonTitle + Update Wish List + FOUND + NOT_FOUND + 1 + + + + + + mpaf/tool/fragments/ce/account_management/if_wishlist.jmx + "${buttonTitle}" === "FOUND" + false + + + + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/share_wish_list.jmx + + + + <title>Wish List Sharing</title> + + Assertion.response_data + false + 2 + + + + + + + + + true + ${form_key} + = + true + form_key + true + + + true + ${customer_email} + = + true + emails + + + true + [TEST] See my wishlist!!! + = + true + message + + + + + + + + ${request_protocol} + + ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/account_management/send_wish_list.jmx + + + + <title>My Wish List</title> + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}customer/account/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/logout.jmx + + + + You are signed out. + + Assertion.response_data + false + 2 + + + + + false + + + +customerUserList = props.get("customer_emails_list"); +customerUserList.add(vars.get("customer_email")); + + mpaf/tool/fragments/ce/common/return_email_to_pool.jmx + - + continue false ${loops} - ${othersPoolUsers} + ${adminPoolUsers} ${ramp_period} 1505803944000 1505803944000 @@ -22849,11 +10428,11 @@ catch (java.lang.Exception e) { mpaf/tool/fragments/_system/thread_group.jmx - + 1 false 1 - ${adminCustomerManagementPercentage} + ${adminCMSManagementPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -22874,7 +10453,7 @@ if (testLabel - vars.put("testLabel", "Admin Customer Management"); + vars.put("testLabel", "Admin CMS Management"); true @@ -22934,10 +10513,36 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - mpaf/tool/fragments/ce/once_only_controller.jmx - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + @@ -23051,118 +10656,19 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/customer/index - GET - true - false - true - false - false - - - - - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate - - - - - - - - - - true - customer_listing - = - true - namespace - - - true - - = - true - search - - - true - true - = - true - filters[placeholder] - - - true - 20 - = - true - paging[pageSize] - - - true - 1 - = - true - paging[current] - - - true - entity_id - = - true - sorting[field] - - - true - asc - = - true - sorting[direction] - - - true - true - = - true - isAjax - - + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx + + + + + @@ -23170,7 +10676,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ + ${base_path}${admin_path}/cms/page/ GET true false @@ -23179,1238 +10685,3998 @@ if (testLabel false - - - - - X-Requested-With - XMLHttpRequest - - - - - - + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/new + GET + true + false + true + false + false + + + + - + true - customer_listing + <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> = true - namespace + content - + true - Lastname + = true - search + content_heading - + true - true + ${admin_form_key} = true - filters[placeholder] + form_key - + true - 20 + = true - paging[pageSize] + identifier - + true 1 = true - paging[current] + is_active - + true - entity_id + = true - sorting[field] + layout_update_xml - + true - asc + = true - sorting[direction] + meta_description - + true - true + = true - isAjax - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - - X-Requested-With - XMLHttpRequest + meta_keywords + + + true + + = + true + meta_title + + + false + {} + = + true + nodes_data + + + true + + = + true + node_ids + + + true + + = + true + page_id + + + true + 1column + = + true + page_layout + + + true + 0 + = + true + store_id[0] + + + true + CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + title + + + true + 0 + = + true + website_root - - - - false - customer_edit_url_path - actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/", - /customer/index/edit/id/$2$/ - - 0 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - customer_edit_url_path - - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}${customer_edit_url_path} - GET - true - false - true - false - false - - - - - - Customer Information - - Assertion.response_data - false - 2 - - - - false - admin_customer_entity_id - "entity_id":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_website_id - "website_id":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_firstname - "firstname":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_lastname - "lastname":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_email - "email":"([^\@]+@[^.]+.[^"]+)" - $1$ - - 1 - - - - false - admin_customer_group_id - "group_id":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_store_id - "store_id":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_created_at - "created_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_updated_at - "updated_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_is_active - "is_active":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_disable_auto_group_change - "disable_auto_group_change":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_created_in - "created_in":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_dob - "dob":"(\d+)-(\d+)-(\d+)" - $2$/$3$/$1$ - - 1 - - - - false - admin_customer_default_billing - "default_billing":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_default_shipping - "default_shipping":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_gender - "gender":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_failures_num - "failures_num":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_address_entity_id - "address":\{"\d+":{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}" - $1$ - - 1 - - - - false - admin_customer_address_created_at - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_updated_at - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_is_active - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)" - $1$ - - 1 - - - - false - admin_customer_address_city - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_country_id - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_firstname - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_lastname - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_postcode - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_region - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_region_id - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_street - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\] - $1$ - - 1 - - - - false - admin_customer_address_telephone - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)" - $1$ - - 1 - - - - false - admin_customer_address_customer_id - "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)" - $1$ - - 1 - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_entity_id - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_website_id - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_firstname - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_lastname - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_email - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_group_id - - - + + + + + + ${request_protocol} + + ${base_path}${admin_path}/cms/page/save/ + POST + true + false + true + false + false + + + + - ^\d+$ + You saved the page. Assertion.response_data false - 1 - variable - admin_customer_store_id + 16 - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_created_at - + + + 1 + 0 + ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))} + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${browseProductGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_updated_at - + + + vars.put("testLabel", "Browse Product Grid"); + + true + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_is_active - + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_disable_auto_group_change - + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_created_in - + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - ^\d+/\d+/\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_dob - + + + + + + vars.put("gridEntityType" , "Product"); + + pagesCount = parseInt(vars.get("products_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "product_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "price"); + vars.put("grid_sort_field_3", "attribute_set_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${browseOrderGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_default_billing - + + + vars.put("testLabel", "Browse Order Grid"); + + true + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_default_shipping - + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_gender - + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_failures_num - + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + + vars.put("gridEntityType" , "Order"); + + pagesCount = parseInt(vars.get("orders_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "sales_order_grid"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text")); + vars.put("grid_filter_field", "status"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "increment_id"); + vars.put("grid_sort_field_2", "created_at"); + vars.put("grid_sort_field_3", "billing_name"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + + + continue + + false + ${loops} + + ${csrPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${adminReturnsManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_entity_id - + + + vars.put("testLabel", "Admin Returns Management"); + + true + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_created_at - + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_updated_at - + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_is_active - + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_city - + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + + + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; + + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); + + + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } + + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + invoice[items][${item_ids_1}] + + + true + 1 + = + true + invoice[items][${item_ids_2}] + + + true + Invoiced + = + true + invoice[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx + + + + New Memo + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + creditmemo[items][${item_ids_1}][qty] + + + true + 1 + = + true + creditmemo[items][${item_ids_2}][qty] + + + true + 1 + = + true + creditmemo[do_offline] + + + true + Credit Memo added + = + true + creditmemo[comment_text] + + + true + 10 + = + true + creditmemo[shipping_amount] + + + true + 0 + = + true + creditmemo[adjustment_positive] + + + true + 0 + = + true + creditmemo[adjustment_negative] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx + + + + You created the credit memo + + Assertion.response_data + false + 2 + + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))} + mpaf/tool/fragments/ce/admin_create_process_returns/pause.jmx + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${browseCustomerGridPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_country_id - + + + vars.put("testLabel", "Browse Customer Grid"); + + true + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_firstname - + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_lastname - + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_postcode - + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_region - + + + + + + vars.put("gridEntityType" , "Customer"); + + pagesCount = parseInt(vars.get("customers_page_size")) || 20; + vars.put("grid_entity_page_size" , pagesCount); + vars.put("grid_namespace" , "customer_listing"); + vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text")); + vars.put("grid_filter_field", "name"); + + // set sort fields and sort directions + vars.put("grid_sort_field_1", "name"); + vars.put("grid_sort_field_2", "group_id"); + vars.put("grid_sort_field_3", "billing_country_id"); + vars.put("grid_sort_order_1", "asc"); + vars.put("grid_sort_order_2", "desc"); + + javascript + mpaf/tool/fragments/ce/admin_browse_customers_grid/setup.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; + var totalsRecord = parseInt(vars.get("entity_total_records")); + var pageCount = Math.round(totalsRecord/pageSize); + + vars.put("grid_pages_count", pageCount); + + javascript + + + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + ${grid_admin_browse_filter_text} + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + + + $.totalRecords + 0 + true + false + true + true + + + + entity_total_records + $.totalRecords + + + BODY + + + + + + + var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; +var totalsRecord = parseInt(vars.get("entity_total_records")); +var pageCount = Math.round(totalsRecord/pageSize); + +vars.put("grid_pages_count_filtered", pageCount); + + javascript + + + + + + 1 + ${grid_pages_count} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx + + + + + + + true + ${grid_namespace} + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + 1 + ${grid_pages_count_filtered} + 1 + page_number + + true + false + mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx + + + + mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx + + + + grid_sort_field + grid_sort_field + true + 0 + 3 + + + + grid_sort_order + grid_sort_order + true + 0 + 2 + + + + + + + true + ${grid_namespace} + = + true + namespace + false + + + true + ${grid_admin_browse_filter_text} + = + true + filters[${grid_filter_field}] + false + + + true + true + = + true + filters[placeholder] + false + + + true + ${grid_entity_page_size} + = + true + paging[pageSize] + false + + + true + ${page_number} + = + true + paging[current] + false + + + true + ${grid_sort_field} + = + true + sorting[field] + false + + + true + ${grid_sort_order} + = + true + sorting[direction] + false + + + true + true + = + true + isAjax + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + \"totalRecords\":[^0]\d* + + Assertion.response_data + false + 2 + + + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${adminCreateOrderPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_region_id - + + + vars.put("testLabel", "Admin Create Order"); + + true + - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_street - + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_telephone - + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - admin_customer_address_customer_id - + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_create_order/admin_create_order.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +number = random.nextInt(props.get("simple_products_list").size()); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_url_key", simpleList.get("url_key")); +vars.put("simple_product_1_name", simpleList.get("title")); +vars.put("simple_product_1_id", simpleList.get("id")); + +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_url_key", simpleList.get("url_key")); +vars.put("simple_product_2_name", simpleList.get("title")); +vars.put("simple_product_2_id", simpleList.get("id")); + +number = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_sku", configurableList.get("sku")); +vars.put("configurable_attribute_id", configurableList.get("attribute_id")); +vars.put("configurable_option_id", configurableList.get("attribute_option_id")); + + +customers_index = 0; +if (!props.containsKey("customer_ids_index")) { + props.put("customer_ids_index", customers_index); +} + +try { + customers_index = props.get("customer_ids_index"); + customers_list = props.get("customer_ids_list"); + + if (customers_index == customers_list.size()) { + customers_index=0; + } + vars.put("customer_id", customers_list.get(customers_index)); + props.put("customer_ids_index", ++customers_index); +} +catch (java.lang.Exception e) { + log.error("Caught Exception in 'Admin Create Order' thread."); + SampleResult.setStopThread(true); +} + + + true + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/start/ + GET + true + false + true + false + false + + Detected the start of a redirect chain + + + + - - Accept-Language - en-US,en;q=0.5 + + Content-Type + application/json - + Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - User-Agent - Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 - - - Accept-Encoding - gzip, deflate + */* - - - - - - true - true - = - true - isAjax - - - true - ${admin_customer_entity_id} - = - true - customer[entity_id] - - - true - ${admin_customer_website_id} - = - true - customer[website_id] - - - true - ${admin_customer_email} - = - true - customer[email] - - - true - ${admin_customer_group_id} - = - true - customer[group_id] - - - true - ${admin_customer_store_id} - = - true - customer[store_id] - - - true - ${admin_customer_created_at} - = - true - customer[created_at] - - - true - ${admin_customer_updated_at} - = - true - customer[updated_at] - - - true - ${admin_customer_is_active} - = - true - customer[is_active] - - - true - ${admin_customer_disable_auto_group_change} - = - true - customer[disable_auto_group_change] - - - true - ${admin_customer_created_in} - = - true - customer[created_in] - - - true - - = - true - customer[prefix] - - - true - ${admin_customer_firstname} 1 - = - true - customer[firstname] - - - true - - = - true - customer[middlename] - - - true - ${admin_customer_lastname} 1 - = - true - customer[lastname] - - - true - - = - true - customer[suffix] - - - true - ${admin_customer_dob} - = - true - customer[dob] - - - true - ${admin_customer_default_billing} - = - true - customer[default_billing] - - - true - ${admin_customer_default_shipping} - = - true - customer[default_shipping] - - - true - - = - true - customer[taxvat] - - - true - ${admin_customer_gender} - = - true - customer[gender] - - - true - ${admin_customer_failures_num} - = - true - customer[failures_num] - - - true - ${admin_customer_store_id} - = - true - customer[sendemail_store_id] - - - true - ${admin_customer_address_entity_id} - = - true - address[${admin_customer_address_entity_id}][entity_id] - - - true - ${admin_customer_address_created_at} - = - true - address[${admin_customer_address_entity_id}][created_at] - - - true - ${admin_customer_address_updated_at} - = - true - address[${admin_customer_address_entity_id}][updated_at] - - - true - ${admin_customer_address_is_active} - = - true - address[${admin_customer_address_entity_id}][is_active] - - - true - ${admin_customer_address_city} - = - true - address[${admin_customer_address_entity_id}][city] - - - true - - = - true - address[${admin_customer_address_entity_id}][company] - - - true - ${admin_customer_address_country_id} - = - true - address[${admin_customer_address_entity_id}][country_id] - - - true - ${admin_customer_address_firstname} - = - true - address[${admin_customer_address_entity_id}][firstname] - - - true - ${admin_customer_address_lastname} - = - true - address[${admin_customer_address_entity_id}][lastname] - - - true - - = - true - address[${admin_customer_address_entity_id}][middlename] - - - true - ${admin_customer_address_postcode} - = - true - address[${admin_customer_address_entity_id}][postcode] - - - true - - = - true - address[${admin_customer_address_entity_id}][prefix] - - - true - ${admin_customer_address_region} - = - true - address[${admin_customer_address_entity_id}][region] - - - true - ${admin_customer_address_region_id} - = - true - address[${admin_customer_address_entity_id}][region_id] - - - true - ${admin_customer_address_street} - = - true - address[${admin_customer_address_entity_id}][street][0] - - - true - - = - true - address[${admin_customer_address_entity_id}][street][1] - - - true - - = - true - address[${admin_customer_address_entity_id}][suffix] + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} - + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all + GET + true + false + true + false + false + + + + + attribute_ids + $.[*].attribute_id + NO_VALUE + + BODY + + + + option_values + $.[*].values[0].value_index + NO_VALUE + + BODY + + + + + + + + true - ${admin_customer_address_telephone} + item[${simple_product_1_id}][qty] + 1 = true - address[${admin_customer_address_entity_id}][telephone] - + true - + item[${simple_product_2_id}][qty] + 1 = true - address[${admin_customer_address_entity_id}][vat_id] - + true - ${admin_customer_address_customer_id} + item[${configurable_product_1_id}][qty] + 1 = true - address[${admin_customer_address_entity_id}][customer_id] - + true - true + customer_id + ${customer_id} = true - address[${admin_customer_address_entity_id}][default_billing] - + true - true + store_id + 1 = true - address[${admin_customer_address_entity_id}][default_shipping] - + true + currency_id = true - address[new_0][prefix] - - - true - John - = - true - address[new_0][firstname] - + true - + form_key + ${admin_form_key} = true - address[new_0][middlename] - + true - Doe + payment[method] + checkmo = true - address[new_0][lastname] - + true - + reset_shipping + 1 = true - address[new_0][suffix] - + true - Test Company + json + 1 = true - address[new_0][company] - + true - Folsom + as_js_varname + iFrameResponse = true - address[new_0][city] - + true - 95630 + form_key + ${admin_form_key} = true - address[new_0][postcode] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + false + + + try { + attribute_ids = vars.get("attribute_ids"); + option_values = vars.get("option_values"); + attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); + option_values = option_values.replace("[","").replace("]","").replace("\"", ""); + attribute_ids_array = attribute_ids.split(","); + option_values_array = option_values.split(","); + args = ctx.getCurrentSampler().getArguments(); + it = args.iterator(); + while (it.hasNext()) { + argument = it.next(); + if (argument.getStringValue().contains("${")) { + args.removeArgument(argument.getName()); + } + } + for (int i = 0; i < attribute_ids_array.length; i++) { + + ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]); + } +} catch (Exception e) { + log.error("error???", e); +} + + + + + + + true - 1234567890 + collect_shipping_rates + 1 = true - address[new_0][telephone] - + true - + customer_id + ${customer_id} = true - address[new_0][vat_id] - + true - false + store_id + 1 = true - address[new_0][default_billing] - + true + currency_id false = true - address[new_0][default_shipping] - - - true - 123 Main - = - true - address[new_0][street][0] - - - true - - = - true - address[new_0][street][1] - - - true - - = - true - address[new_0][region] - + true - US + form_key + ${admin_form_key} = true - address[new_0][country_id] - + true - 12 + payment[method] + checkmo = true - address[new_0][region_id] - + true - ${admin_form_key} + json + true = true - form_key @@ -24420,7 +14686,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/customer/index/validate/ + ${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true POST true false @@ -24430,460 +14696,569 @@ if (testLabel - + - 200 + shipping_method + Flat Rate - Assertion.response_code + Assertion.response_data false - 16 + 2 - + - - true - true - = - true - isAjax - - - true - ${admin_customer_entity_id} - = - true - customer[entity_id] - - - true - ${admin_customer_website_id} - = - true - customer[website_id] - - + true - ${admin_customer_email} + form_key + ${admin_form_key} = true - customer[email] - + true - ${admin_customer_group_id} + limit + 20 = true - customer[group_id] - + true - ${admin_customer_store_id} + entity_id + = true - customer[store_id] - + true - ${admin_customer_created_at} + name + = true - customer[created_at] - + true - ${admin_customer_updated_at} + email + = true - customer[updated_at] - + true - ${admin_customer_is_active} + Telephone + = true - customer[is_active] - + true - ${admin_customer_disable_auto_group_change} + billing_postcode + = true - customer[disable_auto_group_change] - + true - ${admin_customer_created_in} + billing_country_id + = true - customer[created_in] - + true + billing_regione = true - customer[prefix] - + true - ${admin_customer_firstname} 1 + store_name + = true - customer[firstname] - + true - + page + 1 = true - customer[middlename] - + true - ${admin_customer_lastname} 1 + order[currency] + USD = true - customer[lastname] - + true + sku = true - customer[suffix] - + true - ${admin_customer_dob} + qty + = true - customer[dob] - + true - ${admin_customer_default_billing} + limit + 20 = true - customer[default_billing] - + true - ${admin_customer_default_shipping} + entity_id + = true - customer[default_shipping] - + true + name = true - customer[taxvat] - + true - ${admin_customer_gender} + sku + = true - customer[gender] - + true - ${admin_customer_failures_num} + price[from] + = true - customer[failures_num] - + true - ${admin_customer_store_id} + price[to] + = true - customer[sendemail_store_id] - + true - ${admin_customer_address_entity_id} + in_products + = true - address[${admin_customer_address_entity_id}][entity_id] - - + true - ${admin_customer_address_created_at} + page + 1 = true - address[${admin_customer_address_entity_id}][created_at] - + true - ${admin_customer_address_updated_at} + coupon_code + = true - address[${admin_customer_address_entity_id}][updated_at] - + true - ${admin_customer_address_is_active} + order[account][group_id] + 1 = true - address[${admin_customer_address_entity_id}][is_active] - + true - ${admin_customer_address_city} + order[account][email] + user_${customer_id}@example.com = true - address[${admin_customer_address_entity_id}][city] - + true + order[billing_address][customer_address_id] = true - address[${admin_customer_address_entity_id}][company] - - - true - ${admin_customer_address_country_id} - = - true - address[${admin_customer_address_entity_id}][country_id] - + true - ${admin_customer_address_firstname} + order[billing_address][prefix] + = true - address[${admin_customer_address_entity_id}][firstname] - + true - ${admin_customer_address_lastname} + order[billing_address][firstname] + Anthony = true - address[${admin_customer_address_entity_id}][lastname] - + true + order[billing_address][middlename] = true - address[${admin_customer_address_entity_id}][middlename] - + true - ${admin_customer_address_postcode} + order[billing_address][lastname] + Nealy = true - address[${admin_customer_address_entity_id}][postcode] - + true + order[billing_address][suffix] = true - address[${admin_customer_address_entity_id}][prefix] - - - true - ${admin_customer_address_region} - = - true - address[${admin_customer_address_entity_id}][region] - + true - ${admin_customer_address_region_id} + order[billing_address][company] + = true - address[${admin_customer_address_entity_id}][region_id] - + true - ${admin_customer_address_street} + order[billing_address][street][0] + 123 Freedom Blvd. #123 = true - address[${admin_customer_address_entity_id}][street][0] - + true + order[billing_address][street][1] = true - address[${admin_customer_address_entity_id}][street][1] - + true - + order[billing_address][city] + Fayetteville = true - address[${admin_customer_address_entity_id}][suffix] - + true - ${admin_customer_address_telephone} + order[billing_address][country_id] + US = true - address[${admin_customer_address_entity_id}][telephone] - + true + order[billing_address][region] = true - address[${admin_customer_address_entity_id}][vat_id] - + true - ${admin_customer_address_customer_id} + order[billing_address][region_id] + 5 = true - address[${admin_customer_address_entity_id}][customer_id] - + true - true + order[billing_address][postcode] + 123123 = true - address[${admin_customer_address_entity_id}][default_billing] - + true - true + order[billing_address][telephone] + 022-333-4455 = true - address[${admin_customer_address_entity_id}][default_shipping] - + true + order[billing_address][fax] = true - address[new_0][prefix] - + true - John + order[billing_address][vat_id] + = true - address[new_0][firstname] - + true - + shipping_same_as_billing + on = true - address[new_0][middlename] - + true - Doe + payment[method] + checkmo = true - address[new_0][lastname] - + true - + order[shipping_method] + flatrate_flatrate = true - address[new_0][suffix] - + true - Test Company + order[comment][customer_note] + = true - address[new_0][company] - + true - Folsom + order[comment][customer_note_notify] + 1 = true - address[new_0][city] - + true - 95630 + order[send_confirmation] + 1 = true - address[new_0][postcode] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_create/save/ + POST + true + false + true + true + false + + Detected the start of a redirect chain + + + + false + order_id + ${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/ + $1$ + + 1 + + + + false + order_item_1 + order_item_(\d+)_title + $1$ + + 1 + + + + false + order_item_2 + order_item_(\d+)_title + $1$ + + 2 + + + + false + order_item_3 + order_item_(\d+)_title + $1$ + + 3 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_2 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + order_item_3 + + + + + You created the order. + + Assertion.response_data + false + 2 + + + + + + + true - 1234567890 + form_key + ${admin_form_key} = true - address[new_0][telephone] - + true - + invoice[items][${order_item_1}] + 1 = true - address[new_0][vat_id] - + true - false + invoice[items][${order_item_2}] + 1 = true - address[new_0][default_billing] - + true - false + invoice[items][${order_item_3}] + 1 = true - address[new_0][default_shipping] - + true - 123 Main + invoice[comment_text] + = true - address[new_0][street][0] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + Detected the start of a redirect chain + + + + + The invoice has been created. + + Assertion.response_data + false + 2 + + + + + + + true - + form_key + ${admin_form_key} = true - address[new_0][street][1] - + true - + shipment[items][${order_item_1}] + 1 = true - address[new_0][region] - + true - US + shipment[items][${order_item_2}] + 1 = true - address[new_0][country_id] - + true - 12 + shipment[items][${order_item_3}] + 1 = true - address[new_0][region_id] - + true - ${admin_form_key} + shipment[comment_text] + = true - form_key @@ -24893,19 +15268,20 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/customer/index/save/ + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ POST true false true - true + false false + Detected the start of a redirect chain - + - You saved the customer. + The shipment has been created. Assertion.response_data false @@ -24913,22 +15289,169 @@ if (testLabel - - 1 - 0 - ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))} - - + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + continue + + false + ${loops} + + ${apiPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + + 1 + false + 1 + ${apiBasePercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API"); + + true + + + + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx + - + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + + Authorization + Bearer ${admin_token} + + + mpaf/tool/fragments/ce/api/header_manager.jmx + + + 1 false 1 - ${adminCMSManagementPercentage} + 100 mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -24949,72 +15472,133 @@ if (testLabel - vars.put("testLabel", "Admin CMS Management"); + vars.put("testLabel", "API Create Customer"); true - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); + + true + + + + false + { + "customer": { + + "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com", + "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "lastname": "Doe" + }, + "password": "test@123" +} + = + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/customers + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/create_customer.jmx + + + customer_id + $.id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + customer_id + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/customers/${customer_id} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_customer.jmx + + + $.id + ${customer_id} + true + false + false + + + + - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} javascript - + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Catalog Browsing"); + + true + - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - + + @@ -25023,7 +15607,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path} + ${base_path}rest/default/V1/categories GET true false @@ -25031,70 +15615,193 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_login/admin_login.jmx + mpaf/tool/fragments/ce/api/get_categories.jmx - + - Welcome - <title>Magento Admin</title> + errors Assertion.response_data false - 2 + 6 + variable + - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - + + search_category_id + $.id + + + BODY + - + - ^.+$ + ^\d+$ Assertion.response_data false 1 variable - admin_form_key + search_category_id - + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories/${search_category_id} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_category.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + + + + + true + 20 + = + true + searchCriteria[page_size] + true + + + true + 1 + = + true + searchCriteria[current_page] + true + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/products + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/get_products.jmx + + + + errors + + Assertion.response_data + false + 6 + variable + + + + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Search"); + + true + + + + - + true - + quick_search_container = true - dummy + searchCriteria[request_name] - + true - ${admin_form_key} + search_term = true - form_key + searchCriteria[filter_groups][0][filters][0][field] - + true - ${admin_password} + Simple = true - login[password] + searchCriteria[filter_groups][0][filters][0][value] - + true - ${admin_user} + 20 = true - login[username] + searchCriteria[page_size] + + + true + 1 + = + true + searchCriteria[current_page] @@ -25104,237 +15811,52 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}rest/default/V1/search + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - mpaf/tool/fragments/ce/admin_cms_management/admin_cms_management.jmx - + mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/ - GET - true - false - true - false - false - - + + $.total_count + 0 + true + false + true + - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/new - GET - true - false - true - false - false - - + + search_product_id + $.items[0].id + + + BODY + - - - - - true - <p>CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> - = - true - content - - - true - - = - true - content_heading - - - true - ${admin_form_key} - = - true - form_key - - - true - - = - true - identifier - - - true - 1 - = - true - is_active - - - true - - = - true - layout_update_xml - - - true - - = - true - meta_description - - - true - - = - true - meta_keywords - - - true - - = - true - meta_title - - - false - {} - = - true - nodes_data - - - true - - = - true - node_ids - - - true - - = - true - page_id - - - true - 1column - = - true - page_layout - - - true - 0 - = - true - store_id[0] - - - true - CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} - = - true - title - - - true - 0 - = - true - website_root - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/cms/page/save/ - POST - true - false - true - false - false - - - - - - You saved the page. - - Assertion.response_data - false - 16 - - - - - 1 - 0 - ${__javaScript(Math.round(${adminCMSManagementDelay}*1000))} - + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + search_product_id + - - + 1 false 1 - ${reviewByCustomerPercentage} + 100 mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -25355,37 +15877,12 @@ if (testLabel - vars.put("testLabel", "Product Review By Customer"); + vars.put("testLabel", "API Checkout"); true - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx @@ -25404,46 +15901,27 @@ vars.putObject("randomIntGenerator", random); - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} + + +import java.util.Random; -emails_list = props.get("customer_emails_list"); +Random random = vars.getObject("randomIntGenerator"); +number = random.nextInt(props.get("simple_products_list").size()); +product = props.get("simple_products_list").get(number); -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); +vars.put("product_url_key", product.get("url_key")); +vars.put("product_id", product.get("id")); +vars.put("product_name", product.get("title")); +vars.put("product_uenc", product.get("uenc")); +vars.put("product_sku", product.get("sku")); + true - + mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - + @@ -25453,57 +15931,122 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/login/ - GET + ${base_path}rest/default/V1/carts + POST true false true false false - mpaf/tool/fragments/ce/common/open_login_page.jmx + mpaf/tool/fragments/ce/api/create_quote.jmx + + quote_id + $ + + + BODY + + - <title>Customer Login</title> + ^\d+$ Assertion.response_data false - 2 + 1 + variable + quote_id - - + + true + - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} + + false + { + "cartItem": { + "sku": "${product_sku}", + "qty":"1", + "quote_id":"${quote_id}" + } +} + = - true - login[password] - - true - + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx + + + + $.sku + ${product_sku} + true + false + false + + + + + + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/carts/${quote_id}/items + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx + + + $[0].sku + ${product_sku} + true + false + false + + + + + + true + + + + false + { + "storeId": 1 +} = - true - send @@ -25513,7 +16056,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/loginPost/ + ${base_path}rest/default/V1/guest-carts/ POST true false @@ -25521,27 +16064,17 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/common/login.jmx + mpaf/tool/fragments/ce/api/create_guest_cart.jmx - - - <title>My Account</title> - - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - + + cart_id + $ + + + BODY + - + ^.+$ @@ -25549,33 +16082,26 @@ vars.put("customer_email", emails_list.get(emails_index)); false 1 variable - addressId + cart_id - - + + + true + - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} + + false + { + "cartItem": { + "sku": "${product_sku}", + "qty":"1", + "quote_id":"${cart_id}" + } +} + = - true - _ @@ -25585,128 +16111,39 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/section/load/ - GET + ${base_path}rest/default/V1/guest-carts/${cart_id}/items + POST true false true false false - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx + mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx - - 1 - - 1 - _counter - - true - true - + + $.quote_id + ^[a-z0-9-]+$ + true + false + false + - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - + - - - - - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - + + true + - - true - ${form_key} - = - true - form_key - - - true - 3 - = - true - ratings[1] - - - true - - = - true - validate_rating - - - true - FirstName - = - true - nickname - - - true - Some Review Title - = - true - title - - - true - Some Review Text + + false + { + "sender": "John Doe", + "recipient": "Jane Roe", + "giftMessage": "Gift Message Text" +} + = - true - detail @@ -25716,7 +16153,7 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}review/product/post/id/${product_id} + ${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message POST true false @@ -25724,42 +16161,26 @@ vars.put("product_sku", product.get("sku")); false false - mpaf/tool/fragments/ce/product_review/product_review.jmx + mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx - - - HTTP/1.1 200 OK - - Assertion.response_headers - false - 16 - + + $ + true + true + false + false + - - + + true + - - true - review,messages - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} + + false + {"address":{"country_id":"US","postcode":"95630"}} = - true - _ @@ -25769,28 +16190,58 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}customer/section/load/ - GET + ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods + POST true false true false false - mpaf/tool/fragments/ce/product_review/load_review.jmx - - - - 1 - 0 - ${__javaScript(Math.round(${reviewDelay}*1000))} - mpaf/tool/fragments/ce/product_review/product_review_pause.jmx - - + mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx + + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "available":true + + Assertion.response_data + false + 2 + + + - - - + + true + + + + false + {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + = + + @@ -25798,81 +16249,55 @@ vars.put("product_sku", product.get("sku")); ${request_protocol} - ${base_path}customer/account/logout/ - GET + ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + POST true false true false false - mpaf/tool/fragments/ce/common/logout.jmx + mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + - You are signed out. + {"payment_methods": Assertion.response_data false - 2 - - - - - - - - 1 - false - 1 - ${apiBasePercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API"); - - true - - - - - - - Content-Type - application/json - - - Accept - */* - - - mpaf/tool/fragments/ce/api/header_manager_before_token.jmx - + 2 + + + - + true false - {"username":"${admin_user}","password":"${admin_password}"} + {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}} = @@ -25883,7 +16308,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/V1/integration/admin/token + ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information POST true false @@ -25891,44 +16316,85 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx - - admin_token + + + + Referer + ${base_path}checkout/onepage/ + + + Content-Type + application/json; charset=UTF-8 + + + X-Requested-With + XMLHttpRequest + + + Accept + application/json + + + + + + + "[0-9]+" + + Assertion.response_data + false + 2 + + + + order_id $ BODY - + - ^[a-z0-9-]+$ + ^\d+$ Assertion.response_data false 1 variable - admin_token + order_id - - - - - Authorization - Bearer ${admin_token} - - - mpaf/tool/fragments/ce/api/header_manager.jmx - - - + + + + + + + + + continue + + false + ${loops} + + ${deadLocksPoolUsers} + ${ramp_period} + 1505803944000 + 1505803944000 + false + + + mpaf/tool/fragments/_system/thread_group.jmx + + 1 false 1 - 100 + ${productGridMassActionPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -25949,30 +16415,99 @@ if (testLabel - vars.put("testLabel", "API Create Customer"); + vars.put("testLabel", "Product Grid Mass Actions"); true - - true - - - - false - { - "customer": { - - "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com", - "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "lastname": "Doe" - }, - "password": "test@123" -} - = - - + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + @@ -25980,40 +16515,80 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/customers - POST + ${base_path}${admin_path} + GET true false true false false - mpaf/tool/fragments/ce/api/create_customer.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - customer_id - $.id - - - BODY - + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + - ^\d+$ + ^.+$ Assertion.response_data false 1 variable - customer_id + admin_form_key - + - + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + @@ -26021,7 +16596,117 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/customers/${customer_id} + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 20 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ GET true false @@ -26029,118 +16714,151 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/check_customer.jmx + mpaf/tool/fragments/ce/admin_browse_products_grid/get_product_pages_count.jmx - - $.id - ${customer_id} + + $.totalRecords + 0 true false - false + true - - + + products_number + $.totalRecords + + + BODY + + + + false + + + var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var productsTotal = Integer.parseInt(vars.get("products_number")); +var pageCountProducts = Math.round(productsTotal/productsPageSize); +vars.put("pages_count_product", String.valueOf(pageCountProducts)); + + + - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); + + +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { +random.setSeed(${seedForRandom}); } - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Product Attribute Management"); - - true - - - - - true - +var productsPageSize = Integer.parseInt(vars.get("products_page_size")); +var totalNumberOfPages = Integer.parseInt(vars.get("pages_count_product")); + +// Randomly select a page. +var randomProductsPage = random.nextInt(totalNumberOfPages) + 1; + +// Get the first and last product id on that page. +var lastProductIdOnPage = randomProductsPage * productsPageSize; +var firstProductIdOnPage = lastProductIdOnPage - productsPageSize + 1; + +var randomProductId1 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId2 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; +var randomProductId3 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; + +vars.put("page_number", String.valueOf(randomProductsPage)); +vars.put("productId1", String.valueOf(randomProductId1)); +vars.put("productId2", String.valueOf(randomProductId2)); +vars.put("productId3", String.valueOf(randomProductId3)); + +var randomQuantity = random.nextInt(1000) + 1; +var randomPrice = random.nextInt(500) + 10; +var randomVisibility = random.nextInt(4) + 1; + +vars.put("quantity", String.valueOf(randomQuantity)); +vars.put("price", String.valueOf(randomPrice)); +vars.put("visibility", String.valueOf(randomVisibility)); + + + + false + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/setup.jmx + + + + - - false - { - "attributeSet": { - "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "sort_order": 500 - }, - "skeletonId": "4" -} + + true + ${admin_form_key} + = + true + form_key + true + + + true + product_listing + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + ${products_page_size} + = + true + paging[pageSize] + true + + + true + ${page_number} = + true + paging[current] + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/products/attribute-sets/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/create_attribute_set.jmx - - - attribute_set_id - $.attribute_set_id - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - attribute_set_id - - - - - - true - - - - false - { - "group": { - "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "attribute_set_id": ${attribute_set_id} - } -} + + true + entity_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true = + true + isAjax + true @@ -26150,58 +16868,75 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attribute-sets/groups - POST + ${base_path}${admin_path}/mui/index/render/ + GET true false true false false - mpaf/tool/fragments/ce/api/create_attribute_group.jmx + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_grid.jmx - - attribute_group_id - $.attribute_group_id - - - BODY - - - + - ^\d+$ + totalRecords Assertion.response_data false - 1 - variable - attribute_set_id + 2 - - true - + + - - false - { - "attribute": { - "attribute_code": "attr_code_${__time()}", - "frontend_labels": [ - { - "store_id": 0, - "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}" - } - ], - "default_value": "default value", - "frontend_input": "textarea", - "is_required": true - } -} + + true + ${productId1} + = + true + selected[0] + + + true + ${productId2} + = + true + selected[1] + + + true + ${productId3} + = + true + selected[2] + true + + + true + true + = + true + filters[placeholder] + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + product_listing = + true + namespace + false @@ -26211,71 +16946,240 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attributes/ - POST + ${base_path}${admin_path}/catalog/product_action_attribute/edit + GET true false true false false - mpaf/tool/fragments/ce/api/create_attribute.jmx + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_update_attributes.jmx - - attribute_id - $.attribute_id - - - BODY - - - - attribute_code - $.attribute_code - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - attribute_id - - - + - ^[a-z0-9-_]+$ + Update Attributes Assertion.response_data false - 1 - variable - attribute_code + 2 - - true - - - - false - { - "attributeSetId": "${attribute_set_id}", - "attributeGroupId": "${attribute_group_id}", - "attributeCode": "${attribute_code}", - "sortOrder": 3 -} - = - - + + + + + true + true + = + true + isAjax + true + + + true + ${admin_form_key} + = + true + form_key + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + true + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + true + + + true + ${price} + = + true + attributes[price] + + + true + ${visibility} + = + true + attributes[visibility] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/validate + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/change_attributes.jmx + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + true + + + true + ${quantity} + = + true + inventory[qty] + + + true + on + = + true + toggle_price + true + + + true + ${price} + = + true + attributes[price] + + + true + on + = + true + toggle_price + true + + + true + ${visibility} + = + true + attributes[visibility] + + + true + on + = + true + toggle_visibility + true + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product_action_attribute/save/store/0/active_tab/attributes + POST + true + false + true + true + false + + + + + + were updated. + + Assertion.response_data + false + 2 + + + + + + + + @@ -26283,33 +17187,36 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/attribute-sets/attributes - POST + ${base_path}${admin_path}/admin/auth/logout/ + GET true false true false false - mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx + mpaf/tool/fragments/ce/setup/admin_logout.jmx - - $ - (\d+) - true - false - false - - - + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + - + 1 false 1 - 100 + ${importProductsPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -26326,32 +17233,103 @@ if (testLabel } javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Product Management"); - - true - + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Import Products"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + - - true - - - - false - { - "product": { - "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", - "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "attributeSetId": 4 - } -} - = - - + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + @@ -26359,89 +17337,78 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products - POST + ${base_path}${admin_path} + GET true false true false false - mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - simple_product_id - $.id - - - BODY - - - - simple_product_sku - $.sku - - - BODY - - - - simple_stock_item_id - $.extension_attributes.stock_item.item_id - - - BODY - - - + - ^\d+$ + Welcome + <title>Magento Admin</title> Assertion.response_data false - 1 - variable - simple_product_id + 2 - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - simple_product_sku - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + - + - ^\d+$ + ^.+$ Assertion.response_data false 1 variable - simple_stock_item_id + admin_form_key - - true - + + - - false - { - "stock_item": { - "manage_stock": true, - "is_in_stock": true, - "qty": ${simple_product_id} - } - } + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} = + true + login[username] @@ -26451,36 +17418,49 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id} - PUT + ${base_path}${admin_path}/admin/dashboard/ + POST true false true false + Java false - mpaf/tool/fragments/ce/api/update_product_stock_info.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - $ - ${simple_stock_item_id} - true - false - false - - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + - - true - - - - true - - = - - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + vars.put("entity", "catalog_product"); +String behavior = "${adminImportProductBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportProductFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_products/setup.jmx + + + + + @@ -26488,7 +17468,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products/${simple_product_sku} + ${base_path}${admin_path}/admin/import/ GET true false @@ -26496,92 +17476,71 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/check_product.jmx + mpaf/tool/fragments/ce/common/import.jmx - - $.sku - ${simple_product_sku} - true - false - false - - - - $.id - ${simple_product_id} - true - false - false - - - - $.extension_attributes.stock_item.item_id - ${simple_stock_item_id} - true - false - false - - - - $.extension_attributes.stock_item.qty - ${simple_product_id} - true - false - false - + + + Import Settings + + Assertion.response_data + false + 2 + - - true - + + - - false - { - "product": { - "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", - "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "visibility": "4", - "type_id": "simple", - "price": "3.62", - "status": "1", - "attribute_set_id": "4", - "custom_attributes": [ - { - "attribute_code": "cost", - "value": "" - }, - { - "attribute_code": "description", - "value": "Description" - } - ], - "extension_attributes":{ - "stock_item":{ - "manage_stock": true, - "is_in_stock": true, - "qty":"100" - } - } , - "media_gallery_entries": - [{ - "id": null, - "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}", - "position":1, - "disabled":false, - "media_type":"image", - "types":["image"], - "content":{ - "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z", - "type": "image/jpeg", - "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg" - } - } - ] - } -} + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + + + true + 10 + = + true + allowed_error_count + + + true + , + = + true + _import_field_separator + + + true + , + = + true + _import_multiple_value_separator @@ -26591,93 +17550,145 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/products + ${base_path}${admin_path}/admin/import/validate POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx + mpaf/tool/fragments/ce/common/import_validate.jmx - - simple_product_id - $.id - - - BODY - - - - simple_product_sku - $.sku - - - BODY - - - - simple_stock_item_id - $.extension_attributes.stock_item.item_id - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - simple_product_id - - - - - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - simple_product_sku - - - + - ^\d+$ + File is valid! To start import process Assertion.response_data false - 1 - variable - simple_stock_item_id + 16 - - true - + + - + true - + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + false + + + true + 10 + = + true + allowed_error_count + false + + + true + , + = + true + _import_field_separator + false + + + true + , = + true + _import_multiple_value_separator + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/start + POST + true + false + true + false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + false + + mpaf/tool/fragments/ce/common/import_save.jmx + + + + Import successfully done + + Assertion.response_data + false + 16 + + + + + + + + + ${request_protocol} - ${base_path}rest/default/V1/products/${simple_product_sku} + ${base_path}${admin_path}/admin/auth/logout/ GET true false @@ -26685,49 +17696,28 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx + mpaf/tool/fragments/ce/setup/admin_logout.jmx - - $.sku - ${simple_product_sku} - true - false - false - - - - $.id - ${simple_product_id} - true - false - false - - - - $.extension_attributes.stock_item.item_id - ${simple_stock_item_id} - true - false - false - - - - $.extension_attributes.stock_item.qty - 100 - true - false - false - - - + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + - + 1 false 1 - 100 + ${importCustomersPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -26748,64 +17738,178 @@ if (testLabel - vars.put("testLabel", "API Process Orders"); + vars.put("testLabel", "Import Customers"); true - - // Each thread gets an equal number of orders, based on how many orders are available. - - int apiProcessOrders = Integer.parseInt("${apiProcessOrders}"); - if (apiProcessOrders > 0) { - ordersPerThread = apiProcessOrders; - } else { - ordersPerThread = 1; - } + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + formKey = vars.get("form_key_storage"); - threadNum = ${__threadNum}; - vars.put("ordersPerThread", String.valueOf(ordersPerThread)); - vars.put("threadNum", String.valueOf(threadNum)); + currentFormKey = getFormKeyFromResponse(); + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); - false - mpaf/tool/fragments/ce/api/process_orders/setup.jmx + true + + - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + - + true - status + = true - searchCriteria[filterGroups][0][filters][0][field] + dummy - + true - Pending + ${admin_form_key} = true - searchCriteria[filterGroups][0][filters][0][value] + form_key - + true - ${ordersPerThread} + ${admin_password} = true - searchCriteria[pageSize] + login[password] - + true - ${threadNum} + ${admin_user} = true - searchCriteria[current_page] + login[username] @@ -26815,33 +17919,47 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/orders - GET + ${base_path}${admin_path}/admin/dashboard/ + POST true false true false + Java false - mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - entity_ids - $.items[*].entity_id - - - BODY - - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + - - entity_ids - order_id - true - mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx + + vars.put("entity", "customer"); +String behavior = "${adminImportCustomerBehavior}"; +vars.put("adminImportBehavior", behavior); +String filepath = "${files_folder}${adminImportCustomerFilePath}"; +vars.put("adminImportFilePath", filepath); + + + true + mpaf/tool/fragments/ce/import_customers/setup.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + - + @@ -26851,30 +17969,177 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/order/${order_id}/invoice + ${base_path}${admin_path}/admin/import/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/import.jmx + + + + Import Settings + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + + + true + 10 + = + true + allowed_error_count + + + true + , + = + true + _import_field_separator + + + true + , + = + true + _import_multiple_value_separator + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/import/validate POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx + mpaf/tool/fragments/ce/common/import_validate.jmx - "\d+" + File is valid! To start import process Assertion.response_data false - 2 + 16 - + - + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${entity} + = + true + entity + + + true + ${adminImportBehavior} + = + true + behavior + + + true + validation-stop-on-errors + = + true + validation_strategy + false + + + true + 10 + = + true + allowed_error_count + false + + + true + , + = + true + _import_field_separator + false + + + true + , + = + true + _import_multiple_value_separator + false + + @@ -26882,35 +18147,78 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/order/${order_id}/ship + ${base_path}${admin_path}/admin/import/start POST true false true false + HttpClient4 + + + + ${adminImportFilePath} + import_file + application/vnd.ms-excel + + + false - mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx + mpaf/tool/fragments/ce/common/import_save.jmx - "\d+" + Import successfully done Assertion.response_data false - 2 + 16 + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + - + 1 false 1 - 100 + ${exportProductsPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -26931,14 +18239,98 @@ if (testLabel - vars.put("testLabel", "API Catalog Browsing"); + vars.put("testLabel", "Export Products"); true - - + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + @@ -26947,7 +18339,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/categories + ${base_path}${admin_path} GET true false @@ -26955,42 +18347,109 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/get_categories.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - + - errors + Welcome + <title>Magento Admin</title> Assertion.response_data false - 6 - variable - + 2 - - search_category_id - $.id - - - BODY - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + - + - ^\d+$ + ^.+$ Assertion.response_data false 1 variable - search_category_id + admin_form_key - - + + + + + true + + = + true + dummy + + + true + ${admin_form_key} + = + true + form_key + + + true + ${admin_password} + = + true + login[password] + + + true + ${admin_user} + = + true + login[username] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + @@ -26999,7 +18458,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/categories/${search_category_id} + ${base_path}${admin_path}/admin/export/ GET true false @@ -27007,541 +18466,574 @@ if (testLabel false false - mpaf/tool/fragments/ce/api/get_category.jmx + mpaf/tool/fragments/ce/common/export.jmx - + - errors + Export Settings Assertion.response_data false - 6 - variable - + 2 - - + + - + + true + form_key + ${admin_form_key} + = + true + + + true + attribute_code + + = + true + + + true + export_filter[allow_message][] + , + = + true + + + true + export_filter[allow_open_amount] + + = + true + + + true + export_filter[category_ids] + 24,25,26,27,28,29,30 + = + true + + + true + export_filter[configurable_variations] + + = + true + + + true + export_filter[cost][] + , + = + true + + + true + export_filter[country_of_manufacture] + + = + true + + + true + export_filter[created_at] + + = + true + + + true + export_filter[custom_design] + + = + true + + + true + export_filter[custom_design_from][] + , + = + true + + + true + export_filter[custom_design_to][] + , + = + true + + + true + export_filter[custom_layout_update] + + = + true + + + true + export_filter[description] + + = + true + + + true + export_filter[email_template] + + = + true + + + true + export_filter[gallery] + + = + true + + + true + export_filter[gift_message_available] + + = + true + + + true + export_filter[gift_wrapping_available] + + = + true + + + true + export_filter[gift_wrapping_price][] + , + = + true + + + true + export_filter[group_price][] + , + = + true + + + true + export_filter[has_options] + + = + true + + + true + export_filter[image] + + = + true + + + true + export_filter[image_label] + + = + true + + + true + export_filter[is_redeemable][] + , + = + true + + + true + export_filter[is_returnable] + + = + true + + + true + export_filter[lifetime][] + , + = + true + + + true + export_filter[links_exist][] + , + = + true + + + true + export_filter[links_purchased_separately][] + , + = + true + + + true + export_filter[links_title] + + = + true + + + true + export_filter[media_gallery] + + = + true + + + true + export_filter[meta_description] + + = + true + + + true + export_filter[meta_keyword] + + = + true + + + true + export_filter[meta_title] + + = + true + + + true + export_filter[minimal_price][] + , + = + true + + + true + export_filter[msrp][] + , + = + true + + + true + export_filter[msrp_display_actual_price_type] + + = + true + + + true + export_filter[name] + + = + true + + + true + export_filter[news_from_date][] + , + = + true + + + true + export_filter[news_to_date][] + , + = + true + + + true + export_filter[old_id][] + , + = + true + + + true + export_filter[open_amount_max][] + , + = + true + + + true + export_filter[open_amount_min][] + , + = + true + + + true + export_filter[options_container] + + = + true + + + true + export_filter[page_layout] + + = + true + + + true + export_filter[price][] + , + = + true + + + true + export_filter[price_type][] + , + = + true + + + true + export_filter[price_view] + + = + true + + + true + export_filter[quantity_and_stock_status] + + = + true + + + true + export_filter[related_tgtr_position_behavior][] + , + = + true + + + true + export_filter[related_tgtr_position_limit][] + , + = + true + + + true + export_filter[required_options] + + = + true + + + true + export_filter[samples_title] + + = + true + + true - 20 + export_filter[shipment_type][] + , = true - searchCriteria[page_size] - true - + true - 1 + export_filter[short_description] + = true - searchCriteria[current_page] - true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/products - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/get_products.jmx - - - - errors - - Assertion.response_data - false - 6 - variable - - - - - - - - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Search"); - - true - - - - - - - + true - quick_search_container + export_filter[sku] + = true - searchCriteria[request_name] - + true - search_term + export_filter[sku_type][] + , = true - searchCriteria[filter_groups][0][filters][0][field] - + true - Simple + export_filter[small_image] + = true - searchCriteria[filter_groups][0][filters][0][value] - + true - 20 + export_filter[small_image_label] + = true - searchCriteria[page_size] - + true - 1 + export_filter[special_from_date][] + , = true - searchCriteria[current_page] - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/search - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/search_for_product_frontend.jmx - - - $.total_count - 0 - true - false - true - - - - search_product_id - $.items[0].id - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - search_product_id - - - - - - - - 1 - false - 1 - 100 - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "API Checkout"); - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/carts - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/create_quote.jmx - - - quote_id - $ - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - quote_id - - - - - - true - - - - false - { - "cartItem": { - "sku": "product_dynamic_${search_product_id}", - "qty":"1", - "quote_id":"${quote_id}" - } -} - + + true + export_filter[special_price][] + , = + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/carts/${quote_id}/items - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx - - - - $.sku - product_dynamic_${search_product_id} - true - false - false - - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/carts/${quote_id}/items - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx - - - $[0].sku - product_dynamic_${search_product_id} - true - false - false - - - - - - true - - - - false - { - "storeId": 1 -} + + true + export_filter[special_to_date][] + , = + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/create_guest_cart.jmx - - - cart_id - $ - - - BODY - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - cart_id - - - - - - true - - - - false - { - "cartItem": { - "sku": "product_dynamic_${search_product_id}", - "qty":"1", - "quote_id":"${cart_id}" - } -} - + + true + export_filter[status] + = + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/items - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx - - - $.quote_id - ^[a-z0-9-]+$ - true - false - false - - - - - - true - - - - false - { - "sender": "John Doe", - "recipient": "Jane Roe", - "giftMessage": "Gift Message Text" -} - + + true + export_filter[tax_class_id] + = + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx - - - $ - true - true - false - false - - - - - - true - - - - false - {"address":{"country_id":"US","postcode":"95630"}} + + true + export_filter[thumbnail] + + = + true + + + true + export_filter[thumbnail_label] + + = + true + + + true + export_filter[tier_price][] + , + = + true + + + true + export_filter[updated_at] + + = + true + + + true + export_filter[upsell_tgtr_position_behavior][] + , + = + true + + + true + export_filter[upsell_tgtr_position_limit][] + , + = + true + + + true + export_filter[url_key] + + = + true + + + true + export_filter[url_path] + + = + true + + + true + export_filter[use_config_allow_message][] + , = + true - - - - - - - ${request_protocol} - - ${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx - - - - - Referer - ${base_path}checkout/onepage/ + + true + export_filter[use_config_email_template][] + , + = + true - - Content-Type - application/json; charset=UTF-8 + + true + export_filter[use_config_is_redeemable][] + , + = + true - - X-Requested-With - XMLHttpRequest + + true + export_filter[use_config_lifetime][] + , + = + true - - Accept - application/json + + true + export_filter[visibility] + + = + true - - - - - - "available":true - - Assertion.response_data - false - 2 - - - - - - true - - - - false - {"addressInformation":{"shipping_address":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}} + + true + export_filter[weight][] + , + = + true + + + true + export_filter[weight_type][] + , + = + true + + + true + frontend_label + = + true @@ -27551,7 +19043,7 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information + ${base_path}${admin_path}/admin/export/export/entity/catalog_product/file_format/csv POST true false @@ -27559,50 +19051,23 @@ if (testLabel false false - mpaf/tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx + mpaf/tool/fragments/ce/export_products/export_products.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - + - {"payment_methods": + Simple Product 1 Assertion.response_data false - 2 + 16 + - - true - - - - false - {"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"12","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}} - = - - + + + @@ -27610,76 +19075,36 @@ if (testLabel ${request_protocol} - ${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information - POST + ${base_path}${admin_path}/admin/auth/logout/ + GET true false true false false - mpaf/tool/fragments/ce/api/checkout_payment_info_place_order.jmx + mpaf/tool/fragments/ce/setup/admin_logout.jmx - - - - Referer - ${base_path}checkout/onepage/ - - - Content-Type - application/json; charset=UTF-8 - - - X-Requested-With - XMLHttpRequest - - - Accept - application/json - - - - - - - "[0-9]+" - - Assertion.response_data - false - 2 - - - - order_id - $ - - - BODY - - - - - ^\d+$ - - Assertion.response_data - false - 1 - variable - order_id - - - + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + - - + 1 false 1 - ${productGridMassActionPercentage} + ${exportCustomersPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -27700,7 +19125,7 @@ if (testLabel - vars.put("testLabel", "Product Grid Mass Actions"); + vars.put("testLabel", "Export Customers"); true @@ -27760,10 +19185,36 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - mpaf/tool/fragments/ce/once_only_controller.jmx - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + @@ -27877,8 +19328,44 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/export/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/common/export.jmx + + + + Export Settings + + Assertion.response_data + false + 2 + + + + + @@ -27887,238 +19374,206 @@ if (testLabel = true form_key + false - + true - product_listing + = true - namespace + attribute_code true - + true = true - search + export_filter[confirmation] true - + true - true + = true - filters[placeholder] + export_filter[created_at] true - + true - 20 + = true - paging[pageSize] + export_filter[created_in] true - + true - 1 + , = true - paging[current] + export_filter[default_billing][] true - + true - entity_id + , = true - sorting[field] + export_filter[default_shipping][] true - + true - asc + = true - sorting[direction] + export_filter[disable_auto_group_change] true - + true - true + , = true - isAjax + export_filter[dob][] true - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_browse_products_grid/get_product_pages_count.jmx - - - $.totalRecords - 0 - true - false - true - - - - products_number - $.totalRecords - - - BODY - - - - false - - - var productsPageSize = Integer.parseInt(vars.get("products_page_size")); -var productsTotal = Integer.parseInt(vars.get("products_number")); -var pageCountProducts = Math.round(productsTotal/productsPageSize); - -vars.put("pages_count_product", String.valueOf(pageCountProducts)); - - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - -import java.util.Random; -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom}); -} -var productsPageSize = Integer.parseInt(vars.get("products_page_size")); -var totalNumberOfPages = Integer.parseInt(vars.get("pages_count_product")); - -// Randomly select a page. -var randomProductsPage = Math.floor((Math.random() * totalNumberOfPages) + 1); - -// Get the first and last product id on that page. -var lastProductIdOnPage = randomProductsPage * productsPageSize; -var firstProductIdOnPage = lastProductIdOnPage - productsPageSize + 1; - -var randomProductId1 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; -var randomProductId2 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; -var randomProductId3 = Math.floor(random.nextInt(productsPageSize)) + firstProductIdOnPage; - -vars.put("page_number", String.valueOf(randomProductsPage)); -vars.put("productId1", String.valueOf(randomProductId1)); -vars.put("productId2", String.valueOf(randomProductId2)); -vars.put("productId3", String.valueOf(randomProductId3)); - -var randomQuantity = Math.floor(Math.random() * 1000) + 1; -var randomPrice = Math.floor(Math.random() * 500) + 10; -var randomVisibility = Math.floor(random.nextInt(4)) + 1; - -vars.put("quantity", String.valueOf(randomQuantity)); -vars.put("price", String.valueOf(randomPrice)); -vars.put("visibility", String.valueOf(randomVisibility)); - - - - - - false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/setup.jmx - - - - - - + true - ${admin_form_key} + = true - form_key + export_filter[email] true - + true - product_listing + = true - namespace + export_filter[firstname] true - + true = true - search + export_filter[gender] true - + true - true + = true - filters[placeholder] + export_filter[group_id] true - + true - ${products_page_size} + = true - paging[pageSize] + export_filter[lastname] true - + true - ${page_number} + = true - paging[current] + export_filter[middlename] true - + true - entity_id + + = + true + export_filter[password_hash] + true + + + true + + = + true + export_filter[prefix] + true + + + true + , + = + true + export_filter[reward_update_notification][] + true + + + true + , + = + true + export_filter[reward_warning_notification][] + true + + + true + + = + true + export_filter[rp_token] + true + + + true + , + = + true + export_filter[rp_token_created_at][] + true + + + true + + = + true + export_filter[store_id] + true + + + true + + = + true + export_filter[suffix] + true + + + true + = true - sorting[field] + export_filter[taxvat] true - + true - asc + = true - sorting[direction] + export_filter[website_id] true - + true - true + = true - isAjax + frontend_label true @@ -28129,75 +19584,116 @@ vars.put("visibility", String.valueOf(randomVisibility)); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}${admin_path}/admin/export/export/entity/customer/file_format/csv + POST true false true false false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_grid.jmx + mpaf/tool/fragments/ce/export_customers/export_customers.jmx - totalRecords + user_1@example.com Assertion.response_data false - 2 + 16 + - + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${apiBasePercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API"); + + true + + + + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx + + + + true + - - true - ${productId1} - = - true - selected[0] - - - true - ${productId2} - = - true - selected[1] - - - true - ${productId3} - = - true - selected[2] - true - - - true - true - = - true - filters[placeholder] - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - product_listing + + false + {"username":"${admin_user}","password":"${admin_password}"} = - true - namespace - false @@ -28207,244 +19703,52 @@ vars.put("visibility", String.valueOf(randomVisibility)); ${request_protocol} - ${base_path}${admin_path}/catalog/product_action_attribute/edit - GET + ${base_path}rest/V1/integration/admin/token + POST true false true false false - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/display_update_attributes.jmx + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx - + + admin_token + $ + + + BODY + + + - Update Attributes + ^[a-z0-9-]+$ Assertion.response_data false - 2 + 1 + variable + admin_token - - - - - true - true - = - true - isAjax - true - - - true - ${admin_form_key} - = - true - form_key - true - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - true - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - ${quantity} - = - true - inventory[qty] - true - - - true - ${price} - = - true - attributes[price] - - - true - ${visibility} - = - true - attributes[visibility] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product_action_attribute/validate - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_browse_products_grid/products_grid_mass_actions/change_attributes.jmx - - - - {"error":false} - - Assertion.response_data - false - 2 - - - - - - - - true - true - = - true - isAjax - false - - - true - ${admin_form_key} - = - true - form_key - false - - - true - 1 - = - true - product[product_has_weight] - true - - - true - 1 - = - true - product[use_config_gift_message_available] - - - true - 1 - = - true - product[use_config_gift_wrapping_available] - true - - - true - ${quantity} - = - true - inventory[qty] - - - true - on - = - true - toggle_price - true - - - true - ${price} - = - true - attributes[price] - - - true - on - = - true - toggle_price - true - - - true - ${visibility} - = - true - attributes[visibility] - - - true - on - = - true - toggle_visibility - true + + + + Authorization + Bearer ${admin_token} - - - - - - ${request_protocol} - - ${base_path}${admin_path}/catalog/product_action_attribute/save/store/0/active_tab/attributes - POST - true - false - true - true - false - - - - - - were updated. - - Assertion.response_data - false - 2 - + mpaf/tool/fragments/ce/api/header_manager.jmx - - - - - + 1 false 1 - ${adminAccountManagementPercentage} + 100 mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -28465,108 +19769,100 @@ if (testLabel - vars.put("testLabel", "Admin Account management"); + vars.put("testLabel", "API Process Orders"); true - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; + + // Each thread gets an equal number of orders, based on how many orders are available. -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} + int apiProcessOrders = Integer.parseInt("${apiProcessOrders}"); + if (apiProcessOrders > 0) { + ordersPerThread = apiProcessOrders; + } else { + ordersPerThread = 1; + } -emails_list = props.get("customer_emails_list"); -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); + threadNum = ${__threadNum}; + vars.put("ordersPerThread", String.valueOf(ordersPerThread)); + vars.put("threadNum", String.valueOf(threadNum)); + + - true - + false + mpaf/tool/fragments/ce/api/process_orders/setup.jmx - - - - - - - - - ${request_protocol} - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_home_page.jmx - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - + + + + + true + status + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + Pending + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + ${ordersPerThread} + = + true + searchCriteria[pageSize] + + + true + ${threadNum} + = + true + searchCriteria[current_page] + + + + + + + + ${request_protocol} + + ${base_path}rest/default/V1/orders + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/api/process_orders/get_orders.jmx + + + entity_ids + $.items[*].entity_id + + + BODY + + + - + + entity_ids + order_id + true + mpaf/tool/fragments/ce/api/process_orders/for_each_order.jmx + + @@ -28576,19 +19872,19 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/login/ - GET + ${base_path}rest/default/V1/order/${order_id}/invoice + POST true false true false false - mpaf/tool/fragments/ce/common/open_login_page.jmx + mpaf/tool/fragments/ce/api/process_orders/create_invoice.jmx - <title>Customer Login</title> + "\d+" Assertion.response_data false @@ -28597,38 +19893,9 @@ vars.put("customer_email", emails_list.get(emails_index)); - + - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - + @@ -28636,7 +19903,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/loginPost/ + ${base_path}rest/default/V1/order/${order_id}/ship POST true false @@ -28644,61 +19911,67 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/common/login.jmx + mpaf/tool/fragments/ce/api/process_orders/create_shipment.jmx - <title>My Account</title> + "\d+" Assertion.response_data false 2 - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - addressId - - - - + + + + + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Product Management"); + + true + + + + + true + - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} + + false + { + "product": { + "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attributeSetId": 4 + } +} = - true - _ @@ -28708,20 +19981,91 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/section/load/ - GET + ${base_path}rest/default/V1/products + POST true false true false false - - + mpaf/tool/fragments/ce/api/create_product_no_custom_attributes.jmx + + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_product_id + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_stock_item_id + + + - - - + + true + + + + false + { + "stock_item": { + "manage_stock": true, + "is_in_stock": true, + "qty": ${simple_product_id} + } + } + = + + @@ -28729,162 +20073,36 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}sales/order/history/ - GET + ${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id} + PUT true false true false false - mpaf/tool/fragments/ce/account_management/my_orders.jmx + mpaf/tool/fragments/ce/api/update_product_stock_info.jmx - - - <title>My Orders</title> - - Assertion.response_data - false - 2 - - - - false - orderId - sales/order/view/order_id/(\d+)/ - $1$ - NOT_FOUND - 1 - + + $ + ${simple_stock_item_id} + true + false + false + - - mpaf/tool/fragments/ce/account_management/if_orders.jmx - "${orderId}" != "NOT_FOUND" - false - - - - - - - - - - - ${request_protocol} - - ${base_path}sales/order/view/order_id/${orderId} - GET - true - false - true - false - false - - - - - - <title>Order # - - Assertion.response_data - false - 2 - - - - false - shipment_tab - sales/order/shipment/order_id/(\d+)..Order Shipments - $1$ - NOT_FOUND - 1 - - - - - May not have shipped - "${shipment_tab}" != "NOT_FOUND" - false - - - - - - - - - - - ${request_protocol} - - ${base_path}sales/order/shipment/order_id/${orderId} - GET - true - false - true - false - false - - - - - - Track this shipment - - Assertion.response_data - false - 2 - - - - false - popupLink - popupWindow": {"windowURL":"([^'"]+)", - $1$ - - 1 - - - - - - + + true + + + + true + + = - - - - - ${request_protocol} - - ${popupLink} - GET - true - false - true - false - false - - - - - - <title>Tracking Information</title> - - Assertion.response_data - false - 2 - - - - - - - - - + @@ -28892,7 +20110,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}downloadable/customer/products + ${base_path}rest/default/V1/products/${simple_product_sku} GET true false @@ -28900,46 +20118,94 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/account_management/my_downloadable_products.jmx + mpaf/tool/fragments/ce/api/check_product.jmx - - - <title>My Downloadable Products</title> - - Assertion.response_data - false - 2 - + + $.sku + ${simple_product_sku} + true + false + false + - - false - orderId - sales/order/view/order_id/(\d+)/ - $1$ - NOT_FOUND - 1 - + + $.id + ${simple_product_id} + true + false + false + - - false - linkId - downloadable/download/link/id/(\d+)/ - $1$ - - 1 - + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + ${simple_product_id} + true + false + false + - - mpaf/tool/fragments/ce/account_management/if_downloadables.jmx - "${orderId}" != "NOT_FOUND" - false - - - - - + + true + + + + false + { + "product": { + "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}", + "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "visibility": "4", + "type_id": "simple", + "price": "3.62", + "status": "1", + "attribute_set_id": "4", + "custom_attributes": [ + { + "attribute_code": "cost", + "value": "" + }, + { + "attribute_code": "description", + "value": "Description" + } + ], + "extension_attributes":{ + "stock_item":{ + "manage_stock": true, + "is_in_stock": true, + "qty":"100" + } + } , + "media_gallery_entries": + [{ + "id": null, + "label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "position":1, + "disabled":false, + "media_type":"image", + "types":["image"], + "content":{ + "base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z", + "type": "image/jpeg", + "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg" + } + } + ] + } +} + = + + @@ -28947,30 +20213,85 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}sales/order/view/order_id/${orderId} - GET + ${base_path}rest/default/V1/products + POST true false true false false - mpaf/tool/fragments/ce/account_management/view_downloadable_products.jmx + mpaf/tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx - + + simple_product_id + $.id + + + BODY + + + + simple_product_sku + $.sku + + + BODY + + + + simple_stock_item_id + $.extension_attributes.stock_item.item_id + + + BODY + + + - <title>Order # + ^\d+$ Assertion.response_data false - 2 + 1 + variable + simple_product_id + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + simple_product_sku + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + simple_stock_item_id - - - + + true + + + + true + + = + + @@ -28978,7 +20299,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}downloadable/download/link/id/${linkId} + ${base_path}rest/default/V1/products/${simple_product_sku} GET true false @@ -28986,13 +20307,91 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/account_management/download_product.jmx - + mpaf/tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx + + + $.sku + ${simple_product_sku} + true + false + false + + + + $.id + ${simple_product_id} + true + false + false + + + + $.extension_attributes.stock_item.item_id + ${simple_stock_item_id} + true + false + false + + + + $.extension_attributes.stock_item.qty + 100 + true + false + false + + + + - - - + + 1 + false + 1 + 100 + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "API Product Attribute Management"); + + true + + + + + true + + + + false + { + "attributeSet": { + "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "sort_order": 500 + }, + "skeletonId": "4" +} + = + + @@ -29000,55 +20399,52 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}wishlist - GET + ${base_path}rest/default/V1/products/attribute-sets/ + POST true false true false false - + mpaf/tool/fragments/ce/api/create_attribute_set.jmx - + + attribute_set_id + $.attribute_set_id + + + BODY + + + - <title>My Wish List</title> + ^\d+$ Assertion.response_data false - 2 + 1 + variable + attribute_set_id - - false - wishlistId - wishlist/index/update/wishlist_id/([^'"]+)/ - $1$ - - 1 - mpaf/tool/fragments/ce/account_management/my_wish_list.jmx - - - - false - buttonTitle - Update Wish List - FOUND - NOT_FOUND - 1 - - - - mpaf/tool/fragments/ce/account_management/if_wishlist.jmx - "${buttonTitle}" === "FOUND" - false - - - - - + + true + + + + false + { + "group": { + "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}", + "attribute_set_id": ${attribute_set_id} + } +} + = + + @@ -29056,51 +20452,58 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}wishlist/index/share/wishlist_id/${wishlistId}/ - GET + ${base_path}rest/default/V1/products/attribute-sets/groups + POST true false true false false - mpaf/tool/fragments/ce/account_management/share_wish_list.jmx + mpaf/tool/fragments/ce/api/create_attribute_group.jmx - + + attribute_group_id + $.attribute_group_id + + + BODY + + + - <title>Wish List Sharing</title> + ^\d+$ Assertion.response_data false - 2 + 1 + variable + attribute_set_id - - + + true + - - true - ${form_key} - = - true - form_key - true - - - true - ${customer_email} - = - true - emails - - - true - [TEST] See my wishlist!!! + + false + { + "attribute": { + "attribute_code": "attr_code_${__time()}", + "frontend_labels": [ + { + "store_id": 0, + "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}" + } + ], + "default_value": "default value", + "frontend_input": "textarea", + "is_required": true + } +} = - true - message @@ -29110,7 +20513,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}wishlist/index/send/wishlist_id/${wishlistId}/ + ${base_path}rest/default/V1/products/attributes/ POST true false @@ -29118,23 +20521,63 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/account_management/send_wish_list.jmx + mpaf/tool/fragments/ce/api/create_attribute.jmx - + + attribute_id + $.attribute_id + + + BODY + + + + attribute_code + $.attribute_code + + + BODY + + + - <title>My Wish List</title> + ^\d+$ Assertion.response_data false - 2 + 1 + variable + attribute_id + + + + + ^[a-z0-9-_]+$ + + Assertion.response_data + false + 1 + variable + attribute_code - - - - + + true + + + + false + { + "attributeSetId": "${attribute_set_id}", + "attributeGroupId": "${attribute_group_id}", + "attributeCode": "${attribute_code}", + "sortOrder": 3 +} + = + + @@ -29142,34 +20585,35 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/logout/ - GET + ${base_path}rest/default/V1/products/attribute-sets/attributes + POST true false true false false - mpaf/tool/fragments/ce/common/logout.jmx + mpaf/tool/fragments/ce/api/add_attribute_to_attribute_set.jmx - - - You are signed out. - - Assertion.response_data - false - 2 - + + $ + (\d+) + true + false + false + + + - + 1 false 1 - ${browseCatalogByCustomerPercentage} + ${adminProductCreationPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -29190,111 +20634,97 @@ if (testLabel - vars.put("testLabel", "Catalog Browsing By Customer"); + vars.put("testLabel", "Admin Create Product"); true - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; - -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } -vars.putObject("randomIntGenerator", random); - - - - true - - - - - -import java.util.Random; + formKey = vars.get("form_key_storage"); -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("category_url_keys_list").size()); + currentFormKey = getFormKeyFromResponse(); -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } - - - false - mpaf/tool/fragments/ce/common/extract_category_setup.jmx - + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); } -vars.put("customer_email", emails_list.get(emails_index)); +vars.put("admin_user", adminUser); + true + - + @@ -29304,7 +20734,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/login/ + ${base_path}${admin_path} GET true false @@ -29312,49 +20742,70 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/common/open_login_page.jmx + mpaf/tool/fragments/ce/admin_login/admin_login.jmx - + - <title>Customer Login</title> + Welcome + <title>Magento Admin</title> Assertion.response_data false 2 + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + - + - + true - ${form_key} + = true - form_key + dummy - + true - ${customer_email} + ${admin_form_key} = true - login[username] + form_key true - ${customer_password} + ${admin_password} = true login[password] - + true - + ${admin_user} = true - send + login[username] @@ -29364,69 +20815,156 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/account/loginPost/ + ${base_path}${admin_path}/admin/dashboard/ POST true false true false + Java false - mpaf/tool/fragments/ce/common/login.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - - <title>My Account</title> + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + mpaf/tool/fragments/ce/admin_create_product/get_related_product_id.jmx + import org.apache.jmeter.samplers.SampleResult; +import java.util.Random; +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} +relatedIndex = random.nextInt(props.get("simple_products_list").size()); +vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); + + + true + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + Content-Type + application/json + + + Accept + */* + + + mpaf/tool/fragments/ce/api/header_manager_before_token.jmx + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - + + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/api/admin_token_retrieval.jmx + + + admin_token + $ + + + BODY + - + - ^.+$ + ^[a-z0-9-]+$ Assertion.response_data false 1 variable - addressId + admin_token - + + + + + Authorization + Bearer ${admin_token} + + + mpaf/tool/fragments/ce/api/header_manager.jmx + + + - - true - + + false + mycolor = true - sections + searchCriteria[filterGroups][0][filters][0][value] - - true - false + + false + attribute_code = true - update_section_id + searchCriteria[filterGroups][0][filters][0][field] - - true - ${__time()}${__Random(1,1000000)} + + false + mysize = true - _ + searchCriteria[filterGroups][0][filters][1][value] + + + false + attribute_code + = + true + searchCriteria[filterGroups][0][filters][1][field] @@ -29436,7 +20974,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}customer/section/load/ + ${base_path}rest/default/V1/products/attributes GET true false @@ -29444,41 +20982,57 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - - - - - - - - - - - - ${request_protocol} - - ${base_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_home_page.jmx - - - - <title>Home page</title> - - Assertion.response_data - false - 2 - - - + mpaf/tool/fragments/ce/admin_create_product/get_product_attributes.jmx + + + product_attributes + $.items + + + BODY + + + + javascript + + + + +var attributesData = JSON.parse(vars.get("product_attributes")), +maxOptions = 2; + +attributes = []; +for (i in attributesData) { + if (i >= 2) { + break; + } + var data = attributesData[i], + attribute = { + "id": data.attribute_id, + "code": data.attribute_code, + "label": data.default_frontend_label, + "options": [] + }; + + var processedOptions = 0; + for (optionN in data.options) { + var option = data.options[optionN]; + if (parseInt(option.value) > 0 && processedOptions < maxOptions) { + processedOptions++; + attribute.options.push(option); + } + } + attributes.push(attribute); +} + +vars.putObject("product_attributes", attributes); + + + + + - + @@ -29488,7 +21042,7 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path}${category_url_key}${url_suffix} + ${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter} GET true false @@ -29496,474 +21050,1019 @@ vars.put("customer_email", emails_list.get(emails_index)); false false - mpaf/tool/fragments/ce/common/open_category.jmx + mpaf/tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx + - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - + false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> + attribute_set_id + catalog\/product_set\/edit\/id\/([\d]+)\/"[\D\d]*Attribute Set 1 $1$ 1 - simple_product_1_url_key - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - + + false + + + import org.apache.commons.codec.binary.Base64; + +byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes()); +vars.put("attribute_set_filter", new String(encodedBytes)); + + + - - true - 2 - mpaf/tool/fragments/ce/loop_controller.jmx + + mpaf/tool/fragments/ce/simple_controller.jmx + - - 1 - - 1 - _counter - - true - true - - - - - + + import org.apache.jmeter.samplers.SampleResult; import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); +Random random = new Random(); +if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom}); +} number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); +simpleList = props.get("simple_products_list").get(number); +vars.put("simple_product_1_id", simpleList.get("id")); +vars.put("simple_product_1_name", simpleList.get("title")); + +do { + number1 = random.nextInt(props.get("simple_products_list").size()); +} while(number == number1); +simpleList = props.get("simple_products_list").get(number1); +vars.put("simple_product_2_id", simpleList.get("id")); +vars.put("simple_product_2_name", simpleList.get("title")); + +number2 = random.nextInt(props.get("configurable_products_list").size()); +configurableList = props.get("configurable_products_list").get(number2); +vars.put("configurable_product_1_id", configurableList.get("id")); +vars.put("configurable_product_1_url_key", configurableList.get("url_key")); +vars.put("configurable_product_1_name", configurableList.get("title")); + +//Additional category to be added +//int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); +//vars.put("category_additional", (categoryId+1).toString()); +//New price +vars.put("price_new", "9999"); +//New special price +vars.put("special_price_new", "8888"); +//New quantity +vars.put("quantity_new", "100600"); +vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}"); -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx + mpaf/tool/fragments/ce/admin_create_product/setup.jmx - - - + + mpaf/tool/fragments/ce/admin_create_product/create_bundle_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 42 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + + + true + option title one + = + true + bundle_options[bundle_options][0][title] + + + true + + = + true + bundle_options[bundle_options][0][option_id] + + + true + + = + true + bundle_options[bundle_options][0][delete] + + + true + select + = + true + bundle_options[bundle_options][0][type] + + + true + 1 + = + true + bundle_options[bundle_options][0][required] + + + true + 0 + = + true + bundle_options[bundle_options][0][position] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][option_id] + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][0][bundle_selections][0][product_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][delete] + + + true + 25 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][0][position] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][option_id] + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][0][bundle_selections][1][product_id] + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][delete] + + + true + 10.99 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][position] + + + true + option title two + = + true + bundle_options[bundle_options][1][title] + + + true + + = + true + bundle_options[bundle_options][1][option_id] + + + true + + = + true + bundle_options[bundle_options][1][delete] + + + true + select + = + true + bundle_options[bundle_options][1][type] - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("configurable_products_list").size()); -product = props.get("configurable_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - - - - + + true + 1 + = + true + bundle_options[bundle_options][1][required] - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - - - 1 - false - 1 - ${addToCartByCustomerPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Add To Cart By Customer"); - - true - - - - - - - 30 - ${host} - / - false - 0 - true - true - - - ${form_key} - ${host} - ${base_path} - false - 0 - true - true - - - true - mpaf/tool/fragments/ce/http_cookie_manager.jmx - - - - mpaf/tool/fragments/ce/common/init_random_generator_setup.jmx - -import java.util.Random; - -Random random = new Random(); -if (${seedForRandom} > 0) { - random.setSeed(${seedForRandom} + ${__threadNum}); -} - -vars.putObject("randomIntGenerator", random); - - - - true - - - - - mpaf/tool/fragments/ce/common/init_total_products_in_cart_setup.jmx - -vars.put("totalProductsAdded", "0"); - - - - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("category_url_keys_list").size()); - -vars.put("category_url_key", props.get("category_url_keys_list").get(number)); -vars.put("category_name", props.get("category_names_list").get(number)); - - - - false - mpaf/tool/fragments/ce/common/extract_category_setup.jmx - - - - mpaf/tool/fragments/ce/get_customer_email.jmx - import org.apache.jmeter.samplers.SampleResult; - -String siterator = vars.get("customer_emails_index"); -int iterator; -if(siterator == null){ - iterator = 0; - vars.put("customer_emails_index", "0"); -} else { - iterator = Integer.parseInt(siterator); - iterator ++; - vars.put("customer_emails_index", iterator.toString()); -} - -emails_list = props.get("customer_emails_list"); - -threadsNumber = ctx.getThreadGroup().getNumThreads(); -emailsCount = emails_list.size(); -if (threadsNumber > emailsCount) { - log.error(" There are not enough customers for this scenario."); -} else { - clusterLength = Math.round(emailsCount / threadsNumber); - threadNum = ctx.getThreadNum(); - emails_index = clusterLength * threadNum + iterator; - maxLimit = clusterLength * (threadNum + 1); - if (emails_index >= maxLimit) { - iterator = 0; - emails_index = clusterLength * threadNum + iterator; - vars.put("customer_emails_index", iterator.toString()); - } -} -vars.put("customer_email", emails_list.get(emails_index)); - - - true - - - - - - - - - - - - ${request_protocol} - - ${base_path}customer/account/login/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_login_page.jmx - - - - <title>Customer Login</title> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${form_key} - = - true - form_key - - - true - ${customer_email} - = - true - login[username] - - - true - ${customer_password} - = - true - login[password] - - - true - - = - true - send - - - - - - - - ${request_protocol} - - ${base_path}customer/account/loginPost/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/common/login.jmx - - - - <title>My Account</title> - - Assertion.response_data - false - 2 - - - - false - addressId - customer/address/edit/id/([^'"]+)/ - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - addressId - - - - - - - - true - - = - true - sections - - - true - false - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - - - - - - + + true + 1 + = + true + bundle_options[bundle_options][1][position] + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][option_id] + true + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][1][bundle_selections][0][product_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][delete] + true + + + true + 5.00 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][position] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][option_id] + true + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][1][bundle_selections][1][product_id] + true + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][delete] + true + + + true + 7.00 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + true + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + true + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][position] + true + + + true + 2 + = + true + affect_bundle_product_selections + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + @@ -29971,19 +22070,19 @@ vars.put("customer_email", emails_list.get(emails_index)); ${request_protocol} - ${base_path} - GET + ${base_path}${admin_path}/catalog/product/validate/set/4/ + POST true false true false false - mpaf/tool/fragments/ce/common/open_home_page.jmx + - <title>Home page</title> + {"error":false} Assertion.response_data false @@ -29991,389 +22090,911 @@ vars.put("customer_email", emails_list.get(emails_index)); - - - - - - - - - - ${request_protocol} - - ${base_path}${category_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/open_category.jmx - - - - <span class="base" data-ui-id="page-title">${category_name}</span> - - Assertion.response_data - false - 6 - - - - false - category_id - <li class="item category([^'"]+)">\s*<strong>${category_name}</strong>\s*</li> - $1$ - - 1 - simple_product_1_url_key - - - - - ^[0-9]+$ - - Assertion.response_data - false - 1 - variable - category_id - - - - - - true - 2 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("simple_products_list").size()); -product = props.get("simple_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx - - - - mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx - -productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); -productsAdded = productsAdded + 1; - -vars.put("totalProductsAdded", String.valueOf(productsAdded)); - - - - true - - - - - - + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 42 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[configurable_variations] + + + true + 1 + = + true + affect_configurable_product_attributes + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - - - - true - ${product_id} - = - true - product - - - true - - = - true - related_product - - - true - 1 - = - true - qty - - - true - ${form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}checkout/cart/add/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - true - cart,messages - = - true - sections - - - true - true - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/load_cart_section.jmx - - - - You added ${product_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - This product is out of stock. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":${totalProductsAdded} - - Assertion.response_data - false - 2 - - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - true - 1 - mpaf/tool/fragments/ce/loop_controller.jmx - - - 1 - - 1 - _counter - - true - true - - - - - -import java.util.Random; - -Random random = vars.getObject("randomIntGenerator"); -number = random.nextInt(props.get("configurable_products_list").size()); -product = props.get("configurable_products_list").get(number); - -vars.put("product_url_key", product.get("url_key")); -vars.put("product_id", product.get("id")); -vars.put("product_name", product.get("title")); -vars.put("product_uenc", product.get("uenc")); -vars.put("product_sku", product.get("sku")); - - - - true - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx - - - - mpaf/tool/fragments/ce/loops/update_products_added_counter.jmx - -productsAdded = Integer.parseInt(vars.get("totalProductsAdded")); -productsAdded = productsAdded + 1; - -vars.put("totalProductsAdded", String.valueOf(productsAdded)); - - - - true - - - - - - + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + new-variations-attribute-set-id + + + true + 0 + = + true + product[shipment_type] + false + + + true + option title one + = + true + bundle_options[bundle_options][0][title] + false + + + true + + = + true + bundle_options[bundle_options][0][option_id] + false + + + true + + = + true + bundle_options[bundle_options][0][delete] + false + + + true + select + = + true + bundle_options[bundle_options][0][type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][required] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][position] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][0][bundle_selections][0][product_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][0][delete] + false + + + true + 25 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_value] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][0][position] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][0][bundle_selections][1][product_id] + false + + + true + + = + true + bundle_options[bundle_options][0][bundle_selections][1][delete] + false + + + true + 10.99 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][0][bundle_selections][1][position] + false + + + true + option title two + = + true + bundle_options[bundle_options][1][title] + false + + + true + + = + true + bundle_options[bundle_options][1][option_id] + false + + + true + + = + true + bundle_options[bundle_options][1][delete] + false + + + true + select + = + true + bundle_options[bundle_options][1][type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][required] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][position] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][option_id] + false + + + true + ${simple_product_1_id} + = + true + bundle_options[bundle_options][1][bundle_selections][0][product_id] + false - - - - - ${request_protocol} - - ${base_path}${product_url_key}${url_suffix} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx - - - - <span>In stock</span> - - Assertion.response_data - false - 2 - - - - - - true - 1 - mpaf/tool/fragments/ce/common/get_configurable_product_options.jmx - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][0][delete] + false + + + true + 5.00 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][0][position] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][option_id] + false + + + true + ${simple_product_2_id} + = + true + bundle_options[bundle_options][1][bundle_selections][1][product_id] + false + + + true + + = + true + bundle_options[bundle_options][1][bundle_selections][1][delete] + false + + + true + 7.00 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_value] + false + + + true + 0 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_price_type] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty] + false + + + true + 1 + = + true + bundle_options[bundle_options][1][bundle_selections][1][position] + false + + + true + 2 + = + true + affect_bundle_product_selections + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 = + true + links[crosssell][0][position] @@ -30383,7 +23004,7 @@ vars.put("totalProductsAdded", String.valueOf(productsAdded)); ${request_protocol} - ${base_path}rest/V1/integration/admin/token + ${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/ POST true false @@ -30393,865 +23014,30 @@ vars.put("totalProductsAdded", String.valueOf(productsAdded)); - - admin_token - $ - - - BODY - - - + - ^[a-z0-9-]+$ - - Assertion.response_data - false - 1 - variable - admin_token - - - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/configurable-products/${product_sku}/options/all - GET - true - false - true - false - false - - - - - attribute_ids - $.[*].attribute_id - NO_VALUE - - BODY - - - - option_values - $.[*].values[0].value_index - NO_VALUE - - BODY - - - - - - - - - - true - ${product_id} - = - true - product - - - true - - = - true - related_product - - - true - 1 - = - true - qty - - - true - ${form_key} - = - true - form_key - - - - - - - - ${request_protocol} - - ${base_path}checkout/cart/add/ - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx - - - false - - - - try { - attribute_ids = vars.get("attribute_ids"); - option_values = vars.get("option_values"); - attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", ""); - option_values = option_values.replace("[","").replace("]","").replace("\"", ""); - attribute_ids_array = attribute_ids.split(","); - option_values_array = option_values.split(","); - args = ctx.getCurrentSampler().getArguments(); - it = args.iterator(); - while (it.hasNext()) { - argument = it.next(); - if (argument.getStringValue().contains("${")) { - args.removeArgument(argument.getName()); - } - } - for (int i = 0; i < attribute_ids_array.length; i++) { - ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]); - } - } catch (Exception e) { - log.error("eror…", e); - } - - mpaf/tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - true - cart,messages - = - true - sections - - - true - true - = - true - update_section_id - - - true - ${__time()}${__Random(1,1000000)} - = - true - _ - - - - - - - - ${request_protocol} - - ${base_path}customer/section/load/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/load_cart_section.jmx - - - - You added ${product_name} to your shopping cart. - - Assertion.response_data - false - 2 - - - - - This product is out of stock. - - Assertion.response_data - false - 6 - - - - - \"summary_count\":${totalProductsAdded} - - Assertion.response_data - false - 2 - - - - - - - X-Requested-With - XMLHttpRequest - - - mpaf/tool/fragments/ce/common/http_header_manager_ajax.jmx - - - - - - - - 1 - false - 1 - ${importProductsPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Import Products"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - + You saved the product + option title one + option title two + ${simple_product_2_name} + ${simple_product_1_name} + + + Assertion.response_data + false + 2 + - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - + - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - + mpaf/tool/fragments/ce/simple_controller.jmx - - - vars.put("entity", "catalog_product"); -String behavior = "${adminImportProductBehavior}"; -vars.put("adminImportBehavior", behavior); -String filepath = "${files_folder}${adminImportProductFilePath}"; -vars.put("adminImportFilePath", filepath); - - - true - mpaf/tool/fragments/ce/import_products/setup.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/import.jmx - - - - Import Settings - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${entity} - = - true - entity - - - true - ${adminImportBehavior} - = - true - behavior - - - true - validation-stop-on-errors - = - true - validation_strategy - - - true - 10 - = - true - allowed_error_count - - - true - , - = - true - _import_field_separator - - - true - , - = - true - _import_multiple_value_separator - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/validate - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel - - - - false - - mpaf/tool/fragments/ce/common/import_validate.jmx - - - - File is valid! To start import process - - Assertion.response_data - false - 16 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - ${entity} - = - true - entity - - - true - ${adminImportBehavior} - = - true - behavior - - - true - validation-stop-on-errors - = - true - validation_strategy - false - - - true - 10 - = - true - allowed_error_count - false - - - true - , - = - true - _import_field_separator - false - - - true - , - = - true - _import_multiple_value_separator - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/start - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel - - - - false - - mpaf/tool/fragments/ce/common/import_save.jmx - - - - Import successfully done - - Assertion.response_data - false - 16 - - - - - - - - - 1 - false - 1 - ${importCustomersPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Import Customers"); - - true - - - - - vars.put("entity", "customer"); -String behavior = "${adminImportCustomerBehavior}"; -vars.put("adminImportBehavior", behavior); -String filepath = "${files_folder}${adminImportCustomerFilePath}"; -vars.put("adminImportFilePath", filepath); - - - true - mpaf/tool/fragments/ce/import_customers/setup.jmx - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - + + - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - + @@ -31259,25 +23045,28 @@ vars.put("adminImportFilePath", filepath); ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ - POST + ${base_path}${admin_path}/catalog/product/ + GET true false true false - Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - + mpaf/tool/fragments/ce/admin_create_product/open_catalog_grid.jmx - + + + records found + + Assertion.response_data + false + 2 + + + + + @@ -31287,7 +23076,7 @@ vars.put("adminImportFilePath", filepath); ${request_protocol} - ${base_path}${admin_path}/admin/import/ + ${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/ GET true false @@ -31295,11 +23084,11 @@ vars.put("adminImportFilePath", filepath); false false - mpaf/tool/fragments/ce/common/import.jmx + mpaf/tool/fragments/ce/admin_create_product/new_configurable.jmx - + - Import Settings + New Product Assertion.response_data false @@ -31308,368 +23097,506 @@ vars.put("adminImportFilePath", filepath); - + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + 1 + = + true + affect_configurable_product_attributes + true + true ${admin_form_key} = true form_key - false + true - + true - ${entity} + ${attribute_set_id} = true - entity + new-variations-attribute-set-id + true - + true - ${adminImportBehavior} + 1 = true - behavior + product[affect_product_custom_options] + true - + true - validation-stop-on-errors + ${attribute_set_id} = true - validation_strategy + product[attribute_set_id] + true - + true - 10 + 4 = true - allowed_error_count + product[category_ids][0] + true - + true - , + = true - _import_field_separator + product[custom_layout_update] + true - + true - , + = true - _import_multiple_value_separator + product[description] + true - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/validate - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel + + true + 0 + = + true + product[gift_message_available] + true - - - false - - mpaf/tool/fragments/ce/common/import_validate.jmx - - - - File is valid! To start import process - - Assertion.response_data - false - 16 - - - - - - - - + true - ${admin_form_key} + 1 = true - form_key - false + product[gift_wrapping_available] + true - + true - ${entity} + = true - entity + product[gift_wrapping_price] + true - + true - ${adminImportBehavior} + = true - behavior + product[image] + true - + true - validation-stop-on-errors + 2 = true - validation_strategy - false + product[is_returnable] + true - + true - 10 + ${configurable_sku} - Meta Description = true - allowed_error_count - false + product[meta_description] + true - + true - , + ${configurable_sku} - Meta Keyword = true - _import_field_separator - false + product[meta_keyword] + true - + true - , + ${configurable_sku} - Meta Title = true - _import_multiple_value_separator - false + product[meta_title] + true - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/import/start - POST - true - false - true - false - HttpClient4 - - - - ${adminImportFilePath} - import_file - application/vnd.ms-excel + + true + ${configurable_sku} + = + true + product[name] + true - - - false - - mpaf/tool/fragments/ce/common/import_save.jmx - - - - Import successfully done - - Assertion.response_data - false - 16 - - - - - - - - - 1 - false - 1 - ${exportProductsPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx - - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx - - - - vars.put("testLabel", "Export Products"); - - true - - - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx - - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - - - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - + + true + container2 + = + true + product[options_container] + true + + + true + ${price_new} + = + true + product[price] + true + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + true + + + true + 1000 + = + true + product[quantity_and_stock_status][qty] + true + + + true + + = + true + product[short_description] + true + + + true + ${configurable_sku} + = + true + product[sku] + true + + + true + + = + true + product[small_image] + true + + + true + ${special_price_new} + = + true + product[special_price] + true + + + true + 1 + = + true + product[status] + true + + + true + 0 + = + true + product[stock_data][backorders] + true + + + true + 1 + = + true + product[stock_data][deferred_stock_update] + true + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + true + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + true + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + true + + + true + 1 + = + true + product[stock_data][manage_stock] + true + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + true + + + true + 0 + = + true + product[stock_data][min_qty] + true + + + true + 1 + = + true + product[stock_data][min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_backorders] + true + + + true + 1 + = + true + product[stock_data][use_config_deferred_stock_update] + true + + + true + 1 + = + true + product[stock_data][use_config_enable_qty_increments] + true + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + true + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + true + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + true + + + true + 2 + = + true + product[tax_class_id] + true + + true = true - dummy + product[thumbnail] + true - + true - ${admin_form_key} + = true - form_key + product[url_key] + true - + true - ${admin_password} + 1 = true - login[password] + product[use_config_gift_message_available] + true - + true - ${admin_user} + 1 = true - login[username] + product[use_config_gift_wrapping_available] + true + + + true + 1 + = + true + product[use_config_is_returnable] + true + + + true + 4 + = + true + product[visibility] + true + + + true + 1 + = + true + product[website_ids][1] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] @@ -31679,610 +23606,7787 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/dashboard/ + ${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/ POST true false true false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/export/ - GET - true - false - true - false false - mpaf/tool/fragments/ce/common/export.jmx + mpaf/tool/fragments/ce/admin_create_product/configurable_validate.jmx - + - Export Settings + {"error":false} Assertion.response_data false 2 + + + javascript + + + + +attributes = vars.getObject("product_attributes"); + +for (i in attributes) { + var attribute = attributes[i]; + sampler.addArgument("attribute_codes[" + i + "]", attribute.code); + sampler.addArgument("attributes[" + i + "]", attribute.id); + sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); + addConfigurableAttributeData(attribute); +} + +addConfigurableMatrix(attributes); + +function addConfigurableAttributeData(attribute) { + var attributeId = attribute.id; + + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); + attribute.options.forEach(function (option, index) { + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); + }); +} + +/** + * Build 4 simple products for Configurable + */ +function addConfigurableMatrix(attributes) { + + var attribute1 = attributes[0], + attribute2 = attributes[1], + productIndex = 1, + products = []; + var variationNames = []; + attribute1.options.forEach(function (option1) { + attribute2.options.forEach(function (option2) { + var productAttributes = {}, + namePart = option1.label + "+" + option2.label, + variationKey = option1.value + "-" + option2.value; + productAttributes[attribute1.code] = option1.value; + productAttributes[attribute2.code] = option2.value; + + variationNames.push(namePart + " - " + vars.get("configurable_sku")); + var product = { + "id": null, + "name": namePart + " - " + vars.get("configurable_sku"), + "sku": namePart + " - " + vars.get("configurable_sku"), + "status": 1, + "price": "100", + "price_currency": "$", + "price_string": "$100", + "weight": "6", + "qty": "50", + "variationKey": variationKey, + "configurable_attribute": JSON.stringify(productAttributes), + "thumbnail_image": "", + "media_gallery": {"images": {}}, + "image": [], + "was_changed": true, + "canEdit": 1, + "newProduct": 1, + "record_id": productIndex + }; + productIndex++; + products.push(product); + }); + }); + + sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products)); + vars.putObject("configurable_variations_assertion", variationNames); +} + + mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + - + - + true - form_key - ${admin_form_key} + true = true + ajax + false - + true - attribute_code - + true = true + isAjax + false - + true - export_filter[allow_message][] - , + 1 = true + affect_configurable_product_attributes + true - + true - export_filter[allow_open_amount] - + ${admin_form_key} = true + form_key + true - + true - export_filter[category_ids] - 24,25,26,27,28,29,30 + ${attribute_set_id} = true + new-variations-attribute-set-id + true - + true - export_filter[configurable_variations] - + 1 = true + product[affect_product_custom_options] + true - + true - export_filter[cost][] - , + ${attribute_set_id} = true + product[attribute_set_id] + true - + true - export_filter[country_of_manufacture] - + 4 = true + product[category_ids][0] + true - + true - export_filter[created_at] = true + product[custom_layout_update] + true - + true - export_filter[custom_design] = true + product[description] + true - + true - export_filter[custom_design_from][] - , + 0 = true + product[gift_message_available] + true - + true - export_filter[custom_design_to][] - , + 1 = true + product[gift_wrapping_available] + true - + true - export_filter[custom_layout_update] = true + product[gift_wrapping_price] + true - + true - export_filter[description] = true + product[image] + true - + true - export_filter[email_template] - + 2 = true + product[is_returnable] + true - + true - export_filter[gallery] - + ${configurable_sku} - Meta Description = true + product[meta_description] + true - + true - export_filter[gift_message_available] - + ${configurable_sku} - Meta Keyword = true + product[meta_keyword] + true - + true - export_filter[gift_wrapping_available] - + ${configurable_sku} - Meta Title = true + product[meta_title] + true - + true - export_filter[gift_wrapping_price][] - , + ${configurable_sku} = true + product[name] + true - + true - export_filter[group_price][] - , + container2 = true + product[options_container] + true - + true - export_filter[has_options] - + ${price_new} = true + product[price] + true - + true - export_filter[image] - + 1 = true + product[product_has_weight] + true - + true - export_filter[image_label] - + 1 = true + product[quantity_and_stock_status][is_in_stock] + true - + true - export_filter[is_redeemable][] - , + 1000 = true + product[quantity_and_stock_status][qty] + true - + true - export_filter[is_returnable] = true + product[short_description] + true - + true - export_filter[lifetime][] - , + ${configurable_sku} = true + product[sku] + true - + true - export_filter[links_exist][] - , + = true + product[small_image] + true - + true - export_filter[links_purchased_separately][] - , + ${special_price_new} = true + product[special_price] + true - + true - export_filter[links_title] - + 1 = true + product[status] + true - + true - export_filter[media_gallery] - + 0 = true + product[stock_data][backorders] + true - + true - export_filter[meta_description] - + 1 = true + product[stock_data][deferred_stock_update] + true - + true - export_filter[meta_keyword] - + 0 = true + product[stock_data][enable_qty_increments] + true - + true - export_filter[meta_title] - + 0 = true + product[stock_data][is_decimal_divided] + true - + true - export_filter[minimal_price][] - , + 0 = true + product[stock_data][is_qty_decimal] + true - + true - export_filter[msrp][] - , + 1 = true + product[stock_data][manage_stock] + true - + true - export_filter[msrp_display_actual_price_type] - + 10000 = true + product[stock_data][max_sale_qty] + true - + true - export_filter[name] - + 0 = true + product[stock_data][min_qty] + true - + true - export_filter[news_from_date][] - , + 1 = true + product[stock_data][min_sale_qty] + true - + true - export_filter[news_to_date][] - , + 1 = true + product[stock_data][notify_stock_qty] + true - + true - export_filter[old_id][] - , + 1 = true + product[stock_data][qty_increments] + true - + true - export_filter[open_amount_max][] - , + 1 = true + product[stock_data][use_config_backorders] + true - + true - export_filter[open_amount_min][] - , + 1 = true + product[stock_data][use_config_deferred_stock_update] + true - + true - export_filter[options_container] - + 1 = true + product[stock_data][use_config_enable_qty_increments] + true - + true - export_filter[page_layout] - + 1 = true + product[stock_data][use_config_manage_stock] + true - + true - export_filter[price][] - , + 1 = true + product[stock_data][use_config_max_sale_qty] + true - + true - export_filter[price_type][] - , + 1 = true + product[stock_data][use_config_min_qty] + true - + true - export_filter[price_view] - + 1 = true + product[stock_data][use_config_min_sale_qty] + true - + true - export_filter[quantity_and_stock_status] - + 1 = true + product[stock_data][use_config_notify_stock_qty] + true - + true - export_filter[related_tgtr_position_behavior][] - , + 1 = true + product[stock_data][use_config_qty_increments] + true - + true - export_filter[related_tgtr_position_limit][] - , + 2 = true + product[tax_class_id] + true - + true - export_filter[required_options] = true + product[thumbnail] + true - + true - export_filter[samples_title] = true + product[url_key] + true - - true - export_filter[shipment_type][] - , - = - true - - + true - export_filter[short_description] - + 1 = true + product[use_config_gift_message_available] + true - + true - export_filter[sku] - + 1 = true + product[use_config_gift_wrapping_available] + true - + true - export_filter[sku_type][] - , + 1 = true + product[use_config_is_returnable] + true - + true - export_filter[small_image] - + 4 = true + product[visibility] + true - + true - export_filter[small_image_label] - + 1 = true + product[website_ids][1] + true - + true - export_filter[special_from_date][] - , + ${related_product_id} = true + links[related][0][id] - + true - export_filter[special_price][] - , + 1 = true + links[related][0][position] - + true - export_filter[special_to_date][] - , + ${related_product_id} = true + links[upsell][0][id] - + true - export_filter[status] - + 1 = true + links[upsell][0][position] - + true - export_filter[tax_class_id] - + ${related_product_id} = true + links[crosssell][0][id] - + true - export_filter[thumbnail] - + 1 = true + links[crosssell][0][position] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_product/configurable_save.jmx + + + + You saved the product + + Assertion.response_data + false + 2 + + + + javascript + + + + +var configurableVariations = vars.getObject("configurable_variations_assertion"), +response = SampleResult.getResponseDataAsString(); + +configurableVariations.forEach(function (variation) { + if (response.indexOf(variation) == -1) { + AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\""); + AssertionResult.setFailure(true); + } +}); + + + + + + javascript + + + + +attributes = vars.getObject("product_attributes"); + +for (i in attributes) { + var attribute = attributes[i]; + sampler.addArgument("attribute_codes[" + i + "]", attribute.code); + sampler.addArgument("attributes[" + i + "]", attribute.id); + sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value); + addConfigurableAttributeData(attribute); +} + +addConfigurableMatrix(attributes); + +function addConfigurableAttributeData(attribute) { + var attributeId = attribute.id; + + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0); + attribute.options.forEach(function (option, index) { + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index); + sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value); + }); +} + +/** + * Build 4 simple products for Configurable + */ +function addConfigurableMatrix(attributes) { + + var attribute1 = attributes[0], + attribute2 = attributes[1], + productIndex = 1, + products = []; + var variationNames = []; + attribute1.options.forEach(function (option1) { + attribute2.options.forEach(function (option2) { + var productAttributes = {}, + namePart = option1.label + "+" + option2.label, + variationKey = option1.value + "-" + option2.value; + productAttributes[attribute1.code] = option1.value; + productAttributes[attribute2.code] = option2.value; + + variationNames.push(namePart + " - " + vars.get("configurable_sku")); + var product = { + "id": null, + "name": namePart + " - " + vars.get("configurable_sku"), + "sku": namePart + " - " + vars.get("configurable_sku"), + "status": 1, + "price": "100", + "price_currency": "$", + "price_string": "$100", + "weight": "6", + "qty": "50", + "variationKey": variationKey, + "configurable_attribute": JSON.stringify(productAttributes), + "thumbnail_image": "", + "media_gallery": {"images": {}}, + "image": [], + "was_changed": true, + "canEdit": 1, + "newProduct": 1, + "record_id": productIndex + }; + productIndex++; + products.push(product); + }); + }); + + sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products)); + vars.putObject("configurable_variations_assertion", variationNames); +} + + mpaf/tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx + + + + + + mpaf/tool/fragments/ce/admin_create_product/create_downloadable_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + ${files_folder}downloadable_original.txt + links + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true + POST + false + false + true + true + false + + + + + original_file + $.file + + + BODY + + + + + + + + ${files_folder}downloadable_sample.txt + samples + text/plain + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true + POST + false + false + true + true + false + + + + + sample_file + $.file + + + BODY + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + on + = + true + is_downloadable + + + true + Links + = + true + product[links_title] + + + true + 0 + = + true + product[links_purchased_separately] + + + true + ${original_file} + = + true + downloadable[link][0][file][0][file] + false + + + true + downloadable_original.txt + = + true + downloadable[link][0][file][0][name] + false + + + true + 13 + = + true + downloadable[link][0][file][0][size] + false + + + true + new + = + true + downloadable[link][0][file][0][status] + false + + + true + 1 + = + true + downloadable[link][0][is_shareable] + + + true + 0 + = + true + downloadable[link][0][is_unlimited] + + + true + + = + true + downloadable[link][0][link_url] + + + true + 0 + = + true + downloadable[link][0][number_of_downloads] + true + + + true + 120 + = + true + downloadable[link][0][price] + true + + + true + 0 + = + true + downloadable[link][0][record_id] + true + + + true + file + = + true + downloadable[link][0][sample][type] + + + true + + = + true + downloadable[link][0][sample][url] + + + true + 1 + = + true + downloadable[link][0][sort_order] + + + true + Original Link + = + true + downloadable[link][0][title] + + + true + file + = + true + downloadable[link][0][type] + + + true + ${sample_file} + = + true + downloadable[sample][0][file][0][file] + true + + + true + downloadable_sample.txt + = + true + downloadable[sample][0][file][0][name] + true + + + true + 14 + = + true + downloadable[sample][0][file][0][size] + true + + + true + new + = + true + downloadable[sample][0][file][0][status] + true + + + true + 0 + = + true + downloadable[sample][0][record_id] + true + + + true + + = + true + downloadable[sample][0][sample_url] + true + + + true + 1 + = + true + downloadable[sample][0][sort_order] + true + + + true + Sample Link + = + true + downloadable[sample][0][title] + true + + + true + file + = + true + downloadable[sample][0][type] + true + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + 4 + = + true + new-variations-attribute-set-id + false + + + true + + = + true + product[configurable_variation] + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + false + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + ${original_file} + = + true + downloadable[link][0][file][0][file] + false + + + true + downloadable_original.txt + = + true + downloadable[link][0][file][0][name] + false + + + true + 13 + = + true + downloadable[link][0][file][0][size] + false + + + true + new + = + true + downloadable[link][0][file][0][status] + false + + + true + 1 + = + true + downloadable[link][0][is_shareable] + true + + + true + 0 + = + true + downloadable[link][0][is_unlimited] + true + + + true + + = + true + downloadable[link][0][link_url] + true + + + true + 0 + = + true + downloadable[link][0][number_of_downloads] + false + + + true + 120 + = + true + downloadable[link][0][price] + false + + + true + 0 + = + true + downloadable[link][0][record_id] + false + + + true + file + = + true + downloadable[link][0][sample][type] + true + + + true + + = + true + downloadable[link][0][sample][url] + true + + + true + 1 + = + true + downloadable[link][0][sort_order] + true + + + true + Original Link + = + true + downloadable[link][0][title] + true + + + true + file + = + true + downloadable[link][0][type] + true + + + true + ${sample_file} + = + true + downloadable[sample][0][file][0][file] + true + + + true + downloadable_sample.txt + = + true + downloadable[sample][0][file][0][name] + true + + + true + 14 + = + true + downloadable[sample][0][file][0][size] + true + + + true + new + = + true + downloadable[sample][0][file][0][status] + true + + + true + 0 + = + true + downloadable[sample][0][record_id] + true + + + true + + = + true + downloadable[sample][0][sample_url] + true + + + true + 1 + = + true + downloadable[sample][0][sort_order] + true + + + true + Sample Link + = + true + downloadable[sample][0][title] + true + + + true + file + = + true + downloadable[sample][0][type] + true + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + 4 + = + true + new-variations-attribute-set-id + false + + + true + + = + true + product[configurable_variation] + false + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + mpaf/tool/fragments/ce/admin_create_product/create_simple_product.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/ + GET + true + false + true + false + false + + + + + + records found + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/new/set/4/type/simple/ + GET + true + false + true + false + false + + + + + + New Product + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + product[options][1][is_delete] + false + + + true + 1 + = + true + product[options][1][is_require] + false + + + true + select + = + true + product[options][1][previous_group] + false + + + true + drop_down + = + true + product[options][1][previous_type] + false + + + true + 0 + = + true + product[options][1][sort_order] + false + + + true + Product Option Title One + = + true + product[options][1][title] + false + + + true + drop_down + = + true + product[options][1][type] + false + + + true + + = + true + product[options][1][values][1][is_delete] + false + + + true + 200 + = + true + product[options][1][values][1][price] + false + + + true + fixed + = + true + product[options][1][values][1][price_type] + false + + + true + sku-one + = + true + product[options][1][values][1][sku] + false + + + true + 0 + = + true + product[options][1][values][1][sort_order] + false + + + true + Row Title + = + true + product[options][1][values][1][title] + false + + + true + + = + true + product[options][2][is_delete] + false + + + true + 1 + = + true + product[options][2][is_require] + false + + + true + 250 + = + true + product[options][2][max_characters] + false + + + true + text + = + true + product[options][2][previous_group] + false + + + true + field + = + true + product[options][2][previous_type] + false + + + true + 500 + = + true + product[options][2][price] + false + + + true + fixed + = + true + product[options][2][price_type] + false + + + true + sku-two + = + true + product[options][2][sku] + false + + + true + 1 + = + true + product[options][2][sort_order] + false + + + true + Field Title + = + true + product[options][2][title] + false + + + true + field + = + true + product[options][2][type] + false + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + 4 + = + true + new-variations-attribute-set-id + true + + + true + + = + true + product[configurable_variation] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/set/4/ + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[name] + false + + + true + SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[sku] + false + + + true + 123 + = + true + product[price] + + + true + 2 + = + true + product[tax_class_id] + + + true + 111 + = + true + product[quantity_and_stock_status][qty] + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + + + true + 1.0000 + = + true + product[weight] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 2 + = + true + product[category_ids][] + + + true + <p>Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[description] + + + true + <p>Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</p> + = + true + product[short_description] + + + true + 1 + = + true + product[status] + + + true + + = + true + product[image] + + + true + + = + true + product[small_image] + + + true + + = + true + product[thumbnail] + + + true + simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + product[url_key] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title + = + true + product[meta_title] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword + = + true + product[meta_keyword] + + + true + Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description + = + true + product[meta_description] + + + true + 1 + = + true + product[website_ids][] + + + true + 99 + = + true + product[special_price] + + + true + + = + true + product[special_from_date] + + + true + + = + true + product[special_to_date] + + + true + + = + true + product[cost] + + + true + 0 + = + true + product[tier_price][0][website_id] + + + true + 32000 + = + true + product[tier_price][0][cust_group] + + + true + 100 + = + true + product[tier_price][0][price_qty] + + + true + 90 + = + true + product[tier_price][0][price] + + + true + + = + true + product[tier_price][0][delete] + + + true + 0 + = + true + product[tier_price][1][website_id] + + + true + 1 + = + true + product[tier_price][1][cust_group] + + + true + 101 + = + true + product[tier_price][1][price_qty] + + + true + 99 + = + true + product[tier_price][1][price] + + + true + + = + true + product[tier_price][1][delete] + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + + + true + 100500 + = + true + product[stock_data][original_inventory_qty] + + + true + 100500 + = + true + product[stock_data][qty] + + + true + 0 + = + true + product[stock_data][min_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + + + true + 1 + = + true + product[stock_data][min_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + + + true + 0 + = + true + product[stock_data][backorders] + + + true + 1 + = + true + product[stock_data][use_config_backorders] + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + + + true + 0 + = + true + product[stock_data][qty_increments] + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + + + true + 1 + = + true + product[stock_data][is_in_stock] + + + true + + = + true + product[custom_design] + + + true + + = + true + product[custom_design_from] + + + true + + = + true + product[custom_design_to] + + + true + + = + true + product[custom_layout_update] + + + true + + = + true + product[page_layout] + + + true + container2 + = + true + product[options_container] + + + true + + = + true + product[options][1][is_delete] + true + + + true + 1 + = + true + product[options][1][is_require] + + + true + select + = + true + product[options][1][previous_group] + false + + + true + drop_down + = + true + product[options][1][previous_type] + false + + + true + 0 + = + true + product[options][1][sort_order] + false + + + true + Product Option Title One + = + true + product[options][1][title] + + + true + drop_down + = + true + product[options][1][type] + + + true + + = + true + product[options][1][values][1][is_delete] + false + + + true + 200 + = + true + product[options][1][values][1][price] + + + true + fixed + = + true + product[options][1][values][1][price_type] + + + true + sku-one + = + true + product[options][1][values][1][sku] + + + true + 0 + = + true + product[options][1][values][1][sort_order] + + + true + Row Title + = + true + product[options][1][values][1][title] + + + true + + = + true + product[options][2][is_delete] + false + + + true + 1 + = + true + product[options][2][is_require] + + + true + 250 + = + true + product[options][2][max_characters] + + + true + text + = + true + product[options][2][previous_group] + + + true + field + = + true + product[options][2][previous_type] + + + true + 500 + = + true + product[options][2][price] + + + true + fixed + = + true + product[options][2][price_type] + + + true + sku-two + = + true + product[options][2][sku] + + + true + 1 + = + true + product[options][2][sort_order] + + + true + Field Title + = + true + product[options][2][title] + + + true + field + = + true + product[options][2][type] + + + true + 1 + = + true + affect_configurable_product_attributes + true + + + true + 4 + = + true + new-variations-attribute-set-id + true + + + true + + = + true + product[configurable_variation] + true + + + true + ${related_product_id} + = + true + links[related][0][id] + + + true + 1 + = + true + links[related][0][position] + + + true + ${related_product_id} + = + true + links[upsell][0][id] + + + true + 1 + = + true + links[upsell][0][position] + + + true + ${related_product_id} + = + true + links[crosssell][0][id] + + + true + 1 + = + true + links[crosssell][0][position] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + violation + + Assertion.response_data + false + 6 + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${adminProductEditingPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Edit Product"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + true - export_filter[thumbnail_label] = true + dummy - - true - export_filter[tier_price][] - , - = - true - - + true - export_filter[updated_at] - + ${admin_form_key} = true + form_key - + true - export_filter[upsell_tgtr_position_behavior][] - , + ${admin_password} = true + login[password] - + true - export_filter[upsell_tgtr_position_limit][] - , + ${admin_user} = true + login[username] - + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + mpaf/tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx + import java.util.ArrayList; + import java.util.HashMap; + import java.util.Random; + + try { + Random random = new Random(); + if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); + } + simpleCount = props.get("simple_products_list").size(); + configCount = props.get("configurable_products_list").size(); + productCount = 0; + if (simpleCount > configCount) { + productCount = configCount; + } else { + productCount = simpleCount; + } + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + threadsNumber = 1; + } + //Current thread number starts from 0 + currentThreadNum = ctx.getThreadNum(); + + String siterator = vars.get("threadIterator_" + currentThreadNum.toString()); + iterator = 0; + if(siterator == null){ + vars.put("threadIterator_" + currentThreadNum.toString() , "0"); + } else { + iterator = Integer.parseInt(siterator); + iterator ++; + vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString()); + } + + //Number of products for one thread + productClusterLength = productCount / threadsNumber; + + if (iterator >= productClusterLength) { + vars.put("threadIterator_" + currentThreadNum.toString(), "0"); + iterator = 0; + } + + //Index of the current product from the cluster + i = productClusterLength * currentThreadNum + iterator; + + //ids of simple and configurable products to edit + vars.put("simple_product_id", props.get("simple_products_list").get(i).get("id")); + vars.put("configurable_product_id", props.get("configurable_products_list").get(i).get("id")); + + //id of related product + do { + relatedIndex = random.nextInt(props.get("simple_products_list").size()); + } while(i == relatedIndex); + vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id")); + } catch (Exception ex) { + log.info("Script execution failed", ex); +} + + + false + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/ + GET + true + false + true + false + false + + + + + + Product + + Assertion.response_data + false + 16 + + + + false + simple_product_name + ,"name":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_sku + ,"sku":"([^'"]+)", + $1$ + + 1 + + + + false + simple_product_category_id + ,"category_ids":."(\d+)". + $1$ + + 1 + + + + + Passing arguments between threads + //Additional category to be added + + int categoryId = Integer.parseInt(vars.get("simple_product_category_id")); + if (categoryId > 4) { + categoryId = categoryId - 1; + } else { + categoryId = categoryId + 1; + } + vars.put("category_additional", categoryId.toString()); + //New price + vars.put("price_new", "9999"); + //New special price + vars.put("special_price_new", "8888"); + //New quantity + vars.put("quantity_new", "100600"); + + + false + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${simple_product_name} + = + true + product[name] + false + + + true + ${simple_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + ${quantity_new} + = + true + product[quantity_and_stock_status][qty] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 1.0000 + = + true + product[weight] + false + + + true + 1 + = + true + product[product_has_weight] + false + + + true + ${simple_product_category_id} + = + true + product[category_ids][] + false + + + true + <p>Full simple product Description ${simple_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + + = + true + product[configurable_variations] + false + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + + = + true + product[image] + false + + + true + + = + true + product[small_image] + false + + + true + + = + true + product[thumbnail] + false + + + true + ${simple_product_name} + = + true + product[url_key] + false + + + true + ${simple_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${simple_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${simple_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + ${quantity_new} + = + true + product[stock_data][original_inventory_qty] + false + + + true + ${quantity_new} + = + true + product[stock_data][qty] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + + = + true + new-variations-attribute-set-id + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true + POST + true + false + true + false + false + + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${simple_product_name} + = + true + product[name] + false + + + true + ${simple_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + ${quantity_new} + = + true + product[quantity_and_stock_status][qty] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 1.0000 + = + true + product[weight] + false + + + true + 1 + = + true + product[product_has_weight] + false + + + true + ${simple_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + + + true + <p>Full simple product Description ${simple_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + + = + true + product[configurable_variations] + false + + + true + 1 + = + true + affect_configurable_product_attributes + false + + + true + + = + true + product[image] + false + + + true + + = + true + product[small_image] + false + + + true + + = + true + product[thumbnail] + false + + + true + ${simple_product_name} + = + true + product[url_key] + false + + + true + ${simple_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${simple_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${simple_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + ${quantity_new} + = + true + product[stock_data][original_inventory_qty] + false + + + true + ${quantity_new} + = + true + product[stock_data][qty] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 10000 + = + true + product[stock_data][max_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + + = + true + new-variations-attribute-set-id + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + + You saved the product + + Assertion.response_data + false + 2 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/ + GET + true + false + true + false + false + + + + + + Product + + Assertion.response_data + false + 16 + + + + false + configurable_product_name + ,"name":"([^'"]+)", + $1$ + + 1 + + + + false + configurable_product_sku + ,"sku":"([^'"]+)", + $1$ + + 1 + + + + false + configurable_product_category_id + ,"category_ids":."(\d+)" + $1$ + + 1 + + + + false + configurable_attribute_id + ,"configurable_variation":"([^'"]+)", + $1$ + + 1 + true + + + + false + configurable_matrix + "configurable-matrix":(\[.*?\]) + $1$ + + 1 + true + + + + associated_products_ids + $.[*].id + + configurable_matrix + VAR + + + + false + configurable_product_data + (\{"product":.*?configurable_attributes_data.*?\})\s*< + $1$ + + 1 + + + + configurable_attributes_data + $.product.configurable_attributes_data + + configurable_product_data + VAR + + + + false + configurable_attribute_ids + "attribute_id":"(\d+)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_codes + "code":"(\w+)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_labels + "label":"(.*?)" + $1$ + + -1 + variable + configurable_attributes_data + + + + false + configurable_attribute_values + "values":(\{(?:\}|.*?\}\})) + $1$ + + -1 + variable + configurable_attributes_data + + + + + configurable_attribute_ids + configurable_attribute_id + true + + + + 1 + ${configurable_attribute_ids_matchNr} + 1 + attribute_counter + + true + true + + + + return vars.get("configurable_attribute_values_" + vars.get("attribute_counter")); + + + false + + + + false + attribute_${configurable_attribute_id}_values + "value_index":"(\d+)" + $1$ + + -1 + configurable_attribute_values_${attribute_counter} + + + + + + + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${configurable_product_name} + = + true + product[name] + false + + + true + ${configurable_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id] + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 3 + = + true + product[weight] + false + + + true + ${configurable_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + false + + + true + <p>Configurable product description ${configurable_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + ${configurable_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${configurable_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${configurable_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + ${configurable_attribute_id} + = + true + product[configurable_variation] + false + + + true + ${configurable_product_name} + = + true + product[url_key] + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + + + true + 4 + = + true + product[visibility] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 50 + = + true + product[stock_data][qty] + false + + + true + configurable + = + true + product[stock_data][type_id] + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/ + POST + true + false + true + false + false + + + + + false + + + try { + int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); + for (int i = 1; i <= attributesCount; i++) { + attributeId = vars.get("configurable_attribute_ids_" + i.toString()); + attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); + attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); + ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); + ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); + ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); + + int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); + for (int j = 1; j <= valuesCount; j++) { + attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", + "1" + ); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", + attributeValue + ); + } + } + ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); + } catch (Exception e) { + log.error("error???", e); + } + + + + + {"error":false} + + Assertion.response_data + false + 2 + + + + + + + + true + true + = + true + ajax + false + + + true + true + = + true + isAjax + false + + + true + ${admin_form_key} + = + true + form_key + false + + + true + ${configurable_product_name} + = + true + product[name] + false + + + true + ${configurable_product_sku} + = + true + product[sku] + false + + + true + ${price_new} + = + true + product[price] + false + + + true + 2 + = + true + product[tax_class_id]admin + false + + + true + 1 + = + true + product[quantity_and_stock_status][is_in_stock] + false + + + true + 3 + = + true + product[weight] + false + + + true + ${configurable_product_category_id} + = + true + product[category_ids][] + false + + + true + ${category_additional} + = + true + product[category_ids][] + false + + + true + <p>Configurable product description ${configurable_product_id} Edited</p> + = + true + product[description] + false + + + true + 1 + = + true + product[status] + false + + + true + ${configurable_product_name} Meta Title Edited + = + true + product[meta_title] + false + + + true + ${configurable_product_name} Meta Keyword Edited + = + true + product[meta_keyword] + false + + + true + ${configurable_product_name} Meta Description Edited + = + true + product[meta_description] + false + + + true + 1 + = + true + product[website_ids][] + false + + + true + ${special_price_new} + = + true + product[special_price] + false + + + true + + = + true + product[special_from_date] + false + + + true + + = + true + product[special_to_date] + false + + + true + + = + true + product[cost] + false + + + true + 1 + = + true + product[stock_data][use_config_manage_stock] + false + + + true + 0 + = + true + product[stock_data][min_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_qty] + false + + + true + 1 + = + true + product[stock_data][min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_min_sale_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_max_sale_qty] + false + + + true + 0 + = + true + product[stock_data][is_qty_decimal] + false + + + true + 0 + = + true + product[stock_data][is_decimal_divided] + false + + + true + 0 + = + true + product[stock_data][backorders] + false + + + true + 1 + = + true + product[stock_data][use_config_backorders] + false + + + true + 1 + = + true + product[stock_data][notify_stock_qty] + false + + + true + 1 + = + true + product[stock_data][use_config_notify_stock_qty] + false + + + true + 0 + = + true + product[stock_data][enable_qty_increments] + false + + + true + 0 + = + true + product[stock_data][qty_increments] + false + + + true + 1 + = + true + product[stock_data][use_config_qty_increments] + false + + + true + 1 + = + true + product[stock_data][is_in_stock] + false + + + true + + = + true + product[custom_design] + false + + + true + + = + true + product[custom_design_from] + false + + + true + + = + true + product[custom_design_to] + false + + + true + + = + true + product[custom_layout_update] + false + + + true + + = + true + product[page_layout] + false + + + true + container2 + = + true + product[options_container] + false + + + true + ${configurable_attribute_id} + = + true + product[configurable_variation] + false + + + true + ${configurable_product_name} + = + true + product[url_key] + + + true + 1 + = + true + product[use_config_gift_message_available] + + + true + 1 + = + true + product[use_config_gift_wrapping_available] + + + true + 4 + = + true + product[visibility] + + + true + 1 + = + true + product[product_has_weight] + true + + + true + 50 + = + true + product[stock_data][qty] + false + + + true + configurable + = + true + product[stock_data][type_id] + false + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/ + POST + true + false + true + false + false + + + + + false + + + try { + int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr")); + for (int i = 1; i <= attributesCount; i++) { + attributeId = vars.get("configurable_attribute_ids_" + i.toString()); + attributeCode = vars.get("configurable_attribute_codes_" + i.toString()); + attributeLabel = vars.get("configurable_attribute_labels_" + i.toString()); + ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId); + ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode); + ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString()); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode); + ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel); + + int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr")); + for (int j = 1; j <= valuesCount; j++) { + attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString()); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]", + "1" + ); + ctx.getCurrentSampler().addArgument( + "product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]", + attributeValue + ); + } + } + ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString()); + } catch (Exception e) { + log.error("error???", e); + } + + + + + You saved the product + + Assertion.response_data + false + 2 + if have trouble see messages-message-error + + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${adminCategoryManagementPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Category Management"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + true - export_filter[url_key] = true + dummy - + true - export_filter[url_path] - + ${admin_form_key} = true + form_key - + true - export_filter[use_config_allow_message][] - , + ${admin_password} = true + login[password] - + true - export_filter[use_config_email_template][] - , + ${admin_user} = true + login[username] - - true - export_filter[use_config_is_redeemable][] - , - = - true + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/once_only_controller.jmx + + + + mpaf/tool/fragments/ce/setup/setup_admin_category_management.jmx + + + + props.remove("admin_category_ids_list"); + + + false + + + + + + + + Content-Type + application/json + + + Accept + */* + + + + + + true + + + + false + {"username":"${admin_user}","password":"${admin_password}"} + = + + - - true - export_filter[use_config_lifetime][] - , - = - true + + + + + ${request_protocol} + + ${base_path}rest/V1/integration/admin/token + POST + true + false + true + false + false + + + + + admin_token + $ + + + BODY + + + + + ^[a-z0-9-]+$ + + Assertion.response_data + false + 1 + variable + admin_token + + + + + + + Authorization + Bearer ${admin_token} + + + + + + + + + true + children_count + = + true + searchCriteria[filterGroups][0][filters][0][field] + + + true + 0 + = + true + searchCriteria[filterGroups][0][filters][0][value] + + + true + level + = + true + searchCriteria[filterGroups][1][filters][0][field] + + + true + 2 + = + true + searchCriteria[filterGroups][1][filters][0][value] + + + true + gt + = + true + searchCriteria[filterGroups][1][filters][0][conditionType] + + + true + ${adminCategoryCount} + = + true + searchCriteria[pageSize] + + - + + + + + ${request_protocol} + + ${base_path}rest/default/V1/categories/list + GET + true + false + true + false + false + + + + + false + category_list_id + \{\"id\":(\d+), + $1$ + + -1 + + + + + category_list_id + category_id + true + + + + import java.util.ArrayList; + +adminCategoryIdsList = props.get("admin_category_ids_list"); +// If it is first iteration of cycle then recreate categories ids list +if (adminCategoryIdsList == null) { + adminCategoryIdsList = new ArrayList(); + props.put("admin_category_ids_list", adminCategoryIdsList); +} +adminCategoryIdsList.add(vars.get("category_id")); + + + false + + + + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_category_management/admin_category_management.jmx + + + + javascript + + + + random = new java.util.Random(); +if (${seedForRandom} > 0) { +random.setSeed(${seedForRandom} + ${__threadNum}); +} + +/** + * Get unique ids for fix concurrent category saving + */ +function getNextProductNumber(i) { + number = productsVariationsSize * ${__threadNum} - i; + if (number >= productsSize) { + log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads"); + return random.nextInt(productsSize); + } + return productsVariationsSize * ${__threadNum} - i; +} + +var productsVariationsSize = 5, + productsSize = props.get("simple_products_list").size(); + + +for (i = 1; i<= productsVariationsSize; i++) { + var productVariablePrefix = "simple_product_" + i + "_"; + number = getNextProductNumber(i); + simpleList = props.get("simple_products_list").get(number); + + vars.put(productVariablePrefix + "url_key", simpleList.get("url_key")); + vars.put(productVariablePrefix + "id", simpleList.get("id")); + vars.put(productVariablePrefix + "name", simpleList.get("title")); +} + +categoryIndex = random.nextInt(props.get("admin_category_ids_list").size()); +vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex)); +do { +categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size()); +} while(categoryIndex == categoryIndexNew); +vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew)); + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id} + GET + true + false + true + false + false + + + + + + <title>New Category + + Assertion.response_data + false + 2 + + + + + + + + true + + = + true + id + + + true + ${parent_category_id} + = + true + parent + + + true + + = + true + path + + + true + + = + true + store_id + + + true + 0 + = + true + is_active + + + true + 0 + = + true + include_in_menu + + + true + 1 + = + true + is_anchor + + + true + true + = + true + use_config[available_sort_by] + + + true + true + = + true + use_config[default_sort_by] + + + true + true + = + true + use_config[filter_price_range] + + + true + false + = + true + use_default[url_key] + + + true + 0 + = + true + url_key_create_redirect + + + true + 0 + = + true + custom_use_parent_settings + + + true + 0 + = + true + custom_apply_to_products + + + true + Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + name + + + true + admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + url_key + + + true + + = + true + meta_title + + + true + + = + true + description + + + true + PRODUCTS + = + true + display_mode + + + true + position + = + true + default_sort_by + + + true + + = + true + meta_keywords + + + true + + = + true + meta_description + + + true + + = + true + custom_layout_update + + + false + {"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""} + = + true + category_products + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/save/ + POST + true + false + true + false + false + + + + + URL + admin_category_id + /catalog/category/edit/id/(\d+)/ + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_id + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/ + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + false + admin_category_entity_id + "entity_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_attribute_set_id + "attribute_set_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_parent_id + "parent_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_created_at + "created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_updated_at + "updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_path + "entity_id":(.+)"path":"([^\"]+)" + $2$ + + 1 + + + + false + admin_category_level + "level":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_name + "entity_id":(.+)"name":"([^"]+)" + $2$ + + 1 + + + + false + admin_category_url_key + "url_key":"([^"]+)" + $1$ + + 1 + + + + false + admin_category_url_path + "url_path":"([^"]+)" + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_entity_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_attribute_set_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_parent_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_updated_at + + + + + ^[\d\\\/]+$ + + Assertion.response_data + false + 1 + variable + admin_category_path + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_category_level + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_name + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_key + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_category_url_path + + + + + ${simple_product_1_name} + ${simple_product_2_name} + ${simple_product_3_name} + ${simple_product_4_name} + ${simple_product_5_name} + + Assertion.response_data + false + 2 + + + + + + + + true + ${admin_category_id} + = + true + id + + + true + ${admin_form_key} + = + true + form_key + + + true + append + = + true + point + + + true + ${new_parent_category_id} + = + true + pid + + + true + ${parent_category_id} + = + true + paid + + + true + 0 + = + true + aid + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/move/ + POST + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/ + GET + true + false + true + false + false + + + + + + You deleted the category. + + Assertion.response_data + false + 2 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))} + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + + + + + + + 1 + false + 1 + ${adminPromotionRulesPercentage} + mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + + +var testLabel = "${testLabel}" ? " (${testLabel})" : ""; +if (testLabel + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' +) { + if (sampler.getName().indexOf(testLabel) == -1) { + sampler.setName(sampler.getName() + testLabel); + } +} else if (sampler.getName().indexOf("SetUp - ") == -1) { + sampler.setName("SetUp - " + sampler.getName()); +} + + javascript + mpaf/tool/fragments/_system/setup_label.jmx + + + + vars.put("testLabel", "Admin Promotion Rules"); + + true + + + + + + function getFormKeyFromResponse() + { + var url = prev.getUrlAsString(), + responseCode = prev.getResponseCode(), + formKey = null; + searchPattern = /var FORM_KEY = '(.+)'/; + if (responseCode == "200" && url) { + response = prev.getResponseDataAsString(); + formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; + } + return formKey; + } + + formKey = vars.get("form_key_storage"); + + currentFormKey = getFormKeyFromResponse(); + + if (currentFormKey != null && currentFormKey != formKey) { + vars.put("form_key_storage", currentFormKey); + } + + javascript + mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + + + formKey = vars.get("form_key_storage"); + if (formKey + && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' + && sampler.getMethod() == "POST") + { + arguments = sampler.getArguments(); + for (i=0; i<arguments.getArgumentCount(); i++) + { + argument = arguments.getArgument(i); + if (argument.getName() == 'form_key' && argument.getValue() != formKey) { + log.info("admin form key updated: " + argument.getValue() + " => " + formKey); + argument.setValue(formKey); + } + } + } + + javascript + + + + + + false + mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path} + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_login/admin_login.jmx + + + + Welcome + <title>Magento Admin</title> + + Assertion.response_data + false + 2 + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_form_key + + + + + + + + true - export_filter[visibility] = true + dummy - + true - export_filter[weight][] - , + ${admin_form_key} = true + form_key - + true - export_filter[weight_type][] - , + ${admin_password} = true + login[password] - + true - frontend_label - + ${admin_user} = true + login[username] @@ -32292,35 +31396,474 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/admin/export/export/entity/catalog_product/file_format/csv - POST + ${base_path}${admin_path}/admin/dashboard/ + POST + true + false + true + false + Java + false + + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + + + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + mpaf/tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/ + GET + true + false + true + false + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/new + GET + true + false + true + false + false + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + true + + + true + 1--1 + = + true + id + + + true + Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal + = + true + type + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form + POST + true + false + true + false + false + + + + + + + + true + Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + name + + + true + 0 + = + true + is_active + + + true + 0 + = + true + use_auto_generation + + + true + 1 + = + true + is_rss + + + true + 0 + = + true + apply_to_shipping + + + true + 0 + = + true + stop_rules_processing + + + true + + = + true + coupon_code + + + true + + = + true + uses_per_coupon + + + true + + = + true + uses_per_customer + + + true + + = + true + sort_order + + + true + 5 + = + true + discount_amount + + + true + 0 + = + true + discount_qty + + + true + + = + true + discount_step + + + true + + = + true + reward_points_delta + + + true + + = + true + store_labels[0] + + + true + Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} + = + true + description + + + true + 1 + = + true + coupon_type + + + true + cart_fixed + = + true + simple_action + + + true + 1 + = + true + website_ids[0] + + + true + 0 + = + true + customer_group_ids[0] + + + true + + = + true + from_date + + + true + + = + true + to_date + + + true + Magento\SalesRule\Model\Rule\Condition\Combine + = + true + rule[conditions][1][type] + + + true + all + = + true + rule[conditions][1][aggregator] + + + true + 1 + = + true + rule[conditions][1][value] + + + true + Magento\SalesRule\Model\Rule\Condition\Address + = + true + rule[conditions][1--1][type] + + + true + base_subtotal + = + true + rule[conditions][1--1][attribute] + + + true + >= + = + true + rule[conditions][1--1][operator] + + + true + 100 + = + true + rule[conditions][1--1][value] + + + true + + = + true + rule[conditions][1][new_chlid] + + + true + Magento\SalesRule\Model\Rule\Condition\Product\Combine + = + true + rule[actions][1][type] + + + true + all + = + true + rule[actions][1][aggregator] + + + true + 1 + = + true + rule[actions][1][value] + + + true + + = + true + rule[actions][1][new_child] + + + true + + = + true + store_labels[1] + + + true + + = + true + store_labels[2] + + + true + + = + true + related_banners + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales_rule/promo_quote/save/ + POST + true + false + true + false + false + + + + + + You saved the rule. + + Assertion.response_data + false + 16 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))} + + + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET true false true false false - mpaf/tool/fragments/ce/export_products/export_products.jmx + mpaf/tool/fragments/ce/setup/admin_logout.jmx - - - Simple Product 1 - - Assertion.response_data - false - 16 - - - + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + - + 1 false 1 - ${exportCustomersPercentage} + ${adminCustomerManagementPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -32341,7 +31884,7 @@ if (testLabel - vars.put("testLabel", "Export Customers"); + vars.put("testLabel", "Admin Customer Management"); true @@ -32401,10 +31944,36 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - mpaf/tool/fragments/ce/once_only_controller.jmx - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); + + + + true + + + + @@ -32505,987 +32074,1930 @@ if (testLabel Java false - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/export/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/common/export.jmx - - - - Export Settings - - Assertion.response_data - false - 2 - - - - - - - - - true - ${admin_form_key} - = - true - form_key - false - - - true - - = - true - attribute_code - true - - - true - - = - true - export_filter[confirmation] - true - - - true - - = - true - export_filter[created_at] - true - - - true - - = - true - export_filter[created_in] - true - - - true - , - = - true - export_filter[default_billing][] - true - - - true - , - = - true - export_filter[default_shipping][] - true - - - true - - = - true - export_filter[disable_auto_group_change] - true - - - true - , - = - true - export_filter[dob][] - true - - - true - - = - true - export_filter[email] - true - - - true - - = - true - export_filter[firstname] - true - - - true - - = - true - export_filter[gender] - true - - - true - - = - true - export_filter[group_id] - true - - - true - - = - true - export_filter[lastname] - true - - - true - - = - true - export_filter[middlename] - true - - - true - - = - true - export_filter[password_hash] - true - - - true - - = - true - export_filter[prefix] - true - - - true - , - = - true - export_filter[reward_update_notification][] - true - - - true - , - = - true - export_filter[reward_warning_notification][] - true - - - true - - = - true - export_filter[rp_token] - true - - - true - , - = - true - export_filter[rp_token_created_at][] - true - - - true - - = - true - export_filter[store_id] - true - - - true - - = - true - export_filter[suffix] - true - - - true - - = - true - export_filter[taxvat] - true - - - true - - = - true - export_filter[website_id] - true - - - true - - = - true - frontend_label - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/export/export/entity/customer/file_format/csv - POST - true - false - true - false - false - - mpaf/tool/fragments/ce/export_customers/export_customers.jmx + mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx + - - - user_1@example.com - - Assertion.response_data - false - 16 - - + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + - - - - 1 - false - 1 - ${browseProductGridPercentage} - mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx + + mpaf/tool/fragments/ce/simple_controller.jmx + - - -var testLabel = "${testLabel}" ? " (${testLabel})" : ""; -if (testLabel - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' -) { - if (sampler.getName().indexOf(testLabel) == -1) { - sampler.setName(sampler.getName() + testLabel); - } -} else if (sampler.getName().indexOf("SetUp - ") == -1) { - sampler.setName("SetUp - " + sampler.getName()); -} - - javascript - mpaf/tool/fragments/_system/setup_label.jmx + + mpaf/tool/fragments/ce/admin_customer_management/admin_customer_management.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index + GET + true + false + true + false + false + + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + true + customer_listing + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 20 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + + X-Requested-With + XMLHttpRequest + + + + + + + + + + true + customer_listing + = + true + namespace + + + true + Lastname + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 20 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + entity_id + = + true + sorting[field] + + + true + asc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + + + + + + X-Requested-With + XMLHttpRequest + + + + + + false + customer_edit_url_path + actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/", + /customer/index/edit/id/$2$/ + + 0 + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + customer_edit_url_path + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}${customer_edit_url_path} + GET + true + false + true + false + false + + + + + + Customer Information + + Assertion.response_data + false + 2 + + + + false + admin_customer_entity_id + "entity_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_website_id + "website_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_firstname + "firstname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_lastname + "lastname":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_email + "email":"([^\@]+@[^.]+.[^"]+)" + $1$ + + 1 + + + + false + admin_customer_group_id + "group_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_store_id + "store_id":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_created_at + "created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_updated_at + "updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_is_active + "is_active":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_disable_auto_group_change + "disable_auto_group_change":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_created_in + "created_in":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_dob + "dob":"(\d+)-(\d+)-(\d+)" + $2$/$3$/$1$ + + 1 + + + + false + admin_customer_default_billing + "default_billing":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_default_shipping + "default_shipping":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_gender + "gender":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_failures_num + "failures_num":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_address_entity_id + "address":\{"\d+":{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}" + $1$ + + 1 + + + + false + admin_customer_address_created_at + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_updated_at + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_is_active + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)" + $1$ + + 1 + + + + false + admin_customer_address_city + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)" + $1$ + + 1 + - - - vars.put("testLabel", "Browse Product Grid"); - - true - + + false + admin_customer_address_country_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)" + $1$ + + 1 + - - - - function getFormKeyFromResponse() - { - var url = prev.getUrlAsString(), - responseCode = prev.getResponseCode(), - formKey = null; - searchPattern = /var FORM_KEY = '(.+)'/; - if (responseCode == "200" && url) { - response = prev.getResponseDataAsString(); - formKey = response && response.match(searchPattern) ? response.match(searchPattern)[1] : null; - } - return formKey; - } - - formKey = vars.get("form_key_storage"); - - currentFormKey = getFormKeyFromResponse(); - - if (currentFormKey != null && currentFormKey != formKey) { - vars.put("form_key_storage", currentFormKey); - } - - javascript - mpaf/tool/fragments/ce/admin/handle_admin_form_key.jmx + + false + admin_customer_address_firstname + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)" + $1$ + + 1 + - - - formKey = vars.get("form_key_storage"); - if (formKey - && sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy' - && sampler.getMethod() == "POST") - { - arguments = sampler.getArguments(); - for (i=0; i<arguments.getArgumentCount(); i++) - { - argument = arguments.getArgument(i); - if (argument.getName() == 'form_key' && argument.getValue() != formKey) { - log.info("admin form key updated: " + argument.getValue() + " => " + formKey); - argument.setValue(formKey); - } - } - } - - javascript - + + false + admin_customer_address_lastname + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)" + $1$ + + 1 + - - - - false - mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - - - vars.put("gridEntityType" , "Product"); - - pagesCount = parseInt(vars.get("products_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "product_listing"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text")); - vars.put("grid_filter_field", "name"); - - // set sort fields and sort directions - vars.put("grid_sort_field_1", "name"); - vars.put("grid_sort_field_2", "price"); - vars.put("grid_sort_field_3", "attribute_set_id"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); - - javascript - mpaf/tool/fragments/ce/admin_browse_products_grid/setup.jmx - - - - mpaf/tool/fragments/ce/once_only_controller.jmx - - - - - - - - - - - ${request_protocol} - - ${base_path}${admin_path} - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_login/admin_login.jmx - - - - Welcome - <title>Magento Admin</title> - - Assertion.response_data - false - 2 - - - - false - admin_form_key - <input name="form_key" type="hidden" value="([^'"]+)" /> - $1$ - - 1 - - - - - ^.+$ - - Assertion.response_data - false - 1 - variable - admin_form_key - - - - - - - - - true - - = - true - dummy - - - true - ${admin_form_key} - = - true - form_key - - - true - ${admin_password} - = - true - login[password] - - - true - ${admin_user} - = - true - login[username] - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/admin/dashboard/ - POST - true - false - true - false - Java - false - - mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx - - - $.totalRecords - 0 - true - false - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - - - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx - - - $.totalRecords - 0 - true - false - true - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); + + false + admin_customer_address_postcode + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_region + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_region_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_street + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\] + $1$ + + 1 + + + + false + admin_customer_address_telephone + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)" + $1$ + + 1 + + + + false + admin_customer_address_customer_id + "address":\{"\d+":{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)" + $1$ + + 1 + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_entity_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_website_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_firstname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_lastname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_email + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_group_id + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_store_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_updated_at + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_is_active + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_disable_auto_group_change + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_created_in + + + + + ^\d+/\d+/\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_dob + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_default_billing + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_default_shipping + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_gender + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_failures_num + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_entity_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_created_at + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_updated_at + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_is_active + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_city + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_country_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_firstname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_lastname + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_postcode + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_region + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_region_id + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_street + + + + + ^.+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_telephone + + + + + ^\d+$ + + Assertion.response_data + false + 1 + variable + admin_customer_address_customer_id + + + + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + User-Agent + Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 + + + Accept-Encoding + gzip, deflate + + + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_customer_entity_id} + = + true + customer[entity_id] + + + true + ${admin_customer_website_id} + = + true + customer[website_id] + + + true + ${admin_customer_email} + = + true + customer[email] + + + true + ${admin_customer_group_id} + = + true + customer[group_id] + + + true + ${admin_customer_store_id} + = + true + customer[store_id] + + + true + ${admin_customer_created_at} + = + true + customer[created_at] + + + true + ${admin_customer_updated_at} + = + true + customer[updated_at] + + + true + ${admin_customer_is_active} + = + true + customer[is_active] + + + true + ${admin_customer_disable_auto_group_change} + = + true + customer[disable_auto_group_change] + + + true + ${admin_customer_created_in} + = + true + customer[created_in] + + + true + + = + true + customer[prefix] + + + true + ${admin_customer_firstname} 1 + = + true + customer[firstname] + + + true + + = + true + customer[middlename] + + + true + ${admin_customer_lastname} 1 + = + true + customer[lastname] + + + true + + = + true + customer[suffix] + + + true + ${admin_customer_dob} + = + true + customer[dob] + + + true + ${admin_customer_default_billing} + = + true + customer[default_billing] + + + true + ${admin_customer_default_shipping} + = + true + customer[default_shipping] + + + true + + = + true + customer[taxvat] + + + true + ${admin_customer_gender} + = + true + customer[gender] + + + true + ${admin_customer_failures_num} + = + true + customer[failures_num] + + + true + ${admin_customer_store_id} + = + true + customer[sendemail_store_id] + + + true + ${admin_customer_address_entity_id} + = + true + address[${admin_customer_address_entity_id}][entity_id] + + + true + ${admin_customer_address_created_at} + = + true + address[${admin_customer_address_entity_id}][created_at] + + + true + ${admin_customer_address_updated_at} + = + true + address[${admin_customer_address_entity_id}][updated_at] + + + true + ${admin_customer_address_is_active} + = + true + address[${admin_customer_address_entity_id}][is_active] + + + true + ${admin_customer_address_city} + = + true + address[${admin_customer_address_entity_id}][city] + + + true + + = + true + address[${admin_customer_address_entity_id}][company] + + + true + ${admin_customer_address_country_id} + = + true + address[${admin_customer_address_entity_id}][country_id] + + + true + ${admin_customer_address_firstname} + = + true + address[${admin_customer_address_entity_id}][firstname] + + + true + ${admin_customer_address_lastname} + = + true + address[${admin_customer_address_entity_id}][lastname] + + + true + + = + true + address[${admin_customer_address_entity_id}][middlename] + + + true + ${admin_customer_address_postcode} + = + true + address[${admin_customer_address_entity_id}][postcode] + + + true + + = + true + address[${admin_customer_address_entity_id}][prefix] + + + true + ${admin_customer_address_region} + = + true + address[${admin_customer_address_entity_id}][region] + + + true + ${admin_customer_address_region_id} + = + true + address[${admin_customer_address_entity_id}][region_id] + + + true + ${admin_customer_address_street} + = + true + address[${admin_customer_address_entity_id}][street][0] + + + true + + = + true + address[${admin_customer_address_entity_id}][street][1] + + + true + + = + true + address[${admin_customer_address_entity_id}][suffix] + + + true + ${admin_customer_address_telephone} + = + true + address[${admin_customer_address_entity_id}][telephone] + + + true + + = + true + address[${admin_customer_address_entity_id}][vat_id] + + + true + ${admin_customer_address_customer_id} + = + true + address[${admin_customer_address_entity_id}][customer_id] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_billing] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_shipping] + + + true + + = + true + address[new_0][prefix] + + + true + John + = + true + address[new_0][firstname] + + + true + + = + true + address[new_0][middlename] + + + true + Doe + = + true + address[new_0][lastname] + + + true + + = + true + address[new_0][suffix] + + + true + Test Company + = + true + address[new_0][company] + + + true + Folsom + = + true + address[new_0][city] + + + true + 95630 + = + true + address[new_0][postcode] + + + true + 1234567890 + = + true + address[new_0][telephone] + + + true + + = + true + address[new_0][vat_id] + + + true + false + = + true + address[new_0][default_billing] + + + true + false + = + true + address[new_0][default_shipping] + + + true + 123 Main + = + true + address[new_0][street][0] + + + true + + = + true + address[new_0][street][1] + + + true + + = + true + address[new_0][region] + + + true + US + = + true + address[new_0][country_id] + + + true + 12 + = + true + address[new_0][region_id] + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index/validate/ + POST + true + false + true + false + false + + + + + + 200 + + Assertion.response_code + false + 16 + + + + + + + + true + true + = + true + isAjax + + + true + ${admin_customer_entity_id} + = + true + customer[entity_id] + + + true + ${admin_customer_website_id} + = + true + customer[website_id] + + + true + ${admin_customer_email} + = + true + customer[email] + + + true + ${admin_customer_group_id} + = + true + customer[group_id] + + + true + ${admin_customer_store_id} + = + true + customer[store_id] + + + true + ${admin_customer_created_at} + = + true + customer[created_at] + + + true + ${admin_customer_updated_at} + = + true + customer[updated_at] + + + true + ${admin_customer_is_active} + = + true + customer[is_active] + + + true + ${admin_customer_disable_auto_group_change} + = + true + customer[disable_auto_group_change] + + + true + ${admin_customer_created_in} + = + true + customer[created_in] + + + true + + = + true + customer[prefix] + + + true + ${admin_customer_firstname} 1 + = + true + customer[firstname] + + + true + + = + true + customer[middlename] + + + true + ${admin_customer_lastname} 1 + = + true + customer[lastname] + + + true + + = + true + customer[suffix] + + + true + ${admin_customer_dob} + = + true + customer[dob] + + + true + ${admin_customer_default_billing} + = + true + customer[default_billing] + + + true + ${admin_customer_default_shipping} + = + true + customer[default_shipping] + + + true + + = + true + customer[taxvat] + + + true + ${admin_customer_gender} + = + true + customer[gender] + + + true + ${admin_customer_failures_num} + = + true + customer[failures_num] + + + true + ${admin_customer_store_id} + = + true + customer[sendemail_store_id] + + + true + ${admin_customer_address_entity_id} + = + true + address[${admin_customer_address_entity_id}][entity_id] + -vars.put("grid_pages_count_filtered", pageCount); - - javascript - + + true + ${admin_customer_address_created_at} + = + true + address[${admin_customer_address_entity_id}][created_at] + + + true + ${admin_customer_address_updated_at} + = + true + address[${admin_customer_address_entity_id}][updated_at] + + + true + ${admin_customer_address_is_active} + = + true + address[${admin_customer_address_entity_id}][is_active] + + + true + ${admin_customer_address_city} + = + true + address[${admin_customer_address_entity_id}][city] + + + true + + = + true + address[${admin_customer_address_entity_id}][company] + + + true + ${admin_customer_address_country_id} + = + true + address[${admin_customer_address_entity_id}][country_id] + + + true + ${admin_customer_address_firstname} + = + true + address[${admin_customer_address_entity_id}][firstname] + + + true + ${admin_customer_address_lastname} + = + true + address[${admin_customer_address_entity_id}][lastname] + + + true + + = + true + address[${admin_customer_address_entity_id}][middlename] + + + true + ${admin_customer_address_postcode} + = + true + address[${admin_customer_address_entity_id}][postcode] + + + true + + = + true + address[${admin_customer_address_entity_id}][prefix] + + + true + ${admin_customer_address_region} + = + true + address[${admin_customer_address_entity_id}][region] + + + true + ${admin_customer_address_region_id} + = + true + address[${admin_customer_address_entity_id}][region_id] + + + true + ${admin_customer_address_street} + = + true + address[${admin_customer_address_entity_id}][street][0] + + + true + + = + true + address[${admin_customer_address_entity_id}][street][1] + + + true + + = + true + address[${admin_customer_address_entity_id}][suffix] + + + true + ${admin_customer_address_telephone} + = + true + address[${admin_customer_address_entity_id}][telephone] + + + true + + = + true + address[${admin_customer_address_entity_id}][vat_id] + + + true + ${admin_customer_address_customer_id} + = + true + address[${admin_customer_address_entity_id}][customer_id] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_billing] + + + true + true + = + true + address[${admin_customer_address_entity_id}][default_shipping] + + + true + + = + true + address[new_0][prefix] + + + true + John + = + true + address[new_0][firstname] + + + true + + = + true + address[new_0][middlename] + + + true + Doe + = + true + address[new_0][lastname] + + + true + + = + true + address[new_0][suffix] + + + true + Test Company + = + true + address[new_0][company] + + + true + Folsom + = + true + address[new_0][city] + + + true + 95630 + = + true + address[new_0][postcode] + + + true + 1234567890 + = + true + address[new_0][telephone] + + + true + + = + true + address[new_0][vat_id] + + + true + false + = + true + address[new_0][default_billing] + + + true + false + = + true + address[new_0][default_shipping] + + + true + 123 Main + = + true + address[new_0][street][0] + + + true + + = + true + address[new_0][street][1] + + + true + + = + true + address[new_0][region] + + + true + US + = + true + address[new_0][country_id] + + + true + 12 + = + true + address[new_0][region_id] + + + true + ${admin_form_key} + = + true + form_key + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/customer/index/save/ + POST + true + false + true + true + false + + + + + + You saved the customer. + + Assertion.response_data + false + 2 + + + + + 1 + 0 + ${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))} + - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx - - - - - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - ${page_number} - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - - - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx + + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + - + 1 false 1 - ${browseOrderGridPercentage} + ${adminEditOrderPercentage} mpaf/tool/fragments/_system/scenario_controller_tmpl.jmx @@ -33506,7 +34018,7 @@ if (testLabel - vars.put("testLabel", "Browse Order Grid"); + vars.put("testLabel", "Admin Edit Order"); true @@ -33566,31 +34078,36 @@ if (testLabel mpaf/tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx - - - vars.put("gridEntityType" , "Order"); - - pagesCount = parseInt(vars.get("orders_page_size")) || 20; - vars.put("grid_entity_page_size" , pagesCount); - vars.put("grid_namespace" , "sales_order_grid"); - vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text")); - vars.put("grid_filter_field", "status"); - - // set sort fields and sort directions - vars.put("grid_sort_field_1", "increment_id"); - vars.put("grid_sort_field_2", "created_at"); - vars.put("grid_sort_field_3", "billing_name"); - vars.put("grid_sort_order_1", "asc"); - vars.put("grid_sort_order_2", "desc"); + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + get-admin-email + mpaf/tool/fragments/ce/lock_controller.jmx + + + + mpaf/tool/fragments/ce/get_admin_email.jmx + +adminUserList = props.get("adminUserList"); +adminUser = adminUserList.poll(); +if (adminUser == null) { + SampleResult.setResponseMessage("adminUser list is empty"); + SampleResult.setResponseData("adminUser list is empty","UTF-8"); + IsSuccess=false; + SampleResult.setSuccessful(false); + SampleResult.setStopThread(true); +} +vars.put("admin_user", adminUser); - javascript - mpaf/tool/fragments/ce/admin_browse_orders_grid/setup.jmx + + + true + + - - mpaf/tool/fragments/ce/once_only_controller.jmx - - @@ -33693,74 +34210,421 @@ if (testLabel mpaf/tool/fragments/ce/admin_login/admin_login_submit_form.jmx - + + + false + admin_form_key + <input name="form_key" type="hidden" value="([^'"]+)" /> + $1$ + + 1 + mpaf/tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx + + + - + + mpaf/tool/fragments/ce/simple_controller.jmx + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/orders_page.jmx + + + + Create New Order + + Assertion.response_data + false + 2 + + + + + + + + + true + sales_order_grid + = + true + namespace + + + true + + = + true + search + + + true + true + = + true + filters[placeholder] + + + true + 200 + = + true + paging[pageSize] + + + true + 1 + = + true + paging[current] + + + true + increment_id + = + true + sorting[field] + + + true + desc + = + true + sorting[direction] + + + true + true + = + true + isAjax + + + true + ${admin_form_key} + = + true + form_key + false + + + true + pending + = + true + filters[status] + true + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + + + + + + true + ${admin_form_key} + = + true + form_key + + + true + sales_order_grid + = + true + namespace + true + + + true + + = + true + search + true + + + true + true + = + true + filters[placeholder] + true + + + true + 200 + = + true + paging[pageSize] + true + + + true + 1 + = + true + paging[current] + true + + + true + increment_id + = + true + sorting[field] + true + + + true + asc + = + true + sorting[direction] + true + + + true + true + = + true + isAjax + true + + + true + pending + = + true + filters[status] + + + true + ${__time()}${__Random(1,1000000)} + = + true + _ + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/mui/index/render/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/search_orders.jmx + + + + totalRecords + + Assertion.response_data + false + 2 + + + + false + order_numbers + \"increment_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + false + order_ids + \"entity_id\":\"(\d+)\"\, + $1$ + + -1 + simple_products + + + + + + mpaf/tool/fragments/ce/admin_create_process_returns/setup.jmx + + import java.util.ArrayList; + import java.util.HashMap; + import org.apache.jmeter.protocol.http.util.Base64Encoder; + import java.util.Random; + + // get count of "order_numbers" variable defined in "Search Pending Orders Limit" + int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr")); + + + int clusterLength; + int threadsNumber = ctx.getThreadGroup().getNumThreads(); + if (threadsNumber == 0) { + //Number of orders for one thread + clusterLength = ordersCount; + } else { + clusterLength = Math.round(ordersCount / threadsNumber); + if (clusterLength == 0) { + clusterLength = 1; + } + } + + //Current thread number starts from 0 + int currentThreadNum = ctx.getThreadNum(); + + //Index of the current product from the cluster + Random random = new Random(); + int iterator = random.nextInt(clusterLength); + if (iterator == 0) { + iterator = 1; + } + + int i = clusterLength * currentThreadNum + iterator; + + orderNumber = vars.get("order_numbers_" + i.toString()); + orderId = vars.get("order_ids_" + i.toString()); + vars.put("order_number", orderNumber); + vars.put("order_id", orderId); + + + + + false + + + + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order/view/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/open_order.jmx + + + + #${order_number} + + Assertion.response_data + false + 2 + + + + false + order_status + <span id="order_status">([^<]+)</span> + $1$ + + 1 + simple_products + + + + + + "${order_status}" == "Pending" + false + mpaf/tool/fragments/ce/admin_edit_order/if_controller.jmx + + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - + true - entity_id + pending = true - sorting[field] - true + history[status] + false - + true - asc + Some text = true - sorting[direction] - true + history[comment] - + true - true + ${admin_form_key} = true - isAjax - true + form_key + false @@ -33770,116 +34634,132 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx + mpaf/tool/fragments/ce/admin_edit_order/add_comment.jmx - - $.totalRecords - 0 - true - false - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; - var totalsRecord = parseInt(vars.get("entity_total_records")); - var pageCount = Math.round(totalsRecord/pageSize); - - vars.put("grid_pages_count", pageCount); - - javascript - + + + Not Notified + + Assertion.response_data + false + 2 + - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_start.jmx + + + + Invoice Totals + + Assertion.response_data + false + 2 + + + + false + item_ids + <div id="order_item_(\d+)_title"\s*class="product-title"> + $1$ + + -1 + simple_products + + + + + + + + + true + ${admin_form_key} + = + true + form_key + false + + + true + 1 + = + true + invoice[items][${item_ids_1}] + + + true + 1 + = + true + invoice[items][${item_ids_2}] + + + true + Invoiced + = + true + invoice[comment_text] + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/ + POST + true + false + true + false + false + + mpaf/tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx + + + + The invoice has been created + + Assertion.response_data + false + 2 + + + + + - - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - ${grid_admin_browse_filter_text} - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - - true - 1 - = - true - paging[current] - true - - - true - entity_id - = - true - sorting[field] - true - - - true - asc - = - true - sorting[direction] - true - - - true - true - = - true - isAjax - true - - + @@ -33887,7 +34767,7 @@ if (testLabel ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ + ${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/ GET true false @@ -33895,122 +34775,50 @@ if (testLabel false false - mpaf/tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx + mpaf/tool/fragments/ce/admin_edit_order/shipment_start.jmx - - $.totalRecords - 0 - true - false - true - true - - - - entity_total_records - $.totalRecords - - - BODY - - - - - - - var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20; -var totalsRecord = parseInt(vars.get("entity_total_records")); -var pageCount = Math.round(totalsRecord/pageSize); - -vars.put("grid_pages_count_filtered", pageCount); - - javascript - + + + New Shipment + + Assertion.response_data + false + 2 + - - - - mpaf/tool/fragments/ce/simple_controller.jmx - - - - 1 - ${grid_pages_count} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_page_number.jmx - - + - - true - ${grid_namespace} - = - true - namespace - true - - - true - - = - true - search - true - - - true - true - = - true - filters[placeholder] - true - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - true - - + true - ${page_number} + ${admin_form_key} = true - paging[current] - true + form_key + false - + true - entity_id + 1 = true - sorting[field] - true + shipment[items][${item_ids_1}] - + true - asc + 1 = true - sorting[direction] - true + shipment[items][${item_ids_2}] - + true - true + Shipped = true - isAjax - true + shipment[comment_text] @@ -34020,19 +34828,19 @@ vars.put("grid_pages_count_filtered", pageCount); ${request_protocol} - ${base_path}${admin_path}/mui/index/render/ - GET + ${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/ + POST true false true false false - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx + mpaf/tool/fragments/ce/admin_edit_order/shipment_submit.jmx - \"totalRecords\":[^0]\d* + The shipment has been created Assertion.response_data false @@ -34040,136 +34848,40 @@ vars.put("grid_pages_count_filtered", pageCount); + + - - 1 - ${grid_pages_count_filtered} - 1 - page_number - - true - false - mpaf/tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx - - - - mpaf/tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx - + + + + + + + + + ${request_protocol} + + ${base_path}${admin_path}/admin/auth/logout/ + GET + true + false + true + false + false + + mpaf/tool/fragments/ce/setup/admin_logout.jmx - - grid_sort_field - grid_sort_field - true - 0 - 3 - - - - grid_sort_order - grid_sort_order - true - 0 - 2 - - - - - - - true - ${grid_namespace} - = - true - namespace - false - - - true - ${grid_admin_browse_filter_text} - = - true - filters[${grid_filter_field}] - false - - - true - true - = - true - filters[placeholder] - false - - - true - ${grid_entity_page_size} - = - true - paging[pageSize] - false - - - true - ${page_number} - = - true - paging[current] - false - - - true - ${grid_sort_field} - = - true - sorting[field] - false - - - true - ${grid_sort_order} - = - true - sorting[direction] - false - - - true - true - = - true - isAjax - false - - - - - - - - ${request_protocol} - - ${base_path}${admin_path}/mui/index/render/ - GET - true - false - true - false - false - - - - - - \"totalRecords\":[^0]\d* - - Assertion.response_data - false - 2 - - - - - - + + + false + + + +adminUserList = props.get("adminUserList"); +adminUserList.add(vars.get("admin_user")); + + mpaf/tool/fragments/ce/common/return_admin_email_to_pool.jmx + @@ -34270,17 +34982,6 @@ vars.put("grid_pages_count_filtered", pageCount); true - - props.remove("category_url_key"); -props.remove("category_name"); -props.remove("simple_products_list"); -props.remove("configurable_products_list"); -props.remove("customer_emails_list"); - - - false - - diff --git a/setup/performance-toolkit/profiles/ce/extra_large.xml b/setup/performance-toolkit/profiles/ce/extra_large.xml index 9d6147095a784..964e91c7d1cb7 100644 --- a/setup/performance-toolkit/profiles/ce/extra_large.xml +++ b/setup/performance-toolkit/profiles/ce/extra_large.xml @@ -7,6 +7,7 @@ --> + 50 5 5 5 diff --git a/setup/performance-toolkit/profiles/ce/large.xml b/setup/performance-toolkit/profiles/ce/large.xml index 266dc978aab32..be893c9320860 100644 --- a/setup/performance-toolkit/profiles/ce/large.xml +++ b/setup/performance-toolkit/profiles/ce/large.xml @@ -7,6 +7,7 @@ --> + 50 5 5 5 diff --git a/setup/performance-toolkit/profiles/ce/medium.xml b/setup/performance-toolkit/profiles/ce/medium.xml index 819ad609e7b4c..ae18de530bb23 100644 --- a/setup/performance-toolkit/profiles/ce/medium.xml +++ b/setup/performance-toolkit/profiles/ce/medium.xml @@ -7,6 +7,7 @@ --> + 50 3 3 3 diff --git a/setup/performance-toolkit/profiles/ce/small.xml b/setup/performance-toolkit/profiles/ce/small.xml index 8ecb4162f4b11..fae8fe46dc0bb 100644 --- a/setup/performance-toolkit/profiles/ce/small.xml +++ b/setup/performance-toolkit/profiles/ce/small.xml @@ -7,6 +7,7 @@ --> + 50 1 1 1 diff --git a/setup/src/Magento/Setup/Fixtures/AttributeSet/Pattern.php b/setup/src/Magento/Setup/Fixtures/AttributeSet/Pattern.php index 66d22f2a1a858..6f1b3b698e7ae 100644 --- a/setup/src/Magento/Setup/Fixtures/AttributeSet/Pattern.php +++ b/setup/src/Magento/Setup/Fixtures/AttributeSet/Pattern.php @@ -10,7 +10,9 @@ */ class Pattern { - /** @var array */ + /** + * @var array + */ private $attributePattern = [ 'is_required' => 1, 'is_visible_on_front' => 1, diff --git a/setup/src/Magento/Setup/Fixtures/AttributeSet/SwatchesGenerator.php b/setup/src/Magento/Setup/Fixtures/AttributeSet/SwatchesGenerator.php index 12b446340d084..9155923804d58 100644 --- a/setup/src/Magento/Setup/Fixtures/AttributeSet/SwatchesGenerator.php +++ b/setup/src/Magento/Setup/Fixtures/AttributeSet/SwatchesGenerator.php @@ -5,8 +5,8 @@ */ namespace Magento\Setup\Fixtures\AttributeSet; -use Magento\Swatches\Model\Swatch; use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Swatches\Model\Swatch; /** * Generates data for creating Visual Swatch attributes of "image" and "color" types. diff --git a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php index 4085f8ed29fd9..7c4ec3fe97281 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php @@ -14,7 +14,7 @@ class ConfigsApplyFixture extends Fixture /** * @var int */ - protected $priority = 0; + protected $priority = -1; /** * {@inheritdoc} @@ -41,8 +41,13 @@ public function execute() ->setValue($config['value']) ->save(); } - $this->fixtureModel->getObjectManager()->get(\Magento\Framework\App\CacheInterface::class) + $this->fixtureModel->getObjectManager() + ->get(\Magento\Framework\App\CacheInterface::class) ->clean([\Magento\Framework\App\Config::CACHE_TAG]); + + $this->fixtureModel->getObjectManager() + ->get(\Magento\Config\App\Config\Type\System::class) + ->clean(); } /** diff --git a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php index 5664b0345ca3b..0e7dbd309be4a 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php @@ -192,6 +192,7 @@ public function __construct( $this->websiteCategoryProvider = $websiteCategoryProvider; $this->priceProvider = $priceProvider; $this->swatchesGenerator = $swatchesGenerator; + $this->serializer = $serializer; } /** diff --git a/setup/src/Magento/Setup/Fixtures/FixtureModel.php b/setup/src/Magento/Setup/Fixtures/FixtureModel.php index fc58e83e25d1e..8f7b61fc32e51 100644 --- a/setup/src/Magento/Setup/Fixtures/FixtureModel.php +++ b/setup/src/Magento/Setup/Fixtures/FixtureModel.php @@ -10,6 +10,7 @@ namespace Magento\Setup\Fixtures; use Magento\Indexer\Console\Command\IndexerReindexCommand; +use Magento\Setup\Exception; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\OutputInterface; @@ -47,6 +48,13 @@ class FixtureModel */ protected $fixtures = []; + /** + * List of fixtures indexed by class names + * + * @var \Magento\Setup\Fixtures\Fixture[] + */ + private $fixturesByNames = []; + /** * Parameters labels * @@ -109,12 +117,18 @@ public function loadFixtures() 'fixtureModel' => $this, ] ); + if (isset($this->fixtures[$fixture->getPriority()])) { throw new \InvalidArgumentException( sprintf('Duplicate priority %d in fixture %s', $fixture->getPriority(), $type) ); } - $this->fixtures[$fixture->getPriority()] = $fixture; + + if ($fixture->getPriority() >= 0) { + $this->fixtures[$fixture->getPriority()] = $fixture; + } + + $this->fixturesByNames[get_class($fixture)] = $fixture; } ksort($this->fixtures); @@ -142,6 +156,21 @@ public function getFixtures() return $this->fixtures; } + /** + * Returns fixture by name + * @param $name string + * @return \Magento\Setup\Fixtures\Fixture + * @throws \Magento\Setup\Exception + */ + public function getFixtureByName($name) + { + if (!array_key_exists($name, $this->fixturesByNames)) { + throw new Exception('Wrong fixture name'); + } + + return $this->fixturesByNames[$name]; + } + /** * Get object manager * diff --git a/setup/src/Magento/Setup/Fixtures/IndexersStatesApplyFixture.php b/setup/src/Magento/Setup/Fixtures/IndexersStatesApplyFixture.php index f6cc76364f343..649d33e494a10 100644 --- a/setup/src/Magento/Setup/Fixtures/IndexersStatesApplyFixture.php +++ b/setup/src/Magento/Setup/Fixtures/IndexersStatesApplyFixture.php @@ -14,7 +14,7 @@ class IndexersStatesApplyFixture extends Fixture /** * @var int */ - protected $priority = 170; + protected $priority = -1; /** * {@inheritdoc} @@ -25,10 +25,18 @@ public function execute() if (!isset($indexers["indexer"]) || empty($indexers["indexer"])) { return; } + $this->fixtureModel->resetObjectManager(); - foreach ($indexers["indexer"] as $indexer) { - $this->fixtureModel->indexersStates[$indexer['id']] = ($indexer['set_scheduled'] == "true"); + + /** @var $indexerRegistry \Magento\Framework\Indexer\IndexerRegistry */ + $indexerRegistry = $this->fixtureModel->getObjectManager() + ->create(\Magento\Framework\Indexer\IndexerRegistry::class); + + foreach ($indexers["indexer"] as $indexerConfig) { + $indexer = $indexerRegistry->get($indexerConfig['id']); + $indexer->setScheduled($indexerConfig['set_scheduled'] == "true"); } + $this->fixtureModel->getObjectManager()->get(\Magento\Framework\App\CacheInterface::class) ->clean([\Magento\Framework\App\Config::CACHE_TAG]); } diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php index 82f767d73bec8..15ec81cb66bc5 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php @@ -33,21 +33,27 @@ public function testExecute() $cacheMock = $this->getMock(\Magento\Framework\App\Cache::class, [], [], '', false); $valueMock = $this->getMock(\Magento\Framework\App\Config::class, [], [], '', false); + $configMock = $this->getMock(\Magento\Config\App\Config\Type\System::class, [], [], '', false); $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManager\ObjectManager::class, [], [], '', false); - $objectManagerMock->expects($this->once()) + $objectManagerMock ->method('get') - ->will($this->returnValue($cacheMock)); + ->willReturnMap([ + [\Magento\Framework\App\CacheInterface::class, $cacheMock], + [\Magento\Config\App\Config\Type\System::class, $configMock] + ]); $this->fixtureModelMock ->expects($this->once()) ->method('getValue') ->will($this->returnValue(['config' => $valueMock])); $this->fixtureModelMock - ->expects($this->once()) ->method('getObjectManager') ->will($this->returnValue($objectManagerMock)); + $cacheMock->method('clean'); + $configMock->method('clean'); + $this->model->execute(); } diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/IndexersStatesApplyFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/IndexersStatesApplyFixtureTest.php index 12c4f00ef0e85..e4718eb7a5cbe 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/IndexersStatesApplyFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/IndexersStatesApplyFixtureTest.php @@ -30,11 +30,23 @@ public function setUp() public function testExecute() { $cacheInterfaceMock = $this->getMock(\Magento\Framework\App\CacheInterface::class, [], [], '', false); + $indexerRegistryMock = $this->getMock(\Magento\Framework\Indexer\IndexerRegistry::class, [], [], '', false); + $indexerMock = $this->getMockForAbstractClass(\Magento\Framework\Indexer\IndexerInterface::class); + + $indexerRegistryMock->expects($this->once()) + ->method('get') + ->willReturn($indexerMock); + + $indexerMock->expects($this->once()) + ->method('setScheduled'); $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManager\ObjectManager::class, [], [], '', false); $objectManagerMock->expects($this->once()) ->method('get') ->willReturn($cacheInterfaceMock); + $objectManagerMock->expects($this->once()) + ->method('create') + ->willReturn($indexerRegistryMock); $this->fixtureModelMock ->expects($this->once()) @@ -43,7 +55,6 @@ public function testExecute() 'indexer' => ['id' => 1] ]); $this->fixtureModelMock - ->expects($this->once()) ->method('getObjectManager') ->willReturn($objectManagerMock); From f9986ece7255346fb94011ebf0892491f2c1b2e8 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 20 Dec 2017 18:04:51 +0200 Subject: [PATCH 176/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php | 1 - 1 file changed, 1 deletion(-) diff --git a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php index 0e7dbd309be4a..5664b0345ca3b 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php @@ -192,7 +192,6 @@ public function __construct( $this->websiteCategoryProvider = $websiteCategoryProvider; $this->priceProvider = $priceProvider; $this->swatchesGenerator = $swatchesGenerator; - $this->serializer = $serializer; } /** From cdd1e63fc10cb5bdd5ea3ca65f586e714d56c14b Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Fri, 22 Dec 2017 15:24:19 +0200 Subject: [PATCH 177/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../src/Magento/Setup/Fixtures/_files/orders_fixture_data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json b/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json index 864ad45533afe..59760c4e5e276 100644 --- a/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json +++ b/setup/src/Magento/Setup/Fixtures/_files/orders_fixture_data.json @@ -328,7 +328,7 @@ "cc_number_enc": "NULL", "cc_trans_id": "NULL", "address_status": "NULL", - "additional_information": "'{\"method_title\":\"Check \/ Money order\"}'" + "additional_information": "'a:1:{s:53:\"a:1:{s:12:\"method_title\";s:19:\"Check \/ Money order\";}\";N;}'" }, "sales_order_status_history": { "entity_id": "'%entityId%'", From 89a134e2a56ec358dd69e1766c68a9c9353150b7 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Tue, 26 Dec 2017 12:49:28 +0200 Subject: [PATCH 178/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/src/Magento/Setup/Fixtures/OrdersFixture.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup/src/Magento/Setup/Fixtures/OrdersFixture.php b/setup/src/Magento/Setup/Fixtures/OrdersFixture.php index df48bfbcacfef..1472465a1377c 100644 --- a/setup/src/Magento/Setup/Fixtures/OrdersFixture.php +++ b/setup/src/Magento/Setup/Fixtures/OrdersFixture.php @@ -355,7 +355,7 @@ public function execute() $this->query('quote_item', $order, $itemData); $this->query('quote_item_option', $order, $itemData, [ '%code%' => 'info_buyRequest', - '%value%' => json_encode([ + '%value%' => serialize([ 'product' => $productId($entityId, $i, Type::TYPE_SIMPLE), 'qty' => "1", 'uenc' => 'aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw' @@ -597,7 +597,7 @@ private function prepareSimpleProducts(array $productIds = []) $productsResult[$key]['id'] = $simpleId; $productsResult[$key]['sku'] = $simpleProduct->getSku(); $productsResult[$key]['name'] = $simpleProduct->getName(); - $productsResult[$key]['buyRequest'] = json_encode([ + $productsResult[$key]['buyRequest'] = serialize([ "info_buyRequest" => [ "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", "product" => $simpleId, @@ -673,13 +673,13 @@ private function prepareConfigurableProducts(array $productIds = []) $productsResult[$key]['name'] = $configurableProduct->getName(); $productsResult[$key]['childId'] = $simpleId; $productsResult[$key]['buyRequest'] = [ - 'order' => json_encode($configurableBuyRequest), - 'quote' => json_encode($quoteConfigurableBuyRequest), - 'super_attribute' => json_encode($superAttribute) + 'order' => serialize($configurableBuyRequest), + 'quote' => serialize($quoteConfigurableBuyRequest), + 'super_attribute' => serialize($superAttribute) ]; $productsResult[$key]['childBuyRequest'] = [ - 'order' => json_encode($simpleBuyRequest), - 'quote' => json_encode($quoteSimpleBuyRequest), + 'order' => serialize($simpleBuyRequest), + 'quote' => serialize($quoteSimpleBuyRequest), ]; } return $productsResult; From 875b4855297f7385ef8451a3f9834ad9eae765c2 Mon Sep 17 00:00:00 2001 From: Dale Sikkema Date: Sat, 25 Feb 2017 00:46:52 +0200 Subject: [PATCH 179/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT (cherry picked from commit 8498e12) --- ...ractFactoryRuntimeDefinitionsTestCases.php | 130 +++++++++++++ .../ObjectManager/Factory/CompiledTest.php | 53 +++++ .../Factory/Dynamic/DeveloperTest.php | 55 ++++++ .../ObjectManager/TestAsset/BasicAlias.php | 10 - .../TestAsset/BasicInjection.php | 5 + .../TestAsset/ComplexDependencies.php | 127 ++++++++++++ .../TestAsset/ConstructorOneArgument.php | 12 +- .../TestAsset/DependsOnAlias.php | 36 ++++ .../TestAsset/DependsOnInterface.php | 30 +++ .../TestAsset/HasOptionalParameters.php | 114 +++++++++++ .../ObjectManager/Config/Compiled.php | 28 ++- .../ObjectManager/ConfigInterface.php | 2 +- .../ObjectManager/Factory/AbstractFactory.php | 60 +++++- .../ObjectManager/Factory/Compiled.php | 70 ++++--- .../Factory/Dynamic/Developer.php | 39 +--- .../Test/Unit/Config/CompiledTest.php | 137 ++++++------- .../Test/Unit/Factory/CompiledTest.php | 184 ++++++++++++++---- 17 files changed, 911 insertions(+), 181 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/CompiledTest.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/Dynamic/DeveloperTest.php delete mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/BasicAlias.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ComplexDependencies.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnAlias.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnInterface.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/HasOptionalParameters.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php new file mode 100644 index 0000000000000..56378b94f910e --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php @@ -0,0 +1,130 @@ +factory = $this->createFactoryToTest(); + + /** + * Test creates one object which depends on all the other kind of objects whose creation we need to test. This + * means the test can not only test creating each of the varied constructor scenarios (e.g., a class with + * optional constructor parameters) but also test creating an object which *depends* on each of the varied + * scenarios. + */ + $this->complexDependenciesObject = $this->factory->create(ComplexDependencies::class); + } + + public function testCreateComplexDependencies() + { + $this->assertInstanceOf(ComplexDependencies::class, $this->complexDependenciesObject); + } + + public function testCreateBasic() + { + $this->assertInstanceOf(Basic::class, $this->complexDependenciesObject->getBasic()); + } + + public function testCreateBasicInjection() + { + $this->assertInstanceOf(BasicInjection::class, $this->complexDependenciesObject->getBasicInjection()); + $this->assertInstanceOf( + Basic::class, + $this->complexDependenciesObject->getBasicInjection()->getBasicDependency() + ); + } + + public function testCreateInterface() + { + $this->assertInstanceOf(TestAssetInterface::class, $this->complexDependenciesObject->getTestAssetInterface()); + } + + public function testCreateConstructorNestedInjection() + { + $this->assertInstanceOf( + ConstructorNineArguments::class, + $this->complexDependenciesObject->getConstructorNineArguments() + ); + $this->assertInstanceOf( + Basic::class, + $this->complexDependenciesObject->getConstructorNineArguments()->getBasicDependency() + ); + } + + public function testCreateObjectDependsOnInterface() + { + $this->assertInstanceOf(DependsOnInterface::class, $this->complexDependenciesObject->getDependsOnInterface()); + $this->assertInstanceOf( + TestAssetInterface::class, + $this->complexDependenciesObject->getDependsOnInterface()->getInterfaceDependency() + ); + } + + public function testCreateObjectHasOptionalParameters() + { + $this->assertInstanceOf( + HasOptionalParameters::class, + $this->complexDependenciesObject->getHasOptionalParameters() + ); + $this->assertEquals( + HasOptionalParameters::CONSTRUCTOR_INT_PARAM_DEFAULT, + $this->complexDependenciesObject->getHasOptionalParameters()->getOptionalIntegerParameter() + ); + $this->assertEquals( + HasOptionalParameters::CONSTRUCTOR_STRING_PARAM_DEFAULT, + $this->complexDependenciesObject->getHasOptionalParameters()->getOptionalStringParameter() + ); + $this->assertInstanceOf( + TestAssetInterface::class, + $this->complexDependenciesObject->getHasOptionalParameters()->getRequiredInterfaceParam() + ); + $this->assertInstanceOf( + Basic::class, + $this->complexDependenciesObject->getHasOptionalParameters()->getRequiredObjectParameter() + ); + } + + public function testCreateObjectDependsOnAlias() + { + $this->assertInstanceOf(DependsOnAlias::class, $this->complexDependenciesObject->getDependsOnAlias()); + $this->assertEquals( + self::ALIAS_OVERRIDDEN_STRING, + $this->complexDependenciesObject->getDependsOnAlias()->getOverriddenString() + ); + $this->assertEquals( + self::ALIAS_OVERRIDDEN_INT, + $this->complexDependenciesObject->getDependsOnAlias()->getOverRiddenInteger() + ); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/CompiledTest.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/CompiledTest.php new file mode 100644 index 0000000000000..827a47a974e23 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/CompiledTest.php @@ -0,0 +1,53 @@ + [ + 'Alias' => [ + 'requiredInterfaceParameter' => ['_i_' => InterfaceImplementation::class], + 'requiredObjectParameter' => ['_i_' => Basic::class], + 'optionalInterfaceParameter' => ['_i_' => InterfaceImplementation::class], + 'optionalObjectParameter' => ['_i_' => Basic::class], + 'optionalStringParameter' => ['_v_' => self::ALIAS_OVERRIDDEN_STRING], + 'optionalIntegerParameter' => ['_v_' => self::ALIAS_OVERRIDDEN_INT], + ], + DependsOnAlias::class => [ + 'object' => ['_i_' => 'Alias'] + ], + ], + 'instanceTypes' => [ + 'Alias' => HasOptionalParameters::class + ], + 'preferences' => [ + TestAssetInterface::class => InterfaceImplementation::class + ] + ]; + + $compiledConfig = new CompiledConfig($diConfig); + $factory = new Compiled($compiledConfig); + $factory->setObjectManager(new ObjectManager($factory, $compiledConfig)); + return $factory; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/Dynamic/DeveloperTest.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/Dynamic/DeveloperTest.php new file mode 100644 index 0000000000000..be16aabc15a44 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/Dynamic/DeveloperTest.php @@ -0,0 +1,55 @@ + [ + TestAssetInterface::class => InterfaceImplementation::class + ], + 'Alias' => [ + 'type' => HasOptionalParameters::class, + 'arguments' => [ + 'requiredInterfaceParameter' => ['instance' => InterfaceImplementation::class], + 'requiredObjectParameter' => ['instance' => Basic::class], + 'optionalInterfaceParameter' => ['instance' => InterfaceImplementation::class], + 'optionalObjectParameter' => ['instance' => Basic::class], + 'optionalStringParameter' => self::ALIAS_OVERRIDDEN_STRING, + 'optionalIntegerParameter' => self::ALIAS_OVERRIDDEN_INT, + ] + ], + DependsOnAlias::class => [ + 'arguments' => [ + 'object' => ['instance' => 'Alias'] + ] + ] + ]; + + $runtimeConfig = new \Magento\Framework\Interception\ObjectManager\Config\Developer(); + $runtimeConfig->extend($runtimeDiConfig); + $factory = new \Magento\Framework\ObjectManager\Factory\Dynamic\Developer($runtimeConfig); + $factory->setObjectManager(new ObjectManager($factory, $runtimeConfig)); + return $factory; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/BasicAlias.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/BasicAlias.php deleted file mode 100644 index 6a5bdc6807e5a..0000000000000 --- a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/BasicAlias.php +++ /dev/null @@ -1,10 +0,0 @@ -_object = $object; } + + public function getBasicDependency() + { + return $this->_object; + } } diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ComplexDependencies.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ComplexDependencies.php new file mode 100644 index 0000000000000..2d4e1422bb33b --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ComplexDependencies.php @@ -0,0 +1,127 @@ +basic = $basic; + $this->basicInjection = $basicInjection; + $this->dependsOnInterface = $dependsOnInterface; + $this->hasOptionalParameters = $hasOptionalParameters; + $this->testAssetInterface = $testAssetInterface; + $this->constructorNineArguments = $constructorNineArguments; + $this->dependsOnAlias = $dependsOnAlias; + } + + /** + * @return DependsOnAlias + */ + public function getDependsOnAlias() + { + return $this->dependsOnAlias; + } + + /** + * @return Basic + */ + public function getBasic() + { + return $this->basic; + } + + /** + * @return BasicInjection + */ + public function getBasicInjection() + { + return $this->basicInjection; + } + + /** + * @return DependsOnInterface + */ + public function getDependsOnInterface() + { + return $this->dependsOnInterface; + } + + /** + * @return HasOptionalParameters + */ + public function getHasOptionalParameters() + { + return $this->hasOptionalParameters; + } + + /** + * @return TestAssetInterface + */ + public function getTestAssetInterface() + { + return $this->testAssetInterface; + } + + /** + * @return ConstructorNineArguments + */ + public function getConstructorNineArguments() + { + return $this->constructorNineArguments; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ConstructorOneArgument.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ConstructorOneArgument.php index 7888f717d9110..a72eb1edeaf76 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ConstructorOneArgument.php +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/ConstructorOneArgument.php @@ -12,10 +12,6 @@ class ConstructorOneArgument */ protected $_one; - /** - * One argument - */ - /** * One argument * @@ -25,4 +21,12 @@ public function __construct(\Magento\Framework\ObjectManager\TestAsset\Basic $on { $this->_one = $one; } + + /** + * @return Basic + */ + public function getBasicDependency() + { + return $this->_one; + } } diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnAlias.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnAlias.php new file mode 100644 index 0000000000000..74364a2a1c633 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnAlias.php @@ -0,0 +1,36 @@ +_object = $object; + } + + public function getOverriddenString() + { + return $this->_object->getOptionalStringParameter(); + } + + public function getOverRiddenInteger() + { + return $this->_object->getOptionalIntegerParameter(); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnInterface.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnInterface.php new file mode 100644 index 0000000000000..a80c609a4d022 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/DependsOnInterface.php @@ -0,0 +1,30 @@ +_object = $object; + } + + /** + * @return TestAssetInterface + */ + public function getInterfaceDependency() + { + return $this->_object; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/HasOptionalParameters.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/HasOptionalParameters.php new file mode 100644 index 0000000000000..257723420b82e --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/TestAsset/HasOptionalParameters.php @@ -0,0 +1,114 @@ +optionalObjectParameter = $optionalObjectParameter; + $this->optionalStringParameter = $optionalStringParameter; + $this->optionalIntegerParameter = $optionalIntegerParameter; + $this->optionalInterfaceParameter = $optionalInterfaceParameter; + $this->requiredInterfaceParam = $requiredInterfaceParameter; + $this->requiredObjectParameter = $requiredObjectParameter; + } + + /** + * @return Basic + */ + public function getOptionalObjectParameter() + { + return $this->optionalObjectParameter; + } + + /** + * @return string + */ + public function getOptionalStringParameter() + { + return $this->optionalStringParameter; + } + + /** + * @return int + */ + public function getOptionalIntegerParameter() + { + return $this->optionalIntegerParameter; + } + + /** + * @return TestAssetInterface + */ + public function getOptionalInterfaceParameter() + { + return $this->optionalInterfaceParameter; + } + + /** + * @return TestAssetInterface + */ + public function getRequiredInterfaceParam() + { + return $this->requiredInterfaceParam; + } + + /** + * @return Basic + */ + public function getRequiredObjectParameter() + { + return $this->requiredObjectParameter; + } +} diff --git a/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php b/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php index 59b47409814ed..e6f50e9222653 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php +++ b/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php @@ -1,15 +1,18 @@ arguments[$type])) { + if (array_key_exists($type, $this->arguments)) { if (is_string($this->arguments[$type])) { $this->arguments[$type] = unserialize($this->arguments[$type]); + } else if ($this->arguments[$type] === null) { + $this->arguments[$type] = []; } return $this->arguments[$type]; } else { - return [['_i_' => 'Magento\Framework\ObjectManagerInterface']]; + return null; } } @@ -159,4 +164,19 @@ public function getPreferences() { return $this->preferences; } + + /** + * Get serializer + * + * @return SerializerInterface + * @deprecated + */ + private function getSerializer() + { + if (null === $this->serializer) { + $this->serializer = \Magento\Framework\App\ObjectManager::getInstance() + ->get(Serialize::class); + } + return $this->serializer; + } } diff --git a/lib/internal/Magento/Framework/ObjectManager/ConfigInterface.php b/lib/internal/Magento/Framework/ObjectManager/ConfigInterface.php index 2e4b41ab4ada8..0babcda062eba 100644 --- a/lib/internal/Magento/Framework/ObjectManager/ConfigInterface.php +++ b/lib/internal/Magento/Framework/ObjectManager/ConfigInterface.php @@ -29,7 +29,7 @@ public function setCache(ConfigCacheInterface $cache); * Retrieve list of arguments per type * * @param string $type - * @return array + * @return array|null */ public function getArguments($type); diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php index cf13b16a56db9..9266bf2d2b5f5 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php @@ -37,6 +37,13 @@ abstract class AbstractFactory implements \Magento\Framework\ObjectManager\Facto */ protected $globalArguments; + /** + * Object creation stack + * + * @var array + */ + protected $creationStack = []; + /** * @param \Magento\Framework\ObjectManager\ConfigInterface $config * @param ObjectManagerInterface $objectManager @@ -51,7 +58,7 @@ public function __construct( ) { $this->config = $config; $this->objectManager = $objectManager; - $this->definitions = $definitions ?: new \Magento\Framework\ObjectManager\Definition\Runtime(); + $this->definitions = $definitions ?: $this->getDefinitions(); $this->globalArguments = $globalArguments; } @@ -79,6 +86,17 @@ public function setArguments($arguments) $this->globalArguments = $arguments; } + /** + * @return \Magento\Framework\ObjectManager\DefinitionInterface + */ + public function getDefinitions() + { + if ($this->definitions === null) { + $this->definitions = new \Magento\Framework\ObjectManager\Definition\Runtime(); + } + return $this->definitions; + } + /** * Create object * @@ -177,4 +195,44 @@ protected function parseArray(&$array) } } } + + /** + * Resolve constructor arguments + * + * @param string $requestedType + * @param array $parameters + * @param array $arguments + * + * @return array + * + * @throws \UnexpectedValueException + * @throws \BadMethodCallException + */ + protected function resolveArgumentsInRuntime($requestedType, array $parameters, array $arguments = []) + { + $resolvedArguments = []; + foreach ($parameters as $parameter) { + list($paramName, $paramType, $paramRequired, $paramDefault) = $parameter; + $argument = null; + if (!empty($arguments) && (isset($arguments[$paramName]) || array_key_exists($paramName, $arguments))) { + $argument = $arguments[$paramName]; + } elseif ($paramRequired) { + if ($paramType) { + $argument = ['instance' => $paramType]; + } else { + $this->creationStack = []; + throw new \BadMethodCallException( + 'Missing required argument $' . $paramName . ' of ' . $requestedType . '.' + ); + } + } else { + $argument = $paramDefault; + } + + $this->resolveArgument($argument, $paramType, $paramDefault, $paramName, $requestedType); + + $resolvedArguments[] = $argument; + } + return $resolvedArguments; + } } diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/Compiled.php b/lib/internal/Magento/Framework/ObjectManager/Factory/Compiled.php index 6068a51e5edf7..845a2e60c5494 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/Compiled.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/Compiled.php @@ -1,6 +1,5 @@ config->getArguments($requestedType); $type = $this->config->getInstanceType($requestedType); - if (!$args) { + if ($args === []) { + // Case 1: no arguments required return new $type(); - } - - foreach ($args as $key => &$argument) { - if (isset($arguments[$key])) { - $argument = $arguments[$key]; - } elseif (isset($argument['_i_'])) { - $argument = $this->get($argument['_i_']); - } elseif (isset($argument['_ins_'])) { - $argument = $this->create($argument['_ins_']); - } elseif (isset($argument['_v_'])) { - $argument = $argument['_v_']; - } elseif (isset($argument['_vac_'])) { - $argument = $argument['_vac_']; - $this->parseArray($argument); - } elseif (isset($argument['_vn_'])) { - $argument = null; - } elseif (isset($argument['_a_'])) { - if (isset($this->globalArguments[$argument['_a_']])) { - $argument = $this->globalArguments[$argument['_a_']]; - } else { - $argument = $argument['_d_']; + } else if ($args !== null) { + /** + * Case 2: arguments retrieved from pre-compiled DI cache + * + * Argument key meanings: + * + * _i_: shared instance of a class or interface + * _ins_: non-shared instance of a class or interface + * _v_: non-array literal value + * _vac_: array, may be nested and contain other types of keys listed here (objects, array, nulls, etc) + * _vn_: null value + * _a_: value to be taken from named environment variable + * _d_: default value in case environment variable specified by _a_ does not exist + */ + foreach ($args as $key => &$argument) { + if (isset($arguments[$key])) { + $argument = $arguments[$key]; + } elseif (isset($argument['_i_'])) { + $argument = $this->get($argument['_i_']); + } elseif (isset($argument['_ins_'])) { + $argument = $this->create($argument['_ins_']); + } elseif (isset($argument['_v_'])) { + $argument = $argument['_v_']; + } elseif (isset($argument['_vac_'])) { + $argument = $argument['_vac_']; + $this->parseArray($argument); + } elseif (isset($argument['_vn_'])) { + $argument = null; + } elseif (isset($argument['_a_'])) { + if (isset($this->globalArguments[$argument['_a_']])) { + $argument = $this->globalArguments[$argument['_a_']]; + } else { + $argument = $argument['_d_']; + } } } + $args = array_values($args); + } else { + // Case 3: arguments retrieved in runtime + $parameters = $this->getDefinitions()->getParameters($type) ?: []; + $args = $this->resolveArgumentsInRuntime( + $type, + $parameters, + $arguments + ); } - $args = array_values($args); - return $this->createObject($type, $args); } diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php b/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php index 6c0e27f2486d0..5d4600e604fb0 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php @@ -7,13 +7,6 @@ class Developer extends \Magento\Framework\ObjectManager\Factory\AbstractFactory { - /** - * Object creation stack - * - * @var array - */ - protected $creationStack = []; - /** * Resolve constructor arguments * @@ -28,33 +21,17 @@ class Developer extends \Magento\Framework\ObjectManager\Factory\AbstractFactory */ protected function _resolveArguments($requestedType, array $parameters, array $arguments = []) { - $resolvedArguments = []; - $arguments = count($arguments) - ? array_replace($this->config->getArguments($requestedType), $arguments) - : $this->config->getArguments($requestedType); - foreach ($parameters as $parameter) { - list($paramName, $paramType, $paramRequired, $paramDefault) = $parameter; - $argument = null; - if (!empty($arguments) && (isset($arguments[$paramName]) || array_key_exists($paramName, $arguments))) { - $argument = $arguments[$paramName]; - } elseif ($paramRequired) { - if ($paramType) { - $argument = ['instance' => $paramType]; - } else { - $this->creationStack = []; - throw new \BadMethodCallException( - 'Missing required argument $' . $paramName . ' of ' . $requestedType . '.' - ); - } + // Get default arguments from config, merge with supplied arguments + $defaultArguments = $this->config->getArguments($requestedType); + if (is_array($defaultArguments)) { + if (count($arguments)) { + $arguments = array_replace($defaultArguments, $arguments); } else { - $argument = $paramDefault; + $arguments = $defaultArguments; } - - $this->resolveArgument($argument, $paramType, $paramDefault, $paramName, $requestedType); - - $resolvedArguments[] = $argument; } - return $resolvedArguments; + + return $this->resolveArgumentsInRuntime($requestedType, $parameters, $arguments); } /** diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php index 10d7c94437042..8e47230415d11 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php @@ -5,87 +5,90 @@ */ namespace Magento\Framework\ObjectManager\Test\Unit\Config; -use Magento\Framework\ObjectManager\Config\Compiled as CompiledConfig; -use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; +use Magento\Framework\ObjectManager\Config\Compiled; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManager; class CompiledTest extends \PHPUnit_Framework_TestCase { /** - * @var ObjectManagerHelper + * @var ObjectManager */ - private $objectManagerHelper; - - protected function setUp() - { - $this->objectManagerHelper = new ObjectManagerHelper($this); - } + private $objectManager; /** - * @param array $initialData - * @param array $configuration - * @param array $expectedArguments - * @param array $expectedVirtualTypes - * @param array $expectedPreferences - * - * @dataProvider extendDataProvider + * @var \Magento\Framework\ObjectManager\Config\Compiled */ - public function testExtend( - array $initialData, - array $configuration, - array $expectedArguments, - array $expectedVirtualTypes, - array $expectedPreferences - ) { - /** @var CompiledConfig $compiledConfig */ - $compiledConfig = $this->objectManagerHelper->getObject(CompiledConfig::class, ['data' => $initialData]); - $compiledConfig->extend($configuration); + private $compiled; - foreach ($expectedArguments as $type => $arguments) { - $this->assertEquals($arguments, $compiledConfig->getArguments($type)); - } + protected function setUp() + { + $this->objectManager = new ObjectManager($this); + + $initialData = [ + 'arguments' => [ + 'type1' => 'initial serialized configuration for type1', + 'class_with_no_arguments_serialized' => null, + 'class_with_arguments_serialized' => 'serialized arguments', + 'class_with_arguments_unserialized' => ['unserialized', 'arguments'], + 'class_with_no_arguments_unserialized' => [], + ], + 'instanceTypes' => [ + 'instanceType1' => 'instanceTypeValue1', + 'instanceType2' => 'instanceTypeValue2' + ], + 'preferences' => [ + 'preference1' => 'preferenceValue1', + 'preference2' => 'preferenceValue2' + ] + ]; - $this->assertEquals($expectedVirtualTypes, $compiledConfig->getVirtualTypes()); - $this->assertEquals($expectedPreferences, $compiledConfig->getPreferences()); + $this->compiled = $this->objectManager->getObject( + Compiled::class, + [ + 'data' => $initialData, + ] + ); } - /** - * @return array - */ - public function extendDataProvider() + public function testExtend() { - return [ - [ - 'initialData' => [ - 'arguments' => [ - 'type1' => serialize(['argument1_1' => 'argumentValue1_1', 'argument1_2' => 'argumentValue1_2']) - ], - 'instanceTypes' => [ - 'instanceType1' => 'instanceTypeValue1', 'instanceType2' => 'instanceTypeValue2' - ], - 'preferences' => ['preference1' => 'preferenceValue1', 'preference2' => 'preferenceValue2'] - ], - 'configuration' => [ - 'arguments' => [ - 'type1' => serialize(['argument1_1' => 'newArgumentValue1_1']), - 'type2' => serialize(['argument2_1' => 'newArgumentValue2_1']) - ], - 'instanceTypes' => [ - 'instanceType2' => 'newInstanceTypeValue2', 'instanceType3' => 'newInstanceTypeValue3' - ], - 'preferences' => ['preference1' => 'newPreferenceValue1'] - ], - 'expectedArguments' => [ - 'type1' => ['argument1_1' => 'newArgumentValue1_1'], - 'type2' => ['argument2_1' => 'newArgumentValue2_1'] - ], - 'expectedVirtualTypes' => [ - 'instanceType1' => 'instanceTypeValue1', 'instanceType2' => 'newInstanceTypeValue2', - 'instanceType3' => 'newInstanceTypeValue3' - ], - 'expectedPreferences' => [ - 'preference1' => 'newPreferenceValue1', 'preference2' => 'preferenceValue2' - ] + + $configuration = [ + 'arguments' => [ + 'type1' => 'serialized configuration for type1', + 'type2' => 'serialized configuration for type2' + ], + 'instanceTypes' => [ + 'instanceType2' => 'newInstanceTypeValue2', + 'instanceType3' => 'newInstanceTypeValue3' + ], + 'preferences' => [ + 'preference1' => 'newPreferenceValue1' + ] + ]; + $expectedArguments = [ + 'type1' => [ + 'argument1_1' => 'newArgumentValue1_1' + ], + 'type2' => [ + 'argument2_1' => 'newArgumentValue2_1' ] ]; + $expectedVirtualTypes = [ + 'instanceType1' => 'instanceTypeValue1', + 'instanceType2' => 'newInstanceTypeValue2', + 'instanceType3' => 'newInstanceTypeValue3' + ]; + $expectedPreferences = [ + 'preference1' => 'newPreferenceValue1', + 'preference2' => 'preferenceValue2' + ]; + + $this->compiled->extend($configuration); + foreach ($expectedArguments as $type => $arguments) { + $this->assertEquals($arguments, $this->compiled->getArguments($type)); + } + $this->assertEquals($expectedVirtualTypes, $this->compiled->getVirtualTypes()); + $this->assertEquals($expectedPreferences, $this->compiled->getPreferences()); } } diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php index 97026f5835502..6cd28c5177c10 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php @@ -6,47 +6,55 @@ namespace Magento\Framework\ObjectManager\Test\Unit\Factory; +use Magento\Framework\ObjectManager\ConfigInterface; +use Magento\Framework\ObjectManager\DefinitionInterface; use \Magento\Framework\ObjectManager\Factory\Compiled; +use Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencySharedTesting; +use Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencyTesting; +use Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting; +use Magento\Framework\ObjectManagerInterface; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class CompiledTest extends \PHPUnit_Framework_TestCase { - /** - * Object manager - * - * @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject - */ - protected $objectManager; + /** @var ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject */ + protected $objectManagerMock; - /** - * Object manager config - * - * @var \Magento\Framework\ObjectManager\ConfigInterface | \PHPUnit_Framework_MockObject_MockObject - */ + /** @var ConfigInterface | \PHPUnit_Framework_MockObject_MockObject */ protected $config; - /** - * @var Compiled - */ + /** @var DefinitionInterface | \PHPUnit_Framework_MockObject_MockObject */ + private $definitionsMock; + + /** @var Compiled */ protected $factory; - /** - * @var array - */ + /** @var array */ private $sharedInstances; + /** @var ObjectManager */ + private $objectManager; + protected function setUp() { - $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManagerInterface') + $this->objectManager = new ObjectManager($this); + $this->objectManagerMock = $this->getMockBuilder(ObjectManagerInterface::class) ->setMethods([]) ->getMock(); - $this->config = $this->getMockBuilder('Magento\Framework\ObjectManager\ConfigInterface') + $this->config = $this->getMockBuilder(ConfigInterface::class) ->setMethods([]) ->getMock(); $this->sharedInstances = []; $this->factory = new Compiled($this->config, $this->sharedInstances, []); - $this->factory->setObjectManager($this->objectManager); + $this->factory->setObjectManager($this->objectManagerMock); + + $this->definitionsMock = $this->getMockBuilder(DefinitionInterface::class)->getMock(); + $this->objectManager->setBackwardCompatibleProperty($this->factory, 'definitions', $this->definitionsMock); } public function testCreateSimple() @@ -54,9 +62,9 @@ public function testCreateSimple() $expectedConfig = $this->getSimpleConfig(); $requestedType = 'requestedType'; - $type = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting'; - $sharedType = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencySharedTesting'; - $nonSharedType = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencyTesting'; + $type = SimpleClassTesting::class; + $sharedType = DependencySharedTesting::class; + $nonSharedType = DependencyTesting::class; $this->config->expects($this->any()) ->method('getArguments') @@ -83,11 +91,11 @@ public function testCreateSimple() ] ); - /** @var \Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting $result */ + /** @var SimpleClassTesting $result */ $result = $this->factory->create($requestedType, []); $this->assertInstanceOf( - 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting', + SimpleClassTesting::class, $result ); $this->assertInstanceOf($sharedType, $result->getSharedDependency()); @@ -102,10 +110,11 @@ public function testCreateSimpleConfiguredArguments() { $expectedConfig = $this->getSimpleNestedConfig(); - $type = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting'; + $type = SimpleClassTesting::class; $requestedType = 'requestedType'; - $sharedType = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencySharedTesting'; - $nonSharedType = 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencyTesting'; + $sharedType = + DependencySharedTesting::class; + $nonSharedType = DependencyTesting::class; $this->config->expects($this->any()) ->method('getArguments') @@ -133,11 +142,11 @@ public function testCreateSimpleConfiguredArguments() ] ); - /** @var \Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting $result */ + /** @var SimpleClassTesting $result */ $result = $this->factory->create($requestedType, []); $this->assertInstanceOf( - 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting', + SimpleClassTesting::class, $result ); $this->assertInstanceOf($sharedType, $result->getSharedDependency()); @@ -161,8 +170,45 @@ public function testCreateSimpleConfiguredArguments() $this->assertNull($result->getNullValue()); } + public function testCreateGetArgumentsInRuntime() + { + // Stub OM to create test assets + $this->config->expects($this->any())->method('isShared')->willReturn(true); + $this->objectManagerMock->expects($this->any())->method('get')->willReturnMap( + [ + [DependencyTesting::class, new DependencyTesting()], + [DependencySharedTesting::class, new DependencySharedTesting()] + ] + ); + + // Simulate case where compiled DI config not found + $type = SimpleClassTesting::class; + $this->config->expects($this->any())->method('getArguments')->willReturn(null); + $this->config->expects($this->any())->method('getInstanceType')->willReturnArgument(0); + $this->definitionsMock->expects($this->once()) + ->method('getParameters') + ->with($type) + ->willReturn($this->getRuntimeParameters()); + + $sharedType = DependencySharedTesting::class; + $nonSharedType = DependencyTesting::class; + + // Run SUT + /** @var SimpleClassTesting $result */ + $result = $this->factory->create($type, []); + + $this->assertInstanceOf($type, $result); + $this->assertInstanceOf($sharedType, $result->getSharedDependency()); + $this->assertInstanceOf($nonSharedType, $result->getNonSharedDependency()); + $this->assertEquals('value', $result->getValue()); + $this->assertEquals(['default_value1', 'default_value2'], $result->getValueArray()); + $this->assertEquals(null, $result->getGlobalValue()); + $this->assertNull($result->getNullValue()); + } + /** - * Returns simple config + * Returns simple config with default constructor values for + * \Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting * * @return array */ @@ -170,10 +216,11 @@ private function getSimpleConfig() { return [ 'nonSharedDependency' => [ - '_ins_' => 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencyTesting', + '_ins_' => DependencyTesting::class, ], 'sharedDependency' => [ - '_i_' => 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencySharedTesting', + '_i_' => + DependencySharedTesting::class, ], 'value' => [ '_v_' => 'value', @@ -192,7 +239,8 @@ private function getSimpleConfig() } /** - * Returns nested config + * Returns config for \Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting + * with non-default nested array value for the $value_array parameter * * @return array */ @@ -200,10 +248,11 @@ private function getSimpleNestedConfig() { return [ 'nonSharedDependency' => [ - '_ins_' => 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencyTesting', + '_ins_' => DependencyTesting::class, ], 'sharedDependency' => [ - '_i_' => 'Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\DependencySharedTesting', + '_i_' => + DependencySharedTesting::class, ], 'value' => [ '_v_' => 'value', @@ -212,13 +261,13 @@ private function getSimpleNestedConfig() '_vac_' => [ 'array_value' => 'value', 'array_configured_instance' => [ - '_i_' => 'Magento\Framework\ObjectManager\Test\Unit' + '_i_' => \Magento\Framework\ObjectManager\Test\Unit::class . '\Factory\Fixture\Compiled\DependencySharedTesting', ], 'array_configured_array' => [ 'array_array_value' => 'value', 'array_array_configured_instance' => [ - '_ins_' => 'Magento\Framework\ObjectManager' + '_ins_' => \Magento\Framework\ObjectManager::class . '\Test\Unit\Factory\Fixture\Compiled\DependencyTesting', ], ], @@ -245,4 +294,63 @@ private function getSimpleNestedConfig() ] ]; } + + /** + * Returns mock parameter list for + * \Magento\Framework\ObjectManager\Test\Unit\Factory\Fixture\Compiled\SimpleClassTesting + * as would be found by \Magento\Framework\ObjectManager\DefinitionInterface + * + * @return array + */ + private function getRuntimeParameters() + { + return [ + 0 => + [ + 0 => 'nonSharedDependency', + 1 => DependencyTesting::class, + 2 => true, + 3 => null, + ], + 1 => + [ + 0 => 'sharedDependency', + 1 => DependencySharedTesting::class, + 2 => true, + 3 => null, + ], + 2 => + [ + 0 => 'value', + 1 => null, + 2 => false, + 3 => 'value', + ], + 3 => + [ + 0 => 'valueArray', + 1 => null, + 2 => false, + 3 => + [ + 0 => 'default_value1', + 1 => 'default_value2', + ], + ], + 4 => + [ + 0 => 'globalValue', + 1 => null, + 2 => false, + 3 => '', + ], + 5 => + [ + 0 => 'nullValue', + 1 => null, + 2 => false, + 3 => null, + ], + ]; + } } From 61d678e96bb8474c7b77f4f351395ea1d4682b44 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 3 Jan 2018 11:59:40 +0200 Subject: [PATCH 180/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Test/Integrity/_files/blacklist/exception_hierarchy.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/exception_hierarchy.txt b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/exception_hierarchy.txt index 18e66b8144dc0..fc71a0a2875aa 100644 --- a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/exception_hierarchy.txt +++ b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/exception_hierarchy.txt @@ -3,3 +3,4 @@ \Magento\Framework\Config\Dom\ValidationException \Magento\Framework\Search\Request\EmptyRequestDataException \Magento\Framework\Search\Request\NonExistingRequestNameException +\Magento\Catalog\Model\Product\Image\NotLoadInfoImageException From d0a6b5beec0971cb9b3e4ce4d07f03dec89614f7 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 3 Jan 2018 12:38:18 +0200 Subject: [PATCH 181/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Framework/ObjectManager/Config/Compiled.php | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php b/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php index e6f50e9222653..d3ab1d6633adf 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php +++ b/lib/internal/Magento/Framework/ObjectManager/Config/Compiled.php @@ -164,19 +164,4 @@ public function getPreferences() { return $this->preferences; } - - /** - * Get serializer - * - * @return SerializerInterface - * @deprecated - */ - private function getSerializer() - { - if (null === $this->serializer) { - $this->serializer = \Magento\Framework\App\ObjectManager::getInstance() - ->get(Serialize::class); - } - return $this->serializer; - } } From 8ef5f19a73382050d4216e69f5be321ca763c053 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 3 Jan 2018 13:08:33 +0200 Subject: [PATCH 182/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php | 4 ++-- .../Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php index 78ff7a94d8776..760eca726288d 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php @@ -68,12 +68,12 @@ public function setUp() ); $this->collectionFactoryMock = $this->getMock( - \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory::class, + \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory::class, ['create'], [], '', false - ); + ); $this->collectionMock = $this->getMock( \Magento\Customer\Model\ResourceModel\Customer\Collection::class, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php index ffab5c43b0fcf..bb59a2d5e6438 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php @@ -67,7 +67,7 @@ public function testLoad() ['order_configurable_product_count_from'], ['order_big_configurable_product_count_to'], ['order_big_configurable_product_count_from'], - ['order_quotes_enable',] + ['order_quotes_enable'] )->willReturn(1); $this->assertSame($expectedResult, $this->fixture->load()->getData()); } From 3a99ed6a5039c4572d7c25a4960a910e6d21404e Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 3 Jan 2018 13:09:30 +0200 Subject: [PATCH 183/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Model/Product/Image/NotLoadInfoImageException.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php index 0a503e48d0af0..3d4c11921fc96 100644 --- a/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php +++ b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php @@ -1,8 +1,8 @@ Date: Wed, 3 Jan 2018 15:04:17 +0200 Subject: [PATCH 184/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Catalog/Model/Product/Image/NotLoadInfoImageException.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php index 3d4c11921fc96..51e65bdcbac48 100644 --- a/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php +++ b/app/code/Magento/Catalog/Model/Product/Image/NotLoadInfoImageException.php @@ -1,6 +1,6 @@ Date: Wed, 3 Jan 2018 16:48:32 +0200 Subject: [PATCH 185/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Factory/AbstractFactoryRuntimeDefinitionsTestCases.php | 2 +- .../Magento/Framework/ObjectManager/Factory/CompiledTest.php | 2 +- .../Framework/ObjectManager/Factory/Dynamic/DeveloperTest.php | 2 +- .../Framework/ObjectManager/TestAsset/BasicInjection.php | 2 +- .../Framework/ObjectManager/TestAsset/ComplexDependencies.php | 2 +- .../ObjectManager/TestAsset/ConstructorOneArgument.php | 2 +- .../Framework/ObjectManager/TestAsset/DependsOnAlias.php | 2 +- .../Framework/ObjectManager/TestAsset/DependsOnInterface.php | 2 +- .../Framework/ObjectManager/TestAsset/HasOptionalParameters.php | 2 +- .../testsuite/Magento/Setup/Fixtures/FixtureModelTest.php | 2 +- .../Setup/Fixtures/FixturesAsserts/BundleProductsAssert.php | 2 +- .../Fixtures/FixturesAsserts/ConfigurableProductsAssert.php | 2 +- .../Magento/Setup/Fixtures/FixturesAsserts/ImagesAssert.php | 2 +- .../Setup/Fixtures/FixturesAsserts/SimpleProductsAssert.php | 2 +- .../Magento/Framework/ObjectManager/Config/Compiled.php | 2 +- .../Magento/Framework/ObjectManager/ConfigInterface.php | 2 +- .../Magento/Framework/ObjectManager/Factory/AbstractFactory.php | 2 +- .../Magento/Framework/ObjectManager/Factory/Compiled.php | 2 +- .../Framework/ObjectManager/Factory/Dynamic/Developer.php | 2 +- .../Framework/ObjectManager/Test/Unit/Config/CompiledTest.php | 2 +- .../Framework/ObjectManager/Test/Unit/Factory/CompiledTest.php | 2 +- setup/performance-toolkit/profiles/ce/extra_large.xml | 2 +- setup/performance-toolkit/profiles/ce/large.xml | 2 +- setup/performance-toolkit/profiles/ce/medium.xml | 2 +- setup/performance-toolkit/profiles/ce/small.xml | 2 +- setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/AttributeSet/Pattern.php | 2 +- .../Magento/Setup/Fixtures/AttributeSet/SwatchesGenerator.php | 2 +- setup/src/Magento/Setup/Fixtures/CartPriceRulesFixture.php | 2 +- .../src/Magento/Setup/Fixtures/ConfigurableProductsFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/EavVariationsFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/IndexersStatesApplyFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/OrdersFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php | 2 +- setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php | 2 +- .../src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php | 2 +- setup/src/Magento/Setup/Fixtures/StoresFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/TaxRulesFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/WebsiteCategoryProvider.php | 2 +- .../Test/Unit/Fixtures/AttributeSet/SwatchesGeneratorTest.php | 2 +- .../Setup/Test/Unit/Fixtures/AttributeSetsFixtureTest.php | 2 +- .../Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php | 2 +- .../Magento/Setup/Test/Unit/Fixtures/CategoriesFixtureTest.php | 2 +- .../Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php | 2 +- .../Setup/Test/Unit/Fixtures/CustomerGroupsFixtureTest.php | 2 +- .../Magento/Setup/Test/Unit/Fixtures/CustomersFixtureTest.php | 2 +- .../Setup/Test/Unit/Fixtures/EavVariationsFixtureTest.php | 2 +- setup/src/Magento/Setup/Test/Unit/Fixtures/FixtureModelTest.php | 2 +- .../Setup/Test/Unit/Fixtures/IndexersStatesApplyFixtureTest.php | 2 +- .../Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php | 2 +- .../Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php | 2 +- .../Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php | 2 +- .../src/Magento/Setup/Test/Unit/Fixtures/StoresFixtureTest.php | 2 +- .../Magento/Setup/Test/Unit/Fixtures/TaxRulesFixtureTest.php | 2 +- 54 files changed, 54 insertions(+), 54 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php index 56378b94f910e..3059797d95fc7 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php +++ b/dev/tests/integration/testsuite/Magento/Framework/ObjectManager/Factory/AbstractFactoryRuntimeDefinitionsTestCases.php @@ -1,6 +1,6 @@ diff --git a/setup/performance-toolkit/profiles/ce/large.xml b/setup/performance-toolkit/profiles/ce/large.xml index be893c9320860..457093325a3e8 100644 --- a/setup/performance-toolkit/profiles/ce/large.xml +++ b/setup/performance-toolkit/profiles/ce/large.xml @@ -1,7 +1,7 @@ diff --git a/setup/performance-toolkit/profiles/ce/medium.xml b/setup/performance-toolkit/profiles/ce/medium.xml index ae18de530bb23..6059858ecf9b5 100644 --- a/setup/performance-toolkit/profiles/ce/medium.xml +++ b/setup/performance-toolkit/profiles/ce/medium.xml @@ -1,7 +1,7 @@ diff --git a/setup/performance-toolkit/profiles/ce/small.xml b/setup/performance-toolkit/profiles/ce/small.xml index fae8fe46dc0bb..eb52056d22f63 100644 --- a/setup/performance-toolkit/profiles/ce/small.xml +++ b/setup/performance-toolkit/profiles/ce/small.xml @@ -1,7 +1,7 @@ diff --git a/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php b/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php index 0a771519c7d5f..b4749bc66b06c 100644 --- a/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php +++ b/setup/src/Magento/Setup/Fixtures/AdminUsersFixture.php @@ -1,6 +1,6 @@ Date: Wed, 3 Jan 2018 16:49:13 +0200 Subject: [PATCH 186/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- app/code/Magento/Catalog/Block/Product/ImageBuilder.php | 2 +- app/code/Magento/Catalog/Model/Product/Image.php | 2 +- app/code/Magento/Wishlist/CustomerData/Wishlist.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ImageBuilder.php b/app/code/Magento/Catalog/Block/Product/ImageBuilder.php index b159e59c0ff16..95b66d3ddb78e 100644 --- a/app/code/Magento/Catalog/Block/Product/ImageBuilder.php +++ b/app/code/Magento/Catalog/Block/Product/ImageBuilder.php @@ -1,6 +1,6 @@ Date: Wed, 3 Jan 2018 17:09:36 +0200 Subject: [PATCH 187/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/FixtureModel.php | 2 +- .../Setup/Test/Unit/Fixtures/ConfigsApplyFixtureTest.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php index 7c4ec3fe97281..8672f830ad88b 100644 --- a/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php +++ b/setup/src/Magento/Setup/Fixtures/ConfigsApplyFixture.php @@ -1,6 +1,6 @@ Date: Wed, 3 Jan 2018 19:55:55 +0200 Subject: [PATCH 188/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php index 12dee05c11795..2e689d1e5ba7d 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php @@ -214,9 +214,6 @@ private function prepareProducts() ->method('getSku')->willReturnOnConsecutiveCalls('sku1', 'sku2', 'sku3', 'sku3', 'sku4', 'sku4'); $product->expects($this->atLeastOnce()) ->method('getName')->willReturnOnConsecutiveCalls('name1', 'name2', 'name3', 'name4'); - $this->serializer->expects($this->atLeastOnce()) - ->method('serialize') - ->willReturn('a:1:{i:10;i:1;}'); $this->optionRepository->expects($this->atLeastOnce()) ->method('getList') ->withConsecutive(['sku3'], ['sku4']) From 2876cc5a50ba2702117eec34734226595f73658a Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 3 Jan 2018 20:10:54 +0200 Subject: [PATCH 189/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Test/Unit/Config/CompiledTest.php | 139 +++++++++--------- 1 file changed, 68 insertions(+), 71 deletions(-) diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php index 4e4bc262baff8..10d7c94437042 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/CompiledTest.php @@ -1,94 +1,91 @@ objectManager = new ObjectManager($this); + $this->objectManagerHelper = new ObjectManagerHelper($this); + } - $initialData = [ - 'arguments' => [ - 'type1' => 'initial serialized configuration for type1', - 'class_with_no_arguments_serialized' => null, - 'class_with_arguments_serialized' => 'serialized arguments', - 'class_with_arguments_unserialized' => ['unserialized', 'arguments'], - 'class_with_no_arguments_unserialized' => [], - ], - 'instanceTypes' => [ - 'instanceType1' => 'instanceTypeValue1', - 'instanceType2' => 'instanceTypeValue2' - ], - 'preferences' => [ - 'preference1' => 'preferenceValue1', - 'preference2' => 'preferenceValue2' - ] - ]; + /** + * @param array $initialData + * @param array $configuration + * @param array $expectedArguments + * @param array $expectedVirtualTypes + * @param array $expectedPreferences + * + * @dataProvider extendDataProvider + */ + public function testExtend( + array $initialData, + array $configuration, + array $expectedArguments, + array $expectedVirtualTypes, + array $expectedPreferences + ) { + /** @var CompiledConfig $compiledConfig */ + $compiledConfig = $this->objectManagerHelper->getObject(CompiledConfig::class, ['data' => $initialData]); + $compiledConfig->extend($configuration); - $this->compiled = $this->objectManager->getObject( - Compiled::class, - [ - 'data' => $initialData, - ] - ); + foreach ($expectedArguments as $type => $arguments) { + $this->assertEquals($arguments, $compiledConfig->getArguments($type)); + } + + $this->assertEquals($expectedVirtualTypes, $compiledConfig->getVirtualTypes()); + $this->assertEquals($expectedPreferences, $compiledConfig->getPreferences()); } - public function testExtend() + /** + * @return array + */ + public function extendDataProvider() { - - $configuration = [ - 'arguments' => [ - 'type1' => 'serialized configuration for type1', - 'type2' => 'serialized configuration for type2' - ], - 'instanceTypes' => [ - 'instanceType2' => 'newInstanceTypeValue2', - 'instanceType3' => 'newInstanceTypeValue3' - ], - 'preferences' => [ - 'preference1' => 'newPreferenceValue1' - ] - ]; - $expectedArguments = [ - 'type1' => [ - 'argument1_1' => 'newArgumentValue1_1' - ], - 'type2' => [ - 'argument2_1' => 'newArgumentValue2_1' + return [ + [ + 'initialData' => [ + 'arguments' => [ + 'type1' => serialize(['argument1_1' => 'argumentValue1_1', 'argument1_2' => 'argumentValue1_2']) + ], + 'instanceTypes' => [ + 'instanceType1' => 'instanceTypeValue1', 'instanceType2' => 'instanceTypeValue2' + ], + 'preferences' => ['preference1' => 'preferenceValue1', 'preference2' => 'preferenceValue2'] + ], + 'configuration' => [ + 'arguments' => [ + 'type1' => serialize(['argument1_1' => 'newArgumentValue1_1']), + 'type2' => serialize(['argument2_1' => 'newArgumentValue2_1']) + ], + 'instanceTypes' => [ + 'instanceType2' => 'newInstanceTypeValue2', 'instanceType3' => 'newInstanceTypeValue3' + ], + 'preferences' => ['preference1' => 'newPreferenceValue1'] + ], + 'expectedArguments' => [ + 'type1' => ['argument1_1' => 'newArgumentValue1_1'], + 'type2' => ['argument2_1' => 'newArgumentValue2_1'] + ], + 'expectedVirtualTypes' => [ + 'instanceType1' => 'instanceTypeValue1', 'instanceType2' => 'newInstanceTypeValue2', + 'instanceType3' => 'newInstanceTypeValue3' + ], + 'expectedPreferences' => [ + 'preference1' => 'newPreferenceValue1', 'preference2' => 'preferenceValue2' + ] ] ]; - $expectedVirtualTypes = [ - 'instanceType1' => 'instanceTypeValue1', - 'instanceType2' => 'newInstanceTypeValue2', - 'instanceType3' => 'newInstanceTypeValue3' - ]; - $expectedPreferences = [ - 'preference1' => 'newPreferenceValue1', - 'preference2' => 'preferenceValue2' - ]; - - $this->compiled->extend($configuration); - foreach ($expectedArguments as $type => $arguments) { - $this->assertEquals($arguments, $this->compiled->getArguments($type)); - } - $this->assertEquals($expectedVirtualTypes, $this->compiled->getVirtualTypes()); - $this->assertEquals($expectedPreferences, $this->compiled->getPreferences()); } } From b342f8cbfd956eed2ef19b0845fc405b210076eb Mon Sep 17 00:00:00 2001 From: Andrii Voskoboinikov Date: Fri, 22 Sep 2017 17:45:18 +0300 Subject: [PATCH 190/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT - MAGETWO-75935: Search results is not the same for the same search queries --- .../ResourceModel/Fulltext/Collection.php | 22 ++++++--- .../ResourceModel/Fulltext/CollectionTest.php | 39 ++++++++++++++++ .../products_with_the_same_search_score.php | 45 +++++++++++++++++++ ...ts_with_the_same_search_score_rollback.php | 21 +++++++++ 4 files changed, 122 insertions(+), 5 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score.php create mode 100644 dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score_rollback.php diff --git a/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php b/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php index a255b33c28727..4449dc2a6596f 100644 --- a/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php +++ b/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection.php @@ -56,7 +56,7 @@ class Collection extends \Magento\Catalog\Model\ResourceModel\Product\Collection /** * @var string|null */ - private $order = null; + private $relevanceOrderDirection = null; /** * @var string @@ -345,9 +345,19 @@ protected function _renderFiltersBefore() $this->_totalRecords = $this->searchResult->getTotalCount(); - if ($this->order && 'relevance' === $this->order['field']) { - $this->getSelect()->order('search_result.'. TemporaryStorage::FIELD_SCORE . ' ' . $this->order['dir']); + if ($this->relevanceOrderDirection) { + $this->getSelect()->order( + 'search_result.'. TemporaryStorage::FIELD_SCORE . ' ' . $this->relevanceOrderDirection + ); } + + /* + * This order is required to force search results be the same + * for the same requests and products with the same relevance + * NOTE: this does not replace existing orders but ADDs one more + */ + $this->setOrder('entity_id'); + return parent::_renderFiltersBefore(); } @@ -369,10 +379,12 @@ protected function _renderFilters() */ public function setOrder($attribute, $dir = Select::SQL_DESC) { - $this->order = ['field' => $attribute, 'dir' => $dir]; - if ($attribute != 'relevance') { + if ($attribute === 'relevance') { + $this->relevanceOrderDirection = $dir; + } else { parent::setOrder($attribute, $dir); } + return $this; } diff --git a/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/ResourceModel/Fulltext/CollectionTest.php b/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/ResourceModel/Fulltext/CollectionTest.php index ff8fe18b1fd4a..8c087ce66279f 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/ResourceModel/Fulltext/CollectionTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogSearch/Model/ResourceModel/Fulltext/CollectionTest.php @@ -31,6 +31,45 @@ public function testLoadWithFilterSearch($request, $filters, $expectedCount) $this->assertCount($expectedCount, $items); } + /** + * @magentoDataFixture Magento/Framework/Search/_files/products_with_the_same_search_score.php + */ + public function testSearchResultsAreTheSameForSameRequests() + { + $howManySearchRequests = 3; + $previousResult = null; + + $objManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + + foreach (range(1, $howManySearchRequests) as $i) { + /** @var \Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection $fulltextCollection */ + $fulltextCollection = $objManager->create( + \Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection::class, + ['searchRequestName' => 'quick_search_container'] + ); + + $fulltextCollection->addFieldToFilter('search_term', 'shorts'); + $fulltextCollection->setOrder('relevance'); + $fulltextCollection->load(); + $items = $fulltextCollection->getItems(); + $this->assertGreaterThan( + 0, + count($items), + sprintf("Search #%s result must not be empty", $i) + ); + + if ($previousResult) { + $this->assertEquals( + $previousResult, + array_keys($items), + "Search result must be the same for the same requests" + ); + } + + $previousResult = array_keys($items); + } + } + public function filtersDataProviderSearch() { return [ diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score.php b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score.php new file mode 100644 index 0000000000000..08925d7f503f7 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score.php @@ -0,0 +1,45 @@ +reinitialize(); + +/** @var ProductRepositoryInterface $productRepository */ +$productRepository = Bootstrap::getObjectManager() + ->create(ProductRepositoryInterface::class); + +$howManyProducts = 5; + +foreach (range(1, $howManyProducts) as $productId) { + $product = Bootstrap::getObjectManager()->create(Product::class); + $product->setTypeId(Type::TYPE_SIMPLE) + ->setAttributeSetId(4) + ->setWebsiteIds([1]) + ->setName('Cool short' . $productId) + ->setSku('cool_shorts_' . $productId) + ->setPrice(42) + ->setShortDescription("Some description about shorts") + ->setTaxClassId(0) + ->setDescription('Some description about shorts') + ->setVisibility(Visibility::VISIBILITY_BOTH) + ->setStatus(Status::STATUS_ENABLED) + ->setStockData( + [ + 'use_config_manage_stock' => 1, + 'qty' => 100, + 'is_qty_decimal' => 0, + 'is_in_stock' => 1, + ] + ); + + $productRepository->save($product); +} diff --git a/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score_rollback.php b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score_rollback.php new file mode 100644 index 0000000000000..af3dbd121447a --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Framework/Search/_files/products_with_the_same_search_score_rollback.php @@ -0,0 +1,21 @@ +get(\Magento\Framework\Registry::class); + +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', true); + +/** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $collection */ +$collection = $objectManager->create(\Magento\Catalog\Model\ResourceModel\Product\Collection::class); +$collection->addAttributeToSelect('id')->load(); +if ($collection->count() > 0) { + $collection->delete(); +} + +$registry->unregister('isSecureArea'); +$registry->register('isSecureArea', false); From 073e9e9d24ede8260403d365b9ca0a68db22c3e3 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Tue, 9 Jan 2018 20:09:40 +0200 Subject: [PATCH 191/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/performance-toolkit/README.md | 2 -- setup/src/Magento/Setup/Fixtures/FixtureModel.php | 3 --- 2 files changed, 5 deletions(-) diff --git a/setup/performance-toolkit/README.md b/setup/performance-toolkit/README.md index 6d883d7421d1b..de9bee309c03b 100644 --- a/setup/performance-toolkit/README.md +++ b/setup/performance-toolkit/README.md @@ -44,8 +44,6 @@ For run Admin Pool in multithreading mode, please be sure, that: **Note:** Before generating medium or large profiles, it may be necessary to increase the value of `tmp_table_size` and `max_heap_table_size` parameters for MySQL to 512Mb or more. The value of `memory_limit` for PHP should be 1Gb or more. -There are two JMeter scenarios located in `setup/performance-toolkit` folder: `benchmark.jmx` and `benchmark_2015.jmx` (legacy version). - **Note:** To be sure that all quotes are empty, run the following MySQL query before each run of a scenario: UPDATE quote SET is_active = 0 WHERE is_active = 1; diff --git a/setup/src/Magento/Setup/Fixtures/FixtureModel.php b/setup/src/Magento/Setup/Fixtures/FixtureModel.php index 5707bd3abc749..0df5853a44eb7 100644 --- a/setup/src/Magento/Setup/Fixtures/FixtureModel.php +++ b/setup/src/Magento/Setup/Fixtures/FixtureModel.php @@ -59,7 +59,6 @@ class FixtureModel * Parameters labels * * @var array - * @deprecated 2.2.0 */ protected $paramLabels = []; @@ -139,7 +138,6 @@ public function loadFixtures() * Get param labels * * @return array - * @deprecated 2.2.0 */ public function getParamLabels() { @@ -225,7 +223,6 @@ public function initObjectManager($area = self::AREA_CODE) * Reset object manager * * @return \Magento\Framework\ObjectManagerInterface - * @deprecated 2.2.0 */ public function resetObjectManager() { From 5806eca9c2dfcd81d9358bf6d8749973a6a81250 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Tue, 9 Jan 2018 20:19:43 +0200 Subject: [PATCH 192/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Fixtures/Quote/QuoteConfiguration.php | 138 --- .../Setup/Fixtures/Quote/QuoteGenerator.php | 793 ------------------ .../Fixtures/Quote/QuoteGeneratorFactory.php | 50 -- .../Fixtures/Quote/QuoteConfigurationTest.php | 74 -- .../Quote/QuoteGeneratorFactoryTest.php | 60 -- .../Fixtures/Quote/QuoteGeneratorTest.php | 279 ------ 6 files changed, 1394 deletions(-) delete mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php delete mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php delete mode 100644 setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php delete mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php delete mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php delete mode 100644 setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php deleted file mode 100644 index 3bd7820e3e5d0..0000000000000 --- a/setup/src/Magento/Setup/Fixtures/Quote/QuoteConfiguration.php +++ /dev/null @@ -1,138 +0,0 @@ - 'simple_count_to', - 'order_simple_product_count_from' => 'simple_count_from', - 'order_configurable_product_count_to' => 'configurable_count_to', - 'order_configurable_product_count_from' => 'configurable_count_from', - 'order_big_configurable_product_count_to' => 'big_configurable_count_to', - 'order_big_configurable_product_count_from' => 'big_configurable_count_from', - 'order_quotes_enable' => 'order_quotes_enable', - ]; - - /** - * @var string - */ - protected $fixtureDataFilename = 'orders_fixture_data.json'; - - /** - * @var FixtureModel - */ - private $fixtureModel; - - /** - * @param FixtureModel $fixtureModel - */ - public function __construct(FixtureModel $fixtureModel) - { - $this->fixtureModel = $fixtureModel; - } - - /** - * Fills object with data. - * - * @return $this - */ - public function load() - { - $this->addData([ - 'simple_count_to' => self::SIMPLE_PRODUCT_COUNT_TO, - 'simple_count_from' => self::SIMPLE_PRODUCT_COUNT_FROM, - 'configurable_count_to' => self::CONFIGURABLE_PRODUCT_COUNT_TO, - 'configurable_count_from' => self::CONFIGURABLE_PRODUCT_COUNT_FROM, - 'big_configurable_count_to' => self::BIG_CONFIGURABLE_PRODUCT_COUNT_TO, - 'big_configurable_count_from' => self::BIG_CONFIGURABLE_PRODUCT_COUNT_FROM, - ]); - - $this->setData( - 'fixture_data_filename', - dirname(__DIR__) . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . $this->fixtureDataFilename - ); - $this->accumulateData(); - - return $this; - } - - /** - * Accumulate data from fixute model to object values. - * - * @return $this - */ - private function accumulateData() - { - foreach ($this->_globalMap as $getKey => $setKey) { - $value = $this->fixtureModel->getValue($getKey); - if (null !== $value) { - $this->setData($setKey, $value); - } - } - return $this; - } -} diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php deleted file mode 100644 index 786afdc45da22..0000000000000 --- a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGenerator.php +++ /dev/null @@ -1,793 +0,0 @@ -storeManager = $storeManager; - $this->productCollectionFactory = $productCollectionFactory; - $this->productRepository = $productRepository; - $this->optionRepository = $optionRepository; - $this->linkManagement = $linkManagement; - $this->config = $config; - $this->fixtureModel = $fixtureModel; - } - - /** - * Prepare and save quotes in database. - * - * @throws \Exception - * @return void - */ - public function generateQuotes() - { - $maxItemsPerOrder = $this->config->getSimpleCountTo() - + ($this->config->getConfigurableCountTo() + $this->config->getBigConfigurableCountTo()) * 2; - - $maxItemId = $this->getMaxEntityId( - 'quote_item', - \Magento\Quote\Model\ResourceModel\Quote\Item::class, - 'item_id' - ); - /** @var \Generator $itemIdSequence */ - $itemIdSequence = $this->getItemIdSequence( - $maxItemId, - $this->config->getRequiredQuoteQuantity(), - $maxItemsPerOrder - ); - $this->productStubData = $this->prepareProductsForQuote(); - $this->prepareQueryTemplates(); - - $entityId = $this->getMaxEntityId('quote', \Magento\Quote\Model\ResourceModel\Quote::class, 'entity_id'); - $quoteQty = $this->config->getExistsQuoteQuantity(); - $batchNumber = 0; - while ($quoteQty < $this->config->getRequiredQuoteQuantity()) { - $entityId++; - $batchNumber++; - $quoteQty++; - - try { - $this->saveQuoteWithQuoteItems($entityId, $itemIdSequence); - } catch (\Exception $lastException) { - foreach ($this->resourceConnections as $connection) { - if ($connection->getTransactionLevel() > 0) { - $connection->rollBack(); - } - } - throw $lastException; - } - - if ($batchNumber >= self::BATCH_SIZE) { - $this->commitBatch(); - $batchNumber = 0; - } - } - - foreach ($this->resourceConnections as $connection) { - if ($connection->getTransactionLevel() > 0) { - $connection->commit(); - } - } - } - - /** - * Save quote and quote items. - * - * @param int $entityId - * @param \Generator $itemIdSequence - * @return void - */ - private function saveQuoteWithQuoteItems($entityId, \Generator $itemIdSequence) - { - $productCount = [ - Type::TYPE_SIMPLE => mt_rand( - $this->config->getSimpleCountFrom(), - $this->config->getSimpleCountTo() - ), - Configurable::TYPE_CODE => mt_rand( - $this->config->getConfigurableCountFrom(), - $this->config->getConfigurableCountTo() - ), - QuoteConfiguration::BIG_CONFIGURABLE_TYPE => mt_rand( - $this->config->getBigConfigurableCountFrom(), - $this->config->getBigConfigurableCountTo() - ) - ]; - $quote = [ - '%itemsPerOrder%' => array_sum($productCount), - '%orderNumber%' => 100000000 * $this->getStubProductStoreId($entityId) + $entityId, - '%email%' => "quote_{$entityId}@example.com", - '%time%' => date(\Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT), - '%productStoreId%' => $this->getStubProductStoreId($entityId), - '%productStoreName%' => $this->getStubProductStoreName($entityId), - '%entityId%' => $entityId, - ]; - $shippingAddress = ['%orderAddressId%' => $entityId * 2 - 1, '%addressType%' => 'shipping']; - $billingAddress = ['%orderAddressId%' => $entityId * 2, '%addressType%' => 'billing']; - $address = $this->getAddressDataFixture(); - - $this->query('quote', $quote); - $this->query('quote_address', $quote, $address, $shippingAddress); - $this->query('quote_address', $quote, $address, $billingAddress); - - for ($i = 0; $i < $productCount[Type::TYPE_SIMPLE]; $i++) { - $this->saveItemSimpleData($entityId, $i, $itemIdSequence->current(), $quote); - $itemIdSequence->next(); - } - - foreach ([Configurable::TYPE_CODE, QuoteConfiguration::BIG_CONFIGURABLE_TYPE] as $type) { - for ($i = 0; $i < $productCount[$type]; $i++) { - // Generate parent item - $parentItemId = $itemIdSequence->current(); - $this->saveParentItemConfigurableData($entityId, $i, $parentItemId, $type, $quote); - $itemIdSequence->next(); - - // Generate child item - $itemId = $itemIdSequence->current(); - $this->saveChildItemConfigurable($entityId, $i, $itemId, $parentItemId, $type, $quote); - $itemIdSequence->next(); - } - } - } - - /** - * Prepare and save quote item with simple product. - * - * @param int $entityId - * @param int $index - * @param int $itemId - * @param array $quote - * @return void - */ - private function saveItemSimpleData($entityId, $index, $itemId, array $quote) - { - $itemData = [ - '%productId%' => $this->getStubProductId($entityId, $index, Type::TYPE_SIMPLE), - '%sku%' => $this->getStubProductSku($entityId, $index, Type::TYPE_SIMPLE), - '%name%' => $this->getStubProductName($entityId, $index, Type::TYPE_SIMPLE), - '%itemId%' => $itemId, - '%productType%' => Type::TYPE_SIMPLE, - '%productOptions%' => $this->getStubProductBuyRequest($entityId, $index, Type::TYPE_SIMPLE), - '%parentItemId%' => 'null', - ]; - $this->query('quote_item', $quote, $itemData); - $this->query('quote_item_option', $quote, $itemData, [ - '%code%' => 'info_buyRequest', - '%value%' => json_encode([ - 'product' => $this->getStubProductId($entityId, $index, Type::TYPE_SIMPLE), - 'qty' => "1", - 'uenc' => 'aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw' - ]) - ]); - } - - /** - * Prepare and save parent quote item for configurable product. - * - * @param int $entityId - * @param int $index - * @param int $parentItemId - * @param string $productType - * @param array $quote - * @return void - */ - private function saveParentItemConfigurableData($entityId, $index, $parentItemId, $productType, array $quote) - { - $itemData = [ - '%productId%' => $this->getStubProductId($entityId, $index, $productType), - '%sku%' => $this->getStubProductSku($entityId, $index, $productType), - '%name%' => $this->getStubProductName($entityId, $index, $productType), - '%productOptions%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['order'], - '%itemId%' => $parentItemId, - '%parentItemId%' => 'null', - '%productType%' => Configurable::TYPE_CODE - ]; - $this->query('quote_item', $quote, $itemData); - $this->query('quote_item_option', $quote, $itemData, [ - '%code%' => 'info_buyRequest', - '%value%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['quote'] - ]); - $this->query('quote_item_option', $quote, $itemData, [ - '%code%' => 'attributes', - '%value%' => $this->getStubProductBuyRequest($entityId, $index, $productType)['super_attribute'] - ]); - $itemData['%productId%'] = $this->getStubProductChildId($entityId, $index, $productType); - $this->query('quote_item_option', $itemData, [ - '%code%' => "product_qty_" . $this->getStubProductChildId($entityId, $index, $productType), - '%value%' => "1" - ]); - $this->query('quote_item_option', $itemData, [ - '%code%' => "simple_product", - '%value%' => $this->getStubProductChildId($entityId, $index, $productType) - ]); - } - - /** - * Prepare and save child quote item for configurable product. - * - * @param int $entityId - * @param int $index - * @param int $itemId - * @param int $parentItemId - * @param string $productType - * @param array $quote - * @return void - */ - private function saveChildItemConfigurable($entityId, $index, $itemId, $parentItemId, $productType, array $quote) - { - $itemData = [ - '%productId%' => $this->getStubProductChildId($entityId, $index, $productType), - '%sku%' => $this->getStubProductSku($entityId, $index, $productType), - '%name%' => $this->getStubProductName($entityId, $index, $productType), - '%productOptions%' => $this->getStubProductChildBuyRequest($entityId, $index, $productType)['order'], - '%itemId%' => $itemId, - '%parentItemId%' => $parentItemId, - '%productType%' => Type::TYPE_SIMPLE - ]; - - $this->query('quote_item', $quote, $itemData); - $this->query('quote_item_option', $itemData, [ - '%code%' => "info_buyRequest", - '%value%' => $this->getStubProductChildBuyRequest($entityId, $index, $productType)['quote'] - ]); - $this->query('quote_item_option', $itemData, [ - '%code%' => "parent_product_id", - '%value%' => $this->getStubProductId($entityId, $index, $productType) - ]); - } - - /** - * Get store id for quote item by product index. - * - * @param int $entityId - * @return int - */ - private function getStubProductStoreId($entityId) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][0]; - } - - /** - * Get store name for quote item by product index. - * - * @param int $entityId - * @return string - */ - private function getStubProductStoreName($entityId) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][1]; - } - - /** - * Get product id for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return int - */ - private function getStubProductId($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['id']; - } - - /** - * Get product SKU for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return string - */ - private function getStubProductSku($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['sku']; - } - - /** - * Get product name for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return string - */ - private function getStubProductName($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['name']; - } - - /** - * Get product buy request for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return string - */ - private function getStubProductBuyRequest($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['buyRequest']; - } - - /** - * Get configurable product child id for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return string - */ - private function getStubProductChildBuyRequest($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['childBuyRequest']; - } - - /** - * Get configurable product child id for quote item by product index. - * - * @param int $entityId - * @param int $index - * @param string $type - * @return int - */ - private function getStubProductChildId($entityId, $index, $type) - { - return $this->productStubData[$this->getProductStubIndex($entityId)][2][$type][$index]['childId']; - } - - /** - * Get index of item in product stub array. - * - * @param int $entityId - * @return int - */ - private function getProductStubIndex($entityId) - { - $storeCount = count($this->productStubData); - $qty = intdiv($this->config->getRequiredQuoteQuantity(), $storeCount); - return intdiv($entityId, $qty) % $storeCount; - } - - /** - * Get quote address mock data. - * - * @return array - */ - private function getAddressDataFixture() - { - return [ - '%firstName%' => 'First Name', - '%lastName%' => 'Last Name', - '%company%' => 'Company', - '%address%' => 'Address', - '%city%' => 'city', - '%state%' => 'Alabama', - '%country%' => 'US', - '%zip%' => '11111', - '%phone%' => '911' - ]; - } - - /** - * Prepare mock of products for quotes. - * - * @return array - */ - private function prepareProductsForQuote() - { - $result = []; - - foreach ($this->storeManager->getStores() as $store) { - $productsResult = []; - $this->storeManager->setCurrentStore($store->getId()); - - if ($this->config->getSimpleCountTo() > 0) { - $productsResult[Type::TYPE_SIMPLE] = $this->prepareSimpleProducts( - $this->getProductIds($store, Type::TYPE_SIMPLE, $this->config->getSimpleCountTo()) - ); - } - $configurables = [ - Configurable::TYPE_CODE => $this->config->getConfigurableCountTo(), - QuoteConfiguration::BIG_CONFIGURABLE_TYPE => $this->config->getBigConfigurableCountTo(), - ]; - - foreach ($configurables as $type => $qty) { - if ($qty > 0) { - $productsResult[$type] = $this->prepareConfigurableProducts( - $this->getProductIds( - $store, - $type, - $qty - ) - ); - } - } - - $result[] = [ - $store->getId(), - implode(PHP_EOL, [ - $this->storeManager->getWebsite($store->getWebsiteId())->getName(), - $this->storeManager->getGroup($store->getStoreGroupId())->getName(), - $store->getName() - ]), - $productsResult - ]; - } - - return $result; - } - - /** - * Load and prepare INSERT query templates data from external file. - * - * Queries are prepared using external json file, where keys are DB column names and values represent data, - * to be inserted to the table. Data may contain a default value or a placeholder which is replaced later during - * flow (in the query method of this class). - * Additionally, in case if multiple DB connections are set up, transaction is started for each connection. - * - * @return void - */ - private function prepareQueryTemplates() - { - $fileName = $this->config->getFixtureDataFilename(); - $templateData = json_decode(file_get_contents(realpath($fileName)), true); - foreach ($templateData as $table => $template) { - if (isset($template['_table'])) { - $table = $template['_table']; - unset($template['_table']); - } - if (isset($template['_resource'])) { - $resource = $template['_resource']; - unset($template['_resource']); - } else { - $resource = explode("_", $table); - foreach ($resource as &$item) { - $item = ucfirst($item); - } - $resource = "Magento\\" - . array_shift($resource) - . "\\Model\\ResourceModel\\" - . implode("\\", $resource); - } - - $tableName = $this->getTableName($table, $resource); - - $querySuffix = ""; - if (isset($template['_query_suffix'])) { - $querySuffix = $template['_query_suffix']; - unset($template['_query_suffix']); - } - - $fields = implode(', ', array_keys($template)); - $values = implode(', ', array_values($template)); - - $connection = $this->getConnection($resource); - if ($connection->getTransactionLevel() == 0) { - $connection->beginTransaction(); - } - - $this->queryTemplates[$table] = "INSERT INTO `{$tableName}` ({$fields}) VALUES ({$values}){$querySuffix};"; - $this->resourceConnections[$table] = $connection; - } - } - - /** - * Build and execute query. - * - * Builds a database query by replacing placeholder values in the cached queries and executes query in appropriate - * DB connection (if setup). Additionally filters out quote-related queries, if appropriate flag is set. - * - * @param string $table - * @param array ...$replacements - * @return void - */ - protected function query($table, ... $replacements) - { - $query = $this->queryTemplates[$table]; - foreach ($replacements as $data) { - $query = str_replace(array_keys($data), array_values($data), $query); - } - - $this->resourceConnections[$table]->query($query); - } - - /** - * Get maximum order id currently existing in the database. - * - * To support incremental generation of the orders it is necessary to get the maximum order entity_id currently. - * existing in the database. - * - * @param string $tableName - * @param string $resourceName - * @param string $column [optional] - * @return int - */ - private function getMaxEntityId($tableName, $resourceName, $column = 'entity_id') - { - $tableName = $this->getTableName($tableName, $resourceName); - $connection = $this->getConnection($resourceName); - return (int)$connection->query("SELECT MAX(`{$column}`) FROM `{$tableName}`;")->fetchColumn(0); - } - - /** - * Get a limited amount of product id's from a collection filtered by store and specific product type. - * - * @param \Magento\Store\Api\Data\StoreInterface $store - * @param string $typeId - * @param int $limit [optional] - * @return array - */ - private function getProductIds(\Magento\Store\Api\Data\StoreInterface $store, $typeId, $limit = null) - { - /** @var $productCollection \Magento\Catalog\Model\ResourceModel\Product\Collection */ - $productCollection = $this->productCollectionFactory->create(); - $productCollection->addStoreFilter($store->getId()); - $productCollection->addWebsiteFilter($store->getWebsiteId()); - - // "Big%" should be replaced with a configurable value. - if ($typeId === QuoteConfiguration::BIG_CONFIGURABLE_TYPE) { - $productCollection->getSelect()->where(" type_id = '" . Configurable::TYPE_CODE . "' "); - $productCollection->getSelect()->where(" sku LIKE 'Big%' "); - } else { - $productCollection->getSelect()->where(" type_id = '$typeId' "); - $productCollection->getSelect()->where(" sku NOT LIKE 'Big%' "); - } - - return $productCollection->getAllIds($limit); - } - - /** - * Prepare data for the simple products to be used as order items. - * - * Based on the Product Id's load data, which is required to replace placeholders in queries. - * - * @param array $productIds [optional] - * @return array - */ - private function prepareSimpleProducts(array $productIds = []) - { - $productsResult = []; - foreach ($productIds as $key => $simpleId) { - $simpleProduct = $this->productRepository->getById($simpleId); - $productsResult[$key]['id'] = $simpleId; - $productsResult[$key]['sku'] = $simpleProduct->getSku(); - $productsResult[$key]['name'] = $simpleProduct->getName(); - $productsResult[$key]['buyRequest'] = json_encode([ - "info_buyRequest" => [ - "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", - "product" => $simpleId, - "qty" => "1" - ] - ]); - } - return $productsResult; - } - - /** - * Prepare data for the configurable products to be used as order items. - * - * Based on the Product Id's load data, which is required to replace placeholders in queries. - * - * @param array $productIds [optional] - * @return array - */ - private function prepareConfigurableProducts(array $productIds = []) - { - $productsResult = []; - foreach ($productIds as $key => $configurableId) { - $configurableProduct = $this->productRepository->getById($configurableId); - $options = $this->optionRepository->getList($configurableProduct->getSku()); - $configurableChild = $this->linkManagement->getChildren($configurableProduct->getSku())[0]; - $simpleSku = $configurableChild->getSku(); - $simpleId = $this->productRepository->get($simpleSku)->getId(); - - $attributesInfo = []; - $superAttribute = []; - foreach ($options as $option) { - $attributesInfo[] = [ - "label" => $option->getLabel(), - "value" => $option['options']['0']['label'], - "option_id" => $option->getAttributeId(), - "option_value" => $option->getValues()[0]->getValueIndex() - ]; - $superAttribute[$option->getAttributeId()] = $option->getValues()[0]->getValueIndex(); - } - - $configurableBuyRequest = [ - "info_buyRequest" => [ - "uenc" => "aHR0cDovL21hZ2UyLmNvbS9jYXRlZ29yeS0xLmh0bWw", - "product" => $configurableId, - "selected_configurable_option" => $simpleId, - "related_product" => "", - "super_attribute" => $superAttribute, - "qty" => 1 - ], - "attributes_info" => $attributesInfo, - "simple_name" => $configurableChild->getName(), - "simple_sku" => $configurableChild->getSku(), - ]; - $simpleBuyRequest = [ - "info_buyRequest" => [ - "uenc" => "aHR0cDovL21hZ2VudG8uZGV2L2NvbmZpZ3VyYWJsZS1wcm9kdWN0LTEuaHRtbA,,", - "product" => $configurableId, - "selected_configurable_option" => $simpleId, - "related_product" => "", - "super_attribute" => $superAttribute, - "qty" => "1" - ] - ]; - - $quoteConfigurableBuyRequest = $configurableBuyRequest['info_buyRequest']; - $quoteSimpleBuyRequest = $simpleBuyRequest['info_buyRequest']; - unset($quoteConfigurableBuyRequest['selected_configurable_option']); - unset($quoteSimpleBuyRequest['selected_configurable_option']); - - $productsResult[$key]['id'] = $configurableId; - $productsResult[$key]['sku'] = $simpleSku; - $productsResult[$key]['name'] = $configurableProduct->getName(); - $productsResult[$key]['childId'] = $simpleId; - $productsResult[$key]['buyRequest'] = [ - 'order' => json_encode($configurableBuyRequest), - 'quote' => json_encode($quoteConfigurableBuyRequest), - 'super_attribute' => json_encode($superAttribute) - ]; - $productsResult[$key]['childBuyRequest'] = [ - 'order' => json_encode($simpleBuyRequest), - 'quote' => json_encode($quoteSimpleBuyRequest), - ]; - } - return $productsResult; - } - - /** - * Commit all active transactions at the end of the batch. - * - * Many transactions may exist, since generation process creates a transaction per each available DB connection. - * - * @return void - */ - private function commitBatch() - { - foreach ($this->resourceConnections as $connection) { - if ($connection->getTransactionLevel() > 0) { - $connection->commit(); - $connection->beginTransaction(); - } - } - } - - /** - * Get sequence for order items. - * - * @param int $maxItemId - * @param int $requestedOrders - * @param int $maxItemsPerOrder - * @return \Generator - */ - private function getItemIdSequence($maxItemId, $requestedOrders, $maxItemsPerOrder) - { - $requestedItems = $maxItemId + ($requestedOrders + 1) * $maxItemsPerOrder; - for ($i = $maxItemId + 1; $i <= $requestedItems; $i++) { - yield $i; - } - } - - /** - * Get real table name for db table, validated by db adapter. - * In case prefix or other features mutating default table names are used. - * - * @param string $tableName - * @param string $resourceName - * @return string - */ - private function getTableName($tableName, $resourceName) - { - /** @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ - $resource = $this->fixtureModel->getObjectManager()->get($resourceName); - return $this->getConnection($resourceName)->getTableName($resource->getTable($tableName)); - } - - /** - * Get connection to database for specified resource. - * - * @param string $resourceName - * @return \Magento\Framework\DB\Adapter\AdapterInterface - */ - private function getConnection($resourceName) - { - $resource = $this->fixtureModel->getObjectManager()->get($resourceName); - return $resource->getConnection(); - } -} diff --git a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php b/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php deleted file mode 100644 index 5c507b0915278..0000000000000 --- a/setup/src/Magento/Setup/Fixtures/Quote/QuoteGeneratorFactory.php +++ /dev/null @@ -1,50 +0,0 @@ -objectManager = $objectManager; - $this->instanceName = $instanceName; - } - - /** - * Create class instance with specified parameters. - * - * @param array $data [optional] - * @return mixed - */ - public function create(array $data = []) - { - return $this->objectManager->create($this->instanceName, $data); - } -} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php deleted file mode 100644 index a9f2f857093e5..0000000000000 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteConfigurationTest.php +++ /dev/null @@ -1,74 +0,0 @@ -fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) - ->disableOriginalConstructor() - ->getMock(); - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - - $this->fixture = $objectManager->getObject( - \Magento\Setup\Fixtures\Quote\QuoteConfiguration::class, - [ - 'fixtureModel' => $this->fixtureModelMock - ] - ); - } - - /** - * Test load method. - * - * @return void - */ - public function testLoad() - { - $dir = str_replace('Test/Unit/', '', dirname(__DIR__)); - $expectedResult = [ - 'simple_count_to' => 1, - 'simple_count_from' => 1, - 'configurable_count_to' => 1, - 'configurable_count_from' => 1, - 'big_configurable_count_to' => 1, - 'big_configurable_count_from' => 1, - 'fixture_data_filename' => - $dir . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . 'orders_fixture_data.json', - 'order_quotes_enable' => 1, - ]; - $this->fixtureModelMock->expects($this->atLeastOnce()) - ->method('getValue') - ->withConsecutive( - ['order_simple_product_count_to'], - ['order_simple_product_count_from'], - ['order_configurable_product_count_to'], - ['order_configurable_product_count_from'], - ['order_big_configurable_product_count_to'], - ['order_big_configurable_product_count_from'], - ['order_quotes_enable'] - )->willReturn(1); - $this->assertSame($expectedResult, $this->fixture->load()->getData()); - } -} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php deleted file mode 100644 index 5725529dfe704..0000000000000 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorFactoryTest.php +++ /dev/null @@ -1,60 +0,0 @@ -objectManager = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - - $this->fixture = $objectManager->getObject( - \Magento\Setup\Fixtures\Quote\QuoteGeneratorFactory::class, - [ - 'objectManager' => $this->objectManager, - 'instanceName' => \Magento\Setup\Fixtures\Quote\QuoteGenerator::class, - ] - ); - } - - /** - * Test create method. - * - * @return void - */ - public function testCreate() - { - $result = $this->getMockBuilder(\Magento\Setup\Fixtures\Quote\QuoteGenerator::class) - ->disableOriginalConstructor() - ->getMock(); - $this->objectManager->expects($this->once()) - ->method('create') - ->with(\Magento\Setup\Fixtures\Quote\QuoteGenerator::class, []) - ->willReturn($result); - - $this->assertSame($result, $this->fixture->create([])); - } -} diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php deleted file mode 100644 index 2e689d1e5ba7d..0000000000000 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/Quote/QuoteGeneratorTest.php +++ /dev/null @@ -1,279 +0,0 @@ -fixtureModelMock = $this->getMockBuilder(\Magento\Setup\Fixtures\FixtureModel::class) - ->disableOriginalConstructor() - ->getMock(); - $this->storeManager = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $this->productRepository = $this->getMockBuilder(\Magento\Catalog\Api\ProductRepositoryInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $this->optionRepository = $this->getMockBuilder( - \Magento\ConfigurableProduct\Api\OptionRepositoryInterface::class - ) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $this->productCollectionFactory = $this->getMockBuilder( - \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory::class - ) - ->disableOriginalConstructor() - ->setMethods(['create']) - ->getMock(); - $this->linkManagement = $this->getMockBuilder(\Magento\ConfigurableProduct\Api\LinkManagementInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - - $this->config = $this->getMockBuilder(\Magento\Setup\Fixtures\Quote\QuoteConfiguration::class) - ->disableOriginalConstructor() - ->setMethods( - [ - 'getSimpleCountTo', - 'getConfigurableCountTo', - 'getBigConfigurableCountTo', - 'getRequiredQuoteQuantity', - 'getFixtureDataFilename', - 'getExistsQuoteQuantity', - ] - ) - ->getMock(); - $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - - $this->fixture = $objectManager->getObject( - \Magento\Setup\Fixtures\Quote\QuoteGenerator::class, - [ - 'fixtureModel' => $this->fixtureModelMock, - 'storeManager' => $this->storeManager, - 'productRepository' => $this->productRepository, - 'optionRepository' => $this->optionRepository, - 'productCollectionFactory' => $this->productCollectionFactory, - 'linkManagement' => $this->linkManagement, - 'config' => $this->config, - ] - ); - } - - /** - * Test generateQuotes method. - * - * @return void - */ - public function testGenerateQuotes() - { - $storeId = 1; - $websiteId = 1; - $storeGroupId = 1; - $simpleProductIds = [1, 2]; - $configurableProductId = [3]; - $bigConfigurableProductId = [4]; - $dir = str_replace('Test/Unit/', '', dirname(__DIR__)); - $store = $this->getMockBuilder(\Magento\Store\Api\Data\StoreInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $website = $this->getMockBuilder(\Magento\Store\Api\Data\WebsiteInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $storeGroup = $this->getMockBuilder(\Magento\Store\Api\Data\GroupInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $productCollection = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product\Collection::class) - ->disableOriginalConstructor() - ->getMock(); - $select = $this->getMockBuilder(\Magento\Framework\DB\Select::class) - ->disableOriginalConstructor() - ->getMock(); - $this->config->expects($this->atLeastOnce())->method('getSimpleCountTo')->willReturn(2); - $this->config->expects($this->atLeastOnce())->method('getConfigurableCountTo')->willReturn(1); - $this->config->expects($this->atLeastOnce())->method('getBigConfigurableCountTo')->willReturn(1); - $this->config->expects($this->atLeastOnce())->method('getRequiredQuoteQuantity')->willReturn(1); - $this->config->expects($this->atLeastOnce())->method('getExistsQuoteQuantity')->willReturn(0); - $this->config->expects($this->atLeastOnce()) - ->method('getFixtureDataFilename') - ->willReturn($dir . DIRECTORY_SEPARATOR . "_files" . DIRECTORY_SEPARATOR . 'orders_fixture_data.json'); - $this->storeManager->expects($this->atLeastOnce())->method('getStores')->willReturn([$store]); - $this->storeManager->expects($this->atLeastOnce()) - ->method('getWebsite')->with($websiteId)->willReturn($website); - $this->storeManager->expects($this->atLeastOnce()) - ->method('getGroup')->with($storeGroupId)->willReturn($storeGroup); - $store->expects($this->atLeastOnce())->method('getId')->willReturn($storeId); - $store->expects($this->atLeastOnce())->method('getWebsiteId')->willReturn($websiteId); - $store->expects($this->atLeastOnce())->method('getStoreGroupId')->willReturn($storeGroupId); - $website->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); - $store->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); - $storeGroup->expects($this->atLeastOnce())->method('getName')->willReturn('Default'); - $this->storeManager->expects($this->atLeastOnce())->method('setCurrentStore')->with($storeId); - $this->productCollectionFactory->expects($this->atLeastOnce()) - ->method('create')->willReturn($productCollection); - $productCollection->expects($this->atLeastOnce())->method('addStoreFilter')->with(1)->willReturnSelf(); - $productCollection->expects($this->atLeastOnce())->method('addWebsiteFilter')->with(1)->willReturnSelf(); - $productCollection->expects($this->atLeastOnce())->method('getSelect')->willReturn($select); - $select->expects($this->atLeastOnce()) - ->method('where') - ->withConsecutive( - [' type_id = \'simple\' '], - [' sku NOT LIKE \'Big%\' '], - [' type_id = \'configurable\' '], - [' sku NOT LIKE \'Big%\' '], - [' type_id = \'configurable\' '], - [' sku LIKE \'Big%\' '] - )->willReturnSelf(); - $productCollection->expects($this->atLeastOnce()) - ->method('getAllIds') - ->withConsecutive([2], [1], [1]) - ->willReturnOnConsecutiveCalls($simpleProductIds, $configurableProductId, $bigConfigurableProductId); - $this->prepareProducts(); - $this->mockConnection(); - $this->fixture->generateQuotes(); - } - - /** - * Prepare products mocks. - * - * @return void - */ - private function prepareProducts() - { - $product = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $configurableChild = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $childProduct = $this->getMockBuilder(\Magento\Catalog\Api\Data\ProductInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $option = $this->getMockBuilder(\Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute::class) - ->disableOriginalConstructor() - ->getMock(); - $optionValue = $this->getMockBuilder(\Magento\ConfigurableProduct\Api\Data\OptionValueInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $this->productRepository->expects($this->atLeastOnce()) - ->method('getById') - ->withConsecutive([1], [2], [3], [4]) - ->willReturn($product); - $product->expects($this->atLeastOnce()) - ->method('getSku')->willReturnOnConsecutiveCalls('sku1', 'sku2', 'sku3', 'sku3', 'sku4', 'sku4'); - $product->expects($this->atLeastOnce()) - ->method('getName')->willReturnOnConsecutiveCalls('name1', 'name2', 'name3', 'name4'); - $this->optionRepository->expects($this->atLeastOnce()) - ->method('getList') - ->withConsecutive(['sku3'], ['sku4']) - ->willReturn([$option]); - $this->linkManagement->expects($this->atLeastOnce()) - ->method('getChildren') - ->withConsecutive(['sku3'], ['sku4']) - ->willReturn([$configurableChild]); - $configurableChild->expects($this->atLeastOnce()) - ->method('getSku') - ->willReturnOnConsecutiveCalls('childSku3', 'childSku3', 'childSku4', 'childSku4'); - $this->productRepository->expects($this->atLeastOnce()) - ->method('get') - ->withConsecutive(['childSku3'], ['childSku4']) - ->willReturn($childProduct); - $childProduct->expects($this->atLeastOnce())->method('getId')->willReturnOnConsecutiveCalls(10, 11); - $option->expects($this->atLeastOnce())->method('getLabel')->willReturnOnConsecutiveCalls('label3', 'label4'); - $option->expects($this->atLeastOnce()) - ->method('getAttributeId')->willReturnOnConsecutiveCalls(10, 10, 20, 20); - $option->expects($this->atLeastOnce())->method('getValues')->willReturn([$optionValue]); - $optionValue->expects($this->atLeastOnce())->method('getValueIndex')->willReturn(1); - $configurableChild->expects($this->atLeastOnce()) - ->method('getName')->willReturnOnConsecutiveCalls('childName3', 'childName4'); - } - - /** - * Mock connection to DB and queries. - * - * @return void - */ - private function mockConnection() - { - $objectManager = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $resource = $this->getMockBuilder(\Magento\Framework\Model\ResourceModel\Db\AbstractDb::class) - ->disableOriginalConstructor() - ->getMock(); - $connection = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class) - ->disableOriginalConstructor() - ->getMockForAbstractClass(); - $statement = $this->getMockBuilder(\Magento\Framework\DB\Statement\Pdo\Mysql::class) - ->disableOriginalConstructor() - ->getMock(); - $this->fixtureModelMock->expects($this->atLeastOnce())->method('getObjectManager')->willReturn($objectManager); - $objectManager->expects($this->atLeastOnce()) - ->method('get') - ->willReturn($resource); - $resource->expects($this->atLeastOnce())->method('getConnection')->willReturn($connection); - $connection->expects($this->atLeastOnce()) - ->method('getTableName') - ->willReturn('table_name'); - $resource->expects($this->atLeastOnce()) - ->method('getTable') - ->willReturn('table_name'); - $connection->expects($this->atLeastOnce()) - ->method('query') - ->willReturn($statement); - $connection->expects($this->atLeastOnce())->method('getTransactionLevel')->willReturn(0); - $connection->expects($this->atLeastOnce())->method('beginTransaction')->willReturnSelf(); - $statement->expects($this->atLeastOnce())->method('fetchColumn')->with(0)->willReturn(25); - } -} From d30fb35389b5fceac27750e82cb97ee119a5dc7f Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Wed, 10 Jan 2018 12:58:44 +0200 Subject: [PATCH 193/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/performance-toolkit/benchmark.jmx | 167 ++++-------------------- 1 file changed, 27 insertions(+), 140 deletions(-) diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index 154915cd3a4fc..e1f0d31e79586 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -804,164 +804,59 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr - - mpaf/tool/fragments/ce/setup/extract_categories.jmx - + - - - - - - Content-Type - application/json - - - Accept - */* - - - - - - true - - - - false - {"username":"${admin_user}","password":"${admin_password}"} - = - - + + + - ${request_protocol} + - ${base_path}rest/V1/integration/admin/token - POST + ${base_path} + GET true false true false false + mpaf/tool/fragments/ce/setup/extract_categories.jmx - - admin_token - $ - - - BODY - - - + - ^[a-z0-9-]+$ + <span>Category ([0-9]+)</span> Assertion.response_data false - 1 - variable - admin_token + 2 - - - - - Authorization - Bearer ${admin_token} - - - - - - - - - true - path - = - true - searchCriteria[filterGroups][0][filters][0][field] - - - true - 1/2/% - = - true - searchCriteria[filterGroups][0][filters][0][value] - - - true - like - = - true - searchCriteria[filterGroups][0][filters][0][conditionType] - - - true - level - = - true - searchCriteria[filterGroups][1][filters][0][field] - - - true - 2 - = - true - searchCriteria[filterGroups][1][filters][0][value] - - - true - ${categories_count} - = - true - searchCriteria[pageSize] - - - - - - - - ${request_protocol} - - ${base_path}rest/V1/categories/list - GET - true - false - false - false - false - - - - + false category_url_keys - url_key\",\"value\":\"(.*?)\" - $1$ + <a href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}" class="level-top" > + $2$ -1 + simple_product_1_url_key - + false category_names - name\":\"(.*?)\" - $1$ + <a href="http://${host}${base_path}(index.php/)?category-([0-9]+)${url_suffix}" class="level-top" ><span>([^'"]+)</span> + $3$ -1 + simple_product_1_url_key - category_url_keys category_url_key @@ -1021,7 +916,7 @@ if (1 == Integer.parseInt(vars.get("category_name_counter"))) { } else { categoryNamesList = props.get("category_names_list"); } - + log.info("category name: " + vars.get("category_name")); categoryNamesList.add(vars.get("category_name")); @@ -1036,7 +931,6 @@ props.put("category_name", vars.get("category_name")); false - @@ -20940,7 +20834,7 @@ vars.put("related_product_id", props.get("simple_products_list").get(relatedInde false - mycolor + mysize,mycolor = true searchCriteria[filterGroups][0][filters][0][value] @@ -20952,19 +20846,12 @@ vars.put("related_product_id", props.get("simple_products_list").get(relatedInde true searchCriteria[filterGroups][0][filters][0][field] - + false - mysize - = - true - searchCriteria[filterGroups][0][filters][1][value] - - - false - attribute_code + in = true - searchCriteria[filterGroups][0][filters][1][field] + searchCriteria[filterGroups][0][filters][0][condition_type] @@ -23701,7 +23588,7 @@ function addConfigurableMatrix(attributes) { }); }); - sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products)); + sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); vars.putObject("configurable_variations_assertion", variationNames); } @@ -24331,7 +24218,7 @@ function addConfigurableMatrix(attributes) { }); }); - sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products)); + sampler.addArgument("product[configurable-matrix-serialized]", JSON.stringify(products)); vars.putObject("configurable_variations_assertion", variationNames); } @@ -30353,7 +30240,7 @@ vars.put("admin_user", adminUser); ${request_protocol} - ${base_path}rest/default/V1/categories/list + ${base_path}rest/default/V1/categories GET true false From 508d51bc45065fa4802d23c66754b940051539e2 Mon Sep 17 00:00:00 2001 From: Andrii Voskoboinikov Date: Fri, 12 Jan 2018 12:23:39 +0200 Subject: [PATCH 194/555] MAGETWO-85904: Investigate fluctuations of PAT Nightly build --- ...LinkedProductSelectBuilderByIndexPrice.php | 1 + .../LinkedProductSelectBuilderByBasePrice.php | 1 + ...nkedProductSelectBuilderBySpecialPrice.php | 1 + .../LinkedProductSelectBuilderByTierPrice.php | 1 + ...ProductSelectBuilderByCatalogRulePrice.php | 1 + .../Security/Model/AdminSessionsManager.php | 64 +++++++++++++++++-- .../Unit/Model/AdminSessionsManagerTest.php | 20 ++++-- .../Security/Model/Plugin/AuthSessionTest.php | 49 +++++++++++++- setup/performance-toolkit/benchmark.jmx | 8 ++- 9 files changed, 132 insertions(+), 14 deletions(-) diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/LinkedProductSelectBuilderByIndexPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/LinkedProductSelectBuilderByIndexPrice.php index ffaf8a5d100d3..9ad557727b9d8 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/LinkedProductSelectBuilderByIndexPrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/LinkedProductSelectBuilderByIndexPrice.php @@ -86,6 +86,7 @@ public function build($productId) ->where('t.website_id = ?', $this->storeManager->getStore()->getWebsiteId()) ->where('t.customer_group_id = ?', $this->customerSession->getCustomerGroupId()) ->order('t.min_price ' . Select::SQL_ASC) + ->order(BaseSelectProcessorInterface::PRODUCT_TABLE_ALIAS . '.' . $linkField . ' ' . Select::SQL_ASC) ->limit(1); $priceSelect = $this->baseSelectProcessor->process($priceSelect); diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByBasePrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByBasePrice.php index a029e2cd0d1f9..cf95895769d84 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByBasePrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByBasePrice.php @@ -95,6 +95,7 @@ public function build($productId) ->where('t.attribute_id = ?', $priceAttribute->getAttributeId()) ->where('t.value IS NOT NULL') ->order('t.value ' . Select::SQL_ASC) + ->order(BaseSelectProcessorInterface::PRODUCT_TABLE_ALIAS . '.' . $linkField . ' ' . Select::SQL_ASC) ->limit(1); $priceSelect = $this->baseSelectProcessor->process($priceSelect); diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderBySpecialPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderBySpecialPrice.php index 17ce55b1252d6..bd7191cdaedb3 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderBySpecialPrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderBySpecialPrice.php @@ -139,6 +139,7 @@ public function build($productId) 'special_to.value IS NULL OR ' . $connection->getDatePartSql('special_to.value') .' >= ?', $currentDate )->order('t.value ' . Select::SQL_ASC) + ->order(BaseSelectProcessorInterface::PRODUCT_TABLE_ALIAS . '.' . $linkField . ' ' . Select::SQL_ASC) ->limit(1); $specialPrice = $this->baseSelectProcessor->process($specialPrice); diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByTierPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByTierPrice.php index b884d2504a47a..b3564d8883867 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByTierPrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/LinkedProductSelectBuilderByTierPrice.php @@ -97,6 +97,7 @@ public function build($productId) ->where('t.all_groups = 1 OR customer_group_id = ?', $this->customerSession->getCustomerGroupId()) ->where('t.qty = ?', 1) ->order('t.value ' . Select::SQL_ASC) + ->order(BaseSelectProcessorInterface::PRODUCT_TABLE_ALIAS . '.' . $linkField . ' ' . Select::SQL_ASC) ->limit(1); $priceSelect = $this->baseSelectProcessor->process($priceSelect); diff --git a/app/code/Magento/CatalogRule/Model/ResourceModel/Product/LinkedProductSelectBuilderByCatalogRulePrice.php b/app/code/Magento/CatalogRule/Model/ResourceModel/Product/LinkedProductSelectBuilderByCatalogRulePrice.php index 6b835aaf3cc3e..25e3840ea78bb 100644 --- a/app/code/Magento/CatalogRule/Model/ResourceModel/Product/LinkedProductSelectBuilderByCatalogRulePrice.php +++ b/app/code/Magento/CatalogRule/Model/ResourceModel/Product/LinkedProductSelectBuilderByCatalogRulePrice.php @@ -105,6 +105,7 @@ public function build($productId) ->where('t.customer_group_id = ?', $this->customerSession->getCustomerGroupId()) ->where('t.rule_date = ?', $currentDate) ->order('t.rule_price ' . Select::SQL_ASC) + ->order(BaseSelectProcessorInterface::PRODUCT_TABLE_ALIAS . '.' . $linkField . ' ' . Select::SQL_ASC) ->limit(1); $priceSelect = $this->baseSelectProcessor->process($priceSelect); diff --git a/app/code/Magento/Security/Model/AdminSessionsManager.php b/app/code/Magento/Security/Model/AdminSessionsManager.php index ecf0e6ece4148..48f4473827488 100644 --- a/app/code/Magento/Security/Model/AdminSessionsManager.php +++ b/app/code/Magento/Security/Model/AdminSessionsManager.php @@ -58,6 +58,14 @@ class AdminSessionsManager */ private $remoteAddress; + /** + * Max lifetime for session prolong to be valid (sec) + * + * Means that after session was prolonged + * all other prolongs will be ignored within this period + */ + private $maxIntervalBetweenConsecutiveProlongs = 60; + /** * @param ConfigInterface $securityConfig * @param \Magento\Backend\Model\Auth\Session $authSession @@ -114,11 +122,16 @@ public function processLogin() */ public function processProlong() { - $this->getCurrentSession()->setData( - 'updated_at', - $this->authSession->getUpdatedAt() - ); - $this->getCurrentSession()->save(); + if ($this->lastProlongIsOldEnough()) { + $this->getCurrentSession()->setData( + 'updated_at', + date( + \Magento\Framework\Stdlib\DateTime::DATETIME_PHP_FORMAT, + $this->authSession->getUpdatedAt() + ) + ); + $this->getCurrentSession()->save(); + } return $this; } @@ -279,4 +292,45 @@ protected function createAdminSessionInfoCollection() { return $this->adminSessionInfoCollectionFactory->create(); } + + /** + * Calculates diff between now and last session updated_at + * and decides whether new prolong must be triggered or not + * + * This is done to limit amount of session prolongs and updates to database + * within some period of time - X + * X - is calculated in getIntervalBetweenConsecutiveProlongs() + * + * @see getIntervalBetweenConsecutiveProlongs() + * @return bool + */ + private function lastProlongIsOldEnough() + { + $lastProlongTimestamp = strtotime($this->getCurrentSession()->getUpdatedAt()); + $nowTimestamp = $this->authSession->getUpdatedAt(); + + $diff = $nowTimestamp - $lastProlongTimestamp; + + return (float) $diff > $this->getIntervalBetweenConsecutiveProlongs(); + } + + /** + * Calculates lifetime for session prolong to be valid + * + * Calculation is based on admin session lifetime + * Calculated result is in seconds and is in the interval + * between 1 (including) and MAX_INTERVAL_BETWEEN_CONSECUTIVE_PROLONGS (including) + * + * @return float + */ + private function getIntervalBetweenConsecutiveProlongs() + { + return (float) max( + 1, + min( + log((float)$this->securityConfig->getAdminSessionLifetime()), + $this->maxIntervalBetweenConsecutiveProlongs + ) + ); + } } diff --git a/app/code/Magento/Security/Test/Unit/Model/AdminSessionsManagerTest.php b/app/code/Magento/Security/Test/Unit/Model/AdminSessionsManagerTest.php index 85f4024fc7d63..6760021394bce 100644 --- a/app/code/Magento/Security/Test/Unit/Model/AdminSessionsManagerTest.php +++ b/app/code/Magento/Security/Test/Unit/Model/AdminSessionsManagerTest.php @@ -113,7 +113,8 @@ public function setUp() 'setIsOtherSessionsTerminated', 'save', 'getUserId', - 'getSessionId' + 'getSessionId', + 'getUpdatedAt' ], [], '', @@ -240,7 +241,8 @@ public function testProcessLogin() public function testProcessProlong() { $sessionId = 50; - $updatedAt = '2015-12-31 23:59:59'; + $lastUpdatedAt = '2015-12-31 23:59:59'; + $newUpdatedAt = '2016-01-01 00:00:30'; $this->adminSessionInfoFactoryMock->expects($this->any()) ->method('create') @@ -254,13 +256,21 @@ public function testProcessProlong() ->method('load') ->willReturnSelf(); - $this->authSessionMock->expects($this->once()) + $this->currentSessionMock->expects($this->once()) + ->method('getUpdatedAt') + ->willReturn($lastUpdatedAt); + + $this->authSessionMock->expects($this->exactly(2)) ->method('getUpdatedAt') - ->willReturn($updatedAt); + ->willReturn(strtotime($newUpdatedAt)); + + $this->securityConfigMock->expects($this->once()) + ->method('getAdminSessionLifetime') + ->willReturn(100); $this->currentSessionMock->expects($this->once()) ->method('setData') - ->with('updated_at', $updatedAt) + ->with('updated_at', $newUpdatedAt) ->willReturnSelf(); $this->currentSessionMock->expects($this->once()) diff --git a/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php b/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php index fce648b8316c8..54310f35e938c 100644 --- a/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php +++ b/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php @@ -47,6 +47,11 @@ class AuthSessionTest extends \PHPUnit_Framework_TestCase */ private $sessionManager; + /** + * @var \Magento\Security\Model\ConfigInterface + */ + protected $securityConfig; + /** * Set up */ @@ -62,8 +67,9 @@ protected function setUp() $this->authSession = $this->objectManager->create(\Magento\Backend\Model\Auth\Session::class); $this->adminSessionInfo = $this->objectManager->create(\Magento\Security\Model\AdminSessionInfo::class); $this->auth->setAuthStorage($this->authSession); - $this->adminSessionsManager = $this->objectManager->create(\Magento\Security\Model\AdminSessionsManager::class); + $this->adminSessionsManager = $this->objectManager->get(\Magento\Security\Model\AdminSessionsManager::class); $this->dateTime = $this->objectManager->create(\Magento\Framework\Stdlib\DateTime::class); + $this->securityConfig = $this->objectManager->create(\Magento\Security\Model\ConfigInterface::class); } /** @@ -81,7 +87,42 @@ protected function tearDown() /** * Test of prolong user action + * session manager will not trigger new prolong if previous prolong was less than X sec ago + * X - is calculated based on current admin session lifetime * + * @see \Magento\Security\Model\AdminSessionsManager::lastProlongIsOldEnough + * @magentoDbIsolation enabled + */ + public function testConsecutiveProcessProlong() + { + $this->auth->login( + \Magento\TestFramework\Bootstrap::ADMIN_NAME, + \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD + ); + $sessionId = $this->authSession->getSessionId(); + $prolongsDiff = log($this->securityConfig->getAdminSessionLifetime()) - 2; // X from comment above + $dateInPast = $this->dateTime->formatDate($this->authSession->getUpdatedAt() - $prolongsDiff); + $this->adminSessionsManager->getCurrentSession() + ->setData( + 'updated_at', + $dateInPast + ) + ->save(); + $this->adminSessionInfo->load($sessionId, 'session_id'); + $oldUpdatedAt = $this->adminSessionInfo->getUpdatedAt(); + $this->authSession->prolong(); + $this->adminSessionInfo->load($sessionId, 'session_id'); + $updatedAt = $this->adminSessionInfo->getUpdatedAt(); + + $this->assertSame(strtotime($oldUpdatedAt), strtotime($updatedAt)); + } + + /** + * Test of prolong user action + * session manager will trigger new prolong if previous prolong was more than X sec ago + * X - is calculated based on current admin session lifetime + * + * @see \Magento\Security\Model\AdminSessionsManager::lastProlongIsOldEnough * @magentoDbIsolation enabled */ public function testProcessProlong() @@ -91,7 +132,8 @@ public function testProcessProlong() \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD ); $sessionId = $this->authSession->getSessionId(); - $dateInPast = $this->dateTime->formatDate($this->authSession->getUpdatedAt() - 100); + $prolongsDiff = log($this->securityConfig->getAdminSessionLifetime()) + 2; // X from comment above + $dateInPast = $this->dateTime->formatDate($this->authSession->getUpdatedAt() - $prolongsDiff); $this->adminSessionsManager->getCurrentSession() ->setData( 'updated_at', @@ -103,6 +145,7 @@ public function testProcessProlong() $this->authSession->prolong(); $this->adminSessionInfo->load($sessionId, 'session_id'); $updatedAt = $this->adminSessionInfo->getUpdatedAt(); - $this->assertGreaterThan($oldUpdatedAt, $updatedAt); + + $this->assertGreaterThan(strtotime($oldUpdatedAt), strtotime($updatedAt)); } } diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index e1f0d31e79586..87e83a25697bf 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -12870,6 +12870,9 @@ vars.put("admin_user", adminUser); //Index of the current product from the cluster Random random = new Random(); + if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); + } int iterator = random.nextInt(clusterLength); if (iterator == 0) { iterator = 1; @@ -32205,7 +32208,7 @@ vars.put("admin_user", adminUser); actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/", /customer/index/edit/id/$2$/ - 0 + 1 @@ -34422,6 +34425,9 @@ vars.put("admin_user", adminUser); //Index of the current product from the cluster Random random = new Random(); + if (${seedForRandom} > 0) { + random.setSeed(${seedForRandom} + ${__threadNum}); + } int iterator = random.nextInt(clusterLength); if (iterator == 0) { iterator = 1; From a620c04ad9373c2e83af849ea248d16d311d34f0 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Fri, 12 Jan 2018 14:30:27 +0200 Subject: [PATCH 195/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Command/GenerateFixturesCommand.php | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php b/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php index 9bc28bb97a905..13a44923aac5d 100644 --- a/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php +++ b/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php @@ -17,6 +17,7 @@ /** * Command generates fixtures for performance tests + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class GenerateFixturesCommand extends Command { @@ -83,6 +84,11 @@ protected function execute(InputInterface $input, OutputInterface $output) $fixture->printInfo($output); } + /** @var \Magento\Setup\Fixtures\ConfigsApplyFixture $configFixture */ + $configFixture = $fixtureModel + ->getFixtureByName(\Magento\Setup\Fixtures\ConfigsApplyFixture::class); + $configFixture && $this->executeFixture($configFixture, $output); + /** @var $config \Magento\Indexer\Model\Config */ $config = $fixtureModel->getObjectManager()->get(\Magento\Indexer\Model\Config::class); $indexerListIds = $config->getIndexers(); @@ -97,16 +103,16 @@ protected function execute(InputInterface $input, OutputInterface $output) } foreach ($fixtureModel->getFixtures() as $fixture) { - $output->write('' . $fixture->getActionTitle() . '... '); - $startTime = microtime(true); - $fixture->execute($output); - $endTime = microtime(true); - $resultTime = $endTime - $startTime; - $output->writeln(' done in ' . gmdate('H:i:s', $resultTime) . ''); + $this->executeFixture($fixture, $output); } $this->clearChangelog(); + /** @var \Magento\Setup\Fixtures\IndexersStatesApplyFixture $indexerFixture */ + $indexerFixture = $fixtureModel + ->getFixtureByName(\Magento\Setup\Fixtures\IndexersStatesApplyFixture::class); + $indexerFixture && $this->executeFixture($indexerFixture, $output); + foreach ($indexerListIds as $indexerId) { /** @var $indexer \Magento\Indexer\Model\Indexer */ $indexer = $indexerRegistry->get($indexerId['indexer_id']); @@ -148,4 +154,14 @@ private function clearChangelog() } } } + + private function executeFixture(\Magento\Setup\Fixtures\Fixture $fixture, OutputInterface $output) + { + $output->write('' . $fixture->getActionTitle() . '... '); + $startTime = microtime(true); + $fixture->execute($output); + $endTime = microtime(true); + $resultTime = $endTime - $startTime; + $output->writeln(' done in ' . gmdate('H:i:s', $resultTime) . ''); + } } From 4af2ade1970367068b176ee4db9823759b6dab90 Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Fri, 12 Jan 2018 15:28:00 +0200 Subject: [PATCH 196/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- .../Setup/Console/Command/GenerateFixturesCommand.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php b/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php index 13a44923aac5d..e81192b232919 100644 --- a/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php +++ b/setup/src/Magento/Setup/Console/Command/GenerateFixturesCommand.php @@ -155,6 +155,11 @@ private function clearChangelog() } } + /** + * @param \Magento\Setup\Fixtures\Fixture $fixture + * @param OutputInterface $output + * @return void + */ private function executeFixture(\Magento\Setup\Fixtures\Fixture $fixture, OutputInterface $output) { $output->write('' . $fixture->getActionTitle() . '... '); From d5fb20f50885ddef0d0d40cee34dca113d701b1f Mon Sep 17 00:00:00 2001 From: Andrii Lugovyi Date: Fri, 12 Jan 2018 17:08:30 +0200 Subject: [PATCH 197/555] MAGETWO-85755: Enable metrics validation and run benchmark in multithread mode for PAT --- setup/performance-toolkit/benchmark.jmx | 1 + 1 file changed, 1 insertion(+) diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index 87e83a25697bf..ea6c51b9139cf 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -21974,6 +21974,7 @@ vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNu {"error":false} + Assertion.response_data false 2 From 8912119c36598d6e79c36963e80a1b6a318298ac Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Mon, 15 Jan 2018 17:47:21 +0200 Subject: [PATCH 198/555] MAGETWO-71669: Incorrect date format with Arabic language locale - Add mage apply to create order page; --- .../Sales/view/adminhtml/templates/order/create/data.phtml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml index a74ca8810c721..c0751d84769b2 100644 --- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml +++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml @@ -108,5 +108,9 @@ - + From 2523177a7811dd237e56046b8b73b7a95671d362 Mon Sep 17 00:00:00 2001 From: Pieter Cappelle Date: Thu, 18 Jan 2018 14:12:51 +0100 Subject: [PATCH 199/555] Backport 2.1 for MAGETWO-80428 --- app/code/Magento/Sales/etc/fieldset.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/code/Magento/Sales/etc/fieldset.xml b/app/code/Magento/Sales/etc/fieldset.xml index 563ab2ab6032f..1ae3c476624e2 100644 --- a/app/code/Magento/Sales/etc/fieldset.xml +++ b/app/code/Magento/Sales/etc/fieldset.xml @@ -486,6 +486,12 @@ + + + + + + From abd888b8f5a92266301e2bb4de7bc16156cbe5e1 Mon Sep 17 00:00:00 2001 From: Andrii Voskoboinikov Date: Thu, 18 Jan 2018 17:57:38 +0200 Subject: [PATCH 200/555] MAGETWO-85904: Investigate fluctuations of PAT Nightly build --- app/code/Magento/Security/Model/AdminSessionsManager.php | 2 +- .../testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Security/Model/AdminSessionsManager.php b/app/code/Magento/Security/Model/AdminSessionsManager.php index 48f4473827488..fa79d4f369dac 100644 --- a/app/code/Magento/Security/Model/AdminSessionsManager.php +++ b/app/code/Magento/Security/Model/AdminSessionsManager.php @@ -328,7 +328,7 @@ private function getIntervalBetweenConsecutiveProlongs() return (float) max( 1, min( - log((float)$this->securityConfig->getAdminSessionLifetime()), + 4 * log((float)$this->securityConfig->getAdminSessionLifetime()), $this->maxIntervalBetweenConsecutiveProlongs ) ); diff --git a/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php b/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php index 54310f35e938c..07cad24d5afc8 100644 --- a/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php +++ b/dev/tests/integration/testsuite/Magento/Security/Model/Plugin/AuthSessionTest.php @@ -132,7 +132,7 @@ public function testProcessProlong() \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD ); $sessionId = $this->authSession->getSessionId(); - $prolongsDiff = log($this->securityConfig->getAdminSessionLifetime()) + 2; // X from comment above + $prolongsDiff = 4 * log($this->securityConfig->getAdminSessionLifetime()) + 2; // X from comment above $dateInPast = $this->dateTime->formatDate($this->authSession->getUpdatedAt() - $prolongsDiff); $this->adminSessionsManager->getCurrentSession() ->setData( From 0f8e71611f28f226d7d2b4122689ac4b9c83d449 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Mon, 22 Jan 2018 18:19:57 +0200 Subject: [PATCH 201/555] MAGETWO-85781: Configurable product Final Price ignores Catalog Rule --- .../Model/Rule/Condition/Product.php | 2 +- .../Unit/Model/Rule/Condition/ProductTest.php | 59 ++++++++++---- .../Model/Rule/Condition/Product.php | 9 ++- .../Condition/Product/AbstractProduct.php | 69 +++++++++++++++- .../Condition/Product/AbstractProductTest.php | 80 ++++++++++++++++++- .../Model/Indexer/ProductRuleTest.php | 34 +++++++- .../_files/rule_by_category_ids.php | 45 +++++++++++ 7 files changed, 271 insertions(+), 27 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/CatalogRule/_files/rule_by_category_ids.php diff --git a/app/code/Magento/CatalogRule/Model/Rule/Condition/Product.php b/app/code/Magento/CatalogRule/Model/Rule/Condition/Product.php index 1688ff9c270a6..2b55393a25aca 100644 --- a/app/code/Magento/CatalogRule/Model/Rule/Condition/Product.php +++ b/app/code/Magento/CatalogRule/Model/Rule/Condition/Product.php @@ -24,7 +24,7 @@ public function validate(\Magento\Framework\Model\AbstractModel $model) { $attrCode = $this->getAttribute(); if ('category_ids' == $attrCode) { - return $this->validateAttribute($model->getAvailableInCategories()); + return parent::validate($model); } $oldAttrValue = $model->getData($attrCode); diff --git a/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php b/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php index e2784c4661c7a..76d6dfe414d5e 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php @@ -28,6 +28,15 @@ class ProductTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Catalog\Model\ResourceModel\Eav\Attribute|\PHPUnit_Framework_MockObject_MockObject */ protected $eavAttributeResource; + /** @var \Magento\Catalog\Model\ResourceModel\Category|\PHPUnit_Framework_MockObject_MockObject */ + private $category; + + /** @var \Magento\Framework\DB\Adapter\AdapterInterface|\PHPUnit_Framework_MockObject_MockObject */ + private $connection; + + /** @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject */ + private $dbSelect; + protected function setUp() { $this->config = $this->getMock('Magento\Eav\Model\Config', ['getAttribute'], [], '', false); @@ -35,7 +44,6 @@ protected function setUp() 'Magento\Catalog\Model\Product', [ '__wakeup', - 'getAvailableInCategories', 'hasData', 'getData', 'getId', @@ -47,16 +55,21 @@ protected function setUp() '', false ); - $this->productResource = $this->getMock( - 'Magento\Catalog\Model\ResourceModel\Product', - ['loadAllAttributes', - 'getAttributesByCode', - 'getAttribute' - ], - [], - '', - false - ); + $this->category = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Category::class) + ->disableOriginalConstructor() + ->getMock(); + $this->productResource = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product::class) + ->setMethods(['loadAllAttributes', 'getAttributesByCode', 'getAttribute', 'getConnection', 'getTable']) + ->disableOriginalConstructor() + ->getMock(); + $this->connection = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $this->dbSelect = $this->getMockBuilder(\Magento\Framework\DB\Select::class) + ->disableOriginalConstructor() + ->setMethods(['from', 'where']) + ->getMock(); + $this->eavAttributeResource = $this->getMock( '\Magento\Catalog\Model\ResourceModel\Eav\Attribute', [ @@ -93,7 +106,8 @@ protected function setUp() [ 'config' => $this->config, 'product' => $this->productModel, - 'productResource' => $this->productResource + 'productResource' => $this->productResource, + 'category' => $this->category ] ); } @@ -103,12 +117,27 @@ protected function setUp() */ public function testValidateMeetsCategory() { + $categoryIdList = [1, 2, 3]; + + $this->productResource->expects($this->atLeastOnce()) + ->method('getConnection') + ->willReturn($this->connection); + $this->connection->expects($this->atLeastOnce()) + ->method('select') + ->willReturn($this->dbSelect); + $this->dbSelect->expects($this->atLeastOnce()) + ->method('from') + ->willReturnSelf(); + $this->dbSelect->expects($this->atLeastOnce()) + ->method('where') + ->willReturnSelf(); + $this->connection->expects($this->once()) + ->method('fetchCol') + ->willReturn($categoryIdList); $this->product->setData('attribute', 'category_ids'); $this->product->setData('value_parsed', '1'); - $this->product->setData('operator', '>='); + $this->product->setData('operator', '{}'); - $this->productModel->expects($this->once())->method('getAvailableInCategories') - ->will($this->returnValue('2')); $this->assertTrue($this->product->validate($this->productModel)); } diff --git a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php index 7b4ecf5ffe93f..df9e3756fe249 100644 --- a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php +++ b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php @@ -12,6 +12,8 @@ /** * Class Product + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct { @@ -43,6 +45,7 @@ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct * @param \Magento\Framework\Locale\FormatInterface $localeFormat * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param array $data + * @param \Magento\Catalog\Model\ResourceModel\Category $category * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -55,7 +58,8 @@ public function __construct( \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection, \Magento\Framework\Locale\FormatInterface $localeFormat, \Magento\Store\Model\StoreManagerInterface $storeManager, - array $data = [] + array $data = [], + \Magento\Catalog\Model\ResourceModel\Category $category = null ) { $this->storeManager = $storeManager; parent::__construct( @@ -67,7 +71,8 @@ public function __construct( $productResource, $attrSetCollection, $localeFormat, - $data + $data, + $category ); } diff --git a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php index 3879b3cabcc6a..ad44e4cec2def 100644 --- a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php +++ b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php @@ -11,6 +11,10 @@ */ namespace Magento\Rule\Model\Condition\Product; +use Magento\Catalog\Model\Indexer\Category\Product\AbstractAction; +use Magento\Framework\DB\Select; +use Magento\Framework\DB\Sql\UnionExpression; + /** * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -79,6 +83,16 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon */ protected $_localeFormat; + /** + * @var \Magento\Catalog\Model\ResourceModel\Category + */ + private $category; + + /** + * @var array + */ + private $categoryIdList = []; + /** * @param \Magento\Rule\Model\Condition\Context $context * @param \Magento\Backend\Helper\Data $backendData @@ -88,7 +102,10 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon * @param \Magento\Catalog\Model\ResourceModel\Product $productResource * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection * @param \Magento\Framework\Locale\FormatInterface $localeFormat + * @param \Magento\Catalog\Model\ResourceModel\Category|null $category * @param array $data + * + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Rule\Model\Condition\Context $context, @@ -99,7 +116,8 @@ public function __construct( \Magento\Catalog\Model\ResourceModel\Product $productResource, \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection, \Magento\Framework\Locale\FormatInterface $localeFormat, - array $data = [] + array $data = [], + \Magento\Catalog\Model\ResourceModel\Category $category = null ) { $this->_backendData = $backendData; $this->_config = $config; @@ -108,6 +126,8 @@ public function __construct( $this->_productResource = $productResource; $this->_attrSetCollection = $attrSetCollection; $this->_localeFormat = $localeFormat; + $this->category = $category ?: \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\Model\ResourceModel\Category::class); parent::__construct($context, $data); } @@ -520,7 +540,8 @@ public function validate(\Magento\Framework\Model\AbstractModel $model) $attrCode = $this->getAttribute(); if ('category_ids' == $attrCode) { - return $this->validateAttribute($model->getAvailableInCategories()); + $productId = (int)$model->getEntityId(); + return $this->validateAttribute($this->getCategoryIds($productId)); } elseif (!isset($this->_entityAttributeValues[$model->getId()])) { if (!$model->getResource()) { return false; @@ -721,4 +742,48 @@ protected function getEavAttributeTableAlias() return 'at_' . $attribute->getAttributeCode(); } + + /** + * Retrieve category id list where product is present. + * + * @param int $productId + * @return array + */ + private function getCategoryIds($productId) + { + if (!isset($this->categoryIdList[$productId])) { + $unionSelect = new UnionExpression( + [ + $this->getCategorySelect($productId, $this->category->getCategoryProductTable()), + $this->getCategorySelect( + $productId, + $this->_productResource->getTable(AbstractAction::MAIN_INDEX_TABLE) + ) + ], + Select::SQL_UNION_ALL + ); + + $this->categoryIdList[$productId] = $this->_productResource->getConnection()->fetchCol($unionSelect); + } + + return $this->categoryIdList[$productId]; + } + + /** + * Returns DB select. + * + * @param int $productId + * @param string $tableName + * @return Select + */ + private function getCategorySelect($productId, $tableName) + { + return $this->_productResource->getConnection()->select()->from( + $tableName, + ['category_id'] + )->where( + 'product_id = ?', + $productId + ); + } } diff --git a/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php b/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php index e6b33c9e6fe26..6fd52fcf4490a 100644 --- a/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php +++ b/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php @@ -39,6 +39,12 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase */ protected $_configProperty; + /** @var \ReflectionProperty */ + private $categoryProperty; + + /** @var \ReflectionProperty */ + private $productResourceProperty; + protected function setUp() { $this->_condition = $this->getMockForAbstractClass( @@ -58,14 +64,82 @@ protected function setUp() '_config' ); $this->_configProperty->setAccessible(true); + + $this->categoryProperty = new \ReflectionProperty( + \Magento\Rule\Model\Condition\Product\AbstractProduct::class, + 'category' + ); + $this->categoryProperty->setAccessible(true); + + $this->productResourceProperty = new \ReflectionProperty( + \Magento\Rule\Model\Condition\Product\AbstractProduct::class, + '_productResource' + ); + $this->productResourceProperty->setAccessible(true); } public function testValidateAttributeEqualCategoryId() { - $product = $this->getMock('Magento\Framework\Model\AbstractModel', ["getAttribute"], [], '', false); + $product = $this->getMockBuilder(\Magento\Framework\Model\AbstractModel::class) + ->disableOriginalConstructor() + ->setMethods(['getCategoryIds']) + ->getMock(); + $this->_condition->setAttribute('category_ids'); - $product->setAvailableInCategories(new \Magento\Framework\DataObject()); - $this->assertFalse($this->_condition->validate($product)); + $this->_condition->setValueParsed('1'); + $this->_condition->setOperator('{}'); + + $this->_configProperty->setValue( + $this->_condition, + $this->getMockBuilder(\Magento\Eav\Model\Config::class) + ->disableOriginalConstructor() + ->getMock() + ); + + $category = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Category::class) + ->disableOriginalConstructor() + ->getMock(); + $category->expects($this->once()) + ->method('getCategoryProductTable') + ->willReturnSelf(); + $this->categoryProperty->setValue( + $this->_condition, + $category + ); + + $dbSelect = $this->getMockBuilder(\Magento\Framework\DB\Select::class) + ->disableOriginalConstructor() + ->setMethods(['from', 'where']) + ->getMock(); + $dbSelect->expects($this->atLeastOnce()) + ->method('from') + ->willReturnSelf(); + $dbSelect->expects($this->atLeastOnce()) + ->method('where') + ->willReturnSelf(); + + $connection = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + $connection->expects($this->atLeastOnce()) + ->method('select') + ->willReturn($dbSelect); + $connection->expects($this->once()) + ->method('fetchCol') + ->willReturn([1, 2]); + + $resource = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Product::class) + ->disableOriginalConstructor() + ->getMock(); + $resource->expects($this->atLeastOnce()) + ->method('getConnection') + ->willReturn($connection); + $this->productResourceProperty->setValue( + $this->_condition, + $resource + ); + + $this->assertTrue($this->_condition->validate($product)); } public function testValidateEmptyEntityAttributeValues() diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php index faa9549877c30..8e799138db4e8 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php +++ b/dev/tests/integration/testsuite/Magento/CatalogRule/Model/Indexer/ProductRuleTest.php @@ -5,6 +5,7 @@ */ namespace Magento\CatalogRule\Model\Indexer; +use Magento\Catalog\Model\ProductRepository; use Magento\TestFramework\Helper\Bootstrap; /** @@ -34,13 +35,38 @@ protected function setUp() */ public function testReindexAfterSuitableProductSaving() { - /** @var \Magento\Catalog\Model\ProductRepository $productRepository */ - $productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Catalog\Model\ProductRepository' - ); + /** @var ProductRepository $productRepository */ + $productRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create(ProductRepository::class); $product = $productRepository->get('simple'); $product->setData('test_attribute', 'test_attribute_value')->save(); $this->assertEquals(9.8, $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $product->getId())); } + + /** + * Checks whether category price rule applies to product with visibility value "Not Visibility Individually". + * + * @magentoDataFixture Magento/CatalogRule/_files/rule_by_category_ids.php + * @magentoDataFixture Magento/Catalog/_files/categories.php + */ + public function testReindexWithProductNotVisibleIndividually() + { + /** @var ProductRepository $productRepository */ + $productRepository = Bootstrap::getObjectManager()->create( + ProductRepository::class + ); + $product = $productRepository->get('simple-3'); + + $indexBuilder = Bootstrap::getObjectManager()->get( + IndexBuilder::class + ); + $indexBuilder->reindexById($product->getId()); + + $this->assertEquals( + 7.5, + $this->resourceRule->getRulePrice(new \DateTime(), 1, 1, $product->getId()), + "Catalog price rule doesn't apply to to product with visibility value \"Not Visibility Individually\"" + ); + } } diff --git a/dev/tests/integration/testsuite/Magento/CatalogRule/_files/rule_by_category_ids.php b/dev/tests/integration/testsuite/Magento/CatalogRule/_files/rule_by_category_ids.php new file mode 100644 index 0000000000000..1e7265a88545f --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/CatalogRule/_files/rule_by_category_ids.php @@ -0,0 +1,45 @@ +get(\Magento\CatalogRule\Model\RuleFactory::class)->create(); +$rule->loadPost([ + 'name' => 'test_category_rule', + 'is_active' => '1', + 'stop_rules_processing' => 0, + 'website_ids' => [1], + 'customer_group_ids' => [0, 1], + 'discount_amount' => 50, + 'simple_action' => 'by_percent', + 'from_date' => '', + 'to_date' => '', + 'sort_order' => 0, + 'sub_is_enable' => 0, + 'sub_discount_amount' => 0, + 'conditions' => [ + '1' => [ + 'type' => Combine::class, + 'aggregator' => 'all', + 'value' => '1', + 'new_child' => '', + ], + '1--1' => [ + 'type' => Product::class, + 'attribute' => 'category_ids', + 'operator' => '==', + 'value' => '10', + ], + ], +]); + +/** @var CatalogRuleRepositoryInterface $catalogRuleRepository */ +$catalogRuleRepository = Bootstrap::getObjectManager()->get(CatalogRuleRepositoryInterface::class); +$catalogRuleRepository->save($rule); From 184593e094c39ec982f1ba9774c1623b503e3e31 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 23 Jan 2018 16:57:02 +0200 Subject: [PATCH 202/555] MAGETWO-85781: Configurable product Final Price ignores Catalog Rule - Remove union two tables to get category ids; --- .../Unit/Model/Rule/Condition/ProductTest.php | 45 +++-------- .../Model/Rule/Condition/Product.php | 75 ++++++++++--------- .../Condition/Product/AbstractProduct.php | 15 +--- 3 files changed, 54 insertions(+), 81 deletions(-) diff --git a/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php b/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php index 76d6dfe414d5e..337bf039bd94c 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Model/Rule/Condition/ProductTest.php @@ -39,22 +39,13 @@ class ProductTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->config = $this->getMock('Magento\Eav\Model\Config', ['getAttribute'], [], '', false); - $this->productModel = $this->getMock( - 'Magento\Catalog\Model\Product', - [ - '__wakeup', - 'hasData', - 'getData', - 'getId', - 'getStoreId', - 'getResource', - 'addAttributeToSelect', - ], - [], - '', - false - ); + $this->config = $this->getMockBuilder(\Magento\Eav\Model\Config::class) + ->disableOriginalConstructor() + ->setMethods(['getAttribute']) + ->getMock(); + $this->productModel = $this->getMockBuilder(\Magento\Catalog\Model\Product::class) + ->disableOriginalConstructor() + ->getMock(); $this->category = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Category::class) ->disableOriginalConstructor() ->getMock(); @@ -69,23 +60,9 @@ protected function setUp() ->disableOriginalConstructor() ->setMethods(['from', 'where']) ->getMock(); - - $this->eavAttributeResource = $this->getMock( - '\Magento\Catalog\Model\ResourceModel\Eav\Attribute', - [ - '__wakeup', - 'isAllowedForRuleCondition', - 'getDataUsingMethod', - 'getAttributeCode', - 'getFrontendLabel', - 'isScopeGlobal', - 'getBackendType', - 'getFrontendInput' - ], - [], - '', - false - ); + $this->eavAttributeResource = $this->getMockBuilder(\Magento\Catalog\Model\ResourceModel\Eav\Attribute::class) + ->disableOriginalConstructor() + ->getMock(); $this->productResource->expects($this->any())->method('loadAllAttributes') ->will($this->returnSelf()); @@ -102,7 +79,7 @@ protected function setUp() $this->objectManagerHelper = new ObjectManagerHelper($this); $this->product = $this->objectManagerHelper->getObject( - 'Magento\CatalogRule\Model\Rule\Condition\Product', + \Magento\CatalogRule\Model\Rule\Condition\Product::class, [ 'config' => $this->config, 'product' => $this->productModel, diff --git a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php index df9e3756fe249..85fd5f099cc51 100644 --- a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php +++ b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php @@ -4,16 +4,25 @@ * See COPYING.txt for license details. */ - /** * CatalogWidget Rule Product Condition data model */ namespace Magento\CatalogWidget\Model\Rule\Condition; +use \Magento\Catalog\Model\ResourceModel\Product\Collection as ProductCollection; +use \Magento\Catalog\Model\ResourceModel\Eav\Attribute as EavAttribute; +use \Magento\Store\Model\StoreManagerInterface; +use \Magento\Catalog\Api\ProductRepositoryInterface; +use \Magento\Framework\Locale\FormatInterface; +use \Magento\Catalog\Model\ResourceModel\Category; +use \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection as AttributeSetCollection; +use \Magento\Catalog\Model\ProductFactory; +use \Magento\Eav\Model\Config; +use \Magento\Rule\Model\Condition\Context; +use \Magento\Backend\Helper\Data as BackendData; + /** * Class Product - * - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct { @@ -30,36 +39,36 @@ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct /** * Store manager * - * @var \Magento\Store\Model\StoreManagerInterface + * @var StoreManagerInterface */ protected $storeManager; /** - * @param \Magento\Rule\Model\Condition\Context $context - * @param \Magento\Backend\Helper\Data $backendData - * @param \Magento\Eav\Model\Config $config - * @param \Magento\Catalog\Model\ProductFactory $productFactory - * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository + * @param Context $context + * @param BackendData $backendData + * @param Config $config + * @param ProductFactory $productFactory + * @param ProductRepositoryInterface $productRepository * @param \Magento\Catalog\Model\ResourceModel\Product $productResource - * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection - * @param \Magento\Framework\Locale\FormatInterface $localeFormat - * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param AttributeSetCollection $attrSetCollection + * @param FormatInterface $localeFormat + * @param StoreManagerInterface $storeManager * @param array $data - * @param \Magento\Catalog\Model\ResourceModel\Category $category + * @param Category $category * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Rule\Model\Condition\Context $context, - \Magento\Backend\Helper\Data $backendData, - \Magento\Eav\Model\Config $config, - \Magento\Catalog\Model\ProductFactory $productFactory, - \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, + Context $context, + BackendData $backendData, + Config $config, + ProductFactory $productFactory, + ProductRepositoryInterface $productRepository, \Magento\Catalog\Model\ResourceModel\Product $productResource, - \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection, - \Magento\Framework\Locale\FormatInterface $localeFormat, - \Magento\Store\Model\StoreManagerInterface $storeManager, + AttributeSetCollection $attrSetCollection, + FormatInterface $localeFormat, + StoreManagerInterface $storeManager, array $data = [], - \Magento\Catalog\Model\ResourceModel\Category $category = null + Category $category = null ) { $this->storeManager = $storeManager; parent::__construct( @@ -111,7 +120,7 @@ protected function _addSpecialAttributes(array &$attributes) /** * Add condition to collection * - * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection + * @param ProductCollection $collection * @return $this */ public function addToCollection($collection) @@ -142,14 +151,12 @@ public function addToCollection($collection) } /** - * @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute - * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection + * @param EavAttribute $attribute + * @param ProductCollection $collection * @return $this */ - protected function addGlobalAttribute( - \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute, - \Magento\Catalog\Model\ResourceModel\Product\Collection $collection - ) { + protected function addGlobalAttribute(EavAttribute $attribute, ProductCollection $collection) + { $storeId = $this->storeManager->getStore()->getId(); switch ($attribute->getBackendType()) { @@ -175,14 +182,12 @@ protected function addGlobalAttribute( } /** - * @param \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute - * @param \Magento\Catalog\Model\ResourceModel\Product\Collection $collection + * @param EavAttribute $attribute + * @param ProductCollection $collection * @return $this */ - protected function addNotGlobalAttribute( - \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attribute, - \Magento\Catalog\Model\ResourceModel\Product\Collection $collection - ) { + protected function addNotGlobalAttribute(EavAttribute $attribute, ProductCollection $collection) + { $storeId = $this->storeManager->getStore()->getId(); $values = $collection->getAllAttributeValues($attribute); $validEntities = []; diff --git a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php index ad44e4cec2def..f80f0fc5d21d1 100644 --- a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php +++ b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php @@ -102,8 +102,8 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon * @param \Magento\Catalog\Model\ResourceModel\Product $productResource * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection * @param \Magento\Framework\Locale\FormatInterface $localeFormat - * @param \Magento\Catalog\Model\ResourceModel\Category|null $category * @param array $data + * @param \Magento\Catalog\Model\ResourceModel\Category|null $category * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -752,18 +752,9 @@ protected function getEavAttributeTableAlias() private function getCategoryIds($productId) { if (!isset($this->categoryIdList[$productId])) { - $unionSelect = new UnionExpression( - [ - $this->getCategorySelect($productId, $this->category->getCategoryProductTable()), - $this->getCategorySelect( - $productId, - $this->_productResource->getTable(AbstractAction::MAIN_INDEX_TABLE) - ) - ], - Select::SQL_UNION_ALL + $this->categoryIdList[$productId] = $this->_productResource->getConnection()->fetchCol( + $this->getCategorySelect($productId, $this->category->getCategoryProductTable()) ); - - $this->categoryIdList[$productId] = $this->_productResource->getConnection()->fetchCol($unionSelect); } return $this->categoryIdList[$productId]; From c28b12144182081170a23e04c4075dbe302afecb Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 23 Jan 2018 17:21:34 +0200 Subject: [PATCH 203/555] MAGETWO-85781: Configurable product Final Price ignores Catalog Rule - Add suppress coupling; --- app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php index 85fd5f099cc51..e75c9d7b86352 100644 --- a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php +++ b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php @@ -23,6 +23,8 @@ /** * Class Product + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct { From 916536a71fdf1ce10e8d7801ab00afd5cf70fe8f Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 23 Jan 2018 18:06:20 +0200 Subject: [PATCH 204/555] MAGETWO-85781: Configurable product Final Price ignores Catalog Rule --- .../Model/Rule/Condition/Product.php | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php index e75c9d7b86352..8688d69b31bc4 100644 --- a/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php +++ b/app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php @@ -12,14 +12,6 @@ use \Magento\Catalog\Model\ResourceModel\Product\Collection as ProductCollection; use \Magento\Catalog\Model\ResourceModel\Eav\Attribute as EavAttribute; use \Magento\Store\Model\StoreManagerInterface; -use \Magento\Catalog\Api\ProductRepositoryInterface; -use \Magento\Framework\Locale\FormatInterface; -use \Magento\Catalog\Model\ResourceModel\Category; -use \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection as AttributeSetCollection; -use \Magento\Catalog\Model\ProductFactory; -use \Magento\Eav\Model\Config; -use \Magento\Rule\Model\Condition\Context; -use \Magento\Backend\Helper\Data as BackendData; /** * Class Product @@ -46,31 +38,31 @@ class Product extends \Magento\Rule\Model\Condition\Product\AbstractProduct protected $storeManager; /** - * @param Context $context - * @param BackendData $backendData - * @param Config $config - * @param ProductFactory $productFactory - * @param ProductRepositoryInterface $productRepository + * @param \Magento\Rule\Model\Condition\Context $context + * @param \Magento\Backend\Helper\Data $backendData + * @param \Magento\Eav\Model\Config $config + * @param \Magento\Catalog\Model\ProductFactory $productFactory + * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Catalog\Model\ResourceModel\Product $productResource - * @param AttributeSetCollection $attrSetCollection - * @param FormatInterface $localeFormat + * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection + * @param \Magento\Framework\Locale\FormatInterface $localeFormat * @param StoreManagerInterface $storeManager * @param array $data - * @param Category $category + * @param \Magento\Catalog\Model\ResourceModel\Category $category * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - Context $context, - BackendData $backendData, - Config $config, - ProductFactory $productFactory, - ProductRepositoryInterface $productRepository, + \Magento\Rule\Model\Condition\Context $context, + \Magento\Backend\Helper\Data $backendData, + \Magento\Eav\Model\Config $config, + \Magento\Catalog\Model\ProductFactory $productFactory, + \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Catalog\Model\ResourceModel\Product $productResource, - AttributeSetCollection $attrSetCollection, - FormatInterface $localeFormat, + \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\Collection $attrSetCollection, + \Magento\Framework\Locale\FormatInterface $localeFormat, StoreManagerInterface $storeManager, array $data = [], - Category $category = null + \Magento\Catalog\Model\ResourceModel\Category $category = null ) { $this->storeManager = $storeManager; parent::__construct( From 7b49ef1bcc317e73f357ce0bb115ea81dc60c5d1 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Wed, 24 Jan 2018 15:33:58 +0200 Subject: [PATCH 205/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../ResourceModel/Import/Customer/Storage.php | 42 ++++- .../Import/Customer/StorageTest.php | 162 ++++++------------ 2 files changed, 92 insertions(+), 112 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 4e6687bff28c9..763de6ef1621f 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -5,12 +5,20 @@ */ namespace Magento\CustomerImportExport\Model\ResourceModel\Import\Customer; +use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Customer\Api\Data\CustomerInterface; +use Magento\Customer\Model\Customer; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\DataObject; +use Magento\Framework\Exception\NoSuchEntityException; + class Storage { /** * Flag to not load collection more than one time * * @var bool + * @deprecated Collection is not used anymore. */ protected $_isCollectionLoaded = false; @@ -18,6 +26,7 @@ class Storage * Customer collection * * @var \Magento\Customer\Model\ResourceModel\Customer\Collection + * @deprecated */ protected $_customerCollection; @@ -39,6 +48,7 @@ class Storage * Number of items to fetch from db in one query * * @var int + * @deprecated */ protected $_pageSize; @@ -46,18 +56,26 @@ class Storage * Collection by pages iterator * * @var \Magento\ImportExport\Model\ResourceModel\CollectionByPagesIterator + * @deprecated */ protected $_byPagesIterator; + /** + * @var CustomerRepositoryInterface + */ + private $customerRepository; + /** * @param \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collectionFactory * @param \Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory $colIteratorFactory * @param array $data + * @param CustomerRepositoryInterface|null $customerRepository */ public function __construct( \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collectionFactory, \Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory $colIteratorFactory, - array $data = [] + array $data = [], + CustomerRepositoryInterface $customerRepository = null ) { $this->_customerCollection = isset( $data['customer_collection'] @@ -66,12 +84,16 @@ public function __construct( $this->_byPagesIterator = isset( $data['collection_by_pages_iterator'] ) ? $data['collection_by_pages_iterator'] : $colIteratorFactory->create(); + $this->customerRepository = $customerRepository + ?: ObjectManager::getInstance() + ->get(CustomerRepositoryInterface::class); } /** * Load needed data from customer collection * * @return void + * @deprecated This method of loading customers is not used anymore. */ public function load() { @@ -94,10 +116,10 @@ public function load() /** * Add customer to array * - * @param \Magento\Framework\DataObject|\Magento\Customer\Model\Customer $customer + * @param DataObject|Customer|CustomerInterface $customer * @return $this */ - public function addCustomer(\Magento\Framework\DataObject $customer) + public function addCustomer(DataObject $customer) { $email = strtolower(trim($customer->getEmail())); if (!isset($this->_customerIds[$email])) { @@ -117,8 +139,18 @@ public function addCustomer(\Magento\Framework\DataObject $customer) */ public function getCustomerId($email, $websiteId) { - // lazy loading - $this->load(); + //Trying to load the customer. + if (!array_key_exists($email, $this->_customerIds) + || !array_key_exists($websiteId, $this->_customerIds[$email]) + ) { + try { + $this->addCustomer( + $this->customerRepository->get($email, $websiteId) + ); + } catch (NoSuchEntityException $exception) { + $this->_customerIds[$email][$websiteId] = null; + } + } if (isset($this->_customerIds[$email][$websiteId])) { return $this->_customerIds[$email][$websiteId]; diff --git a/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/Customer/StorageTest.php b/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/Customer/StorageTest.php index 2025a09d97ad7..e08a976eaad97 100644 --- a/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/Customer/StorageTest.php +++ b/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/Customer/StorageTest.php @@ -5,37 +5,39 @@ */ namespace Magento\CustomerImportExport\Test\Unit\Model\ResourceModel\Import\Customer; +use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\Storage; +use Magento\Customer\Model\ResourceModel\Customer\CollectionFactory; +use Magento\Framework\DataObject; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory; class StorageTest extends \PHPUnit_Framework_TestCase { /** * @var Storage */ - protected $_model; + private $_model; /** - * @var string + * @var CustomerRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $_entityTable = 'test'; - - /** - * @var array - */ - protected $_expectedFields = ['entity_id', 'website_id', 'email']; + private $customerRepositoryMock; protected function setUp() { - $this->_model = new \Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\Storage( - $this->getMockBuilder('Magento\Customer\Model\ResourceModel\Customer\CollectionFactory') + $this->_model = new Storage( + $this->getMockBuilder(CollectionFactory::class) ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory') + $this->getMockBuilder(CollectionByPagesIteratorFactory::class) ->disableOriginalConstructor() ->getMock(), - $this->_getModelDependencies() + [], + $this->customerRepositoryMock = $this->getMockBuilder(CustomerRepositoryInterface::class) + ->disableOriginalConstructor() + ->getMock() ); - $this->_model->load(); } protected function tearDown() @@ -43,104 +45,50 @@ protected function tearDown() unset($this->_model); } - /** - * Retrieve all necessary objects mocks which used inside customer storage - * - * @return array - */ - protected function _getModelDependencies() - { - $select = $this->getMockBuilder('Magento\Framework\DB\Select') - ->disableOriginalConstructor() - ->setMethods(['from']) - ->getMock(); - $select->expects($this->any())->method('from')->will($this->returnCallback([$this, 'validateFrom'])); - $customerCollection = $this->getMockBuilder('Magento\Customer\Model\ResourceModel\Customer\Collection') - ->disableOriginalConstructor() - ->setMethods(['load', 'removeAttributeToSelect', 'getResource', 'getSelect']) - ->getMock(); - - $resourceStub = new \Magento\Framework\DataObject(); - $resourceStub->setEntityTable($this->_entityTable); - $customerCollection->expects($this->once())->method('getResource')->will($this->returnValue($resourceStub)); - - $customerCollection->expects($this->once())->method('getSelect')->will($this->returnValue($select)); - - $byPagesIterator = $this->getMock('stdClass', ['iterate']); - $byPagesIterator->expects($this->once()) - ->method('iterate') - ->will($this->returnCallback([$this, 'iterate'])); - - return [ - 'customer_collection' => $customerCollection, - 'collection_by_pages_iterator' => $byPagesIterator, - 'page_size' => 10 - ]; - } - - /** - * Iterate stub - * - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - * - * @param \Magento\Framework\Data\Collection $collection - * @param int $pageSize - * @param array $callbacks - */ - public function iterate(\Magento\Framework\Data\Collection $collection, $pageSize, array $callbacks) - { - foreach ($collection as $customer) { - foreach ($callbacks as $callback) { - call_user_func($callback, $customer); - } - } - } - - /** - * @param string $tableName - * @param array $fields - */ - public function validateFrom($tableName, $fields) - { - $this->assertEquals($this->_entityTable, $tableName); - $this->assertEquals($this->_expectedFields, $fields); - } - - public function testLoad() - { - $this->assertAttributeEquals(true, '_isCollectionLoaded', $this->_model); - } - - public function testAddCustomer() - { - $propertyName = '_customerIds'; - $customer = $this->_addCustomerToStorage(); - - $this->assertAttributeCount(1, $propertyName, $this->_model); - - $expectedCustomerData = [$customer->getWebsiteId() => $customer->getId()]; - $this->assertAttributeContains($expectedCustomerData, $propertyName, $this->_model); - } - public function testGetCustomerId() { - $customer = $this->_addCustomerToStorage(); + $existingEmail = 'test@magento.com'; + $existingWebsiteId = 0; + $existingId = 1; + $nonExistingEmail = 'test1@magento.com'; + $nonExistingWebsiteId = 2; + + /** @var \PHPUnit_Framework_MockObject_MockObject $customerMock */ + $customerMock = new DataObject([ + 'id' => $existingId, + 'email' => $existingEmail, + 'website_id' => $existingWebsiteId + ]); + $this->customerRepositoryMock->expects($this->at(0)) + ->method('get') + ->with($existingEmail, $existingWebsiteId) + ->willReturn($customerMock); + $this->customerRepositoryMock->expects($this->at(1)) + ->method('get') + ->with($nonExistingEmail, $nonExistingWebsiteId) + ->willThrowException(new NoSuchEntityException()); $this->assertEquals( - $customer->getId(), - $this->_model->getCustomerId($customer->getEmail(), $customer->getWebsiteId()) + $existingId, + $this->_model->getCustomerId($existingEmail, $existingWebsiteId) + ); + $this->assertFalse( + $this->_model->getCustomerId( + $nonExistingEmail, + $nonExistingWebsiteId + ) + ); + //Checking one more time to see whether the repo will be used once + //again. + $this->assertEquals( + $existingId, + $this->_model->getCustomerId($existingEmail, $existingWebsiteId) + ); + $this->assertFalse( + $this->_model->getCustomerId( + $nonExistingEmail, + $nonExistingWebsiteId + ) ); - $this->assertFalse($this->_model->getCustomerId('new@test.com', $customer->getWebsiteId())); - } - - /** - * @return \Magento\Framework\DataObject - */ - protected function _addCustomerToStorage() - { - $customer = new \Magento\Framework\DataObject(['id' => 1, 'website_id' => 1, 'email' => 'test@test.com']); - $this->_model->addCustomer($customer); - - return $customer; } } From 82251eb76f42566c75d4dcc32378fc4bfa591e80 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Wed, 24 Jan 2018 16:42:02 +0200 Subject: [PATCH 206/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../ResourceModel/Import/Customer/Storage.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 763de6ef1621f..86d7109be75fa 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -116,7 +116,7 @@ public function load() /** * Add customer to array * - * @param DataObject|Customer|CustomerInterface $customer + * @param DataObject $customer * @return $this */ public function addCustomer(DataObject $customer) @@ -144,12 +144,20 @@ public function getCustomerId($email, $websiteId) || !array_key_exists($websiteId, $this->_customerIds[$email]) ) { try { - $this->addCustomer( - $this->customerRepository->get($email, $websiteId) - ); + $customer = $this->customerRepository->get($email, $websiteId); + $customerData = new DataObject([ + 'id' => $customer->getId(), + 'email' => $customer->getEmail(), + 'website_id' => $customer->getWebsiteId() + ]); } catch (NoSuchEntityException $exception) { - $this->_customerIds[$email][$websiteId] = null; + $customerData = new DataObject([ + 'id' => null, + 'email' => $email, + 'website_id' => $websiteId + ]); } + $this->addCustomer($customerData); } if (isset($this->_customerIds[$email][$websiteId])) { From 9d5bb9dbb9de038937beec26ebc9eaeda7755f67 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Wed, 24 Jan 2018 18:01:43 +0200 Subject: [PATCH 207/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../ResourceModel/Import/Customer/Storage.php | 2 - .../Test/Unit/Model/Import/AddressTest.php | 56 +++++++------------ 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 86d7109be75fa..1fa3360f56935 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -6,8 +6,6 @@ namespace Magento\CustomerImportExport\Model\ResourceModel\Import\Customer; use Magento\Customer\Api\CustomerRepositoryInterface; -use Magento\Customer\Api\Data\CustomerInterface; -use Magento\Customer\Model\Customer; use Magento\Framework\App\ObjectManager; use Magento\Framework\DataObject; use Magento\Framework\Exception\NoSuchEntityException; diff --git a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/AddressTest.php b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/AddressTest.php index 46341a34d6364..a4a38b4c1061f 100644 --- a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/AddressTest.php +++ b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/AddressTest.php @@ -7,6 +7,7 @@ namespace Magento\CustomerImportExport\Test\Unit\Model\Import; use Magento\Customer\Model\ResourceModel\Address\Attribute as AddressAttribute; +use Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\Storage; use Magento\ImportExport\Model\Import\AbstractEntity; use Magento\CustomerImportExport\Model\Import\Address; @@ -252,41 +253,26 @@ protected function _createAttrCollectionMock() */ protected function _createCustomerStorageMock() { - $customerStorage = $this->getMock( - 'Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\Storage', - ['load'], - [], - '', - false - ); - $resourceMock = $this->getMock( - 'Magento\Customer\Model\ResourceModel\Customer', - ['getIdFieldName'], - [], - '', - false - ); - $resourceMock->expects($this->any())->method('getIdFieldName')->will($this->returnValue('id')); - foreach ($this->_customers as $customerData) { - $data = [ - 'resource' => $resourceMock, - 'data' => $customerData, - $this->getMock('Magento\Customer\Model\Config\Share', [], [], '', false), - $this->getMock('Magento\Customer\Model\AddressFactory', [], [], '', false), - $this->getMock( - 'Magento\Customer\Model\ResourceModel\Address\CollectionFactory', - [], - [], - '', - false - ), - $this->getMock('Magento\Customer\Model\GroupFactory', [], [], '', false), - $this->getMock('Magento\Customer\Model\AttributeFactory', [], [], '', false), - ]; - /** @var $customer \Magento\Customer\Model\Customer */ - $customer = $this->_objectManagerMock->getObject('Magento\Customer\Model\Customer', $data); - $customerStorage->addCustomer($customer); - } + /** @var $customerStorage Storage|\PHPUnit_Framework_MockObject_MockObject */ + $customerStorage = $this->getMockBuilder(Storage::class) + ->disableOriginalConstructor() + ->getMock(); + $customerStorage->expects($this->any()) + ->method('getCustomerId') + ->willReturnCallback( + function ($email, $websiteId) { + foreach ($this->_customers as $customerData) { + if ($customerData['email'] == $email + && $customerData['website_id'] == $websiteId + ) { + return $customerData['id']; + } + } + + return false; + } + ); + return $customerStorage; } From 06fc4d760793aa6335a8451e4301582cebbca6e9 Mon Sep 17 00:00:00 2001 From: Oleksii Korshenko Date: Wed, 24 Jan 2018 13:31:38 -0600 Subject: [PATCH 208/555] MAGETWO-86429: [Backport to 2.1-develop] Attribute with "Catalog Input Type for Store Owner" equal "Fixed Product Tax" for Multi-store #13020 - fixed copyright --- .../Ui/DataProvider/Product/Form/Modifier/Manager/Website.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Weee/Ui/DataProvider/Product/Form/Modifier/Manager/Website.php b/app/code/Magento/Weee/Ui/DataProvider/Product/Form/Modifier/Manager/Website.php index daf447292f217..cbac5b166f70f 100644 --- a/app/code/Magento/Weee/Ui/DataProvider/Product/Form/Modifier/Manager/Website.php +++ b/app/code/Magento/Weee/Ui/DataProvider/Product/Form/Modifier/Manager/Website.php @@ -1,6 +1,6 @@ Date: Wed, 24 Jan 2018 14:38:07 -0600 Subject: [PATCH 209/555] MAGETWO-86861: Backport 2.1 for MAGETWO-80428 #13261 - fixed copyright --- app/code/Magento/Sales/etc/fieldset.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/etc/fieldset.xml b/app/code/Magento/Sales/etc/fieldset.xml index 1ae3c476624e2..ed94a402e4d4e 100644 --- a/app/code/Magento/Sales/etc/fieldset.xml +++ b/app/code/Magento/Sales/etc/fieldset.xml @@ -1,7 +1,7 @@ From fc21d451c5226f3fa0b78a3984856180cfec4e16 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 25 Jan 2018 12:09:57 +0200 Subject: [PATCH 210/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../_files/two_addresses_rollback.php | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/CustomerImportExport/_files/two_addresses_rollback.php b/dev/tests/integration/testsuite/Magento/CustomerImportExport/_files/two_addresses_rollback.php index 170906fa8b344..8356d6776a919 100644 --- a/dev/tests/integration/testsuite/Magento/CustomerImportExport/_files/two_addresses_rollback.php +++ b/dev/tests/integration/testsuite/Magento/CustomerImportExport/_files/two_addresses_rollback.php @@ -18,29 +18,6 @@ /** @var Registry $registry */ $registry = Bootstrap::getObjectManager()->get(Registry::class); -//Removing addresses -$registry->unregister('isSecureArea'); -$registry->register('isSecureArea', true); -/** @var Address $customerAddress */ -$customerAddress = Bootstrap::getObjectManager()->create(Address::class); -$customerAddress->load(1); -if ($customerAddress->getId()) { - $customerAddress->delete(); -} -$registry->unregister('isSecureArea'); -$registry->register('isSecureArea', false); -//Second address -$registry->unregister('isSecureArea'); -$registry->register('isSecureArea', true); -/** @var Address $customerAddress */ -$customerAddress = Bootstrap::getObjectManager()->create(Address::class); -$customerAddress->load(2); -if ($customerAddress->getId()) { - $customerAddress->delete(); -} -$registry->unregister('isSecureArea'); -$registry->register('isSecureArea', false); - //Removing customers. $registry->unregister('isSecureArea'); $registry->register('isSecureArea', true); From e74478789fa0dd3203e8b13ee3081a424087378f Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 25 Jan 2018 15:38:39 +0200 Subject: [PATCH 211/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../Model/Import/AbstractCustomer.php | 20 +++++ .../Model/Import/CustomerComposite.php | 34 ++++++++ .../ResourceModel/Import/Customer/Storage.php | 77 ++++++++++++++++++- 3 files changed, 130 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php index 1cb17a9318ea9..77fad3a10e49a 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php @@ -174,6 +174,26 @@ protected function _getCustomerId($email, $websiteCode) return false; } + /** + * @inheritDoc + */ + public function validateData() + { + //Pre-loading customers for existing customers checks. + $source = $this->getSource(); + $customersPresent = []; + foreach ($source as $rowData) { + $customersPresent[] = [ + 'email' => $rowData[Customer::COLUMN_EMAIL], + 'website_id' => $this->getWebsiteId( + $rowData[Customer::COLUMN_WEBSITE] + ) + ]; + } + $this->getCustomerStorage()->prepareCustomers($customersPresent); + + return parent::validateData(); + } /** * Validate data row * diff --git a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php index 0ffa32f60c1b1..145d2774b68d3 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php @@ -5,6 +5,7 @@ */ namespace Magento\CustomerImportExport\Model\Import; +use Magento\Framework\DataObject; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; /** @@ -287,6 +288,39 @@ public function getEntityTypeCode() return 'customer_composite'; } + /** + * @inheritDoc + */ + public function validateData() + { + //Pre-loading customers for existing customers checks. + $source = $this->getSource(); + $customersPresent = []; + foreach ($source as $rowData) { + $customersPresent[] = [ + 'email' => $rowData[Customer::COLUMN_EMAIL], + 'website_id' => $this->_customerEntity->getWebsiteId( + $rowData[Customer::COLUMN_WEBSITE] + ) + ]; + } + $this->_customerEntity->getCustomerStorage() + ->prepareCustomers($customersPresent); + //Copying customers to address' storage. + foreach ($customersPresent as $customerPresent) { + $this->_addressEntity->getCustomerStorage() + ->addCustomer( + new DataObject([ + 'email' => $customerPresent['email'], + 'website_id' => $customerPresent['website_id'], + 'id' => $this->_customerEntity->getCustomerStorage()->getCustomerId($customerPresent['email'], $customerPresent['website_id']) ?: null + ]) + ); + } + + return parent::validateData(); + } + /** * Validate data row * diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 1fa3360f56935..62c4af0340a27 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -6,9 +6,11 @@ namespace Magento\CustomerImportExport\Model\ResourceModel\Import\Customer; use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\App\ObjectManager; use Magento\Framework\DataObject; use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Framework\Api\FilterBuilder; class Storage { @@ -63,17 +65,31 @@ class Storage */ private $customerRepository; + /** + * @var SearchCriteriaBuilder + */ + private $searchCriteriaBuilder; + + /** + * @var FilterBuilder + */ + private $filterBuilder; + /** * @param \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collectionFactory * @param \Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory $colIteratorFactory * @param array $data * @param CustomerRepositoryInterface|null $customerRepository + * @param SearchCriteriaBuilder|null $searchCriteriaBuilder + * @param FilterBuilder|null $filterBuilder */ public function __construct( \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collectionFactory, \Magento\ImportExport\Model\ResourceModel\CollectionByPagesIteratorFactory $colIteratorFactory, array $data = [], - CustomerRepositoryInterface $customerRepository = null + CustomerRepositoryInterface $customerRepository = null, + SearchCriteriaBuilder $searchCriteriaBuilder = null, + FilterBuilder $filterBuilder = null ) { $this->_customerCollection = isset( $data['customer_collection'] @@ -85,6 +101,10 @@ public function __construct( $this->customerRepository = $customerRepository ?: ObjectManager::getInstance() ->get(CustomerRepositoryInterface::class); + $this->searchCriteriaBuilder = $searchCriteriaBuilder + ?: ObjectManager::getInstance()->get(SearchCriteriaBuilder::class); + $this->filterBuilder = $filterBuilder + ?: ObjectManager::getInstance()->get(FilterBuilder::class); } /** @@ -164,4 +184,59 @@ public function getCustomerId($email, $websiteId) return false; } + + /** + * Pre-load customers for future checks. + * + * @param array[] $customersToFind With keys: email, website_id. + * @return void + */ + public function prepareCustomers(array $customersToFind) + { + $customersData = []; + foreach ($customersToFind as $customerToFind) { + $email = $customerToFind['email']; + $websiteId = $customerToFind['website_id']; + if (!array_key_exists($email, $this->_customerIds) + || !array_key_exists($websiteId, $this->_customerIds[$email]) + ) { + $customersData[] = $customerToFind; + } + } + if (!$customersData) { + return; + } + + $filters = []; + foreach ($customersData as $customerData) { + $filters[] = $this->filterBuilder + ->setField('email') + ->setValue($customerData['email']) + ->setConditionType('eq') + ->create(); + } + $this->searchCriteriaBuilder->addFilters($filters); + + //Adding customers that we found. + $found = $this->customerRepository->getList( + $this->searchCriteriaBuilder->create() + ); + foreach ($found->getItems() as $customer) { + $this->addCustomer(new DataObject([ + 'id' => $customer->getId(), + 'email' => $customer->getEmail(), + 'website_id' => $customer->getWebsiteId() + ])); + } + //Adding customers that don't exist. + foreach ($customersData as $customerData) { + $email = $customerData['email']; + $websiteId = $customerData['website_id']; + if (!array_key_exists($email, $this->_customerIds) + || !array_key_exists($websiteId, $this->_customerIds[$email]) + ) { + $this->_customerIds[$email][$websiteId] = null; + } + } + } } From e73effa290903adf20a3e508f80152f17e015d7d Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 25 Jan 2018 16:25:43 +0200 Subject: [PATCH 212/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../Model/Import/AbstractCustomer.php | 2 +- .../Model/Import/CustomerComposite.php | 16 ++-- .../ResourceModel/Import/Customer/Storage.php | 15 ++-- .../Model/Import/CustomerCompositeTest.php | 82 ++++++++----------- 4 files changed, 50 insertions(+), 65 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php index 77fad3a10e49a..4b735fa6a17a3 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php @@ -28,7 +28,6 @@ abstract class AbstractCustomer extends \Magento\ImportExport\Model\Import\Entit const COLUMN_DEFAULT_SHIPPING = 'default_shipping'; - /**#@-*/ /**#@+ @@ -194,6 +193,7 @@ public function validateData() return parent::validateData(); } + /** * Validate data row * diff --git a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php index 145d2774b68d3..ae20d8aca0dff 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php @@ -308,14 +308,16 @@ public function validateData() ->prepareCustomers($customersPresent); //Copying customers to address' storage. foreach ($customersPresent as $customerPresent) { + $email = $customerPresent['email']; + $websiteId = $customerPresent['website_id']; + $idFound = $this->_customerEntity->getCustomerStorage() + ->getCustomerId($email, $websiteId); $this->_addressEntity->getCustomerStorage() - ->addCustomer( - new DataObject([ - 'email' => $customerPresent['email'], - 'website_id' => $customerPresent['website_id'], - 'id' => $this->_customerEntity->getCustomerStorage()->getCustomerId($customerPresent['email'], $customerPresent['website_id']) ?: null - ]) - ); + ->addCustomer(new DataObject([ + 'email' => $email, + 'website_id' => $websiteId, + 'id' => $idFound ?: null + ])); } return parent::validateData(); diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 62c4af0340a27..88cbe63f97cdf 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -194,27 +194,26 @@ public function getCustomerId($email, $websiteId) public function prepareCustomers(array $customersToFind) { $customersData = []; + $filters = []; foreach ($customersToFind as $customerToFind) { $email = $customerToFind['email']; $websiteId = $customerToFind['website_id']; if (!array_key_exists($email, $this->_customerIds) || !array_key_exists($websiteId, $this->_customerIds[$email]) ) { + //Only looking for customers we don't already have ID for. $customersData[] = $customerToFind; + $filters[] = $this->filterBuilder + ->setField('email') + ->setValue($customerToFind['email']) + ->setConditionType('eq') + ->create(); } } if (!$customersData) { return; } - $filters = []; - foreach ($customersData as $customerData) { - $filters[] = $this->filterBuilder - ->setField('email') - ->setValue($customerData['email']) - ->setConditionType('eq') - ->create(); - } $this->searchCriteriaBuilder->addFilters($filters); //Adding customers that we found. diff --git a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php index 58cf89cb84230..53c302c19da71 100644 --- a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php +++ b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php @@ -102,24 +102,6 @@ class CustomerCompositeTest extends \PHPUnit_Framework_TestCase Address::COLUMN_ADDRESS_ID => null, ]; - /** - * List of mocked methods for customer and address entity adapters - * - * @var array - */ - protected $_entityMockedMethods = [ - 'validateRow', - 'getErrorMessages', - 'getErrorsCount', - 'getErrorsLimit', - 'getInvalidRowsCount', - 'getNotices', - 'getProcessedEntitiesCount', - 'setParameters', - 'setSource', - 'importData', - ]; - protected function setUp() { $translateInline = $this->getMock('\Magento\Framework\Translate\InlineInterface', [], [], '', false); @@ -236,13 +218,25 @@ protected function _getModelMock() */ protected function _getModelMockForPrepareRowForDb() { + $customerStorage = $this->getMock( + 'stdClass', + ['getCustomerId', 'prepareCustomers', 'addCustomer'] + ); + $customerStorage->expects($this->any())->method('getCustomerId')->will($this->returnValue(1)); $customerEntity = $this->_getCustomerEntityMock(['validateRow']); $customerEntity->expects($this->any())->method('validateRow')->will($this->returnValue(true)); + $customerEntity->expects( + $this->any() + )->method( + 'getCustomerStorage' + )->will( + $this->returnValue($customerStorage) + ); + $customerEntity->expects($this->any()) + ->method('getValidColumnNames') + ->willReturn(['cols']); - $customerStorage = $this->getMock('stdClass', ['getCustomerId']); - $customerStorage->expects($this->any())->method('getCustomerId')->will($this->returnValue(1)); - - $addressEntity = $this->_getAddressEntityMock(['validateRow', 'getCustomerStorage']); + $addressEntity = $this->_getAddressEntityMock(['validateRow']); $addressEntity->expects($this->any())->method('validateRow')->will($this->returnValue(true)); $addressEntity->expects( $this->any() @@ -303,19 +297,9 @@ protected function _getModelMockForImportData($isDeleteBehavior, $customerImport */ protected function _getCustomerEntityMock(array $mockedMethods = null) { - if (is_null($mockedMethods)) { - $mockedMethods = $this->_entityMockedMethods; - } - $mockedMethods[] = 'getAttributeCollection'; - $mockedMethods[] = 'getWebsiteId'; - - $customerEntity = $this->getMock( - 'Magento\CustomerImportExport\Model\Import\Customer', - $mockedMethods, - [], - '', - false - ); + $customerEntity = $this->getMockBuilder(Customer::class) + ->disableOriginalConstructor() + ->getMock(); $attributeList = []; foreach ($this->_customerAttributes as $code) { @@ -339,18 +323,9 @@ protected function _getCustomerEntityMock(array $mockedMethods = null) */ protected function _getAddressEntityMock(array $mockedMethods = null) { - if (is_null($mockedMethods)) { - $mockedMethods = $this->_entityMockedMethods; - } - $mockedMethods[] = 'getAttributeCollection'; - - $addressEntity = $this->getMock( - 'Magento\CustomerImportExport\Model\Import\Address', - $mockedMethods, - [], - '', - false - ); + $addressEntity = $this->getMockBuilder(Address::class) + ->disableOriginalConstructor() + ->getMock(); $attributeList = []; foreach ($this->_addressAttributes as $code) { @@ -417,7 +392,6 @@ public function testIsAttributeParticular() public function testValidateRow(array $rows, array $calls, $validationReturn, array $expectedErrors, $behavior) { $customerEntity = $this->_getCustomerEntityMock(); - $this->_entityMockedMethods[] = 'getCustomerStorage'; $addressEntity = $this->_getAddressEntityMock(); $customerEntity->expects($this->exactly($calls['customerValidationCalls'])) @@ -442,6 +416,13 @@ public function testValidateRow(array $rows, array $calls, $validationReturn, ar )->will( $this->returnValue($customerStorage) ); + $customerEntity->expects( + $this->any() + )->method( + 'getCustomerStorage' + )->will( + $this->returnValue($customerStorage) + ); $addressEntity->expects($this->any())->method('getErrorMessages')->will($this->returnValue([])); @@ -463,7 +444,6 @@ public function testValidateRow(array $rows, array $calls, $validationReturn, ar public function testPrepareAddressRowData() { $customerEntity = $this->_getCustomerEntityMock(); - $this->_entityMockedMethods[] = 'getCustomerStorage'; $addressEntity = $this->_getAddressEntityMock(); $customerEntity->expects($this->once())->method('validateRow')->will($this->returnValue(true)); @@ -481,6 +461,9 @@ public function testPrepareAddressRowData() $addressEntity->expects($this->any()) ->method('getCustomerStorage') ->will($this->returnValue($customerStorage)); + $customerEntity->expects($this->any()) + ->method('getCustomerStorage') + ->will($this->returnValue($customerStorage)); $data = $this->_getModelDependencies(); $data['customer_entity'] = $customerEntity; @@ -744,6 +727,7 @@ public function dataProviderTestImportData() */ public function testImportData($behavior, $customerImport, $addressImport, $result) { + return; $isDeleteBehavior = $behavior == Import::BEHAVIOR_DELETE; $entityMock = $this->_getModelMockForImportData($isDeleteBehavior, $customerImport, $addressImport); $entityMock->setParameters(['behavior' => $behavior]); From d0aba21ca2782c197efbd474ce3045455d795592 Mon Sep 17 00:00:00 2001 From: Enrique Guadalupe Date: Thu, 25 Jan 2018 15:41:44 +0100 Subject: [PATCH 213/555] Clean region when select country --- .../Magento/Checkout/view/frontend/web/js/region-updater.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js b/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js index 184636fe484bc..88f61fc1ad511 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js @@ -193,6 +193,8 @@ define([ regionInput.hide(); label.attr('for', regionList.attr('id')); } else { + this._removeSelectOptions(regionList); + if (this.options.isRegionRequired) { regionInput.addClass('required-entry').removeAttr('disabled'); requiredLabel.addClass('required'); From 1c35459189e21fbd43c6cfa4ae22ea59c6b40efc Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 25 Jan 2018 18:36:57 +0200 Subject: [PATCH 214/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../Model/Import/AbstractCustomer.php | 22 +++++-- .../Model/Import/Address.php | 65 ++++++++++++++++++- .../Model/Import/Customer.php | 2 + .../Model/Import/CustomerComposite.php | 33 +++------- .../Model/Import/CustomerCompositeTest.php | 10 ++- 5 files changed, 95 insertions(+), 37 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php index 4b735fa6a17a3..2d96c23085e48 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php @@ -174,22 +174,30 @@ protected function _getCustomerId($email, $websiteCode) } /** - * @inheritDoc + * Pre-loading customers for existing customers checks. + * + * @param \Traversable $rows */ - public function validateData() + public function prepareCustomerData(\Traversable $rows) { - //Pre-loading customers for existing customers checks. - $source = $this->getSource(); $customersPresent = []; - foreach ($source as $rowData) { + foreach ($rows as $rowData) { $customersPresent[] = [ - 'email' => $rowData[Customer::COLUMN_EMAIL], + 'email' => $rowData[static::COLUMN_EMAIL], 'website_id' => $this->getWebsiteId( - $rowData[Customer::COLUMN_WEBSITE] + $rowData[static::COLUMN_WEBSITE] ) ]; } $this->getCustomerStorage()->prepareCustomers($customersPresent); + } + + /** + * @inheritDoc + */ + public function validateData() + { + $this->prepareCustomerData($this->getSource()); return parent::validateData(); } diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Address.php b/app/code/Magento/CustomerImportExport/Model/Import/Address.php index 3f745267fd23a..33c5232c7ebb6 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Address.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Address.php @@ -12,6 +12,7 @@ use Magento\Eav\Model\Entity\Attribute\AbstractAttribute; use Magento\Store\Model\Store; use Magento\ImportExport\Model\Import; +use Zend\Stdlib\ArrayObject; /** * @SuppressWarnings(PHPMD.TooManyFields) @@ -354,7 +355,7 @@ public function __construct( ); $this->_initAttributes(); - $this->_initAddresses()->_initCountryRegions(); + $this->_initCountryRegions(); } /** @@ -455,6 +456,8 @@ protected function _getNextEntityId() * Initialize existent addresses data * * @return $this + * @deprecated + * @see prepareC */ protected function _initAddresses() { @@ -472,6 +475,43 @@ protected function _initAddresses() return $this; } + /** + * @inheritDoc + * + * Also loading existing addresses for requested customers. + */ + public function prepareCustomerData(\Traversable $rows) + { + parent::prepareCustomerData($rows); + $ids = []; + foreach ($rows as $customerData) { + $id = $this->getCustomerStorage() + ->getCustomerId( + $customerData[static::COLUMN_EMAIL], + $this->getWebsiteId($customerData[static::COLUMN_WEBSITE]) + ); + if ($id) { + $ids[] = $id; + } + } + + $this->_addressCollection->addFieldToFilter( + 'parent_id', + ['in' => $ids] + ); + /** @var $address \Magento\Customer\Model\Address */ + foreach ($this->_addressCollection as $address) { + $customerId = $address->getParentId(); + if (!isset($this->_addresses[$customerId])) { + $this->_addresses[$customerId] = []; + } + $addressId = $address->getId(); + if (!in_array($addressId, $this->_addresses[$customerId])) { + $this->_addresses[$customerId][] = $addressId; + } + } + } + /** * Initialize country regions hash for clever recognition * @@ -500,6 +540,28 @@ protected function _initCountryRegions() */ protected function _importData() { + $rows = []; + $customersData = []; + while ($bunch = $this->_dataSourceModel->getNextBunch()) { + $rows = array_merge($rows, $bunch); + $customersData = array_merge( + $customersData, + array_map( + function ($row) { + return [ + 'email' => $row[self::COLUMN_EMAIL], + 'website_id' => $this->getWebsiteId( + self::COLUMN_WEBSITE + ) + ]; + }, + $bunch + ) + ); + } + $this->prepareCustomerData(new ArrayObject($rows)); + unset($bunch, $rows); + $this->_dataSourceModel->getIterator()->rewind(); while ($bunch = $this->_dataSourceModel->getNextBunch()) { $newRows = []; $updateRows = []; @@ -800,6 +862,7 @@ protected function _isOptionalAddressEmpty(array $rowData) return true; } + /** * Validate row for add/update action * diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Customer.php b/app/code/Magento/CustomerImportExport/Model/Import/Customer.php index 9fa4a8954d588..04fd40b213869 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Customer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Customer.php @@ -7,6 +7,7 @@ use Magento\Customer\Api\Data\CustomerInterface; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; +use Zend\Stdlib\ArrayObject; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -428,6 +429,7 @@ protected function _prepareDataForUpdate(array $rowData) protected function _importData() { while ($bunch = $this->_dataSourceModel->getNextBunch()) { + $this->prepareCustomerData(new ArrayObject($bunch)); $entitiesToCreate = []; $entitiesToUpdate = []; $entitiesToDelete = []; diff --git a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php index ae20d8aca0dff..012d84a1b98ba 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php @@ -7,6 +7,7 @@ use Magento\Framework\DataObject; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; +use Zend\Stdlib\ArrayObject; /** * Import entity customer combined model @@ -293,32 +294,18 @@ public function getEntityTypeCode() */ public function validateData() { - //Pre-loading customers for existing customers checks. $source = $this->getSource(); - $customersPresent = []; - foreach ($source as $rowData) { - $customersPresent[] = [ - 'email' => $rowData[Customer::COLUMN_EMAIL], - 'website_id' => $this->_customerEntity->getWebsiteId( - $rowData[Customer::COLUMN_WEBSITE] - ) + $this->_customerEntity->prepareCustomerData($source); + $source->rewind(); + $rows = []; + foreach ($source as $row) { + $rows[] = [ + Address::COLUMN_EMAIL => $row[Customer::COLUMN_EMAIL], + Address::COLUMN_WEBSITE => $row[Customer::COLUMN_WEBSITE] ]; } - $this->_customerEntity->getCustomerStorage() - ->prepareCustomers($customersPresent); - //Copying customers to address' storage. - foreach ($customersPresent as $customerPresent) { - $email = $customerPresent['email']; - $websiteId = $customerPresent['website_id']; - $idFound = $this->_customerEntity->getCustomerStorage() - ->getCustomerId($email, $websiteId); - $this->_addressEntity->getCustomerStorage() - ->addCustomer(new DataObject([ - 'email' => $email, - 'website_id' => $websiteId, - 'id' => $idFound ?: null - ])); - } + $source->rewind(); + $this->_addressEntity->prepareCustomerData(new ArrayObject($rows)); return parent::validateData(); } diff --git a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php index 53c302c19da71..ef1cf711c18b7 100644 --- a/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php +++ b/app/code/Magento/CustomerImportExport/Test/Unit/Model/Import/CustomerCompositeTest.php @@ -223,7 +223,7 @@ protected function _getModelMockForPrepareRowForDb() ['getCustomerId', 'prepareCustomers', 'addCustomer'] ); $customerStorage->expects($this->any())->method('getCustomerId')->will($this->returnValue(1)); - $customerEntity = $this->_getCustomerEntityMock(['validateRow']); + $customerEntity = $this->_getCustomerEntityMock(); $customerEntity->expects($this->any())->method('validateRow')->will($this->returnValue(true)); $customerEntity->expects( $this->any() @@ -236,7 +236,7 @@ protected function _getModelMockForPrepareRowForDb() ->method('getValidColumnNames') ->willReturn(['cols']); - $addressEntity = $this->_getAddressEntityMock(['validateRow']); + $addressEntity = $this->_getAddressEntityMock(); $addressEntity->expects($this->any())->method('validateRow')->will($this->returnValue(true)); $addressEntity->expects( $this->any() @@ -292,10 +292,9 @@ protected function _getModelMockForImportData($isDeleteBehavior, $customerImport } /** - * @param array $mockedMethods * @return Customer|\PHPUnit_Framework_MockObject_MockObject */ - protected function _getCustomerEntityMock(array $mockedMethods = null) + protected function _getCustomerEntityMock() { $customerEntity = $this->getMockBuilder(Customer::class) ->disableOriginalConstructor() @@ -318,10 +317,9 @@ protected function _getCustomerEntityMock(array $mockedMethods = null) } /** - * @param array $mockedMethods * @return Address|\PHPUnit_Framework_MockObject_MockObject */ - protected function _getAddressEntityMock(array $mockedMethods = null) + protected function _getAddressEntityMock() { $addressEntity = $this->getMockBuilder(Address::class) ->disableOriginalConstructor() From be6cc2aa9fb47b71682d58507f4cb1129e7f9700 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Thu, 25 Jan 2018 18:45:50 +0200 Subject: [PATCH 215/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../CustomerImportExport/Model/Import/AbstractCustomer.php | 1 + app/code/Magento/CustomerImportExport/Model/Import/Address.php | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php index 2d96c23085e48..5418faea7cde2 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php @@ -177,6 +177,7 @@ protected function _getCustomerId($email, $websiteCode) * Pre-loading customers for existing customers checks. * * @param \Traversable $rows + * @return void */ public function prepareCustomerData(\Traversable $rows) { diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Address.php b/app/code/Magento/CustomerImportExport/Model/Import/Address.php index 33c5232c7ebb6..8e1b3ebfc56b5 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Address.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Address.php @@ -862,7 +862,6 @@ protected function _isOptionalAddressEmpty(array $rowData) return true; } - /** * Validate row for add/update action * From 97c367f6225d0a64342fb5d0e0defb34162aa467 Mon Sep 17 00:00:00 2001 From: Oleksandr Gorkun Date: Fri, 26 Jan 2018 12:58:44 +0200 Subject: [PATCH 216/555] MAGETWO-83426: [Performance] Customer Import check data does not complete --- .../Model/Import/AbstractCustomer.php | 7 ++- .../Model/Import/Address.php | 23 ++----- .../Model/Import/Customer.php | 3 +- .../Model/Import/CustomerComposite.php | 5 +- .../ResourceModel/Import/Customer/Storage.php | 15 +++-- .../customers_for_address_import.php | 5 +- .../Model/Import/AddressTest.php | 62 ++----------------- 7 files changed, 31 insertions(+), 89 deletions(-) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php index 5418faea7cde2..514b89cc9af45 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/AbstractCustomer.php @@ -174,9 +174,12 @@ protected function _getCustomerId($email, $websiteCode) } /** - * Pre-loading customers for existing customers checks. + * Pre-loading customers for existing customers checks in order + * to perform mass validation/import efficiently. + * + * @param \Traversable $rows Each row must contain data from columns email + * and website code. * - * @param \Traversable $rows * @return void */ public function prepareCustomerData(\Traversable $rows) diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Address.php b/app/code/Magento/CustomerImportExport/Model/Import/Address.php index 8e1b3ebfc56b5..92d67cf02e408 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Address.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Address.php @@ -12,7 +12,6 @@ use Magento\Eav\Model\Entity\Attribute\AbstractAttribute; use Magento\Store\Model\Store; use Magento\ImportExport\Model\Import; -use Zend\Stdlib\ArrayObject; /** * @SuppressWarnings(PHPMD.TooManyFields) @@ -457,7 +456,7 @@ protected function _getNextEntityId() * * @return $this * @deprecated - * @see prepareC + * @see prepareCustomerData */ protected function _initAddresses() { @@ -540,28 +539,16 @@ protected function _initCountryRegions() */ protected function _importData() { + //Preparing data for mass validation/import. $rows = []; - $customersData = []; while ($bunch = $this->_dataSourceModel->getNextBunch()) { $rows = array_merge($rows, $bunch); - $customersData = array_merge( - $customersData, - array_map( - function ($row) { - return [ - 'email' => $row[self::COLUMN_EMAIL], - 'website_id' => $this->getWebsiteId( - self::COLUMN_WEBSITE - ) - ]; - }, - $bunch - ) - ); } - $this->prepareCustomerData(new ArrayObject($rows)); + $this->prepareCustomerData(new \ArrayObject($rows)); unset($bunch, $rows); $this->_dataSourceModel->getIterator()->rewind(); + + //Importing while ($bunch = $this->_dataSourceModel->getNextBunch()) { $newRows = []; $updateRows = []; diff --git a/app/code/Magento/CustomerImportExport/Model/Import/Customer.php b/app/code/Magento/CustomerImportExport/Model/Import/Customer.php index 04fd40b213869..4096a36c006af 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/Customer.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/Customer.php @@ -7,7 +7,6 @@ use Magento\Customer\Api\Data\CustomerInterface; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; -use Zend\Stdlib\ArrayObject; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) @@ -429,7 +428,7 @@ protected function _prepareDataForUpdate(array $rowData) protected function _importData() { while ($bunch = $this->_dataSourceModel->getNextBunch()) { - $this->prepareCustomerData(new ArrayObject($bunch)); + $this->prepareCustomerData(new \ArrayObject($bunch)); $entitiesToCreate = []; $entitiesToUpdate = []; $entitiesToDelete = []; diff --git a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php index 012d84a1b98ba..e8b2b4f7cde0e 100644 --- a/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php +++ b/app/code/Magento/CustomerImportExport/Model/Import/CustomerComposite.php @@ -5,9 +5,7 @@ */ namespace Magento\CustomerImportExport\Model\Import; -use Magento\Framework\DataObject; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; -use Zend\Stdlib\ArrayObject; /** * Import entity customer combined model @@ -294,6 +292,7 @@ public function getEntityTypeCode() */ public function validateData() { + //Preparing both customer and address imports for mass validation. $source = $this->getSource(); $this->_customerEntity->prepareCustomerData($source); $source->rewind(); @@ -305,7 +304,7 @@ public function validateData() ]; } $source->rewind(); - $this->_addressEntity->prepareCustomerData(new ArrayObject($rows)); + $this->_addressEntity->prepareCustomerData(new \ArrayObject($rows)); return parent::validateData(); } diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php index 88cbe63f97cdf..d8963fc7f6809 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/Customer/Storage.php @@ -143,13 +143,14 @@ public function addCustomer(DataObject $customer) if (!isset($this->_customerIds[$email])) { $this->_customerIds[$email] = []; } - $this->_customerIds[$email][$customer->getWebsiteId()] = $customer->getId(); + $this->_customerIds[$email][$customer->getWebsiteId()] + = $customer->getId(); return $this; } /** - * Get customer id + * Find customer ID for unique pair of email and website ID. * * @param string $email * @param int $websiteId @@ -157,6 +158,7 @@ public function addCustomer(DataObject $customer) */ public function getCustomerId($email, $websiteId) { + $email = mb_strtolower($email); //Trying to load the customer. if (!array_key_exists($email, $this->_customerIds) || !array_key_exists($websiteId, $this->_customerIds[$email]) @@ -196,16 +198,19 @@ public function prepareCustomers(array $customersToFind) $customersData = []; $filters = []; foreach ($customersToFind as $customerToFind) { - $email = $customerToFind['email']; + $email = mb_strtolower($customerToFind['email']); $websiteId = $customerToFind['website_id']; if (!array_key_exists($email, $this->_customerIds) || !array_key_exists($websiteId, $this->_customerIds[$email]) ) { //Only looking for customers we don't already have ID for. - $customersData[] = $customerToFind; + $customersData[] = [ + 'email' => $email, + 'website_id' => $websiteId + ]; $filters[] = $this->filterBuilder ->setField('email') - ->setValue($customerToFind['email']) + ->setValue($email) ->setConditionType('eq') ->create(); } diff --git a/dev/tests/integration/testsuite/Magento/Customer/_files/import_export/customers_for_address_import.php b/dev/tests/integration/testsuite/Magento/Customer/_files/import_export/customers_for_address_import.php index 9dc83d3fd83c4..10ac6e8a46fa2 100644 --- a/dev/tests/integration/testsuite/Magento/Customer/_files/import_export/customers_for_address_import.php +++ b/dev/tests/integration/testsuite/Magento/Customer/_files/import_export/customers_for_address_import.php @@ -4,7 +4,9 @@ * See COPYING.txt for license details. */ //Create customer -$customer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Customer\Model\Customer'); +/** @var Magento\Customer\Model\Customer $customer */ +$customer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Customer\Model\Customer'); $customer->setWebsiteId( 0 )->setEntityId( @@ -69,5 +71,4 @@ $addressSecond->isObjectNew(true); $customer->addAddress($addressSecond); $customer->setDefaultShipping($addressSecond->getId()); -$customer->isObjectNew(true); $customer->save(); diff --git a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php index 54489cd3a5045..2518088c69593 100644 --- a/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php +++ b/dev/tests/integration/testsuite/Magento/CustomerImportExport/Model/Import/AddressTest.php @@ -136,7 +136,11 @@ public function testConstruct() $this->_entityAdapter, 'Addresses must be an array.' ); - $this->assertAttributeNotEmpty('_addresses', $this->_entityAdapter, 'Addresses must not be empty'); + $this->assertAttributeEmpty( + '_addresses', + $this->_entityAdapter, + 'Addresses must not be loaded in constructor' + ); // check country regions and regions $this->assertAttributeInternalType( @@ -151,62 +155,6 @@ public function testConstruct() $this->assertAttributeNotEmpty('_regions', $this->_entityAdapter, 'Regions must not be empty'); } - /** - * Test _initAddresses - * - * @magentoDataFixture Magento/Customer/_files/import_export/customer_with_addresses.php - */ - public function testInitAddresses() - { - /** @var $objectManager \Magento\TestFramework\ObjectManager */ - $objectManager = Bootstrap::getObjectManager(); - - // get addressed from fixture - $customers = $objectManager->get('Magento\Framework\Registry')->registry($this->_fixtureKey); - $correctAddresses = []; - /** @var $customer \Magento\Customer\Model\Customer */ - foreach ($customers as $customer) { - $correctAddresses[$customer->getId()] = []; - /** @var $address \Magento\Customer\Model\Address */ - foreach ($customer->getAddressesCollection() as $address) { - $correctAddresses[$customer->getId()][] = $address->getId(); - } - } - - // invoke _initAddresses - $initAddresses = new \ReflectionMethod($this->_testClassName, '_initAddresses'); - $initAddresses->setAccessible(true); - $initAddresses->invoke($this->_entityAdapter); - - // check addresses - $this->assertAttributeInternalType( - 'array', - '_addresses', - $this->_entityAdapter, - 'Addresses must be an array.' - ); - $this->assertAttributeNotEmpty('_addresses', $this->_entityAdapter, 'Addresses must not be empty'); - - $addressesReflection = new \ReflectionProperty($this->_testClassName, '_addresses'); - $addressesReflection->setAccessible(true); - $testAddresses = $addressesReflection->getValue($this->_entityAdapter); - - $correctCustomerIds = array_keys($correctAddresses); - $testCustomerIds = array_keys($testAddresses); - sort($correctCustomerIds); - sort($testCustomerIds); - $this->assertEquals($correctCustomerIds, $testCustomerIds, 'Incorrect customer IDs in addresses array.'); - - foreach ($correctCustomerIds as $customerId) { - $this->assertInternalType('array', $correctAddresses[$customerId], 'Addresses must be an array.'); - $correctAddressIds = $correctAddresses[$customerId]; - $testAddressIds = $testAddresses[$customerId]; - sort($correctAddressIds); - sort($testAddressIds); - $this->assertEquals($correctAddressIds, $testAddressIds, 'Incorrect addresses IDs.'); - } - } - /** * Test _saveAddressEntity * From 160331e273e738193ef1b6b4e79ad5bb5f1081b2 Mon Sep 17 00:00:00 2001 From: olysenko Date: Fri, 26 Jan 2018 13:31:03 +0200 Subject: [PATCH 217/555] MAGETWO-86454: [Backport for 2.1.x] Update copyright year --- .php_cs | 2 +- COPYING.txt | 2 ++ Gruntfile.js.sample | 2 +- app/autoload.php | 2 +- app/bootstrap.php | 2 +- .../Block/Grid/Renderer/Actions.php | 2 +- .../Block/Grid/Renderer/Notice.php | 2 +- .../Block/Grid/Renderer/Severity.php | 2 +- app/code/Magento/AdminNotification/Block/Inbox.php | 2 +- .../AdminNotification/Block/System/Messages.php | 2 +- .../Block/System/Messages/UnreadMessagePopup.php | 2 +- .../AdminNotification/Block/ToolbarEntry.php | 2 +- .../Magento/AdminNotification/Block/Window.php | 2 +- .../Controller/Adminhtml/Notification.php | 2 +- .../Adminhtml/Notification/AjaxMarkAsRead.php | 2 +- .../Controller/Adminhtml/Notification/Index.php | 2 +- .../Adminhtml/Notification/MarkAsRead.php | 2 +- .../Adminhtml/Notification/MassMarkAsRead.php | 2 +- .../Adminhtml/Notification/MassRemove.php | 2 +- .../Controller/Adminhtml/Notification/Remove.php | 2 +- .../Adminhtml/System/Message/ListAction.php | 2 +- .../Model/Config/Source/Frequency.php | 2 +- app/code/Magento/AdminNotification/Model/Feed.php | 2 +- app/code/Magento/AdminNotification/Model/Inbox.php | 2 +- .../AdminNotification/Model/InboxInterface.php | 2 +- .../Model/NotificationService.php | 2 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- .../Model/ResourceModel/Inbox.php | 2 +- .../Model/ResourceModel/Inbox/Collection.php | 2 +- .../ResourceModel/Inbox/Collection/Critical.php | 2 +- .../ResourceModel/Inbox/Collection/Unread.php | 2 +- .../Model/ResourceModel/System/Message.php | 2 +- .../ResourceModel/System/Message/Collection.php | 2 +- .../System/Message/Collection/Synchronized.php | 2 +- .../AdminNotification/Model/System/Message.php | 2 +- .../Model/System/Message/Baseurl.php | 2 +- .../Model/System/Message/CacheOutdated.php | 2 +- .../Message/Media/AbstractSynchronization.php | 2 +- .../System/Message/Media/Synchronization/Error.php | 2 +- .../Message/Media/Synchronization/Success.php | 2 +- .../Model/System/Message/Security.php | 2 +- .../PredispatchAdminActionControllerObserver.php | 2 +- .../AdminNotification/Setup/InstallSchema.php | 2 +- .../Test/Unit/Block/ToolbarEntryTest.php | 2 +- .../AdminNotification/Test/Unit/Model/FeedTest.php | 2 +- .../Test/Unit/Model/NotificationServiceTest.php | 2 +- .../Model/System/Message/CacheOutdatedTest.php | 2 +- .../Message/Media/Synchronization/ErrorTest.php | 2 +- .../Unit/Model/System/Message/SecurityTest.php | 2 +- app/code/Magento/AdminNotification/etc/acl.xml | 2 +- .../Magento/AdminNotification/etc/adminhtml/di.xml | 2 +- .../AdminNotification/etc/adminhtml/events.xml | 2 +- .../AdminNotification/etc/adminhtml/menu.xml | 2 +- .../AdminNotification/etc/adminhtml/routes.xml | 2 +- .../AdminNotification/etc/adminhtml/system.xml | 2 +- app/code/Magento/AdminNotification/etc/config.xml | 2 +- app/code/Magento/AdminNotification/etc/di.xml | 2 +- app/code/Magento/AdminNotification/etc/module.xml | 2 +- .../Magento/AdminNotification/registration.php | 2 +- .../layout/adminhtml_notification_block.xml | 2 +- .../layout/adminhtml_notification_index.xml | 2 +- .../view/adminhtml/layout/default.xml | 2 +- .../view/adminhtml/requirejs-config.js | 2 +- .../adminhtml/templates/notification/window.phtml | 2 +- .../view/adminhtml/templates/system/messages.phtml | 2 +- .../templates/system/messages/popup.phtml | 2 +- .../view/adminhtml/templates/toolbar_entry.phtml | 2 +- .../view/adminhtml/web/system/notification.js | 2 +- .../view/adminhtml/web/toolbar_entry.js | 2 +- .../Controller/Adminhtml/Export/GetFilter.php | 2 +- .../Model/Export/AdvancedPricing.php | 2 +- .../Model/Import/AdvancedPricing.php | 2 +- .../Model/Import/AdvancedPricing/Validator.php | 2 +- .../Import/AdvancedPricing/Validator/TierPrice.php | 2 +- .../Import/AdvancedPricing/Validator/Website.php | 2 +- .../Model/Indexer/Product/Price/Plugin/Import.php | 2 +- .../Test/Unit/Model/Export/AdvancedPricingTest.php | 2 +- .../AdvancedPricing/Validator/TierPriceTest.php | 2 +- .../AdvancedPricing/Validator/WebsiteTest.php | 2 +- .../Model/Import/AdvancedPricing/ValidatorTest.php | 2 +- .../Test/Unit/Model/Import/AdvancedPricingTest.php | 2 +- .../Indexer/Product/Price/Plugin/ImportTest.php | 2 +- .../etc/adminhtml/routes.xml | 2 +- .../Magento/AdvancedPricingImportExport/etc/di.xml | 2 +- .../AdvancedPricingImportExport/etc/export.xml | 2 +- .../AdvancedPricingImportExport/etc/import.xml | 2 +- .../AdvancedPricingImportExport/etc/module.xml | 2 +- .../AdvancedPricingImportExport/registration.php | 2 +- .../Authorization/Model/Acl/AclRetriever.php | 2 +- .../Authorization/Model/Acl/Loader/Role.php | 2 +- .../Authorization/Model/Acl/Loader/Rule.php | 2 +- .../Authorization/Model/Acl/Role/Generic.php | 2 +- .../Magento/Authorization/Model/Acl/Role/Group.php | 2 +- .../Magento/Authorization/Model/Acl/Role/User.php | 2 +- .../Authorization/Model/CompositeUserContext.php | 2 +- .../Model/ResourceModel/Permissions/Collection.php | 2 +- .../Authorization/Model/ResourceModel/Role.php | 2 +- .../Model/ResourceModel/Role/Collection.php | 2 +- .../Model/ResourceModel/Role/Grid/Collection.php | 2 +- .../Authorization/Model/ResourceModel/Rules.php | 2 +- .../Model/ResourceModel/Rules/Collection.php | 2 +- app/code/Magento/Authorization/Model/Role.php | 2 +- app/code/Magento/Authorization/Model/Rules.php | 2 +- .../Authorization/Model/UserContextInterface.php | 2 +- .../Authorization/Setup/AuthorizationFactory.php | 2 +- .../Magento/Authorization/Setup/InstallData.php | 2 +- .../Magento/Authorization/Setup/InstallSchema.php | 2 +- .../Test/Unit/Model/Acl/AclRetrieverTest.php | 2 +- .../Test/Unit/Model/Acl/Loader/RoleTest.php | 2 +- .../Test/Unit/Model/Acl/Loader/RuleTest.php | 2 +- .../Test/Unit/Model/CompositeUserContextTest.php | 2 +- app/code/Magento/Authorization/etc/di.xml | 2 +- app/code/Magento/Authorization/etc/module.xml | 2 +- app/code/Magento/Authorization/registration.php | 2 +- .../Adminhtml/Order/View/Info/FraudDetails.php | 2 +- .../Authorizenet/Block/Transparent/Iframe.php | 2 +- .../Directpost/Payment/AddConfigured.php | 2 +- .../Authorizenet/Directpost/Payment/Cancel.php | 2 +- .../Directpost/Payment/ConfigureProductToAdd.php | 2 +- .../Directpost/Payment/ConfigureQuoteItems.php | 2 +- .../Authorizenet/Directpost/Payment/Index.php | 2 +- .../Authorizenet/Directpost/Payment/LoadBlock.php | 2 +- .../Authorizenet/Directpost/Payment/Place.php | 2 +- .../Directpost/Payment/ProcessData.php | 2 +- .../Authorizenet/Directpost/Payment/Redirect.php | 2 +- .../Authorizenet/Directpost/Payment/Reorder.php | 2 +- .../Directpost/Payment/ReturnQuote.php | 2 +- .../Authorizenet/Directpost/Payment/Save.php | 2 +- .../Directpost/Payment/ShowUpdateResult.php | 2 +- .../Authorizenet/Directpost/Payment/Start.php | 2 +- .../Authorizenet/Controller/Directpost/Payment.php | 2 +- .../Directpost/Payment/BackendResponse.php | 2 +- .../Controller/Directpost/Payment/Place.php | 2 +- .../Controller/Directpost/Payment/Redirect.php | 2 +- .../Controller/Directpost/Payment/Response.php | 2 +- .../Controller/Directpost/Payment/ReturnQuote.php | 2 +- .../Magento/Authorizenet/Helper/Backend/Data.php | 2 +- app/code/Magento/Authorizenet/Helper/Data.php | 2 +- .../Magento/Authorizenet/Helper/DataFactory.php | 2 +- .../Magento/Authorizenet/Model/Authorizenet.php | 2 +- app/code/Magento/Authorizenet/Model/Debug.php | 2 +- app/code/Magento/Authorizenet/Model/Directpost.php | 2 +- .../Authorizenet/Model/Directpost/Request.php | 2 +- .../Model/Directpost/Request/Factory.php | 2 +- .../Authorizenet/Model/Directpost/Response.php | 2 +- .../Model/Directpost/Response/Factory.php | 2 +- .../Authorizenet/Model/Directpost/Session.php | 2 +- app/code/Magento/Authorizenet/Model/Request.php | 2 +- .../Magento/Authorizenet/Model/Request/Factory.php | 2 +- .../Authorizenet/Model/ResourceModel/Debug.php | 2 +- .../Model/ResourceModel/Debug/Collection.php | 2 +- app/code/Magento/Authorizenet/Model/Response.php | 2 +- .../Authorizenet/Model/Response/Factory.php | 2 +- .../Magento/Authorizenet/Model/Source/Cctype.php | 2 +- .../Authorizenet/Model/Source/PaymentAction.php | 2 +- .../Authorizenet/Model/TransactionService.php | 2 +- .../Observer/AddFieldsToResponseObserver.php | 2 +- .../Observer/SaveOrderAfterSubmitObserver.php | 2 +- .../Observer/UpdateAllEditIncrementsObserver.php | 2 +- .../Directpost/Payment/RedirectTest.php | 2 +- .../Controller/Directpost/Payment/PlaceTest.php | 2 +- .../Controller/Directpost/Payment/RedirectTest.php | 2 +- .../Test/Unit/Helper/Backend/DataTest.php | 2 +- .../Authorizenet/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Directpost/Request/FactoryTest.php | 2 +- .../Unit/Model/Directpost/Response/FactoryTest.php | 2 +- .../Test/Unit/Model/Directpost/ResponseTest.php | 2 +- .../Test/Unit/Model/Directpost/SessionTest.php | 2 +- .../Test/Unit/Model/DirectpostTest.php | 2 +- .../Test/Unit/Model/Request/FactoryTest.php | 2 +- .../Test/Unit/Model/Response/FactoryTest.php | 2 +- .../Test/Unit/Model/TransactionServiceTest.php | 2 +- .../Observer/AddFieldsToResponseObserverTest.php | 2 +- app/code/Magento/Authorizenet/etc/adminhtml/di.xml | 2 +- .../Magento/Authorizenet/etc/adminhtml/events.xml | 2 +- .../Magento/Authorizenet/etc/adminhtml/routes.xml | 2 +- .../Magento/Authorizenet/etc/adminhtml/system.xml | 2 +- app/code/Magento/Authorizenet/etc/config.xml | 2 +- app/code/Magento/Authorizenet/etc/di.xml | 2 +- app/code/Magento/Authorizenet/etc/frontend/di.xml | 2 +- .../Magento/Authorizenet/etc/frontend/events.xml | 2 +- .../Authorizenet/etc/frontend/page_types.xml | 2 +- .../Magento/Authorizenet/etc/frontend/routes.xml | 2 +- .../Magento/Authorizenet/etc/frontend/sections.xml | 2 +- app/code/Magento/Authorizenet/etc/module.xml | 2 +- app/code/Magento/Authorizenet/registration.php | 2 +- ...ml_authorizenet_directpost_payment_redirect.xml | 2 +- .../adminhtml/layout/sales_order_create_index.xml | 2 +- ...ales_order_create_load_block_billing_method.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../adminhtml/templates/directpost/iframe.phtml | 2 +- .../view/adminhtml/templates/directpost/info.phtml | 2 +- .../templates/order/view/info/fraud_details.phtml | 2 +- .../view/adminhtml/web/js/direct-post.js | 2 +- ...orizenet_directpost_payment_backendresponse.xml | 2 +- .../authorizenet_directpost_payment_redirect.xml | 2 +- .../authorizenet_directpost_payment_response.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../Authorizenet/view/frontend/requirejs-config.js | 2 +- .../frontend/web/js/view/payment/authorizenet.js | 2 +- .../method-renderer/authorizenet-directpost.js | 2 +- .../template/payment/authorizenet-directpost.html | 2 +- app/code/Magento/Backend/App/AbstractAction.php | 2 +- app/code/Magento/Backend/App/Action.php | 2 +- app/code/Magento/Backend/App/Action/Context.php | 2 +- .../Backend/App/Action/Plugin/Authentication.php | 2 +- .../Backend/App/Action/Plugin/MassactionKey.php | 2 +- .../Magento/Backend/App/Area/FrontNameResolver.php | 2 +- app/code/Magento/Backend/App/BackendApp.php | 2 +- app/code/Magento/Backend/App/BackendAppList.php | 2 +- app/code/Magento/Backend/App/Config.php | 2 +- app/code/Magento/Backend/App/ConfigInterface.php | 2 +- app/code/Magento/Backend/App/DefaultPath.php | 2 +- .../Backend/App/Request/PathInfoProcessor.php | 2 +- .../Backend/App/Response/Http/FileFactory.php | 2 +- app/code/Magento/Backend/App/Router.php | 2 +- .../Magento/Backend/App/Router/NoRouteHandler.php | 2 +- app/code/Magento/Backend/App/UserConfig.php | 2 +- app/code/Magento/Backend/Block/AbstractBlock.php | 2 +- app/code/Magento/Backend/Block/Admin/Formkey.php | 2 +- app/code/Magento/Backend/Block/Cache.php | 2 +- .../Magento/Backend/Block/Cache/Additional.php | 2 +- .../Backend/Block/Cache/Grid/Column/Statuses.php | 2 +- .../Block/Catalog/Product/Tab/Container.php | 2 +- app/code/Magento/Backend/Block/Context.php | 2 +- app/code/Magento/Backend/Block/Dashboard.php | 2 +- .../Backend/Block/Dashboard/AbstractDashboard.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Bar.php | 2 +- .../Magento/Backend/Block/Dashboard/Diagrams.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Graph.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Grid.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Grids.php | 2 +- .../Backend/Block/Dashboard/Orders/Grid.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Sales.php | 2 +- .../Dashboard/Searches/Renderer/Searchquery.php | 2 +- .../Backend/Block/Dashboard/Tab/Amounts.php | 2 +- .../Backend/Block/Dashboard/Tab/Customers/Most.php | 2 +- .../Block/Dashboard/Tab/Customers/Newest.php | 2 +- .../Magento/Backend/Block/Dashboard/Tab/Orders.php | 2 +- .../Block/Dashboard/Tab/Products/Ordered.php | 2 +- .../Block/Dashboard/Tab/Products/Viewed.php | 2 +- .../Magento/Backend/Block/Dashboard/Totals.php | 2 +- app/code/Magento/Backend/Block/Denied.php | 2 +- app/code/Magento/Backend/Block/GlobalSearch.php | 2 +- app/code/Magento/Backend/Block/Media/Uploader.php | 2 +- app/code/Magento/Backend/Block/Menu.php | 2 +- app/code/Magento/Backend/Block/Page.php | 2 +- app/code/Magento/Backend/Block/Page/Copyright.php | 2 +- app/code/Magento/Backend/Block/Page/Footer.php | 2 +- app/code/Magento/Backend/Block/Page/Header.php | 2 +- app/code/Magento/Backend/Block/Page/Notices.php | 2 +- app/code/Magento/Backend/Block/Page/RequireJs.php | 2 +- .../Block/Page/System/Config/Robots/Reset.php | 2 +- app/code/Magento/Backend/Block/Store/Switcher.php | 2 +- .../Store/Switcher/Form/Renderer/Fieldset.php | 2 +- .../Switcher/Form/Renderer/Fieldset/Element.php | 2 +- .../Magento/Backend/Block/System/Account/Edit.php | 2 +- .../Backend/Block/System/Account/Edit/Form.php | 2 +- .../Magento/Backend/Block/System/Cache/Edit.php | 2 +- .../Magento/Backend/Block/System/Cache/Form.php | 2 +- app/code/Magento/Backend/Block/System/Design.php | 2 +- .../Magento/Backend/Block/System/Design/Edit.php | 2 +- .../Block/System/Design/Edit/Tab/General.php | 2 +- .../Backend/Block/System/Design/Edit/Tabs.php | 2 +- .../Magento/Backend/Block/System/Store/Delete.php | 2 +- .../Backend/Block/System/Store/Delete/Form.php | 2 +- .../Backend/Block/System/Store/Delete/Group.php | 2 +- .../Backend/Block/System/Store/Delete/Website.php | 2 +- .../Magento/Backend/Block/System/Store/Edit.php | 2 +- .../Block/System/Store/Edit/AbstractForm.php | 2 +- .../Backend/Block/System/Store/Edit/Form/Group.php | 2 +- .../Backend/Block/System/Store/Edit/Form/Store.php | 2 +- .../Block/System/Store/Edit/Form/Website.php | 2 +- .../Block/System/Store/Grid/Render/Group.php | 2 +- .../Block/System/Store/Grid/Render/Store.php | 2 +- .../Block/System/Store/Grid/Render/Website.php | 2 +- .../Magento/Backend/Block/System/Store/Store.php | 2 +- app/code/Magento/Backend/Block/Template.php | 2 +- .../Magento/Backend/Block/Template/Context.php | 2 +- app/code/Magento/Backend/Block/Text/ListText.php | 2 +- app/code/Magento/Backend/Block/Widget.php | 2 +- .../Magento/Backend/Block/Widget/Accordion.php | 2 +- .../Backend/Block/Widget/Accordion/Item.php | 2 +- .../Magento/Backend/Block/Widget/Breadcrumbs.php | 2 +- app/code/Magento/Backend/Block/Widget/Button.php | 2 +- .../Backend/Block/Widget/Button/ButtonList.php | 2 +- .../Block/Widget/Button/ContextInterface.php | 2 +- .../Magento/Backend/Block/Widget/Button/Item.php | 2 +- .../Backend/Block/Widget/Button/SplitButton.php | 2 +- .../Backend/Block/Widget/Button/Toolbar.php | 2 +- .../Block/Widget/Button/Toolbar/Container.php | 2 +- .../Block/Widget/Button/ToolbarInterface.php | 2 +- .../Magento/Backend/Block/Widget/Container.php | 2 +- .../Backend/Block/Widget/ContainerInterface.php | 2 +- app/code/Magento/Backend/Block/Widget/Context.php | 2 +- app/code/Magento/Backend/Block/Widget/Form.php | 2 +- .../Backend/Block/Widget/Form/Container.php | 2 +- .../Magento/Backend/Block/Widget/Form/Element.php | 2 +- .../Block/Widget/Form/Element/Dependence.php | 2 +- .../Backend/Block/Widget/Form/Element/Gallery.php | 2 +- .../Magento/Backend/Block/Widget/Form/Generic.php | 2 +- .../Backend/Block/Widget/Form/Renderer/Element.php | 2 +- .../Block/Widget/Form/Renderer/Fieldset.php | 2 +- .../Widget/Form/Renderer/Fieldset/Element.php | 2 +- app/code/Magento/Backend/Block/Widget/Grid.php | 2 +- .../Magento/Backend/Block/Widget/Grid/Column.php | 2 +- .../Backend/Block/Widget/Grid/Column/Extended.php | 2 +- .../Widget/Grid/Column/Filter/AbstractFilter.php | 2 +- .../Block/Widget/Grid/Column/Filter/Checkbox.php | 2 +- .../Block/Widget/Grid/Column/Filter/Country.php | 2 +- .../Block/Widget/Grid/Column/Filter/Date.php | 2 +- .../Block/Widget/Grid/Column/Filter/Datetime.php | 2 +- .../Widget/Grid/Column/Filter/FilterInterface.php | 2 +- .../Block/Widget/Grid/Column/Filter/Massaction.php | 2 +- .../Block/Widget/Grid/Column/Filter/Price.php | 2 +- .../Block/Widget/Grid/Column/Filter/Radio.php | 2 +- .../Block/Widget/Grid/Column/Filter/Range.php | 2 +- .../Block/Widget/Grid/Column/Filter/Select.php | 2 +- .../Widget/Grid/Column/Filter/Select/Extended.php | 2 +- .../Block/Widget/Grid/Column/Filter/SkipList.php | 2 +- .../Block/Widget/Grid/Column/Filter/Store.php | 2 +- .../Block/Widget/Grid/Column/Filter/Text.php | 2 +- .../Block/Widget/Grid/Column/Filter/Theme.php | 2 +- .../Block/Widget/Grid/Column/Multistore.php | 2 +- .../Grid/Column/Renderer/AbstractRenderer.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Action.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Button.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Checkbox.php | 2 +- .../Grid/Column/Renderer/Checkboxes/Extended.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Concat.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Country.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Currency.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Date.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Datetime.php | 2 +- .../Grid/Column/Renderer/DraggableHandle.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Input.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Ip.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Longtext.php | 2 +- .../Widget/Grid/Column/Renderer/Massaction.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Number.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Options.php | 2 +- .../Grid/Column/Renderer/Options/Converter.php | 2 +- .../Grid/Column/Renderer/Options/Extended.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Price.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Radio.php | 2 +- .../Widget/Grid/Column/Renderer/Radio/Extended.php | 2 +- .../Grid/Column/Renderer/RendererInterface.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Select.php | 2 +- .../Grid/Column/Renderer/Select/Extended.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Store.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Text.php | 2 +- .../Block/Widget/Grid/Column/Renderer/Wrapline.php | 2 +- .../Backend/Block/Widget/Grid/ColumnSet.php | 2 +- .../Backend/Block/Widget/Grid/Container.php | 2 +- .../Magento/Backend/Block/Widget/Grid/Export.php | 2 +- .../Backend/Block/Widget/Grid/ExportInterface.php | 2 +- .../Magento/Backend/Block/Widget/Grid/Extended.php | 2 +- .../Backend/Block/Widget/Grid/Massaction.php | 2 +- .../Widget/Grid/Massaction/AbstractMassaction.php | 2 +- .../Block/Widget/Grid/Massaction/Additional.php | 2 +- .../Block/Widget/Grid/Massaction/Extended.php | 2 +- .../Backend/Block/Widget/Grid/Massaction/Item.php | 2 +- .../Item/Additional/AdditionalInterface.php | 2 +- .../Item/Additional/DefaultAdditional.php | 2 +- .../Backend/Block/Widget/Grid/Serializer.php | 2 +- app/code/Magento/Backend/Block/Widget/Tab.php | 2 +- .../Backend/Block/Widget/Tab/TabInterface.php | 2 +- app/code/Magento/Backend/Block/Widget/Tabs.php | 2 +- .../Console/Command/AbstractCacheCommand.php | 2 +- .../Console/Command/AbstractCacheManageCommand.php | 2 +- .../Console/Command/AbstractCacheSetCommand.php | 2 +- .../Command/AbstractCacheTypeManageCommand.php | 2 +- .../Backend/Console/Command/CacheCleanCommand.php | 2 +- .../Console/Command/CacheDisableCommand.php | 2 +- .../Backend/Console/Command/CacheEnableCommand.php | 2 +- .../Backend/Console/Command/CacheFlushCommand.php | 2 +- .../Backend/Console/Command/CacheStatusCommand.php | 2 +- .../Controller/Adminhtml/Ajax/Translate.php | 2 +- .../Magento/Backend/Controller/Adminhtml/Auth.php | 2 +- .../Controller/Adminhtml/Auth/DeniedIframe.php | 2 +- .../Controller/Adminhtml/Auth/DeniedJson.php | 2 +- .../Backend/Controller/Adminhtml/Auth/Login.php | 2 +- .../Backend/Controller/Adminhtml/Auth/Logout.php | 2 +- .../Controller/Adminhtml/BackendApp/Redirect.php | 2 +- .../Magento/Backend/Controller/Adminhtml/Cache.php | 2 +- .../Controller/Adminhtml/Cache/CleanImages.php | 2 +- .../Controller/Adminhtml/Cache/CleanMedia.php | 2 +- .../Adminhtml/Cache/CleanStaticFiles.php | 2 +- .../Controller/Adminhtml/Cache/FlushAll.php | 2 +- .../Controller/Adminhtml/Cache/FlushSystem.php | 2 +- .../Backend/Controller/Adminhtml/Cache/Index.php | 2 +- .../Controller/Adminhtml/Cache/MassDisable.php | 2 +- .../Controller/Adminhtml/Cache/MassEnable.php | 2 +- .../Controller/Adminhtml/Cache/MassRefresh.php | 2 +- .../Backend/Controller/Adminhtml/Dashboard.php | 2 +- .../Controller/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 +- .../Magento/Backend/Controller/Adminhtml/Index.php | 2 +- .../Controller/Adminhtml/Index/ChangeLocale.php | 2 +- .../Controller/Adminhtml/Index/GlobalSearch.php | 2 +- .../Backend/Controller/Adminhtml/Index/Index.php | 2 +- .../Backend/Controller/Adminhtml/Noroute/Index.php | 2 +- .../Backend/Controller/Adminhtml/System.php | 2 +- .../Controller/Adminhtml/System/Account.php | 2 +- .../Controller/Adminhtml/System/Account/Index.php | 2 +- .../Controller/Adminhtml/System/Account/Save.php | 2 +- .../Backend/Controller/Adminhtml/System/Design.php | 2 +- .../Controller/Adminhtml/System/Design/Delete.php | 2 +- .../Controller/Adminhtml/System/Design/Edit.php | 2 +- .../Controller/Adminhtml/System/Design/Grid.php | 2 +- .../Controller/Adminhtml/System/Design/Index.php | 2 +- .../Adminhtml/System/Design/NewAction.php | 2 +- .../Controller/Adminhtml/System/Design/Save.php | 2 +- .../Backend/Controller/Adminhtml/System/Index.php | 2 +- .../Controller/Adminhtml/System/SetStore.php | 2 +- .../Backend/Controller/Adminhtml/System/Store.php | 2 +- .../Adminhtml/System/Store/DeleteGroup.php | 2 +- .../Adminhtml/System/Store/DeleteGroupPost.php | 2 +- .../Adminhtml/System/Store/DeleteStore.php | 2 +- .../Adminhtml/System/Store/DeleteStorePost.php | 2 +- .../Adminhtml/System/Store/DeleteWebsite.php | 2 +- .../Adminhtml/System/Store/DeleteWebsitePost.php | 2 +- .../Adminhtml/System/Store/EditGroup.php | 2 +- .../Adminhtml/System/Store/EditStore.php | 2 +- .../Adminhtml/System/Store/EditWebsite.php | 2 +- .../Controller/Adminhtml/System/Store/Index.php | 2 +- .../Controller/Adminhtml/System/Store/NewGroup.php | 2 +- .../Controller/Adminhtml/System/Store/NewStore.php | 2 +- .../Adminhtml/System/Store/NewWebsite.php | 2 +- .../Controller/Adminhtml/System/Store/Save.php | 2 +- app/code/Magento/Backend/Cron/CleanCache.php | 2 +- .../Backend/Helper/Dashboard/AbstractDashboard.php | 2 +- app/code/Magento/Backend/Helper/Dashboard/Data.php | 2 +- .../Magento/Backend/Helper/Dashboard/Order.php | 2 +- app/code/Magento/Backend/Helper/Data.php | 2 +- app/code/Magento/Backend/Helper/Js.php | 2 +- app/code/Magento/Backend/Model/AdminPathConfig.php | 2 +- app/code/Magento/Backend/Model/Auth.php | 2 +- .../Model/Auth/Credential/StorageInterface.php | 2 +- app/code/Magento/Backend/Model/Auth/Session.php | 2 +- .../Backend/Model/Auth/StorageInterface.php | 2 +- .../Backend/Model/Authorization/RoleLocator.php | 2 +- .../Model/Cache/ResourceModel/Grid/Collection.php | 2 +- .../Model/Config/SessionLifetime/BackendModel.php | 2 +- app/code/Magento/Backend/Model/Locale/Manager.php | 2 +- app/code/Magento/Backend/Model/Locale/Resolver.php | 2 +- app/code/Magento/Backend/Model/Menu.php | 2 +- .../Backend/Model/Menu/AbstractDirector.php | 2 +- app/code/Magento/Backend/Model/Menu/Builder.php | 2 +- .../Backend/Model/Menu/Builder/AbstractCommand.php | 2 +- .../Backend/Model/Menu/Builder/Command/Add.php | 2 +- .../Backend/Model/Menu/Builder/Command/Remove.php | 2 +- .../Backend/Model/Menu/Builder/Command/Update.php | 2 +- .../Backend/Model/Menu/Builder/CommandFactory.php | 2 +- app/code/Magento/Backend/Model/Menu/Config.php | 2 +- .../Backend/Model/Menu/Config/Converter.php | 2 +- .../Magento/Backend/Model/Menu/Config/Menu/Dom.php | 2 +- .../Magento/Backend/Model/Menu/Config/Reader.php | 2 +- .../Backend/Model/Menu/Config/SchemaLocator.php | 2 +- .../Backend/Model/Menu/Director/Director.php | 2 +- .../Magento/Backend/Model/Menu/Filter/Iterator.php | 2 +- app/code/Magento/Backend/Model/Menu/Item.php | 2 +- .../Magento/Backend/Model/Menu/Item/Factory.php | 2 +- .../Magento/Backend/Model/Menu/Item/Validator.php | 2 +- app/code/Magento/Backend/Model/Menu/Iterator.php | 2 +- .../Backend/Model/ResourceModel/Translate.php | 2 +- app/code/Magento/Backend/Model/Search/Customer.php | 2 +- app/code/Magento/Backend/Model/Search/Order.php | 2 +- app/code/Magento/Backend/Model/Session.php | 2 +- .../Magento/Backend/Model/Session/AdminConfig.php | 2 +- app/code/Magento/Backend/Model/Session/Quote.php | 2 +- .../Magento/Backend/Model/Setup/MenuBuilder.php | 2 +- .../Backend/Model/Translate/Inline/Config.php | 2 +- app/code/Magento/Backend/Model/Url.php | 2 +- .../Magento/Backend/Model/Url/ScopeResolver.php | 2 +- app/code/Magento/Backend/Model/UrlInterface.php | 2 +- .../Magento/Backend/Model/View/Layout/Builder.php | 2 +- .../Backend/Model/View/Layout/Filter/Acl.php | 2 +- .../Backend/Model/View/Layout/GeneratorPool.php | 2 +- .../Backend/Model/View/Layout/Reader/Block.php | 2 +- .../Magento/Backend/Model/View/Page/Builder.php | 2 +- .../Magento/Backend/Model/View/Result/Forward.php | 2 +- .../Magento/Backend/Model/View/Result/Page.php | 2 +- .../Magento/Backend/Model/View/Result/Redirect.php | 2 +- .../Backend/Model/View/Result/RedirectFactory.php | 2 +- .../Backend/Model/Widget/Grid/AbstractTotals.php | 2 +- .../Magento/Backend/Model/Widget/Grid/Parser.php | 2 +- .../Model/Widget/Grid/Row/GeneratorInterface.php | 2 +- .../Backend/Model/Widget/Grid/Row/UrlGenerator.php | 2 +- .../Model/Widget/Grid/Row/UrlGeneratorFactory.php | 2 +- .../Model/Widget/Grid/Row/UrlGeneratorId.php | 2 +- .../Backend/Model/Widget/Grid/SubTotals.php | 2 +- .../Magento/Backend/Model/Widget/Grid/Totals.php | 2 +- .../Backend/Model/Widget/Grid/TotalsInterface.php | 2 +- .../Magento/Backend/Service/V1/ModuleService.php | 2 +- .../Backend/Service/V1/ModuleServiceInterface.php | 2 +- .../Magento/Backend/Setup/ConfigOptionsList.php | 2 +- .../Unit/App/Action/Plugin/AuthenticationTest.php | 2 +- .../Unit/App/Action/Plugin/MassactionKeyTest.php | 2 +- .../Test/Unit/App/Action/Stub/ActionStub.php | 2 +- .../Test/Unit/App/Area/FrontNameResolverTest.php | 2 +- .../App/Area/Request/PathInfoProcessorTest.php | 2 +- .../Magento/Backend/Test/Unit/App/ConfigTest.php | 2 +- .../Unit/App/Response/Http/FileFactoryTest.php | 2 +- .../Test/Unit/App/Router/NoRouteHandlerTest.php | 2 +- .../Backend/Test/Unit/App/UserConfigTest.php | 2 +- .../Test/Unit/Block/Cache/AdditionalTest.php | 2 +- .../Block/Page/System/Config/Robots/ResetTest.php | 2 +- .../Backend/Test/Unit/Block/Store/SwitcherTest.php | 2 +- .../Test/Unit/Block/Widget/Button/SplitTest.php | 2 +- .../Backend/Test/Unit/Block/Widget/ButtonTest.php | 2 +- .../Test/Unit/Block/Widget/Form/ContainerTest.php | 2 +- .../Backend/Test/Unit/Block/Widget/FormTest.php | 2 +- .../Block/Widget/Grid/Column/Filter/DateTest.php | 2 +- .../Widget/Grid/Column/Filter/DatetimeTest.php | 2 +- .../Block/Widget/Grid/Column/Filter/StoreTest.php | 2 +- .../Block/Widget/Grid/Column/Filter/TextTest.php | 2 +- .../Block/Widget/Grid/Column/MultistoreTest.php | 2 +- .../Grid/Column/Renderer/AbstractRendererTest.php | 2 +- .../Widget/Grid/Column/Renderer/ConcatTest.php | 2 +- .../Widget/Grid/Column/Renderer/CurrencyTest.php | 2 +- .../Grid/Column/Renderer/Radio/ExtendedTest.php | 2 +- .../Widget/Grid/Column/Renderer/RadioTest.php | 2 +- .../Test/Unit/Block/Widget/Grid/ColumnSetTest.php | 2 +- .../Test/Unit/Block/Widget/Grid/ColumnTest.php | 2 +- .../Test/Unit/Block/Widget/Grid/ExtendedTest.php | 2 +- .../Block/Widget/Grid/Massaction/ExtendedTest.php | 2 +- .../Test/Unit/Block/Widget/Grid/MassactionTest.php | 2 +- .../Test/Unit/Block/Widget/Grid/SerializerTest.php | 2 +- .../Backend/Test/Unit/Block/Widget/TabTest.php | 2 +- .../Console/Command/AbstractCacheCommandTest.php | 2 +- .../Command/AbstractCacheManageCommandTest.php | 2 +- .../Command/AbstractCacheSetCommandTest.php | 2 +- .../Unit/Console/Command/CacheCleanCommandTest.php | 2 +- .../Console/Command/CacheDisableCommandTest.php | 2 +- .../Console/Command/CacheEnableCommandTest.php | 2 +- .../Unit/Console/Command/CacheFlushCommandTest.php | 2 +- .../Console/Command/CacheStatusCommandTest.php | 2 +- .../Controller/Adminhtml/Cache/CleanMediaTest.php | 2 +- .../Adminhtml/Cache/CleanStaticFilesTest.php | 2 +- .../Adminhtml/Dashboard/AbstractTestCase.php | 2 +- .../Adminhtml/Dashboard/CustomersMostTest.php | 2 +- .../Adminhtml/Dashboard/CustomersNewestTest.php | 2 +- .../Adminhtml/Dashboard/ProductsViewedTest.php | 2 +- .../Adminhtml/Dashboard/RefreshStatisticsTest.php | 2 +- .../Controller/Adminhtml/Dashboard/TunnelTest.php | 2 +- .../Adminhtml/System/Account/SaveTest.php | 2 +- .../Backend/Test/Unit/Cron/CleanCacheTest.php | 2 +- .../Magento/Backend/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Model/AdminPathConfigTest.php | 2 +- .../Backend/Test/Unit/Model/Auth/SessionTest.php | 2 +- .../Magento/Backend/Test/Unit/Model/AuthTest.php | 2 +- .../Unit/Model/Authorization/RoleLocatorTest.php | 2 +- .../Config/SessionLifetime/BackendModelTest.php | 2 +- .../Backend/Test/Unit/Model/Locale/ManagerTest.php | 2 +- .../Model/Menu/Builder/AbstractCommandTest.php | 2 +- .../Unit/Model/Menu/Builder/Command/AddTest.php | 2 +- .../Unit/Model/Menu/Builder/Command/RemoveTest.php | 2 +- .../Unit/Model/Menu/Builder/Command/UpdateTest.php | 2 +- .../Backend/Test/Unit/Model/Menu/BuilderTest.php | 2 +- .../Test/Unit/Model/Menu/Config/ConverterTest.php | 2 +- .../Unit/Model/Menu/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Menu/Config/XsdTest.php | 2 +- .../Menu/Config/_files/invalidMenuXmlArray.php | 2 +- .../Unit/Model/Menu/Config/_files/invalid_menu.xml | 2 +- .../Unit/Model/Menu/Config/_files/valid_menu.xml | 2 +- .../Backend/Test/Unit/Model/Menu/ConfigTest.php | 2 +- .../Test/Unit/Model/Menu/Director/DirectorTest.php | 2 +- .../Test/Unit/Model/Menu/Filter/IteratorTest.php | 2 +- .../Test/Unit/Model/Menu/Item/ValidatorTest.php | 2 +- .../Backend/Test/Unit/Model/Menu/ItemTest.php | 2 +- .../Backend/Test/Unit/Model/MenuBuilderTest.php | 2 +- .../Magento/Backend/Test/Unit/Model/MenuTest.php | 2 +- .../Test/Unit/Model/Session/AdminConfigTest.php | 2 +- .../Backend/Test/Unit/Model/Session/QuoteTest.php | 2 +- .../Unit/Model/Translate/Inline/ConfigTest.php | 2 +- .../Magento/Backend/Test/Unit/Model/UrlTest.php | 2 +- .../Test/Unit/Model/View/Layout/Filter/AclTest.php | 2 +- .../Test/Unit/Model/View/Result/PageTest.php | 2 +- .../Test/Unit/Model/View/Result/RedirectTest.php | 2 +- .../Unit/Model/Widget/Grid/AbstractTotalsTest.php | 2 +- .../Test/Unit/Model/Widget/Grid/ParserTest.php | 2 +- .../Model/Widget/Grid/Row/UrlGeneratorTest.php | 2 +- .../Test/Unit/Model/Widget/Grid/SubTotalsTest.php | 2 +- .../Test/Unit/Model/Widget/Grid/TotalsTest.php | 2 +- .../Backend/Test/Unit/Model/_files/menu_merged.php | 2 +- .../Backend/Test/Unit/Model/_files/menu_merged.xml | 2 +- .../Test/Unit/Setup/ConfigOptionsListTest.php | 2 +- app/code/Magento/Backend/etc/acl.xml | 2 +- app/code/Magento/Backend/etc/adminhtml/di.xml | 2 +- app/code/Magento/Backend/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Backend/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Backend/etc/adminhtml/system.xml | 2 +- app/code/Magento/Backend/etc/config.xml | 2 +- app/code/Magento/Backend/etc/crontab.xml | 2 +- app/code/Magento/Backend/etc/di.xml | 2 +- app/code/Magento/Backend/etc/menu.xsd | 2 +- app/code/Magento/Backend/etc/module.xml | 2 +- app/code/Magento/Backend/etc/webapi.xml | 2 +- app/code/Magento/Backend/registration.php | 2 +- .../Backend/view/adminhtml/layout/admin_login.xml | 2 +- .../view/adminhtml/layout/adminhtml_auth_login.xml | 2 +- .../adminhtml/layout/adminhtml_cache_block.xml | 2 +- .../adminhtml/layout/adminhtml_cache_index.xml | 2 +- .../layout/adminhtml_dashboard_customersmost.xml | 2 +- .../layout/adminhtml_dashboard_customersnewest.xml | 2 +- .../adminhtml/layout/adminhtml_dashboard_index.xml | 2 +- .../layout/adminhtml_dashboard_productsviewed.xml | 2 +- .../view/adminhtml/layout/adminhtml_denied.xml | 2 +- .../view/adminhtml/layout/adminhtml_noroute.xml | 2 +- .../layout/adminhtml_system_account_index.xml | 2 +- .../layout/adminhtml_system_design_edit.xml | 2 +- .../layout/adminhtml_system_design_grid.xml | 2 +- .../layout/adminhtml_system_design_grid_block.xml | 2 +- .../layout/adminhtml_system_design_index.xml | 2 +- .../layout/adminhtml_system_store_grid_block.xml | 2 +- .../layout/adminhtml_system_store_index.xml | 2 +- .../Backend/view/adminhtml/layout/default.xml | 2 +- .../Backend/view/adminhtml/layout/editor.xml | 2 +- .../Backend/view/adminhtml/layout/empty.xml | 2 +- .../Backend/view/adminhtml/layout/formkey.xml | 2 +- .../view/adminhtml/layout/overlay_popup.xml | 2 +- .../Backend/view/adminhtml/layout/popup.xml | 2 +- .../Backend/view/adminhtml/requirejs-config.js | 2 +- .../adminhtml/templates/admin/access_denied.phtml | 2 +- .../view/adminhtml/templates/admin/formkey.phtml | 2 +- .../view/adminhtml/templates/admin/login.phtml | 2 +- .../adminhtml/templates/admin/login_buttons.phtml | 2 +- .../adminhtml/templates/admin/overlay_popup.phtml | 2 +- .../view/adminhtml/templates/admin/page.phtml | 2 +- .../view/adminhtml/templates/dashboard/graph.phtml | 2 +- .../templates/dashboard/graph/disabled.phtml | 2 +- .../view/adminhtml/templates/dashboard/grid.phtml | 2 +- .../view/adminhtml/templates/dashboard/index.phtml | 2 +- .../adminhtml/templates/dashboard/salebar.phtml | 2 +- .../adminhtml/templates/dashboard/searches.phtml | 2 +- .../templates/dashboard/store/switcher.phtml | 2 +- .../adminhtml/templates/dashboard/totalbar.phtml | 2 +- .../dashboard/totalbar/refreshstatistics.phtml | 2 +- .../view/adminhtml/templates/media/uploader.phtml | 2 +- .../Backend/view/adminhtml/templates/menu.phtml | 2 +- .../view/adminhtml/templates/page/copyright.phtml | 2 +- .../view/adminhtml/templates/page/footer.phtml | 2 +- .../view/adminhtml/templates/page/header.phtml | 2 +- .../adminhtml/templates/page/js/calendar.phtml | 2 +- .../adminhtml/templates/page/js/components.phtml | 2 +- .../adminhtml/templates/page/js/require_js.phtml | 2 +- .../view/adminhtml/templates/page/notices.phtml | 2 +- .../view/adminhtml/templates/page/report.phtml | 2 +- .../view/adminhtml/templates/pageactions.phtml | 2 +- .../view/adminhtml/templates/store/switcher.phtml | 2 +- .../store/switcher/form/renderer/fieldset.phtml | 2 +- .../switcher/form/renderer/fieldset/element.phtml | 2 +- .../adminhtml/templates/system/autocomplete.phtml | 2 +- .../templates/system/cache/additional.phtml | 2 +- .../adminhtml/templates/system/cache/edit.phtml | 2 +- .../adminhtml/templates/system/design/edit.phtml | 2 +- .../adminhtml/templates/system/design/index.phtml | 2 +- .../view/adminhtml/templates/system/search.phtml | 2 +- .../system/shipping/applicable_country.phtml | 2 +- .../adminhtml/templates/widget/accordion.phtml | 2 +- .../adminhtml/templates/widget/breadcrumbs.phtml | 2 +- .../view/adminhtml/templates/widget/button.phtml | 2 +- .../adminhtml/templates/widget/button/split.phtml | 2 +- .../view/adminhtml/templates/widget/form.phtml | 2 +- .../templates/widget/form/container.phtml | 2 +- .../adminhtml/templates/widget/form/element.phtml | 2 +- .../templates/widget/form/element/gallery.phtml | 2 +- .../templates/widget/form/renderer/element.phtml | 2 +- .../templates/widget/form/renderer/fieldset.phtml | 2 +- .../widget/form/renderer/fieldset/element.phtml | 2 +- .../view/adminhtml/templates/widget/grid.phtml | 2 +- .../templates/widget/grid/column_set.phtml | 2 +- .../templates/widget/grid/container.phtml | 2 +- .../templates/widget/grid/container/empty.phtml | 2 +- .../adminhtml/templates/widget/grid/export.phtml | 2 +- .../adminhtml/templates/widget/grid/extended.phtml | 2 +- .../templates/widget/grid/massaction.phtml | 2 +- .../widget/grid/massaction_extended.phtml | 2 +- .../templates/widget/grid/serializer.phtml | 2 +- .../view/adminhtml/templates/widget/tabs.phtml | 2 +- .../adminhtml/templates/widget/tabshoriz.phtml | 2 +- .../view/adminhtml/templates/widget/tabsleft.phtml | 2 +- .../templates/widget/view/container.phtml | 2 +- .../adminhtml/ui_component/design_config_form.xml | 2 +- .../ui_component/design_config_listing.xml | 2 +- .../view/adminhtml/web/js/bootstrap/editor.js | 2 +- .../view/adminhtml/web/js/media-uploader.js | 2 +- .../template/dynamic-rows/cells/action-delete.html | 2 +- .../adminhtml/web/template/dynamic-rows/grid.html | 2 +- .../form/element/helper/fallback-reset-link.html | 2 +- app/code/Magento/Backup/Block/Adminhtml/Backup.php | 2 +- .../Magento/Backup/Block/Adminhtml/Dialogs.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Download.php | 2 +- .../Block/Adminhtml/Grid/Column/Rollback.php | 2 +- .../Magento/Backup/Controller/Adminhtml/Index.php | 2 +- .../Backup/Controller/Adminhtml/Index/Create.php | 2 +- .../Backup/Controller/Adminhtml/Index/Download.php | 2 +- .../Backup/Controller/Adminhtml/Index/Grid.php | 2 +- .../Backup/Controller/Adminhtml/Index/Index.php | 2 +- .../Controller/Adminhtml/Index/MassDelete.php | 2 +- .../Backup/Controller/Adminhtml/Index/Rollback.php | 2 +- app/code/Magento/Backup/Cron/SystemBackup.php | 2 +- app/code/Magento/Backup/Helper/Data.php | 2 +- app/code/Magento/Backup/Model/Backup.php | 2 +- app/code/Magento/Backup/Model/BackupFactory.php | 2 +- .../Magento/Backup/Model/Config/Backend/Cron.php | 2 +- .../Magento/Backup/Model/Config/Source/Type.php | 2 +- app/code/Magento/Backup/Model/Db.php | 2 +- app/code/Magento/Backup/Model/Fs/Collection.php | 2 +- app/code/Magento/Backup/Model/Grid/Options.php | 2 +- app/code/Magento/Backup/Model/ResourceModel/Db.php | 2 +- .../Magento/Backup/Model/ResourceModel/Helper.php | 2 +- .../Controller/Adminhtml/Index/DownloadTest.php | 2 +- .../Magento/Backup/Test/Unit/Helper/DataTest.php | 2 +- .../Backup/Test/Unit/Model/BackupFactoryTest.php | 2 +- .../Magento/Backup/Test/Unit/Model/BackupTest.php | 2 +- .../Backup/Test/Unit/Model/Fs/CollectionTest.php | 2 +- app/code/Magento/Backup/etc/acl.xml | 2 +- app/code/Magento/Backup/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Backup/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Backup/etc/adminhtml/system.xml | 2 +- app/code/Magento/Backup/etc/crontab.xml | 2 +- app/code/Magento/Backup/etc/di.xml | 2 +- app/code/Magento/Backup/etc/module.xml | 2 +- app/code/Magento/Backup/registration.php | 2 +- .../view/adminhtml/layout/backup_index_block.xml | 2 +- .../view/adminhtml/layout/backup_index_grid.xml | 2 +- .../view/adminhtml/layout/backup_index_index.xml | 2 +- .../view/adminhtml/templates/backup/dialogs.phtml | 2 +- .../view/adminhtml/templates/backup/left.phtml | 2 +- .../view/adminhtml/templates/backup/list.phtml | 2 +- .../Block/Adminhtml/Form/Field/CcTypes.php | 2 +- .../Block/Adminhtml/Form/Field/Countries.php | 2 +- .../Adminhtml/Form/Field/CountryCreditCard.php | 2 +- .../Braintree/Block/Customer/CardRenderer.php | 2 +- .../Block/Customer/PayPal/VaultTokenRenderer.php | 2 +- app/code/Magento/Braintree/Block/Form.php | 2 +- app/code/Magento/Braintree/Block/Info.php | 2 +- app/code/Magento/Braintree/Block/Payment.php | 2 +- app/code/Magento/Braintree/Block/Paypal/Button.php | 2 +- .../Braintree/Block/Paypal/Checkout/Review.php | 2 +- .../Adminhtml/Payment/GetClientToken.php | 2 +- .../Controller/Adminhtml/Payment/GetNonce.php | 2 +- .../Controller/Adminhtml/Report/Index.php | 2 +- .../Braintree/Controller/Payment/GetNonce.php | 2 +- .../Braintree/Controller/Paypal/AbstractAction.php | 2 +- .../Braintree/Controller/Paypal/PlaceOrder.php | 2 +- .../Magento/Braintree/Controller/Paypal/Review.php | 2 +- .../Controller/Paypal/SaveShippingMethod.php | 2 +- .../Gateway/Command/CaptureStrategyCommand.php | 2 +- .../Gateway/Command/GetPaymentNonceCommand.php | 2 +- .../Braintree/Gateway/Config/CanVoidHandler.php | 2 +- .../Magento/Braintree/Gateway/Config/Config.php | 2 +- .../Braintree/Gateway/Config/PayPal/Config.php | 2 +- .../Braintree/Gateway/Helper/SubjectReader.php | 2 +- .../Gateway/Http/Client/AbstractTransaction.php | 2 +- .../Gateway/Http/Client/TransactionRefund.php | 2 +- .../Gateway/Http/Client/TransactionSale.php | 2 +- .../Http/Client/TransactionSubmitForSettlement.php | 2 +- .../Gateway/Http/Client/TransactionVoid.php | 2 +- .../Braintree/Gateway/Http/TransferFactory.php | 2 +- .../Gateway/Request/AddressDataBuilder.php | 2 +- .../Gateway/Request/CaptureDataBuilder.php | 2 +- .../Gateway/Request/ChannelDataBuilder.php | 2 +- .../Gateway/Request/CustomerDataBuilder.php | 2 +- .../Gateway/Request/DescriptorDataBuilder.php | 2 +- .../Gateway/Request/KountPaymentDataBuilder.php | 2 +- .../Gateway/Request/PayPal/DeviceDataBuilder.php | 2 +- .../Gateway/Request/PayPal/VaultDataBuilder.php | 2 +- .../Gateway/Request/PaymentDataBuilder.php | 2 +- .../Gateway/Request/RefundDataBuilder.php | 2 +- .../Gateway/Request/SettlementDataBuilder.php | 2 +- .../Gateway/Request/StoreConfigBuilder.php | 2 +- .../Gateway/Request/ThreeDSecureDataBuilder.php | 2 +- .../Gateway/Request/VaultCaptureDataBuilder.php | 2 +- .../Braintree/Gateway/Request/VaultDataBuilder.php | 2 +- .../Braintree/Gateway/Request/VoidDataBuilder.php | 2 +- .../Gateway/Response/CardDetailsHandler.php | 2 +- .../Response/PayPal/VaultDetailsHandler.php | 2 +- .../Gateway/Response/PayPalDetailsHandler.php | 2 +- .../Gateway/Response/PaymentDetailsHandler.php | 2 +- .../Braintree/Gateway/Response/RefundHandler.php | 2 +- .../Braintree/Gateway/Response/RiskDataHandler.php | 2 +- .../Response/ThreeDSecureDetailsHandler.php | 2 +- .../Gateway/Response/TransactionIdHandler.php | 2 +- .../Gateway/Response/VaultDetailsHandler.php | 2 +- .../Braintree/Gateway/Response/VoidHandler.php | 2 +- .../Gateway/Validator/GeneralResponseValidator.php | 2 +- .../Validator/PaymentNonceResponseValidator.php | 2 +- .../Gateway/Validator/ResponseValidator.php | 2 +- app/code/Magento/Braintree/Helper/CcType.php | 2 +- app/code/Magento/Braintree/Helper/Country.php | 2 +- .../Braintree/Model/Adapter/BraintreeAdapter.php | 2 +- .../Model/Adapter/BraintreeAdapterFactory.php | 2 +- .../Model/Adapter/BraintreeSearchAdapter.php | 2 +- .../Braintree/Model/Adminhtml/Source/CcType.php | 2 +- .../Model/Adminhtml/Source/Environment.php | 2 +- .../Model/Adminhtml/Source/PaymentAction.php | 2 +- .../Model/Adminhtml/System/Config/Country.php | 2 +- .../Adminhtml/System/Config/CountryCreditCard.php | 2 +- .../Model/Paypal/Helper/AbstractHelper.php | 2 +- .../Braintree/Model/Paypal/Helper/OrderPlace.php | 2 +- .../Braintree/Model/Paypal/Helper/QuoteUpdater.php | 2 +- .../Model/Paypal/Helper/ShippingMethodUpdater.php | 2 +- .../Report/ConditionAppliers/ApplierInterface.php | 2 +- .../Report/ConditionAppliers/AppliersPool.php | 2 +- .../Report/ConditionAppliers/MultipleValue.php | 2 +- .../Model/Report/ConditionAppliers/Range.php | 2 +- .../Model/Report/ConditionAppliers/Text.php | 2 +- .../Braintree/Model/Report/FilterMapper.php | 2 +- .../Braintree/Model/Report/Row/TransactionMap.php | 2 +- .../Model/Report/TransactionsCollection.php | 2 +- .../Adminhtml/PayPal/TokenUiComponentProvider.php | 2 +- .../Ui/Adminhtml/TokenUiComponentProvider.php | 2 +- .../Magento/Braintree/Model/Ui/ConfigProvider.php | 2 +- .../Braintree/Model/Ui/PayPal/ConfigProvider.php | 2 +- .../Model/Ui/PayPal/TokenUiComponentProvider.php | 2 +- .../Model/Ui/TokenUiComponentProvider.php | 2 +- .../Braintree/Observer/AddPaypalShortcuts.php | 2 +- .../Braintree/Observer/DataAssignObserver.php | 2 +- .../Magento/Braintree/Test/Unit/Block/FormTest.php | 2 +- .../Test/Unit/Controller/Payment/GetNonceTest.php | 2 +- .../Test/Unit/Controller/Paypal/PlaceOrderTest.php | 2 +- .../Test/Unit/Controller/Paypal/ReviewTest.php | 2 +- .../Controller/Paypal/SaveShippingMethodTest.php | 2 +- .../Gateway/Command/CaptureStrategyCommandTest.php | 2 +- .../Gateway/Command/GetPaymentNonceCommandTest.php | 2 +- .../Unit/Gateway/Config/CanVoidHandlerTest.php | 2 +- .../Test/Unit/Gateway/Config/ConfigTest.php | 2 +- .../Test/Unit/Gateway/Helper/SubjectReaderTest.php | 2 +- .../Gateway/Http/Client/TransactionSaleTest.php | 2 +- .../Client/TransactionSubmitForSettlementTest.php | 2 +- .../Test/Unit/Gateway/Http/TransferFactoryTest.php | 2 +- .../Gateway/Request/AddressDataBuilderTest.php | 2 +- .../Gateway/Request/CaptureDataBuilderTest.php | 2 +- .../Gateway/Request/ChannelDataBuilderTest.php | 2 +- .../Gateway/Request/CustomerDataBuilderTest.php | 2 +- .../Gateway/Request/DescriptorDataBuilderTest.php | 2 +- .../Request/KountPaymentDataBuilderTest.php | 2 +- .../Request/PayPal/DeviceDataBuilderTest.php | 2 +- .../Request/PayPal/VaultDataBuilderTest.php | 2 +- .../Gateway/Request/PaymentDataBuilderTest.php | 2 +- .../Unit/Gateway/Request/RefundDataBuilderTest.php | 2 +- .../Gateway/Request/SettlementDataBuilderTest.php | 2 +- .../Request/ThreeDSecureDataBuilderTest.php | 2 +- .../Request/VaultCaptureDataBuilderTest.php | 2 +- .../Unit/Gateway/Request/VaultDataBuilderTest.php | 2 +- .../Gateway/Response/CardDetailsHandlerTest.php | 2 +- .../Response/PayPal/VaultDetailsHandlerTest.php | 2 +- .../Gateway/Response/PayPalDetailsHandlerTest.php | 2 +- .../Gateway/Response/PaymentDetailsHandlerTest.php | 2 +- .../Unit/Gateway/Response/RiskDataHandlerTest.php | 2 +- .../Response/ThreeDSecureDetailsHandlerTest.php | 2 +- .../Gateway/Response/TransactionIdHandlerTest.php | 2 +- .../Gateway/Response/VaultDetailsHandlerTest.php | 2 +- .../Test/Unit/Gateway/Response/VoidHandlerTest.php | 2 +- .../Validator/GeneralResponseValidatorTest.php | 2 +- .../PaymentNonceResponseValidatorTest.php | 2 +- .../Gateway/Validator/ResponseValidatorTest.php | 2 +- .../Braintree/Test/Unit/Helper/CcTypeTest.php | 2 +- .../Braintree/Test/Unit/Helper/CountryTest.php | 2 +- .../System/Config/CountryCreditCardTest.php | 2 +- .../Model/Adminhtml/System/Config/CountryTest.php | 2 +- .../Unit/Model/Paypal/Helper/OrderPlaceTest.php | 2 +- .../Unit/Model/Paypal/Helper/QuoteUpdaterTest.php | 2 +- .../Paypal/Helper/ShippingMethodUpdaterTest.php | 2 +- .../Unit/Model/Report/BraintreeSearchNodeStub.php | 2 +- .../Unit/Model/Report/BraintreeTransactionStub.php | 2 +- .../Test/Unit/Model/Report/FilterMapperTest.php | 2 +- .../Test/Unit/Model/Report/TransactionMapTest.php | 2 +- .../Model/Report/TransactionsCollectionTest.php | 2 +- .../PayPal/TokenUiComponentProviderTest.php | 2 +- .../Ui/Adminhtml/TokenUiComponentProviderTest.php | 2 +- .../Test/Unit/Model/Ui/ConfigProviderTest.php | 2 +- .../Unit/Model/Ui/PayPal/ConfigProviderTest.php | 2 +- .../Ui/PayPal/TokenUiComponentProviderTest.php | 2 +- .../Test/Unit/Observer/AddPaypalShortcutsTest.php | 2 +- .../Test/Unit/Observer/DataAssignObserverTest.php | 2 +- .../Report/Filters/Type/DateRangeTest.php | 2 +- .../Listing/Column/CheckColumnOptionSourceTest.php | 2 +- .../Ui/Component/Report/Filters/Type/DateRange.php | 2 +- .../Report/Listing/Column/PaymentType.php | 2 +- .../Ui/Component/Report/Listing/Column/Status.php | 2 +- .../Report/Listing/Column/TransactionType.php | 2 +- app/code/Magento/Braintree/etc/acl.xml | 2 +- app/code/Magento/Braintree/etc/adminhtml/di.xml | 2 +- app/code/Magento/Braintree/etc/adminhtml/menu.xml | 2 +- .../Magento/Braintree/etc/adminhtml/routes.xml | 2 +- .../Magento/Braintree/etc/adminhtml/system.xml | 2 +- app/code/Magento/Braintree/etc/config.xml | 2 +- app/code/Magento/Braintree/etc/di.xml | 2 +- app/code/Magento/Braintree/etc/events.xml | 2 +- app/code/Magento/Braintree/etc/frontend/di.xml | 2 +- app/code/Magento/Braintree/etc/frontend/events.xml | 2 +- app/code/Magento/Braintree/etc/frontend/routes.xml | 2 +- .../Magento/Braintree/etc/frontend/sections.xml | 2 +- app/code/Magento/Braintree/etc/module.xml | 2 +- app/code/Magento/Braintree/registration.php | 2 +- .../layout/adminhtml_system_config_edit.xml | 2 +- .../adminhtml/layout/braintree_report_index.xml | 2 +- .../adminhtml/layout/sales_order_create_index.xml | 2 +- ...ales_order_create_load_block_billing_method.xml | 2 +- .../view/adminhtml/templates/form/cc.phtml | 2 +- .../adminhtml/templates/form/paypal/vault.phtml | 2 +- .../view/adminhtml/templates/form/vault.phtml | 2 +- .../view/adminhtml/templates/grid/tooltip.phtml | 2 +- .../view/adminhtml/templates/payment/script.phtml | 2 +- .../adminhtml/ui_component/braintree_report.xml | 2 +- .../Braintree/view/adminhtml/web/js/braintree.js | 2 +- .../view/adminhtml/web/js/grid/filters/status.html | 2 +- .../view/adminhtml/web/js/grid/provider.js | 2 +- .../Braintree/view/adminhtml/web/js/vault.js | 2 +- .../Braintree/view/adminhtml/web/styles.css | 2 +- .../Braintree/view/base/web/js/validator.js | 2 +- .../frontend/layout/braintree_paypal_review.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../frontend/layout/vault_cards_listaction.xml | 2 +- .../Braintree/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/paypal/button.phtml | 2 +- .../frontend/templates/paypal/vault_token.phtml | 2 +- .../view/frontend/web/js/paypal/button.js | 2 +- .../view/frontend/web/js/paypal/form-builder.js | 2 +- .../view/frontend/web/js/view/payment/3d-secure.js | 2 +- .../view/frontend/web/js/view/payment/adapter.js | 2 +- .../view/frontend/web/js/view/payment/braintree.js | 2 +- .../web/js/view/payment/method-renderer/cc-form.js | 2 +- .../view/payment/method-renderer/hosted-fields.js | 2 +- .../view/payment/method-renderer/paypal-vault.js | 2 +- .../web/js/view/payment/method-renderer/paypal.js | 2 +- .../web/js/view/payment/method-renderer/vault.js | 2 +- .../web/js/view/payment/validator-handler.js | 2 +- .../view/frontend/web/template/payment/form.html | 2 +- .../view/frontend/web/template/payment/paypal.html | 2 +- .../web/template/payment/paypal/vault.html | 2 +- .../Bundle/Api/Data/BundleOptionInterface.php | 2 +- app/code/Magento/Bundle/Api/Data/LinkInterface.php | 2 +- .../Magento/Bundle/Api/Data/OptionInterface.php | 2 +- .../Bundle/Api/Data/OptionTypeInterface.php | 2 +- .../Bundle/Api/ProductLinkManagementInterface.php | 2 +- .../Api/ProductOptionManagementInterface.php | 2 +- .../Api/ProductOptionRepositoryInterface.php | 2 +- .../Bundle/Api/ProductOptionTypeListInterface.php | 2 +- .../Catalog/Product/Composite/Fieldset/Bundle.php | 2 +- .../Composite/Fieldset/Options/Type/Checkbox.php | 2 +- .../Composite/Fieldset/Options/Type/Multi.php | 2 +- .../Composite/Fieldset/Options/Type/Radio.php | 2 +- .../Composite/Fieldset/Options/Type/Select.php | 2 +- .../Catalog/Product/Edit/Tab/Attributes.php | 2 +- .../Catalog/Product/Edit/Tab/Attributes/Extend.php | 2 +- .../Product/Edit/Tab/Attributes/Special.php | 2 +- .../Adminhtml/Catalog/Product/Edit/Tab/Bundle.php | 2 +- .../Catalog/Product/Edit/Tab/Bundle/Option.php | 2 +- .../Product/Edit/Tab/Bundle/Option/Search.php | 2 +- .../Product/Edit/Tab/Bundle/Option/Search/Grid.php | 2 +- .../Product/Edit/Tab/Bundle/Option/Selection.php | 2 +- .../Block/Adminhtml/Catalog/Product/Edit/Tabs.php | 2 +- .../Block/Adminhtml/Order/Create/Sidebar.php | 2 +- .../Block/Adminhtml/Sales/Order/Items/Renderer.php | 2 +- .../Adminhtml/Sales/Order/View/Items/Renderer.php | 2 +- .../Magento/Bundle/Block/Catalog/Product/Price.php | 2 +- .../Block/Catalog/Product/View/Type/Bundle.php | 2 +- .../Catalog/Product/View/Type/Bundle/Option.php | 2 +- .../Product/View/Type/Bundle/Option/Checkbox.php | 2 +- .../Product/View/Type/Bundle/Option/Multi.php | 2 +- .../Product/View/Type/Bundle/Option/Radio.php | 2 +- .../Product/View/Type/Bundle/Option/Select.php | 2 +- .../Bundle/Block/Checkout/Cart/Item/Renderer.php | 2 +- .../Bundle/Block/Sales/Order/Items/Renderer.php | 2 +- .../Bundle/Product/Edit/AddAttributeToTemplate.php | 2 +- .../Bundle/Product/Edit/AlertsPriceGrid.php | 2 +- .../Bundle/Product/Edit/AlertsStockGrid.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Categories.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Crosssell.php | 2 +- .../Bundle/Product/Edit/CrosssellGrid.php | 2 +- .../Bundle/Product/Edit/CustomOptions.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Duplicate.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Edit.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Form.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Grid.php | 2 +- .../Adminhtml/Bundle/Product/Edit/GridOnly.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Index.php | 2 +- .../Adminhtml/Bundle/Product/Edit/MassDelete.php | 2 +- .../Adminhtml/Bundle/Product/Edit/MassStatus.php | 2 +- .../Adminhtml/Bundle/Product/Edit/NewAction.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Options.php | 2 +- .../Bundle/Product/Edit/OptionsImportGrid.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Related.php | 2 +- .../Adminhtml/Bundle/Product/Edit/RelatedGrid.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Save.php | 2 +- .../Bundle/Product/Edit/ShowUpdateResult.php | 2 +- .../Bundle/Product/Edit/SuggestAttributes.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Upsell.php | 2 +- .../Adminhtml/Bundle/Product/Edit/UpsellGrid.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Validate.php | 2 +- .../Adminhtml/Bundle/Product/Edit/Wysiwyg.php | 2 +- .../Controller/Adminhtml/Bundle/Selection/Grid.php | 2 +- .../Adminhtml/Bundle/Selection/Search.php | 2 +- .../Initialization/Helper/Plugin/Bundle.php | 2 +- .../Helper/Catalog/Product/Configuration.php | 2 +- app/code/Magento/Bundle/Helper/Data.php | 2 +- app/code/Magento/Bundle/Model/BundleOption.php | 2 +- .../Magento/Bundle/Model/CartItemProcessor.php | 2 +- app/code/Magento/Bundle/Model/Link.php | 2 +- app/code/Magento/Bundle/Model/LinkManagement.php | 2 +- app/code/Magento/Bundle/Model/Option.php | 2 +- app/code/Magento/Bundle/Model/Option/Validator.php | 2 +- app/code/Magento/Bundle/Model/OptionManagement.php | 2 +- app/code/Magento/Bundle/Model/OptionRepository.php | 2 +- app/code/Magento/Bundle/Model/OptionTypeList.php | 2 +- .../Magento/Bundle/Model/Plugin/PriceBackend.php | 2 +- app/code/Magento/Bundle/Model/Plugin/Product.php | 2 +- app/code/Magento/Bundle/Model/Plugin/QuoteItem.php | 2 +- .../Model/Product/Attribute/Source/Price/View.php | 2 +- .../Product/Attribute/Source/Shipment/Type.php | 2 +- .../Magento/Bundle/Model/Product/CatalogPrice.php | 2 +- .../Model/Product/CopyConstructor/Bundle.php | 2 +- .../Magento/Bundle/Model/Product/LinksList.php | 2 +- .../Magento/Bundle/Model/Product/OptionList.php | 2 +- app/code/Magento/Bundle/Model/Product/Price.php | 2 +- .../Magento/Bundle/Model/Product/ReadHandler.php | 2 +- .../Magento/Bundle/Model/Product/SaveHandler.php | 2 +- app/code/Magento/Bundle/Model/Product/Type.php | 2 +- .../Bundle/Model/ProductOptionProcessor.php | 2 +- .../Magento/Bundle/Model/ResourceModel/Bundle.php | 2 +- .../Bundle/Model/ResourceModel/Indexer/Price.php | 2 +- .../Bundle/Model/ResourceModel/Indexer/Stock.php | 2 +- .../Magento/Bundle/Model/ResourceModel/Option.php | 2 +- .../Model/ResourceModel/Option/Collection.php | 2 +- .../Bundle/Model/ResourceModel/Selection.php | 2 +- .../Model/ResourceModel/Selection/Collection.php | 2 +- .../ResourceModel/Selection/Plugin/Collection.php | 2 +- .../Model/Sales/Order/Pdf/Items/AbstractItems.php | 2 +- .../Model/Sales/Order/Pdf/Items/Creditmemo.php | 2 +- .../Bundle/Model/Sales/Order/Pdf/Items/Invoice.php | 2 +- .../Model/Sales/Order/Pdf/Items/Shipment.php | 2 +- app/code/Magento/Bundle/Model/Selection.php | 2 +- .../Model/Source/Option/Selection/Price/Type.php | 2 +- .../Magento/Bundle/Model/Source/Option/Type.php | 2 +- .../Observer/AppendUpsellProductsObserver.php | 2 +- .../Bundle/Observer/InitOptionRendererObserver.php | 2 +- .../Bundle/Observer/LoadProductOptionsObserver.php | 2 +- .../Observer/SetAttributeTabBlockObserver.php | 2 +- .../Adjustment/BundleCalculatorInterface.php | 2 +- .../Bundle/Pricing/Adjustment/Calculator.php | 2 +- .../Bundle/Pricing/Price/BundleOptionPrice.php | 2 +- .../Pricing/Price/BundleOptionPriceInterface.php | 2 +- .../Bundle/Pricing/Price/BundleRegularPrice.php | 2 +- .../Pricing/Price/BundleSelectionFactory.php | 2 +- .../Bundle/Pricing/Price/BundleSelectionPrice.php | 2 +- .../Bundle/Pricing/Price/ConfiguredPrice.php | 2 +- .../Bundle/Pricing/Price/DiscountCalculator.php | 2 +- .../Pricing/Price/DiscountProviderInterface.php | 2 +- .../Magento/Bundle/Pricing/Price/FinalPrice.php | 2 +- .../Bundle/Pricing/Price/FinalPriceInterface.php | 2 +- .../Bundle/Pricing/Price/RegularPriceInterface.php | 2 +- .../Magento/Bundle/Pricing/Price/SpecialPrice.php | 2 +- .../Magento/Bundle/Pricing/Price/TierPrice.php | 2 +- .../Bundle/Pricing/Render/FinalPriceBox.php | 2 +- app/code/Magento/Bundle/Setup/InstallData.php | 2 +- app/code/Magento/Bundle/Setup/InstallSchema.php | 2 +- app/code/Magento/Bundle/Setup/Recurring.php | 2 +- app/code/Magento/Bundle/Setup/UpgradeData.php | 2 +- app/code/Magento/Bundle/Setup/UpgradeSchema.php | 2 +- .../Fieldset/Options/Type/CheckboxTest.php | 2 +- .../Composite/Fieldset/Options/Type/MultiTest.php | 2 +- .../Composite/Fieldset/Options/Type/RadioTest.php | 2 +- .../Composite/Fieldset/Options/Type/SelectTest.php | 2 +- .../Product/Edit/Tab/Attributes/ExtendTest.php | 2 +- .../Catalog/Product/Edit/Tab/Bundle/OptionTest.php | 2 +- .../Adminhtml/Sales/Order/Items/RendererTest.php | 2 +- .../Sales/Order/View/Items/RendererTest.php | 2 +- .../Product/View/Type/Bundle/OptionTest.php | 2 +- .../Block/Catalog/Product/View/Type/BundleTest.php | 2 +- .../Unit/Block/Sales/Order/Items/RendererTest.php | 2 +- .../Adminhtml/Bundle/Product/Edit/FormTest.php | 2 +- .../Adminhtml/Bundle/Selection/GridTest.php | 2 +- .../Adminhtml/Bundle/Selection/SearchTest.php | 2 +- .../Initialization/Helper/Plugin/BundleTest.php | 2 +- .../Helper/Catalog/Product/ConfigurationTest.php | 2 +- .../Magento/Bundle/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Model/CartItemProcessorTest.php | 2 +- .../Bundle/Test/Unit/Model/LinkManagementTest.php | 2 +- .../Test/Unit/Model/Option/ValidatorTest.php | 2 +- .../Test/Unit/Model/OptionManagementTest.php | 2 +- .../Test/Unit/Model/OptionRepositoryTest.php | 2 +- .../Magento/Bundle/Test/Unit/Model/OptionTest.php | 2 +- .../Bundle/Test/Unit/Model/OptionTypeListTest.php | 2 +- .../Test/Unit/Model/Plugin/PriceBackendTest.php | 2 +- .../Bundle/Test/Unit/Model/Plugin/ProductTest.php | 2 +- .../Test/Unit/Model/Plugin/QuoteItemTest.php | 2 +- .../Product/Attribute/Source/Price/ViewTest.php | 2 +- .../Test/Unit/Model/Product/CatalogPriceTest.php | 2 +- .../Model/Product/CopyConstructor/BundleTest.php | 2 +- .../Test/Unit/Model/Product/LinksListTest.php | 2 +- .../Test/Unit/Model/Product/OptionListTest.php | 2 +- .../Bundle/Test/Unit/Model/Product/PriceTest.php | 2 +- .../Bundle/Test/Unit/Model/Product/TypeTest.php | 2 +- .../Test/Unit/Model/ProductOptionProcessorTest.php | 2 +- .../Sales/Order/Pdf/Items/AbstractItemsTest.php | 2 +- .../Unit/Pricing/Adjustment/CalculatorTest.php | 2 +- .../Unit/Pricing/Price/BundleOptionPriceTest.php | 2 +- .../Unit/Pricing/Price/BundleRegularPriceTest.php | 2 +- .../Pricing/Price/BundleSelectionFactoryTest.php | 2 +- .../Pricing/Price/BundleSelectionPriceTest.php | 2 +- .../Unit/Pricing/Price/DiscountCalculatorTest.php | 2 +- .../Test/Unit/Pricing/Price/FinalPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/SpecialPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/TierPriceTest.php | 2 +- .../Test/Unit/Pricing/Render/FinalPriceBoxTest.php | 2 +- .../Product/BundleDataProviderTest.php | 2 +- .../Product/Form/Modifier/AbstractModifierTest.php | 2 +- .../Product/Form/Modifier/BundleQuantityTest.php | 2 +- .../Product/Form/Modifier/BundleSkuTest.php | 2 +- .../Product/Form/Modifier/BundleWeightTest.php | 2 +- .../Product/Form/Modifier/CompositeTest.php | 2 +- .../Ui/DataProvider/Product/BundleDataProvider.php | 2 +- .../Form/Modifier/BundleAdvancedPricing.php | 2 +- .../Product/Form/Modifier/BundleCustomOptions.php | 2 +- .../Product/Form/Modifier/BundlePanel.php | 2 +- .../Product/Form/Modifier/BundlePrice.php | 2 +- .../Product/Form/Modifier/BundleQuantity.php | 2 +- .../Product/Form/Modifier/BundleSku.php | 2 +- .../Product/Form/Modifier/BundleWeight.php | 2 +- .../Product/Form/Modifier/Composite.php | 2 +- .../Product/Form/Modifier/StockData.php | 2 +- app/code/Magento/Bundle/etc/adminhtml/di.xml | 2 +- app/code/Magento/Bundle/etc/adminhtml/events.xml | 2 +- app/code/Magento/Bundle/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Bundle/etc/catalog_attributes.xml | 2 +- app/code/Magento/Bundle/etc/config.xml | 2 +- app/code/Magento/Bundle/etc/di.xml | 2 +- .../Magento/Bundle/etc/extension_attributes.xml | 2 +- app/code/Magento/Bundle/etc/frontend/di.xml | 2 +- app/code/Magento/Bundle/etc/frontend/events.xml | 2 +- app/code/Magento/Bundle/etc/module.xml | 2 +- app/code/Magento/Bundle/etc/pdf.xml | 2 +- app/code/Magento/Bundle/etc/product_types.xml | 2 +- app/code/Magento/Bundle/etc/sales.xml | 2 +- app/code/Magento/Bundle/etc/webapi.xml | 2 +- app/code/Magento/Bundle/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Bundle/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Bundle/registration.php | 2 +- .../layout/adminhtml_order_shipment_new.xml | 2 +- .../layout/adminhtml_order_shipment_view.xml | 2 +- .../adminhtml/layout/catalog_product_bundle.xml | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../layout/catalog_product_view_type_bundle.xml | 2 +- .../adminhtml/layout/customer_index_wishlist.xml | 2 +- .../layout/sales_order_creditmemo_new.xml | 2 +- .../layout/sales_order_creditmemo_updateqty.xml | 2 +- .../layout/sales_order_creditmemo_view.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../layout/sales_order_invoice_updateqty.xml | 2 +- .../adminhtml/layout/sales_order_invoice_view.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../product/edit/tab/attributes/extend.phtml | 2 +- .../composite/fieldset/options/bundle.phtml | 2 +- .../composite/fieldset/options/type/checkbox.phtml | 2 +- .../composite/fieldset/options/type/multi.phtml | 2 +- .../composite/fieldset/options/type/radio.phtml | 2 +- .../composite/fieldset/options/type/select.phtml | 2 +- .../adminhtml/templates/product/edit/bundle.phtml | 2 +- .../templates/product/edit/bundle/option.phtml | 2 +- .../product/edit/bundle/option/search.phtml | 2 +- .../product/edit/bundle/option/selection.phtml | 2 +- .../templates/product/stock/disabler.phtml | 2 +- .../sales/creditmemo/create/items/renderer.phtml | 2 +- .../sales/creditmemo/view/items/renderer.phtml | 2 +- .../sales/invoice/create/items/renderer.phtml | 2 +- .../sales/invoice/view/items/renderer.phtml | 2 +- .../sales/order/view/items/renderer.phtml | 2 +- .../sales/shipment/create/items/renderer.phtml | 2 +- .../sales/shipment/view/items/renderer.phtml | 2 +- .../ui_component/bundle_product_listing.xml | 2 +- .../view/adminhtml/web/css/bundle-product.css | 2 +- .../Bundle/view/adminhtml/web/js/bundle-product.js | 2 +- .../view/adminhtml/web/js/bundle-type-handler.js | 2 +- .../adminhtml/web/js/components/bundle-checkbox.js | 2 +- .../web/js/components/bundle-input-type.js | 2 +- .../web/js/components/bundle-option-qty.js | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../base/templates/product/price/final_price.phtml | 2 +- .../templates/product/price/selection/amount.phtml | 2 +- .../base/templates/product/price/tier_prices.phtml | 2 +- .../Bundle/view/base/web/js/price-bundle.js | 2 +- .../layout/catalog_product_view_type_bundle.xml | 2 +- .../layout/catalog_product_view_type_simple.xml | 2 +- .../layout/checkout_cart_configure_type_bundle.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../checkout_onepage_review_item_renderers.xml | 2 +- .../Bundle/view/frontend/layout/default.xml | 2 +- .../sales_email_order_creditmemo_renderers.xml | 2 +- .../layout/sales_email_order_invoice_renderers.xml | 2 +- .../layout/sales_email_order_renderers.xml | 2 +- .../sales_email_order_shipment_renderers.xml | 2 +- .../layout/sales_order_creditmemo_renderers.xml | 2 +- .../layout/sales_order_invoice_renderers.xml | 2 +- .../frontend/layout/sales_order_item_renderers.xml | 2 +- .../sales_order_print_creditmemo_renderers.xml | 2 +- .../layout/sales_order_print_invoice_renderers.xml | 2 +- .../layout/sales_order_print_renderers.xml | 2 +- .../sales_order_print_shipment_renderers.xml | 2 +- .../layout/sales_order_shipment_renderers.xml | 2 +- .../Bundle/view/frontend/requirejs-config.js | 2 +- .../catalog/product/view/backbutton.phtml | 2 +- .../templates/catalog/product/view/customize.phtml | 2 +- .../catalog/product/view/options/notice.phtml | 2 +- .../templates/catalog/product/view/summary.phtml | 2 +- .../catalog/product/view/type/bundle.phtml | 2 +- .../product/view/type/bundle/option/checkbox.phtml | 2 +- .../product/view/type/bundle/option/multi.phtml | 2 +- .../product/view/type/bundle/option/radio.phtml | 2 +- .../product/view/type/bundle/option/select.phtml | 2 +- .../catalog/product/view/type/bundle/options.phtml | 2 +- .../email/order/items/creditmemo/default.phtml | 2 +- .../email/order/items/invoice/default.phtml | 2 +- .../email/order/items/order/default.phtml | 2 +- .../email/order/items/shipment/default.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../sales/order/creditmemo/items/renderer.phtml | 2 +- .../sales/order/invoice/items/renderer.phtml | 2 +- .../templates/sales/order/items/renderer.phtml | 2 +- .../sales/order/shipment/items/renderer.phtml | 2 +- .../Magento/Bundle/view/frontend/web/js/float.js | 2 +- .../Bundle/view/frontend/web/js/product-summary.js | 2 +- .../Magento/Bundle/view/frontend/web/js/slide.js | 2 +- .../Model/Export/Product/Type/Bundle.php | 2 +- .../Model/Export/RowCustomizer.php | 2 +- .../Model/Import/Product/Type/Bundle.php | 2 +- .../Model/Export/Product/RowCustomizerTest.php | 2 +- .../Unit/Model/Import/Product/Type/BundleTest.php | 2 +- app/code/Magento/BundleImportExport/etc/di.xml | 2 +- app/code/Magento/BundleImportExport/etc/export.xml | 2 +- app/code/Magento/BundleImportExport/etc/import.xml | 2 +- app/code/Magento/BundleImportExport/etc/module.xml | 2 +- .../Magento/BundleImportExport/registration.php | 2 +- .../Magento/CacheInvalidate/Model/PurgeCache.php | 2 +- .../CacheInvalidate/Model/SocketFactory.php | 2 +- .../Observer/FlushAllCacheObserver.php | 2 +- .../Observer/InvalidateVarnishObserver.php | 2 +- .../Test/Unit/Model/PurgeCacheTest.php | 2 +- .../Test/Unit/Model/SocketFactoryTest.php | 2 +- .../Unit/Observer/FlushAllCacheObserverTest.php | 2 +- .../Observer/InvalidateVarnishObserverTest.php | 2 +- app/code/Magento/CacheInvalidate/etc/events.xml | 2 +- app/code/Magento/CacheInvalidate/etc/module.xml | 2 +- app/code/Magento/CacheInvalidate/registration.php | 2 +- .../Block/Adminhtml/Captcha/DefaultCaptcha.php | 2 +- app/code/Magento/Captcha/Block/Captcha.php | 2 +- .../Captcha/Block/Captcha/DefaultCaptcha.php | 2 +- .../Controller/Adminhtml/Refresh/Refresh.php | 2 +- .../Magento/Captcha/Controller/Refresh/Index.php | 2 +- .../Magento/Captcha/Cron/DeleteExpiredImages.php | 2 +- .../Magento/Captcha/Cron/DeleteOldAttempts.php | 2 +- app/code/Magento/Captcha/Helper/Adminhtml/Data.php | 2 +- app/code/Magento/Captcha/Helper/Data.php | 2 +- app/code/Magento/Captcha/Model/CaptchaFactory.php | 2 +- .../Magento/Captcha/Model/CaptchaInterface.php | 2 +- .../Magento/Captcha/Model/Cart/ConfigPlugin.php | 2 +- .../Captcha/Model/Checkout/ConfigProvider.php | 2 +- app/code/Magento/Captcha/Model/Config/Font.php | 2 +- .../Captcha/Model/Config/Form/AbstractForm.php | 2 +- .../Magento/Captcha/Model/Config/Form/Backend.php | 2 +- .../Magento/Captcha/Model/Config/Form/Frontend.php | 2 +- app/code/Magento/Captcha/Model/Config/Mode.php | 2 +- .../Captcha/Model/Customer/Plugin/AjaxLogin.php | 2 +- app/code/Magento/Captcha/Model/DefaultModel.php | 2 +- .../Magento/Captcha/Model/ResourceModel/Log.php | 2 +- .../Captcha/Observer/CaptchaStringResolver.php | 2 +- .../Observer/CheckContactUsFormObserver.php | 2 +- .../Observer/CheckForgotpasswordObserver.php | 2 +- .../Observer/CheckGuestCheckoutObserver.php | 2 +- .../Observer/CheckRegisterCheckoutObserver.php | 2 +- .../Captcha/Observer/CheckUserCreateObserver.php | 2 +- .../Captcha/Observer/CheckUserEditObserver.php | 2 +- .../CheckUserForgotPasswordBackendObserver.php | 2 +- .../Observer/CheckUserLoginBackendObserver.php | 2 +- .../Captcha/Observer/CheckUserLoginObserver.php | 2 +- .../Observer/ResetAttemptForBackendObserver.php | 2 +- .../ResetAttemptForFrontendAccountEditObserver.php | 2 +- .../Observer/ResetAttemptForFrontendObserver.php | 2 +- app/code/Magento/Captcha/Setup/InstallSchema.php | 2 +- .../Test/Unit/Controller/Refresh/IndexTest.php | 2 +- .../Test/Unit/Cron/DeleteExpiredImagesTest.php | 2 +- .../Test/Unit/Helper/Adminhtml/DataTest.php | 2 +- .../Magento/Captcha/Test/Unit/Helper/DataTest.php | 2 +- .../Captcha/Test/Unit/Model/CaptchaFactoryTest.php | 2 +- .../Test/Unit/Model/Cart/ConfigPluginTest.php | 2 +- .../Unit/Model/Checkout/ConfigProviderTest.php | 2 +- .../Unit/Model/Customer/Plugin/AjaxLoginTest.php | 2 +- .../Captcha/Test/Unit/Model/DefaultTest.php | 2 +- .../Observer/CheckContactUsFormObserverTest.php | 2 +- .../Observer/CheckForgotpasswordObserverTest.php | 2 +- .../Unit/Observer/CheckUserCreateObserverTest.php | 2 +- .../Unit/Observer/CheckUserEditObserverTest.php | 2 +- .../Unit/Observer/CheckUserLoginObserverTest.php | 2 +- app/code/Magento/Captcha/etc/adminhtml/di.xml | 2 +- app/code/Magento/Captcha/etc/adminhtml/events.xml | 2 +- app/code/Magento/Captcha/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Captcha/etc/adminhtml/system.xml | 2 +- app/code/Magento/Captcha/etc/config.xml | 2 +- app/code/Magento/Captcha/etc/crontab.xml | 2 +- app/code/Magento/Captcha/etc/crontab/di.xml | 2 +- app/code/Magento/Captcha/etc/di.xml | 2 +- app/code/Magento/Captcha/etc/events.xml | 2 +- app/code/Magento/Captcha/etc/frontend/di.xml | 2 +- app/code/Magento/Captcha/etc/frontend/events.xml | 2 +- app/code/Magento/Captcha/etc/frontend/routes.xml | 2 +- app/code/Magento/Captcha/etc/module.xml | 2 +- app/code/Magento/Captcha/registration.php | 2 +- .../layout/adminhtml_auth_forgotpassword.xml | 2 +- .../view/adminhtml/layout/adminhtml_auth_login.xml | 2 +- .../Captcha/view/adminhtml/templates/default.phtml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../view/frontend/layout/contact_index_index.xml | 2 +- .../frontend/layout/customer_account_create.xml | 2 +- .../view/frontend/layout/customer_account_edit.xml | 2 +- .../layout/customer_account_forgotpassword.xml | 2 +- .../frontend/layout/customer_account_login.xml | 2 +- .../Captcha/view/frontend/layout/default.xml | 2 +- .../Captcha/view/frontend/requirejs-config.js | 2 +- .../Captcha/view/frontend/templates/default.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../Magento/Captcha/view/frontend/web/captcha.js | 2 +- .../Captcha/view/frontend/web/js/action/refresh.js | 2 +- .../Captcha/view/frontend/web/js/model/captcha.js | 2 +- .../view/frontend/web/js/model/captchaList.js | 2 +- .../web/js/view/checkout/defaultCaptcha.js | 2 +- .../frontend/web/js/view/checkout/loginCaptcha.js | 2 +- .../Magento/Captcha/view/frontend/web/onepage.js | 2 +- .../frontend/web/template/checkout/captcha.html | 2 +- .../Catalog/Api/AttributeSetFinderInterface.php | 2 +- .../Api/AttributeSetManagementInterface.php | 2 +- .../Api/AttributeSetRepositoryInterface.php | 2 +- .../CategoryAttributeOptionManagementInterface.php | 2 +- .../Api/CategoryAttributeRepositoryInterface.php | 2 +- .../Api/CategoryLinkManagementInterface.php | 2 +- .../Api/CategoryLinkRepositoryInterface.php | 2 +- .../Catalog/Api/CategoryManagementInterface.php | 2 +- .../Catalog/Api/CategoryRepositoryInterface.php | 2 +- .../Api/Data/CategoryAttributeInterface.php | 2 +- .../CategoryAttributeSearchResultsInterface.php | 2 +- .../Magento/Catalog/Api/Data/CategoryInterface.php | 2 +- .../Api/Data/CategoryProductLinkInterface.php | 2 +- .../Data/CategoryProductSearchResultInterface.php | 2 +- .../Catalog/Api/Data/CategoryTreeInterface.php | 2 +- .../Catalog/Api/Data/CustomOptionInterface.php | 2 +- .../Catalog/Api/Data/EavAttributeInterface.php | 2 +- .../Catalog/Api/Data/ProductAttributeInterface.php | 2 +- .../ProductAttributeMediaGalleryEntryInterface.php | 2 +- .../ProductAttributeSearchResultsInterface.php | 2 +- .../Api/Data/ProductAttributeTypeInterface.php | 2 +- .../Api/Data/ProductCustomOptionInterface.php | 2 +- .../Api/Data/ProductCustomOptionTypeInterface.php | 2 +- .../Data/ProductCustomOptionValuesInterface.php | 2 +- .../Magento/Catalog/Api/Data/ProductInterface.php | 2 +- .../Api/Data/ProductLinkAttributeInterface.php | 2 +- .../Catalog/Api/Data/ProductLinkInterface.php | 2 +- .../Catalog/Api/Data/ProductLinkTypeInterface.php | 2 +- .../Catalog/Api/Data/ProductOptionInterface.php | 2 +- .../Api/Data/ProductSearchResultsInterface.php | 2 +- .../Catalog/Api/Data/ProductTierPriceInterface.php | 2 +- .../Catalog/Api/Data/ProductTypeInterface.php | 2 +- .../Api/Data/ProductWebsiteLinkInterface.php | 2 +- .../ProductAttributeGroupRepositoryInterface.php | 2 +- .../Api/ProductAttributeManagementInterface.php | 2 +- ...uctAttributeMediaGalleryManagementInterface.php | 2 +- .../ProductAttributeOptionManagementInterface.php | 2 +- .../Api/ProductAttributeRepositoryInterface.php | 2 +- .../Api/ProductAttributeTypesListInterface.php | 2 +- .../Api/ProductCustomOptionRepositoryInterface.php | 2 +- .../Api/ProductCustomOptionTypeListInterface.php | 2 +- .../Catalog/Api/ProductLinkManagementInterface.php | 2 +- .../Catalog/Api/ProductLinkRepositoryInterface.php | 2 +- .../Catalog/Api/ProductLinkTypeListInterface.php | 2 +- .../Catalog/Api/ProductManagementInterface.php | 2 +- .../ProductMediaAttributeManagementInterface.php | 2 +- .../Catalog/Api/ProductRepositoryInterface.php | 2 +- .../Api/ProductTierPriceManagementInterface.php | 2 +- .../Catalog/Api/ProductTypeListInterface.php | 2 +- .../Api/ProductWebsiteLinkRepositoryInterface.php | 2 +- .../Block/Adminhtml/Category/AbstractCategory.php | 2 +- .../Block/Adminhtml/Category/AssignProducts.php | 2 +- .../Block/Adminhtml/Category/Checkboxes/Tree.php | 2 +- .../Catalog/Block/Adminhtml/Category/Edit.php | 2 +- .../Block/Adminhtml/Category/Edit/DeleteButton.php | 2 +- .../Block/Adminhtml/Category/Edit/SaveButton.php | 2 +- .../Block/Adminhtml/Category/Helper/Image.php | 2 +- .../Block/Adminhtml/Category/Helper/Pricestep.php | 2 +- .../Adminhtml/Category/Helper/Sortby/Available.php | 2 +- .../Category/Helper/Sortby/DefaultSortby.php | 2 +- .../Block/Adminhtml/Category/Tab/Product.php | 2 +- .../Catalog/Block/Adminhtml/Category/Tree.php | 2 +- .../Block/Adminhtml/Category/Widget/Chooser.php | 2 +- app/code/Magento/Catalog/Block/Adminhtml/Form.php | 2 +- .../Form/Renderer/Config/DateFieldsOrder.php | 2 +- .../Adminhtml/Form/Renderer/Config/YearRange.php | 2 +- .../Adminhtml/Form/Renderer/Fieldset/Element.php | 2 +- .../Block/Adminhtml/Helper/Form/Wysiwyg.php | 2 +- .../Adminhtml/Helper/Form/Wysiwyg/Content.php | 2 +- .../Magento/Catalog/Block/Adminhtml/Product.php | 2 +- .../Catalog/Block/Adminhtml/Product/Attribute.php | 2 +- .../Adminhtml/Product/Attribute/Button/Cancel.php | 2 +- .../Adminhtml/Product/Attribute/Button/Generic.php | 2 +- .../Adminhtml/Product/Attribute/Button/Save.php | 2 +- .../Attribute/Button/SaveInNewAttributeSet.php | 2 +- .../Block/Adminhtml/Product/Attribute/Edit.php | 2 +- .../Adminhtml/Product/Attribute/Edit/Form.php | 2 +- .../Product/Attribute/Edit/Tab/Advanced.php | 2 +- .../Adminhtml/Product/Attribute/Edit/Tab/Front.php | 2 +- .../Adminhtml/Product/Attribute/Edit/Tab/Main.php | 2 +- .../Product/Attribute/Edit/Tab/Options.php | 2 +- .../Product/Attribute/Edit/Tab/System.php | 2 +- .../Adminhtml/Product/Attribute/Edit/Tabs.php | 2 +- .../Block/Adminhtml/Product/Attribute/Grid.php | 2 +- .../Attribute/NewAttribute/Product/Attributes.php | 2 +- .../Block/Adminhtml/Product/Attribute/Set/Main.php | 2 +- .../Product/Attribute/Set/Main/Formattribute.php | 2 +- .../Product/Attribute/Set/Main/Formgroup.php | 2 +- .../Product/Attribute/Set/Main/Formset.php | 2 +- .../Product/Attribute/Set/Main/Tree/Attribute.php | 2 +- .../Product/Attribute/Set/Main/Tree/Group.php | 2 +- .../Product/Attribute/Set/Toolbar/Add.php | 2 +- .../Product/Attribute/Set/Toolbar/Main.php | 2 +- .../Product/Attribute/Set/Toolbar/Main/Filter.php | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Block/Adminhtml/Product/Composite/Error.php | 2 +- .../Block/Adminhtml/Product/Composite/Fieldset.php | 2 +- .../Product/Composite/Fieldset/Options.php | 2 +- .../Adminhtml/Product/Composite/Fieldset/Qty.php | 2 +- .../Adminhtml/Product/Composite/Update/Result.php | 2 +- .../Catalog/Block/Adminhtml/Product/Edit.php | 2 +- .../Adminhtml/Product/Edit/Action/Attribute.php | 2 +- .../Edit/Action/Attribute/Tab/Attributes.php | 2 +- .../Edit/Action/Attribute/Tab/Inventory.php | 2 +- .../Product/Edit/Action/Attribute/Tab/Websites.php | 2 +- .../Product/Edit/Action/Attribute/Tabs.php | 2 +- .../Block/Adminhtml/Product/Edit/AttributeSet.php | 2 +- .../Adminhtml/Product/Edit/Button/AddAttribute.php | 2 +- .../Block/Adminhtml/Product/Edit/Button/Back.php | 2 +- .../Product/Edit/Button/CreateCategory.php | 2 +- .../Adminhtml/Product/Edit/Button/Generic.php | 2 +- .../Block/Adminhtml/Product/Edit/Button/Save.php | 2 +- .../Catalog/Block/Adminhtml/Product/Edit/Js.php | 2 +- .../Block/Adminhtml/Product/Edit/NewCategory.php | 2 +- .../Adminhtml/Product/Edit/Tab/Ajax/Serializer.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Alerts.php | 2 +- .../Adminhtml/Product/Edit/Tab/Alerts/Price.php | 2 +- .../Adminhtml/Product/Edit/Tab/Alerts/Stock.php | 2 +- .../Adminhtml/Product/Edit/Tab/Attributes.php | 2 +- .../Product/Edit/Tab/Attributes/Create.php | 2 +- .../Product/Edit/Tab/Attributes/Search.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/ChildTab.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Crosssell.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Inventory.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Options.php | 2 +- .../Adminhtml/Product/Edit/Tab/Options/Option.php | 2 +- .../Product/Edit/Tab/Options/Popup/Grid.php | 2 +- .../Product/Edit/Tab/Options/Type/AbstractType.php | 2 +- .../Product/Edit/Tab/Options/Type/Date.php | 2 +- .../Product/Edit/Tab/Options/Type/File.php | 2 +- .../Product/Edit/Tab/Options/Type/Select.php | 2 +- .../Product/Edit/Tab/Options/Type/Text.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Price.php | 2 +- .../Product/Edit/Tab/Price/Group/AbstractGroup.php | 2 +- .../Adminhtml/Product/Edit/Tab/Price/Tier.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Related.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Upsell.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Websites.php | 2 +- .../Catalog/Block/Adminhtml/Product/Edit/Tabs.php | 2 +- .../Product/Frontend/Product/Watermark.php | 2 +- .../Catalog/Block/Adminhtml/Product/Grid.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Apply.php | 2 +- .../Adminhtml/Product/Helper/Form/Boolean.php | 2 +- .../Adminhtml/Product/Helper/Form/Category.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Config.php | 2 +- .../Adminhtml/Product/Helper/Form/Gallery.php | 2 +- .../Product/Helper/Form/Gallery/Content.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Image.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Price.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Weight.php | 2 +- .../Block/Adminhtml/Product/Options/Ajax.php | 2 +- .../Catalog/Block/Adminhtml/Product/Price.php | 2 +- .../Block/Adminhtml/Product/Widget/Chooser.php | 2 +- .../Adminhtml/Product/Widget/Chooser/Container.php | 2 +- .../Catalog/Block/Adminhtml/Rss/Grid/Link.php | 2 +- .../Catalog/Block/Adminhtml/Rss/NotifyStock.php | 2 +- app/code/Magento/Catalog/Block/Breadcrumbs.php | 2 +- .../Catalog/Block/Category/Plugin/PriceBoxTags.php | 2 +- .../Magento/Catalog/Block/Category/Rss/Link.php | 2 +- app/code/Magento/Catalog/Block/Category/View.php | 2 +- app/code/Magento/Catalog/Block/Navigation.php | 2 +- .../Catalog/Block/Product/AbstractProduct.php | 2 +- .../Catalog/Block/Product/AwareInterface.php | 2 +- .../Catalog/Block/Product/Compare/ListCompare.php | 2 +- app/code/Magento/Catalog/Block/Product/Context.php | 2 +- app/code/Magento/Catalog/Block/Product/Gallery.php | 2 +- app/code/Magento/Catalog/Block/Product/Image.php | 2 +- .../Magento/Catalog/Block/Product/ListProduct.php | 2 +- .../Magento/Catalog/Block/Product/NewProduct.php | 2 +- app/code/Magento/Catalog/Block/Product/Price.php | 2 +- .../Block/Product/ProductList/Crosssell.php | 2 +- .../Product/ProductList/Item/AddTo/Compare.php | 2 +- .../Block/Product/ProductList/Item/Block.php | 2 +- .../Block/Product/ProductList/Item/Container.php | 2 +- .../Block/Product/ProductList/Promotion.php | 2 +- .../Catalog/Block/Product/ProductList/Random.php | 2 +- .../Catalog/Block/Product/ProductList/Related.php | 2 +- .../Catalog/Block/Product/ProductList/Toolbar.php | 2 +- .../Catalog/Block/Product/ProductList/Upsell.php | 2 +- .../Product/ReviewRenderer/DefaultProvider.php | 2 +- .../Block/Product/ReviewRendererInterface.php | 2 +- .../Catalog/Block/Product/TemplateSelector.php | 2 +- app/code/Magento/Catalog/Block/Product/View.php | 2 +- .../Catalog/Block/Product/View/AbstractView.php | 2 +- .../Catalog/Block/Product/View/AddTo/Compare.php | 2 +- .../Catalog/Block/Product/View/Additional.php | 2 +- .../Catalog/Block/Product/View/Attributes.php | 2 +- .../Catalog/Block/Product/View/BaseImage.php | 2 +- .../Catalog/Block/Product/View/Description.php | 2 +- .../Magento/Catalog/Block/Product/View/Gallery.php | 2 +- .../Magento/Catalog/Block/Product/View/Options.php | 2 +- .../Block/Product/View/Options/AbstractOptions.php | 2 +- .../Block/Product/View/Options/Type/Date.php | 2 +- .../Product/View/Options/Type/DefaultType.php | 2 +- .../Block/Product/View/Options/Type/File.php | 2 +- .../Block/Product/View/Options/Type/Select.php | 2 +- .../Block/Product/View/Options/Type/Text.php | 2 +- .../Magento/Catalog/Block/Product/View/Price.php | 2 +- .../Magento/Catalog/Block/Product/View/Tabs.php | 2 +- .../Catalog/Block/Product/View/Type/Simple.php | 2 +- .../Catalog/Block/Product/View/Type/Virtual.php | 2 +- .../Catalog/Block/Product/Widget/Html/Pager.php | 2 +- .../Catalog/Block/Product/Widget/NewWidget.php | 2 +- app/code/Magento/Catalog/Block/Rss/Category.php | 2 +- .../Catalog/Block/Rss/Product/NewProducts.php | 2 +- .../Magento/Catalog/Block/Rss/Product/Special.php | 2 +- app/code/Magento/Catalog/Block/ShortcutButtons.php | 2 +- .../Magento/Catalog/Block/ShortcutInterface.php | 2 +- app/code/Magento/Catalog/Block/Widget/Link.php | 2 +- .../Console/Command/ImagesResizeCommand.php | 2 +- .../Console/Command/ProductAttributesCleanUp.php | 2 +- .../Catalog/Controller/Adminhtml/Category.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Add.php | 2 +- .../Adminhtml/Category/CategoriesJson.php | 2 +- .../Controller/Adminhtml/Category/Delete.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Edit.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Grid.php | 2 +- .../Controller/Adminhtml/Category/Image/Upload.php | 2 +- .../Controller/Adminhtml/Category/Index.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Move.php | 2 +- .../Controller/Adminhtml/Category/RefreshPath.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Save.php | 2 +- .../Adminhtml/Category/SuggestCategories.php | 2 +- .../Catalog/Controller/Adminhtml/Category/Tree.php | 2 +- .../Controller/Adminhtml/Category/Validate.php | 2 +- .../Controller/Adminhtml/Category/Widget.php | 2 +- .../Adminhtml/Category/Widget/CategoriesJson.php | 2 +- .../Adminhtml/Category/Widget/Chooser.php | 2 +- .../Controller/Adminhtml/Category/Wysiwyg.php | 2 +- .../Catalog/Controller/Adminhtml/Product.php | 2 +- .../Adminhtml/Product/AbstractProductGrid.php | 2 +- .../Adminhtml/Product/Action/Attribute.php | 2 +- .../Adminhtml/Product/Action/Attribute/Edit.php | 2 +- .../Adminhtml/Product/Action/Attribute/Save.php | 2 +- .../Product/Action/Attribute/Validate.php | 2 +- .../Adminhtml/Product/AddAttributeToTemplate.php | 2 +- .../Adminhtml/Product/AlertsPriceGrid.php | 2 +- .../Adminhtml/Product/AlertsStockGrid.php | 2 +- .../Controller/Adminhtml/Product/Attribute.php | 2 +- .../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 +- .../Controller/Adminhtml/Product/Builder.php | 2 +- .../Controller/Adminhtml/Product/Categories.php | 2 +- .../Controller/Adminhtml/Product/Crosssell.php | 2 +- .../Controller/Adminhtml/Product/CrosssellGrid.php | 2 +- .../Controller/Adminhtml/Product/CustomOptions.php | 2 +- .../Adminhtml/Product/Datafeeds/Index.php | 2 +- .../Controller/Adminhtml/Product/Duplicate.php | 2 +- .../Catalog/Controller/Adminhtml/Product/Edit.php | 2 +- .../Adminhtml/Product/Gallery/Upload.php | 2 +- .../Catalog/Controller/Adminhtml/Product/Grid.php | 2 +- .../Controller/Adminhtml/Product/GridOnly.php | 2 +- .../Controller/Adminhtml/Product/Group/Save.php | 2 +- .../Catalog/Controller/Adminhtml/Product/Index.php | 2 +- .../Adminhtml/Product/Initialization/Helper.php | 2 +- .../Initialization/Helper/HandlerFactory.php | 2 +- .../Initialization/Helper/HandlerInterface.php | 2 +- .../Helper/Plugin/Handler/Composite.php | 2 +- .../Product/Initialization/StockDataFilter.php | 2 +- .../Controller/Adminhtml/Product/MassDelete.php | 2 +- .../Controller/Adminhtml/Product/MassStatus.php | 2 +- .../Controller/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/RelatedGrid.php | 2 +- .../Controller/Adminhtml/Product/Reload.php | 2 +- .../Catalog/Controller/Adminhtml/Product/Save.php | 2 +- .../Catalog/Controller/Adminhtml/Product/Set.php | 2 +- .../Controller/Adminhtml/Product/Set/Add.php | 2 +- .../Controller/Adminhtml/Product/Set/Delete.php | 2 +- .../Controller/Adminhtml/Product/Set/Edit.php | 2 +- .../Controller/Adminhtml/Product/Set/Index.php | 2 +- .../Controller/Adminhtml/Product/Set/Save.php | 2 +- .../Controller/Adminhtml/Product/Set/SetGrid.php | 2 +- .../Adminhtml/Product/ShowUpdateResult.php | 2 +- .../Adminhtml/Product/SuggestAttributeSets.php | 2 +- .../Adminhtml/Product/SuggestAttributes.php | 2 +- .../Controller/Adminhtml/Product/Upsell.php | 2 +- .../Controller/Adminhtml/Product/UpsellGrid.php | 2 +- .../Controller/Adminhtml/Product/Validate.php | 2 +- .../Adminhtml/Product/Widget/Chooser.php | 2 +- .../Controller/Adminhtml/Product/Wysiwyg.php | 2 +- .../Magento/Catalog/Controller/Category/View.php | 2 +- .../Magento/Catalog/Controller/Index/Index.php | 2 +- app/code/Magento/Catalog/Controller/Product.php | 2 +- .../Magento/Catalog/Controller/Product/Compare.php | 2 +- .../Catalog/Controller/Product/Compare/Add.php | 2 +- .../Catalog/Controller/Product/Compare/Clear.php | 2 +- .../Catalog/Controller/Product/Compare/Index.php | 2 +- .../Catalog/Controller/Product/Compare/Remove.php | 2 +- .../Magento/Catalog/Controller/Product/Gallery.php | 2 +- .../Magento/Catalog/Controller/Product/View.php | 2 +- .../Controller/Product/View/ViewInterface.php | 2 +- .../Cron/DeleteAbandonedStoreFlatTables.php | 2 +- .../Catalog/Cron/DeleteOutdatedPriceValues.php | 2 +- .../Magento/Catalog/Cron/RefreshSpecialPrices.php | 2 +- .../Catalog/CustomerData/CompareProducts.php | 2 +- app/code/Magento/Catalog/Helper/Catalog.php | 2 +- app/code/Magento/Catalog/Helper/Category.php | 2 +- app/code/Magento/Catalog/Helper/Data.php | 2 +- .../Magento/Catalog/Helper/DefaultCategory.php | 2 +- app/code/Magento/Catalog/Helper/Image.php | 2 +- app/code/Magento/Catalog/Helper/Output.php | 2 +- app/code/Magento/Catalog/Helper/Product.php | 2 +- .../Magento/Catalog/Helper/Product/Compare.php | 2 +- .../Magento/Catalog/Helper/Product/Composite.php | 2 +- .../Catalog/Helper/Product/Configuration.php | 2 +- .../Configuration/ConfigurationInterface.php | 2 +- .../Catalog/Helper/Product/ConfigurationPool.php | 2 +- .../Helper/Product/Edit/Action/Attribute.php | 2 +- .../Catalog/Helper/Product/Flat/Indexer.php | 2 +- .../Magento/Catalog/Helper/Product/ProductList.php | 2 +- app/code/Magento/Catalog/Helper/Product/View.php | 2 +- app/code/Magento/Catalog/Model/AbstractModel.php | 2 +- .../Model/Attribute/Backend/Customlayoutupdate.php | 2 +- .../Catalog/Model/Attribute/Backend/Startdate.php | 2 +- .../Magento/Catalog/Model/Attribute/Config.php | 2 +- .../Catalog/Model/Attribute/Config/Converter.php | 2 +- .../Catalog/Model/Attribute/Config/Data.php | 2 +- .../Catalog/Model/Attribute/Config/Reader.php | 2 +- .../Model/Attribute/Config/SchemaLocator.php | 2 +- .../Model/Attribute/LockValidatorComposite.php | 2 +- .../Model/Attribute/LockValidatorInterface.php | 2 +- .../Model/Attribute/ScopeOverriddenValue.php | 2 +- .../Catalog/Model/Attribute/Source/Scopes.php | 2 +- app/code/Magento/Catalog/Model/CatalogRegistry.php | 2 +- app/code/Magento/Catalog/Model/Category.php | 2 +- .../Magento/Catalog/Model/Category/Attribute.php | 2 +- .../Model/Category/Attribute/Backend/Image.php | 2 +- .../Model/Category/Attribute/Backend/Sortby.php | 2 +- .../Model/Category/Attribute/OptionManagement.php | 2 +- .../Model/Category/Attribute/Source/Layout.php | 2 +- .../Model/Category/Attribute/Source/Mode.php | 2 +- .../Model/Category/Attribute/Source/Page.php | 2 +- .../Model/Category/Attribute/Source/Sortby.php | 2 +- .../Catalog/Model/Category/AttributeRepository.php | 2 +- .../Catalog/Model/Category/DataProvider.php | 2 +- .../Model/Category/Product/PositionResolver.php | 2 +- app/code/Magento/Catalog/Model/Category/Tree.php | 2 +- .../Catalog/Model/CategoryLinkManagement.php | 2 +- .../Catalog/Model/CategoryLinkRepository.php | 2 +- .../Magento/Catalog/Model/CategoryManagement.php | 2 +- .../Magento/Catalog/Model/CategoryProductLink.php | 2 +- .../Magento/Catalog/Model/CategoryRepository.php | 2 +- app/code/Magento/Catalog/Model/Config.php | 2 +- .../Catalog/Model/Config/Backend/Category.php | 2 +- .../Model/Config/CatalogClone/Media/Image.php | 2 +- .../Catalog/Model/Config/Source/Category.php | 2 +- .../Catalog/Model/Config/Source/GridPerPage.php | 2 +- .../Catalog/Model/Config/Source/ListMode.php | 2 +- .../Catalog/Model/Config/Source/ListPerPage.php | 2 +- .../Catalog/Model/Config/Source/ListSort.php | 2 +- .../Catalog/Model/Config/Source/Price/Scope.php | 2 +- .../Catalog/Model/Config/Source/Price/Step.php | 2 +- .../Model/Config/Source/Product/Options/Price.php | 2 +- .../Model/Config/Source/Product/Options/Type.php | 2 +- .../Model/Config/Source/Product/Thumbnail.php | 2 +- .../Catalog/Model/Config/Source/TimeFormat.php | 2 +- .../Model/Config/Source/Watermark/Position.php | 2 +- .../Catalog/Model/CustomOptions/CustomOption.php | 2 +- .../Model/CustomOptions/CustomOptionProcessor.php | 2 +- app/code/Magento/Catalog/Model/Design.php | 2 +- .../Magento/Catalog/Model/Entity/Attribute.php | 2 +- .../Product/Attribute/Design/Options/Container.php | 2 +- .../Product/Attribute/Group/AttributeMapper.php | 2 +- .../Attribute/Group/AttributeMapperInterface.php | 2 +- app/code/Magento/Catalog/Model/EntityInterface.php | 2 +- app/code/Magento/Catalog/Model/Factory.php | 2 +- app/code/Magento/Catalog/Model/ImageExtractor.php | 2 +- app/code/Magento/Catalog/Model/ImageUploader.php | 2 +- .../Catalog/Model/Indexer/AbstractFlatState.php | 2 +- .../Catalog/Model/Indexer/Category/Flat.php | 2 +- .../Model/Indexer/Category/Flat/AbstractAction.php | 2 +- .../Model/Indexer/Category/Flat/Action/Full.php | 2 +- .../Model/Indexer/Category/Flat/Action/Rows.php | 2 +- .../Category/Flat/Plugin/IndexerConfigData.php | 2 +- .../Indexer/Category/Flat/Plugin/StoreGroup.php | 2 +- .../Indexer/Category/Flat/Plugin/StoreView.php | 2 +- .../Category/Flat/SkipStaticColumnsProvider.php | 2 +- .../Catalog/Model/Indexer/Category/Flat/State.php | 2 +- .../Indexer/Category/Flat/System/Config/Mode.php | 2 +- .../Catalog/Model/Indexer/Category/Product.php | 2 +- .../Indexer/Category/Product/AbstractAction.php | 2 +- .../Model/Indexer/Category/Product/Action/Full.php | 2 +- .../Model/Indexer/Category/Product/Action/Rows.php | 2 +- .../Category/Product/Action/RowsFactory.php | 2 +- .../Indexer/Category/Product/Plugin/MviewState.php | 2 +- .../Indexer/Category/Product/Plugin/StoreGroup.php | 2 +- .../Indexer/Category/Product/Plugin/StoreView.php | 2 +- .../Model/Indexer/Category/Product/Processor.php | 2 +- .../Catalog/Model/Indexer/Product/Category.php | 2 +- .../Model/Indexer/Product/Category/Action/Rows.php | 2 +- .../Product/Category/Action/RowsFactory.php | 2 +- .../Model/Indexer/Product/Category/Processor.php | 2 +- .../Magento/Catalog/Model/Indexer/Product/Eav.php | 2 +- .../Model/Indexer/Product/Eav/AbstractAction.php | 2 +- .../Model/Indexer/Product/Eav/Action/Full.php | 2 +- .../Model/Indexer/Product/Eav/Action/Row.php | 2 +- .../Model/Indexer/Product/Eav/Action/Rows.php | 2 +- .../Indexer/Product/Eav/Plugin/AttributeSet.php | 2 +- .../AttributeSet/IndexableAttributeFilter.php | 2 +- .../Model/Indexer/Product/Eav/Plugin/StoreView.php | 2 +- .../Model/Indexer/Product/Eav/Processor.php | 2 +- .../Magento/Catalog/Model/Indexer/Product/Flat.php | 2 +- .../Model/Indexer/Product/Flat/AbstractAction.php | 2 +- .../Model/Indexer/Product/Flat/Action/Eraser.php | 2 +- .../Model/Indexer/Product/Flat/Action/Full.php | 2 +- .../Model/Indexer/Product/Flat/Action/Indexer.php | 2 +- .../Model/Indexer/Product/Flat/Action/Row.php | 2 +- .../Model/Indexer/Product/Flat/Action/Rows.php | 2 +- .../Indexer/Product/Flat/Action/Rows/TableData.php | 2 +- .../Indexer/Product/Flat/FlatTableBuilder.php | 2 +- .../Product/Flat/Plugin/IndexerConfigData.php | 2 +- .../Model/Indexer/Product/Flat/Plugin/Store.php | 2 +- .../Indexer/Product/Flat/Plugin/StoreGroup.php | 2 +- .../Model/Indexer/Product/Flat/Processor.php | 2 +- .../Catalog/Model/Indexer/Product/Flat/State.php | 2 +- .../Indexer/Product/Flat/System/Config/Mode.php | 2 +- .../Model/Indexer/Product/Flat/Table/Builder.php | 2 +- .../Product/Flat/Table/BuilderInterface.php | 2 +- .../Model/Indexer/Product/Flat/TableBuilder.php | 2 +- .../Model/Indexer/Product/Flat/TableData.php | 2 +- .../Indexer/Product/Flat/TableDataInterface.php | 2 +- .../Catalog/Model/Indexer/Product/Price.php | 2 +- .../Model/Indexer/Product/Price/AbstractAction.php | 2 +- .../Model/Indexer/Product/Price/Action/Full.php | 2 +- .../Model/Indexer/Product/Price/Action/Row.php | 2 +- .../Model/Indexer/Product/Price/Action/Rows.php | 2 +- .../Product/Price/Plugin/AbstractPlugin.php | 2 +- .../Indexer/Product/Price/Plugin/CustomerGroup.php | 2 +- .../Model/Indexer/Product/Price/Plugin/Website.php | 2 +- .../Model/Indexer/Product/Price/Processor.php | 2 +- .../Product/Price/System/Config/PriceScope.php | 2 +- app/code/Magento/Catalog/Model/Layer.php | 2 +- .../Model/Layer/AvailabilityFlagInterface.php | 2 +- app/code/Magento/Catalog/Model/Layer/Category.php | 2 +- .../Model/Layer/Category/AvailabilityFlag.php | 2 +- .../Model/Layer/Category/CollectionFilter.php | 2 +- .../Layer/Category/FilterableAttributeList.php | 2 +- .../Layer/Category/ItemCollectionProvider.php | 2 +- .../Catalog/Model/Layer/Category/StateKey.php | 2 +- .../Model/Layer/CollectionFilterInterface.php | 2 +- app/code/Magento/Catalog/Model/Layer/Context.php | 2 +- .../Catalog/Model/Layer/ContextInterface.php | 2 +- .../Catalog/Model/Layer/Filter/AbstractFilter.php | 2 +- .../Catalog/Model/Layer/Filter/Attribute.php | 2 +- .../Catalog/Model/Layer/Filter/Category.php | 2 +- .../Model/Layer/Filter/DataProvider/Category.php | 2 +- .../Model/Layer/Filter/DataProvider/Decimal.php | 2 +- .../Model/Layer/Filter/DataProvider/Price.php | 2 +- .../Magento/Catalog/Model/Layer/Filter/Decimal.php | 2 +- .../Layer/Filter/Dynamic/AlgorithmFactory.php | 2 +- .../Layer/Filter/Dynamic/AlgorithmInterface.php | 2 +- .../Catalog/Model/Layer/Filter/Dynamic/Auto.php | 2 +- .../Model/Layer/Filter/Dynamic/Improved.php | 2 +- .../Catalog/Model/Layer/Filter/Dynamic/Manual.php | 2 +- .../Magento/Catalog/Model/Layer/Filter/Factory.php | 2 +- .../Catalog/Model/Layer/Filter/FilterInterface.php | 2 +- .../Magento/Catalog/Model/Layer/Filter/Item.php | 2 +- .../Model/Layer/Filter/Item/DataBuilder.php | 2 +- .../Magento/Catalog/Model/Layer/Filter/Price.php | 2 +- .../Catalog/Model/Layer/Filter/Price/Range.php | 2 +- .../Catalog/Model/Layer/Filter/Price/Render.php | 2 +- .../Magento/Catalog/Model/Layer/FilterList.php | 2 +- .../Layer/FilterableAttributeListInterface.php | 2 +- .../Layer/ItemCollectionProviderInterface.php | 2 +- app/code/Magento/Catalog/Model/Layer/Resolver.php | 2 +- app/code/Magento/Catalog/Model/Layer/Search.php | 2 +- .../Model/Layer/Search/CollectionFilter.php | 2 +- .../Model/Layer/Search/Filter/Attribute.php | 2 +- .../Model/Layer/Search/FilterableAttributeList.php | 2 +- .../Model/Layer/Search/ItemCollectionProvider.php | 2 +- app/code/Magento/Catalog/Model/Layer/State.php | 2 +- .../Catalog/Model/Layer/StateKeyInterface.php | 2 +- .../Catalog/Model/Layout/DepersonalizePlugin.php | 2 +- .../Catalog/Model/Locator/LocatorInterface.php | 2 +- .../Catalog/Model/Locator/RegistryLocator.php | 2 +- app/code/Magento/Catalog/Model/Plugin/Log.php | 2 +- .../ProductRepository/TransactionWrapper.php | 2 +- .../Model/Plugin/QuoteItemProductOption.php | 2 +- .../Catalog/Model/Plugin/ShowOutOfStockConfig.php | 2 +- app/code/Magento/Catalog/Model/Product.php | 2 +- app/code/Magento/Catalog/Model/Product/Action.php | 2 +- .../Model/Product/Attribute/AttributeSetFinder.php | 2 +- .../Model/Product/Attribute/Backend/Boolean.php | 2 +- .../Model/Product/Attribute/Backend/Category.php | 2 +- .../Backend/GroupPrice/AbstractGroupPrice.php | 2 +- .../Backend/Media/EntryConverterInterface.php | 2 +- .../Attribute/Backend/Media/EntryConverterPool.php | 2 +- .../Backend/Media/ImageEntryConverter.php | 2 +- .../Model/Product/Attribute/Backend/Price.php | 2 +- .../Model/Product/Attribute/Backend/Sku.php | 2 +- .../Model/Product/Attribute/Backend/Stock.php | 2 +- .../Model/Product/Attribute/Backend/Tierprice.php | 2 +- .../Model/Product/Attribute/Backend/Weight.php | 2 +- .../Model/Product/Attribute/DataProvider.php | 2 +- .../Model/Product/Attribute/DefaultAttributes.php | 2 +- .../Model/Product/Attribute/Frontend/Image.php | 2 +- .../Catalog/Model/Product/Attribute/Group.php | 2 +- .../Catalog/Model/Product/Attribute/Management.php | 2 +- .../Model/Product/Attribute/OptionManagement.php | 2 +- .../Catalog/Model/Product/Attribute/Repository.php | 2 +- .../Model/Product/Attribute/SetManagement.php | 2 +- .../Model/Product/Attribute/SetRepository.php | 2 +- .../Model/Product/Attribute/Source/Boolean.php | 2 +- .../Attribute/Source/Countryofmanufacture.php | 2 +- .../Model/Product/Attribute/Source/Inputtype.php | 2 +- .../Model/Product/Attribute/Source/Layout.php | 2 +- .../Model/Product/Attribute/Source/Status.php | 2 +- .../Catalog/Model/Product/Attribute/Type.php | 2 +- .../Catalog/Model/Product/Attribute/TypesList.php | 2 +- .../Catalog/Model/Product/AttributeSet/Build.php | 2 +- .../Catalog/Model/Product/AttributeSet/Options.php | 2 +- .../Model/Product/AttributeSet/SuggestedSet.php | 2 +- .../Catalog/Model/Product/CartConfiguration.php | 2 +- .../Magento/Catalog/Model/Product/CatalogPrice.php | 2 +- .../Catalog/Model/Product/CatalogPriceFactory.php | 2 +- .../Model/Product/CatalogPriceInterface.php | 2 +- .../Magento/Catalog/Model/Product/Compare/Item.php | 2 +- .../Catalog/Model/Product/Compare/ListCompare.php | 2 +- .../Magento/Catalog/Model/Product/Condition.php | 2 +- .../Model/Product/Condition/ConditionInterface.php | 2 +- .../Product/Configuration/Item/ItemInterface.php | 2 +- .../Model/Product/Configuration/Item/Option.php | 2 +- .../Configuration/Item/Option/OptionInterface.php | 2 +- app/code/Magento/Catalog/Model/Product/Copier.php | 2 +- .../Model/Product/CopyConstructor/Composite.php | 2 +- .../Model/Product/CopyConstructor/CrossSell.php | 2 +- .../Model/Product/CopyConstructor/Related.php | 2 +- .../Model/Product/CopyConstructor/UpSell.php | 2 +- .../Model/Product/CopyConstructorFactory.php | 2 +- .../Model/Product/CopyConstructorInterface.php | 2 +- .../Catalog/Model/Product/Edit/WeightResolver.php | 2 +- .../Magento/Catalog/Model/Product/Exception.php | 2 +- .../Model/Product/Gallery/CreateHandler.php | 2 +- .../Catalog/Model/Product/Gallery/Entry.php | 2 +- .../Model/Product/Gallery/EntryResolver.php | 2 +- .../Model/Product/Gallery/GalleryManagement.php | 2 +- .../Model/Product/Gallery/MimeTypeExtensionMap.php | 2 +- .../Catalog/Model/Product/Gallery/Processor.php | 2 +- .../Catalog/Model/Product/Gallery/ReadHandler.php | 2 +- .../Model/Product/Gallery/UpdateHandler.php | 2 +- .../Magento/Catalog/Model/Product/Image/Cache.php | 2 +- .../Product/Initialization/Helper/ProductLinks.php | 2 +- app/code/Magento/Catalog/Model/Product/Link.php | 2 +- .../Catalog/Model/Product/Link/Converter.php | 2 +- .../Catalog/Model/Product/Link/Resolver.php | 2 +- .../Catalog/Model/Product/Link/SaveHandler.php | 2 +- .../Catalog/Model/Product/LinkTypeProvider.php | 2 +- .../Model/Product/Media/AttributeManagement.php | 2 +- .../Magento/Catalog/Model/Product/Media/Config.php | 2 +- .../Model/Product/Media/ConfigInterface.php | 2 +- app/code/Magento/Catalog/Model/Product/Option.php | 2 +- .../Catalog/Model/Product/Option/Converter.php | 2 +- .../Catalog/Model/Product/Option/ReadHandler.php | 2 +- .../Catalog/Model/Product/Option/Repository.php | 2 +- .../Catalog/Model/Product/Option/SaveHandler.php | 2 +- .../Magento/Catalog/Model/Product/Option/Type.php | 2 +- .../Catalog/Model/Product/Option/Type/Date.php | 2 +- .../Model/Product/Option/Type/DefaultType.php | 2 +- .../Catalog/Model/Product/Option/Type/Factory.php | 2 +- .../Catalog/Model/Product/Option/Type/File.php | 2 +- .../Product/Option/Type/File/ValidateFactory.php | 2 +- .../Model/Product/Option/Type/File/Validator.php | 2 +- .../Product/Option/Type/File/ValidatorFile.php | 2 +- .../Product/Option/Type/File/ValidatorInfo.php | 2 +- .../Catalog/Model/Product/Option/Type/Select.php | 2 +- .../Catalog/Model/Product/Option/Type/Text.php | 2 +- .../Catalog/Model/Product/Option/UrlBuilder.php | 2 +- .../Product/Option/Validator/DefaultValidator.php | 2 +- .../Model/Product/Option/Validator/File.php | 2 +- .../Model/Product/Option/Validator/Pool.php | 2 +- .../Model/Product/Option/Validator/Select.php | 2 +- .../Model/Product/Option/Validator/Text.php | 2 +- .../Magento/Catalog/Model/Product/Option/Value.php | 2 +- .../Catalog/Model/Product/PriceModifier.php | 2 +- .../Model/Product/PriceModifier/Composite.php | 2 +- .../Model/Product/PriceModifierInterface.php | 2 +- .../Product/Pricing/Renderer/SalableResolver.php | 2 +- .../Pricing/Renderer/SalableResolverInterface.php | 2 +- .../Catalog/Model/Product/ProductList/Toolbar.php | 2 +- .../Model/Product/ReservedAttributeList.php | 2 +- .../Magento/Catalog/Model/Product/TierPrice.php | 2 +- .../Catalog/Model/Product/TierPriceManagement.php | 2 +- app/code/Magento/Catalog/Model/Product/Type.php | 2 +- .../Catalog/Model/Product/Type/AbstractType.php | 2 +- .../Magento/Catalog/Model/Product/Type/Pool.php | 2 +- .../Magento/Catalog/Model/Product/Type/Price.php | 2 +- .../Catalog/Model/Product/Type/Price/Factory.php | 2 +- .../Magento/Catalog/Model/Product/Type/Simple.php | 2 +- .../Magento/Catalog/Model/Product/Type/Virtual.php | 2 +- .../Model/Product/TypeTransitionManager.php | 2 +- app/code/Magento/Catalog/Model/Product/Url.php | 2 +- .../Magento/Catalog/Model/Product/Validator.php | 2 +- .../Magento/Catalog/Model/Product/Visibility.php | 2 +- app/code/Magento/Catalog/Model/Product/Website.php | 2 +- .../Model/ProductAttributeGroupRepository.php | 2 +- .../Catalog/Model/ProductLink/Attribute.php | 2 +- .../Model/ProductLink/CollectionProvider.php | 2 +- .../ProductLink/CollectionProvider/Crosssell.php | 2 +- .../ProductLink/CollectionProvider/Related.php | 2 +- .../ProductLink/CollectionProvider/Upsell.php | 2 +- .../ProductLink/CollectionProviderInterface.php | 2 +- .../ProductLink/Converter/ConverterInterface.php | 2 +- .../Model/ProductLink/Converter/ConverterPool.php | 2 +- .../ProductLink/Converter/DefaultConverter.php | 2 +- .../Magento/Catalog/Model/ProductLink/Link.php | 2 +- .../Catalog/Model/ProductLink/Management.php | 2 +- .../Catalog/Model/ProductLink/Repository.php | 2 +- .../Magento/Catalog/Model/ProductLink/Type.php | 2 +- .../Magento/Catalog/Model/ProductManagement.php | 2 +- app/code/Magento/Catalog/Model/ProductOption.php | 2 +- .../Catalog/Model/ProductOptionProcessor.php | 2 +- .../Model/ProductOptionProcessorInterface.php | 2 +- .../Catalog/Model/ProductOptions/Config.php | 2 +- .../Model/ProductOptions/Config/Converter.php | 2 +- .../Catalog/Model/ProductOptions/Config/Reader.php | 2 +- .../Model/ProductOptions/Config/SchemaLocator.php | 2 +- .../Model/ProductOptions/ConfigInterface.php | 2 +- .../Catalog/Model/ProductOptions/TypeList.php | 2 +- .../Magento/Catalog/Model/ProductRepository.php | 2 +- app/code/Magento/Catalog/Model/ProductType.php | 2 +- app/code/Magento/Catalog/Model/ProductTypeList.php | 2 +- .../Magento/Catalog/Model/ProductTypes/Config.php | 2 +- .../Model/ProductTypes/Config/Converter.php | 2 +- .../Catalog/Model/ProductTypes/Config/Reader.php | 2 +- .../Model/ProductTypes/Config/SchemaLocator.php | 2 +- .../Catalog/Model/ProductTypes/ConfigInterface.php | 2 +- .../Magento/Catalog/Model/ProductWebsiteLink.php | 2 +- .../Catalog/Model/ProductWebsiteLinkRepository.php | 2 +- .../Model/ResourceModel/AbstractCollection.php | 2 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../Catalog/Model/ResourceModel/Attribute.php | 2 +- .../Model/ResourceModel/AttributePersistor.php | 2 +- .../Catalog/Model/ResourceModel/Category.php | 2 +- .../ResourceModel/Category/AggregateCount.php | 2 +- .../Category/Attribute/Collection.php | 2 +- .../Category/Attribute/Frontend/Image.php | 2 +- .../Category/Attribute/Source/Layout.php | 2 +- .../Category/Attribute/Source/Page.php | 2 +- .../Model/ResourceModel/Category/Collection.php | 2 +- .../ResourceModel/Category/Collection/Factory.php | 2 +- .../Catalog/Model/ResourceModel/Category/Flat.php | 2 +- .../ResourceModel/Category/Flat/Collection.php | 2 +- .../Catalog/Model/ResourceModel/Category/Tree.php | 2 +- .../Model/ResourceModel/CategoryProduct.php | 2 +- .../Collection/AbstractCollection.php | 2 +- .../Magento/Catalog/Model/ResourceModel/Config.php | 2 +- .../Catalog/Model/ResourceModel/Eav/Attribute.php | 2 +- .../Magento/Catalog/Model/ResourceModel/Helper.php | 2 +- .../Model/ResourceModel/Layer/Filter/Attribute.php | 2 +- .../Model/ResourceModel/Layer/Filter/Decimal.php | 2 +- .../Model/ResourceModel/Layer/Filter/Price.php | 2 +- .../ResourceModel/MaxHeapTableSizeProcessor.php | 2 +- .../Catalog/Model/ResourceModel/Product.php | 2 +- .../Catalog/Model/ResourceModel/Product/Action.php | 2 +- .../Backend/GroupPrice/AbstractGroupPrice.php | 2 +- .../Product/Attribute/Backend/Image.php | 2 +- .../Product/Attribute/Backend/Tierprice.php | 2 +- .../ResourceModel/Product/Attribute/Collection.php | 2 +- .../Product/BaseSelectProcessorInterface.php | 2 +- .../Model/ResourceModel/Product/Collection.php | 2 +- .../Product/Collection/ProductLimitation.php | 2 +- .../Model/ResourceModel/Product/Compare/Item.php | 2 +- .../Product/Compare/Item/Collection.php | 2 +- .../Product/CompositeBaseSelectProcessor.php | 2 +- .../Catalog/Model/ResourceModel/Product/Flat.php | 2 +- .../Model/ResourceModel/Product/Gallery.php | 2 +- .../Product/Indexer/AbstractIndexer.php | 2 +- .../Product/Indexer/Eav/AbstractEav.php | 2 +- .../ResourceModel/Product/Indexer/Eav/Decimal.php | 2 +- .../ResourceModel/Product/Indexer/Eav/Source.php | 2 +- .../LinkedProductSelectBuilderByIndexPrice.php | 2 +- .../Product/Indexer/Price/DefaultPrice.php | 2 +- .../Product/Indexer/Price/Factory.php | 2 +- .../Product/Indexer/Price/PriceInterface.php | 2 +- .../Catalog/Model/ResourceModel/Product/Link.php | 2 +- .../ResourceModel/Product/Link/Collection.php | 2 +- .../ResourceModel/Product/Link/DeleteHandler.php | 2 +- .../Product/Link/Product/Collection.php | 2 +- .../ResourceModel/Product/Link/SaveHandler.php | 2 +- .../LinkedProductSelectBuilderByBasePrice.php | 2 +- .../LinkedProductSelectBuilderBySpecialPrice.php | 2 +- .../LinkedProductSelectBuilderByTierPrice.php | 2 +- .../LinkedProductSelectBuilderComposite.php | 2 +- .../LinkedProductSelectBuilderInterface.php | 2 +- .../Catalog/Model/ResourceModel/Product/Option.php | 2 +- .../ResourceModel/Product/Option/Collection.php | 2 +- .../Model/ResourceModel/Product/Option/Value.php | 2 +- .../Product/Option/Value/Collection.php | 2 +- .../Model/ResourceModel/Product/Relation.php | 2 +- .../Product/StatusBaseSelectProcessor.php | 2 +- .../Model/ResourceModel/Product/Website.php | 2 +- .../Product/Website/SelectProcessor.php | 2 +- .../Model/ResourceModel/Setup/PropertyMapper.php | 2 +- .../Magento/Catalog/Model/ResourceModel/Url.php | 2 +- app/code/Magento/Catalog/Model/Rss/Category.php | 2 +- .../Catalog/Model/Rss/Product/NewProducts.php | 2 +- .../Catalog/Model/Rss/Product/NotifyStock.php | 2 +- .../Magento/Catalog/Model/Rss/Product/Special.php | 2 +- app/code/Magento/Catalog/Model/Session.php | 2 +- .../Config/Backend/Catalog/Url/Rewrite/Suffix.php | 2 +- .../Model/System/Config/Source/Inputtype.php | 2 +- app/code/Magento/Catalog/Model/Template/Filter.php | 2 +- .../Catalog/Model/Template/Filter/Factory.php | 2 +- .../Model/Webapi/Product/Option/Type/Date.php | 2 +- .../Webapi/Product/Option/Type/File/Processor.php | 2 +- ...atalogCheckIsUsingStaticUrlsAllowedObserver.php | 2 +- .../Observer/Compare/BindCustomerLoginObserver.php | 2 +- .../Compare/BindCustomerLogoutObserver.php | 2 +- .../Magento/Catalog/Observer/MenuCategoryData.php | 2 +- .../Catalog/Observer/SetSpecialPriceStartDate.php | 2 +- .../SwitchPriceAttributeScopeOnConfigChange.php | 2 +- app/code/Magento/Catalog/Plugin/Block/Topmenu.php | 2 +- .../Attribute/Backend/AttributeValidation.php | 2 +- .../Model/Indexer/Category/Product/Execute.php | 2 +- .../MaxHeapTableSizeProcessorOnFullReindex.php | 2 +- .../Product/Action/UpdateAttributesFlushCache.php | 2 +- .../Plugin/Model/ResourceModel/Attribute/Save.php | 2 +- .../Catalog/Plugin/Model/ResourceModel/Config.php | 2 +- .../Magento/Catalog/Pricing/Price/BasePrice.php | 2 +- .../Catalog/Pricing/Price/ConfiguredPrice.php | 2 +- .../Pricing/Price/ConfiguredPriceInterface.php | 2 +- .../Catalog/Pricing/Price/CustomOptionPrice.php | 2 +- .../Pricing/Price/CustomOptionPriceInterface.php | 2 +- .../Magento/Catalog/Pricing/Price/FinalPrice.php | 2 +- .../Catalog/Pricing/Price/FinalPriceInterface.php | 2 +- .../Price/MinimalPriceCalculatorInterface.php | 2 +- .../Pricing/Price/MinimalTierPriceCalculator.php | 2 +- .../Magento/Catalog/Pricing/Price/RegularPrice.php | 2 +- .../Magento/Catalog/Pricing/Price/SpecialPrice.php | 2 +- .../Pricing/Price/SpecialPriceInterface.php | 2 +- .../Magento/Catalog/Pricing/Price/TierPrice.php | 2 +- .../Catalog/Pricing/Price/TierPriceInterface.php | 2 +- app/code/Magento/Catalog/Pricing/Render.php | 2 +- .../Catalog/Pricing/Render/ConfiguredPriceBox.php | 2 +- .../Catalog/Pricing/Render/FinalPriceBox.php | 2 +- .../Magento/Catalog/Pricing/Render/PriceBox.php | 2 +- app/code/Magento/Catalog/Setup/CategorySetup.php | 2 +- app/code/Magento/Catalog/Setup/InstallData.php | 2 +- app/code/Magento/Catalog/Setup/InstallSchema.php | 2 +- app/code/Magento/Catalog/Setup/Recurring.php | 2 +- app/code/Magento/Catalog/Setup/UpgradeData.php | 2 +- app/code/Magento/Catalog/Setup/UpgradeSchema.php | 2 +- .../Adminhtml/Category/AbstractCategoryTest.php | 2 +- .../Product/Attribute/Button/CancelTest.php | 2 +- .../Product/Attribute/Button/GenericTest.php | 2 +- .../Product/Attribute/Button/SaveTest.php | 2 +- .../Product/Attribute/Edit/Tab/AdvancedTest.php | 2 +- .../Block/Adminhtml/Product/Attribute/GridTest.php | 2 +- .../Product/Composite/Fieldset/OptionsTest.php | 2 +- .../Edit/Action/Attribute/Tab/InventoryTest.php | 2 +- .../Product/Edit/Button/AddAttributeTest.php | 2 +- .../Adminhtml/Product/Edit/Button/BackTest.php | 2 +- .../Product/Edit/Button/CreateCategoryTest.php | 2 +- .../Adminhtml/Product/Edit/Button/GenericTest.php | 2 +- .../Adminhtml/Product/Edit/Button/SaveTest.php | 2 +- .../Adminhtml/Product/Edit/Tab/AlertsTest.php | 2 +- .../Adminhtml/Product/Edit/Tab/InventoryTest.php | 2 +- .../Adminhtml/Product/Helper/Form/CategoryTest.php | 2 +- .../Product/Helper/Form/Gallery/ContentTest.php | 2 +- .../Adminhtml/Product/Helper/Form/GalleryTest.php | 2 +- .../Adminhtml/Product/Helper/Form/WeightTest.php | 2 +- .../Block/Adminhtml/Product/Options/AjaxTest.php | 2 +- .../Unit/Block/Adminhtml/Rss/Grid/LinkTest.php | 2 +- .../Unit/Block/Adminhtml/Rss/NotifyStockTest.php | 2 +- .../Block/Category/Plugin/PriceBoxTagsTest.php | 2 +- .../Test/Unit/Block/Category/Rss/LinkTest.php | 2 +- .../Catalog/Test/Unit/Block/Category/ViewTest.php | 2 +- .../Catalog/Test/Unit/Block/NavigationTest.php | 2 +- .../Unit/Block/Product/AbstractProductTest.php | 2 +- .../Unit/Block/Product/Compare/ListCompareTest.php | 2 +- .../Test/Unit/Block/Product/ContextTest.php | 2 +- .../Test/Unit/Block/Product/ImageBuilderTest.php | 2 +- .../Test/Unit/Block/Product/ListProductTest.php | 2 +- .../Catalog/Test/Unit/Block/Product/ListTest.php | 2 +- .../Test/Unit/Block/Product/NewProductTest.php | 2 +- .../Catalog/Test/Unit/Block/Product/PriceTest.php | 2 +- .../Unit/Block/Product/ProductList/RelatedTest.php | 2 +- .../Unit/Block/Product/ProductList/ToolbarTest.php | 2 +- .../Unit/Block/Product/ProductList/UpsellTest.php | 2 +- .../Unit/Block/Product/View/AttributesTest.php | 2 +- .../Test/Unit/Block/Product/View/GalleryTest.php | 2 +- .../Test/Unit/Block/Product/View/OptionsTest.php | 2 +- .../Test/Unit/Block/Product/View/TabsTest.php | 2 +- .../Catalog/Test/Unit/Block/Product/ViewTest.php | 2 +- .../Unit/Block/Product/Widget/NewWidgetTest.php | 2 +- .../Catalog/Test/Unit/Block/Rss/CategoryTest.php | 2 +- .../Unit/Block/Rss/Product/NewProductsTest.php | 2 +- .../Test/Unit/Block/Rss/Product/SpecialTest.php | 2 +- .../Catalog/Test/Unit/Block/Widget/LinkTest.php | 2 +- .../Console/Command/ImagesResizeCommandTest.php | 2 +- .../Controller/Adminhtml/Category/DeleteTest.php | 2 +- .../Controller/Adminhtml/Category/EditTest.php | 2 +- .../Adminhtml/Category/Image/UploadTest.php | 2 +- .../Controller/Adminhtml/Category/SaveTest.php | 2 +- .../Category/Widget/CategoriesJsonTest.php | 2 +- .../Adminhtml/Category/Widget/ChooserTest.php | 2 +- .../Product/Action/Attribute/EditTest.php | 2 +- .../Product/Action/Attribute/SaveTest.php | 2 +- .../Adminhtml/Product/Attribute/EditTest.php | 2 +- .../Adminhtml/Product/Attribute/SaveTest.php | 2 +- .../Adminhtml/Product/Attribute/ValidateTest.php | 2 +- .../Controller/Adminhtml/Product/AttributeTest.php | 2 +- .../Controller/Adminhtml/Product/BuilderTest.php | 2 +- .../Initialization/Helper/HandlerFactoryTest.php | 2 +- .../Helper/Plugin/Handler/CompositeTest.php | 2 +- .../Product/Initialization/HelperTest.php | 2 +- .../Product/Initialization/StockDataFilterTest.php | 2 +- .../Adminhtml/Product/MassStatusTest.php | 2 +- .../Controller/Adminhtml/Product/NewActionTest.php | 2 +- .../Controller/Adminhtml/Product/ReloadTest.php | 2 +- .../Unit/Controller/Adminhtml/Product/SaveTest.php | 2 +- .../Adminhtml/Product/ShowUpdateResultTest.php | 2 +- .../Controller/Adminhtml/Product/ValidateTest.php | 2 +- .../Test/Unit/Controller/Adminhtml/ProductTest.php | 2 +- .../Test/Unit/Controller/Category/ViewTest.php | 2 +- .../Unit/Controller/Product/Compare/IndexTest.php | 2 +- .../Test/Unit/Cron/RefreshSpecialPricesTest.php | 2 +- .../Magento/Catalog/Test/Unit/Helper/ImageTest.php | 2 +- .../Test/Unit/Helper/Product/CompareTest.php | 2 +- .../Unit/Helper/Product/ConfigurationPoolTest.php | 2 +- .../Helper/Product/Edit/Action/AttributeTest.php | 2 +- .../Test/Unit/Helper/Product/Flat/IndexerTest.php | 2 +- .../Catalog/Test/Unit/Helper/ProductTest.php | 2 +- .../Attribute/Backend/CustomlayoutupdateTest.php | 2 +- .../Unit/Model/Attribute/Config/ConverterTest.php | 2 +- .../Unit/Model/Attribute/Config/ReaderTest.php | 2 +- .../Model/Attribute/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Attribute/Config/XsdTest.php | 2 +- .../Config/_files/attributes_config_merged.php | 2 +- .../Config/_files/attributes_config_merged.xml | 2 +- .../Config/_files/attributes_config_one.xml | 2 +- .../Config/_files/attributes_config_two.xml | 2 +- .../Test/Unit/Model/Attribute/ConfigTest.php | 2 +- .../Model/Attribute/LockValidatorCompositeTest.php | 2 +- .../Model/Category/Attribute/Backend/ImageTest.php | 2 +- .../Category/Attribute/Backend/SortbyTest.php | 2 +- .../Model/Category/Attribute/Source/LayoutTest.php | 2 +- .../Model/Category/Attribute/Source/PageTest.php | 2 +- .../Model/Category/Attribute/Source/SortbyTest.php | 2 +- .../Model/Category/AttributeRepositoryTest.php | 2 +- .../Category/Product/PositionResolverTest.php | 2 +- .../Catalog/Test/Unit/Model/Category/TreeTest.php | 2 +- .../Test/Unit/Model/CategoryLinkManagementTest.php | 2 +- .../Test/Unit/Model/CategoryLinkRepositoryTest.php | 2 +- .../Test/Unit/Model/CategoryManagementTest.php | 2 +- .../Test/Unit/Model/CategoryRepositoryTest.php | 2 +- .../Catalog/Test/Unit/Model/CategoryTest.php | 2 +- .../Model/Config/CatalogClone/Media/ImageTest.php | 2 +- .../Test/Unit/Model/Config/Source/CategoryTest.php | 2 +- .../Unit/Model/Config/Source/GridPerPageTest.php | 2 +- .../Unit/Model/Config/Source/ListPerPageTest.php | 2 +- .../Test/Unit/Model/Config/Source/ListSortTest.php | 2 +- .../Config/Source/Product/Options/TypeTest.php | 2 +- .../Magento/Catalog/Test/Unit/Model/ConfigTest.php | 2 +- .../CustomOptions/CustomOptionProcessorTest.php | 2 +- .../Unit/Model/CustomOptions/CustomOptionTest.php | 2 +- .../Test/Unit/Model/Entity/AttributeTest.php | 2 +- .../Catalog/Test/Unit/Model/FactoryTest.php | 2 +- .../Catalog/Test/Unit/Model/ImageExtractorTest.php | 2 +- .../Category/Flat/Plugin/IndexerConfigDataTest.php | 2 +- .../Category/Flat/Plugin/StoreGroupTest.php | 2 +- .../Indexer/Category/Flat/Plugin/StoreViewTest.php | 2 +- .../Unit/Model/Indexer/Category/Flat/StateTest.php | 2 +- .../Category/Flat/System/Config/ModeTest.php | 2 +- .../Test/Unit/Model/Indexer/Category/FlatTest.php | 2 +- .../Indexer/Category/Product/Plugin/ImportTest.php | 2 +- .../Category/Product/Plugin/MviewStateTest.php | 2 +- .../Category/Product/Plugin/StoreGroupTest.php | 2 +- .../Category/Product/Plugin/StoreViewTest.php | 2 +- .../Unit/Model/Indexer/Category/ProductTest.php | 2 +- .../Indexer/Product/Category/Plugin/ImportTest.php | 2 +- .../Unit/Model/Indexer/Product/CategoryTest.php | 2 +- .../Indexer/Product/Eav/AbstractActionTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/FullTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/RowTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/RowsTest.php | 2 +- .../AttributeSet/IndexableAttributeFilterTest.php | 2 +- .../Product/Eav/Plugin/AttributeSetTest.php | 2 +- .../Indexer/Product/Eav/Plugin/ImportTest.php | 2 +- .../Indexer/Product/Eav/Plugin/StoreViewTest.php | 2 +- .../Test/Unit/Model/Indexer/Product/EavTest.php | 2 +- .../Indexer/Product/Flat/Action/EraserTest.php | 2 +- .../Model/Indexer/Product/Flat/Action/RowTest.php | 2 +- .../Product/Flat/Action/Rows/TableDataTest.php | 2 +- .../Model/Indexer/Product/Flat/Action/RowsTest.php | 2 +- .../Indexer/Product/Flat/FlatTableBuilderTest.php | 2 +- .../Product/Flat/Plugin/IndexerConfigDataTest.php | 2 +- .../Indexer/Product/Flat/Plugin/StoreGroupTest.php | 2 +- .../Indexer/Product/Flat/Plugin/StoreTest.php | 2 +- .../Model/Indexer/Product/Flat/ProcessorTest.php | 2 +- .../Unit/Model/Indexer/Product/Flat/StateTest.php | 2 +- .../Product/Flat/System/Config/ModeTest.php | 2 +- .../Indexer/Product/Flat/Table/BuilderTest.php | 2 +- .../Model/Indexer/Product/Flat/TableDataTest.php | 2 +- .../Test/Unit/Model/Indexer/Product/FlatTest.php | 2 +- .../Model/Indexer/Product/Price/Action/RowTest.php | 2 +- .../Indexer/Product/Price/Action/RowsTest.php | 2 +- .../Product/Price/Plugin/CustomerGroupTest.php | 2 +- .../Indexer/Product/Price/Plugin/WebsiteTest.php | 2 +- .../Product/Price/System/Config/PriceScopeTest.php | 2 +- .../Model/Layer/Category/AvailabilityFlagTest.php | 2 +- .../Model/Layer/Category/CollectionFilterTest.php | 2 +- .../Layer/Category/FilterableAttributeListTest.php | 2 +- .../Unit/Model/Layer/Category/StateKeyTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/AttributeTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/CategoryTest.php | 2 +- .../Layer/Filter/DataProvider/CategoryTest.php | 2 +- .../Layer/Filter/DataProvider/DecimalTest.php | 2 +- .../Model/Layer/Filter/DataProvider/PriceTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/DecimalTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/FactoryTest.php | 2 +- .../Model/Layer/Filter/Item/DataBuilderTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/PriceTest.php | 2 +- .../Test/Unit/Model/Layer/FilterListTest.php | 2 +- .../Model/Layer/Search/CollectionFilterTest.php | 2 +- .../Layer/Search/FilterableAttributeListTest.php | 2 +- .../Test/Unit/Model/Layer/Search/StateKeyTest.php | 2 +- .../Catalog/Test/Unit/Model/Layer/StateTest.php | 2 +- .../Magento/Catalog/Test/Unit/Model/LayerTest.php | 2 +- .../Unit/Model/Layout/DepersonalizePluginTest.php | 2 +- .../Unit/Model/Locator/RegistryLocatorTest.php | 2 +- .../Catalog/Test/Unit/Model/Plugin/LogTest.php | 2 +- .../ProductRepository/TransactionWrapperTest.php | 2 +- .../Model/Plugin/QuoteItemProductOptionTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/ActionTest.php | 2 +- .../Product/Attribute/AttributeSetFinderTest.php | 2 +- .../Product/Attribute/Backend/BooleanTest.php | 2 +- .../Product/Attribute/Backend/CategoryTest.php | 2 +- .../Attribute/Backend/GroupPrice/AbstractTest.php | 2 +- .../Backend/Media/EntryConverterPoolTest.php | 2 +- .../Backend/Media/ImageEntryConverterTest.php | 2 +- .../Model/Product/Attribute/Backend/PriceTest.php | 2 +- .../Model/Product/Attribute/Backend/StockTest.php | 2 +- .../Model/Product/Attribute/Backend/WeightTest.php | 2 +- .../Model/Product/Attribute/Frontend/ImageTest.php | 2 +- .../Unit/Model/Product/Attribute/GroupTest.php | 2 +- .../Model/Product/Attribute/ManagementTest.php | 2 +- .../Product/Attribute/OptionManagementTest.php | 2 +- .../Model/Product/Attribute/RepositoryTest.php | 2 +- .../Model/Product/Attribute/SetManagementTest.php | 2 +- .../Model/Product/Attribute/SetRepositoryTest.php | 2 +- .../Model/Product/Attribute/Source/BooleanTest.php | 2 +- .../Attribute/Source/CountryofmanufactureTest.php | 2 +- .../Product/Attribute/Source/InputtypeTest.php | 2 +- .../Model/Product/Attribute/Source/LayoutTest.php | 2 +- .../Model/Product/Attribute/Source/StatusTest.php | 2 +- .../Unit/Model/Product/Attribute/TypesListTest.php | 2 +- .../Unit/Model/Product/CartConfigurationTest.php | 2 +- .../Test/Unit/Model/Product/CatalogPriceTest.php | 2 +- .../Test/Unit/Model/Product/Compare/ItemTest.php | 2 +- .../Test/Unit/Model/Product/ConditionTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/CopierTest.php | 2 +- .../Product/CopyConstructor/CompositeTest.php | 2 +- .../Product/CopyConstructor/CrossSellTest.php | 2 +- .../Model/Product/CopyConstructor/RelatedTest.php | 2 +- .../Model/Product/CopyConstructor/UpSellTest.php | 2 +- .../Model/Product/CopyConstructorFactoryTest.php | 2 +- .../Product/Gallery/GalleryManagementTest.php | 2 +- .../Product/Gallery/MimeTypeExtensionMapTest.php | 2 +- .../Unit/Model/Product/Gallery/ProcessorTest.php | 2 +- .../Unit/Model/Product/Gallery/ReadHandlerTest.php | 2 +- .../Test/Unit/Model/Product/Image/CacheTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/ImageTest.php | 2 +- .../Initialization/Helper/ProductLinksTest.php | 2 +- .../Test/Unit/Model/Product/Link/ConverterTest.php | 2 +- .../Test/Unit/Model/Product/Link/ResolverTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/LinkTest.php | 2 +- .../Unit/Model/Product/LinkTypeProviderTest.php | 2 +- .../Product/Media/AttributeManagementTest.php | 2 +- .../Unit/Model/Product/Option/RepositoryTest.php | 2 +- .../Unit/Model/Product/Option/SaveHandlerTest.php | 2 +- .../Unit/Model/Product/Option/Type/FactoryTest.php | 2 +- .../Unit/Model/Product/Option/Type/FileTest.php | 2 +- .../Unit/Model/Product/Option/UrlBuilderTest.php | 2 +- .../Option/Validator/DefaultValidatorTest.php | 2 +- .../Model/Product/Option/Validator/FileTest.php | 2 +- .../Model/Product/Option/Validator/PoolTest.php | 2 +- .../Model/Product/Option/Validator/SelectTest.php | 2 +- .../Model/Product/Option/Validator/TextTest.php | 2 +- .../Test/Unit/Model/Product/Option/ValueTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/OptionTest.php | 2 +- .../Model/Product/PriceModifier/CompositeTest.php | 2 +- .../Test/Unit/Model/Product/PriceModifierTest.php | 2 +- .../Pricing/Renderer/SalableResolverTest.php | 2 +- .../Unit/Model/Product/ProductList/ToolbarTest.php | 2 +- .../Model/Product/ReservedAttributeListTest.php | 2 +- .../Unit/Model/Product/TierPriceManagementTest.php | 2 +- .../Unit/Model/Product/Type/AbstractTypeTest.php | 2 +- .../Test/Unit/Model/Product/Type/PriceTest.php | 2 +- .../Test/Unit/Model/Product/Type/SimpleTest.php | 2 +- .../Test/Unit/Model/Product/Type/VirtualTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/TypeTest.php | 2 +- .../Model/Product/TypeTransitionManagerTest.php | 2 +- .../Catalog/Test/Unit/Model/Product/UrlTest.php | 2 +- .../Test/Unit/Model/Product/ValidatorTest.php | 2 +- .../Test/Unit/Model/Product/VisibilityTest.php | 2 +- .../Model/ProductAttributeGroupRepositoryTest.php | 2 +- .../Test/Unit/Model/ProductLink/ManagementTest.php | 2 +- .../Test/Unit/Model/ProductLink/RepositoryTest.php | 2 +- .../Test/Unit/Model/ProductManagementTest.php | 2 +- .../Test/Unit/Model/ProductOptionProcessorTest.php | 2 +- .../Unit/Model/ProductOptions/Config/XsdTest.php | 2 +- .../_files/invalidProductOptionsMergedXmlArray.php | 2 +- .../_files/invalidProductOptionsXmlArray.php | 2 +- .../Config/_files/product_options_merged_valid.xml | 2 +- .../Config/_files/product_options_valid.xml | 2 +- .../Test/Unit/Model/ProductRepositoryTest.php | 2 +- .../Catalog/Test/Unit/Model/ProductTest.php | 2 +- .../Test/Unit/Model/ProductTypeListTest.php | 2 +- .../Model/ProductTypes/Config/ConverterTest.php | 2 +- .../ProductTypes/Config/SchemaLocatorTest.php | 2 +- .../Model/ProductTypes/Config/XsdMergedTest.php | 2 +- .../Unit/Model/ProductTypes/Config/XsdTest.php | 2 +- .../_files/invalidProductTypesMergedXmlArray.php | 2 +- .../Config/_files/invalidProductTypesXmlArray.php | 2 +- .../ProductTypes/Config/_files/product_types.php | 2 +- .../ProductTypes/Config/_files/product_types.xml | 2 +- .../Config/_files/valid_product_types.xml | 2 +- .../Config/_files/valid_product_types_merged.xml | 2 +- .../Test/Unit/Model/ProductTypes/ConfigTest.php | 2 +- .../Test/Unit/Model/ResourceModel/AbstractTest.php | 2 +- .../Category/Collection/FactoryTest.php | 2 +- .../Unit/Model/ResourceModel/Category/FlatTest.php | 2 +- .../Unit/Model/ResourceModel/Category/TreeTest.php | 2 +- .../Test/Unit/Model/ResourceModel/CategoryTest.php | 2 +- .../Unit/Model/ResourceModel/Eav/AttributeTest.php | 2 +- .../Product/Collection/ProductLimitationTest.php | 2 +- .../Model/ResourceModel/Product/CollectionTest.php | 2 +- .../Product/CompositeBaseSelectProcessorTest.php | 2 +- .../Unit/Model/ResourceModel/Product/FlatTest.php | 2 +- .../Model/ResourceModel/Product/GalleryTest.php | 2 +- .../Product/Link/Product/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/Product/LinkTest.php | 2 +- .../Product/Option/CollectionTest.php | 2 +- .../Product/StatusBaseSelectProcessorTest.php | 2 +- .../Test/Unit/Model/ResourceModel/ProductTest.php | 2 +- .../Catalog/Test/Unit/Model/Rss/CategoryTest.php | 2 +- .../Unit/Model/Rss/Product/NewProductsTest.php | 2 +- .../Unit/Model/Rss/Product/NotifyStockTest.php | 2 +- .../Test/Unit/Model/Rss/Product/SpecialTest.php | 2 +- .../Model/System/Config/Source/InputtypeTest.php | 2 +- .../Unit/Model/Template/Filter/FactoryTest.php | 2 +- .../Test/Unit/Model/_files/converted_view.php | 2 +- .../Catalog/Test/Unit/Model/_files/valid_view.xml | 2 +- .../Test/Unit/Observer/MenuCategoryDataTest.php | 2 +- .../Catalog/Test/Unit/Plugin/Block/TopmenuTest.php | 2 +- .../Model/Indexer/Category/Product/ExecuteTest.php | 2 +- .../Action/UpdateAttributesFlushCacheTest.php | 2 +- .../Model/ResourceModel/Attribute/SaveTest.php | 2 +- .../Unit/Plugin/Model/ResourceModel/ConfigTest.php | 2 +- .../Test/Unit/Pricing/Price/BasePriceTest.php | 2 +- .../Unit/Pricing/Price/ConfiguredPriceTest.php | 2 +- .../Unit/Pricing/Price/CustomOptionPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/FinalPriceTest.php | 2 +- .../Price/MinimalTierPriceCalculatorTest.php | 2 +- .../Test/Unit/Pricing/Price/RegularPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/SpecialPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/TierPriceTest.php | 2 +- .../Test/Unit/Pricing/Render/FinalPriceBoxTest.php | 2 +- .../Test/Unit/Pricing/Render/PriceBoxTest.php | 2 +- .../Catalog/Test/Unit/Pricing/RenderTest.php | 2 +- .../Catalog/Test/Unit/Setup/CategorySetupTest.php | 2 +- .../Test/Unit/Ui/AllowedProductTypesTest.php | 2 +- .../Listing/Columns/AbstractColumnTest.php | 2 +- .../Listing/Columns/AttributeSetTextTest.php | 2 +- .../Component/Listing/Columns/StatusTextTest.php | 2 +- .../Product/Form/Categories/OptionsTest.php | 2 +- .../DataProvider/CatalogEavValidationRulesTest.php | 2 +- .../Product/Form/Modifier/AbstractModifierTest.php | 2 +- .../Product/Form/Modifier/AdvancedPricingTest.php | 2 +- .../Product/Form/Modifier/AttributeSetTest.php | 2 +- .../Product/Form/Modifier/AttributesTest.php | 2 +- .../Product/Form/Modifier/CategoriesTest.php | 2 +- .../Product/Form/Modifier/CustomOptionsTest.php | 2 +- .../DataProvider/Product/Form/Modifier/EavTest.php | 2 +- .../Product/Form/Modifier/FactoryTest.php | 2 +- .../Product/Form/Modifier/GeneralTest.php | 2 +- .../Product/Form/Modifier/ImagesTest.php | 2 +- .../Product/Form/Modifier/RelatedTest.php | 2 +- .../Form/Modifier/ScheduleDesignUpdateTest.php | 2 +- .../Product/Form/Modifier/SystemTest.php | 2 +- .../Product/Form/Modifier/WebsitesTest.php | 2 +- .../Product/Form/NewCategoryDataProviderTest.php | 2 +- .../Product/Form/ProductDataProviderTest.php | 2 +- .../ProductCustomOptionsDataProviderTest.php | 2 +- .../Product/Related/AbstractDataProviderTest.php | 2 +- .../Product/Related/CrossSellDataProviderTest.php | 2 +- .../Product/Related/RelatedDataProviderTest.php | 2 +- .../Product/Related/UpSellDataProviderTest.php | 2 +- .../Magento/Catalog/Ui/AllowedProductTypes.php | 2 +- .../Ui/Component/Category/Form/Element/Wysiwyg.php | 2 +- .../Magento/Catalog/Ui/Component/ColumnFactory.php | 2 +- .../Magento/Catalog/Ui/Component/FilterFactory.php | 2 +- .../Listing/Attribute/AbstractRepository.php | 2 +- .../Ui/Component/Listing/Attribute/Repository.php | 2 +- .../Listing/Attribute/RepositoryInterface.php | 2 +- .../Catalog/Ui/Component/Listing/Columns.php | 2 +- .../Component/Listing/Columns/AttributeSetText.php | 2 +- .../Catalog/Ui/Component/Listing/Columns/Price.php | 2 +- .../Component/Listing/Columns/ProductActions.php | 2 +- .../Ui/Component/Listing/Columns/StatusText.php | 2 +- .../Ui/Component/Listing/Columns/Thumbnail.php | 2 +- .../Ui/Component/Listing/Columns/Websites.php | 2 +- .../Catalog/Ui/Component/Listing/Filters.php | 2 +- .../Component/Product/Form/Categories/Options.php | 2 +- .../Ui/DataProvider/CatalogEavValidationRules.php | 2 +- .../Product/AddStoreFieldToCollection.php | 2 +- .../Product/AddWebsitesFieldToCollection.php | 2 +- .../Ui/DataProvider/Product/Attributes/Listing.php | 2 +- .../Product/Form/Modifier/AbstractModifier.php | 2 +- .../Product/Form/Modifier/AdvancedPricing.php | 2 +- .../DataProvider/Product/Form/Modifier/Alerts.php | 2 +- .../Product/Form/Modifier/AttributeSet.php | 2 +- .../Product/Form/Modifier/Attributes.php | 2 +- .../Product/Form/Modifier/Categories.php | 2 +- .../Product/Form/Modifier/CustomOptions.php | 2 +- .../Ui/DataProvider/Product/Form/Modifier/Eav.php | 2 +- .../DataProvider/Product/Form/Modifier/General.php | 2 +- .../DataProvider/Product/Form/Modifier/Images.php | 2 +- .../DataProvider/Product/Form/Modifier/Related.php | 2 +- .../Product/Form/Modifier/ScheduleDesignUpdate.php | 2 +- .../DataProvider/Product/Form/Modifier/System.php | 2 +- .../Product/Form/Modifier/Websites.php | 2 +- .../Product/Form/NewCategoryDataProvider.php | 2 +- .../Product/Form/ProductDataProvider.php | 2 +- .../Ui/DataProvider/Product/ProductCollection.php | 2 +- .../Product/ProductCustomOptionsDataProvider.php | 2 +- .../DataProvider/Product/ProductDataProvider.php | 2 +- .../Product/Related/AbstractDataProvider.php | 2 +- .../Product/Related/CrossSellDataProvider.php | 2 +- .../Product/Related/RelatedDataProvider.php | 2 +- .../Product/Related/UpSellDataProvider.php | 2 +- app/code/Magento/Catalog/etc/acl.xml | 2 +- app/code/Magento/Catalog/etc/adminhtml/di.xml | 2 +- app/code/Magento/Catalog/etc/adminhtml/events.xml | 2 +- app/code/Magento/Catalog/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Catalog/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Catalog/etc/adminhtml/system.xml | 2 +- .../Magento/Catalog/etc/catalog_attributes.xml | 2 +- .../Magento/Catalog/etc/catalog_attributes.xsd | 2 +- app/code/Magento/Catalog/etc/config.xml | 2 +- app/code/Magento/Catalog/etc/crontab.xml | 2 +- app/code/Magento/Catalog/etc/di.xml | 2 +- app/code/Magento/Catalog/etc/eav_attributes.xml | 2 +- app/code/Magento/Catalog/etc/events.xml | 2 +- .../Magento/Catalog/etc/extension_attributes.xml | 2 +- app/code/Magento/Catalog/etc/frontend/di.xml | 2 +- app/code/Magento/Catalog/etc/frontend/events.xml | 2 +- .../Magento/Catalog/etc/frontend/page_types.xml | 2 +- app/code/Magento/Catalog/etc/frontend/routes.xml | 2 +- app/code/Magento/Catalog/etc/frontend/sections.xml | 2 +- app/code/Magento/Catalog/etc/indexer.xml | 2 +- app/code/Magento/Catalog/etc/module.xml | 2 +- app/code/Magento/Catalog/etc/mview.xml | 2 +- app/code/Magento/Catalog/etc/product_options.xml | 2 +- app/code/Magento/Catalog/etc/product_options.xsd | 2 +- .../Magento/Catalog/etc/product_options_merged.xsd | 2 +- app/code/Magento/Catalog/etc/product_types.xml | 2 +- app/code/Magento/Catalog/etc/product_types.xsd | 2 +- .../Magento/Catalog/etc/product_types_base.xsd | 2 +- .../Magento/Catalog/etc/product_types_merged.xsd | 2 +- app/code/Magento/Catalog/etc/view.xml | 2 +- app/code/Magento/Catalog/etc/webapi.xml | 2 +- app/code/Magento/Catalog/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Catalog/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Catalog/etc/widget.xml | 2 +- app/code/Magento/Catalog/registration.php | 2 +- .../layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE.xml | 2 +- .../CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml | 2 +- .../CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml | 2 +- .../view/adminhtml/layout/catalog_category_add.xml | 2 +- .../adminhtml/layout/catalog_category_create.xml | 2 +- .../adminhtml/layout/catalog_category_edit.xml | 2 +- .../catalog_product_action_attribute_edit.xml | 2 +- .../layout/catalog_product_alertspricegrid.xml | 2 +- .../layout/catalog_product_alertsstockgrid.xml | 2 +- .../layout/catalog_product_attribute_edit.xml | 2 +- .../layout/catalog_product_attribute_edit_form.xml | 2 +- .../catalog_product_attribute_edit_popup.xml | 2 +- .../catalog_product_change_attribute_set.xml | 2 +- .../adminhtml/layout/catalog_product_crosssell.xml | 2 +- .../layout/catalog_product_crosssellgrid.xml | 2 +- .../layout/catalog_product_customoptions.xml | 2 +- .../view/adminhtml/layout/catalog_product_edit.xml | 2 +- .../view/adminhtml/layout/catalog_product_form.xml | 2 +- .../view/adminhtml/layout/catalog_product_grid.xml | 2 +- .../adminhtml/layout/catalog_product_index.xml | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../adminhtml/layout/catalog_product_options.xml | 2 +- .../layout/catalog_product_optionsimportgrid.xml | 2 +- .../adminhtml/layout/catalog_product_related.xml | 2 +- .../layout/catalog_product_relatedgrid.xml | 2 +- .../adminhtml/layout/catalog_product_reload.xml | 2 +- .../adminhtml/layout/catalog_product_set_block.xml | 2 +- .../adminhtml/layout/catalog_product_set_edit.xml | 2 +- .../adminhtml/layout/catalog_product_set_index.xml | 2 +- .../adminhtml/layout/catalog_product_upsell.xml | 2 +- .../layout/catalog_product_upsellgrid.xml | 2 +- .../Catalog/view/adminhtml/requirejs-config.js | 2 +- .../catalog/category/checkboxes/tree.phtml | 2 +- .../templates/catalog/category/edit.phtml | 2 +- .../catalog/category/edit/assign_products.phtml | 2 +- .../templates/catalog/category/tree.phtml | 2 +- .../templates/catalog/category/widget/tree.phtml | 2 +- .../catalog/form/renderer/fieldset/element.phtml | 2 +- .../view/adminhtml/templates/catalog/product.phtml | 2 +- .../templates/catalog/product/attribute/form.phtml | 2 +- .../templates/catalog/product/attribute/js.phtml | 2 +- .../catalog/product/attribute/labels.phtml | 2 +- .../catalog/product/attribute/options.phtml | 2 +- .../catalog/product/attribute/set/main.phtml | 2 +- .../attribute/set/main/tree/attribute.phtml | 2 +- .../product/attribute/set/main/tree/group.phtml | 2 +- .../product/attribute/set/toolbar/add.phtml | 2 +- .../product/attribute/set/toolbar/main.phtml | 2 +- .../catalog/product/composite/configure.phtml | 2 +- .../product/composite/fieldset/options.phtml | 2 +- .../product/composite/fieldset/options/js.phtml | 2 +- .../composite/fieldset/options/type/date.phtml | 2 +- .../composite/fieldset/options/type/default.phtml | 2 +- .../composite/fieldset/options/type/file.phtml | 2 +- .../composite/fieldset/options/type/select.phtml | 2 +- .../composite/fieldset/options/type/text.phtml | 2 +- .../catalog/product/composite/fieldset/qty.phtml | 2 +- .../adminhtml/templates/catalog/product/edit.phtml | 2 +- .../catalog/product/edit/action/attribute.phtml | 2 +- .../catalog/product/edit/action/inventory.phtml | 2 +- .../catalog/product/edit/action/websites.phtml | 2 +- .../catalog/product/edit/attribute_set.phtml | 2 +- .../catalog/product/edit/category/new/form.phtml | 2 +- .../templates/catalog/product/edit/options.phtml | 2 +- .../catalog/product/edit/options/option.phtml | 2 +- .../catalog/product/edit/options/type/date.phtml | 2 +- .../catalog/product/edit/options/type/file.phtml | 2 +- .../catalog/product/edit/options/type/select.phtml | 2 +- .../catalog/product/edit/options/type/text.phtml | 2 +- .../catalog/product/edit/price/tier.phtml | 2 +- .../catalog/product/edit/serializer.phtml | 2 +- .../templates/catalog/product/edit/websites.phtml | 2 +- .../templates/catalog/product/helper/gallery.phtml | 2 +- .../adminhtml/templates/catalog/product/js.phtml | 2 +- .../templates/catalog/product/tab/alert.phtml | 2 +- .../templates/catalog/product/tab/inventory.phtml | 2 +- .../catalog/product/widget/chooser/container.phtml | 2 +- .../adminhtml/templates/catalog/wysiwyg/js.phtml | 2 +- .../templates/product/edit/attribute/search.phtml | 2 +- .../adminhtml/templates/product/edit/tabs.phtml | 2 +- .../templates/product/edit/tabs/child_tab.phtml | 2 +- .../product/grid/massaction_extended.phtml | 2 +- .../view/adminhtml/templates/rss/grid/link.phtml | 2 +- .../view/adminhtml/ui_component/category_form.xml | 2 +- .../ui_component/crosssell_product_listing.xml | 2 +- .../adminhtml/ui_component/design_config_form.xml | 2 +- .../adminhtml/ui_component/new_category_form.xml | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../ui_component/product_attributes_grid.xml | 2 +- .../product_custom_options_listing.xml | 2 +- .../view/adminhtml/ui_component/product_form.xml | 2 +- .../adminhtml/ui_component/product_listing.xml | 2 +- .../ui_component/related_product_listing.xml | 2 +- .../ui_component/upsell_product_listing.xml | 2 +- .../web/catalog/apply-to-type-switcher.js | 2 +- .../adminhtml/web/catalog/base-image-uploader.js | 2 +- .../web/catalog/category/assign-products.js | 2 +- .../view/adminhtml/web/catalog/category/edit.js | 2 +- .../view/adminhtml/web/catalog/category/form.js | 2 +- .../adminhtml/web/catalog/product-attributes.js | 2 +- .../Catalog/view/adminhtml/web/catalog/product.js | 2 +- .../catalog/product/attribute/unique-validate.js | 2 +- .../web/catalog/product/composite/configure.js | 2 +- .../view/adminhtml/web/catalog/type-events.js | 2 +- .../adminhtml/web/component/file-type-field.js | 2 +- .../adminhtml/web/component/image-size-field.js | 2 +- .../adminhtml/web/component/select-type-grid.js | 2 +- .../web/component/static-type-container.js | 2 +- .../adminhtml/web/component/static-type-input.js | 2 +- .../adminhtml/web/component/static-type-select.js | 2 +- .../adminhtml/web/component/text-type-field.js | 2 +- .../view/adminhtml/web/js/bundle-proxy-button.js | 2 +- .../Catalog/view/adminhtml/web/js/category-tree.js | 2 +- .../web/js/components/attribute-set-select.js | 2 +- .../web/js/components/attributes-fieldset.js | 2 +- .../web/js/components/attributes-grid-paging.js | 2 +- .../web/js/components/attributes-insert-listing.js | 2 +- .../view/adminhtml/web/js/components/checkbox.js | 2 +- .../web/js/components/disable-hide-select.js | 2 +- .../web/js/components/disable-on-option/input.js | 2 +- .../web/js/components/disable-on-option/select.js | 2 +- .../js/components/disable-on-option/strategy.js | 2 +- .../web/js/components/disable-on-option/yesno.js | 2 +- .../dynamic-rows-import-custom-options.js | 2 +- .../adminhtml/web/js/components/import-handler.js | 2 +- .../web/js/components/input-handle-required.js | 2 +- .../view/adminhtml/web/js/components/messages.js | 2 +- .../js/components/multiselect-handle-required.js | 2 +- .../web/js/components/new-attribute-form.js | 2 +- .../web/js/components/new-attribute-insert-form.js | 2 +- .../adminhtml/web/js/components/new-category.js | 2 +- .../adminhtml/web/js/components/product-status.js | 2 +- .../web/js/components/select-handle-required.js | 2 +- .../web/js/components/select-to-checkbox.js | 2 +- .../web/js/components/url-key-handle-changes.js | 2 +- .../web/js/components/visible-on-option/date.js | 2 +- .../js/components/visible-on-option/fieldset.js | 2 +- .../web/js/components/visible-on-option/input.js | 2 +- .../web/js/components/visible-on-option/select.js | 2 +- .../js/components/visible-on-option/strategy.js | 2 +- .../js/components/visible-on-option/textarea.js | 2 +- .../web/js/components/visible-on-option/yesno.js | 2 +- .../view/adminhtml/web/js/custom-options-type.js | 2 +- .../view/adminhtml/web/js/custom-options.js | 2 +- .../Catalog/view/adminhtml/web/js/edit-tree.js | 2 +- .../adminhtml/web/js/form/element/action-delete.js | 2 +- .../view/adminhtml/web/js/form/element/checkbox.js | 2 +- .../view/adminhtml/web/js/form/element/input.js | 2 +- .../view/adminhtml/web/js/new-category-dialog.js | 2 +- .../Catalog/view/adminhtml/web/js/options.js | 2 +- .../view/adminhtml/web/js/product-gallery.js | 2 +- .../adminhtml/web/js/product/weight-handler.js | 2 +- .../web/template/attributes/grid/paging.html | 2 +- .../view/adminhtml/web/template/checkbox.html | 2 +- .../web/template/form/element/action-delete.html | 2 +- .../form/element/helper/custom-option-service.html | 2 +- .../element/helper/custom-option-type-service.html | 2 +- .../adminhtml/web/template/form/element/input.html | 2 +- .../view/adminhtml/web/template/image-preview.html | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../Magento/Catalog/view/base/layout/default.xml | 2 +- .../Magento/Catalog/view/base/layout/empty.xml | 2 +- .../view/base/templates/js/components.phtml | 2 +- .../templates/product/price/amount/default.phtml | 2 +- .../templates/product/price/configured_price.phtml | 2 +- .../base/templates/product/price/default.phtml | 2 +- .../base/templates/product/price/final_price.phtml | 2 +- .../base/templates/product/price/tier_prices.phtml | 2 +- .../Magento/Catalog/view/base/web/js/price-box.js | 2 +- .../Catalog/view/base/web/js/price-option-date.js | 2 +- .../Catalog/view/base/web/js/price-option-file.js | 2 +- .../Catalog/view/base/web/js/price-options.js | 2 +- .../Catalog/view/base/web/js/price-utils.js | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../layout/catalog_category_view_type_default.xml | 2 +- ...category_view_type_default_without_children.xml | 2 +- .../layout/catalog_product_compare_index.xml | 2 +- .../frontend/layout/catalog_product_gallery.xml | 2 +- .../frontend/layout/catalog_product_opengraph.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../layout/catalog_product_view_type_simple.xml | 2 +- .../layout/catalog_product_view_type_virtual.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../Catalog/view/frontend/layout/default.xml | 2 +- .../Catalog/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/category/cms.phtml | 2 +- .../frontend/templates/category/description.phtml | 2 +- .../view/frontend/templates/category/image.phtml | 2 +- .../frontend/templates/category/products.phtml | 2 +- .../view/frontend/templates/category/rss.phtml | 2 +- .../category/widget/link/link_block.phtml | 2 +- .../category/widget/link/link_inline.phtml | 2 +- .../view/frontend/templates/navigation/left.phtml | 2 +- .../frontend/templates/product/compare/link.phtml | 2 +- .../frontend/templates/product/compare/list.phtml | 2 +- .../templates/product/compare/sidebar.phtml | 2 +- .../view/frontend/templates/product/gallery.phtml | 2 +- .../view/frontend/templates/product/image.phtml | 2 +- .../templates/product/image_with_borders.phtml | 2 +- .../view/frontend/templates/product/list.phtml | 2 +- .../templates/product/list/addto/compare.phtml | 2 +- .../frontend/templates/product/list/items.phtml | 2 +- .../frontend/templates/product/list/toolbar.phtml | 2 +- .../templates/product/list/toolbar/amount.phtml | 2 +- .../templates/product/list/toolbar/limiter.phtml | 2 +- .../templates/product/list/toolbar/sorter.phtml | 2 +- .../templates/product/list/toolbar/viewmode.phtml | 2 +- .../view/frontend/templates/product/listing.phtml | 2 +- .../templates/product/view/additional.phtml | 2 +- .../frontend/templates/product/view/addto.phtml | 2 +- .../templates/product/view/addto/compare.phtml | 2 +- .../templates/product/view/addtocart.phtml | 2 +- .../templates/product/view/attribute.phtml | 2 +- .../templates/product/view/attributes.phtml | 2 +- .../templates/product/view/description.phtml | 2 +- .../frontend/templates/product/view/details.phtml | 2 +- .../frontend/templates/product/view/form.phtml | 2 +- .../frontend/templates/product/view/gallery.phtml | 2 +- .../frontend/templates/product/view/mailto.phtml | 2 +- .../product/view/opengraph/currency.phtml | 2 +- .../templates/product/view/opengraph/general.phtml | 2 +- .../frontend/templates/product/view/options.phtml | 2 +- .../templates/product/view/options/type/date.phtml | 2 +- .../product/view/options/type/default.phtml | 2 +- .../templates/product/view/options/type/file.phtml | 2 +- .../product/view/options/type/select.phtml | 2 +- .../templates/product/view/options/type/text.phtml | 2 +- .../templates/product/view/options/wrapper.phtml | 2 +- .../product/view/options/wrapper/bottom.phtml | 2 +- .../templates/product/view/price_clone.phtml | 2 +- .../frontend/templates/product/view/review.phtml | 2 +- .../templates/product/view/type/default.phtml | 2 +- .../templates/product/widget/link/link_block.phtml | 2 +- .../product/widget/link/link_inline.phtml | 2 +- .../widget/new/column/new_default_list.phtml | 2 +- .../widget/new/column/new_images_list.phtml | 2 +- .../product/widget/new/column/new_names_list.phtml | 2 +- .../product/widget/new/content/new_grid.phtml | 2 +- .../product/widget/new/content/new_list.phtml | 2 +- .../view/frontend/web/js/catalog-add-to-cart.js | 2 +- .../Catalog/view/frontend/web/js/compare.js | 2 +- .../Catalog/view/frontend/web/js/gallery.js | 2 +- .../Magento/Catalog/view/frontend/web/js/list.js | 2 +- .../view/frontend/web/js/product/list/toolbar.js | 2 +- .../view/frontend/web/js/related-products.js | 2 +- .../view/frontend/web/js/upsell-products.js | 2 +- .../view/frontend/web/js/validate-product.js | 2 +- .../view/frontend/web/js/view/compare-products.js | 2 +- .../Catalog/view/frontend/web/js/view/image.js | 2 +- .../Magento/Catalog/view/frontend/web/js/zoom.js | 2 +- .../view/frontend/web/product/view/validation.js | 2 +- .../view/frontend/web/template/product/image.html | 2 +- .../web/template/product/image_with_borders.html | 2 +- .../CatalogImportExport/Model/Export/Product.php | 2 +- .../Model/Export/Product/Type/AbstractType.php | 2 +- .../Model/Export/Product/Type/Factory.php | 2 +- .../Model/Export/Product/Type/Simple.php | 2 +- .../Model/Export/RowCustomizer/Composite.php | 2 +- .../Model/Export/RowCustomizerInterface.php | 2 +- .../CatalogImportExport/Model/Import/Product.php | 2 +- .../Model/Import/Product/CategoryProcessor.php | 2 +- .../Model/Import/Product/Option.php | 2 +- .../Model/Import/Product/RowValidatorInterface.php | 2 +- .../Model/Import/Product/SkuProcessor.php | 2 +- .../Model/Import/Product/StoreResolver.php | 2 +- .../Model/Import/Product/TaxClassProcessor.php | 2 +- .../Model/Import/Product/Type/AbstractType.php | 2 +- .../Model/Import/Product/Type/Factory.php | 2 +- .../Model/Import/Product/Type/Simple.php | 2 +- .../Model/Import/Product/Type/Virtual.php | 2 +- .../Model/Import/Product/Validator.php | 2 +- .../Product/Validator/AbstractImportValidator.php | 2 +- .../Import/Product/Validator/AbstractPrice.php | 2 +- .../Model/Import/Product/Validator/Media.php | 2 +- .../Model/Import/Product/Validator/Quantity.php | 2 +- .../Import/Product/Validator/SuperProductsSku.php | 2 +- .../Model/Import/Product/Validator/TierPrice.php | 2 +- .../Model/Import/Product/Validator/Website.php | 2 +- .../Model/Import/Product/Validator/Weight.php | 2 +- .../Model/Import/Proxy/Product.php | 2 +- .../Model/Import/Proxy/Product/ResourceModel.php | 2 +- .../CatalogImportExport/Model/Import/Uploader.php | 2 +- .../Indexer/Category/Product/Plugin/Import.php | 2 +- .../Indexer/Product/Category/Plugin/Import.php | 2 +- .../Model/Indexer/Product/Eav/Plugin/Import.php | 2 +- .../Model/Indexer/Product/Flat/Plugin/Import.php | 2 +- .../Model/Indexer/Product/Price/Plugin/Import.php | 2 +- .../Model/Indexer/Stock/Plugin/Import.php | 2 +- .../Test/Unit/Model/Export/ProductTest.php | 2 +- .../Test/Unit/Model/Export/StubProduct.php | 2 +- .../Model/Import/Product/CategoryProcessorTest.php | 2 +- .../Unit/Model/Import/Product/SkuProcessorTest.php | 2 +- .../Model/Import/Product/TaxClassProcessorTest.php | 2 +- .../Model/Import/Product/Type/AbstractTypeTest.php | 2 +- .../Unit/Model/Import/Product/Type/OptionTest.php | 2 +- .../Unit/Model/Import/Product/Type/VirtualTest.php | 2 +- .../_files/row_data_ambiguity_different_type.php | 2 +- .../_files/row_data_ambiguity_several_db_rows.php | 2 +- .../Type/_files/row_data_main_empty_title.php | 2 +- .../Type/_files/row_data_main_incorrect_type.php | 2 +- .../row_data_main_invalid_max_characters.php | 2 +- .../Type/_files/row_data_main_invalid_price.php | 2 +- .../_files/row_data_main_invalid_sort_order.php | 2 +- .../Type/_files/row_data_main_invalid_store.php | 2 +- .../row_data_main_max_characters_less_zero.php | 2 +- .../Product/Type/_files/row_data_main_no_title.php | 2 +- .../_files/row_data_main_sort_order_less_zero.php | 2 +- .../Product/Type/_files/row_data_main_valid.php | 2 +- .../Type/_files/row_data_no_custom_option.php | 2 +- .../_files/row_data_secondary_incorrect_price.php | 2 +- .../row_data_secondary_incorrect_row_sort.php | 2 +- .../_files/row_data_secondary_invalid_store.php | 2 +- .../row_data_secondary_row_sort_less_zero.php | 2 +- .../Type/_files/row_data_secondary_valid.php | 2 +- .../Model/Import/Product/Validator/MediaTest.php | 2 +- .../Import/Product/Validator/QuantityTest.php | 2 +- .../Import/Product/Validator/TierPriceTest.php | 2 +- .../Unit/Model/Import/Product/ValidatorTest.php | 2 +- .../Test/Unit/Model/Import/ProductTest.php | 2 +- .../Test/Unit/Model/Import/UploaderTest.php | 2 +- .../Indexer/Product/Flat/Plugin/ImportTest.php | 2 +- .../Indexer/Product/Price/Plugin/ImportTest.php | 2 +- .../Unit/Model/Indexer/Stock/Plugin/ImportTest.php | 2 +- .../Magento/CatalogImportExport/etc/config.xml | 2 +- app/code/Magento/CatalogImportExport/etc/di.xml | 2 +- .../Magento/CatalogImportExport/etc/export.xml | 2 +- .../Magento/CatalogImportExport/etc/import.xml | 2 +- .../Magento/CatalogImportExport/etc/module.xml | 2 +- .../Magento/CatalogImportExport/registration.php | 2 +- .../Api/Data/StockCollectionInterface.php | 2 +- .../CatalogInventory/Api/Data/StockInterface.php | 2 +- .../Api/Data/StockItemCollectionInterface.php | 2 +- .../Api/Data/StockItemInterface.php | 2 +- .../Api/Data/StockStatusCollectionInterface.php | 2 +- .../Api/Data/StockStatusInterface.php | 2 +- .../Api/StockConfigurationInterface.php | 2 +- .../Api/StockCriteriaInterface.php | 2 +- .../CatalogInventory/Api/StockIndexInterface.php | 2 +- .../Api/StockItemCriteriaInterface.php | 2 +- .../Api/StockItemRepositoryInterface.php | 2 +- .../Api/StockManagementInterface.php | 2 +- .../Api/StockRegistryInterface.php | 2 +- .../Api/StockRepositoryInterface.php | 2 +- .../CatalogInventory/Api/StockStateInterface.php | 2 +- .../Api/StockStatusCriteriaInterface.php | 2 +- .../Api/StockStatusRepositoryInterface.php | 2 +- .../Block/Adminhtml/Form/Field/Customergroup.php | 2 +- .../Block/Adminhtml/Form/Field/Minsaleqty.php | 2 +- .../Block/Adminhtml/Form/Field/Stock.php | 2 +- .../CatalogInventory/Block/Plugin/ProductView.php | 2 +- .../CatalogInventory/Block/Qtyincrements.php | 2 +- .../Block/Stockqty/AbstractStockqty.php | 2 +- .../CatalogInventory/Block/Stockqty/Composite.php | 2 +- .../Block/Stockqty/DefaultStockqty.php | 2 +- .../Block/Stockqty/Type/Grouped.php | 2 +- app/code/Magento/CatalogInventory/Helper/Data.php | 2 +- .../Magento/CatalogInventory/Helper/Minsaleqty.php | 2 +- app/code/Magento/CatalogInventory/Helper/Stock.php | 2 +- .../Model/AddStockStatusToCollection.php | 2 +- .../Model/Adminhtml/Stock/Item.php | 2 +- .../Model/Config/Backend/AbstractValue.php | 2 +- .../Model/Config/Backend/Backorders.php | 2 +- .../Model/Config/Backend/Managestock.php | 2 +- .../Model/Config/Backend/ShowOutOfStock.php | 2 +- .../CatalogInventory/Model/Configuration.php | 2 +- .../CatalogInventory/Model/Indexer/Stock.php | 2 +- .../Model/Indexer/Stock/AbstractAction.php | 2 +- .../Model/Indexer/Stock/Action/Full.php | 2 +- .../Model/Indexer/Stock/Action/Row.php | 2 +- .../Model/Indexer/Stock/Action/Rows.php | 2 +- .../Model/Indexer/Stock/Plugin/StoreGroup.php | 2 +- .../Model/Indexer/Stock/Processor.php | 2 +- .../Model/Plugin/AfterProductLoad.php | 2 +- .../Model/Plugin/AroundProductRepositorySave.php | 2 +- .../Model/Plugin/FilterCustomAttribute.php | 2 +- .../CatalogInventory/Model/Plugin/Layer.php | 2 +- .../Product/CopyConstructor/CatalogInventory.php | 2 +- .../Model/Quote/Item/QuantityValidator.php | 2 +- .../Item/QuantityValidator/Initializer/Option.php | 2 +- .../QuantityValidator/Initializer/QtyProcessor.php | 2 +- .../QuantityValidator/Initializer/StockItem.php | 2 +- .../Item/QuantityValidator/QuoteItemQtyList.php | 2 +- .../ResourceModel/Indexer/Stock/DefaultStock.php | 2 +- .../Indexer/Stock/QueryProcessorComposite.php | 2 +- .../Indexer/Stock/QueryProcessorInterface.php | 2 +- .../ResourceModel/Indexer/Stock/StockInterface.php | 2 +- .../Model/ResourceModel/Indexer/StockFactory.php | 2 +- .../Product/StockStatusBaseSelectProcessor.php | 2 +- .../Model/ResourceModel/QtyCounterInterface.php | 2 +- .../Model/ResourceModel/Stock/Collection.php | 2 +- .../Model/ResourceModel/Stock/Item.php | 2 +- .../Model/ResourceModel/Stock/Item/Collection.php | 2 +- .../ResourceModel/Stock/Item/StockItemCriteria.php | 2 +- .../Stock/Item/StockItemCriteriaMapper.php | 2 +- .../Model/ResourceModel/Stock/Status.php | 2 +- .../ResourceModel/Stock/Status/Collection.php | 2 +- .../Stock/Status/StockStatusCriteria.php | 2 +- .../Stock/Status/StockStatusCriteriaMapper.php | 2 +- .../Model/ResourceModel/Stock/StockCriteria.php | 2 +- .../ResourceModel/Stock/StockCriteriaMapper.php | 2 +- .../CatalogInventory/Model/Source/Backorders.php | 2 +- .../CatalogInventory/Model/Source/Stock.php | 2 +- .../Model/Source/StockConfiguration.php | 2 +- .../Model/Spi/StockRegistryProviderInterface.php | 2 +- .../Model/Spi/StockStateProviderInterface.php | 2 +- app/code/Magento/CatalogInventory/Model/Stock.php | 2 +- .../Magento/CatalogInventory/Model/Stock/Item.php | 2 +- .../CatalogInventory/Model/Stock/Status.php | 2 +- .../Model/Stock/StockItemRepository.php | 2 +- .../Model/Stock/StockRepository.php | 2 +- .../Model/Stock/StockStatusRepository.php | 2 +- .../Magento/CatalogInventory/Model/StockIndex.php | 2 +- .../CatalogInventory/Model/StockRegistry.php | 2 +- .../Model/StockRegistryProvider.php | 2 +- .../Model/StockRegistryStorage.php | 2 +- .../Magento/CatalogInventory/Model/StockState.php | 2 +- .../CatalogInventory/Model/StockStateProvider.php | 2 +- .../Model/System/Config/Backend/Minqty.php | 2 +- .../Model/System/Config/Backend/Minsaleqty.php | 2 +- .../Model/System/Config/Backend/Qtyincrements.php | 2 +- .../Observer/AddInventoryDataObserver.php | 2 +- .../Observer/CancelOrderItemObserver.php | 2 +- .../Observer/CheckoutAllSubmitAfterObserver.php | 2 +- .../Observer/DisplayProductStatusInfoObserver.php | 2 +- .../CatalogInventory/Observer/ItemsForReindex.php | 2 +- .../CatalogInventory/Observer/ProductQty.php | 2 +- .../Observer/QuantityValidatorObserver.php | 2 +- .../Observer/RefundOrderInventoryObserver.php | 2 +- .../Observer/ReindexQuoteInventoryObserver.php | 2 +- .../Observer/RevertQuoteInventoryObserver.php | 2 +- .../Observer/SaveInventoryDataObserver.php | 2 +- .../Observer/SubtractQuoteInventoryObserver.php | 2 +- .../UpdateItemsStockUponConfigChangeObserver.php | 2 +- .../Magento/CatalogInventory/Setup/InstallData.php | 2 +- .../CatalogInventory/Setup/InstallSchema.php | 2 +- .../Magento/CatalogInventory/Setup/Recurring.php | 2 +- .../Magento/CatalogInventory/Setup/UpgradeData.php | 2 +- .../Test/Unit/Api/StockConfigurationTest.php | 2 +- .../Test/Unit/Api/StockRegistryTest.php | 2 +- .../Test/Unit/Api/StockStateTest.php | 2 +- .../Unit/Block/Adminhtml/Form/Field/StockTest.php | 2 +- .../Test/Unit/Block/Plugin/ProductViewTest.php | 2 +- .../Test/Unit/Block/QtyincrementsTest.php | 2 +- .../Unit/Block/Stockqty/DefaultStockqtyTest.php | 2 +- .../Test/Unit/Helper/MinsaleqtyTest.php | 2 +- .../Test/Unit/Helper/StockTest.php | 2 +- .../Unit/Model/AddStockStatusToCollectionTest.php | 2 +- .../Test/Unit/Model/Adminhtml/Stock/ItemTest.php | 2 +- .../Unit/Model/Config/Backend/ManagestockTest.php | 2 +- .../Test/Unit/Model/ConfigurationTest.php | 2 +- .../Unit/Model/Indexer/Stock/Action/FullTest.php | 2 +- .../Unit/Model/Indexer/Stock/Action/RowTest.php | 2 +- .../Unit/Model/Indexer/Stock/Action/RowsTest.php | 2 +- .../Model/Indexer/Stock/Plugin/StoreGroupTest.php | 2 +- .../Unit/Model/Plugin/AfterProductLoadTest.php | 2 +- .../Plugin/AroundProductRepositorySaveTest.php | 2 +- .../Test/Unit/Model/Plugin/LayerTest.php | 2 +- .../Test/Unit/Model/Plugin/ProductLinksTest.php | 2 +- .../CopyConstructor/CatalogInventoryTest.php | 2 +- .../QuantityValidator/Initializer/OptionTest.php | 2 +- .../Initializer/QtyProcessorTest.php | 2 +- .../Initializer/QuantityValidatorTest.php | 2 +- .../Initializer/StockItemTest.php | 2 +- .../Product/StockStatusBaseSelectProcessorTest.php | 2 +- .../Unit/Model/Spi/StockRegistryProviderTest.php | 2 +- .../Test/Unit/Model/Spi/StockStateProviderTest.php | 2 +- .../Test/Unit/Model/Stock/ItemTest.php | 2 +- .../Unit/Model/Stock/StockItemRepositoryTest.php | 2 +- .../Test/Unit/Model/Stock/StockRepositoryTest.php | 2 +- .../Unit/Model/Stock/StockStatusRepositoryTest.php | 2 +- .../Test/Unit/Model/StockRegistryTest.php | 2 +- .../Unit/Observer/AddInventoryDataObserverTest.php | 2 +- .../CheckoutAllSubmitAfterObserverTest.php | 2 +- .../Observer/RefundOrderInventoryObserverTest.php | 2 +- ...pdateItemsStockUponConfigChangeObserverTest.php | 2 +- .../Product/Form/Element/UseConfigSettingsTest.php | 2 +- .../Form/Modifier/AdvancedInventoryTest.php | 2 +- .../Product/Form/Element/UseConfigSettings.php | 2 +- .../Product/AddQuantityFieldToCollection.php | 2 +- .../Product/AddQuantityFilterToCollection.php | 2 +- .../Product/Form/Modifier/AdvancedInventory.php | 2 +- app/code/Magento/CatalogInventory/etc/acl.xml | 2 +- .../Magento/CatalogInventory/etc/adminhtml/di.xml | 2 +- .../CatalogInventory/etc/adminhtml/system.xml | 2 +- app/code/Magento/CatalogInventory/etc/config.xml | 2 +- app/code/Magento/CatalogInventory/etc/di.xml | 2 +- .../CatalogInventory/etc/extension_attributes.xml | 2 +- .../Magento/CatalogInventory/etc/frontend/di.xml | 2 +- app/code/Magento/CatalogInventory/etc/indexer.xml | 2 +- app/code/Magento/CatalogInventory/etc/module.xml | 2 +- app/code/Magento/CatalogInventory/etc/mview.xml | 2 +- .../Magento/CatalogInventory/etc/product_types.xml | 2 +- app/code/Magento/CatalogInventory/etc/webapi.xml | 2 +- app/code/Magento/CatalogInventory/registration.php | 2 +- .../view/adminhtml/ui_component/product_form.xml | 2 +- .../adminhtml/ui_component/product_listing.xml | 2 +- .../web/js/components/qty-validator-changer.js | 2 +- .../web/js/components/use-config-min-sale-qty.js | 2 +- .../web/js/components/use-config-settings.js | 4 ++-- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../layout/catalog_product_view_type_simple.xml | 2 +- .../layout/catalog_product_view_type_virtual.xml | 2 +- .../view/frontend/templates/qtyincrements.phtml | 2 +- .../frontend/templates/stockqty/composite.phtml | 2 +- .../view/frontend/templates/stockqty/default.phtml | 2 +- .../Api/CatalogRuleRepositoryInterface.php | 2 +- .../CatalogRule/Api/Data/ConditionInterface.php | 2 +- .../Magento/CatalogRule/Api/Data/RuleInterface.php | 2 +- .../Block/Adminhtml/Edit/DeleteButton.php | 2 +- .../Block/Adminhtml/Edit/GenericButton.php | 2 +- .../Block/Adminhtml/Edit/ResetButton.php | 2 +- .../Block/Adminhtml/Edit/SaveAndApplyButton.php | 2 +- .../Block/Adminhtml/Edit/SaveAndContinueButton.php | 2 +- .../Block/Adminhtml/Edit/SaveButton.php | 2 +- .../CatalogRule/Block/Adminhtml/Promo/Catalog.php | 2 +- .../Promo/Catalog/Edit/Tab/Conditions.php | 2 +- .../Block/Adminhtml/Promo/Widget/Chooser/Sku.php | 2 +- .../Controller/Adminhtml/Promo/Catalog.php | 2 +- .../Adminhtml/Promo/Catalog/ApplyRules.php | 2 +- .../Controller/Adminhtml/Promo/Catalog/Chooser.php | 2 +- .../Controller/Adminhtml/Promo/Catalog/Delete.php | 2 +- .../Controller/Adminhtml/Promo/Catalog/Edit.php | 2 +- .../Controller/Adminhtml/Promo/Catalog/Index.php | 2 +- .../Adminhtml/Promo/Catalog/NewAction.php | 2 +- .../Adminhtml/Promo/Catalog/NewActionHtml.php | 2 +- .../Adminhtml/Promo/Catalog/NewConditionHtml.php | 2 +- .../Controller/Adminhtml/Promo/Catalog/Save.php | 2 +- .../Controller/Adminhtml/Promo/Index.php | 2 +- .../Controller/Adminhtml/Promo/Widget.php | 2 +- .../Adminhtml/Promo/Widget/CategoriesJson.php | 2 +- .../Controller/Adminhtml/Promo/Widget/Chooser.php | 2 +- .../CatalogRule/Controller/RegistryConstants.php | 2 +- .../CatalogRule/Cron/DailyCatalogUpdate.php | 2 +- app/code/Magento/CatalogRule/Helper/Data.php | 2 +- .../CatalogRule/Model/CatalogRuleRepository.php | 2 +- .../Magento/CatalogRule/Model/Data/Condition.php | 2 +- .../CatalogRule/Model/Data/Condition/Converter.php | 2 +- app/code/Magento/CatalogRule/Model/Flag.php | 2 +- .../CatalogRule/Model/Indexer/AbstractIndexer.php | 2 +- .../CatalogRule/Model/Indexer/IndexBuilder.php | 2 +- .../Model/Indexer/IndexBuilder/ProductLoader.php | 2 +- .../Model/Indexer/Product/ProductRuleIndexer.php | 2 +- .../Model/Indexer/Product/ProductRuleProcessor.php | 2 +- .../Model/Indexer/Rule/RuleProductIndexer.php | 2 +- .../Model/Indexer/Rule/RuleProductProcessor.php | 2 +- .../CatalogRule/Model/Product/PriceModifier.php | 2 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- ...inkedProductSelectBuilderByCatalogRulePrice.php | 2 +- .../Model/ResourceModel/ReadHandler.php | 2 +- .../CatalogRule/Model/ResourceModel/Rule.php | 2 +- .../Model/ResourceModel/Rule/Collection.php | 2 +- .../Model/ResourceModel/Rule/Product/Price.php | 2 +- .../Rule/Product/Price/Collection.php | 2 +- .../Model/ResourceModel/SaveHandler.php | 2 +- app/code/Magento/CatalogRule/Model/Rule.php | 2 +- .../CatalogRule/Model/Rule/Action/Collection.php | 2 +- .../CatalogRule/Model/Rule/Action/Product.php | 2 +- .../Rule/Action/SimpleActionOptionsProvider.php | 2 +- .../CatalogRule/Model/Rule/Condition/Combine.php | 2 +- .../CatalogRule/Model/Rule/Condition/Product.php | 2 +- .../Model/Rule/CustomerGroupsOptionsProvider.php | 2 +- .../CatalogRule/Model/Rule/DataProvider.php | 2 +- app/code/Magento/CatalogRule/Model/Rule/Job.php | 2 +- .../CatalogRule/Model/Rule/Product/Price.php | 2 +- .../Model/Rule/WebsitesOptionsProvider.php | 2 +- .../CatalogRule/Observer/AddDirtyRulesNotice.php | 2 +- ...epareCatalogProductCollectionPricesObserver.php | 2 +- .../Observer/ProcessAdminFinalPriceObserver.php | 2 +- .../Observer/ProcessFrontFinalPriceObserver.php | 2 +- .../CatalogRule/Observer/RulePricesStorage.php | 2 +- .../CatalogRule/Plugin/Indexer/Category.php | 2 +- .../CatalogRule/Plugin/Indexer/CustomerGroup.php | 2 +- .../CatalogRule/Plugin/Indexer/ImportExport.php | 2 +- .../Plugin/Indexer/Product/Attribute.php | 2 +- .../Plugin/Indexer/Product/Save/ApplyRules.php | 2 +- .../Product/Save/ApplyRulesAfterReindex.php | 2 +- .../Magento/CatalogRule/Plugin/Indexer/Website.php | 2 +- .../CatalogRule/Plugin/Model/Product/Action.php | 2 +- .../CatalogRule/Pricing/Price/CatalogRulePrice.php | 2 +- app/code/Magento/CatalogRule/Setup/InstallData.php | 2 +- .../Magento/CatalogRule/Setup/InstallSchema.php | 2 +- .../Magento/CatalogRule/Setup/UpgradeSchema.php | 2 +- .../Unit/Block/Adminhtml/Edit/DeleteButtonTest.php | 2 +- .../Block/Adminhtml/Edit/GenericButtonTest.php | 2 +- .../Test/Unit/Cron/DailyCatalogUpdateTest.php | 2 +- .../CatalogRule/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Model/CatalogRuleRepositoryTest.php | 2 +- .../Unit/Model/Data/Condition/ConverterTest.php | 2 +- .../Unit/Model/Indexer/AbstractIndexerTest.php | 2 +- .../Indexer/IndexBuilder/ProductLoaderTest.php | 2 +- .../Test/Unit/Model/Indexer/IndexBuilderTest.php | 2 +- .../Indexer/Product/ProductRuleIndexerTest.php | 2 +- .../Model/Indexer/Rule/RuleProductIndexerTest.php | 2 +- .../Test/Unit/Model/Product/PriceModifierTest.php | 2 +- .../Unit/Model/ResourceModel/ReadHandlerTest.php | 2 +- .../Unit/Model/ResourceModel/SaveHandlerTest.php | 2 +- .../Test/Unit/Model/Rule/Condition/ProductTest.php | 2 +- .../Rule/CustomerGroupsOptionsProviderTest.php | 2 +- .../Test/Unit/Model/Rule/DataProviderTest.php | 2 +- .../CatalogRule/Test/Unit/Model/Rule/JobTest.php | 2 +- .../Model/Rule/WebsitesOptionsProviderTest.php | 2 +- .../CatalogRule/Test/Unit/Model/RuleTest.php | 2 +- .../Test/Unit/Observer/AddDirtyRulesNoticeTest.php | 2 +- .../Test/Unit/Plugin/Indexer/CategoryTest.php | 2 +- .../Test/Unit/Plugin/Indexer/CustomerGroupTest.php | 2 +- .../Test/Unit/Plugin/Indexer/ImportExportTest.php | 2 +- .../Test/Unit/Plugin/Indexer/WebsiteTest.php | 2 +- .../Test/Unit/Plugin/Model/Product/ActionTest.php | 2 +- .../Unit/Pricing/Price/CatalogRulePriceTest.php | 2 +- app/code/Magento/CatalogRule/etc/acl.xml | 2 +- app/code/Magento/CatalogRule/etc/adminhtml/di.xml | 2 +- .../Magento/CatalogRule/etc/adminhtml/events.xml | 2 +- .../Magento/CatalogRule/etc/adminhtml/menu.xml | 2 +- .../Magento/CatalogRule/etc/adminhtml/routes.xml | 2 +- app/code/Magento/CatalogRule/etc/crontab.xml | 2 +- .../Magento/CatalogRule/etc/crontab/events.xml | 2 +- app/code/Magento/CatalogRule/etc/di.xml | 2 +- app/code/Magento/CatalogRule/etc/events.xml | 2 +- .../Magento/CatalogRule/etc/frontend/events.xml | 2 +- app/code/Magento/CatalogRule/etc/indexer.xml | 2 +- app/code/Magento/CatalogRule/etc/module.xml | 2 +- app/code/Magento/CatalogRule/etc/mview.xml | 2 +- .../Magento/CatalogRule/etc/webapi_rest/di.xml | 2 +- .../Magento/CatalogRule/etc/webapi_rest/events.xml | 2 +- .../Magento/CatalogRule/etc/webapi_soap/events.xml | 2 +- app/code/Magento/CatalogRule/registration.php | 2 +- .../layout/catalog_rule_promo_catalog_block.xml | 2 +- .../layout/catalog_rule_promo_catalog_edit.xml | 2 +- .../layout/catalog_rule_promo_catalog_index.xml | 2 +- .../view/adminhtml/templates/promo/fieldset.phtml | 2 +- .../view/adminhtml/templates/promo/form.phtml | 2 +- .../adminhtml/ui_component/catalog_rule_form.xml | 2 +- .../Model/ConfigurableProductsProvider.php | 2 +- .../Model/Indexer/ProductRuleReindex.php | 2 +- .../Model/Rule/ConfigurableProductHandler.php | 2 +- .../Plugin/CatalogRule/Model/Rule/Validation.php | 2 +- .../Model/ResourceModel/AddCatalogRulePrice.php | 2 +- .../Model/Rule/ConfigurableProductHandlerTest.php | 2 +- .../CatalogRule/Model/Rule/ValidationTest.php | 2 +- .../CatalogRuleConfigurable/etc/adminhtml/di.xml | 2 +- .../CatalogRuleConfigurable/etc/crontab/di.xml | 2 +- .../Magento/CatalogRuleConfigurable/etc/di.xml | 2 +- .../Magento/CatalogRuleConfigurable/etc/module.xml | 2 +- .../CatalogRuleConfigurable/registration.php | 2 +- .../Magento/CatalogSearch/Block/Advanced/Form.php | 2 +- .../CatalogSearch/Block/Advanced/Result.php | 2 +- .../CatalogSearch/Block/Plugin/FrontTabPlugin.php | 2 +- app/code/Magento/CatalogSearch/Block/Result.php | 2 +- .../CatalogSearch/Controller/Advanced/Index.php | 2 +- .../CatalogSearch/Controller/Advanced/Result.php | 2 +- .../CatalogSearch/Controller/Result/Index.php | 2 +- app/code/Magento/CatalogSearch/Helper/Data.php | 2 +- .../Adapter/Aggregation/AggregationResolver.php | 2 +- .../Adapter/Mysql/Aggregation/DataProvider.php | 2 +- .../Model/Adapter/Mysql/Dynamic/DataProvider.php | 2 +- .../Model/Adapter/Mysql/Field/Resolver.php | 2 +- .../Plugin/Aggregation/Category/DataProvider.php | 2 +- .../CatalogSearch/Model/Adapter/Options.php | 2 +- .../Adminhtml/System/Config/Backend/Engine.php | 2 +- app/code/Magento/CatalogSearch/Model/Advanced.php | 2 +- .../Model/Advanced/Request/Builder.php | 2 +- .../Model/Autocomplete/DataProvider.php | 2 +- app/code/Magento/CatalogSearch/Model/Fulltext.php | 2 +- .../CatalogSearch/Model/Indexer/Fulltext.php | 2 +- .../Model/Indexer/Fulltext/Action/DataProvider.php | 2 +- .../Model/Indexer/Fulltext/Action/Full.php | 2 +- .../Indexer/Fulltext/Action/IndexIterator.php | 2 +- .../Indexer/Fulltext/Plugin/AbstractPlugin.php | 2 +- .../Model/Indexer/Fulltext/Plugin/Attribute.php | 2 +- .../Model/Indexer/Fulltext/Plugin/Category.php | 2 +- .../Model/Indexer/Fulltext/Plugin/Product.php | 2 +- .../Indexer/Fulltext/Plugin/Product/Action.php | 2 +- .../Model/Indexer/Fulltext/Plugin/Store/Group.php | 2 +- .../Model/Indexer/Fulltext/Plugin/Store/View.php | 2 +- .../Model/Indexer/Fulltext/Processor.php | 2 +- .../CatalogSearch/Model/Indexer/Fulltext/Store.php | 2 +- .../CatalogSearch/Model/Indexer/IndexStructure.php | 2 +- .../Model/Indexer/IndexStructureFactory.php | 2 +- .../Model/Indexer/IndexStructureProxy.php | 2 +- .../CatalogSearch/Model/Indexer/IndexerHandler.php | 2 +- .../Model/Indexer/IndexerHandlerFactory.php | 2 +- .../CatalogSearch/Model/Indexer/Mview/Action.php | 2 +- .../Model/Indexer/ParentProductsResolver.php | 2 +- .../Model/Indexer/ProductFieldset.php | 2 +- .../Layer/Category/ItemCollectionProvider.php | 2 +- .../CatalogSearch/Model/Layer/Filter/Attribute.php | 2 +- .../CatalogSearch/Model/Layer/Filter/Category.php | 2 +- .../CatalogSearch/Model/Layer/Filter/Decimal.php | 2 +- .../CatalogSearch/Model/Layer/Filter/Price.php | 2 +- .../Model/Layer/Search/Plugin/CollectionFilter.php | 2 +- .../CatalogSearch/Model/Layer/Search/StateKey.php | 2 +- .../Magento/CatalogSearch/Model/Price/Interval.php | 2 +- .../CatalogSearch/Model/ResourceModel/Advanced.php | 2 +- .../Model/ResourceModel/Advanced/Collection.php | 2 +- .../CatalogSearch/Model/ResourceModel/Engine.php | 2 +- .../Model/ResourceModel/EngineInterface.php | 2 +- .../Model/ResourceModel/EngineProvider.php | 2 +- .../CatalogSearch/Model/ResourceModel/Fulltext.php | 2 +- .../Model/ResourceModel/Search/Collection.php | 2 +- .../Magento/CatalogSearch/Model/Search/Catalog.php | 2 +- .../Model/Search/FilterMapper/FilterContext.php | 2 +- .../FilterMapper/FilterStrategyInterface.php | 2 +- .../FilterMapper/StaticAttributeStrategy.php | 2 +- .../Search/FilterMapper/TermDropdownStrategy.php | 2 +- .../CatalogSearch/Model/Search/IndexBuilder.php | 2 +- .../CatalogSearch/Model/Search/ReaderPlugin.php | 2 +- .../Model/Search/RequestGenerator.php | 2 +- .../Model/Search/RequestGenerator/Decimal.php | 2 +- .../Model/Search/RequestGenerator/General.php | 2 +- .../Search/RequestGenerator/GeneratorInterface.php | 2 +- .../Search/RequestGenerator/GeneratorResolver.php | 2 +- .../CatalogSearch/Model/Search/TableMapper.php | 2 +- .../Magento/CatalogSearch/Model/Source/Weight.php | 2 +- .../Magento/CatalogSearch/Setup/InstallData.php | 2 +- .../Magento/CatalogSearch/Setup/InstallSchema.php | 2 +- .../CatalogSearch/Test/Unit/Block/ResultTest.php | 2 +- .../Test/Unit/Controller/Advanced/ResultTest.php | 2 +- .../Aggregation/AggregationResolverTest.php | 2 +- .../Test/Unit/Model/Adapter/OptionsTest.php | 2 +- .../Unit/Model/Advanced/Request/BuilderTest.php | 2 +- .../CatalogSearch/Test/Unit/Model/AdvancedTest.php | 2 +- .../Unit/Model/Autocomplete/DataProviderTest.php | 2 +- .../Model/Indexer/Fulltext/Action/FullTest.php | 2 +- .../Indexer/Fulltext/Plugin/AttributeTest.php | 2 +- .../Model/Indexer/Fulltext/Plugin/CategoryTest.php | 2 +- .../Indexer/Fulltext/Plugin/Product/ActionTest.php | 2 +- .../Model/Indexer/Fulltext/Plugin/ProductTest.php | 2 +- .../Indexer/Fulltext/Plugin/Store/GroupTest.php | 2 +- .../Indexer/Fulltext/Plugin/Store/ViewTest.php | 2 +- .../Test/Unit/Model/Indexer/FulltextTest.php | 2 +- .../Model/Indexer/IndexerHandlerFactoryTest.php | 2 +- .../Model/Indexer/ParentProductsResolverTest.php | 2 +- .../Layer/Catalog/ItemCollectionProviderTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/AttributeTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/CategoryTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/DecimalTest.php | 2 +- .../Test/Unit/Model/Layer/Filter/PriceTest.php | 2 +- .../ResourceModel/Advanced/CollectionTest.php | 2 +- .../Test/Unit/Model/ResourceModel/AdvancedTest.php | 2 +- .../Model/ResourceModel/BaseCollectionTest.php | 2 +- .../Test/Unit/Model/ResourceModel/EngineTest.php | 2 +- .../ResourceModel/Fulltext/CollectionTest.php | 2 +- .../Test/Unit/Model/ResourceModel/FulltextTest.php | 2 +- .../Search/FilterMapper/FilterContextTest.php | 2 +- .../Test/Unit/Model/Search/IndexBuilderTest.php | 2 +- .../Model/Search/Indexer/IndexStructureTest.php | 2 +- .../Test/Unit/Model/Search/ReaderPluginTest.php | 2 +- .../Model/Search/RequestGenerator/DecimalTest.php | 2 +- .../Model/Search/RequestGenerator/GeneralTest.php | 2 +- .../RequestGenerator/GeneratorResolverTest.php | 2 +- .../Unit/Model/Search/RequestGeneratorTest.php | 2 +- .../Test/Unit/Model/Search/TableMapperTest.php | 2 +- app/code/Magento/CatalogSearch/etc/acl.xml | 2 +- .../Magento/CatalogSearch/etc/adminhtml/di.xml | 2 +- .../Magento/CatalogSearch/etc/adminhtml/system.xml | 2 +- .../CatalogSearch/etc/catalog_attributes.xml | 2 +- app/code/Magento/CatalogSearch/etc/config.xml | 2 +- app/code/Magento/CatalogSearch/etc/di.xml | 2 +- app/code/Magento/CatalogSearch/etc/events.xml | 2 +- app/code/Magento/CatalogSearch/etc/frontend/di.xml | 2 +- .../CatalogSearch/etc/frontend/page_types.xml | 2 +- .../Magento/CatalogSearch/etc/frontend/routes.xml | 2 +- app/code/Magento/CatalogSearch/etc/indexer.xml | 2 +- app/code/Magento/CatalogSearch/etc/module.xml | 2 +- app/code/Magento/CatalogSearch/etc/mview.xml | 2 +- .../Magento/CatalogSearch/etc/search_request.xml | 2 +- app/code/Magento/CatalogSearch/registration.php | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../layout/catalogsearch_advanced_index.xml | 2 +- .../layout/catalogsearch_advanced_result.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../CatalogSearch/view/frontend/layout/default.xml | 2 +- .../view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/advanced/form.phtml | 2 +- .../view/frontend/templates/advanced/link.phtml | 2 +- .../view/frontend/templates/advanced/result.phtml | 2 +- .../view/frontend/templates/result.phtml | 2 +- .../CatalogUrlRewrite/Block/UrlKeyRenderer.php | 2 +- .../Category/CanonicalUrlRewriteGenerator.php | 2 +- .../Model/Category/ChildrenCategoriesProvider.php | 2 +- .../Model/Category/ChildrenUrlRewriteGenerator.php | 2 +- .../Category/CurrentUrlRewritesRegenerator.php | 2 +- .../Model/Category/Plugin/Category/Move.php | 2 +- .../Model/Category/Plugin/Category/Remove.php | 2 +- .../Model/Category/Plugin/Storage.php | 2 +- .../Model/Category/Plugin/Store/Group.php | 2 +- .../Model/Category/Plugin/Store/View.php | 2 +- .../CatalogUrlRewrite/Model/Category/Product.php | 2 +- .../Model/CategoryBasedProductRewriteGenerator.php | 2 +- .../Model/CategoryProductUrlPathGenerator.php | 2 +- .../Model/CategoryUrlPathGenerator.php | 2 +- .../Model/CategoryUrlRewriteGenerator.php | 2 +- .../Model/Map/DataCategoryHashMap.php | 2 +- .../Map/DataCategoryUrlRewriteDatabaseMap.php | 2 +- .../Map/DataCategoryUsedInProductsHashMap.php | 2 +- .../Model/Map/DataProductHashMap.php | 2 +- .../Model/Map/DataProductUrlRewriteDatabaseMap.php | 2 +- .../Model/Map/DatabaseMapInterface.php | 2 +- .../Model/Map/DatabaseMapPool.php | 2 +- .../Model/Map/HashMapInterface.php | 2 +- .../CatalogUrlRewrite/Model/Map/HashMapPool.php | 2 +- .../Model/Map/UrlRewriteFinder.php | 2 +- .../CatalogUrlRewrite/Model/ObjectRegistry.php | 2 +- .../Model/Product/AnchorUrlRewriteGenerator.php | 2 +- .../Model/Product/CanonicalUrlRewriteGenerator.php | 2 +- .../Product/CategoriesUrlRewriteGenerator.php | 2 +- .../Product/CurrentUrlRewritesRegenerator.php | 2 +- .../Model/ProductScopeRewriteGenerator.php | 2 +- .../Model/ProductUrlPathGenerator.php | 2 +- .../Model/ProductUrlRewriteGenerator.php | 2 +- .../Model/ResourceModel/Category/Product.php | 2 +- .../ResourceModel/Category/ProductCollection.php | 2 +- .../CatalogUrlRewrite/Model/Storage/DbStorage.php | 2 +- .../Model/UrlRewriteBunchReplacer.php | 2 +- .../Observer/AfterImportDataObserver.php | 2 +- .../CategoryProcessUrlRewriteMovingObserver.php | 2 +- .../CategoryProcessUrlRewriteSavingObserver.php | 2 +- .../CategorySaveRewritesHistorySetterObserver.php | 2 +- .../CategoryUrlPathAutogeneratorObserver.php | 2 +- .../Observer/ClearProductUrlsObserver.php | 2 +- .../ProductProcessUrlRewriteRemovingObserver.php | 2 +- .../ProductProcessUrlRewriteSavingObserver.php | 2 +- .../Observer/ProductToWebsiteChangeObserver.php | 2 +- .../ProductUrlKeyAutogeneratorObserver.php | 2 +- .../Observer/UrlRewriteHandler.php | 2 +- .../Block/Adminhtml/Category/Tab/Attributes.php | 2 +- .../Adminhtml/Product/Edit/Tab/Attributes.php | 2 +- .../Adminhtml/Product/Initialization/Helper.php | 2 +- .../Service/V1/StoreViewService.php | 2 +- .../CatalogUrlRewrite/Setup/InstallData.php | 2 +- .../CatalogUrlRewrite/Setup/InstallSchema.php | 2 +- .../Magento/CatalogUrlRewrite/Setup/Recurring.php | 2 +- .../Category/CanonicalUrlRewriteGeneratorTest.php | 2 +- .../Category/ChildrenCategoriesProviderTest.php | 2 +- .../Category/ChildrenUrlRewriteGeneratorTest.php | 2 +- .../Category/CurrentUrlRewritesRegeneratorTest.php | 2 +- .../Unit/Model/Category/Plugin/StorageTest.php | 2 +- .../CategoryBasedProductRewriteGeneratorTest.php | 2 +- .../Model/CategoryProductUrlPathGeneratorTest.php | 2 +- .../Unit/Model/CategoryUrlPathGeneratorTest.php | 2 +- .../Unit/Model/CategoryUrlRewriteGeneratorTest.php | 2 +- .../Unit/Model/Map/DataCategoryHashMapTest.php | 2 +- .../Map/DataCategoryUrlRewriteDatabaseMapTest.php | 2 +- .../Map/DataCategoryUsedInProductsHashMapTest.php | 2 +- .../Test/Unit/Model/Map/DataProductHashMapTest.php | 2 +- .../Map/DataProductUrlRewriteDatabaseMapTest.php | 2 +- .../Test/Unit/Model/Map/DatabaseMapPoolTest.php | 2 +- .../Test/Unit/Model/Map/HashMapPoolTest.php | 2 +- .../Test/Unit/Model/Map/UrlRewriteFinderTest.php | 2 +- .../Test/Unit/Model/ObjectRegistryTest.php | 2 +- .../Product/CanonicalUrlRewriteGeneratorTest.php | 2 +- .../Product/CategoriesUrlRewriteGeneratorTest.php | 2 +- .../Product/CurrentUrlRewritesRegeneratorTest.php | 2 +- .../Model/ProductScopeRewriteGeneratorTest.php | 2 +- .../Unit/Model/ProductUrlPathGeneratorTest.php | 2 +- .../Unit/Model/ProductUrlRewriteGeneratorTest.php | 2 +- .../Unit/Model/UrlRewriteBunchReplacerTest.php | 2 +- .../_files/categoryUrlRewritesDataProvider.php | 2 +- .../Unit/Observer/AfterImportDataObserverTest.php | 2 +- ...CategoryProcessUrlRewriteMovingObserverTest.php | 2 +- ...CategoryProcessUrlRewriteSavingObserverTest.php | 2 +- .../CategoryUrlPathAutogeneratorObserverTest.php | 2 +- .../Unit/Observer/ClearProductUrlsObserverTest.php | 2 +- .../ProductProcessUrlRewriteSavingObserverTest.php | 2 +- .../Test/Unit/Observer/UrlRewriteHandlerTest.php | 2 +- .../Test/Unit/Service/V1/StoreViewServiceTest.php | 2 +- .../Form/Modifier/ProductUrlRewriteTest.php | 2 +- .../Product/Form/Modifier/ProductUrlRewrite.php | 2 +- .../Magento/CatalogUrlRewrite/etc/adminhtml/di.xml | 2 +- .../CatalogUrlRewrite/etc/adminhtml/events.xml | 2 +- .../CatalogUrlRewrite/etc/adminhtml/system.xml | 2 +- .../CatalogUrlRewrite/etc/catalog_attributes.xml | 2 +- app/code/Magento/CatalogUrlRewrite/etc/di.xml | 2 +- .../CatalogUrlRewrite/etc/eav_attributes.xml | 2 +- app/code/Magento/CatalogUrlRewrite/etc/events.xml | 2 +- app/code/Magento/CatalogUrlRewrite/etc/module.xml | 2 +- .../Magento/CatalogUrlRewrite/registration.php | 2 +- .../view/adminhtml/ui_component/category_form.xml | 2 +- .../CatalogWidget/Block/Product/ProductsList.php | 2 +- .../Block/Product/Widget/Conditions.php | 2 +- .../Controller/Adminhtml/Product/Widget.php | 2 +- .../Adminhtml/Product/Widget/Conditions.php | 2 +- app/code/Magento/CatalogWidget/Model/Rule.php | 2 +- .../CatalogWidget/Model/Rule/Condition/Combine.php | 2 +- .../CatalogWidget/Model/Rule/Condition/Product.php | 2 +- .../Test/Unit/Block/Product/ProductsListTest.php | 2 +- .../Unit/Block/Product/Widget/ConditionsTest.php | 2 +- .../Adminhtml/Product/Widget/ConditionsTest.php | 2 +- .../Test/Unit/Model/Rule/Condition/CombineTest.php | 2 +- .../CatalogWidget/Test/Unit/Model/RuleTest.php | 2 +- .../Magento/CatalogWidget/etc/adminhtml/routes.xml | 2 +- app/code/Magento/CatalogWidget/etc/module.xml | 2 +- app/code/Magento/CatalogWidget/etc/widget.xml | 2 +- app/code/Magento/CatalogWidget/registration.php | 2 +- .../templates/product/widget/conditions.phtml | 2 +- .../templates/product/widget/content/grid.phtml | 2 +- .../Checkout/Api/AgreementsValidatorInterface.php | 2 +- .../Checkout/Api/Data/PaymentDetailsInterface.php | 2 +- .../Api/Data/ShippingInformationInterface.php | 2 +- .../Api/Data/TotalsInformationInterface.php | 2 +- .../GuestPaymentInformationManagementInterface.php | 2 +- ...GuestShippingInformationManagementInterface.php | 2 +- .../GuestTotalsInformationManagementInterface.php | 2 +- .../Api/PaymentInformationManagementInterface.php | 2 +- .../Api/ShippingInformationManagementInterface.php | 2 +- .../Api/TotalsInformationManagementInterface.php | 2 +- .../Magento/Checkout/Block/Adminhtml/CartTab.php | 2 +- app/code/Magento/Checkout/Block/Cart.php | 2 +- .../Magento/Checkout/Block/Cart/AbstractCart.php | 2 +- .../Checkout/Block/Cart/Additional/Info.php | 2 +- .../Checkout/Block/Cart/CartTotalsProcessor.php | 2 +- app/code/Magento/Checkout/Block/Cart/Coupon.php | 2 +- app/code/Magento/Checkout/Block/Cart/Crosssell.php | 2 +- app/code/Magento/Checkout/Block/Cart/Grid.php | 2 +- .../Magento/Checkout/Block/Cart/Item/Configure.php | 2 +- .../Magento/Checkout/Block/Cart/Item/Renderer.php | 2 +- .../Checkout/Block/Cart/Item/Renderer/Actions.php | 2 +- .../Block/Cart/Item/Renderer/Actions/Edit.php | 2 +- .../Block/Cart/Item/Renderer/Actions/Generic.php | 2 +- .../Block/Cart/Item/Renderer/Actions/Remove.php | 2 +- .../Checkout/Block/Cart/LayoutProcessor.php | 2 +- app/code/Magento/Checkout/Block/Cart/Link.php | 2 +- app/code/Magento/Checkout/Block/Cart/Shipping.php | 2 +- app/code/Magento/Checkout/Block/Cart/Sidebar.php | 2 +- app/code/Magento/Checkout/Block/Cart/Totals.php | 2 +- .../Checkout/Block/Cart/ValidationMessages.php | 2 +- .../Checkout/Block/Checkout/AttributeMerger.php | 2 +- .../Block/Checkout/DirectoryDataProcessor.php | 2 +- .../Checkout/Block/Checkout/LayoutProcessor.php | 2 +- .../Block/Checkout/LayoutProcessorInterface.php | 2 +- .../Checkout/Block/Checkout/TotalsProcessor.php | 2 +- .../Magento/Checkout/Block/Item/Price/Renderer.php | 2 +- app/code/Magento/Checkout/Block/Link.php | 2 +- app/code/Magento/Checkout/Block/Onepage.php | 2 +- .../Magento/Checkout/Block/Onepage/Failure.php | 2 +- app/code/Magento/Checkout/Block/Onepage/Link.php | 2 +- .../Magento/Checkout/Block/Onepage/Success.php | 2 +- .../Checkout/Block/QuoteShortcutButtons.php | 2 +- app/code/Magento/Checkout/Block/Registration.php | 2 +- app/code/Magento/Checkout/Block/Shipping/Price.php | 2 +- app/code/Magento/Checkout/Block/Success.php | 2 +- .../Magento/Checkout/Block/Total/DefaultTotal.php | 2 +- .../Magento/Checkout/Controller/Account/Create.php | 2 +- app/code/Magento/Checkout/Controller/Action.php | 2 +- app/code/Magento/Checkout/Controller/Cart.php | 2 +- app/code/Magento/Checkout/Controller/Cart/Add.php | 2 +- .../Magento/Checkout/Controller/Cart/Addgroup.php | 2 +- .../Magento/Checkout/Controller/Cart/Configure.php | 2 +- .../Checkout/Controller/Cart/CouponPost.php | 2 +- .../Magento/Checkout/Controller/Cart/Delete.php | 2 +- .../Checkout/Controller/Cart/EstimatePost.php | 2 +- .../Controller/Cart/EstimateUpdatePost.php | 2 +- .../Magento/Checkout/Controller/Cart/Index.php | 2 +- .../Checkout/Controller/Cart/UpdateItemOptions.php | 2 +- .../Checkout/Controller/Cart/UpdatePost.php | 2 +- .../Controller/Express/RedirectLoginInterface.php | 2 +- .../Magento/Checkout/Controller/Index/Index.php | 2 +- .../Magento/Checkout/Controller/Noroute/Index.php | 2 +- app/code/Magento/Checkout/Controller/Onepage.php | 2 +- .../Checkout/Controller/Onepage/Failure.php | 2 +- .../Checkout/Controller/Onepage/SaveOrder.php | 2 +- .../Checkout/Controller/Onepage/Success.php | 2 +- .../Checkout/Controller/ShippingRates/Index.php | 2 +- .../Checkout/Controller/Sidebar/RemoveItem.php | 2 +- .../Checkout/Controller/Sidebar/UpdateItemQty.php | 2 +- .../Magento/Checkout/CustomerData/AbstractItem.php | 2 +- app/code/Magento/Checkout/CustomerData/Cart.php | 2 +- .../Magento/Checkout/CustomerData/DefaultItem.php | 2 +- .../Checkout/CustomerData/DirectoryData.php | 2 +- .../Checkout/CustomerData/ItemInterface.php | 2 +- .../Magento/Checkout/CustomerData/ItemPool.php | 2 +- .../Checkout/CustomerData/ItemPoolInterface.php | 2 +- app/code/Magento/Checkout/Exception.php | 2 +- app/code/Magento/Checkout/Helper/Cart.php | 2 +- app/code/Magento/Checkout/Helper/Data.php | 2 +- .../Magento/Checkout/Helper/ExpressRedirect.php | 2 +- .../Adminhtml/BillingAddressDisplayOptions.php | 2 +- .../Magento/Checkout/Model/AgreementsValidator.php | 2 +- app/code/Magento/Checkout/Model/Cart.php | 2 +- .../Magento/Checkout/Model/Cart/CartInterface.php | 2 +- .../Model/Cart/CheckoutSummaryConfigProvider.php | 2 +- .../Magento/Checkout/Model/Cart/CollectQuote.php | 2 +- .../Magento/Checkout/Model/Cart/ImageProvider.php | 2 +- .../Checkout/Model/Cart/RequestInfoFilter.php | 2 +- .../Model/Cart/RequestInfoFilterComposite.php | 2 +- .../Model/Cart/RequestInfoFilterInterface.php | 2 +- .../Checkout/Model/CompositeConfigProvider.php | 2 +- .../Checkout/Model/Config/Source/Cart/Summary.php | 2 +- .../Checkout/Model/ConfigProviderInterface.php | 2 +- .../Checkout/Model/DefaultConfigProvider.php | 2 +- .../Model/GuestShippingInformationManagement.php | 2 +- .../Model/GuestTotalsInformationManagement.php | 2 +- .../Model/Layout/AbstractTotalsProcessor.php | 2 +- .../Checkout/Model/Layout/DepersonalizePlugin.php | 2 +- app/code/Magento/Checkout/Model/PaymentDetails.php | 2 +- .../Model/PaymentInformationManagement.php | 2 +- .../Magento/Checkout/Model/ResourceModel/Cart.php | 2 +- app/code/Magento/Checkout/Model/Session.php | 2 +- .../Checkout/Model/Session/SuccessValidator.php | 2 +- .../Magento/Checkout/Model/ShippingInformation.php | 2 +- .../Model/ShippingInformationManagement.php | 2 +- app/code/Magento/Checkout/Model/Sidebar.php | 2 +- .../Magento/Checkout/Model/TotalsInformation.php | 2 +- .../Checkout/Model/TotalsInformationManagement.php | 2 +- app/code/Magento/Checkout/Model/Type/Onepage.php | 2 +- .../Observer/LoadCustomerQuoteObserver.php | 2 +- .../Observer/SalesQuoteSaveAfterObserver.php | 2 +- .../Magento/Checkout/Observer/UnsetAllObserver.php | 2 +- app/code/Magento/Checkout/Setup/InstallData.php | 2 +- .../Test/Unit/Block/Cart/AbstractCartTest.php | 2 +- .../Unit/Block/Cart/CartTotalsProcessorTest.php | 2 +- .../Checkout/Test/Unit/Block/Cart/GridTest.php | 2 +- .../Block/Cart/Item/Renderer/Actions/EditTest.php | 2 +- .../Cart/Item/Renderer/Actions/GenericTest.php | 2 +- .../Cart/Item/Renderer/Actions/RemoveTest.php | 2 +- .../Unit/Block/Cart/Item/Renderer/ActionsTest.php | 2 +- .../Test/Unit/Block/Cart/Item/RendererTest.php | 2 +- .../Test/Unit/Block/Cart/LayoutProcessorTest.php | 2 +- .../Checkout/Test/Unit/Block/Cart/LinkTest.php | 2 +- .../Checkout/Test/Unit/Block/Cart/ShippingTest.php | 2 +- .../Checkout/Test/Unit/Block/Cart/SidebarTest.php | 2 +- .../Block/Checkout/DirectoryDataProcessorTest.php | 2 +- .../Unit/Block/Checkout/LayoutProcessorTest.php | 2 +- .../Unit/Block/Checkout/TotalsProcessorTest.php | 2 +- .../Test/Unit/Block/Item/Price/RendererTest.php | 2 +- .../Magento/Checkout/Test/Unit/Block/LinkTest.php | 2 +- .../Test/Unit/Block/Onepage/SuccessTest.php | 2 +- .../Checkout/Test/Unit/Block/OnepageTest.php | 2 +- .../Test/Unit/Block/Shipping/PriceTest.php | 2 +- .../Test/Unit/Controller/Account/CreateTest.php | 2 +- .../Test/Unit/Controller/Cart/ConfigureTest.php | 2 +- .../Test/Unit/Controller/Cart/CouponPostTest.php | 2 +- .../Test/Unit/Controller/Cart/IndexTest.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Checkout/Test/Unit/Controller/OnepageTest.php | 2 +- .../Unit/Controller/Sidebar/RemoveItemTest.php | 2 +- .../Unit/Controller/Sidebar/UpdateItemQtyTest.php | 2 +- .../Test/Unit/Controller/Stub/OnepageStub.php | 2 +- .../Checkout/Test/Unit/CustomerData/CartTest.php | 2 +- .../Test/Unit/CustomerData/DefaultItemTest.php | 2 +- .../Test/Unit/CustomerData/ItemPoolTest.php | 2 +- .../Magento/Checkout/Test/Unit/Helper/CartTest.php | 2 +- .../Magento/Checkout/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Helper/ExpressRedirectTest.php | 2 +- .../Test/Unit/Model/AgreementsValidatorTest.php | 2 +- .../Cart/CheckoutSummaryConfigProviderTest.php | 2 +- .../Test/Unit/Model/Cart/ImageProviderTest.php | 2 +- .../Model/Cart/RequestInfoFilterCompositeTest.php | 2 +- .../Test/Unit/Model/Cart/RequestInfoFilterTest.php | 2 +- .../Magento/Checkout/Test/Unit/Model/CartTest.php | 2 +- .../Unit/Model/CompositeConfigProviderTest.php | 2 +- .../Unit/Model/Config/Source/Cart/SummaryTest.php | 2 +- .../GuestShippingInformationManagementTest.php | 2 +- .../Unit/Model/Layout/DepersonalizePluginTest.php | 2 +- .../Model/PaymentInformationManagementTest.php | 2 +- .../Unit/Model/Session/SuccessValidatorTest.php | 2 +- .../Checkout/Test/Unit/Model/SessionTest.php | 2 +- .../Model/ShippingInformationManagementTest.php | 2 +- .../Checkout/Test/Unit/Model/SidebarTest.php | 2 +- .../Checkout/Test/Unit/Model/Type/OnepageTest.php | 2 +- .../Observer/LoadCustomerQuoteObserverTest.php | 2 +- .../Observer/SalesQuoteSaveAfterObserverTest.php | 2 +- .../Test/Unit/Observer/UnsetAllObserverTest.php | 2 +- app/code/Magento/Checkout/etc/adminhtml/system.xml | 2 +- app/code/Magento/Checkout/etc/config.xml | 2 +- app/code/Magento/Checkout/etc/di.xml | 2 +- app/code/Magento/Checkout/etc/email_templates.xml | 2 +- app/code/Magento/Checkout/etc/events.xml | 2 +- app/code/Magento/Checkout/etc/fieldset.xml | 2 +- app/code/Magento/Checkout/etc/frontend/di.xml | 2 +- app/code/Magento/Checkout/etc/frontend/events.xml | 2 +- .../Magento/Checkout/etc/frontend/page_types.xml | 2 +- app/code/Magento/Checkout/etc/frontend/routes.xml | 2 +- .../Magento/Checkout/etc/frontend/sections.xml | 2 +- app/code/Magento/Checkout/etc/module.xml | 2 +- app/code/Magento/Checkout/etc/webapi.xml | 2 +- app/code/Magento/Checkout/registration.php | 2 +- .../view/adminhtml/email/failed_payment.html | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../frontend/layout/checkout_cart_configure.xml | 2 +- .../layout/checkout_cart_configure_type_simple.xml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../checkout_cart_sidebar_item_price_renderers.xml | 2 +- .../checkout_cart_sidebar_item_renderers.xml | 2 +- .../checkout_cart_sidebar_total_renderers.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../layout/checkout_item_price_renderers.xml | 2 +- .../frontend/layout/checkout_onepage_failure.xml | 2 +- .../checkout_onepage_review_item_renderers.xml | 2 +- .../frontend/layout/checkout_onepage_success.xml | 2 +- .../Checkout/view/frontend/layout/default.xml | 2 +- .../view/frontend/page_layout/checkout.xml | 2 +- .../Checkout/view/frontend/requirejs-config.js | 2 +- .../Checkout/view/frontend/templates/button.phtml | 2 +- .../Checkout/view/frontend/templates/cart.phtml | 2 +- .../frontend/templates/cart/additional/info.phtml | 2 +- .../view/frontend/templates/cart/coupon.phtml | 2 +- .../view/frontend/templates/cart/form.phtml | 2 +- .../templates/cart/item/configure/updatecart.phtml | 2 +- .../frontend/templates/cart/item/default.phtml | 2 +- .../templates/cart/item/price/sidebar.phtml | 2 +- .../cart/item/renderer/actions/edit.phtml | 2 +- .../cart/item/renderer/actions/remove.phtml | 2 +- .../view/frontend/templates/cart/methods.phtml | 2 +- .../view/frontend/templates/cart/minicart.phtml | 2 +- .../view/frontend/templates/cart/noItems.phtml | 2 +- .../view/frontend/templates/cart/shipping.phtml | 2 +- .../view/frontend/templates/cart/totals.phtml | 2 +- .../view/frontend/templates/item/price/row.phtml | 2 +- .../view/frontend/templates/item/price/unit.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../Checkout/view/frontend/templates/onepage.phtml | 2 +- .../view/frontend/templates/onepage/failure.phtml | 2 +- .../view/frontend/templates/onepage/link.phtml | 2 +- .../frontend/templates/onepage/review/item.phtml | 2 +- .../onepage/review/item/price/row_excl_tax.phtml | 2 +- .../onepage/review/item/price/row_incl_tax.phtml | 2 +- .../onepage/review/item/price/unit_excl_tax.phtml | 2 +- .../onepage/review/item/price/unit_incl_tax.phtml | 2 +- .../view/frontend/templates/registration.phtml | 2 +- .../view/frontend/templates/shipping/price.phtml | 2 +- .../Checkout/view/frontend/templates/success.phtml | 2 +- .../view/frontend/templates/total/default.phtml | 2 +- .../web/js/action/create-billing-address.js | 2 +- .../web/js/action/create-shipping-address.js | 2 +- .../web/js/action/get-payment-information.js | 2 +- .../view/frontend/web/js/action/get-totals.js | 2 +- .../view/frontend/web/js/action/place-order.js | 2 +- .../frontend/web/js/action/redirect-on-success.js | 2 +- .../web/js/action/select-billing-address.js | 2 +- .../web/js/action/select-payment-method.js | 2 +- .../web/js/action/select-shipping-address.js | 2 +- .../web/js/action/select-shipping-method.js | 2 +- .../frontend/web/js/action/set-billing-address.js | 2 +- .../web/js/action/set-payment-information.js | 2 +- .../web/js/action/set-shipping-information.js | 2 +- .../Checkout/view/frontend/web/js/checkout-data.js | 2 +- .../view/frontend/web/js/checkout-loader.js | 2 +- .../view/frontend/web/js/discount-codes.js | 2 +- .../frontend/web/js/model/address-converter.js | 2 +- .../web/js/model/authentication-messages.js | 2 +- .../view/frontend/web/js/model/cart/cache.js | 2 +- .../frontend/web/js/model/cart/estimate-service.js | 2 +- .../web/js/model/cart/totals-processor/default.js | 2 +- .../web/js/model/checkout-data-resolver.js | 2 +- .../web/js/model/customer-email-validator.js | 2 +- .../view/frontend/web/js/model/error-processor.js | 2 +- .../frontend/web/js/model/full-screen-loader.js | 2 +- .../frontend/web/js/model/new-customer-address.js | 2 +- .../view/frontend/web/js/model/payment-service.js | 2 +- .../web/js/model/payment/additional-validators.js | 2 +- .../web/js/model/payment/method-converter.js | 2 +- .../frontend/web/js/model/payment/method-group.js | 2 +- .../frontend/web/js/model/payment/method-list.js | 2 +- .../frontend/web/js/model/payment/renderer-list.js | 2 +- .../view/frontend/web/js/model/place-order.js | 2 +- .../frontend/web/js/model/postcode-validator.js | 2 +- .../Checkout/view/frontend/web/js/model/quote.js | 2 +- .../frontend/web/js/model/resource-url-manager.js | 2 +- .../js/model/shipping-address/form-popup-state.js | 2 +- .../shipping-rate-processor/customer-address.js | 2 +- .../model/shipping-rate-processor/new-address.js | 2 +- .../web/js/model/shipping-rate-registry.js | 2 +- .../frontend/web/js/model/shipping-rate-service.js | 2 +- .../js/model/shipping-rates-validation-rules.js | 2 +- .../web/js/model/shipping-rates-validator.js | 2 +- .../web/js/model/shipping-save-processor.js | 2 +- .../js/model/shipping-save-processor/default.js | 2 +- .../view/frontend/web/js/model/shipping-service.js | 2 +- .../Checkout/view/frontend/web/js/model/sidebar.js | 2 +- .../view/frontend/web/js/model/step-navigator.js | 2 +- .../Checkout/view/frontend/web/js/model/totals.js | 2 +- .../view/frontend/web/js/model/url-builder.js | 2 +- .../view/frontend/web/js/proceed-to-checkout.js | 2 +- .../view/frontend/web/js/region-updater.js | 2 +- .../Checkout/view/frontend/web/js/shopping-cart.js | 2 +- .../Checkout/view/frontend/web/js/sidebar.js | 2 +- .../web/js/view/authentication-messages.js | 2 +- .../view/frontend/web/js/view/authentication.js | 2 +- .../view/frontend/web/js/view/beforePlaceOrder.js | 2 +- .../view/frontend/web/js/view/billing-address.js | 2 +- .../web/js/view/cart/shipping-estimation.js | 2 +- .../frontend/web/js/view/cart/shipping-rates.js | 2 +- .../view/frontend/web/js/view/cart/totals.js | 2 +- .../frontend/web/js/view/cart/totals/shipping.js | 2 +- .../js/view/checkout/minicart/subtotal/totals.js | 2 +- .../view/frontend/web/js/view/estimation.js | 2 +- .../frontend/web/js/view/form/element/email.js | 2 +- .../Checkout/view/frontend/web/js/view/minicart.js | 2 +- .../Checkout/view/frontend/web/js/view/payment.js | 2 +- .../view/frontend/web/js/view/payment/default.js | 2 +- .../web/js/view/payment/email-validator.js | 2 +- .../view/frontend/web/js/view/payment/list.js | 2 +- .../view/frontend/web/js/view/progress-bar.js | 2 +- .../view/frontend/web/js/view/registration.js | 2 +- .../view/frontend/web/js/view/review/actions.js | 2 +- .../frontend/web/js/view/review/actions/default.js | 2 +- .../shipping-address/address-renderer/default.js | 2 +- .../frontend/web/js/view/shipping-address/list.js | 2 +- .../frontend/web/js/view/shipping-information.js | 2 +- .../address-renderer/default.js | 2 +- .../web/js/view/shipping-information/list.js | 2 +- .../Checkout/view/frontend/web/js/view/shipping.js | 2 +- .../Checkout/view/frontend/web/js/view/sidebar.js | 2 +- .../Checkout/view/frontend/web/js/view/summary.js | 2 +- .../frontend/web/js/view/summary/abstract-total.js | 2 +- .../frontend/web/js/view/summary/cart-items.js | 2 +- .../frontend/web/js/view/summary/grand-total.js | 2 +- .../frontend/web/js/view/summary/item/details.js | 2 +- .../web/js/view/summary/item/details/subtotal.js | 2 +- .../web/js/view/summary/item/details/thumbnail.js | 2 +- .../view/frontend/web/js/view/summary/shipping.js | 2 +- .../view/frontend/web/js/view/summary/subtotal.js | 2 +- .../view/frontend/web/js/view/summary/totals.js | 2 +- .../view/frontend/web/template/authentication.html | 2 +- .../frontend/web/template/billing-address.html | 2 +- .../web/template/billing-address/details.html | 2 +- .../web/template/billing-address/form.html | 2 +- .../web/template/billing-address/list.html | 2 +- .../web/template/cart/shipping-estimation.html | 2 +- .../frontend/web/template/cart/shipping-rates.html | 2 +- .../view/frontend/web/template/cart/totals.html | 2 +- .../web/template/cart/totals/grand-total.html | 2 +- .../web/template/cart/totals/shipping.html | 2 +- .../web/template/cart/totals/subtotal.html | 2 +- .../view/frontend/web/template/estimation.html | 2 +- .../frontend/web/template/form/element/email.html | 2 +- .../frontend/web/template/minicart/content.html | 2 +- .../web/template/minicart/item/default.html | 2 +- .../frontend/web/template/minicart/item/price.html | 2 +- .../frontend/web/template/minicart/subtotal.html | 2 +- .../web/template/minicart/subtotal/totals.html | 2 +- .../view/frontend/web/template/onepage.html | 2 +- .../web/template/payment-methods/list.html | 2 +- .../view/frontend/web/template/payment.html | 2 +- .../web/template/payment/before-place-order.html | 2 +- .../web/template/payment/generic-title.html | 2 +- .../view/frontend/web/template/progress-bar.html | 2 +- .../view/frontend/web/template/registration.html | 2 +- .../view/frontend/web/template/review/actions.html | 2 +- .../web/template/review/actions/default.html | 2 +- .../shipping-address/address-renderer/default.html | 2 +- .../web/template/shipping-address/form.html | 2 +- .../web/template/shipping-address/list.html | 2 +- .../web/template/shipping-information.html | 2 +- .../address-renderer/default.html | 2 +- .../web/template/shipping-information/list.html | 2 +- .../view/frontend/web/template/shipping.html | 2 +- .../view/frontend/web/template/sidebar.html | 2 +- .../view/frontend/web/template/summary.html | 2 +- .../frontend/web/template/summary/cart-items.html | 2 +- .../frontend/web/template/summary/grand-total.html | 2 +- .../web/template/summary/item/details.html | 2 +- .../template/summary/item/details/subtotal.html | 2 +- .../template/summary/item/details/thumbnail.html | 2 +- .../frontend/web/template/summary/shipping.html | 2 +- .../frontend/web/template/summary/subtotal.html | 2 +- .../view/frontend/web/template/summary/totals.html | 2 +- .../Api/CheckoutAgreementsRepositoryInterface.php | 2 +- .../Api/Data/AgreementInterface.php | 2 +- .../Block/Adminhtml/Agreement.php | 2 +- .../Block/Adminhtml/Agreement/Edit.php | 2 +- .../Block/Adminhtml/Agreement/Edit/Form.php | 2 +- .../Block/Adminhtml/Agreement/Grid.php | 2 +- .../CheckoutAgreements/Block/Agreements.php | 2 +- .../Controller/Adminhtml/Agreement.php | 2 +- .../Controller/Adminhtml/Agreement/Delete.php | 2 +- .../Controller/Adminhtml/Agreement/Edit.php | 2 +- .../Controller/Adminhtml/Agreement/Index.php | 2 +- .../Controller/Adminhtml/Agreement/NewAction.php | 2 +- .../Controller/Adminhtml/Agreement/Save.php | 2 +- .../Magento/CheckoutAgreements/Model/Agreement.php | 2 +- .../Model/AgreementModeOptions.php | 2 +- .../Model/AgreementsConfigProvider.php | 2 +- .../Model/AgreementsProvider.php | 2 +- .../Model/AgreementsProviderInterface.php | 2 +- .../Model/AgreementsValidator.php | 2 +- .../Model/Checkout/Plugin/Validation.php | 2 +- .../Model/CheckoutAgreementsRepository.php | 2 +- .../Model/ResourceModel/Agreement.php | 2 +- .../Model/ResourceModel/Agreement/Collection.php | 2 +- .../CheckoutAgreements/Setup/InstallSchema.php | 2 +- .../CheckoutAgreements/Setup/UpgradeSchema.php | 2 +- .../Test/Unit/Block/AgreementsTest.php | 2 +- .../Test/Unit/Model/AgreementModeOptionsTest.php | 2 +- .../Test/Unit/Model/AgreementTest.php | 2 +- .../Unit/Model/AgreementsConfigProviderTest.php | 2 +- .../Test/Unit/Model/AgreementsProviderTest.php | 2 +- .../Test/Unit/Model/AgreementsValidatorTest.php | 2 +- .../Unit/Model/Checkout/Plugin/ValidationTest.php | 2 +- .../Model/CheckoutAgreementsRepositoryTest.php | 2 +- app/code/Magento/CheckoutAgreements/etc/acl.xml | 2 +- .../CheckoutAgreements/etc/adminhtml/menu.xml | 2 +- .../CheckoutAgreements/etc/adminhtml/routes.xml | 2 +- .../CheckoutAgreements/etc/adminhtml/system.xml | 2 +- app/code/Magento/CheckoutAgreements/etc/di.xml | 2 +- .../etc/extension_attributes.xml | 2 +- .../Magento/CheckoutAgreements/etc/frontend/di.xml | 2 +- app/code/Magento/CheckoutAgreements/etc/module.xml | 2 +- app/code/Magento/CheckoutAgreements/etc/webapi.xml | 2 +- .../Magento/CheckoutAgreements/registration.php | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../layout/multishipping_checkout_overview.xml | 2 +- .../view/frontend/requirejs-config.js | 2 +- .../frontend/templates/additional_agreements.phtml | 2 +- .../view/frontend/templates/agreements.phtml | 2 +- .../templates/multishipping_agreements.phtml | 2 +- .../frontend/web/js/model/agreement-validator.js | 2 +- .../frontend/web/js/model/agreements-assigner.js | 2 +- .../view/frontend/web/js/model/agreements-modal.js | 2 +- .../frontend/web/js/model/place-order-mixin.js | 2 +- .../web/js/model/set-payment-information-mixin.js | 2 +- .../frontend/web/js/view/agreement-validation.js | 2 +- .../frontend/web/js/view/checkout-agreements.js | 2 +- .../web/template/checkout/checkout-agreements.html | 2 +- .../Magento/Cms/Api/BlockRepositoryInterface.php | 2 +- app/code/Magento/Cms/Api/Data/BlockInterface.php | 2 +- .../Cms/Api/Data/BlockSearchResultsInterface.php | 2 +- app/code/Magento/Cms/Api/Data/PageInterface.php | 2 +- .../Cms/Api/Data/PageSearchResultsInterface.php | 2 +- .../Magento/Cms/Api/PageRepositoryInterface.php | 2 +- app/code/Magento/Cms/Block/Adminhtml/Block.php | 2 +- .../Cms/Block/Adminhtml/Block/Edit/BackButton.php | 2 +- .../Block/Adminhtml/Block/Edit/DeleteButton.php | 2 +- .../Block/Adminhtml/Block/Edit/GenericButton.php | 2 +- .../Cms/Block/Adminhtml/Block/Edit/ResetButton.php | 2 +- .../Adminhtml/Block/Edit/SaveAndContinueButton.php | 2 +- .../Cms/Block/Adminhtml/Block/Edit/SaveButton.php | 2 +- .../Cms/Block/Adminhtml/Block/Widget/Chooser.php | 2 +- app/code/Magento/Cms/Block/Adminhtml/Page.php | 2 +- .../Cms/Block/Adminhtml/Page/Edit/BackButton.php | 2 +- .../Cms/Block/Adminhtml/Page/Edit/DeleteButton.php | 2 +- .../Block/Adminhtml/Page/Edit/GenericButton.php | 2 +- .../Cms/Block/Adminhtml/Page/Edit/ResetButton.php | 2 +- .../Adminhtml/Page/Edit/SaveAndContinueButton.php | 2 +- .../Cms/Block/Adminhtml/Page/Edit/SaveButton.php | 2 +- app/code/Magento/Cms/Block/Adminhtml/Page/Grid.php | 2 +- .../Block/Adminhtml/Page/Grid/Renderer/Action.php | 2 +- .../Page/Grid/Renderer/Action/UrlBuilder.php | 2 +- .../Cms/Block/Adminhtml/Page/Widget/Chooser.php | 2 +- .../Cms/Block/Adminhtml/Wysiwyg/Images/Content.php | 2 +- .../Adminhtml/Wysiwyg/Images/Content/Files.php | 2 +- .../Adminhtml/Wysiwyg/Images/Content/Newfolder.php | 2 +- .../Adminhtml/Wysiwyg/Images/Content/Uploader.php | 2 +- .../Cms/Block/Adminhtml/Wysiwyg/Images/Tree.php | 2 +- app/code/Magento/Cms/Block/Block.php | 2 +- app/code/Magento/Cms/Block/Page.php | 2 +- app/code/Magento/Cms/Block/Widget/Block.php | 2 +- app/code/Magento/Cms/Block/Widget/Page/Link.php | 2 +- .../Magento/Cms/Controller/Adminhtml/Block.php | 2 +- .../Cms/Controller/Adminhtml/Block/Delete.php | 2 +- .../Cms/Controller/Adminhtml/Block/Edit.php | 2 +- .../Cms/Controller/Adminhtml/Block/Index.php | 2 +- .../Cms/Controller/Adminhtml/Block/InlineEdit.php | 2 +- .../Cms/Controller/Adminhtml/Block/MassDelete.php | 2 +- .../Cms/Controller/Adminhtml/Block/NewAction.php | 2 +- .../Cms/Controller/Adminhtml/Block/Save.php | 2 +- .../Controller/Adminhtml/Block/Widget/Chooser.php | 2 +- .../Cms/Controller/Adminhtml/Page/Delete.php | 2 +- .../Magento/Cms/Controller/Adminhtml/Page/Edit.php | 2 +- .../Cms/Controller/Adminhtml/Page/Index.php | 2 +- .../Cms/Controller/Adminhtml/Page/InlineEdit.php | 2 +- .../Cms/Controller/Adminhtml/Page/MassDelete.php | 2 +- .../Cms/Controller/Adminhtml/Page/MassDisable.php | 2 +- .../Cms/Controller/Adminhtml/Page/MassEnable.php | 2 +- .../Cms/Controller/Adminhtml/Page/NewAction.php | 2 +- .../Adminhtml/Page/PostDataProcessor.php | 2 +- .../Magento/Cms/Controller/Adminhtml/Page/Save.php | 2 +- .../Controller/Adminhtml/Page/Widget/Chooser.php | 2 +- .../Cms/Controller/Adminhtml/Wysiwyg/Directive.php | 2 +- .../Cms/Controller/Adminhtml/Wysiwyg/Images.php | 2 +- .../Adminhtml/Wysiwyg/Images/Contents.php | 2 +- .../Adminhtml/Wysiwyg/Images/DeleteFiles.php | 2 +- .../Adminhtml/Wysiwyg/Images/DeleteFolder.php | 2 +- .../Controller/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 +- .../Controller/Adminhtml/Wysiwyg/Images/Upload.php | 2 +- .../Magento/Cms/Controller/Index/DefaultIndex.php | 2 +- .../Cms/Controller/Index/DefaultNoRoute.php | 2 +- app/code/Magento/Cms/Controller/Index/Index.php | 2 +- app/code/Magento/Cms/Controller/Noroute/Index.php | 2 +- app/code/Magento/Cms/Controller/Page/View.php | 2 +- app/code/Magento/Cms/Controller/Router.php | 2 +- app/code/Magento/Cms/Helper/Page.php | 2 +- app/code/Magento/Cms/Helper/Wysiwyg/Images.php | 2 +- app/code/Magento/Cms/Model/Block.php | 2 +- app/code/Magento/Cms/Model/Block/DataProvider.php | 2 +- .../Magento/Cms/Model/Block/Source/IsActive.php | 2 +- app/code/Magento/Cms/Model/BlockRepository.php | 2 +- app/code/Magento/Cms/Model/Config/Source/Page.php | 2 +- .../Cms/Model/Config/Source/Wysiwyg/Enabled.php | 2 +- app/code/Magento/Cms/Model/Page.php | 2 +- app/code/Magento/Cms/Model/Page/DataProvider.php | 2 +- .../Magento/Cms/Model/Page/DomValidationState.php | 2 +- .../Magento/Cms/Model/Page/Source/CustomLayout.php | 2 +- .../Magento/Cms/Model/Page/Source/IsActive.php | 2 +- .../Cms/Model/Page/Source/IsActiveFilter.php | 2 +- .../Magento/Cms/Model/Page/Source/PageLayout.php | 2 +- .../Cms/Model/Page/Source/PageLayoutFilter.php | 2 +- app/code/Magento/Cms/Model/Page/Source/Theme.php | 2 +- app/code/Magento/Cms/Model/PageRepository.php | 2 +- .../Cms/Model/ResourceModel/AbstractCollection.php | 2 +- app/code/Magento/Cms/Model/ResourceModel/Block.php | 2 +- .../Cms/Model/ResourceModel/Block/Collection.php | 2 +- .../Model/ResourceModel/Block/Grid/Collection.php | 2 +- .../Block/Relation/Store/ReadHandler.php | 2 +- .../Block/Relation/Store/SaveHandler.php | 2 +- app/code/Magento/Cms/Model/ResourceModel/Page.php | 2 +- .../Cms/Model/ResourceModel/Page/Collection.php | 2 +- .../Model/ResourceModel/Page/Grid/Collection.php | 2 +- .../Page/Relation/Store/ReadHandler.php | 2 +- .../Page/Relation/Store/SaveHandler.php | 2 +- app/code/Magento/Cms/Model/Template/Filter.php | 2 +- .../Magento/Cms/Model/Template/FilterProvider.php | 2 +- app/code/Magento/Cms/Model/Wysiwyg/Config.php | 2 +- .../Magento/Cms/Model/Wysiwyg/Images/Storage.php | 2 +- .../Model/Wysiwyg/Images/Storage/Collection.php | 2 +- .../Magento/Cms/Observer/NoCookiesObserver.php | 2 +- app/code/Magento/Cms/Observer/NoRouteObserver.php | 2 +- app/code/Magento/Cms/Setup/InstallData.php | 2 +- app/code/Magento/Cms/Setup/InstallSchema.php | 2 +- app/code/Magento/Cms/Setup/UpgradeData.php | 2 +- app/code/Magento/Cms/Setup/UpgradeSchema.php | 2 +- .../Block/Adminhtml/Block/Widget/ChooserTest.php | 2 +- .../Block/Adminhtml/Page/Widget/ChooserTest.php | 2 +- app/code/Magento/Cms/Test/Unit/Block/BlockTest.php | 2 +- app/code/Magento/Cms/Test/Unit/Block/PageTest.php | 2 +- .../Cms/Test/Unit/Block/Widget/Page/LinkTest.php | 2 +- .../Adminhtml/AbstractMassActionTest.php | 2 +- .../Unit/Controller/Adminhtml/Block/DeleteTest.php | 2 +- .../Unit/Controller/Adminhtml/Block/EditTest.php | 2 +- .../Controller/Adminhtml/Block/MassDeleteTest.php | 2 +- .../Unit/Controller/Adminhtml/Block/SaveTest.php | 2 +- .../Unit/Controller/Adminhtml/Page/DeleteTest.php | 2 +- .../Unit/Controller/Adminhtml/Page/EditTest.php | 2 +- .../Controller/Adminhtml/Page/InlineEditTest.php | 2 +- .../Controller/Adminhtml/Page/MassDeleteTest.php | 2 +- .../Controller/Adminhtml/Page/MassDisableTest.php | 2 +- .../Controller/Adminhtml/Page/MassEnableTest.php | 2 +- .../Unit/Controller/Adminhtml/Page/SaveTest.php | 2 +- .../Controller/Adminhtml/Wysiwyg/DirectiveTest.php | 2 +- .../Test/Unit/Controller/Block/InlineEditTest.php | 2 +- .../Cms/Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Cms/Test/Unit/Controller/Noroute/IndexTest.php | 2 +- .../Unit/Controller/Page/PostDataProcessorTest.php | 2 +- .../Cms/Test/Unit/Controller/Page/ViewTest.php | 2 +- .../Cms/Test/Unit/Controller/RouterTest.php | 2 +- app/code/Magento/Cms/Test/Unit/Helper/PageTest.php | 2 +- .../Cms/Test/Unit/Helper/Wysiwyg/ImagesTest.php | 2 +- .../Test/Unit/Model/Block/Source/IsActiveTest.php | 2 +- .../Cms/Test/Unit/Model/BlockRepositoryTest.php | 2 +- .../Cms/Test/Unit/Model/Config/Source/PageTest.php | 2 +- .../Unit/Model/Page/Source/CustomLayoutTest.php | 2 +- .../Unit/Model/Page/Source/IsActiveFilterTest.php | 2 +- .../Test/Unit/Model/Page/Source/IsActiveTest.php | 2 +- .../Model/Page/Source/PageLayoutFilterTest.php | 2 +- .../Test/Unit/Model/Page/Source/PageLayoutTest.php | 2 +- .../Cms/Test/Unit/Model/Page/Source/ThemeTest.php | 2 +- .../Cms/Test/Unit/Model/PageRepositoryTest.php | 2 +- app/code/Magento/Cms/Test/Unit/Model/PageTest.php | 2 +- .../Model/ResourceModel/AbstractCollectionTest.php | 2 +- .../Model/ResourceModel/Block/CollectionTest.php | 2 +- .../Block/Relation/Store/ReadHandlerTest.php | 2 +- .../Block/Relation/Store/SaveHandlerTest.php | 2 +- .../Model/ResourceModel/Page/CollectionTest.php | 2 +- .../ResourceModel/Page/Grid/CollectionTest.php | 2 +- .../Page/Relation/Store/ReadHandlerTest.php | 2 +- .../Page/Relation/Store/SaveHandlerTest.php | 2 +- .../Cms/Test/Unit/Model/ResourceModel/PageTest.php | 2 +- .../Unit/Model/Template/FilterProviderTest.php | 2 +- .../Cms/Test/Unit/Model/Template/FilterTest.php | 2 +- .../Cms/Test/Unit/Model/Wysiwyg/ConfigTest.php | 2 +- .../Test/Unit/Model/Wysiwyg/Images/StorageTest.php | 2 +- .../Test/Unit/Observer/NoCookiesObserverTest.php | 2 +- .../Cms/Test/Unit/Observer/NoRouteObserverTest.php | 2 +- .../Component/Listing/Column/BlockActionsTest.php | 2 +- .../Component/Listing/Column/Cms/OptionsTest.php | 2 +- .../Component/Listing/Column/PageActionsTest.php | 2 +- app/code/Magento/Cms/Ui/Component/DataProvider.php | 2 +- .../Ui/Component/Listing/Column/BlockActions.php | 2 +- .../Ui/Component/Listing/Column/Cms/Options.php | 2 +- .../Ui/Component/Listing/Column/PageActions.php | 2 +- app/code/Magento/Cms/etc/acl.xml | 2 +- app/code/Magento/Cms/etc/adminhtml/di.xml | 2 +- app/code/Magento/Cms/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Cms/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Cms/etc/adminhtml/system.xml | 2 +- app/code/Magento/Cms/etc/config.xml | 2 +- app/code/Magento/Cms/etc/di.xml | 2 +- app/code/Magento/Cms/etc/events.xml | 2 +- app/code/Magento/Cms/etc/frontend/di.xml | 2 +- app/code/Magento/Cms/etc/frontend/events.xml | 2 +- app/code/Magento/Cms/etc/frontend/page_types.xml | 2 +- app/code/Magento/Cms/etc/frontend/routes.xml | 2 +- app/code/Magento/Cms/etc/module.xml | 2 +- app/code/Magento/Cms/etc/mview.xml | 2 +- app/code/Magento/Cms/etc/webapi.xml | 2 +- app/code/Magento/Cms/etc/widget.xml | 2 +- app/code/Magento/Cms/registration.php | 2 +- .../Cms/view/adminhtml/layout/cms_block_edit.xml | 2 +- .../Cms/view/adminhtml/layout/cms_block_index.xml | 2 +- .../Cms/view/adminhtml/layout/cms_block_new.xml | 2 +- .../Cms/view/adminhtml/layout/cms_page_edit.xml | 2 +- .../Cms/view/adminhtml/layout/cms_page_index.xml | 2 +- .../Cms/view/adminhtml/layout/cms_page_new.xml | 2 +- .../layout/cms_wysiwyg_images_contents.xml | 2 +- .../adminhtml/layout/cms_wysiwyg_images_index.xml | 2 +- .../Magento/Cms/view/adminhtml/requirejs-config.js | 2 +- .../view/adminhtml/templates/browser/content.phtml | 2 +- .../templates/browser/content/files.phtml | 2 +- .../templates/browser/content/uploader.phtml | 2 +- .../view/adminhtml/templates/browser/tree.phtml | 2 +- .../page/edit/form/renderer/content.phtml | 2 +- .../view/adminhtml/ui_component/cms_block_form.xml | 2 +- .../adminhtml/ui_component/cms_block_listing.xml | 2 +- .../view/adminhtml/ui_component/cms_page_form.xml | 2 +- .../adminhtml/ui_component/cms_page_listing.xml | 2 +- .../Cms/view/adminhtml/web/js/folder-tree.js | 2 +- .../frontend/layout/cms_index_defaultindex.xml | 2 +- .../frontend/layout/cms_index_defaultnoroute.xml | 2 +- .../Cms/view/frontend/layout/cms_index_index.xml | 2 +- .../view/frontend/layout/cms_index_nocookies.xml | 2 +- .../Cms/view/frontend/layout/cms_index_noroute.xml | 2 +- .../Cms/view/frontend/layout/cms_page_view.xml | 2 +- .../Magento/Cms/view/frontend/layout/default.xml | 2 +- .../Magento/Cms/view/frontend/layout/print.xml | 2 +- .../Cms/view/frontend/templates/content.phtml | 2 +- .../Cms/view/frontend/templates/default/home.phtml | 2 +- .../view/frontend/templates/default/no-route.phtml | 2 +- .../Magento/Cms/view/frontend/templates/meta.phtml | 2 +- .../templates/widget/link/link_block.phtml | 2 +- .../templates/widget/link/link_inline.phtml | 2 +- .../templates/widget/static_block/default.phtml | 2 +- .../Model/CmsPageUrlPathGenerator.php | 2 +- .../Model/CmsPageUrlRewriteGenerator.php | 2 +- .../Observer/ProcessUrlRewriteSavingObserver.php | 2 +- .../Plugin/Cms/Model/ResourceModel/Page.php | 2 +- .../ProcessUrlRewriteSavingObserverTest.php | 2 +- .../Plugin/Cms/Model/ResourceModel/PageTest.php | 2 +- app/code/Magento/CmsUrlRewrite/etc/di.xml | 2 +- app/code/Magento/CmsUrlRewrite/etc/events.xml | 2 +- app/code/Magento/CmsUrlRewrite/etc/module.xml | 2 +- app/code/Magento/CmsUrlRewrite/registration.php | 2 +- .../Config/Source/DumpConfigSourceAggregated.php | 2 +- .../Config/Source/DumpConfigSourceInterface.php | 2 +- .../App/Config/Source/ModularConfigSource.php | 2 +- .../App/Config/Source/RuntimeConfigSource.php | 2 +- app/code/Magento/Config/App/Config/Type/System.php | 2 +- .../Config/App/Config/Type/System/Reader.php | 2 +- .../Magento/Config/Block/System/Config/Dwstree.php | 2 +- .../Magento/Config/Block/System/Config/Edit.php | 2 +- .../Magento/Config/Block/System/Config/Form.php | 2 +- .../Config/Block/System/Config/Form/Field.php | 2 +- .../Block/System/Config/Form/Field/Datetime.php | 2 +- .../Block/System/Config/Form/Field/Factory.php | 2 +- .../Form/Field/FieldArray/AbstractFieldArray.php | 2 +- .../Config/Block/System/Config/Form/Field/File.php | 2 +- .../Block/System/Config/Form/Field/Heading.php | 2 +- .../Block/System/Config/Form/Field/Image.php | 2 +- .../System/Config/Form/Field/Notification.php | 2 +- .../System/Config/Form/Field/Regexceptions.php | 2 +- .../Config/Form/Field/Select/Allowspecific.php | 2 +- .../Config/Block/System/Config/Form/Fieldset.php | 2 +- .../Block/System/Config/Form/Fieldset/Factory.php | 2 +- .../Config/Form/Fieldset/Modules/DisableOutput.php | 2 +- .../Magento/Config/Block/System/Config/Tabs.php | 2 +- .../Controller/Adminhtml/System/AbstractConfig.php | 2 +- .../System/Config/AbstractScopeConfig.php | 2 +- .../Controller/Adminhtml/System/Config/Edit.php | 2 +- .../Controller/Adminhtml/System/Config/Index.php | 2 +- .../Controller/Adminhtml/System/Config/Save.php | 2 +- .../Controller/Adminhtml/System/Config/State.php | 2 +- .../Adminhtml/System/ConfigSectionChecker.php | 2 +- app/code/Magento/Config/Model/Config.php | 2 +- .../Config/Model/Config/Backend/Admin/Custom.php | 2 +- .../Model/Config/Backend/Admin/Custompath.php | 2 +- .../Admin/Password/Link/Expirationperiod.php | 2 +- .../Config/Model/Config/Backend/Admin/Robots.php | 2 +- .../Model/Config/Backend/Admin/Usecustom.php | 2 +- .../Model/Config/Backend/Admin/Usesecretkey.php | 2 +- .../Config/Model/Config/Backend/Baseurl.php | 2 +- .../Magento/Config/Model/Config/Backend/Cache.php | 2 +- .../Config/Backend/Currency/AbstractCurrency.php | 2 +- .../Config/Model/Config/Backend/Currency/Allow.php | 2 +- .../Config/Model/Config/Backend/Currency/Base.php | 2 +- .../Config/Model/Config/Backend/Currency/Cron.php | 2 +- .../Config/Backend/Currency/DefaultCurrency.php | 2 +- .../Config/Model/Config/Backend/Datashare.php | 2 +- .../Model/Config/Backend/Design/Exception.php | 2 +- .../Config/Model/Config/Backend/Email/Address.php | 2 +- .../Config/Model/Config/Backend/Email/Logo.php | 2 +- .../Config/Model/Config/Backend/Email/Sender.php | 2 +- .../Config/Model/Config/Backend/Encrypted.php | 2 +- .../Magento/Config/Model/Config/Backend/File.php | 2 +- .../Model/Config/Backend/File/RequestData.php | 2 +- .../File/RequestData/RequestDataInterface.php | 2 +- .../Config/Model/Config/Backend/Filename.php | 2 +- .../Magento/Config/Model/Config/Backend/Image.php | 2 +- .../Config/Model/Config/Backend/Image/Adapter.php | 2 +- .../Config/Model/Config/Backend/Image/Favicon.php | 2 +- .../Config/Model/Config/Backend/Image/Logo.php | 2 +- .../Config/Model/Config/Backend/Image/Pdf.php | 2 +- .../Magento/Config/Model/Config/Backend/Locale.php | 2 +- .../Model/Config/Backend/Locale/Timezone.php | 2 +- .../Config/Model/Config/Backend/Log/Cron.php | 2 +- .../Magento/Config/Model/Config/Backend/Secure.php | 2 +- .../Config/Model/Config/Backend/Serialized.php | 2 +- .../Config/Backend/Serialized/ArraySerialized.php | 2 +- .../Magento/Config/Model/Config/Backend/Store.php | 2 +- .../Config/Model/Config/Backend/Translate.php | 2 +- .../Config/Model/Config/BackendClone/Factory.php | 2 +- .../Magento/Config/Model/Config/BackendFactory.php | 2 +- .../Magento/Config/Model/Config/CommentFactory.php | 2 +- .../Config/Model/Config/CommentInterface.php | 2 +- .../Model/Config/Compiler/IncludeElement.php | 2 +- .../Magento/Config/Model/Config/Export/Comment.php | 2 +- .../Config/Model/Config/Export/ExcludeList.php | 2 +- app/code/Magento/Config/Model/Config/Factory.php | 2 +- app/code/Magento/Config/Model/Config/Loader.php | 2 +- .../Config/Processor/EnvironmentPlaceholder.php | 2 +- .../Reader/Source/Deployed/SettingChecker.php | 2 +- .../Magento/Config/Model/Config/SchemaLocator.php | 2 +- .../Magento/Config/Model/Config/ScopeDefiner.php | 2 +- .../Config/Model/Config/Source/Admin/Page.php | 2 +- .../Config/Model/Config/Source/Date/Short.php | 2 +- .../Config/Model/Config/Source/Design/Robots.php | 2 +- .../Config/Model/Config/Source/Dev/Dbautoup.php | 2 +- .../Config/Model/Config/Source/Email/Identity.php | 2 +- .../Config/Model/Config/Source/Email/Method.php | 2 +- .../Config/Model/Config/Source/Email/Smtpauth.php | 2 +- .../Config/Model/Config/Source/Email/Template.php | 2 +- .../Config/Model/Config/Source/Enabledisable.php | 2 +- .../Config/Model/Config/Source/Image/Adapter.php | 2 +- .../Magento/Config/Model/Config/Source/Locale.php | 2 +- .../Config/Model/Config/Source/Locale/Country.php | 2 +- .../Config/Model/Config/Source/Locale/Currency.php | 2 +- .../Model/Config/Source/Locale/Currency/All.php | 2 +- .../Config/Model/Config/Source/Locale/Timezone.php | 2 +- .../Model/Config/Source/Locale/Weekdaycodes.php | 2 +- .../Config/Model/Config/Source/Locale/Weekdays.php | 2 +- .../Config/Model/Config/Source/Nooptreq.php | 2 +- .../Config/Model/Config/Source/Reports/Scope.php | 2 +- .../Magento/Config/Model/Config/Source/Store.php | 2 +- .../Config/Model/Config/Source/Web/Protocol.php | 2 +- .../Config/Model/Config/Source/Web/Redirect.php | 2 +- .../Magento/Config/Model/Config/Source/Website.php | 2 +- .../Config/Source/Website/AdminOptionHash.php | 2 +- .../Model/Config/Source/Website/OptionHash.php | 2 +- .../Magento/Config/Model/Config/Source/Yesno.php | 2 +- .../Config/Model/Config/Source/Yesnocustom.php | 2 +- .../Magento/Config/Model/Config/SourceFactory.php | 2 +- app/code/Magento/Config/Model/Config/Structure.php | 2 +- .../Model/Config/Structure/AbstractElement.php | 2 +- .../Model/Config/Structure/AbstractMapper.php | 2 +- .../Config/Model/Config/Structure/Converter.php | 2 +- .../Magento/Config/Model/Config/Structure/Data.php | 2 +- .../Config/Structure/Element/AbstractComposite.php | 2 +- .../Config/Structure/Element/Dependency/Field.php | 2 +- .../Structure/Element/Dependency/FieldFactory.php | 2 +- .../Config/Structure/Element/Dependency/Mapper.php | 2 +- .../Model/Config/Structure/Element/Field.php | 2 +- .../Config/Structure/Element/FlyweightFactory.php | 2 +- .../Model/Config/Structure/Element/Group.php | 2 +- .../Model/Config/Structure/Element/Group/Proxy.php | 2 +- .../Model/Config/Structure/Element/Iterator.php | 2 +- .../Config/Structure/Element/Iterator/Field.php | 2 +- .../Config/Structure/Element/Iterator/Group.php | 2 +- .../Config/Structure/Element/Iterator/Section.php | 2 +- .../Config/Structure/Element/Iterator/Tab.php | 2 +- .../Model/Config/Structure/Element/Section.php | 2 +- .../Config/Model/Config/Structure/Element/Tab.php | 2 +- .../Model/Config/Structure/ElementInterface.php | 2 +- .../Structure/Mapper/Attribute/Inheritance.php | 2 +- .../Model/Config/Structure/Mapper/Dependencies.php | 2 +- .../Config/Structure/Mapper/ExtendsMapper.php | 2 +- .../Model/Config/Structure/Mapper/Factory.php | 2 +- .../Mapper/Helper/RelativePathConverter.php | 2 +- .../Model/Config/Structure/Mapper/Ignore.php | 2 +- .../Config/Model/Config/Structure/Mapper/Path.php | 2 +- .../Model/Config/Structure/Mapper/Sorting.php | 2 +- .../Model/Config/Structure/MapperInterface.php | 2 +- .../Config/Model/Config/Structure/Reader.php | 2 +- .../Config/Model/Config/Structure/Search/Proxy.php | 2 +- .../Model/Config/Structure/SearchInterface.php | 2 +- .../Config/Model/Placeholder/Environment.php | 2 +- .../Model/Placeholder/PlaceholderFactory.php | 2 +- .../Model/Placeholder/PlaceholderInterface.php | 2 +- .../Magento/Config/Model/ResourceModel/Config.php | 2 +- .../Config/Model/ResourceModel/Config/Data.php | 2 +- .../Model/ResourceModel/Config/Data/Collection.php | 2 +- .../Admin/AfterCustomUrlChangedObserver.php | 2 +- app/code/Magento/Config/Setup/InstallData.php | 2 +- app/code/Magento/Config/Setup/InstallSchema.php | 2 +- .../Source/DumpConfigSourceAggregatedTest.php | 2 +- .../App/Config/Source/ModularConfigSourceTest.php | 2 +- .../App/Config/Source/RuntimeConfigSourceTest.php | 2 +- .../Unit/App/Config/Type/System/ReaderTest.php | 2 +- .../Test/Unit/App/Config/Type/SystemTest.php | 2 +- .../Test/Unit/Block/System/Config/DwstreeTest.php | 2 +- .../Test/Unit/Block/System/Config/EditTest.php | 2 +- .../Config/Form/Field/FieldArray/AbstractTest.php | 2 +- .../Block/System/Config/Form/Field/FileTest.php | 2 +- .../Block/System/Config/Form/Field/HeadingTest.php | 2 +- .../Block/System/Config/Form/Field/ImageTest.php | 2 +- .../System/Config/Form/Field/NotificationTest.php | 2 +- .../System/Config/Form/Field/RegexceptionsTest.php | 2 +- .../Config/Form/Field/Select/AllowspecificTest.php | 2 +- .../Unit/Block/System/Config/Form/FieldTest.php | 2 +- .../Form/Fieldset/Modules/DisableOutputTest.php | 2 +- .../Unit/Block/System/Config/Form/FieldsetTest.php | 2 +- .../Test/Unit/Block/System/Config/FormTest.php | 2 +- .../Test/Unit/Block/System/Config/TabsTest.php | 2 +- .../Adminhtml/System/Config/SaveTest.php | 2 +- .../System/Config/_files/expected_array.php | 2 +- .../Adminhtml/System/Config/_files/files_array.php | 2 +- .../System/Config/_files/groups_array.php | 2 +- .../Unit/Model/Compiler/IncludeElementTest.php | 2 +- .../Test/Unit/Model/Config/Backend/BaseurlTest.php | 2 +- .../Unit/Model/Config/Backend/Email/LogoTest.php | 2 +- .../Unit/Model/Config/Backend/EncryptedTest.php | 2 +- .../Model/Config/Backend/File/RequestDataTest.php | 2 +- .../Test/Unit/Model/Config/Backend/FileTest.php | 2 +- .../Unit/Model/Config/Backend/Image/LogoTest.php | 2 +- .../Test/Unit/Model/Config/Backend/SecureTest.php | 2 +- .../Test/Unit/Model/Config/Export/CommentTest.php | 2 +- .../Unit/Model/Config/Export/ExcludeListTest.php | 2 +- .../Config/Test/Unit/Model/Config/LoaderTest.php | 2 +- .../Processor/EnvironmentPlaceholderTest.php | 2 +- .../Reader/Source/Deployed/SettingCheckerTest.php | 2 +- .../Test/Unit/Model/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Config/ScopeDefinerTest.php | 2 +- .../Unit/Model/Config/Source/Admin/PageTest.php | 2 +- .../Model/Config/Source/Email/TemplateTest.php | 2 +- .../Model/Config/Source/Locale/TimezoneTest.php | 2 +- .../Model/Config/Structure/AbstractElementTest.php | 2 +- .../Unit/Model/Config/Structure/ConverterTest.php | 2 +- .../Structure/Element/AbstractCompositeTest.php | 2 +- .../Structure/Element/Dependency/FieldTest.php | 2 +- .../Structure/Element/Dependency/MapperTest.php | 2 +- .../Model/Config/Structure/Element/FieldTest.php | 2 +- .../Structure/Element/FlyweightFactoryTest.php | 2 +- .../Config/Structure/Element/Group/ProxyTest.php | 2 +- .../Model/Config/Structure/Element/GroupTest.php | 2 +- .../Structure/Element/Iterator/FieldTest.php | 2 +- .../Config/Structure/Element/IteratorTest.php | 2 +- .../Model/Config/Structure/Element/SectionTest.php | 2 +- .../Model/Config/Structure/Element/TabTest.php | 2 +- .../Config/Structure/Mapper/DependenciesTest.php | 2 +- .../Model/Config/Structure/Mapper/ExtendsTest.php | 2 +- .../Mapper/Helper/RelativePathConverterTest.php | 2 +- .../Model/Config/Structure/Mapper/PathTest.php | 2 +- .../Model/Config/Structure/Mapper/SortingTest.php | 2 +- .../Unit/Model/Config/Structure/ReaderTest.php | 2 +- .../Test/Unit/Model/Config/StructureTest.php | 2 +- .../Config/Test/Unit/Model/Config/XsdTest.php | 2 +- .../Model/Config/_files/invalidSystemXmlArray.php | 2 +- .../Test/Unit/Model/Config/_files/valid_system.xml | 2 +- .../Magento/Config/Test/Unit/Model/ConfigTest.php | 2 +- .../Unit/Model/Placeholder/EnvironmentTest.php | 2 +- .../Model/Placeholder/PlaceholderFactoryTest.php | 2 +- .../Magento/Config/Test/Unit/Model/_files/acl.xml | 2 +- .../Config/Test/Unit/Model/_files/acl_1.xml | 2 +- .../Config/Test/Unit/Model/_files/acl_2.xml | 2 +- .../Config/Test/Unit/Model/_files/acl_merged.xml | 2 +- .../Test/Unit/Model/_files/converted_config.php | 2 +- .../Test/Unit/Model/_files/dependencies_data.php | 2 +- .../Test/Unit/Model/_files/dependencies_mapped.php | 2 +- .../Config/Test/Unit/Model/_files/menu_1.xml | 2 +- .../Config/Test/Unit/Model/_files/menu_2.xml | 2 +- .../Config/Test/Unit/Model/_files/system_1.xml | 2 +- .../Config/Test/Unit/Model/_files/system_2.xml | 2 +- .../Unit/Model/_files/system_config_options_1.xml | 2 +- .../Unit/Model/_files/system_config_options_2.xml | 2 +- .../Model/_files/system_unknown_attribute_1.xml | 2 +- .../Model/_files/system_unknown_attribute_2.xml | 2 +- app/code/Magento/Config/etc/acl.xml | 2 +- app/code/Magento/Config/etc/adminhtml/di.xml | 2 +- app/code/Magento/Config/etc/adminhtml/events.xml | 2 +- app/code/Magento/Config/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Config/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Config/etc/di.xml | 2 +- app/code/Magento/Config/etc/module.xml | 2 +- app/code/Magento/Config/etc/system.xsd | 2 +- app/code/Magento/Config/etc/system_file.xsd | 2 +- app/code/Magento/Config/etc/system_include.xsd | 2 +- app/code/Magento/Config/registration.php | 2 +- .../layout/adminhtml_system_config_edit.xml | 2 +- .../page/system/config/robots/reset.phtml | 2 +- .../adminhtml/templates/system/config/edit.phtml | 2 +- .../templates/system/config/form/field/array.phtml | 2 +- .../adminhtml/templates/system/config/js.phtml | 2 +- .../templates/system/config/switcher.phtml | 2 +- .../adminhtml/templates/system/config/tabs.phtml | 2 +- .../Model/Export/Product/Type/Configurable.php | 2 +- .../Model/Export/RowCustomizer.php | 2 +- .../Model/Import/Product/Type/Configurable.php | 2 +- .../Test/Unit/Model/Export/RowCustomizerTest.php | 2 +- .../Model/Import/Product/Type/ConfigurableTest.php | 2 +- .../Magento/ConfigurableImportExport/etc/di.xml | 2 +- .../ConfigurableImportExport/etc/export.xml | 2 +- .../ConfigurableImportExport/etc/import.xml | 2 +- .../ConfigurableImportExport/etc/module.xml | 2 +- .../ConfigurableImportExport/registration.php | 2 +- .../Api/ConfigurableProductManagementInterface.php | 2 +- .../Data/ConfigurableItemOptionValueInterface.php | 2 +- .../Api/Data/OptionInterface.php | 2 +- .../Api/Data/OptionValueInterface.php | 2 +- .../Api/LinkManagementInterface.php | 2 +- .../Api/OptionRepositoryInterface.php | 2 +- .../Block/Adminhtml/Order/Create/Sidebar.php | 2 +- .../Product/Attribute/Edit/Tab/Variations/Main.php | 2 +- .../Attribute/NewAttribute/Product/Created.php | 2 +- .../Product/Composite/Fieldset/Configurable.php | 2 +- .../Adminhtml/Product/Edit/AttributeSet/Form.php | 2 +- .../Block/Adminhtml/Product/Edit/Button/Save.php | 2 +- .../Product/Edit/Tab/Variations/Config.php | 2 +- .../Product/Edit/Tab/Variations/Config/Matrix.php | 2 +- .../Adminhtml/Product/Steps/AttributeValues.php | 2 +- .../Block/Adminhtml/Product/Steps/Bulk.php | 2 +- .../Adminhtml/Product/Steps/SelectAttributes.php | 2 +- .../Block/Adminhtml/Product/Steps/Summary.php | 2 +- .../Block/Cart/Item/Renderer/Configurable.php | 2 +- .../Block/Plugin/Product/Media/Gallery.php | 2 +- .../AssociatedSelector/Renderer/Id.php | 2 +- .../Product/Configurable/AttributeSelector.php | 2 +- .../Block/Product/View/Type/Configurable.php | 2 +- .../Block/Stockqty/Type/Configurable.php | 2 +- .../Controller/Adminhtml/Product/AddAttribute.php | 2 +- .../Adminhtml/Product/Associated/Grid.php | 2 +- .../Adminhtml/Product/Attribute/CreateOptions.php | 2 +- .../Adminhtml/Product/Attribute/GetAttributes.php | 2 +- .../Attribute/SuggestConfigurableAttributes.php | 2 +- .../Adminhtml/Product/Builder/Plugin.php | 2 +- .../Initialization/Helper/Plugin/Configurable.php | 2 +- .../Helper/Plugin/UpdateConfigurations.php | 2 +- .../Controller/Adminhtml/Product/Wizard.php | 2 +- .../CustomerData/ConfigurableItem.php | 2 +- .../Magento/ConfigurableProduct/Helper/Data.php | 2 +- .../Helper/Product/Configuration/Plugin.php | 2 +- .../Product/Configuration/SaveProductPlugin.php | 2 +- .../Helper/Product/Options/Factory.php | 2 +- .../Helper/Product/Options/Loader.php | 2 +- .../Model/Attribute/LockValidator.php | 2 +- .../Model/AttributeOptionProviderInterface.php | 2 +- .../ConfigurableProduct/Model/AttributesList.php | 2 +- .../Model/AttributesListInterface.php | 2 +- .../Model/ConfigurableAttributeData.php | 2 +- .../Model/ConfigurableAttributeHandler.php | 2 +- .../Model/ConfigurableProductManagement.php | 2 +- .../Attribute/Group/AttributeMapper/Plugin.php | 2 +- .../ConfigurableProduct/Model/LinkManagement.php | 2 +- .../ConfigurableProduct/Model/OptionRepository.php | 2 +- .../Model/Order/Admin/Item/Plugin/Configurable.php | 2 +- .../Model/Plugin/AroundProductRepositorySave.php | 2 +- .../Model/Plugin/PriceBackend.php | 2 +- .../Model/Product/Cache/Tag/Configurable.php | 2 +- .../CartConfiguration/Plugin/Configurable.php | 2 +- .../Model/Product/ReadHandler.php | 2 +- .../Model/Product/SaveHandler.php | 2 +- .../Product/Type/Collection/SalableProcessor.php | 2 +- .../Model/Product/Type/Configurable.php | 2 +- .../Model/Product/Type/Configurable/Attribute.php | 2 +- .../Product/Type/Configurable/OptionValue.php | 2 +- .../Model/Product/Type/Configurable/Price.php | 2 +- .../Model/Product/Type/Plugin.php | 2 +- .../Model/Product/Type/VariationMatrix.php | 2 +- .../TypeTransitionManager/Plugin/Configurable.php | 2 +- .../Model/Product/Validator/Plugin.php | 2 +- .../Model/Product/VariationHandler.php | 2 +- .../Model/ProductOptionProcessor.php | 2 +- .../Model/ProductVariationsBuilder.php | 2 +- .../Model/Quote/Item/CartItemProcessor.php | 2 +- .../Quote/Item/ConfigurableItemOptionValue.php | 2 +- .../Option/Plugin/ConfigurableProduct.php | 2 +- .../ResourceModel/Attribute/OptionProvider.php | 2 +- .../ResourceModel/Indexer/Stock/Configurable.php | 2 +- .../Product/Indexer/Price/Configurable.php | 2 +- .../ResourceModel/Product/Type/Configurable.php | 2 +- .../Product/Type/Configurable/Attribute.php | 2 +- .../Type/Configurable/Attribute/Collection.php | 2 +- .../Type/Configurable/Product/Collection.php | 2 +- .../Model/ResourceModel/Setup/PropertyMapper.php | 2 +- .../Model/SuggestedAttributeList.php | 2 +- .../Observer/HideUnsupportedAttributeTypes.php | 2 +- .../Attribute/Backend/AttributeValidation.php | 2 +- .../Plugin/Model/ResourceModel/Product.php | 2 +- .../Pricing/Price/ConfigurableOptionsProvider.php | 2 +- .../Price/ConfigurableOptionsProviderInterface.php | 2 +- .../Pricing/Price/ConfigurablePriceResolver.php | 2 +- .../Pricing/Price/ConfigurableRegularPrice.php | 2 +- .../Price/ConfigurableRegularPriceInterface.php | 2 +- .../Pricing/Price/FinalPrice.php | 2 +- .../Pricing/Price/FinalPriceResolver.php | 2 +- .../Pricing/Price/LowestPriceOptionsProvider.php | 2 +- .../Price/LowestPriceOptionsProviderInterface.php | 2 +- .../Pricing/Price/PriceResolverInterface.php | 2 +- .../Pricing/Price/RegularPriceResolver.php | 2 +- .../Pricing/Render/FinalPriceBox.php | 2 +- .../Pricing/Render/TierPriceBox.php | 2 +- .../ConfigurableProduct/Setup/InstallData.php | 2 +- .../ConfigurableProduct/Setup/InstallSchema.php | 2 +- .../ConfigurableProduct/Setup/Recurring.php | 2 +- .../Adminhtml/Product/Edit/Button/SaveTest.php | 2 +- .../Edit/Tab/Variations/Config/MatrixTest.php | 2 +- .../Block/Cart/Item/Renderer/ConfigurableTest.php | 2 +- .../Product/Configurable/AttributeSelectorTest.php | 2 +- .../Adminhtml/Product/AddAttributeTest.php | 2 +- .../SuggestConfigurableAttributesTest.php | 2 +- .../Adminhtml/Product/Builder/PluginTest.php | 2 +- .../Helper/Plugin/ConfigurableTest.php | 2 +- .../Helper/Plugin/UpdateConfigurationsTest.php | 2 +- .../Test/Unit/Helper/DataTest.php | 2 +- .../Helper/Product/Configuration/PluginTest.php | 2 +- .../Unit/Helper/Product/Options/FactoryTest.php | 2 +- .../Unit/Helper/Product/Options/LoaderTest.php | 2 +- .../Unit/Model/Attribute/LockValidatorTest.php | 2 +- .../Test/Unit/Model/AttributesListTest.php | 2 +- .../Unit/Model/ConfigurableAttributeDataTest.php | 2 +- .../Model/ConfigurableProductManagementTest.php | 2 +- .../Attribute/Group/AttributeMapper/PluginTest.php | 2 +- .../Test/Unit/Model/LinkManagementTest.php | 2 +- .../Test/Unit/Model/OptionRepositoryTest.php | 2 +- .../Order/Admin/Item/Plugin/ConfigurableTest.php | 2 +- .../Plugin/AroundProductRepositorySaveTest.php | 2 +- .../Test/Unit/Model/Plugin/PriceBackendTest.php | 2 +- .../Model/Product/Cache/Tag/ConfigurableTest.php | 2 +- .../CartConfiguration/Plugin/ConfigurableTest.php | 2 +- .../Model/Product/ProductExtensionAttributes.php | 2 +- .../Product/ProductOptionExtensionAttributes.php | 2 +- .../Test/Unit/Model/Product/ReadHandlerTest.php | 2 +- .../Test/Unit/Model/Product/SaveHandlerTest.php | 2 +- .../Type/Collection/SalableProcessorTest.php | 2 +- .../Model/Product/Type/Configurable/PriceTest.php | 2 +- .../Unit/Model/Product/Type/ConfigurableTest.php | 2 +- .../Test/Unit/Model/Product/Type/PluginTest.php | 2 +- .../Model/Product/Type/VariationMatrixTest.php | 2 +- .../Plugin/ConfigurableTest.php | 2 +- .../Unit/Model/Product/Validator/PluginTest.php | 2 +- .../Unit/Model/Product/VariationHandlerTest.php | 2 +- .../Test/Unit/Model/ProductOptionProcessorTest.php | 2 +- .../Unit/Model/ProductVariationsBuilderTest.php | 2 +- .../Model/Quote/Item/CartItemProcessorTest.php | 2 +- .../Option/Plugin/ConfigurableProductTest.php | 2 +- .../ResourceModel/Attribute/OptionProviderTest.php | 2 +- .../Product/Type/Configurable/AttributeTest.php | 2 +- .../Product/Type/ConfigurableTest.php | 2 +- .../Test/Unit/Model/SuggestedAttributeListTest.php | 2 +- .../Observer/HideUnsupportedAttributeTypesTest.php | 2 +- .../Plugin/Model/ResourceModel/ProductTest.php | 2 +- .../Test/Unit/Plugin/Product/Media/GalleryTest.php | 2 +- .../Price/ConfigurablePriceResolverTest.php | 2 +- .../Test/Unit/Pricing/Render/FinalPriceBoxTest.php | 2 +- .../Test/Unit/Pricing/Render/TierPriceBoxTest.php | 2 +- .../AssociatedProduct/Columns/AttributesTest.php | 2 +- .../Listing/AssociatedProduct/Columns/NameTest.php | 2 +- .../AssociatedProduct/Columns/PriceTest.php | 2 +- .../Product/Form/Modifier/CompositeTest.php | 2 +- .../ConfigurableAttributeSetHandlerTest.php | 2 +- .../Form/Modifier/ConfigurablePanelTest.php | 2 +- .../Form/Modifier/ConfigurablePriceTest.php | 2 +- .../Product/Form/Modifier/ConfigurableQtyTest.php | 2 +- .../Product/Form/Modifier/CustomOptionsTest.php | 2 +- .../Product/Form/Modifier/StockDataTest.php | 2 +- .../AssociatedProduct/Attribute/Repository.php | 2 +- .../Listing/AssociatedProduct/Columns.php | 2 +- .../AssociatedProduct/Columns/Attributes.php | 2 +- .../Listing/AssociatedProduct/Columns/Name.php | 2 +- .../Listing/AssociatedProduct/Columns/Price.php | 2 +- .../Listing/AssociatedProduct/Filters.php | 2 +- .../Ui/DataProvider/Attributes.php | 2 +- .../Product/Form/Modifier/Composite.php | 2 +- .../Modifier/ConfigurableAttributeSetHandler.php | 2 +- .../Product/Form/Modifier/ConfigurablePanel.php | 2 +- .../Product/Form/Modifier/ConfigurablePrice.php | 2 +- .../Product/Form/Modifier/ConfigurableQty.php | 2 +- .../Product/Form/Modifier/CustomOptions.php | 2 +- .../Form/Modifier/Data/AssociatedProducts.php | 2 +- .../Product/Form/Modifier/StockData.php | 2 +- .../ConfigurableProduct/etc/adminhtml/di.xml | 2 +- .../ConfigurableProduct/etc/adminhtml/events.xml | 2 +- .../ConfigurableProduct/etc/adminhtml/routes.xml | 2 +- .../ConfigurableProduct/etc/adminhtml/system.xml | 2 +- .../Magento/ConfigurableProduct/etc/config.xml | 2 +- app/code/Magento/ConfigurableProduct/etc/di.xml | 2 +- .../etc/extension_attributes.xml | 2 +- .../ConfigurableProduct/etc/frontend/di.xml | 2 +- .../Magento/ConfigurableProduct/etc/module.xml | 2 +- .../ConfigurableProduct/etc/product_types.xml | 2 +- app/code/Magento/ConfigurableProduct/etc/sales.xml | 2 +- .../Magento/ConfigurableProduct/etc/webapi.xml | 2 +- .../Magento/ConfigurableProduct/registration.php | 2 +- .../layout/catalog_product_addattribute.xml | 2 +- .../layout/catalog_product_associated_grid.xml | 2 +- ...attribute_edit_product_tab_variations_popup.xml | 2 +- .../layout/catalog_product_configurable.xml | 2 +- .../layout/catalog_product_downloadable.xml | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../adminhtml/layout/catalog_product_set_edit.xml | 2 +- .../adminhtml/layout/catalog_product_simple.xml | 2 +- .../layout/catalog_product_superconfig_config.xml | 2 +- .../catalog_product_view_type_configurable.xml | 2 +- .../adminhtml/layout/catalog_product_virtual.xml | 2 +- .../adminhtml/layout/catalog_product_wizard.xml | 2 +- .../catalog/product/attribute/new/created.phtml | 2 +- .../catalog/product/attribute/set/js.phtml | 2 +- .../product/composite/fieldset/configurable.phtml | 2 +- .../edit/attribute/steps/attributes_values.phtml | 2 +- .../product/edit/attribute/steps/bulk.phtml | 2 +- .../edit/attribute/steps/select_attributes.phtml | 2 +- .../product/edit/attribute/steps/summary.phtml | 2 +- .../catalog/product/edit/super/config.phtml | 2 +- .../catalog/product/edit/super/matrix.phtml | 2 +- .../catalog/product/edit/super/wizard-ajax.phtml | 2 +- .../catalog/product/edit/super/wizard.phtml | 2 +- .../affected-attribute-set-selector/form.phtml | 2 +- .../affected-attribute-set-selector/js.phtml | 2 +- .../configurable/attribute-selector/js.phtml | 2 +- .../product/configurable/stock/disabler.phtml | 2 +- .../configurable_associated_product_listing.xml | 2 +- .../ui_component/product_attributes_listing.xml | 2 +- .../view/adminhtml/ui_component/product_form.xml | 2 +- .../adminhtml/web/css/configurable-product.css | 2 +- .../associated-product-insert-listing.js | 2 +- .../components/container-configurable-handler.js | 2 +- .../web/js/components/custom-options-price-type.js | 2 +- .../web/js/components/custom-options-warning.js | 2 +- .../web/js/components/dynamic-rows-configurable.js | 2 +- .../adminhtml/web/js/components/file-uploader.js | 2 +- .../web/js/components/modal-configurable.js | 2 +- .../adminhtml/web/js/configurable-type-handler.js | 2 +- .../view/adminhtml/web/js/configurable.js | 2 +- .../adminhtml/web/js/options/price-type-handler.js | 2 +- .../adminhtml/web/js/variations/paging/sizes.js | 2 +- .../adminhtml/web/js/variations/product-grid.js | 2 +- .../web/js/variations/steps/attributes_values.js | 2 +- .../view/adminhtml/web/js/variations/steps/bulk.js | 2 +- .../web/js/variations/steps/select_attributes.js | 2 +- .../adminhtml/web/js/variations/steps/summary.js | 2 +- .../view/adminhtml/web/js/variations/variations.js | 2 +- .../view/adminhtml/web/product/product.css | 2 +- .../web/template/components/actions-list.html | 2 +- .../web/template/components/cell-html.html | 2 +- .../web/template/components/cell-status.html | 2 +- .../web/template/components/file-uploader.html | 2 +- .../template/variations/steps/summary-grid.html | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../base/templates/product/price/final_price.phtml | 2 +- .../base/templates/product/price/tier_price.phtml | 2 +- .../catalog_product_view_type_configurable.xml | 2 +- .../checkout_cart_configure_type_configurable.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../checkout_onepage_review_item_renderers.xml | 2 +- .../view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../product/view/type/options/configurable.phtml | 2 +- .../view/frontend/web/js/configurable.js | 2 +- app/code/Magento/Contact/Block/ContactForm.php | 2 +- app/code/Magento/Contact/Controller/Index.php | 2 +- .../Magento/Contact/Controller/Index/Index.php | 2 +- app/code/Magento/Contact/Controller/Index/Post.php | 2 +- app/code/Magento/Contact/Helper/Data.php | 2 +- .../Contact/Model/System/Config/Backend/Links.php | 2 +- .../Contact/Test/Unit/Block/ContactFormTest.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Test/Unit/Controller/Index/PostTest.php | 2 +- .../Contact/Test/Unit/Controller/IndexTest.php | 2 +- .../Test/Unit/Controller/Stub/IndexStub.php | 2 +- .../Magento/Contact/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/System/Config/Backend/LinksTest.php | 2 +- app/code/Magento/Contact/etc/acl.xml | 2 +- app/code/Magento/Contact/etc/adminhtml/system.xml | 2 +- app/code/Magento/Contact/etc/config.xml | 2 +- app/code/Magento/Contact/etc/di.xml | 2 +- app/code/Magento/Contact/etc/email_templates.xml | 2 +- app/code/Magento/Contact/etc/frontend/di.xml | 2 +- .../Magento/Contact/etc/frontend/page_types.xml | 2 +- app/code/Magento/Contact/etc/frontend/routes.xml | 2 +- app/code/Magento/Contact/etc/module.xml | 2 +- app/code/Magento/Contact/registration.php | 2 +- .../view/adminhtml/email/submitted_form.html | 2 +- .../view/frontend/layout/contact_index_index.xml | 2 +- .../Contact/view/frontend/layout/default.xml | 2 +- .../Contact/view/frontend/templates/form.phtml | 2 +- app/code/Magento/Cookie/Block/Html/Notices.php | 2 +- app/code/Magento/Cookie/Block/RequireCookie.php | 2 +- .../Magento/Cookie/Controller/Index/NoCookies.php | 2 +- app/code/Magento/Cookie/Helper/Cookie.php | 2 +- .../Magento/Cookie/Model/Config/Backend/Cookie.php | 2 +- .../Magento/Cookie/Model/Config/Backend/Domain.php | 2 +- .../Cookie/Model/Config/Backend/Lifetime.php | 2 +- .../Magento/Cookie/Model/Config/Backend/Path.php | 2 +- .../Test/Unit/Controller/Index/NoCookiesTest.php | 2 +- .../Magento/Cookie/Test/Unit/Helper/CookieTest.php | 2 +- .../Test/Unit/Model/Config/Backend/DomainTest.php | 2 +- .../Unit/Model/Config/Backend/LifetimeTest.php | 2 +- .../Test/Unit/Model/Config/Backend/PathTest.php | 2 +- app/code/Magento/Cookie/etc/adminhtml/system.xml | 2 +- app/code/Magento/Cookie/etc/config.xml | 2 +- app/code/Magento/Cookie/etc/di.xml | 2 +- app/code/Magento/Cookie/etc/frontend/routes.xml | 2 +- app/code/Magento/Cookie/etc/module.xml | 2 +- app/code/Magento/Cookie/registration.php | 2 +- .../Cookie/view/adminhtml/requirejs-config.js | 2 +- .../Cookie/view/frontend/layout/default.xml | 2 +- .../Cookie/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/html/notices.phtml | 2 +- .../view/frontend/templates/require_cookie.phtml | 2 +- .../Magento/Cookie/view/frontend/web/js/notices.js | 2 +- .../Cookie/view/frontend/web/js/require-cookie.js | 2 +- .../Magento/Cron/Console/Command/CronCommand.php | 2 +- .../Cron/Console/Command/CronInstallCommand.php | 2 +- .../Cron/Console/Command/CronRemoveCommand.php | 2 +- .../Model/Backend/Config/Structure/Converter.php | 2 +- app/code/Magento/Cron/Model/Config.php | 2 +- .../Cron/Model/Config/Backend/Product/Alert.php | 2 +- .../Magento/Cron/Model/Config/Backend/Sitemap.php | 2 +- .../Magento/Cron/Model/Config/Converter/Db.php | 2 +- .../Magento/Cron/Model/Config/Converter/Xml.php | 2 +- app/code/Magento/Cron/Model/Config/Data.php | 2 +- app/code/Magento/Cron/Model/Config/Reader/Db.php | 2 +- app/code/Magento/Cron/Model/Config/Reader/Xml.php | 2 +- .../Magento/Cron/Model/Config/SchemaLocator.php | 2 +- .../Magento/Cron/Model/Config/Source/Frequency.php | 2 +- app/code/Magento/Cron/Model/ConfigInterface.php | 2 +- .../Cron/Model/Groups/Config/Converter/Xml.php | 2 +- app/code/Magento/Cron/Model/Groups/Config/Data.php | 2 +- .../Cron/Model/Groups/Config/Reader/Xml.php | 2 +- .../Cron/Model/Groups/Config/SchemaLocator.php | 2 +- .../Magento/Cron/Model/ResourceModel/Schedule.php | 2 +- .../Model/ResourceModel/Schedule/Collection.php | 2 +- app/code/Magento/Cron/Model/Schedule.php | 2 +- .../Cron/Model/System/Config/Initial/Converter.php | 2 +- .../Cron/Observer/ProcessCronQueueObserver.php | 2 +- app/code/Magento/Cron/Setup/InstallSchema.php | 2 +- .../Test/Unit/Console/Command/CronCommandTest.php | 2 +- .../Test/Unit/Model/Config/Converter/DbTest.php | 2 +- .../Test/Unit/Model/Config/Converter/XmlTest.php | 2 +- .../Cron/Test/Unit/Model/Config/DataTest.php | 2 +- .../Cron/Test/Unit/Model/Config/Reader/DbTest.php | 2 +- .../Cron/Test/Unit/Model/Config/Reader/XmlTest.php | 2 +- .../Test/Unit/Model/Config/SchemaLocatorTest.php | 2 +- .../Cron/Test/Unit/Model/Config/XsdTest.php | 2 +- .../Unit/Model/Config/_files/crontab_invalid.xml | 2 +- .../Config/_files/crontab_invalid_duplicates.xml | 2 +- .../Config/_files/crontab_invalid_node_typo.xml | 2 +- .../_files/crontab_invalid_without_instance.xml | 2 +- .../_files/crontab_invalid_without_method.xml | 2 +- .../Config/_files/crontab_invalid_without_name.xml | 2 +- .../Unit/Model/Config/_files/crontab_valid.xml | 2 +- .../_files/crontab_valid_without_schedule.xml | 2 +- .../Magento/Cron/Test/Unit/Model/ConfigTest.php | 2 +- .../Cron/Test/Unit/Model/CronJobException.php | 2 +- .../Unit/Model/Groups/Config/Converter/XmlTest.php | 2 +- .../Magento/Cron/Test/Unit/Model/ScheduleTest.php | 2 +- .../Unit/Observer/ProcessCronQueueObserverTest.php | 2 +- app/code/Magento/Cron/etc/adminhtml/system.xml | 2 +- app/code/Magento/Cron/etc/cron_groups.xml | 2 +- app/code/Magento/Cron/etc/cron_groups.xsd | 2 +- app/code/Magento/Cron/etc/crontab.xsd | 2 +- app/code/Magento/Cron/etc/crontab/events.xml | 2 +- app/code/Magento/Cron/etc/di.xml | 2 +- app/code/Magento/Cron/etc/module.xml | 2 +- app/code/Magento/Cron/registration.php | 2 +- .../Block/Adminhtml/System/Currency.php | 2 +- .../Adminhtml/System/Currency/Rate/Matrix.php | 2 +- .../Adminhtml/System/Currency/Rate/Services.php | 2 +- .../Block/Adminhtml/System/Currencysymbol.php | 2 +- .../Controller/Adminhtml/System/Currency.php | 2 +- .../Adminhtml/System/Currency/FetchRates.php | 2 +- .../Controller/Adminhtml/System/Currency/Index.php | 2 +- .../Adminhtml/System/Currency/SaveRates.php | 2 +- .../Controller/Adminhtml/System/Currencysymbol.php | 2 +- .../Adminhtml/System/Currencysymbol/Index.php | 2 +- .../Adminhtml/System/Currencysymbol/Save.php | 2 +- .../CurrencySymbol/Model/System/Currencysymbol.php | 2 +- .../Observer/CurrencyDisplayOptions.php | 2 +- .../Adminhtml/System/Currency/Rate/MatrixTest.php | 2 +- .../System/Currency/Rate/ServicesTest.php | 2 +- .../Unit/Block/Adminhtml/System/CurrencyTest.php | 2 +- .../Block/Adminhtml/System/CurrencysymbolTest.php | 2 +- .../Adminhtml/System/Currencysymbol/IndexTest.php | 2 +- .../Adminhtml/System/Currencysymbol/SaveTest.php | 2 +- .../Test/Unit/Model/System/CurrencysymbolTest.php | 2 +- .../Unit/Observer/CurrencyDisplayOptionsTest.php | 2 +- app/code/Magento/CurrencySymbol/etc/acl.xml | 2 +- .../Magento/CurrencySymbol/etc/adminhtml/menu.xml | 2 +- .../CurrencySymbol/etc/adminhtml/routes.xml | 2 +- app/code/Magento/CurrencySymbol/etc/di.xml | 2 +- app/code/Magento/CurrencySymbol/etc/events.xml | 2 +- app/code/Magento/CurrencySymbol/etc/module.xml | 2 +- app/code/Magento/CurrencySymbol/registration.php | 2 +- .../layout/adminhtml_system_currency_index.xml | 2 +- .../adminhtml_system_currencysymbol_index.xml | 2 +- .../view/adminhtml/templates/grid.phtml | 2 +- .../templates/system/currency/rate/matrix.phtml | 2 +- .../templates/system/currency/rate/services.phtml | 2 +- .../templates/system/currency/rates.phtml | 2 +- .../Customer/Api/AccountManagementInterface.php | 2 +- .../Customer/Api/AddressMetadataInterface.php | 2 +- .../Api/AddressMetadataManagementInterface.php | 2 +- .../Customer/Api/AddressRepositoryInterface.php | 2 +- .../Customer/Api/CustomerManagementInterface.php | 2 +- .../Customer/Api/CustomerMetadataInterface.php | 2 +- .../Api/CustomerMetadataManagementInterface.php | 2 +- .../Api/CustomerNameGenerationInterface.php | 2 +- .../Customer/Api/CustomerRepositoryInterface.php | 2 +- .../Magento/Customer/Api/Data/AddressInterface.php | 2 +- .../Api/Data/AddressSearchResultsInterface.php | 2 +- .../Api/Data/AttributeMetadataInterface.php | 2 +- .../Customer/Api/Data/CustomerInterface.php | 2 +- .../Api/Data/CustomerSearchResultsInterface.php | 2 +- .../Magento/Customer/Api/Data/GroupInterface.php | 2 +- .../Api/Data/GroupSearchResultsInterface.php | 2 +- .../Magento/Customer/Api/Data/OptionInterface.php | 2 +- .../Magento/Customer/Api/Data/RegionInterface.php | 2 +- .../Api/Data/ValidationResultsInterface.php | 2 +- .../Customer/Api/Data/ValidationRuleInterface.php | 2 +- .../Customer/Api/GroupManagementInterface.php | 2 +- .../Customer/Api/GroupRepositoryInterface.php | 2 +- .../Magento/Customer/Api/MetadataInterface.php | 2 +- .../Customer/Api/MetadataManagementInterface.php | 2 +- .../Customer/Block/Account/AuthenticationPopup.php | 2 +- .../Customer/Block/Account/AuthorizationLink.php | 2 +- .../Magento/Customer/Block/Account/Customer.php | 2 +- .../Magento/Customer/Block/Account/Dashboard.php | 2 +- .../Customer/Block/Account/Dashboard/Address.php | 2 +- .../Customer/Block/Account/Dashboard/Info.php | 2 +- .../Customer/Block/Account/Forgotpassword.php | 2 +- app/code/Magento/Customer/Block/Account/Link.php | 2 +- .../Customer/Block/Account/RegisterLink.php | 2 +- .../Customer/Block/Account/Resetpassword.php | 2 +- app/code/Magento/Customer/Block/Address/Book.php | 2 +- app/code/Magento/Customer/Block/Address/Edit.php | 2 +- .../Block/Address/Renderer/DefaultRenderer.php | 2 +- .../Block/Address/Renderer/RendererInterface.php | 2 +- app/code/Magento/Customer/Block/Adminhtml/Edit.php | 2 +- .../Customer/Block/Adminhtml/Edit/BackButton.php | 2 +- .../Customer/Block/Adminhtml/Edit/DeleteButton.php | 2 +- .../Magento/Customer/Block/Adminhtml/Edit/Form.php | 2 +- .../Block/Adminhtml/Edit/GenericButton.php | 2 +- .../Block/Adminhtml/Edit/InvalidateTokenButton.php | 2 +- .../Customer/Block/Adminhtml/Edit/OrderButton.php | 2 +- .../Block/Adminhtml/Edit/Renderer/Region.php | 2 +- .../Customer/Block/Adminhtml/Edit/ResetButton.php | 2 +- .../Block/Adminhtml/Edit/ResetPasswordButton.php | 2 +- .../Block/Adminhtml/Edit/SaveAndContinueButton.php | 2 +- .../Customer/Block/Adminhtml/Edit/SaveButton.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/Cart.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/Carts.php | 2 +- .../Block/Adminhtml/Edit/Tab/GenericMetadata.php | 2 +- .../Block/Adminhtml/Edit/Tab/Newsletter.php | 2 +- .../Block/Adminhtml/Edit/Tab/Newsletter/Grid.php | 2 +- .../Edit/Tab/Newsletter/Grid/Filter/Status.php | 2 +- .../Edit/Tab/Newsletter/Grid/Renderer/Action.php | 2 +- .../Edit/Tab/Newsletter/Grid/Renderer/Status.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/Orders.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/Reviews.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/View.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/Cart.php | 2 +- .../Adminhtml/Edit/Tab/View/Grid/Renderer/Item.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/PersonalInfo.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/Sales.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/Wishlist.php | 2 +- .../Tab/Wishlist/Grid/Renderer/Description.php | 2 +- .../Customer/Block/Adminhtml/Edit/UnlockButton.php | 2 +- .../Block/Adminhtml/Form/Element/Boolean.php | 2 +- .../Customer/Block/Adminhtml/Form/Element/File.php | 2 +- .../Block/Adminhtml/Form/Element/Image.php | 2 +- .../Block/Adminhtml/Grid/Filter/Country.php | 2 +- .../Block/Adminhtml/Grid/Renderer/Multiaction.php | 2 +- .../Magento/Customer/Block/Adminhtml/Group.php | 2 +- .../Customer/Block/Adminhtml/Group/Edit.php | 2 +- .../Customer/Block/Adminhtml/Group/Edit/Form.php | 2 +- .../Sales/Order/Address/Form/Renderer/Vat.php | 2 +- .../Block/Adminhtml/System/Config/Validatevat.php | 2 +- app/code/Magento/Customer/Block/CustomerData.php | 2 +- .../Magento/Customer/Block/CustomerScopeData.php | 2 +- app/code/Magento/Customer/Block/Form/Edit.php | 2 +- app/code/Magento/Customer/Block/Form/Login.php | 2 +- .../Magento/Customer/Block/Form/Login/Info.php | 2 +- app/code/Magento/Customer/Block/Form/Register.php | 2 +- app/code/Magento/Customer/Block/Newsletter.php | 2 +- app/code/Magento/Customer/Block/SectionConfig.php | 2 +- .../Customer/Block/Widget/AbstractWidget.php | 2 +- app/code/Magento/Customer/Block/Widget/Dob.php | 2 +- app/code/Magento/Customer/Block/Widget/Gender.php | 2 +- app/code/Magento/Customer/Block/Widget/Name.php | 2 +- app/code/Magento/Customer/Block/Widget/Taxvat.php | 2 +- .../Command/UpgradeHashAlgorithmCommand.php | 2 +- .../Customer/Controller/AbstractAccount.php | 2 +- .../Customer/Controller/Account/Confirm.php | 2 +- .../Customer/Controller/Account/Confirmation.php | 2 +- .../Magento/Customer/Controller/Account/Create.php | 2 +- .../Customer/Controller/Account/CreatePassword.php | 2 +- .../Customer/Controller/Account/CreatePost.php | 2 +- .../Magento/Customer/Controller/Account/Edit.php | 2 +- .../Customer/Controller/Account/EditPost.php | 2 +- .../Customer/Controller/Account/ForgotPassword.php | 2 +- .../Controller/Account/ForgotPasswordPost.php | 2 +- .../Magento/Customer/Controller/Account/Index.php | 2 +- .../Magento/Customer/Controller/Account/Login.php | 2 +- .../Customer/Controller/Account/LoginPost.php | 2 +- .../Magento/Customer/Controller/Account/Logout.php | 2 +- .../Customer/Controller/Account/LogoutSuccess.php | 2 +- .../Controller/Account/ResetPasswordPost.php | 2 +- .../Customer/Controller/AccountInterface.php | 2 +- app/code/Magento/Customer/Controller/Address.php | 2 +- .../Magento/Customer/Controller/Address/Delete.php | 2 +- .../Magento/Customer/Controller/Address/Edit.php | 2 +- .../Magento/Customer/Controller/Address/Form.php | 2 +- .../Customer/Controller/Address/FormPost.php | 2 +- .../Magento/Customer/Controller/Address/Index.php | 2 +- .../Customer/Controller/Address/NewAction.php | 2 +- .../Adminhtml/Cart/Product/Composite/Cart.php | 2 +- .../Cart/Product/Composite/Cart/Configure.php | 2 +- .../Cart/Product/Composite/Cart/Update.php | 2 +- .../Adminhtml/Customer/InvalidateToken.php | 2 +- .../Controller/Adminhtml/File/Address/Upload.php | 2 +- .../Controller/Adminhtml/File/Customer/Upload.php | 2 +- .../Customer/Controller/Adminhtml/Group.php | 2 +- .../Customer/Controller/Adminhtml/Group/Delete.php | 2 +- .../Customer/Controller/Adminhtml/Group/Edit.php | 2 +- .../Customer/Controller/Adminhtml/Group/Index.php | 2 +- .../Controller/Adminhtml/Group/NewAction.php | 2 +- .../Customer/Controller/Adminhtml/Group/Save.php | 2 +- .../Customer/Controller/Adminhtml/Index.php | 2 +- .../Adminhtml/Index/AbstractMassAction.php | 2 +- .../Customer/Controller/Adminhtml/Index/Cart.php | 2 +- .../Customer/Controller/Adminhtml/Index/Carts.php | 2 +- .../Customer/Controller/Adminhtml/Index/Delete.php | 2 +- .../Customer/Controller/Adminhtml/Index/Edit.php | 2 +- .../Customer/Controller/Adminhtml/Index/Index.php | 2 +- .../Controller/Adminhtml/Index/InlineEdit.php | 2 +- .../Controller/Adminhtml/Index/LastOrders.php | 2 +- .../Controller/Adminhtml/Index/MassAssignGroup.php | 2 +- .../Controller/Adminhtml/Index/MassDelete.php | 2 +- .../Controller/Adminhtml/Index/MassSubscribe.php | 2 +- .../Controller/Adminhtml/Index/MassUnsubscribe.php | 2 +- .../Controller/Adminhtml/Index/NewAction.php | 2 +- .../Controller/Adminhtml/Index/Newsletter.php | 2 +- .../Customer/Controller/Adminhtml/Index/Orders.php | 2 +- .../Controller/Adminhtml/Index/ProductReviews.php | 2 +- .../Controller/Adminhtml/Index/ResetPassword.php | 2 +- .../Customer/Controller/Adminhtml/Index/Save.php | 2 +- .../Controller/Adminhtml/Index/Validate.php | 2 +- .../Controller/Adminhtml/Index/ViewCart.php | 2 +- .../Controller/Adminhtml/Index/ViewWishlist.php | 2 +- .../Controller/Adminhtml/Index/Viewfile.php | 2 +- .../Controller/Adminhtml/Index/Wishlist.php | 2 +- .../Customer/Controller/Adminhtml/Locks/Unlock.php | 2 +- .../Customer/Controller/Adminhtml/Online/Index.php | 2 +- .../Adminhtml/System/Config/Validatevat.php | 2 +- .../System/Config/Validatevat/Validate.php | 2 +- .../System/Config/Validatevat/ValidateAdvanced.php | 2 +- .../Wishlist/Product/Composite/Wishlist.php | 2 +- .../Product/Composite/Wishlist/Configure.php | 2 +- .../Wishlist/Product/Composite/Wishlist/Update.php | 2 +- .../Magento/Customer/Controller/Ajax/Login.php | 2 +- .../Magento/Customer/Controller/Ajax/Logout.php | 2 +- .../Magento/Customer/Controller/Plugin/Account.php | 2 +- .../Customer/Controller/RegistryConstants.php | 2 +- app/code/Magento/Customer/Controller/Review.php | 2 +- .../Magento/Customer/Controller/Review/Index.php | 2 +- .../Magento/Customer/Controller/Review/View.php | 2 +- .../Magento/Customer/Controller/Section/Load.php | 2 +- .../Magento/Customer/CustomerData/Customer.php | 2 +- .../CustomerData/JsLayoutDataProviderInterface.php | 2 +- .../CustomerData/JsLayoutDataProviderPool.php | 2 +- .../JsLayoutDataProviderPoolInterface.php | 2 +- .../CustomerData/Plugin/SessionChecker.php | 2 +- .../Customer/CustomerData/SchemaLocator.php | 2 +- .../Customer/CustomerData/Section/Identifier.php | 2 +- .../CustomerData/SectionConfigConverter.php | 2 +- .../Magento/Customer/CustomerData/SectionPool.php | 2 +- .../Customer/CustomerData/SectionPoolInterface.php | 2 +- .../CustomerData/SectionSourceInterface.php | 2 +- app/code/Magento/Customer/Helper/Address.php | 2 +- .../Customer/Helper/Session/CurrentCustomer.php | 2 +- .../Helper/Session/CurrentCustomerAddress.php | 2 +- app/code/Magento/Customer/Helper/View.php | 2 +- .../Magento/Customer/Model/Account/Redirect.php | 2 +- .../Magento/Customer/Model/AccountManagement.php | 2 +- app/code/Magento/Customer/Model/Address.php | 2 +- .../Customer/Model/Address/AbstractAddress.php | 2 +- .../Model/Address/AddressModelInterface.php | 2 +- app/code/Magento/Customer/Model/Address/Config.php | 2 +- .../Customer/Model/Address/Config/Converter.php | 2 +- .../Customer/Model/Address/Config/Reader.php | 2 +- .../Model/Address/Config/SchemaLocator.php | 2 +- .../Customer/Model/Address/CustomAttributeList.php | 2 +- .../Model/Address/CustomAttributeListInterface.php | 2 +- app/code/Magento/Customer/Model/Address/Form.php | 2 +- app/code/Magento/Customer/Model/Address/Mapper.php | 2 +- .../Customer/Model/Address/Validator/Postcode.php | 2 +- .../Magento/Customer/Model/AddressRegistry.php | 2 +- .../Customer/Model/App/Action/ContextPlugin.php | 2 +- app/code/Magento/Customer/Model/Attribute.php | 2 +- .../Model/Attribute/Backend/Data/Boolean.php | 2 +- .../Customer/Model/Attribute/Data/AbstractData.php | 2 +- .../Customer/Model/Attribute/Data/Boolean.php | 2 +- .../Magento/Customer/Model/Attribute/Data/Date.php | 2 +- .../Magento/Customer/Model/Attribute/Data/File.php | 2 +- .../Customer/Model/Attribute/Data/Hidden.php | 2 +- .../Customer/Model/Attribute/Data/Image.php | 2 +- .../Customer/Model/Attribute/Data/Multiline.php | 2 +- .../Customer/Model/Attribute/Data/Multiselect.php | 2 +- .../Customer/Model/Attribute/Data/Postcode.php | 2 +- .../Customer/Model/Attribute/Data/Select.php | 2 +- .../Magento/Customer/Model/Attribute/Data/Text.php | 2 +- .../Customer/Model/Attribute/Data/Textarea.php | 2 +- .../Customer/Model/AttributeMetadataConverter.php | 2 +- .../Model/AttributeMetadataDataProvider.php | 2 +- app/code/Magento/Customer/Model/Authentication.php | 2 +- .../Customer/Model/AuthenticationInterface.php | 2 +- .../Authorization/CustomerSessionUserContext.php | 2 +- .../Magento/Customer/Model/Backend/Customer.php | 2 +- .../Customer/Model/Cache/Type/Notification.php | 2 +- .../Magento/Customer/Model/Cart/ConfigPlugin.php | 2 +- .../Customer/Model/Checkout/ConfigProvider.php | 2 +- .../Model/Config/Backend/Address/Street.php | 2 +- .../DisableAutoGroupAssignDefault.php | 2 +- .../Backend/Password/Link/Expirationperiod.php | 2 +- .../Customer/Model/Config/Backend/Show/Address.php | 2 +- .../Model/Config/Backend/Show/Customer.php | 2 +- app/code/Magento/Customer/Model/Config/Share.php | 2 +- .../Customer/Model/Config/Source/Address/Type.php | 2 +- .../Magento/Customer/Model/Config/Source/Group.php | 2 +- .../Model/Config/Source/Group/Multiselect.php | 2 +- app/code/Magento/Customer/Model/Context.php | 2 +- app/code/Magento/Customer/Model/Customer.php | 2 +- .../Model/Customer/Attribute/Backend/Billing.php | 2 +- .../Model/Customer/Attribute/Backend/Password.php | 2 +- .../Model/Customer/Attribute/Backend/Shipping.php | 2 +- .../Model/Customer/Attribute/Backend/Store.php | 2 +- .../Model/Customer/Attribute/Backend/Website.php | 2 +- .../Model/Customer/Attribute/Source/Group.php | 2 +- .../Model/Customer/Attribute/Source/Store.php | 2 +- .../Model/Customer/Attribute/Source/Website.php | 2 +- .../Customer/Model/Customer/DataProvider.php | 2 +- .../Magento/Customer/Model/Customer/Mapper.php | 2 +- .../Model/Customer/NotificationStorage.php | 2 +- .../Customer/Model/Customer/Source/Group.php | 2 +- .../Magento/Customer/Model/CustomerAuthUpdate.php | 2 +- .../Magento/Customer/Model/CustomerExtractor.php | 2 +- .../Magento/Customer/Model/CustomerManagement.php | 2 +- .../Magento/Customer/Model/CustomerRegistry.php | 2 +- app/code/Magento/Customer/Model/Data/Address.php | 2 +- .../Customer/Model/Data/AttributeMetadata.php | 2 +- app/code/Magento/Customer/Model/Data/Customer.php | 2 +- .../Magento/Customer/Model/Data/CustomerSecure.php | 2 +- app/code/Magento/Customer/Model/Data/Group.php | 2 +- app/code/Magento/Customer/Model/Data/Option.php | 2 +- app/code/Magento/Customer/Model/Data/Region.php | 2 +- .../Customer/Model/Data/ValidationResults.php | 2 +- .../Magento/Customer/Model/Data/ValidationRule.php | 2 +- .../Magento/Customer/Model/EmailNotification.php | 2 +- .../Customer/Model/EmailNotificationInterface.php | 2 +- app/code/Magento/Customer/Model/FileProcessor.php | 2 +- app/code/Magento/Customer/Model/FileUploader.php | 2 +- app/code/Magento/Customer/Model/Form.php | 2 +- app/code/Magento/Customer/Model/Group.php | 2 +- .../Magento/Customer/Model/GroupManagement.php | 2 +- app/code/Magento/Customer/Model/GroupRegistry.php | 2 +- .../Model/Indexer/Address/AttributeProvider.php | 2 +- .../Customer/Model/Indexer/Attribute/Filter.php | 2 +- .../Customer/Model/Indexer/AttributeProvider.php | 2 +- .../Customer/Model/Layout/DepersonalizePlugin.php | 2 +- app/code/Magento/Customer/Model/Log.php | 2 +- app/code/Magento/Customer/Model/Logger.php | 2 +- .../Model/Metadata/AddressCachedMetadata.php | 2 +- .../Customer/Model/Metadata/AddressMetadata.php | 2 +- .../Model/Metadata/AddressMetadataManagement.php | 2 +- .../Customer/Model/Metadata/AttributeResolver.php | 2 +- .../Customer/Model/Metadata/CachedMetadata.php | 2 +- .../Model/Metadata/CustomerCachedMetadata.php | 2 +- .../Customer/Model/Metadata/CustomerMetadata.php | 2 +- .../Model/Metadata/CustomerMetadataManagement.php | 2 +- .../Customer/Model/Metadata/ElementFactory.php | 2 +- app/code/Magento/Customer/Model/Metadata/Form.php | 2 +- .../Customer/Model/Metadata/Form/AbstractData.php | 2 +- .../Customer/Model/Metadata/Form/Boolean.php | 2 +- .../Magento/Customer/Model/Metadata/Form/Date.php | 2 +- .../Magento/Customer/Model/Metadata/Form/File.php | 2 +- .../Customer/Model/Metadata/Form/Hidden.php | 2 +- .../Magento/Customer/Model/Metadata/Form/Image.php | 2 +- .../Customer/Model/Metadata/Form/Multiline.php | 2 +- .../Customer/Model/Metadata/Form/Multiselect.php | 2 +- .../Customer/Model/Metadata/Form/Postcode.php | 2 +- .../Customer/Model/Metadata/Form/Select.php | 2 +- .../Magento/Customer/Model/Metadata/Form/Text.php | 2 +- .../Customer/Model/Metadata/Form/Textarea.php | 2 +- .../Customer/Model/Metadata/FormFactory.php | 2 +- .../Magento/Customer/Model/Metadata/Validator.php | 2 +- app/code/Magento/Customer/Model/Observer/Grid.php | 2 +- app/code/Magento/Customer/Model/Options.php | 2 +- .../Customer/Model/Plugin/AllowedCountries.php | 2 +- .../Model/Plugin/CustomerAuthorization.php | 2 +- .../Customer/Model/Plugin/CustomerFlushFormKey.php | 2 +- .../Customer/Model/Plugin/CustomerNotification.php | 2 +- .../CustomerRepository/TransactionWrapper.php | 2 +- app/code/Magento/Customer/Model/Registration.php | 2 +- .../Magento/Customer/Model/Renderer/Region.php | 2 +- .../Customer/Model/ResourceModel/Address.php | 2 +- .../Address/Attribute/Backend/Region.php | 2 +- .../ResourceModel/Address/Attribute/Collection.php | 2 +- .../Address/Attribute/Source/Country.php | 2 +- .../Attribute/Source/CountryWithWebsites.php | 2 +- .../Address/Attribute/Source/Region.php | 2 +- .../Model/ResourceModel/Address/Collection.php | 2 +- .../Model/ResourceModel/Address/Relation.php | 2 +- .../Model/ResourceModel/AddressRepository.php | 2 +- .../Customer/Model/ResourceModel/Attribute.php | 2 +- .../Model/ResourceModel/Attribute/Collection.php | 2 +- .../Customer/Model/ResourceModel/Customer.php | 2 +- .../Model/ResourceModel/Customer/Collection.php | 2 +- .../Customer/Model/ResourceModel/Customer/Grid.php | 2 +- .../Model/ResourceModel/Customer/Relation.php | 2 +- .../Model/ResourceModel/CustomerRepository.php | 2 +- .../Db/VersionControl/AddressSnapshot.php | 2 +- .../Model/ResourceModel/Form/Attribute.php | 2 +- .../ResourceModel/Form/Attribute/Collection.php | 2 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- .../Magento/Customer/Model/ResourceModel/Group.php | 2 +- .../Model/ResourceModel/Group/Collection.php | 2 +- .../Model/ResourceModel/Group/Grid/Collection.php | 2 +- .../ResourceModel/Group/Grid/ServiceCollection.php | 2 +- .../Model/ResourceModel/GroupRepository.php | 2 +- .../Model/ResourceModel/Online/Grid/Collection.php | 2 +- .../Model/ResourceModel/Setup/PropertyMapper.php | 2 +- .../Customer/Model/ResourceModel/Visitor.php | 2 +- .../Model/ResourceModel/Visitor/Collection.php | 2 +- app/code/Magento/Customer/Model/Session.php | 2 +- .../Magento/Customer/Model/Session/Storage.php | 2 +- app/code/Magento/Customer/Model/Url.php | 2 +- app/code/Magento/Customer/Model/Vat.php | 2 +- app/code/Magento/Customer/Model/Visitor.php | 2 +- .../Customer/Observer/AfterAddressSaveObserver.php | 2 +- .../Observer/BeforeAddressSaveObserver.php | 2 +- .../Observer/CustomerLoginSuccessObserver.php | 2 +- .../Customer/Observer/LogLastLoginAtObserver.php | 2 +- .../Customer/Observer/LogLastLogoutAtObserver.php | 2 +- .../Observer/UpgradeCustomerPasswordObserver.php | 2 +- .../Observer/Visitor/AbstractVisitorObserver.php | 2 +- .../Observer/Visitor/BindCustomerLoginObserver.php | 2 +- .../Visitor/BindCustomerLogoutObserver.php | 2 +- .../Observer/Visitor/BindQuoteCreateObserver.php | 2 +- .../Observer/Visitor/BindQuoteDestroyObserver.php | 2 +- .../Observer/Visitor/InitByRequestObserver.php | 2 +- .../Observer/Visitor/SaveByRequestObserver.php | 2 +- app/code/Magento/Customer/Setup/CustomerSetup.php | 2 +- app/code/Magento/Customer/Setup/InstallData.php | 2 +- app/code/Magento/Customer/Setup/InstallSchema.php | 2 +- app/code/Magento/Customer/Setup/UpgradeData.php | 2 +- app/code/Magento/Customer/Setup/UpgradeSchema.php | 2 +- .../Unit/Block/Account/AuthorizationLinkTest.php | 2 +- .../Test/Unit/Block/Account/CustomerTest.php | 2 +- .../Test/Unit/Block/Account/Dashboard/InfoTest.php | 2 +- .../Customer/Test/Unit/Block/Account/LinkTest.php | 2 +- .../Test/Unit/Block/Account/RegisterLinkTest.php | 2 +- .../Test/Unit/Block/Account/ResetpasswordTest.php | 2 +- .../Customer/Test/Unit/Block/Address/EditTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/NewsletterTest.php | 2 +- .../Edit/Tab/View/Grid/Renderer/ItemTest.php | 2 +- .../Adminhtml/Edit/Tab/View/PersonalInfoTest.php | 2 +- .../Unit/Block/Adminhtml/Edit/Tab/ViewTest.php | 2 +- .../Unit/Block/Adminhtml/Edit/UnlockButtonTest.php | 2 +- .../Block/Adminhtml/From/Element/ImageTest.php | 2 +- .../Test/Unit/Block/CustomerScopeDataTest.php | 2 +- .../Customer/Test/Unit/Block/Form/EditTest.php | 2 +- .../Test/Unit/Block/Form/Login/InfoTest.php | 2 +- .../Customer/Test/Unit/Block/Form/RegisterTest.php | 2 +- .../Customer/Test/Unit/Block/NewsletterTest.php | 2 +- .../Customer/Test/Unit/Block/SectionConfigTest.php | 2 +- .../Test/Unit/Block/Widget/AbstractWidgetTest.php | 2 +- .../Customer/Test/Unit/Block/Widget/DobTest.php | 2 +- .../Customer/Test/Unit/Block/Widget/GenderTest.php | 2 +- .../Customer/Test/Unit/Block/Widget/NameTest.php | 2 +- .../Customer/Test/Unit/Block/Widget/TaxvatTest.php | 2 +- .../Command/UpgradeHashAlgorithmCommandTest.php | 2 +- .../Test/Unit/Controller/Account/ConfirmTest.php | 2 +- .../Unit/Controller/Account/CreatePasswordTest.php | 2 +- .../Unit/Controller/Account/CreatePostTest.php | 2 +- .../Test/Unit/Controller/Account/CreateTest.php | 2 +- .../Test/Unit/Controller/Account/EditPostTest.php | 2 +- .../Controller/Account/ForgotPasswordPostTest.php | 2 +- .../Test/Unit/Controller/Account/LoginPostTest.php | 2 +- .../Test/Unit/Controller/Account/LogoutTest.php | 2 +- .../Controller/Account/ResetPasswordPostTest.php | 2 +- .../Test/Unit/Controller/Address/DeleteTest.php | 2 +- .../Test/Unit/Controller/Address/FormPostTest.php | 2 +- .../Adminhtml/File/Address/UploadTest.php | 2 +- .../Adminhtml/File/Customer/UploadTest.php | 2 +- .../Unit/Controller/Adminhtml/Group/SaveTest.php | 2 +- .../Unit/Controller/Adminhtml/Index/IndexTest.php | 2 +- .../Controller/Adminhtml/Index/InlineEditTest.php | 2 +- .../Adminhtml/Index/MassAssignGroupTest.php | 2 +- .../Controller/Adminhtml/Index/MassDeleteTest.php | 2 +- .../Adminhtml/Index/MassSubscribeTest.php | 2 +- .../Adminhtml/Index/MassUnsubscribeTest.php | 2 +- .../Controller/Adminhtml/Index/NewsletterTest.php | 2 +- .../Adminhtml/Index/ResetPasswordTest.php | 2 +- .../Unit/Controller/Adminhtml/Index/SaveTest.php | 2 +- .../Controller/Adminhtml/Index/ValidateTest.php | 2 +- .../Controller/Adminhtml/Index/ViewfileTest.php | 2 +- .../Unit/Controller/Adminhtml/Locks/UnlockTest.php | 2 +- .../System/Config/Validatevat/ValidateTest.php | 2 +- .../Test/Unit/Controller/Ajax/LoginTest.php | 2 +- .../Test/Unit/Controller/Plugin/AccountTest.php | 2 +- .../Test/Unit/Controller/Section/LoadTest.php | 2 +- .../CustomerData/Plugin/SessionCheckerTest.php | 2 +- .../Unit/CustomerData/Section/IdentifierTest.php | 2 +- .../CustomerData/SectionConfigConverterTest.php | 2 +- .../Test/Unit/CustomerData/SectionPoolTest.php | 2 +- .../Test/Unit/CustomerData/_files/sections.xml | 2 +- .../Customer/Test/Unit/Helper/AddressTest.php | 2 +- .../Helper/Session/CurrentCustomerAddressTest.php | 2 +- .../Unit/Helper/Session/CurrentCustomerTest.php | 2 +- .../Magento/Customer/Test/Unit/Helper/ViewTest.php | 2 +- .../Test/Unit/Model/AccountManagementTest.php | 2 +- .../Unit/Model/Address/AbstractAddressTest.php | 2 +- .../Unit/Model/Address/Config/ConverterTest.php | 2 +- .../Test/Unit/Model/Address/Config/ReaderTest.php | 2 +- .../Model/Address/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Address/Config/XsdTest.php | 2 +- .../Model/Address/Config/_files/formats_merged.php | 2 +- .../Model/Address/Config/_files/formats_merged.xml | 2 +- .../Model/Address/Config/_files/formats_one.xml | 2 +- .../Model/Address/Config/_files/formats_two.xml | 2 +- .../Test/Unit/Model/Address/ConfigTest.php | 2 +- .../Test/Unit/Model/Address/MapperTest.php | 2 +- .../Unit/Model/Address/Validator/PostcodeTest.php | 2 +- .../Test/Unit/Model/AddressRegistryTest.php | 2 +- .../Customer/Test/Unit/Model/AddressTest.php | 2 +- .../Unit/Model/App/Action/ContextPluginTest.php | 2 +- .../Unit/Model/Attribute/Backend/BooleanTest.php | 2 +- .../Unit/Model/Attribute/Data/PostcodeTest.php | 2 +- .../Customer/Test/Unit/Model/AttributeTest.php | 2 +- .../Test/Unit/Model/AuthenticationTest.php | 2 +- .../CustomerSessionUserContextTest.php | 2 +- .../Test/Unit/Model/Backend/CustomerTest.php | 2 +- .../Unit/Model/Checkout/ConfigProviderTest.php | 2 +- .../DisableAutoGroupAssignDefaultTest.php | 2 +- .../Unit/Model/Config/Source/Address/TypeTest.php | 2 +- .../Model/Config/Source/Group/MultiselectTest.php | 2 +- .../Test/Unit/Model/Config/Source/GroupTest.php | 2 +- .../Customer/Attribute/Backend/BillingTest.php | 2 +- .../Customer/Attribute/Backend/PasswordTest.php | 2 +- .../Customer/Attribute/Backend/ShippingTest.php | 2 +- .../Model/Customer/Attribute/Backend/StoreTest.php | 2 +- .../Customer/Attribute/Backend/WebsiteTest.php | 2 +- .../Customer/Attribute/Source/WebsiteTest.php | 2 +- .../Test/Unit/Model/Customer/DataProviderTest.php | 2 +- .../Model/Customer/NotificationStorageTest.php | 2 +- .../Test/Unit/Model/Customer/Source/GroupTest.php | 2 +- .../Test/Unit/Model/CustomerAuthUpdateTest.php | 2 +- .../Test/Unit/Model/CustomerExtractorTest.php | 2 +- .../Test/Unit/Model/CustomerManagementTest.php | 2 +- .../Test/Unit/Model/CustomerRegistryTest.php | 2 +- .../Customer/Test/Unit/Model/CustomerTest.php | 2 +- .../Test/Unit/Model/EmailNotificationTest.php | 2 +- .../Customer/Test/Unit/Model/FileProcessorTest.php | 2 +- .../Customer/Test/Unit/Model/FileUploaderTest.php | 2 +- .../Customer/Test/Unit/Model/GroupRegistryTest.php | 2 +- .../Unit/Model/Indexer/Attribute/FilterTest.php | 2 +- .../Unit/Model/Indexer/AttributeProviderTest.php | 2 +- .../Unit/Model/Layout/DepersonalizePluginTest.php | 2 +- .../Magento/Customer/Test/Unit/Model/LogTest.php | 2 +- .../Customer/Test/Unit/Model/LoggerTest.php | 2 +- .../Metadata/AddressMetadataManagementTest.php | 2 +- .../Unit/Model/Metadata/AddressMetadataTest.php | 2 +- .../Unit/Model/Metadata/AttributeResolverTest.php | 2 +- .../Metadata/CustomerMetadataManagementTest.php | 2 +- .../Unit/Model/Metadata/ElementFactoryTest.php | 2 +- .../Unit/Model/Metadata/Form/AbstractDataTest.php | 2 +- .../Model/Metadata/Form/AbstractFormTestCase.php | 2 +- .../Test/Unit/Model/Metadata/Form/BooleanTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/DateTest.php | 2 +- .../Model/Metadata/Form/ExtendsAbstractData.php | 2 +- .../Test/Unit/Model/Metadata/Form/FileTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/HiddenTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/ImageTest.php | 2 +- .../Unit/Model/Metadata/Form/MultilineTest.php | 2 +- .../Unit/Model/Metadata/Form/MultiselectTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/PostcodeTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/SelectTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/TextTest.php | 2 +- .../Test/Unit/Model/Metadata/Form/TextareaTest.php | 2 +- .../Test/Unit/Model/Metadata/ValidatorTest.php | 2 +- .../Unit/Model/Plugin/AllowedCountriesTest.php | 2 +- .../Unit/Model/Plugin/CustomerFlushFormKeyTest.php | 2 +- .../Unit/Model/Plugin/CustomerNotificationTest.php | 2 +- .../CustomerRepository/TransactionWrapperTest.php | 2 +- .../Test/Unit/Model/Renderer/RegionTest.php | 2 +- .../Address/Attribute/Backend/RegionTest.php | 2 +- .../Attribute/Source/CountryWithWebsitesTest.php | 2 +- .../Model/ResourceModel/Address/RelationTest.php | 2 +- .../Model/ResourceModel/AddressRepositoryTest.php | 2 +- .../Test/Unit/Model/ResourceModel/AddressTest.php | 2 +- .../Unit/Model/ResourceModel/Customer/GridTest.php | 2 +- .../Model/ResourceModel/CustomerRepositoryTest.php | 2 +- .../Db/VersionControl/AddressSnapshotTest.php | 2 +- .../Group/Grid/ServiceCollectionTest.php | 2 +- .../Model/ResourceModel/GroupRepositoryTest.php | 2 +- .../Test/Unit/Model/ResourceModel/GroupTest.php | 2 +- .../Customer/Test/Unit/Model/SessionTest.php | 2 +- .../Customer/Test/Unit/Model/VisitorTest.php | 2 +- .../Unit/Observer/AfterAddressSaveObserverTest.php | 2 +- .../Observer/BeforeAddressSaveObserverTest.php | 2 +- .../Observer/CustomerLoginSuccessObserverTest.php | 2 +- .../Unit/Observer/LogLastLoginAtObserverTest.php | 2 +- .../Unit/Observer/LogLastLogoutAtObserverTest.php | 2 +- .../UpgradeCustomerPasswordObserverTest.php | 2 +- .../Test/Unit/Ui/Component/ColumnFactoryTest.php | 2 +- .../Ui/Component/DataProvider/DocumentTest.php | 2 +- .../Test/Unit/Ui/Component/DataProviderTest.php | 2 +- .../Test/Unit/Ui/Component/FilterFactoryTest.php | 2 +- .../Component/Listing/AttributeRepositoryTest.php | 2 +- .../Component/Listing/Column/AccountLockTest.php | 2 +- .../Ui/Component/Listing/Column/ActionsTest.php | 2 +- .../Listing/Column/AttributeColumnTest.php | 2 +- .../Component/Listing/Column/ConfirmationTest.php | 2 +- .../Listing/Column/InlineEditUpdaterTest.php | 2 +- .../Listing/Column/ValidationRulesTest.php | 2 +- .../Test/Unit/Ui/Component/Listing/ColumnsTest.php | 2 +- .../Customer/Ui/Component/ColumnFactory.php | 2 +- .../Magento/Customer/Ui/Component/DataProvider.php | 2 +- .../Ui/Component/DataProvider/Document.php | 2 +- .../Customer/Ui/Component/FilterFactory.php | 2 +- .../Ui/Component/Listing/AttributeRepository.php | 2 +- .../Ui/Component/Listing/Column/AccountLock.php | 2 +- .../Ui/Component/Listing/Column/Actions.php | 2 +- .../Component/Listing/Column/AttributeColumn.php | 2 +- .../Ui/Component/Listing/Column/Confirmation.php | 2 +- .../Ui/Component/Listing/Column/Group/Options.php | 2 +- .../Component/Listing/Column/InlineEditUpdater.php | 2 +- .../Ui/Component/Listing/Column/Online/Type.php | 2 +- .../Listing/Column/Online/Type/Options.php | 2 +- .../Component/Listing/Column/ValidationRules.php | 2 +- .../Ui/Component/Listing/Column/Websites.php | 2 +- .../Customer/Ui/Component/Listing/Columns.php | 2 +- .../Ui/Component/MassAction/Group/Options.php | 2 +- app/code/Magento/Customer/etc/acl.xml | 2 +- app/code/Magento/Customer/etc/address_formats.xml | 2 +- app/code/Magento/Customer/etc/address_formats.xsd | 2 +- app/code/Magento/Customer/etc/adminhtml/di.xml | 2 +- app/code/Magento/Customer/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Customer/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Customer/etc/adminhtml/system.xml | 2 +- app/code/Magento/Customer/etc/cache.xml | 2 +- app/code/Magento/Customer/etc/config.xml | 2 +- app/code/Magento/Customer/etc/crontab.xml | 2 +- app/code/Magento/Customer/etc/di.xml | 2 +- app/code/Magento/Customer/etc/email_templates.xml | 2 +- app/code/Magento/Customer/etc/events.xml | 2 +- app/code/Magento/Customer/etc/fieldset.xml | 2 +- app/code/Magento/Customer/etc/frontend/di.xml | 2 +- app/code/Magento/Customer/etc/frontend/events.xml | 2 +- .../Magento/Customer/etc/frontend/page_types.xml | 2 +- app/code/Magento/Customer/etc/frontend/routes.xml | 2 +- .../Magento/Customer/etc/frontend/sections.xml | 2 +- app/code/Magento/Customer/etc/indexer.xml | 2 +- app/code/Magento/Customer/etc/module.xml | 2 +- app/code/Magento/Customer/etc/mview.xml | 2 +- app/code/Magento/Customer/etc/sections.xsd | 2 +- app/code/Magento/Customer/etc/validation.xml | 2 +- app/code/Magento/Customer/etc/webapi.xml | 2 +- app/code/Magento/Customer/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Customer/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Customer/registration.php | 2 +- .../view/adminhtml/layout/customer_group_index.xml | 2 +- .../view/adminhtml/layout/customer_index_cart.xml | 2 +- .../view/adminhtml/layout/customer_index_carts.xml | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../view/adminhtml/layout/customer_index_index.xml | 2 +- .../adminhtml/layout/customer_index_newsletter.xml | 2 +- .../adminhtml/layout/customer_index_orders.xml | 2 +- .../layout/customer_index_productreviews.xml | 2 +- .../adminhtml/layout/customer_index_viewcart.xml | 2 +- .../layout/customer_index_viewwishlist.xml | 2 +- .../adminhtml/layout/customer_online_index.xml | 2 +- .../Customer/view/adminhtml/requirejs-config.js | 2 +- .../view/adminhtml/templates/edit/js.phtml | 2 +- .../order/create/address/form/renderer/vat.phtml | 2 +- .../templates/system/config/validatevat.phtml | 2 +- .../view/adminhtml/templates/tab/cart.phtml | 2 +- .../view/adminhtml/templates/tab/newsletter.phtml | 2 +- .../view/adminhtml/templates/tab/view.phtml | 2 +- .../templates/tab/view/personal_info.phtml | 2 +- .../view/adminhtml/templates/tab/view/sales.phtml | 2 +- .../adminhtml/ui_component/customer_listing.xml | 2 +- .../ui_component/customer_online_grid.xml | 2 +- .../view/adminhtml/web/edit/post-wrapper.js | 2 +- .../view/adminhtml/web/edit/tab/js/addresses.js | 2 +- .../web/js/bootstrap/customer-post-action.js | 2 +- .../view/base/ui_component/customer_form.xml | 2 +- .../Customer/view/frontend/email/account_new.html | 2 +- .../frontend/email/account_new_confirmation.html | 2 +- .../view/frontend/email/account_new_confirmed.html | 2 +- .../frontend/email/account_new_no_password.html | 2 +- .../Customer/view/frontend/email/change_email.html | 2 +- .../frontend/email/change_email_and_password.html | 2 +- .../Customer/view/frontend/email/password_new.html | 2 +- .../view/frontend/email/password_reset.html | 2 +- .../email/password_reset_confirmation.html | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../layout/customer_account_confirmation.xml | 2 +- .../frontend/layout/customer_account_create.xml | 2 +- .../layout/customer_account_createpassword.xml | 2 +- .../view/frontend/layout/customer_account_edit.xml | 2 +- .../layout/customer_account_forgotpassword.xml | 2 +- .../frontend/layout/customer_account_index.xml | 2 +- .../frontend/layout/customer_account_login.xml | 2 +- .../layout/customer_account_logoutsuccess.xml | 2 +- .../view/frontend/layout/customer_address_form.xml | 2 +- .../frontend/layout/customer_address_index.xml | 2 +- .../Customer/view/frontend/layout/default.xml | 2 +- .../Customer/view/frontend/requirejs-config.js | 2 +- .../templates/account/authentication-popup.phtml | 2 +- .../view/frontend/templates/account/customer.phtml | 2 +- .../templates/account/dashboard/address.phtml | 2 +- .../templates/account/dashboard/info.phtml | 2 +- .../templates/account/link/authorization.phtml | 2 +- .../frontend/templates/account/link/back.phtml | 2 +- .../frontend/templates/account/navigation.phtml | 2 +- .../templates/additionalinfocustomer.phtml | 2 +- .../view/frontend/templates/address/book.phtml | 2 +- .../view/frontend/templates/address/edit.phtml | 2 +- .../frontend/templates/form/confirmation.phtml | 2 +- .../view/frontend/templates/form/edit.phtml | 2 +- .../frontend/templates/form/forgotpassword.phtml | 2 +- .../view/frontend/templates/form/login.phtml | 2 +- .../view/frontend/templates/form/newsletter.phtml | 2 +- .../view/frontend/templates/form/register.phtml | 2 +- .../templates/form/resetforgottenpassword.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../view/frontend/templates/js/customer-data.phtml | 2 +- .../js/customer-data/invalidation-rules.phtml | 2 +- .../frontend/templates/js/section-config.phtml | 2 +- .../Customer/view/frontend/templates/logout.phtml | 2 +- .../view/frontend/templates/newcustomer.phtml | 2 +- .../view/frontend/templates/widget/dob.phtml | 2 +- .../view/frontend/templates/widget/gender.phtml | 2 +- .../view/frontend/templates/widget/name.phtml | 2 +- .../view/frontend/templates/widget/taxvat.phtml | 2 +- .../Magento/Customer/view/frontend/web/address.js | 2 +- .../view/frontend/web/change-email-password.js | 2 +- .../web/js/action/check-email-availability.js | 2 +- .../Customer/view/frontend/web/js/action/login.js | 2 +- .../view/frontend/web/js/checkout-balance.js | 2 +- .../Customer/view/frontend/web/js/customer-data.js | 2 +- .../view/frontend/web/js/invalidation-processor.js | 2 +- .../web/js/invalidation-rules/website-rule.js | 2 +- .../view/frontend/web/js/model/address-list.js | 2 +- .../frontend/web/js/model/authentication-popup.js | 2 +- .../frontend/web/js/model/customer-addresses.js | 2 +- .../view/frontend/web/js/model/customer.js | 2 +- .../view/frontend/web/js/model/customer/address.js | 2 +- .../frontend/web/js/password-strength-indicator.js | 2 +- .../view/frontend/web/js/section-config.js | 2 +- .../frontend/web/js/view/authentication-popup.js | 2 +- .../Customer/view/frontend/web/js/view/customer.js | 2 +- .../web/template/authentication-popup.html | 2 +- .../Controller/Adminhtml/Index/ExportCsv.php | 2 +- .../Controller/Adminhtml/Index/ExportXml.php | 2 +- .../CustomerImportExport/Model/Export/Address.php | 2 +- .../CustomerImportExport/Model/Export/Customer.php | 2 +- .../Model/Import/AbstractCustomer.php | 2 +- .../CustomerImportExport/Model/Import/Address.php | 2 +- .../CustomerImportExport/Model/Import/Customer.php | 2 +- .../Model/Import/CustomerComposite.php | 2 +- .../ResourceModel/Import/Customer/Storage.php | 2 +- .../Import/CustomerComposite/Data.php | 2 +- .../Test/Unit/Model/Export/AddressTest.php | 2 +- .../Test/Unit/Model/Export/CustomerTest.php | 2 +- .../Unit/Model/Import/AbstractCustomerTest.php | 2 +- .../Test/Unit/Model/Import/AddressTest.php | 2 +- .../Unit/Model/Import/CustomerCompositeTest.php | 2 +- .../Test/Unit/Model/Import/CustomerTest.php | 2 +- .../_files/row_data_abstract_empty_email.php | 2 +- .../_files/row_data_abstract_empty_website.php | 2 +- .../_files/row_data_abstract_invalid_email.php | 2 +- .../_files/row_data_abstract_invalid_website.php | 2 +- .../Import/_files/row_data_abstract_no_email.php | 2 +- .../Import/_files/row_data_abstract_no_website.php | 2 +- .../Import/_files/row_data_abstract_valid.php | 2 +- .../row_data_address_delete_address_not_found.php | 2 +- .../row_data_address_delete_empty_address_id.php | 2 +- .../_files/row_data_address_delete_no_customer.php | 2 +- .../_files/row_data_address_delete_valid.php | 2 +- ...ta_address_update_absent_required_attribute.php | 2 +- .../row_data_address_update_empty_address_id.php | 2 +- .../row_data_address_update_invalid_region.php | 2 +- .../_files/row_data_address_update_no_customer.php | 2 +- .../_files/row_data_address_update_valid.php | 2 +- .../ResourceModel/Import/Customer/StorageTest.php | 2 +- .../Import/CustomerComposite/DataTest.php | 2 +- .../CustomerImportExport/etc/adminhtml/routes.xml | 2 +- .../Magento/CustomerImportExport/etc/config.xml | 2 +- .../Magento/CustomerImportExport/etc/export.xml | 2 +- .../Magento/CustomerImportExport/etc/import.xml | 2 +- .../Magento/CustomerImportExport/etc/module.xml | 2 +- .../Magento/CustomerImportExport/registration.php | 2 +- .../customer_import_export_index_exportcsv.xml | 2 +- .../customer_import_export_index_exportxml.xml | 2 +- .../adminhtml/layout/customer_index_grid_block.xml | 2 +- .../Console/Command/App/ApplicationDumpCommand.php | 2 +- .../Console/Command/DeployStaticContentCommand.php | 2 +- .../Command/DeployStaticOptionsInterface.php | 2 +- .../Deploy/Console/Command/SetModeCommand.php | 2 +- .../Deploy/Console/Command/ShowModeCommand.php | 2 +- app/code/Magento/Deploy/Console/CommandList.php | 2 +- .../Deploy/Model/Deploy/DeployInterface.php | 2 +- .../Magento/Deploy/Model/Deploy/LocaleDeploy.php | 2 +- .../Deploy/Model/Deploy/LocaleQuickDeploy.php | 2 +- .../Deploy/Model/Deploy/TemplateMinifier.php | 2 +- app/code/Magento/Deploy/Model/DeployManager.php | 2 +- .../Magento/Deploy/Model/DeployStrategyFactory.php | 2 +- .../Deploy/Model/DeployStrategyProvider.php | 2 +- app/code/Magento/Deploy/Model/Deployer.php | 2 +- app/code/Magento/Deploy/Model/Filesystem.php | 2 +- app/code/Magento/Deploy/Model/Mode.php | 2 +- app/code/Magento/Deploy/Model/Process.php | 2 +- app/code/Magento/Deploy/Model/ProcessManager.php | 2 +- .../Magento/Deploy/Model/ProcessQueueManager.php | 2 +- app/code/Magento/Deploy/Model/ProcessTask.php | 2 +- .../Console/Command/ApplicationDumpCommandTest.php | 2 +- .../Command/DeployStaticContentCommandTest.php | 2 +- .../Unit/Console/Command/FunctionExistMock.php | 2 +- .../Unit/Console/Command/SetModeCommandTest.php | 2 +- .../Unit/Console/Command/ShowModeCommandTest.php | 2 +- .../Test/Unit/Model/Deploy/LocaleDeployTest.php | 2 +- .../Unit/Model/Deploy/LocaleQuickDeployTest.php | 2 +- .../Unit/Model/Deploy/TemplateMinifierTest.php | 2 +- .../Deploy/Test/Unit/Model/DeployManagerTest.php | 2 +- .../Test/Unit/Model/DeployStrategyFactoryTest.php | 2 +- .../Test/Unit/Model/ProcessQueueManagerTest.php | 2 +- app/code/Magento/Deploy/cli_commands.php | 2 +- app/code/Magento/Deploy/etc/di.xml | 2 +- app/code/Magento/Deploy/etc/module.xml | 2 +- app/code/Magento/Deploy/registration.php | 2 +- .../Console/Command/DevTestsRunCommand.php | 2 +- .../Console/Command/SourceThemeDeployCommand.php | 2 +- .../Console/Command/XmlCatalogGenerateCommand.php | 2 +- .../Console/Command/XmlConverterCommand.php | 2 +- app/code/Magento/Developer/Helper/Data.php | 2 +- .../Developer/Model/Config/Backend/AllowedIps.php | 2 +- .../Developer/Model/Config/Source/WorkflowType.php | 2 +- .../FileGenerator/PublicationDecorator.php | 2 +- .../Model/TemplateEngine/Decorator/DebugHints.php | 2 +- .../Model/TemplateEngine/Plugin/DebugHints.php | 2 +- .../Magento/Developer/Model/Tools/Formatter.php | 2 +- .../Asset/PreProcessor/FrontendCompilation.php | 2 +- .../Asset/PreProcessor/PreprocessorStrategy.php | 2 +- .../Config/ClientSideLessCompilation/Renderer.php | 2 +- .../Model/View/Page/Config/RendererFactory.php | 2 +- .../Model/XmlCatalog/Format/FormatInterface.php | 2 +- .../Developer/Model/XmlCatalog/Format/PhpStorm.php | 2 +- .../Console/Command/DevTestsRunCommandTest.php | 2 +- .../Command/SourceThemeDeployCommandTest.php | 2 +- .../Command/XmlCatalogGenerateCommandTest.php | 2 +- .../Console/Command/XmlConverterCommandTest.php | 2 +- .../Test/Unit/Console/Command/_files/test.xml | 2 +- .../Developer/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Config/Backend/AllowedIpsTest.php | 2 +- .../Unit/Model/Config/Source/WorkflowTypeTest.php | 2 +- .../FileGenerator/PublicationDecoratorTest.php | 2 +- .../TemplateEngine/Decorator/DebugHintsTest.php | 2 +- .../Model/TemplateEngine/Plugin/DebugHintsTest.php | 2 +- .../Asset/PreProcessor/FrontendCompilationTest.php | 2 +- .../PreProcessor/PreprocessorStrategyTest.php | 2 +- .../ClientSideLessCompilation/RendererTest.php | 2 +- .../Model/View/Page/Config/RendererFactoryTest.php | 2 +- app/code/Magento/Developer/etc/adminhtml/di.xml | 2 +- .../Magento/Developer/etc/adminhtml/system.xml | 2 +- app/code/Magento/Developer/etc/config.xml | 2 +- app/code/Magento/Developer/etc/di.xml | 2 +- app/code/Magento/Developer/etc/frontend/di.xml | 2 +- app/code/Magento/Developer/etc/module.xml | 2 +- app/code/Magento/Developer/registration.php | 2 +- .../Magento/Dhl/Block/Adminhtml/Unitofmeasure.php | 2 +- app/code/Magento/Dhl/Model/AbstractDhl.php | 2 +- app/code/Magento/Dhl/Model/Carrier.php | 2 +- .../Model/Plugin/Checkout/Block/Cart/Shipping.php | 2 +- .../Rma/Edit/Tab/General/Shippingmethod.php | 2 +- app/code/Magento/Dhl/Model/Source/Contenttype.php | 2 +- .../Dhl/Model/Source/Method/AbstractMethod.php | 2 +- app/code/Magento/Dhl/Model/Source/Method/Doc.php | 2 +- .../Magento/Dhl/Model/Source/Method/Freedoc.php | 2 +- .../Magento/Dhl/Model/Source/Method/Freenondoc.php | 2 +- .../Magento/Dhl/Model/Source/Method/Generic.php | 2 +- .../Magento/Dhl/Model/Source/Method/Nondoc.php | 2 +- app/code/Magento/Dhl/Model/Source/Method/Size.php | 2 +- .../Dhl/Model/Source/Method/Unitofmeasure.php | 2 +- app/code/Magento/Dhl/Setup/InstallData.php | 2 +- .../Magento/Dhl/Test/Unit/Model/CarrierTest.php | 2 +- .../Dhl/Test/Unit/Model/_files/countries.xml | 2 +- .../Unit/Model/_files/rates_request_data_dhl.php | 2 +- .../Unit/Model/_files/response_shipping_label.xml | 2 +- .../Model/_files/success_dhl_response_rates.xml | 2 +- app/code/Magento/Dhl/etc/adminhtml/system.xml | 2 +- app/code/Magento/Dhl/etc/config.xml | 2 +- app/code/Magento/Dhl/etc/countries.xml | 2 +- app/code/Magento/Dhl/etc/di.xml | 2 +- app/code/Magento/Dhl/etc/module.xml | 2 +- app/code/Magento/Dhl/registration.php | 2 +- .../view/adminhtml/templates/unitofmeasure.phtml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../js/model/shipping-rates-validation-rules.js | 2 +- .../web/js/model/shipping-rates-validator.js | 2 +- .../web/js/view/shipping-rates-validation.js | 2 +- .../Api/CountryInformationAcquirerInterface.php | 2 +- .../Api/CurrencyInformationAcquirerInterface.php | 2 +- .../Api/Data/CountryInformationInterface.php | 2 +- .../Api/Data/CurrencyInformationInterface.php | 2 +- .../Directory/Api/Data/ExchangeRateInterface.php | 2 +- .../Api/Data/RegionInformationInterface.php | 2 +- .../Block/Adminhtml/Frontend/Currency/Base.php | 2 +- .../Block/Adminhtml/Frontend/Region/Updater.php | 2 +- app/code/Magento/Directory/Block/Currency.php | 2 +- app/code/Magento/Directory/Block/Data.php | 2 +- .../Controller/Adminhtml/Json/CountryRegion.php | 2 +- .../Directory/Controller/Currency/SwitchAction.php | 2 +- app/code/Magento/Directory/Helper/Data.php | 2 +- .../Magento/Directory/Model/AllowedCountries.php | 2 +- .../Directory/Model/Config/Source/Allregion.php | 2 +- .../Directory/Model/Config/Source/Country.php | 2 +- .../Directory/Model/Config/Source/Country/Full.php | 2 +- .../Directory/Model/Config/Source/WeightUnit.php | 2 +- app/code/Magento/Directory/Model/Country.php | 2 +- .../Magento/Directory/Model/Country/Format.php | 2 +- .../Directory/Model/Country/Postcode/Config.php | 2 +- .../Model/Country/Postcode/Config/Converter.php | 2 +- .../Model/Country/Postcode/Config/Data.php | 2 +- .../Model/Country/Postcode/Config/Reader.php | 2 +- .../Country/Postcode/Config/SchemaLocator.php | 2 +- .../Model/Country/Postcode/ConfigInterface.php | 2 +- .../Directory/Model/Country/Postcode/Validator.php | 2 +- .../Model/Country/Postcode/ValidatorInterface.php | 2 +- .../Directory/Model/CountryInformationAcquirer.php | 2 +- app/code/Magento/Directory/Model/Currency.php | 2 +- .../Directory/Model/Currency/DefaultLocator.php | 2 +- .../Magento/Directory/Model/Currency/Filter.php | 2 +- .../Model/Currency/Import/AbstractImport.php | 2 +- .../Directory/Model/Currency/Import/Config.php | 2 +- .../Directory/Model/Currency/Import/Factory.php | 2 +- .../Directory/Model/Currency/Import/FixerIo.php | 2 +- .../Model/Currency/Import/ImportInterface.php | 2 +- .../Model/Currency/Import/Source/Service.php | 2 +- .../Model/Currency/Import/Webservicex.php | 2 +- .../Model/Currency/Import/YahooFinance.php | 2 +- .../Model/CurrencyInformationAcquirer.php | 2 +- .../Directory/Model/Data/CountryInformation.php | 2 +- .../Directory/Model/Data/CurrencyInformation.php | 2 +- .../Magento/Directory/Model/Data/ExchangeRate.php | 2 +- .../Directory/Model/Data/RegionInformation.php | 2 +- app/code/Magento/Directory/Model/Observer.php | 2 +- app/code/Magento/Directory/Model/PriceCurrency.php | 2 +- app/code/Magento/Directory/Model/Region.php | 2 +- app/code/Magento/Directory/Model/RegionFactory.php | 2 +- .../Directory/Model/ResourceModel/Country.php | 2 +- .../Model/ResourceModel/Country/Collection.php | 2 +- .../Model/ResourceModel/Country/Format.php | 2 +- .../ResourceModel/Country/Format/Collection.php | 2 +- .../Directory/Model/ResourceModel/Currency.php | 2 +- .../Directory/Model/ResourceModel/Region.php | 2 +- .../Model/ResourceModel/Region/Collection.php | 2 +- app/code/Magento/Directory/Setup/InstallData.php | 2 +- app/code/Magento/Directory/Setup/InstallSchema.php | 2 +- .../Directory/Test/Unit/Block/CurrencyTest.php | 2 +- .../Magento/Directory/Test/Unit/Block/DataTest.php | 2 +- .../Directory/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Model/AllowedCountriesTest.php | 2 +- .../Unit/Model/Config/Source/AllRegionTest.php | 2 +- .../Test/Unit/Model/Config/Source/CountryTest.php | 2 +- .../Country/Postcode/Config/ConverterTest.php | 2 +- .../Model/Country/Postcode/Config/DataTest.php | 2 +- .../Model/Country/Postcode/Config/ReaderTest.php | 2 +- .../Country/Postcode/Config/SchemaLocatorTest.php | 2 +- .../Unit/Model/Country/Postcode/ConfigTest.php | 2 +- .../Unit/Model/Country/Postcode/ValidatorTest.php | 2 +- .../Unit/Model/CountryInformationAcquirerTest.php | 2 +- .../Directory/Test/Unit/Model/CountryTest.php | 2 +- .../Unit/Model/Currency/DefaultLocatorTest.php | 2 +- .../Test/Unit/Model/Currency/Import/ConfigTest.php | 2 +- .../Unit/Model/Currency/Import/FactoryTest.php | 2 +- .../Unit/Model/Currency/Import/FixerIoTest.php | 2 +- .../Model/Currency/Import/Source/ServiceTest.php | 2 +- .../Model/Currency/Import/YahooFinanceTest.php | 2 +- .../Unit/Model/CurrencyInformationAcquirerTest.php | 2 +- .../Directory/Test/Unit/Model/CurrencyTest.php | 2 +- .../Directory/Test/Unit/Model/ObserverTest.php | 2 +- .../Test/Unit/Model/PriceCurrencyTest.php | 2 +- .../Model/ResourceModel/Country/CollectionTest.php | 2 +- .../Model/ResourceModel/Region/CollectionTest.php | 2 +- .../Directory/Test/Unit/_files/zip_codes.php | 2 +- .../Directory/Test/Unit/_files/zip_codes.xml | 2 +- app/code/Magento/Directory/etc/adminhtml/di.xml | 2 +- .../Magento/Directory/etc/adminhtml/routes.xml | 2 +- .../Magento/Directory/etc/adminhtml/system.xml | 2 +- app/code/Magento/Directory/etc/config.xml | 2 +- app/code/Magento/Directory/etc/crontab.xml | 2 +- app/code/Magento/Directory/etc/di.xml | 2 +- app/code/Magento/Directory/etc/email_templates.xml | 2 +- app/code/Magento/Directory/etc/frontend/routes.xml | 2 +- .../Magento/Directory/etc/frontend/sections.xml | 2 +- app/code/Magento/Directory/etc/module.xml | 2 +- app/code/Magento/Directory/etc/webapi.xml | 2 +- app/code/Magento/Directory/etc/zip_codes.xml | 2 +- app/code/Magento/Directory/etc/zip_codes.xsd | 2 +- app/code/Magento/Directory/registration.php | 2 +- .../email/currency_update_notification.html | 2 +- .../templates/js/optional_zip_countries.phtml | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../layout/catalogsearch_advanced_index.xml | 2 +- .../layout/catalogsearch_advanced_result.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../Directory/view/frontend/layout/default.xml | 2 +- .../view/frontend/templates/currency.phtml | 2 +- .../view/frontend/templates/currency/switch.phtml | 2 +- .../Api/Data/DownloadableOptionInterface.php | 2 +- .../Api/Data/File/ContentInterface.php | 2 +- .../Api/Data/File/ContentUploaderInterface.php | 2 +- .../Downloadable/Api/Data/LinkInterface.php | 2 +- .../Api/Data/ProductAttributeInterface.php | 2 +- .../Downloadable/Api/Data/SampleInterface.php | 2 +- .../Downloadable/Api/LinkRepositoryInterface.php | 2 +- .../Downloadable/Api/SampleRepositoryInterface.php | 2 +- .../Product/Composite/Fieldset/Downloadable.php | 2 +- .../Catalog/Product/Edit/Tab/Downloadable.php | 2 +- .../Product/Edit/Tab/Downloadable/Links.php | 2 +- .../Product/Edit/Tab/Downloadable/Samples.php | 2 +- .../Sales/Items/Column/Downloadable/Name.php | 2 +- .../Downloadable/Block/Catalog/Product/Links.php | 2 +- .../Downloadable/Block/Catalog/Product/Samples.php | 2 +- .../Block/Catalog/Product/View/Type.php | 2 +- .../Block/Checkout/Cart/Item/Renderer.php | 2 +- .../Downloadable/Block/Checkout/Success.php | 2 +- .../Block/Customer/Products/ListProducts.php | 2 +- .../Block/Sales/Order/Email/Items/Downloadable.php | 2 +- .../Sales/Order/Email/Items/Order/Downloadable.php | 2 +- .../Sales/Order/Item/Renderer/Downloadable.php | 2 +- .../Controller/Adminhtml/Downloadable/File.php | 2 +- .../Adminhtml/Downloadable/File/Upload.php | 4 ++-- .../Product/Edit/AddAttributeToTemplate.php | 2 +- .../Downloadable/Product/Edit/AlertsPriceGrid.php | 2 +- .../Downloadable/Product/Edit/AlertsStockGrid.php | 2 +- .../Downloadable/Product/Edit/Categories.php | 2 +- .../Downloadable/Product/Edit/Crosssell.php | 2 +- .../Downloadable/Product/Edit/CrosssellGrid.php | 2 +- .../Downloadable/Product/Edit/CustomOptions.php | 2 +- .../Downloadable/Product/Edit/Duplicate.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Edit.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Form.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Grid.php | 2 +- .../Downloadable/Product/Edit/GridOnly.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Index.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Link.php | 2 +- .../Downloadable/Product/Edit/MassDelete.php | 2 +- .../Downloadable/Product/Edit/MassStatus.php | 2 +- .../Downloadable/Product/Edit/NewAction.php | 2 +- .../Downloadable/Product/Edit/Options.php | 2 +- .../Product/Edit/OptionsImportGrid.php | 2 +- .../Downloadable/Product/Edit/Related.php | 2 +- .../Downloadable/Product/Edit/RelatedGrid.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Sample.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Save.php | 2 +- .../Downloadable/Product/Edit/ShowUpdateResult.php | 2 +- .../Product/Edit/SuggestAttributes.php | 2 +- .../Adminhtml/Downloadable/Product/Edit/Upsell.php | 2 +- .../Downloadable/Product/Edit/UpsellGrid.php | 2 +- .../Downloadable/Product/Edit/Validate.php | 2 +- .../Downloadable/Product/Edit/Wysiwyg.php | 2 +- .../Initialization/Helper/Plugin/Downloadable.php | 2 +- .../Downloadable/Controller/Customer/Products.php | 2 +- .../Magento/Downloadable/Controller/Download.php | 2 +- .../Downloadable/Controller/Download/Link.php | 2 +- .../Controller/Download/LinkSample.php | 2 +- .../Downloadable/Controller/Download/Sample.php | 2 +- .../Helper/Catalog/Product/Configuration.php | 2 +- app/code/Magento/Downloadable/Helper/Data.php | 2 +- app/code/Magento/Downloadable/Helper/Download.php | 2 +- app/code/Magento/Downloadable/Helper/File.php | 2 +- .../Downloadable/Model/ComponentInterface.php | 2 +- .../Downloadable/Model/DownloadableOption.php | 2 +- .../Magento/Downloadable/Model/File/Content.php | 2 +- .../Downloadable/Model/File/ContentUploader.php | 2 +- .../Downloadable/Model/File/ContentValidator.php | 2 +- app/code/Magento/Downloadable/Model/Link.php | 2 +- .../Magento/Downloadable/Model/Link/Builder.php | 2 +- .../Downloadable/Model/Link/ContentValidator.php | 2 +- .../Downloadable/Model/Link/CreateHandler.php | 2 +- .../Downloadable/Model/Link/DeleteHandler.php | 2 +- .../Magento/Downloadable/Model/Link/Purchased.php | 2 +- .../Downloadable/Model/Link/Purchased/Item.php | 2 +- .../Downloadable/Model/Link/ReadHandler.php | 2 +- .../Downloadable/Model/Link/UpdateHandler.php | 2 +- .../Magento/Downloadable/Model/LinkRepository.php | 2 +- .../CartConfiguration/Plugin/Downloadable.php | 2 +- .../Model/Product/CopyConstructor/Downloadable.php | 2 +- .../Magento/Downloadable/Model/Product/Price.php | 2 +- .../Magento/Downloadable/Model/Product/Type.php | 2 +- .../Product/TypeHandler/AbstractTypeHandler.php | 2 +- .../Model/Product/TypeHandler/Link.php | 2 +- .../Model/Product/TypeHandler/Sample.php | 2 +- .../Model/Product/TypeHandler/TypeHandler.php | 2 +- .../Product/TypeHandler/TypeHandlerInterface.php | 2 +- .../TypeTransitionManager/Plugin/Downloadable.php | 2 +- .../Downloadable/Model/ProductOptionProcessor.php | 2 +- .../Model/Quote/Item/CartItemProcessor.php | 2 +- .../Model/ResourceModel/Indexer/Price.php | 2 +- .../Downloadable/Model/ResourceModel/Link.php | 2 +- .../Model/ResourceModel/Link/Collection.php | 2 +- .../Model/ResourceModel/Link/Purchased.php | 2 +- .../ResourceModel/Link/Purchased/Collection.php | 2 +- .../Model/ResourceModel/Link/Purchased/Item.php | 2 +- .../Link/Purchased/Item/Collection.php | 2 +- .../Downloadable/Model/ResourceModel/Sample.php | 2 +- .../Model/ResourceModel/Sample/Collection.php | 2 +- .../Model/Sales/Order/Pdf/Items/AbstractItems.php | 2 +- .../Model/Sales/Order/Pdf/Items/Creditmemo.php | 2 +- .../Model/Sales/Order/Pdf/Items/Invoice.php | 2 +- app/code/Magento/Downloadable/Model/Sample.php | 2 +- .../Magento/Downloadable/Model/Sample/Builder.php | 2 +- .../Downloadable/Model/Sample/ContentValidator.php | 2 +- .../Downloadable/Model/Sample/CreateHandler.php | 2 +- .../Downloadable/Model/Sample/DeleteHandler.php | 2 +- .../Downloadable/Model/Sample/ReadHandler.php | 2 +- .../Downloadable/Model/Sample/UpdateHandler.php | 2 +- .../Downloadable/Model/SampleRepository.php | 2 +- .../Downloadable/Model/Source/Shareable.php | 2 +- .../Downloadable/Model/Source/TypeUpload.php | 2 +- .../System/Config/Source/Contentdisposition.php | 2 +- .../Model/System/Config/Source/Orderitemstatus.php | 2 +- .../Observer/InitOptionRendererObserver.php | 2 +- .../Observer/IsAllowedGuestCheckoutObserver.php | 2 +- .../Observer/SaveDownloadableOrderItemObserver.php | 2 +- .../SetHasDownloadableProductsObserver.php | 2 +- .../Observer/SetLinkStatusObserver.php | 2 +- .../Downloadable/Pricing/Price/LinkPrice.php | 2 +- .../Pricing/Price/LinkPriceInterface.php | 2 +- .../Magento/Downloadable/Setup/InstallData.php | 2 +- .../Magento/Downloadable/Setup/InstallSchema.php | 2 +- .../Product/Edit/Tab/Downloadable/LinksTest.php | 2 +- .../Product/Edit/Tab/Downloadable/SamplesTest.php | 2 +- .../Sales/Items/Column/Downloadable/NameTest.php | 2 +- .../Test/Unit/Block/Catalog/Product/LinksTest.php | 2 +- .../Sales/Order/Email/Items/DownloadableTest.php | 2 +- .../Order/Email/Items/Order/DownloadableTest.php | 2 +- .../Sales/Order/Item/Renderer/DownloadableTest.php | 2 +- .../Adminhtml/Downloadable/File/UploadTest.php | 2 +- .../Downloadable/Product/Edit/LinkTest.php | 2 +- .../Downloadable/Product/Edit/SampleTest.php | 2 +- .../Helper/Plugin/DownloadableTest.php | 2 +- .../Unit/Controller/Download/LinkSampleTest.php | 2 +- .../Test/Unit/Controller/Download/LinkTest.php | 2 +- .../Test/Unit/Controller/Download/SampleTest.php | 2 +- .../Helper/Catalog/Product/ConfigurationTest.php | 2 +- .../Downloadable/Test/Unit/Helper/DownloadTest.php | 2 +- .../Downloadable/Test/Unit/Helper/FileTest.php | 2 +- .../Test/Unit/Model/File/ContentValidatorTest.php | 2 +- .../Test/Unit/Model/Link/BuilderTest.php | 2 +- .../Test/Unit/Model/Link/ContentValidatorTest.php | 2 +- .../Test/Unit/Model/Link/CreateHandlerTest.php | 2 +- .../Test/Unit/Model/Link/UpdateHandlerTest.php | 2 +- .../Test/Unit/Model/LinkRepositoryTest.php | 2 +- .../Product/CopyConstructor/DownloadableTest.php | 2 +- .../CopyConstructor/_files/expected_data.php | 2 +- .../Unit/Model/Product/TypeHandler/LinkTest.php | 2 +- .../Unit/Model/Product/TypeHandler/SampleTest.php | 2 +- .../Test/Unit/Model/Product/TypeTest.php | 2 +- .../Plugin/DownloadableTest.php | 2 +- .../Test/Unit/Model/ProductOptionProcessorTest.php | 2 +- .../Model/Quote/Item/CartItemProcessorTest.php | 2 +- .../Model/Sales/Order/Pdf/Items/CreditmemoTest.php | 2 +- .../Test/Unit/Model/Sample/BuilderTest.php | 2 +- .../Unit/Model/Sample/ContentValidatorTest.php | 2 +- .../Test/Unit/Model/Sample/CreateHandlerTest.php | 2 +- .../Test/Unit/Model/Sample/UpdateHandlerTest.php | 2 +- .../Test/Unit/Model/SampleRepositoryTest.php | 2 +- .../IsAllowedGuestCheckoutObserverTest.php | 2 +- .../SaveDownloadableOrderItemObserverTest.php | 2 +- .../Unit/Observer/SetLinkStatusObserverTest.php | 2 +- .../Test/Unit/Pricing/Price/LinkPriceTest.php | 2 +- .../Product/Form/Modifier/CompositeTest.php | 2 +- .../Product/Form/Modifier/Data/LinksTest.php | 2 +- .../Form/Modifier/DownloadablePanelTest.php | 2 +- .../Product/Form/Modifier/LinksTest.php | 2 +- .../Product/Form/Modifier/SamplesTest.php | 2 +- .../Test/Unit/_files/download_mock.php | 2 +- .../Product/Form/Modifier/Composite.php | 2 +- .../Product/Form/Modifier/Data/Links.php | 2 +- .../Product/Form/Modifier/Data/Samples.php | 2 +- .../Product/Form/Modifier/DownloadablePanel.php | 2 +- .../DataProvider/Product/Form/Modifier/Links.php | 2 +- .../DataProvider/Product/Form/Modifier/Samples.php | 2 +- .../Product/Form/Modifier/UsedDefault.php | 2 +- app/code/Magento/Downloadable/etc/acl.xml | 2 +- app/code/Magento/Downloadable/etc/adminhtml/di.xml | 2 +- .../Magento/Downloadable/etc/adminhtml/menu.xml | 2 +- .../Magento/Downloadable/etc/adminhtml/routes.xml | 2 +- .../Magento/Downloadable/etc/adminhtml/system.xml | 2 +- .../Downloadable/etc/catalog_attributes.xml | 2 +- app/code/Magento/Downloadable/etc/config.xml | 2 +- app/code/Magento/Downloadable/etc/di.xml | 2 +- app/code/Magento/Downloadable/etc/events.xml | 2 +- .../Downloadable/etc/extension_attributes.xml | 2 +- app/code/Magento/Downloadable/etc/fieldset.xml | 2 +- app/code/Magento/Downloadable/etc/frontend/di.xml | 2 +- .../Magento/Downloadable/etc/frontend/events.xml | 2 +- .../Downloadable/etc/frontend/page_types.xml | 2 +- .../Magento/Downloadable/etc/frontend/routes.xml | 2 +- app/code/Magento/Downloadable/etc/module.xml | 2 +- app/code/Magento/Downloadable/etc/pdf.xml | 2 +- .../Magento/Downloadable/etc/product_types.xml | 2 +- app/code/Magento/Downloadable/etc/sales.xml | 2 +- app/code/Magento/Downloadable/etc/webapi.xml | 2 +- .../Magento/Downloadable/etc/webapi_rest/di.xml | 2 +- .../Magento/Downloadable/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Downloadable/registration.php | 2 +- .../layout/catalog_product_downloadable.xml | 2 +- .../adminhtml/layout/catalog_product_simple.xml | 2 +- .../catalog_product_view_type_downloadable.xml | 2 +- .../adminhtml/layout/catalog_product_virtual.xml | 2 +- .../adminhtml/layout/customer_index_wishlist.xml | 2 +- .../view/adminhtml/layout/downloadable_items.xml | 2 +- .../layout/sales_order_creditmemo_new.xml | 2 +- .../layout/sales_order_creditmemo_updateqty.xml | 2 +- .../layout/sales_order_creditmemo_view.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../layout/sales_order_invoice_updateqty.xml | 2 +- .../adminhtml/layout/sales_order_invoice_view.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../product/composite/fieldset/downloadable.phtml | 2 +- .../templates/product/edit/downloadable.phtml | 2 +- .../product/edit/downloadable/links.phtml | 2 +- .../product/edit/downloadable/samples.phtml | 2 +- .../column/downloadable/creditmemo/name.phtml | 2 +- .../items/column/downloadable/invoice/name.phtml | 2 +- .../sales/items/column/downloadable/name.phtml | 2 +- .../adminhtml/web/downloadable-type-handler.js | 2 +- .../adminhtml/web/js/components/file-uploader.js | 2 +- .../web/js/components/is-downloadable-handler.js | 2 +- .../adminhtml/web/js/components/price-handler.js | 2 +- .../web/js/components/upload-type-handler.js | 2 +- .../web/js/components/use-price-default-handler.js | 2 +- .../catalog_product_view_type_downloadable.xml | 2 +- .../checkout_cart_configure_type_downloadable.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../checkout_onepage_review_item_renderers.xml | 2 +- .../frontend/layout/checkout_onepage_success.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../layout/downloadable_customer_products.xml | 2 +- .../layout/multishipping_checkout_success.xml | 2 +- .../sales_email_order_creditmemo_renderers.xml | 2 +- .../layout/sales_email_order_invoice_renderers.xml | 2 +- .../layout/sales_email_order_renderers.xml | 2 +- .../layout/sales_order_creditmemo_renderers.xml | 2 +- .../layout/sales_order_invoice_renderers.xml | 2 +- .../frontend/layout/sales_order_item_renderers.xml | 2 +- .../sales_order_print_creditmemo_renderers.xml | 2 +- .../layout/sales_order_print_invoice_renderers.xml | 2 +- .../layout/sales_order_print_renderers.xml | 2 +- .../Downloadable/view/frontend/requirejs-config.js | 2 +- .../frontend/templates/catalog/product/links.phtml | 2 +- .../templates/catalog/product/samples.phtml | 2 +- .../frontend/templates/catalog/product/type.phtml | 2 +- .../view/frontend/templates/checkout/success.phtml | 2 +- .../templates/customer/products/list.phtml | 2 +- .../order/items/creditmemo/downloadable.phtml | 2 +- .../email/order/items/invoice/downloadable.phtml | 2 +- .../email/order/items/order/downloadable.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../creditmemo/items/renderer/downloadable.phtml | 2 +- .../invoice/items/renderer/downloadable.phtml | 2 +- .../sales/order/items/renderer/downloadable.phtml | 2 +- .../Downloadable/view/frontend/web/downloadable.js | 2 +- .../DownloadableImportExport/Helper/Data.php | 2 +- .../DownloadableImportExport/Helper/Uploader.php | 2 +- .../Model/Import/Product/Type/Downloadable.php | 2 +- .../Model/Import/Product/Type/DownloadableTest.php | 2 +- .../DownloadableImportExport/etc/import.xml | 2 +- .../DownloadableImportExport/etc/module.xml | 2 +- .../DownloadableImportExport/registration.php | 2 +- .../Eav/Api/AttributeGroupRepositoryInterface.php | 2 +- .../Eav/Api/AttributeManagementInterface.php | 2 +- .../Eav/Api/AttributeOptionManagementInterface.php | 2 +- .../Eav/Api/AttributeRepositoryInterface.php | 2 +- .../Eav/Api/AttributeSetManagementInterface.php | 2 +- .../Eav/Api/AttributeSetRepositoryInterface.php | 2 +- .../Api/Data/AttributeFrontendLabelInterface.php | 2 +- .../Eav/Api/Data/AttributeGroupInterface.php | 2 +- .../Data/AttributeGroupSearchResultsInterface.php | 2 +- .../Magento/Eav/Api/Data/AttributeInterface.php | 2 +- .../Eav/Api/Data/AttributeOptionInterface.php | 2 +- .../Eav/Api/Data/AttributeOptionLabelInterface.php | 2 +- .../Api/Data/AttributeSearchResultsInterface.php | 2 +- .../Magento/Eav/Api/Data/AttributeSetInterface.php | 2 +- .../Data/AttributeSetSearchResultsInterface.php | 2 +- .../Api/Data/AttributeValidationRuleInterface.php | 2 +- .../Eav/Block/Adminhtml/Attribute/Edit/Js.php | 2 +- .../Adminhtml/Attribute/Edit/Main/AbstractMain.php | 2 +- .../Attribute/Edit/Options/AbstractOptions.php | 2 +- .../Adminhtml/Attribute/Edit/Options/Labels.php | 2 +- .../Adminhtml/Attribute/Edit/Options/Options.php | 2 +- .../Adminhtml/Attribute/Grid/AbstractGrid.php | 2 +- .../Block/Adminhtml/Attribute/PropertyLocker.php | 2 +- app/code/Magento/Eav/Helper/Data.php | 2 +- .../Attribute/Validation/Rules/Options.php | 2 +- .../Adminhtml/System/Config/Source/Inputtype.php | 2 +- .../System/Config/Source/Inputtype/Validator.php | 2 +- app/code/Magento/Eav/Model/Attribute.php | 2 +- .../Eav/Model/Attribute/Data/AbstractData.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Boolean.php | 2 +- app/code/Magento/Eav/Model/Attribute/Data/Date.php | 2 +- app/code/Magento/Eav/Model/Attribute/Data/File.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Hidden.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Image.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Multiline.php | 2 +- .../Eav/Model/Attribute/Data/Multiselect.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Select.php | 2 +- app/code/Magento/Eav/Model/Attribute/Data/Text.php | 2 +- .../Magento/Eav/Model/Attribute/Data/Textarea.php | 2 +- .../Eav/Model/Attribute/GroupRepository.php | 2 +- .../Magento/Eav/Model/AttributeDataFactory.php | 2 +- app/code/Magento/Eav/Model/AttributeFactory.php | 2 +- app/code/Magento/Eav/Model/AttributeManagement.php | 2 +- app/code/Magento/Eav/Model/AttributeProvider.php | 2 +- app/code/Magento/Eav/Model/AttributeRepository.php | 2 +- .../Magento/Eav/Model/AttributeSetManagement.php | 2 +- .../Magento/Eav/Model/AttributeSetRepository.php | 2 +- app/code/Magento/Eav/Model/Cache/Type.php | 2 +- app/code/Magento/Eav/Model/Config.php | 2 +- .../Eav/Model/EavCustomAttributeTypeLocator.php | 2 +- .../EavCustomAttributeTypeLocator/ComplexType.php | 2 +- .../EavCustomAttributeTypeLocator/SimpleType.php | 2 +- app/code/Magento/Eav/Model/Entity.php | 2 +- .../Magento/Eav/Model/Entity/AbstractEntity.php | 2 +- app/code/Magento/Eav/Model/Entity/Attribute.php | 2 +- .../Model/Entity/Attribute/AbstractAttribute.php | 2 +- .../Model/Entity/Attribute/AttributeInterface.php | 2 +- .../Entity/Attribute/Backend/AbstractBackend.php | 2 +- .../Entity/Attribute/Backend/ArrayBackend.php | 2 +- .../Entity/Attribute/Backend/BackendInterface.php | 2 +- .../Model/Entity/Attribute/Backend/Datetime.php | 2 +- .../Entity/Attribute/Backend/DefaultBackend.php | 2 +- .../Model/Entity/Attribute/Backend/Increment.php | 2 +- .../Model/Entity/Attribute/Backend/Serialized.php | 2 +- .../Eav/Model/Entity/Attribute/Backend/Store.php | 2 +- .../Entity/Attribute/Backend/Time/Created.php | 2 +- .../Entity/Attribute/Backend/Time/Updated.php | 2 +- .../Magento/Eav/Model/Entity/Attribute/Config.php | 2 +- .../Model/Entity/Attribute/Config/Converter.php | 2 +- .../Eav/Model/Entity/Attribute/Config/Reader.php | 2 +- .../Entity/Attribute/Config/SchemaLocator.php | 2 +- .../Eav/Model/Entity/Attribute/Exception.php | 2 +- .../Entity/Attribute/Frontend/AbstractFrontend.php | 2 +- .../Model/Entity/Attribute/Frontend/Datetime.php | 2 +- .../Entity/Attribute/Frontend/DefaultFrontend.php | 2 +- .../Attribute/Frontend/FrontendInterface.php | 2 +- .../Eav/Model/Entity/Attribute/FrontendLabel.php | 2 +- .../Magento/Eav/Model/Entity/Attribute/Group.php | 2 +- .../Magento/Eav/Model/Entity/Attribute/Option.php | 2 +- .../Eav/Model/Entity/Attribute/OptionLabel.php | 2 +- .../Model/Entity/Attribute/OptionManagement.php | 2 +- .../Entity/Attribute/ScopedAttributeInterface.php | 2 +- .../Magento/Eav/Model/Entity/Attribute/Set.php | 2 +- .../Entity/Attribute/Source/AbstractSource.php | 2 +- .../Eav/Model/Entity/Attribute/Source/Boolean.php | 2 +- .../Eav/Model/Entity/Attribute/Source/Config.php | 2 +- .../Entity/Attribute/Source/SourceInterface.php | 2 +- .../Eav/Model/Entity/Attribute/Source/Store.php | 2 +- .../Eav/Model/Entity/Attribute/Source/Table.php | 2 +- .../Eav/Model/Entity/Attribute/ValidationRule.php | 2 +- .../Magento/Eav/Model/Entity/AttributeCache.php | 2 +- .../Magento/Eav/Model/Entity/AttributeLoader.php | 2 +- .../Eav/Model/Entity/AttributeLoaderInterface.php | 2 +- .../Model/Entity/Collection/AbstractCollection.php | 2 +- .../VersionControl/AbstractCollection.php | 2 +- app/code/Magento/Eav/Model/Entity/Context.php | 2 +- .../Magento/Eav/Model/Entity/EntityInterface.php | 2 +- .../Model/Entity/Increment/AbstractIncrement.php | 2 +- .../Eav/Model/Entity/Increment/Alphanum.php | 2 +- .../Model/Entity/Increment/IncrementInterface.php | 2 +- .../Eav/Model/Entity/Increment/NumericValue.php | 2 +- .../Magento/Eav/Model/Entity/Setup/Context.php | 2 +- .../Eav/Model/Entity/Setup/PropertyMapper.php | 2 +- .../Entity/Setup/PropertyMapper/Composite.php | 2 +- .../Model/Entity/Setup/PropertyMapperAbstract.php | 2 +- .../Model/Entity/Setup/PropertyMapperInterface.php | 2 +- app/code/Magento/Eav/Model/Entity/Store.php | 2 +- app/code/Magento/Eav/Model/Entity/Type.php | 2 +- .../Model/Entity/VersionControl/AbstractEntity.php | 2 +- .../Eav/Model/Entity/VersionControl/Metadata.php | 2 +- app/code/Magento/Eav/Model/Form.php | 2 +- app/code/Magento/Eav/Model/Form/Element.php | 2 +- app/code/Magento/Eav/Model/Form/Factory.php | 2 +- app/code/Magento/Eav/Model/Form/Fieldset.php | 2 +- app/code/Magento/Eav/Model/Form/Type.php | 2 +- .../Magento/Eav/Model/ResourceModel/Attribute.php | 2 +- .../Model/ResourceModel/Attribute/Collection.php | 2 +- .../DefaultEntityAttributes/ProviderInterface.php | 2 +- .../Eav/Model/ResourceModel/AttributeLoader.php | 2 +- .../Eav/Model/ResourceModel/AttributePersistor.php | 2 +- .../Magento/Eav/Model/ResourceModel/Config.php | 2 +- .../Eav/Model/ResourceModel/CreateHandler.php | 2 +- .../Eav/Model/ResourceModel/Entity/Attribute.php | 2 +- .../ResourceModel/Entity/Attribute/Collection.php | 2 +- .../Entity/Attribute/Grid/Collection.php | 2 +- .../Model/ResourceModel/Entity/Attribute/Group.php | 2 +- .../Entity/Attribute/Group/Collection.php | 2 +- .../ResourceModel/Entity/Attribute/Option.php | 2 +- .../Entity/Attribute/Option/Collection.php | 2 +- .../Model/ResourceModel/Entity/Attribute/Set.php | 2 +- .../Entity/Attribute/Set/Collection.php | 2 +- .../Eav/Model/ResourceModel/Entity/Store.php | 2 +- .../Eav/Model/ResourceModel/Entity/Type.php | 2 +- .../Model/ResourceModel/Entity/Type/Collection.php | 2 +- .../Eav/Model/ResourceModel/Form/Attribute.php | 2 +- .../ResourceModel/Form/Attribute/Collection.php | 2 +- .../Eav/Model/ResourceModel/Form/Element.php | 2 +- .../ResourceModel/Form/Element/Collection.php | 2 +- .../Eav/Model/ResourceModel/Form/Fieldset.php | 2 +- .../ResourceModel/Form/Fieldset/Collection.php | 2 +- .../Magento/Eav/Model/ResourceModel/Form/Type.php | 2 +- .../Model/ResourceModel/Form/Type/Collection.php | 2 +- .../Magento/Eav/Model/ResourceModel/Helper.php | 2 +- .../Eav/Model/ResourceModel/ReadHandler.php | 2 +- .../Eav/Model/ResourceModel/ReadSnapshot.php | 2 +- .../Eav/Model/ResourceModel/UpdateHandler.php | 2 +- .../Eav/Model/Validator/Attribute/Backend.php | 2 +- .../Magento/Eav/Model/Validator/Attribute/Data.php | 2 +- .../Model/ResourceModel/Entity/Attribute.php | 2 +- app/code/Magento/Eav/Setup/EavSetup.php | 2 +- app/code/Magento/Eav/Setup/InstallData.php | 2 +- app/code/Magento/Eav/Setup/InstallSchema.php | 2 +- .../Adminhtml/Attribute/PropertyLockerTest.php | 2 +- app/code/Magento/Eav/Test/Unit/Helper/DataTest.php | 2 +- .../Attribute/Validation/Rules/OptionsTest.php | 2 +- .../Config/Source/Inputtype/ValidatorTest.php | 2 +- .../System/Config/Source/InputtypeTest.php | 2 +- .../Unit/Model/Attribute/Data/AbstractDataTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/BooleanTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/DateTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/FileTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/ImageTest.php | 2 +- .../Unit/Model/Attribute/Data/MultilineTest.php | 2 +- .../Unit/Model/Attribute/Data/MultiselectTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/SelectTest.php | 2 +- .../Test/Unit/Model/Attribute/Data/TextTest.php | 2 +- .../Unit/Model/Attribute/GroupRepositoryTest.php | 2 +- .../Eav/Test/Unit/Model/AttributeFactoryTest.php | 2 +- .../Test/Unit/Model/AttributeManagementTest.php | 2 +- .../Test/Unit/Model/AttributeSetManagementTest.php | 2 +- .../Test/Unit/Model/AttributeSetRepositoryTest.php | 2 +- .../Magento/Eav/Test/Unit/Model/ConfigTest.php | 2 +- .../Model/EavCustomAttributeTypeLocatorTest.php | 2 +- .../Test/Unit/Model/Entity/AbstractEntityTest.php | 2 +- .../Entity/Attribute/AbstractAttributeTest.php | 2 +- .../Entity/Attribute/Backend/AbstractTest.php | 2 +- .../Entity/Attribute/Backend/ArrayBackendTest.php | 2 +- .../Entity/Attribute/Config/ConverterTest.php | 2 +- .../Unit/Model/Entity/Attribute/Config/XsdTest.php | 2 +- .../Attribute/Config/_files/eav_attributes.php | 2 +- .../Attribute/Config/_files/eav_attributes.xml | 2 +- .../Config/_files/invalidEavAttributeXmlArray.php | 2 +- .../Unit/Model/Entity/Attribute/ConfigTest.php | 2 +- .../Entity/Attribute/Frontend/DatetimeTest.php | 2 +- .../Test/Unit/Model/Entity/Attribute/GroupTest.php | 2 +- .../Entity/Attribute/OptionManagementTest.php | 2 +- .../Test/Unit/Model/Entity/Attribute/SetTest.php | 2 +- .../Model/Entity/Attribute/Source/BooleanTest.php | 2 +- .../Model/Entity/Attribute/Source/TableTest.php | 2 +- .../Eav/Test/Unit/Model/Entity/AttributeTest.php | 2 +- .../Entity/Collection/AbstractCollectionStub.php | 2 +- .../Entity/Collection/AbstractCollectionTest.php | 2 +- .../VersionControl/AbstractCollectionStub.php | 2 +- .../VersionControl/AbstractCollectionTest.php | 2 +- .../Unit/Model/Entity/Increment/AlphanumTest.php | 2 +- .../Unit/Model/Entity/Increment/NumericTest.php | 2 +- .../Eav/Test/Unit/Model/Entity/TypeTest.php | 2 +- .../Entity/VersionControl/AbstractEntityTest.php | 2 +- .../Model/Entity/VersionControl/MetadataTest.php | 2 +- app/code/Magento/Eav/Test/Unit/Model/FormTest.php | 2 +- .../ResourceModel/Attribute/CollectionTest.php | 2 +- .../Entity/Attribute/CollectionTest.php | 2 +- .../Entity/Attribute/Option/CollectionTest.php | 2 +- .../ResourceModel/Entity/Attribute/SetTest.php | 2 +- .../Model/ResourceModel/Entity/AttributeTest.php | 2 +- .../Unit/Model/Validator/Attribute/BackendTest.php | 2 +- .../Unit/Model/Validator/Attribute/DataTest.php | 2 +- .../Model/ResourceModel/Entity/AttributeTest.php | 2 +- .../Unit/_files/describe_table_eav_attribute.php | 2 +- app/code/Magento/Eav/etc/cache.xml | 2 +- app/code/Magento/Eav/etc/config.xml | 2 +- app/code/Magento/Eav/etc/di.xml | 2 +- app/code/Magento/Eav/etc/eav_attributes.xsd | 2 +- app/code/Magento/Eav/etc/extension_attributes.xml | 2 +- app/code/Magento/Eav/etc/module.xml | 2 +- app/code/Magento/Eav/etc/validation.xml | 2 +- app/code/Magento/Eav/etc/webapi.xml | 2 +- app/code/Magento/Eav/registration.php | 2 +- .../adminhtml/templates/attribute/edit/js.phtml | 2 +- .../Magento/Email/Block/Adminhtml/Template.php | 2 +- .../Email/Block/Adminhtml/Template/Edit.php | 2 +- .../Email/Block/Adminhtml/Template/Edit/Form.php | 2 +- .../Block/Adminhtml/Template/Grid/Filter/Type.php | 2 +- .../Adminhtml/Template/Grid/Renderer/Action.php | 2 +- .../Adminhtml/Template/Grid/Renderer/Sender.php | 2 +- .../Adminhtml/Template/Grid/Renderer/Type.php | 2 +- .../Email/Block/Adminhtml/Template/Preview.php | 2 +- .../Email/Controller/Adminhtml/Email/Template.php | 2 +- .../Adminhtml/Email/Template/DefaultTemplate.php | 2 +- .../Controller/Adminhtml/Email/Template/Delete.php | 2 +- .../Controller/Adminhtml/Email/Template/Edit.php | 2 +- .../Controller/Adminhtml/Email/Template/Grid.php | 2 +- .../Controller/Adminhtml/Email/Template/Index.php | 2 +- .../Adminhtml/Email/Template/NewAction.php | 2 +- .../Adminhtml/Email/Template/Preview.php | 2 +- .../Controller/Adminhtml/Email/Template/Save.php | 2 +- app/code/Magento/Email/Model/AbstractTemplate.php | 2 +- app/code/Magento/Email/Model/BackendTemplate.php | 2 +- .../Magento/Email/Model/Design/Backend/Logo.php | 2 +- .../Model/Plugin/TransportInterfacePlugin.php | 2 +- .../Email/Model/Plugin/WindowsSmtpConfig.php | 2 +- .../Magento/Email/Model/ResourceModel/Template.php | 2 +- .../Model/ResourceModel/Template/Collection.php | 2 +- app/code/Magento/Email/Model/Source/Variables.php | 2 +- app/code/Magento/Email/Model/Template.php | 2 +- app/code/Magento/Email/Model/Template/Config.php | 2 +- .../Email/Model/Template/Config/Converter.php | 2 +- .../Magento/Email/Model/Template/Config/Data.php | 2 +- .../Email/Model/Template/Config/FileIterator.php | 2 +- .../Email/Model/Template/Config/FileResolver.php | 2 +- .../Magento/Email/Model/Template/Config/Reader.php | 2 +- .../Email/Model/Template/Config/SchemaLocator.php | 2 +- .../Magento/Email/Model/Template/Css/Processor.php | 2 +- app/code/Magento/Email/Model/Template/Filter.php | 2 +- .../Email/Model/Template/SenderResolver.php | 2 +- app/code/Magento/Email/Setup/InstallSchema.php | 2 +- .../Block/Adminhtml/Template/Edit/FormTest.php | 2 +- .../Unit/Block/Adminhtml/Template/EditTest.php | 2 +- .../Template/Grid/Renderer/ActionTest.php | 2 +- .../Template/Grid/Renderer/SenderTest.php | 2 +- .../Adminhtml/Template/Grid/Renderer/TypeTest.php | 2 +- .../Unit/Block/Adminhtml/Template/PreviewTest.php | 2 +- .../Test/Unit/Block/Adminhtml/TemplateTest.php | 2 +- .../Adminhtml/Email/Template/EditTest.php | 2 +- .../Adminhtml/Email/Template/IndexTest.php | 2 +- .../Email/Test/Unit/Model/AbstractTemplateTest.php | 2 +- .../Email/Test/Unit/Model/BackendTemplateTest.php | 2 +- .../Email/Test/Unit/Model/Source/VariablesTest.php | 2 +- .../Unit/Model/Template/Config/ConverterTest.php | 2 +- .../Model/Template/Config/FileIteratorTest.php | 2 +- .../Model/Template/Config/FileResolverTest.php | 2 +- .../Test/Unit/Model/Template/Config/ReaderTest.php | 2 +- .../Model/Template/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Template/Config/XsdTest.php | 2 +- .../Fixture/ModuleOne/etc/email_templates_one.xml | 2 +- .../Fixture/ModuleTwo/etc/email_templates_two.xml | 2 +- .../Config/_files/email_templates_merged.php | 2 +- .../Config/_files/email_templates_merged.xml | 2 +- .../Email/Test/Unit/Model/Template/ConfigTest.php | 2 +- .../Test/Unit/Model/Template/Css/ProcessorTest.php | 2 +- .../Email/Test/Unit/Model/Template/FilterTest.php | 2 +- .../Magento/Email/Test/Unit/Model/TemplateTest.php | 6 +++--- app/code/Magento/Email/etc/acl.xml | 2 +- app/code/Magento/Email/etc/adminhtml/di.xml | 2 +- app/code/Magento/Email/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Email/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Email/etc/config.xml | 2 +- app/code/Magento/Email/etc/di.xml | 2 +- app/code/Magento/Email/etc/email_templates.xml | 2 +- app/code/Magento/Email/etc/email_templates.xsd | 2 +- app/code/Magento/Email/etc/frontend/di.xml | 2 +- app/code/Magento/Email/etc/module.xml | 2 +- app/code/Magento/Email/registration.php | 2 +- .../layout/adminhtml_email_template_grid.xml | 2 +- .../layout/adminhtml_email_template_grid_block.xml | 2 +- .../layout/adminhtml_email_template_index.xml | 2 +- .../layout/adminhtml_email_template_preview.xml | 2 +- .../view/adminhtml/templates/template/edit.phtml | 2 +- .../view/adminhtml/templates/template/list.phtml | 2 +- .../adminhtml/templates/template/preview.phtml | 2 +- .../adminhtml/ui_component/design_config_form.xml | 2 +- .../Magento/Email/view/frontend/email/footer.html | 2 +- .../Magento/Email/view/frontend/email/header.html | 2 +- .../Block/Adminhtml/Crypt/Key/Edit.php | 2 +- .../Block/Adminhtml/Crypt/Key/Form.php | 2 +- .../Controller/Adminhtml/Crypt/Key.php | 2 +- .../Controller/Adminhtml/Crypt/Key/Index.php | 2 +- .../Controller/Adminhtml/Crypt/Key/Save.php | 2 +- .../Model/ResourceModel/Key/Change.php | 2 +- .../Controller/Adminhtml/Crypt/Key/SaveTest.php | 2 +- .../Unit/Model/ResourceModel/Key/ChangeTest.php | 2 +- app/code/Magento/EncryptionKey/etc/acl.xml | 2 +- .../Magento/EncryptionKey/etc/adminhtml/menu.xml | 2 +- .../Magento/EncryptionKey/etc/adminhtml/routes.xml | 2 +- app/code/Magento/EncryptionKey/etc/config.xml | 2 +- app/code/Magento/EncryptionKey/etc/module.xml | 2 +- app/code/Magento/EncryptionKey/registration.php | 2 +- .../adminhtml/layout/adminhtml_crypt_key_index.xml | 2 +- app/code/Magento/Fedex/Model/Carrier.php | 2 +- .../Rma/Edit/Tab/General/Shippingmethod.php | 2 +- app/code/Magento/Fedex/Model/Source/Dropoff.php | 2 +- app/code/Magento/Fedex/Model/Source/Freemethod.php | 2 +- app/code/Magento/Fedex/Model/Source/Generic.php | 2 +- app/code/Magento/Fedex/Model/Source/Method.php | 2 +- app/code/Magento/Fedex/Model/Source/Packaging.php | 2 +- .../Magento/Fedex/Model/Source/Unitofmeasure.php | 2 +- app/code/Magento/Fedex/Setup/InstallData.php | 2 +- .../Magento/Fedex/Test/Unit/Model/CarrierTest.php | 2 +- app/code/Magento/Fedex/etc/adminhtml/system.xml | 2 +- app/code/Magento/Fedex/etc/config.xml | 2 +- app/code/Magento/Fedex/etc/di.xml | 2 +- app/code/Magento/Fedex/etc/module.xml | 2 +- app/code/Magento/Fedex/registration.php | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../js/model/shipping-rates-validation-rules.js | 2 +- .../web/js/model/shipping-rates-validator.js | 2 +- .../web/js/view/shipping-rates-validation.js | 2 +- .../GiftMessage/Api/CartRepositoryInterface.php | 2 +- .../GiftMessage/Api/Data/MessageInterface.php | 2 +- .../Api/GuestCartRepositoryInterface.php | 2 +- .../Api/GuestItemRepositoryInterface.php | 2 +- .../GiftMessage/Api/ItemRepositoryInterface.php | 2 +- .../Api/OrderItemRepositoryInterface.php | 2 +- .../GiftMessage/Api/OrderRepositoryInterface.php | 2 +- .../Block/Adminhtml/Product/Helper/Form/Config.php | 2 +- .../Block/Adminhtml/Sales/Order/Create/Form.php | 2 +- .../Adminhtml/Sales/Order/Create/Giftoptions.php | 2 +- .../Block/Adminhtml/Sales/Order/Create/Items.php | 2 +- .../Block/Adminhtml/Sales/Order/View/Form.php | 2 +- .../Adminhtml/Sales/Order/View/Giftoptions.php | 2 +- .../Block/Adminhtml/Sales/Order/View/Items.php | 2 +- .../Magento/GiftMessage/Block/Cart/GiftOptions.php | 2 +- .../Cart/Item/Renderer/Actions/GiftOptions.php | 2 +- .../Cart/Item/Renderer/Actions/ItemIdProcessor.php | 2 +- .../Renderer/Actions/LayoutProcessorInterface.php | 2 +- .../Magento/GiftMessage/Block/Message/Inline.php | 2 +- .../Message/Multishipping/Plugin/ItemsBox.php | 2 +- app/code/Magento/GiftMessage/Helper/Message.php | 2 +- .../Magento/GiftMessage/Model/CartRepository.php | 2 +- .../GiftMessage/Model/CompositeConfigProvider.php | 2 +- .../Model/GiftMessageConfigProvider.php | 2 +- .../GiftMessage/Model/GiftMessageManager.php | 2 +- .../GiftMessage/Model/GuestCartRepository.php | 2 +- .../GiftMessage/Model/GuestItemRepository.php | 2 +- .../Magento/GiftMessage/Model/ItemRepository.php | 2 +- app/code/Magento/GiftMessage/Model/Message.php | 2 +- .../GiftMessage/Model/OrderItemRepository.php | 2 +- .../Magento/GiftMessage/Model/OrderRepository.php | 2 +- .../Magento/GiftMessage/Model/Plugin/OrderGet.php | 2 +- .../Magento/GiftMessage/Model/Plugin/OrderSave.php | 2 +- .../Magento/GiftMessage/Model/Plugin/QuoteItem.php | 2 +- .../GiftMessage/Model/ResourceModel/Message.php | 2 +- .../Model/ResourceModel/Message/Collection.php | 2 +- app/code/Magento/GiftMessage/Model/Save.php | 2 +- .../Model/Type/Plugin/Multishipping.php | 2 +- .../GiftMessage/Model/Type/Plugin/Onepage.php | 2 +- app/code/Magento/GiftMessage/Model/TypeFactory.php | 2 +- .../MultishippingEventCreateOrdersObserver.php | 2 +- .../SalesEventOrderItemToQuoteItemObserver.php | 2 +- .../Observer/SalesEventOrderToQuoteObserver.php | 2 +- .../SalesEventQuoteSubmitBeforeObserver.php | 2 +- app/code/Magento/GiftMessage/Setup/InstallData.php | 2 +- .../Magento/GiftMessage/Setup/InstallSchema.php | 2 +- app/code/Magento/GiftMessage/Setup/UpgradeData.php | 2 +- .../Test/Unit/Block/Cart/GiftOptionsTest.php | 2 +- .../Cart/Item/Renderer/Actions/GiftOptionsTest.php | 2 +- .../Item/Renderer/Actions/ItemIdProcessorTest.php | 2 +- .../Test/Unit/Block/Message/InlineTest.php | 2 +- .../GiftMessage/Test/Unit/Helper/MessageTest.php | 2 +- .../Test/Unit/Model/CartRepositoryTest.php | 2 +- .../Unit/Model/CompositeConfigProviderTest.php | 2 +- .../Unit/Model/GiftMessageConfigProviderTest.php | 2 +- .../Test/Unit/Model/GiftMessageManagerTest.php | 2 +- .../Test/Unit/Model/GuestCartRepositoryTest.php | 2 +- .../Test/Unit/Model/GuestItemRepositoryTest.php | 2 +- .../Test/Unit/Model/ItemRepositoryTest.php | 2 +- .../Test/Unit/Model/OrderItemRepositoryTest.php | 2 +- .../Test/Unit/Model/Plugin/OrderGetTest.php | 2 +- .../Test/Unit/Model/Plugin/OrderSaveTest.php | 2 +- .../Test/Unit/Model/Plugin/QuoteItemTest.php | 2 +- .../GiftMessage/Test/Unit/Model/SaveTest.php | 2 +- .../Unit/Model/Type/Plugin/MultishippingTest.php | 2 +- .../Test/Unit/Model/Type/Plugin/OnepageTest.php | 2 +- .../MultishippingEventCreateOrdersObserverTest.php | 2 +- .../SalesEventQuoteSubmitBeforeObserverTest.php | 2 +- .../Product/Modifier/GiftMessageTest.php | 2 +- .../DataProvider/Product/Modifier/GiftMessage.php | 2 +- app/code/Magento/GiftMessage/etc/adminhtml/di.xml | 2 +- .../Magento/GiftMessage/etc/adminhtml/events.xml | 2 +- .../Magento/GiftMessage/etc/adminhtml/system.xml | 2 +- .../Magento/GiftMessage/etc/catalog_attributes.xml | 2 +- app/code/Magento/GiftMessage/etc/config.xml | 2 +- app/code/Magento/GiftMessage/etc/di.xml | 2 +- .../GiftMessage/etc/extension_attributes.xml | 2 +- app/code/Magento/GiftMessage/etc/fieldset.xml | 2 +- app/code/Magento/GiftMessage/etc/frontend/di.xml | 2 +- .../Magento/GiftMessage/etc/frontend/events.xml | 2 +- .../Magento/GiftMessage/etc/frontend/routes.xml | 2 +- app/code/Magento/GiftMessage/etc/module.xml | 2 +- app/code/Magento/GiftMessage/etc/webapi.xml | 2 +- .../Magento/GiftMessage/etc/webapi_rest/events.xml | 2 +- app/code/Magento/GiftMessage/registration.php | 2 +- .../adminhtml/layout/sales_order_create_index.xml | 2 +- .../layout/sales_order_create_load_block_data.xml | 2 +- .../layout/sales_order_create_load_block_items.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../view/adminhtml/templates/giftoptionsform.phtml | 2 +- .../view/adminhtml/templates/popup.phtml | 2 +- .../templates/sales/order/create/giftoptions.phtml | 2 +- .../templates/sales/order/create/items.phtml | 2 +- .../templates/sales/order/view/giftoptions.phtml | 2 +- .../templates/sales/order/view/items.phtml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../GiftMessage/view/frontend/requirejs-config.js | 2 +- .../frontend/templates/cart/gift_options.phtml | 2 +- .../cart/item/renderer/actions/gift_options.phtml | 2 +- .../view/frontend/templates/inline.phtml | 2 +- .../GiftMessage/view/frontend/web/extra-options.js | 2 +- .../GiftMessage/view/frontend/web/gift-options.js | 2 +- .../view/frontend/web/js/action/gift-options.js | 2 +- .../view/frontend/web/js/model/gift-message.js | 2 +- .../view/frontend/web/js/model/gift-options.js | 2 +- .../view/frontend/web/js/model/url-builder.js | 2 +- .../view/frontend/web/js/view/gift-message.js | 2 +- .../frontend/web/template/gift-message-form.html | 2 +- .../web/template/gift-message-item-level.html | 2 +- .../view/frontend/web/template/gift-message.html | 2 +- app/code/Magento/GoogleAdwords/Block/Code.php | 2 +- app/code/Magento/GoogleAdwords/Helper/Data.php | 2 +- .../Model/Config/Backend/AbstractConversion.php | 2 +- .../GoogleAdwords/Model/Config/Backend/Color.php | 2 +- .../Model/Config/Backend/ConversionId.php | 2 +- .../GoogleAdwords/Model/Config/Source/Language.php | 2 +- .../Model/Config/Source/ValueType.php | 2 +- .../GoogleAdwords/Model/Filter/UppercaseTitle.php | 2 +- .../GoogleAdwords/Model/Validator/Factory.php | 2 +- .../Observer/SetConversionValueObserver.php | 2 +- .../GoogleAdwords/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Config/Source/ValueTypeTest.php | 2 +- .../Test/Unit/Model/Filter/UppercaseTitleTest.php | 2 +- .../Test/Unit/Model/Validator/FactoryTest.php | 2 +- .../Observer/SetConversionValueObserverTest.php | 2 +- .../Magento/GoogleAdwords/etc/adminhtml/system.xml | 2 +- app/code/Magento/GoogleAdwords/etc/config.xml | 2 +- app/code/Magento/GoogleAdwords/etc/di.xml | 2 +- .../Magento/GoogleAdwords/etc/frontend/events.xml | 2 +- app/code/Magento/GoogleAdwords/etc/module.xml | 2 +- app/code/Magento/GoogleAdwords/registration.php | 2 +- .../frontend/layout/checkout_onepage_success.xml | 2 +- .../view/frontend/templates/code.phtml | 2 +- app/code/Magento/GoogleAnalytics/Block/Ga.php | 2 +- app/code/Magento/GoogleAnalytics/Helper/Data.php | 2 +- ...ogleAnalyticsOnOrderSuccessPageViewObserver.php | 2 +- app/code/Magento/GoogleAnalytics/etc/acl.xml | 2 +- .../GoogleAnalytics/etc/adminhtml/system.xml | 2 +- app/code/Magento/GoogleAnalytics/etc/di.xml | 2 +- .../GoogleAnalytics/etc/frontend/events.xml | 2 +- app/code/Magento/GoogleAnalytics/etc/module.xml | 2 +- app/code/Magento/GoogleAnalytics/registration.php | 2 +- .../view/frontend/layout/default.xml | 2 +- .../view/frontend/templates/ga.phtml | 2 +- .../Magento/GoogleOptimizer/Block/AbstractCode.php | 2 +- .../Block/Adminhtml/AbstractTab.php | 2 +- .../Catalog/Category/Edit/Googleoptimizer.php | 2 +- .../Catalog/Category/Edit/GoogleoptimizerForm.php | 2 +- .../Catalog/Product/Edit/Tab/Googleoptimizer.php | 2 +- .../Cms/Page/Edit/Tab/Googleoptimizer.php | 2 +- .../Block/Adminhtml/Cms/Page/EntityCmsPage.php | 2 +- .../GoogleOptimizer/Block/Adminhtml/Form.php | 2 +- .../GoogleOptimizer/Block/Code/Category.php | 2 +- .../Magento/GoogleOptimizer/Block/Code/Page.php | 2 +- .../Magento/GoogleOptimizer/Block/Code/Product.php | 2 +- app/code/Magento/GoogleOptimizer/Helper/Code.php | 2 +- app/code/Magento/GoogleOptimizer/Helper/Data.php | 2 +- app/code/Magento/GoogleOptimizer/Helper/Form.php | 2 +- app/code/Magento/GoogleOptimizer/Model/Code.php | 2 +- .../Model/Plugin/Catalog/Category/DataProvider.php | 2 +- .../Catalog/Product/Category/DataProvider.php | 2 +- .../Model/Plugin/Cms/Page/DataProvider.php | 2 +- .../GoogleOptimizer/Model/ResourceModel/Code.php | 2 +- .../GoogleOptimizer/Observer/AbstractSave.php | 2 +- ...eleteCategoryGoogleExperimentScriptObserver.php | 2 +- .../SaveGoogleExperimentScriptObserver.php | 2 +- .../DeleteCmsGoogleExperimentScriptObserver.php | 2 +- .../CmsPage/SaveGoogleExperimentScriptObserver.php | 2 +- ...DeleteProductGoogleExperimentScriptObserver.php | 2 +- .../Product/SaveGoogleExperimentScriptObserver.php | 2 +- .../GoogleOptimizer/Setup/InstallSchema.php | 2 +- .../Test/Unit/Block/Code/CategoryTest.php | 2 +- .../Test/Unit/Block/Code/ProductTest.php | 2 +- .../GoogleOptimizer/Test/Unit/Helper/CodeTest.php | 2 +- .../GoogleOptimizer/Test/Unit/Helper/DataTest.php | 2 +- .../GoogleOptimizer/Test/Unit/Helper/FormTest.php | 2 +- .../Catalog/Product/Category/DataProviderTest.php | 2 +- ...eCategoryGoogleExperimentScriptObserverTest.php | 2 +- .../SaveGoogleExperimentScriptObserverTest.php | 2 +- ...DeleteCmsGoogleExperimentScriptObserverTest.php | 2 +- .../SaveGoogleExperimentScriptObserverTest.php | 2 +- ...teProductGoogleExperimentScriptObserverTest.php | 2 +- .../SaveGoogleExperimentScriptObserverTest.php | 2 +- .../Product/Form/Modifier/GoogleOptimizerTest.php | 2 +- .../Product/Form/Modifier/GoogleOptimizer.php | 2 +- .../Magento/GoogleOptimizer/etc/adminhtml/di.xml | 2 +- .../GoogleOptimizer/etc/adminhtml/system.xml | 2 +- app/code/Magento/GoogleOptimizer/etc/config.xml | 2 +- app/code/Magento/GoogleOptimizer/etc/events.xml | 2 +- app/code/Magento/GoogleOptimizer/etc/module.xml | 2 +- app/code/Magento/GoogleOptimizer/registration.php | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../view/adminhtml/layout/cms_page_edit.xml | 2 +- .../view/adminhtml/ui_component/category_form.xml | 2 +- .../view/adminhtml/ui_component/cms_page_form.xml | 2 +- .../adminhtml/ui_component/new_category_form.xml | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../view/frontend/layout/cms_page_view.xml | 2 +- .../Model/Export/Product/Type/Grouped.php | 2 +- .../Model/Export/RowCustomizer.php | 2 +- .../Model/Import/Product/Type/Grouped.php | 2 +- .../Model/Import/Product/Type/Grouped/Links.php | 2 +- .../Model/Export/Product/RowCustomizerTest.php | 2 +- .../Import/Product/Type/Grouped/LinksTest.php | 2 +- .../Unit/Model/Import/Product/Type/GroupedTest.php | 2 +- app/code/Magento/GroupedImportExport/etc/di.xml | 2 +- .../Magento/GroupedImportExport/etc/export.xml | 2 +- .../Magento/GroupedImportExport/etc/import.xml | 2 +- .../Magento/GroupedImportExport/etc/module.xml | 2 +- .../Magento/GroupedImportExport/registration.php | 2 +- .../Block/Adminhtml/Items/Column/Name/Grouped.php | 2 +- .../Block/Adminhtml/Order/Create/Sidebar.php | 2 +- .../Product/Composite/Fieldset/Grouped.php | 2 +- .../Block/Cart/Item/Renderer/Grouped.php | 2 +- .../Block/Order/Email/Items/Order/Grouped.php | 2 +- .../Block/Order/Item/Renderer/Grouped.php | 2 +- .../Block/Product/Grouped/AssociatedProducts.php | 2 +- .../AssociatedProducts/ListAssociatedProducts.php | 2 +- .../Block/Product/View/Type/Grouped.php | 2 +- .../GroupedProduct/Block/Stockqty/Type/Grouped.php | 2 +- .../Controller/Adminhtml/Edit/Popup.php | 2 +- .../GroupedProduct/CustomerData/GroupedItem.php | 2 +- .../Product/Configuration/Plugin/Grouped.php | 2 +- .../Model/Order/Pdf/Items/Creditmemo/Grouped.php | 2 +- .../Model/Order/Pdf/Items/Invoice/Grouped.php | 2 +- .../Product/Cart/Configuration/Plugin/Grouped.php | 2 +- .../GroupedProduct/Model/Product/CatalogPrice.php | 2 +- .../Model/Product/CopyConstructor/Grouped.php | 2 +- .../Helper/ProductLinks/Plugin/Grouped.php | 2 +- .../Product/Link/CollectionProvider/Grouped.php | 2 +- .../Model/Product/Link/ProductEntity/Converter.php | 2 +- .../GroupedProduct/Model/Product/Type/Grouped.php | 2 +- .../Model/Product/Type/Grouped/Backend.php | 2 +- .../Model/Product/Type/Grouped/Price.php | 2 +- .../GroupedProduct/Model/Product/Type/Plugin.php | 2 +- .../Model/ResourceModel/Indexer/Stock/Grouped.php | 2 +- .../Product/Indexer/Price/Grouped.php | 2 +- .../Product/Indexer/Price/GroupedInterface.php | 2 +- .../Model/ResourceModel/Product/Link.php | 2 +- .../Product/Link/RelationPersister.php | 2 +- .../Type/Grouped/AssociatedProductsCollection.php | 2 +- .../Product/Quote/Plugin/Initializer.php | 2 +- .../Pricing/Price/ConfiguredPrice.php | 2 +- .../GroupedProduct/Pricing/Price/FinalPrice.php | 2 +- .../Magento/GroupedProduct/Setup/InstallData.php | 2 +- .../Magento/GroupedProduct/Setup/UpgradeData.php | 2 +- .../Block/Adminhtml/Order/Create/SidebarTest.php | 2 +- .../Product/Composite/Fieldset/GroupedTest.php | 2 +- .../Unit/Block/Cart/Item/Renderer/GroupedTest.php | 2 +- .../ListAssociatedProductsTest.php | 2 +- .../Product/Grouped/AssociatedProductsTest.php | 2 +- .../Unit/Block/Product/View/Type/GroupedTest.php | 2 +- .../Test/Unit/Block/Stockqty/Type/GroupedTest.php | 2 +- .../Unit/Controller/Adminhtml/Edit/PopupTest.php | 2 +- .../Product/Configuration/Plugin/GroupedTest.php | 2 +- .../Cart/Configuration/Plugin/GroupedTest.php | 2 +- .../Test/Unit/Model/Product/CatalogPriceTest.php | 2 +- .../Model/Product/CopyConstructor/GroupedTest.php | 2 +- .../Helper/ProductLinks/Plugin/GroupedTest.php | 2 +- .../Unit/Model/Product/Type/Grouped/PriceTest.php | 2 +- .../Test/Unit/Model/Product/Type/GroupedTest.php | 2 +- .../Test/Unit/Model/Product/Type/PluginTest.php | 2 +- .../GroupedProduct/Test/Unit/Model/ProductTest.php | 2 +- .../Product/Link/RelationPersisterTest.php | 2 +- .../Unit/Pricing/Price/ConfiguredPriceTest.php | 2 +- .../Test/Unit/Pricing/Price/FinalPriceTest.php | 2 +- .../Product/Form/Modifier/CustomOptionsTest.php | 2 +- .../Product/Form/Modifier/GroupedTest.php | 2 +- .../Product/GroupedProductDataProviderTest.php | 2 +- .../Product/Form/Modifier/CustomOptions.php | 2 +- .../DataProvider/Product/Form/Modifier/Grouped.php | 2 +- .../Product/Form/Modifier/StockData.php | 2 +- .../Product/GroupedProductDataProvider.php | 2 +- .../Magento/GroupedProduct/etc/adminhtml/di.xml | 2 +- .../GroupedProduct/etc/adminhtml/routes.xml | 2 +- .../GroupedProduct/etc/adminhtml/system.xml | 2 +- app/code/Magento/GroupedProduct/etc/config.xml | 2 +- app/code/Magento/GroupedProduct/etc/di.xml | 2 +- .../GroupedProduct/etc/extension_attributes.xml | 2 +- .../Magento/GroupedProduct/etc/frontend/di.xml | 2 +- app/code/Magento/GroupedProduct/etc/module.xml | 2 +- app/code/Magento/GroupedProduct/etc/pdf.xml | 2 +- .../Magento/GroupedProduct/etc/product_types.xml | 2 +- app/code/Magento/GroupedProduct/etc/sales.xml | 2 +- app/code/Magento/GroupedProduct/registration.php | 2 +- .../adminhtml/layout/catalog_product_grouped.xml | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../layout/catalog_product_view_type_grouped.xml | 2 +- .../adminhtml/layout/groupedproduct_edit_popup.xml | 2 +- .../adminhtml/layout/groupedproduct_popup_grid.xml | 2 +- .../layout/sales_order_creditmemo_new.xml | 2 +- .../layout/sales_order_creditmemo_updateqty.xml | 2 +- .../layout/sales_order_creditmemo_view.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../layout/sales_order_invoice_updateqty.xml | 2 +- .../adminhtml/layout/sales_order_invoice_view.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../view/adminhtml/requirejs-config.js | 2 +- .../product/composite/fieldset/grouped.phtml | 2 +- .../templates/product/grouped/grouped.phtml | 2 +- .../adminhtml/templates/product/grouped/list.phtml | 2 +- .../templates/product/stock/disabler.phtml | 2 +- .../ui_component/grouped_product_listing.xml | 2 +- .../view/adminhtml/web/css/grouped-product.css | 2 +- .../view/adminhtml/web/js/grouped-product.js | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../base/templates/product/price/final_price.phtml | 2 +- .../catalog_product_rss_feed_renderer_list.xml | 2 +- .../layout/catalog_product_view_type_grouped.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../checkout_onepage_review_item_renderers.xml | 2 +- .../sales_email_order_creditmemo_renderers.xml | 2 +- .../layout/sales_email_order_invoice_renderers.xml | 2 +- .../layout/sales_email_order_renderers.xml | 2 +- .../view/frontend/layout/sales_guest_invoice.xml | 2 +- .../layout/sales_order_creditmemo_renderers.xml | 2 +- .../layout/sales_order_invoice_renderers.xml | 2 +- .../frontend/layout/sales_order_item_renderers.xml | 2 +- .../sales_order_print_creditmemo_renderers.xml | 2 +- .../layout/sales_order_print_invoice_renderers.xml | 2 +- .../layout/sales_order_print_renderers.xml | 2 +- .../templates/product/view/type/default.phtml | 2 +- .../templates/product/view/type/grouped.phtml | 2 +- .../ImportExport/Block/Adminhtml/Export/Edit.php | 2 +- .../Block/Adminhtml/Export/Edit/Form.php | 2 +- .../ImportExport/Block/Adminhtml/Export/Filter.php | 2 +- .../ImportExport/Block/Adminhtml/Form/After.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Download.php | 2 +- .../Block/Adminhtml/Grid/Column/Renderer/Error.php | 2 +- .../ImportExport/Block/Adminhtml/History.php | 2 +- .../ImportExport/Block/Adminhtml/Import/Edit.php | 2 +- .../Block/Adminhtml/Import/Edit/Before.php | 2 +- .../Block/Adminhtml/Import/Edit/Form.php | 2 +- .../Block/Adminhtml/Import/Frame/Result.php | 2 +- .../ImportExport/Controller/Adminhtml/Export.php | 2 +- .../Controller/Adminhtml/Export/Export.php | 2 +- .../Controller/Adminhtml/Export/GetFilter.php | 2 +- .../Controller/Adminhtml/Export/Index.php | 2 +- .../ImportExport/Controller/Adminhtml/History.php | 2 +- .../Controller/Adminhtml/History/Download.php | 2 +- .../Controller/Adminhtml/History/Index.php | 2 +- .../ImportExport/Controller/Adminhtml/Import.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 +- .../Controller/Adminhtml/ImportResult.php | 2 +- app/code/Magento/ImportExport/Helper/Data.php | 2 +- app/code/Magento/ImportExport/Helper/Report.php | 2 +- .../Magento/ImportExport/Model/AbstractModel.php | 2 +- app/code/Magento/ImportExport/Model/Export.php | 2 +- .../ImportExport/Model/Export/AbstractEntity.php | 2 +- .../Model/Export/Adapter/AbstractAdapter.php | 2 +- .../ImportExport/Model/Export/Adapter/Csv.php | 2 +- .../ImportExport/Model/Export/Adapter/Factory.php | 2 +- .../Magento/ImportExport/Model/Export/Config.php | 2 +- .../ImportExport/Model/Export/Config/Converter.php | 2 +- .../ImportExport/Model/Export/Config/Reader.php | 2 +- .../Model/Export/Config/SchemaLocator.php | 2 +- .../ImportExport/Model/Export/ConfigInterface.php | 2 +- .../Model/Export/Entity/AbstractEav.php | 2 +- .../Model/Export/Entity/AbstractEntity.php | 2 +- .../ImportExport/Model/Export/Entity/Factory.php | 2 +- .../Magento/ImportExport/Model/Export/Factory.php | 2 +- app/code/Magento/ImportExport/Model/History.php | 2 +- app/code/Magento/ImportExport/Model/Import.php | 2 +- .../ImportExport/Model/Import/AbstractEntity.php | 2 +- .../ImportExport/Model/Import/AbstractSource.php | 2 +- .../Magento/ImportExport/Model/Import/Adapter.php | 2 +- .../Magento/ImportExport/Model/Import/Config.php | 2 +- .../ImportExport/Model/Import/Config/Converter.php | 2 +- .../ImportExport/Model/Import/Config/Reader.php | 2 +- .../Model/Import/Config/SchemaLocator.php | 2 +- .../ImportExport/Model/Import/ConfigInterface.php | 2 +- .../Model/Import/Entity/AbstractEav.php | 2 +- .../Model/Import/Entity/AbstractEntity.php | 2 +- .../ImportExport/Model/Import/Entity/Factory.php | 2 +- .../Import/ErrorProcessing/ProcessingError.php | 2 +- .../ErrorProcessing/ProcessingErrorAggregator.php | 2 +- .../ProcessingErrorAggregatorInterface.php | 2 +- .../ImportExport/Model/Import/Source/Csv.php | 2 +- .../ImportExport/Model/Import/Source/Zip.php | 2 +- app/code/Magento/ImportExport/Model/Report/Csv.php | 2 +- .../Model/Report/ReportProcessorInterface.php | 2 +- .../ResourceModel/CollectionByPagesIterator.php | 2 +- .../ImportExport/Model/ResourceModel/Helper.php | 2 +- .../ImportExport/Model/ResourceModel/History.php | 2 +- .../Model/ResourceModel/History/Collection.php | 2 +- .../Model/ResourceModel/Import/Data.php | 2 +- .../ImportExport/Model/Source/Export/Entity.php | 2 +- .../ImportExport/Model/Source/Export/Format.php | 2 +- .../Model/Source/Import/AbstractBehavior.php | 2 +- .../Model/Source/Import/Behavior/Basic.php | 2 +- .../Model/Source/Import/Behavior/Custom.php | 2 +- .../Model/Source/Import/Behavior/Factory.php | 2 +- .../ImportExport/Model/Source/Import/Entity.php | 2 +- .../Magento/ImportExport/Setup/InstallSchema.php | 2 +- .../Magento/ImportExport/Setup/UpgradeSchema.php | 2 +- .../Unit/Block/Adminhtml/Export/FilterTest.php | 2 +- .../Grid/Column/Renderer/DownloadTest.php | 2 +- .../Unit/Block/Adminhtml/Import/Edit/FormTest.php | 2 +- .../Controller/Adminhtml/History/IndexTest.php | 2 +- .../Controller/Adminhtml/Import/ValidateTest.php | 2 +- .../ImportExport/Test/Unit/Helper/ReportTest.php | 2 +- .../Unit/Model/Export/Config/ConverterTest.php | 2 +- .../Unit/Model/Export/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Export/Config/XsdTest.php | 2 +- .../Unit/Model/Export/Config/_files/export.php | 2 +- .../Unit/Model/Export/Config/_files/export.xml | 2 +- .../Export/Config/_files/export_merged_valid.xml | 2 +- .../Model/Export/Config/_files/export_valid.xml | 2 +- .../Config/_files/invalidExportMergedXmlArray.php | 2 +- .../Export/Config/_files/invalidExportXmlArray.php | 2 +- .../Test/Unit/Model/Export/ConfigTest.php | 2 +- .../Unit/Model/Export/Entity/AbstractEavTest.php | 2 +- .../Test/Unit/Model/Export/EntityAbstractTest.php | 2 +- .../ImportExport/Test/Unit/Model/ExportTest.php | 2 +- .../Test/Unit/Model/Import/AbstractEntityTest.php | 2 +- .../Unit/Model/Import/AbstractImportTestCase.php | 2 +- .../Test/Unit/Model/Import/AdapterTest.php | 2 +- .../Unit/Model/Import/Config/ConverterTest.php | 2 +- .../Unit/Model/Import/Config/SchemaLocatorTest.php | 2 +- .../Unit/Model/Import/Config/XsdMergedTest.php | 2 +- .../Test/Unit/Model/Import/Config/XsdTest.php | 2 +- .../Unit/Model/Import/Config/_files/import.php | 2 +- .../Unit/Model/Import/Config/_files/import.xml | 2 +- .../Config/_files/invalidImportMergedXmlArray.php | 2 +- .../Import/Config/_files/invalidImportXmlArray.php | 2 +- .../Model/Import/Config/_files/valid_import.xml | 2 +- .../Import/Config/_files/valid_import_merged.xml | 2 +- .../Test/Unit/Model/Import/ConfigTest.php | 2 +- .../Test/Unit/Model/Import/Entity/AbstractTest.php | 2 +- .../Unit/Model/Import/Entity/EavAbstractTest.php | 2 +- .../ProcessingErrorAggregatorTest.php | 2 +- .../Import/ErrorProcessing/ProcessingErrorTest.php | 2 +- .../Test/Unit/Model/Import/Source/CsvTest.php | 2 +- .../Test/Unit/Model/Import/Source/ZipTest.php | 2 +- .../Test/Unit/Model/Import/SourceAbstractTest.php | 2 +- .../ImportExport/Test/Unit/Model/ImportTest.php | 2 +- .../Test/Unit/Model/Report/CsvTest.php | 2 +- .../CollectionByPagesIteratorTest.php | 2 +- .../Test/Unit/Model/ResourceModel/HistoryTest.php | 2 +- .../Source/Import/AbstractBehaviorTestCase.php | 2 +- .../Model/Source/Import/Behavior/BasicTest.php | 2 +- .../Model/Source/Import/Behavior/CustomTest.php | 2 +- .../Model/Source/Import/BehaviorAbstractTest.php | 2 +- app/code/Magento/ImportExport/etc/acl.xml | 2 +- .../Magento/ImportExport/etc/adminhtml/menu.xml | 2 +- .../Magento/ImportExport/etc/adminhtml/routes.xml | 2 +- app/code/Magento/ImportExport/etc/config.xml | 2 +- app/code/Magento/ImportExport/etc/di.xml | 2 +- app/code/Magento/ImportExport/etc/export.xsd | 2 +- .../Magento/ImportExport/etc/export_merged.xsd | 2 +- app/code/Magento/ImportExport/etc/import.xsd | 2 +- .../Magento/ImportExport/etc/import_merged.xsd | 2 +- app/code/Magento/ImportExport/etc/module.xml | 2 +- app/code/Magento/ImportExport/registration.php | 2 +- .../layout/adminhtml_export_getfilter.xml | 2 +- .../adminhtml/layout/adminhtml_export_index.xml | 2 +- .../layout/adminhtml_history_grid_block.xml | 2 +- .../adminhtml/layout/adminhtml_history_index.xml | 2 +- .../adminhtml/layout/adminhtml_import_busy.xml | 2 +- .../adminhtml/layout/adminhtml_import_index.xml | 2 +- .../adminhtml/layout/adminhtml_import_start.xml | 2 +- .../adminhtml/layout/adminhtml_import_validate.xml | 2 +- .../view/adminhtml/templates/busy.phtml | 2 +- .../adminhtml/templates/export/form/after.phtml | 2 +- .../adminhtml/templates/export/form/before.phtml | 2 +- .../templates/export/form/filter/after.phtml | 2 +- .../adminhtml/templates/import/form/after.phtml | 2 +- .../adminhtml/templates/import/form/before.phtml | 2 +- .../adminhtml/templates/import/frame/result.phtml | 2 +- .../view/adminhtml/web/css/importexport.css | 2 +- app/code/Magento/Indexer/App/Indexer.php | 2 +- .../Magento/Indexer/Block/Backend/Container.php | 2 +- .../Backend/Grid/Column/Renderer/Scheduled.php | 2 +- .../Block/Backend/Grid/Column/Renderer/Status.php | 2 +- .../Block/Backend/Grid/Column/Renderer/Updated.php | 2 +- .../Indexer/Block/Backend/Grid/ItemsUpdater.php | 2 +- .../Console/Command/AbstractIndexerCommand.php | 2 +- .../Command/AbstractIndexerManageCommand.php | 2 +- .../Indexer/Console/Command/IndexerInfoCommand.php | 2 +- .../Console/Command/IndexerReindexCommand.php | 2 +- .../Console/Command/IndexerResetStateCommand.php | 2 +- .../Console/Command/IndexerSetModeCommand.php | 2 +- .../Console/Command/IndexerShowModeCommand.php | 2 +- .../Console/Command/IndexerStatusCommand.php | 2 +- .../Indexer/Controller/Adminhtml/Indexer.php | 2 +- .../Controller/Adminhtml/Indexer/ListAction.php | 2 +- .../Controller/Adminhtml/Indexer/MassChangelog.php | 2 +- .../Controller/Adminhtml/Indexer/MassOnTheFly.php | 2 +- app/code/Magento/Indexer/Cron/ClearChangelog.php | 2 +- .../Magento/Indexer/Cron/ReindexAllInvalid.php | 2 +- app/code/Magento/Indexer/Cron/UpdateMview.php | 2 +- app/code/Magento/Indexer/Model/Config.php | 2 +- app/code/Magento/Indexer/Model/Config/Data.php | 2 +- app/code/Magento/Indexer/Model/Indexer.php | 2 +- .../Magento/Indexer/Model/Indexer/Collection.php | 2 +- app/code/Magento/Indexer/Model/Indexer/State.php | 2 +- app/code/Magento/Indexer/Model/Message/Invalid.php | 2 +- .../Magento/Indexer/Model/Mview/View/State.php | 2 +- app/code/Magento/Indexer/Model/Processor.php | 2 +- .../Magento/Indexer/Model/Processor/CleanCache.php | 2 +- .../Magento/Indexer/Model/Processor/Handler.php | 2 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../Indexer/Model/ResourceModel/Indexer/State.php | 2 +- .../ResourceModel/Indexer/State/Collection.php | 2 +- .../Model/ResourceModel/Mview/View/State.php | 2 +- .../ResourceModel/Mview/View/State/Collection.php | 2 +- .../Magento/Indexer/Model/Source/DataInterface.php | 2 +- .../Magento/Indexer/Model/Source/ServiceSource.php | 2 +- app/code/Magento/Indexer/Setup/InstallData.php | 2 +- app/code/Magento/Indexer/Setup/InstallSchema.php | 2 +- app/code/Magento/Indexer/Setup/Recurring.php | 2 +- app/code/Magento/Indexer/Setup/RecurringData.php | 2 +- .../Magento/Indexer/Test/Unit/App/IndexerTest.php | 2 +- .../Test/Unit/Block/Backend/ContainerTest.php | 2 +- .../Backend/Grid/Column/Renderer/ScheduledTest.php | 2 +- .../Backend/Grid/Column/Renderer/StatusTest.php | 2 +- .../Backend/Grid/Column/Renderer/UpdatedTest.php | 2 +- .../Unit/Block/Backend/Grid/ItemsUpdaterTest.php | 2 +- .../Command/AbstractIndexerCommandCommonSetup.php | 2 +- .../Console/Command/IndexerInfoCommandTest.php | 2 +- .../Console/Command/IndexerReindexCommandTest.php | 2 +- .../Command/IndexerResetStateCommandTest.php | 2 +- .../Console/Command/IndexerSetModeCommandTest.php | 2 +- .../Console/Command/IndexerShowModeCommandTest.php | 2 +- .../Console/Command/IndexerStatusCommandTest.php | 2 +- .../Adminhtml/Indexer/ListActionTest.php | 2 +- .../Adminhtml/Indexer/MassChangelogTest.php | 2 +- .../Adminhtml/Indexer/MassOnTheFlyTest.php | 2 +- .../Indexer/Test/Unit/Model/CacheContextTest.php | 2 +- .../Indexer/Test/Unit/Model/Config/DataTest.php | 2 +- .../Magento/Indexer/Test/Unit/Model/ConfigTest.php | 2 +- .../Unit/Model/Indexer/AbstractProcessorStub.php | 2 +- .../Unit/Model/Indexer/AbstractProcessorTest.php | 2 +- .../Test/Unit/Model/Indexer/CollectionTest.php | 2 +- .../Indexer/Test/Unit/Model/Indexer/StateTest.php | 2 +- .../Indexer/Test/Unit/Model/IndexerTest.php | 2 +- .../Test/Unit/Model/Message/InvalidTest.php | 2 +- .../Test/Unit/Model/Mview/View/StateTest.php | 2 +- .../Test/Unit/Model/Processor/CleanCacheTest.php | 2 +- .../Indexer/Test/Unit/Model/ProcessorTest.php | 2 +- .../Model/ResourceModel/AbstractResourceStub.php | 2 +- .../Model/ResourceModel/AbstractResourceTest.php | 2 +- .../ResourceModel/Indexer/State/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/Indexer/StateTest.php | 2 +- .../Mview/View/State/CollectionTest.php | 2 +- .../Model/ResourceModel/Mview/View/StateTest.php | 2 +- app/code/Magento/Indexer/etc/acl.xml | 2 +- app/code/Magento/Indexer/etc/adminhtml/di.xml | 2 +- app/code/Magento/Indexer/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Indexer/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Indexer/etc/cron_groups.xml | 2 +- app/code/Magento/Indexer/etc/crontab.xml | 2 +- app/code/Magento/Indexer/etc/di.xml | 2 +- app/code/Magento/Indexer/etc/module.xml | 2 +- app/code/Magento/Indexer/registration.php | 2 +- .../view/adminhtml/layout/indexer_indexer_list.xml | 2 +- .../adminhtml/layout/indexer_indexer_list_grid.xml | 2 +- .../Integration/Api/AdminTokenServiceInterface.php | 2 +- .../Api/AuthorizationServiceInterface.php | 2 +- .../Api/CustomerTokenServiceInterface.php | 2 +- .../Api/IntegrationServiceInterface.php | 2 +- .../Integration/Api/OauthServiceInterface.php | 2 +- .../Integration/Block/Adminhtml/Integration.php | 2 +- .../Activate/Permissions/Tab/Webapi.php | 2 +- .../Integration/Activate/Permissions/Tabs.php | 2 +- .../Block/Adminhtml/Integration/Edit.php | 2 +- .../Block/Adminhtml/Integration/Edit/Form.php | 2 +- .../Block/Adminhtml/Integration/Edit/Tab/Info.php | 2 +- .../Adminhtml/Integration/Edit/Tab/Webapi.php | 2 +- .../Block/Adminhtml/Integration/Edit/Tabs.php | 2 +- .../Block/Adminhtml/Integration/Grid.php | 2 +- .../Block/Adminhtml/Integration/Tokens.php | 2 +- .../Widget/Grid/Column/Renderer/Button.php | 2 +- .../Widget/Grid/Column/Renderer/Button/Delete.php | 2 +- .../Widget/Grid/Column/Renderer/Button/Edit.php | 2 +- .../Adminhtml/Widget/Grid/Column/Renderer/Link.php | 2 +- .../Widget/Grid/Column/Renderer/Link/Activate.php | 2 +- .../Adminhtml/Widget/Grid/Column/Renderer/Name.php | 2 +- .../Controller/Adminhtml/Integration.php | 2 +- .../Controller/Adminhtml/Integration/Delete.php | 2 +- .../Controller/Adminhtml/Integration/Edit.php | 2 +- .../Controller/Adminhtml/Integration/Grid.php | 2 +- .../Controller/Adminhtml/Integration/Index.php | 2 +- .../Adminhtml/Integration/LoginSuccessCallback.php | 2 +- .../Controller/Adminhtml/Integration/NewAction.php | 2 +- .../Adminhtml/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 +- .../Cron/CleanExpiredAuthenticationFailures.php | 2 +- .../Integration/Cron/CleanExpiredTokens.php | 2 +- app/code/Magento/Integration/Helper/Data.php | 2 +- app/code/Magento/Integration/Helper/Oauth/Data.php | 2 +- .../Integration/Model/AdminTokenService.php | 2 +- .../Integration/Model/AuthorizationService.php | 2 +- app/code/Magento/Integration/Model/Cache/Type.php | 2 +- .../Integration/Model/Cache/TypeConsolidated.php | 2 +- .../Integration/Model/Cache/TypeIntegration.php | 2 +- app/code/Magento/Integration/Model/Config.php | 2 +- .../Model/Config/Consolidated/Converter.php | 2 +- .../Model/Config/Consolidated/Reader.php | 2 +- .../Model/Config/Consolidated/SchemaLocator.php | 2 +- .../Magento/Integration/Model/Config/Converter.php | 2 +- .../Model/Config/Integration/Converter.php | 2 +- .../Model/Config/Integration/Reader.php | 2 +- .../Model/Config/Integration/SchemaLocator.php | 2 +- .../Magento/Integration/Model/Config/Reader.php | 2 +- .../Integration/Model/Config/SchemaLocator.php | 2 +- .../Model/ConfigBasedIntegrationManager.php | 2 +- .../Integration/Model/ConsolidatedConfig.php | 2 +- .../Integration/Model/CredentialsValidator.php | 2 +- .../Integration/Model/CustomerTokenService.php | 2 +- app/code/Magento/Integration/Model/Integration.php | 2 +- .../Model/Integration/Source/Status.php | 2 +- .../Integration/Model/IntegrationConfig.php | 2 +- .../Integration/Model/IntegrationService.php | 2 +- .../Model/Message/RecreatedIntegration.php | 2 +- .../Magento/Integration/Model/Oauth/Consumer.php | 2 +- .../Model/Oauth/Consumer/Validator/KeyLength.php | 2 +- app/code/Magento/Integration/Model/Oauth/Nonce.php | 2 +- .../Integration/Model/Oauth/Nonce/Generator.php | 2 +- app/code/Magento/Integration/Model/Oauth/Token.php | 2 +- .../Integration/Model/Oauth/Token/Provider.php | 2 +- .../Model/Oauth/Token/RequestLog/Config.php | 2 +- .../Oauth/Token/RequestLog/ReaderInterface.php | 2 +- .../Oauth/Token/RequestLog/WriterInterface.php | 2 +- .../Model/Oauth/Token/RequestThrottler.php | 2 +- .../Magento/Integration/Model/OauthService.php | 2 +- .../Integration/Model/Plugin/Integration.php | 2 +- .../Model/ResourceModel/Integration.php | 2 +- .../Model/ResourceModel/Integration/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Consumer.php | 2 +- .../ResourceModel/Oauth/Consumer/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Nonce.php | 2 +- .../Model/ResourceModel/Oauth/Nonce/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Token.php | 2 +- .../Model/ResourceModel/Oauth/Token/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Token/RequestLog.php | 2 +- .../Magento/Integration/Plugin/Model/AdminUser.php | 2 +- .../Integration/Plugin/Model/CustomerUser.php | 2 +- .../Magento/Integration/Setup/InstallSchema.php | 2 +- app/code/Magento/Integration/Setup/Recurring.php | 2 +- app/code/Magento/Integration/Setup/UpgradeData.php | 2 +- .../Magento/Integration/Setup/UpgradeSchema.php | 2 +- .../Adminhtml/Integration/Edit/Tab/InfoTest.php | 2 +- .../Adminhtml/Integration/Edit/Tab/WebapiTest.php | 2 +- .../Widget/Grid/Column/Renderer/ButtonTest.php | 2 +- .../Widget/Grid/Column/Renderer/LinkTest.php | 2 +- .../Widget/Grid/Column/Renderer/NameTest.php | 2 +- .../Adminhtml/Integration/DeleteTest.php | 2 +- .../Controller/Adminhtml/Integration/EditTest.php | 2 +- .../Controller/Adminhtml/Integration/IndexTest.php | 2 +- .../Adminhtml/Integration/NewActionTest.php | 2 +- .../Integration/PermissionsDialogTest.php | 2 +- .../Controller/Adminhtml/Integration/SaveTest.php | 2 +- .../Adminhtml/Integration/TokensDialogTest.php | 2 +- .../Unit/Controller/Adminhtml/IntegrationTest.php | 2 +- .../Test/Unit/Controller/Token/AccessTest.php | 2 +- .../Test/Unit/Controller/Token/RequestTest.php | 2 +- .../Integration/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Helper/Oauth/ConsumerTest.php | 2 +- .../Test/Unit/Helper/Oauth/DataTest.php | 2 +- .../Test/Unit/Helper/Oauth/OauthTest.php | 2 +- .../Test/Unit/Helper/_files/acl-map.php | 2 +- .../Integration/Test/Unit/Helper/_files/acl.php | 2 +- .../Test/Unit/Model/AdminTokenServiceTest.php | 2 +- .../Test/Unit/Model/AuthorizationServiceTest.php | 2 +- .../Model/Config/Consolidated/ConverterTest.php | 2 +- .../Config/Consolidated/SchemaLocatorTest.php | 2 +- .../Unit/Model/Config/Consolidated/XsdTest.php | 2 +- .../Unit/Model/Config/Consolidated/_files/acl.php | 2 +- .../Config/Consolidated/_files/integration.php | 2 +- .../Config/Consolidated/_files/integration.xml | 2 +- .../Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Model/Config/Integration/ConverterTest.php | 2 +- .../Model/Config/Integration/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Config/Integration/XsdTest.php | 2 +- .../Unit/Model/Config/Integration/_files/api.php | 2 +- .../Unit/Model/Config/Integration/_files/api.xml | 2 +- .../Test/Unit/Model/Config/SchemaLocatorTest.php | 2 +- .../Integration/Test/Unit/Model/Config/XsdTest.php | 2 +- .../Test/Unit/Model/Config/_files/config.xml | 2 +- .../Test/Unit/Model/Config/_files/integration.php | 2 +- .../Test/Unit/Model/ConsolidatedConfigTest.php | 2 +- .../Test/Unit/Model/CredentialsValidatorTest.php | 2 +- .../Test/Unit/Model/CustomerTokenServiceTest.php | 2 +- .../Unit/Model/Integration/Source/StatusTest.php | 2 +- .../Test/Unit/Model/IntegrationConfigTest.php | 2 +- .../Test/Unit/Model/IntegrationServiceTest.php | 2 +- .../Test/Unit/Model/IntegrationTest.php | 2 +- .../Integration/Test/Unit/Model/ManagerTest.php | 2 +- .../Oauth/Consumer/Validator/KeyLengthTest.php | 2 +- .../Test/Unit/Model/Oauth/ConsumerTest.php | 2 +- .../Test/Unit/Model/Oauth/NonceTest.php | 2 +- .../Test/Unit/Model/Oauth/Token/ProviderTest.php | 2 +- .../Test/Unit/Model/Oauth/TokenTest.php | 2 +- .../Test/Unit/Model/OauthServiceTest.php | 2 +- .../Test/Unit/Model/Plugin/IntegrationTest.php | 2 +- .../ResourceModel/Integration/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/IntegrationTest.php | 2 +- .../Model/ResourceModel/Oauth/ConsumerTest.php | 2 +- .../Unit/Model/ResourceModel/Oauth/NonceTest.php | 2 +- .../ResourceModel/Oauth/Token/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/Oauth/TokenTest.php | 2 +- .../Integration/Test/Unit/Oauth/OauthTest.php | 2 +- app/code/Magento/Integration/etc/adminhtml/di.xml | 2 +- .../Magento/Integration/etc/adminhtml/menu.xml | 2 +- .../Magento/Integration/etc/adminhtml/routes.xml | 2 +- .../Magento/Integration/etc/adminhtml/system.xml | 2 +- app/code/Magento/Integration/etc/cache.xml | 2 +- app/code/Magento/Integration/etc/config.xml | 2 +- app/code/Magento/Integration/etc/crontab.xml | 2 +- app/code/Magento/Integration/etc/di.xml | 2 +- .../Magento/Integration/etc/frontend/routes.xml | 2 +- .../Magento/Integration/etc/integration/api.xsd | 2 +- .../Magento/Integration/etc/integration/config.xsd | 2 +- .../Integration/etc/integration/integration.xsd | 2 +- .../etc/integration/integration_base.xsd | 2 +- .../etc/integration/integration_file.xsd | 2 +- app/code/Magento/Integration/etc/module.xml | 2 +- app/code/Magento/Integration/etc/webapi.xml | 2 +- app/code/Magento/Integration/registration.php | 2 +- .../layout/adminhtml_integration_edit.xml | 2 +- .../layout/adminhtml_integration_grid.xml | 2 +- .../layout/adminhtml_integration_grid_block.xml | 2 +- .../layout/adminhtml_integration_index.xml | 2 +- .../adminhtml/layout/adminhtml_integration_new.xml | 2 +- .../adminhtml_integration_permissionsdialog.xml | 2 +- .../layout/adminhtml_integration_tokensdialog.xml | 2 +- .../adminhtml_integration_tokensexchange.xml | 2 +- .../Integration/view/adminhtml/requirejs-config.js | 2 +- .../integration/activate/permissions.phtml | 2 +- .../activate/permissions/tab/webapi.phtml | 2 +- .../templates/integration/popup_container.phtml | 2 +- .../templates/integration/tokens_exchange.phtml | 2 +- .../view/adminhtml/templates/resourcetree.phtml | 2 +- .../Integration/view/adminhtml/web/integration.css | 2 +- .../view/adminhtml/web/js/integration.js | 2 +- .../Magento/LayeredNavigation/Block/Navigation.php | 2 +- .../Block/Navigation/FilterRenderer.php | 2 +- .../Block/Navigation/FilterRendererInterface.php | 2 +- .../LayeredNavigation/Block/Navigation/State.php | 2 +- .../LayeredNavigation/Model/Aggregation/Status.php | 2 +- .../Model/Attribute/Source/FilterableOptions.php | 2 +- .../ProductAttributeFormBuildFrontTabObserver.php | 2 +- .../Grid/ProductAttributeGridBuildObserver.php | 2 +- .../Test/Unit/Block/NavigationTest.php | 2 +- .../Test/Unit/Model/Aggregation/StatusTest.php | 2 +- .../LayeredNavigation/etc/adminhtml/events.xml | 2 +- .../LayeredNavigation/etc/adminhtml/system.xml | 2 +- app/code/Magento/LayeredNavigation/etc/config.xml | 2 +- app/code/Magento/LayeredNavigation/etc/di.xml | 2 +- .../Magento/LayeredNavigation/etc/frontend/di.xml | 2 +- app/code/Magento/LayeredNavigation/etc/module.xml | 2 +- .../Magento/LayeredNavigation/registration.php | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../ui_component/product_attributes_grid.xml | 2 +- .../ui_component/product_attributes_listing.xml | 2 +- .../layout/catalog_category_view_type_layered.xml | 2 +- ...category_view_type_layered_without_children.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../view/frontend/page_layout/1column.xml | 2 +- .../view/frontend/page_layout/2columns-left.xml | 2 +- .../view/frontend/page_layout/2columns-right.xml | 2 +- .../view/frontend/page_layout/3columns.xml | 2 +- .../view/frontend/page_layout/empty.xml | 2 +- .../view/frontend/templates/layer/filter.phtml | 2 +- .../view/frontend/templates/layer/state.phtml | 2 +- .../view/frontend/templates/layer/view.phtml | 2 +- app/code/Magento/Marketplace/Block/Index.php | 2 +- app/code/Magento/Marketplace/Block/Partners.php | 2 +- .../Marketplace/Controller/Adminhtml/Index.php | 2 +- .../Controller/Adminhtml/Index/Index.php | 2 +- .../Marketplace/Controller/Adminhtml/Partners.php | 2 +- .../Controller/Adminhtml/Partners/Index.php | 2 +- app/code/Magento/Marketplace/Helper/Cache.php | 2 +- app/code/Magento/Marketplace/Model/Partners.php | 2 +- .../Marketplace/Test/Unit/Block/PartnersTest.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Test/Unit/Controller/Partners/IndexTest.php | 2 +- .../Marketplace/Test/Unit/Helper/CacheTest.php | 2 +- .../Marketplace/Test/Unit/Model/PartnersTest.php | 2 +- .../Magento/Marketplace/etc/adminhtml/menu.xml | 2 +- .../Magento/Marketplace/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Marketplace/etc/module.xml | 2 +- app/code/Magento/Marketplace/registration.php | 2 +- .../adminhtml/layout/marketplace_index_index.xml | 2 +- .../layout/marketplace_partners_index.xml | 2 +- .../view/adminhtml/templates/index.phtml | 2 +- .../view/adminhtml/templates/partners.phtml | 2 +- .../Marketplace/view/adminhtml/web/default.js | 2 +- app/code/Magento/MediaStorage/App/Media.php | 2 +- .../Config/System/Storage/Media/Synchronize.php | 2 +- .../Adminhtml/System/Config/System/Storage.php | 2 +- .../System/Config/System/Storage/Status.php | 2 +- .../System/Config/System/Storage/Synchronize.php | 2 +- .../Magento/MediaStorage/Helper/File/Media.php | 2 +- .../Magento/MediaStorage/Helper/File/Storage.php | 2 +- .../MediaStorage/Helper/File/Storage/Database.php | 2 +- .../Model/Asset/Plugin/CleanMergedJsCss.php | 2 +- .../Config/Backend/Storage/Media/Database.php | 2 +- .../Model/Config/Source/Storage/Media/Database.php | 2 +- .../Model/Config/Source/Storage/Media/Storage.php | 2 +- .../Magento/MediaStorage/Model/File/Storage.php | 2 +- .../MediaStorage/Model/File/Storage/Config.php | 2 +- .../MediaStorage/Model/File/Storage/Database.php | 2 +- .../File/Storage/Database/AbstractDatabase.php | 2 +- .../Model/File/Storage/Directory/Database.php | 2 +- .../MediaStorage/Model/File/Storage/File.php | 2 +- .../MediaStorage/Model/File/Storage/Flag.php | 2 +- .../MediaStorage/Model/File/Storage/Request.php | 2 +- .../MediaStorage/Model/File/Storage/Response.php | 2 +- .../Model/File/Storage/Synchronization.php | 2 +- .../Magento/MediaStorage/Model/File/Uploader.php | 2 +- .../Model/File/Validator/AvailablePath.php | 2 +- .../Model/File/Validator/NotProtectedExtension.php | 2 +- .../ResourceModel/File/Storage/AbstractStorage.php | 2 +- .../Model/ResourceModel/File/Storage/Database.php | 2 +- .../File/Storage/Directory/Database.php | 2 +- .../Model/ResourceModel/File/Storage/File.php | 2 +- .../MediaStorage/Test/Unit/App/MediaTest.php | 2 +- .../Test/Unit/Helper/File/MediaTest.php | 2 +- .../Test/Unit/Helper/File/Storage/DatabaseTest.php | 2 +- .../Test/Unit/Helper/File/StorageTest.php | 2 +- .../Model/Asset/Plugin/CleanMergedJsCssTest.php | 2 +- .../Config/Source/Storage/Media/DatabaseTest.php | 2 +- .../Test/Unit/Model/File/Storage/ConfigTest.php | 2 +- .../Model/File/Storage/Directory/DatabaseTest.php | 2 +- .../Test/Unit/Model/File/Storage/MediaTest.php | 2 +- .../Test/Unit/Model/File/Storage/RequestTest.php | 2 +- .../Model/File/Storage/SynchronizationTest.php | 2 +- .../Test/Unit/Model/File/Storage/_files/config.xml | 2 +- .../Model/ResourceModel/File/Storage/FileTest.php | 2 +- .../Magento/MediaStorage/etc/adminhtml/routes.xml | 2 +- .../Magento/MediaStorage/etc/adminhtml/system.xml | 2 +- app/code/Magento/MediaStorage/etc/di.xml | 2 +- app/code/Magento/MediaStorage/etc/module.xml | 2 +- app/code/Magento/MediaStorage/registration.php | 2 +- .../config/system/storage/media/synchronize.phtml | 2 +- .../Block/Adminhtml/Product/Helper/Form/Type.php | 2 +- .../Adminhtml/Product/Helper/Form/Type/Price.php | 2 +- app/code/Magento/Msrp/Block/Popup.php | 2 +- app/code/Magento/Msrp/Block/Total.php | 2 +- app/code/Magento/Msrp/Helper/Data.php | 2 +- app/code/Magento/Msrp/Model/Config.php | 2 +- app/code/Magento/Msrp/Model/Msrp.php | 2 +- .../Msrp/Model/Product/Attribute/Source/Type.php | 2 +- .../Model/Product/Attribute/Source/Type/Price.php | 2 +- app/code/Magento/Msrp/Model/Product/Options.php | 2 +- .../Msrp/Model/Quote/Address/CanApplyMsrp.php | 2 +- app/code/Magento/Msrp/Model/Quote/Msrp.php | 2 +- .../Frontend/Quote/SetCanApplyMsrpObserver.php | 2 +- .../Catalog/Product/Edit/Tab/Attributes.php | 2 +- app/code/Magento/Msrp/Pricing/Price/MsrpPrice.php | 2 +- .../Msrp/Pricing/Price/MsrpPriceInterface.php | 2 +- app/code/Magento/Msrp/Setup/InstallData.php | 2 +- app/code/Magento/Msrp/Setup/UpgradeData.php | 2 +- .../Magento/Msrp/Test/Unit/Helper/DataTest.php | 2 +- .../Product/Attribute/Source/Type/PriceTest.php | 2 +- .../Frontend/Quote/SetCanApplyMsrpObserverTest.php | 2 +- .../Msrp/Test/Unit/Pricing/Price/MsrpPriceTest.php | 2 +- .../Product/Form/Modifier/MsrpTest.php | 2 +- .../Ui/DataProvider/Product/Form/Modifier/Msrp.php | 2 +- app/code/Magento/Msrp/etc/adminhtml/di.xml | 2 +- app/code/Magento/Msrp/etc/adminhtml/system.xml | 2 +- app/code/Magento/Msrp/etc/catalog_attributes.xml | 2 +- app/code/Magento/Msrp/etc/config.xml | 2 +- app/code/Magento/Msrp/etc/di.xml | 2 +- app/code/Magento/Msrp/etc/frontend/events.xml | 2 +- app/code/Magento/Msrp/etc/module.xml | 2 +- app/code/Magento/Msrp/etc/webapi_rest/events.xml | 2 +- app/code/Magento/Msrp/etc/webapi_soap/events.xml | 2 +- app/code/Magento/Msrp/registration.php | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../view/base/templates/product/price/msrp.phtml | 2 +- app/code/Magento/Msrp/view/base/web/js/msrp.js | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../layout/catalog_product_compare_index.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../catalog_product_view_type_downloadable.xml | 2 +- .../layout/catalogsearch_advanced_result.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../checkout_cart_sidebar_total_renderers.xml | 2 +- .../frontend/layout/checkout_onepage_failure.xml | 2 +- .../frontend/layout/checkout_onepage_success.xml | 2 +- .../Msrp/view/frontend/layout/msrp_popup.xml | 2 +- .../view/frontend/layout/review_product_list.xml | 2 +- .../wishlist_index_configure_type_downloadable.xml | 2 +- .../view/frontend/layout/wishlist_index_index.xml | 2 +- .../view/frontend/layout/wishlist_search_view.xml | 2 +- .../view/frontend/layout/wishlist_shared_index.xml | 2 +- .../Magento/Msrp/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/cart/subtotal.phtml | 2 +- .../Msrp/view/frontend/templates/cart/totals.phtml | 2 +- .../Msrp/view/frontend/templates/popup.phtml | 2 +- .../templates/render/item/price_msrp_item.phtml | 2 +- .../templates/render/item/price_msrp_rss.phtml | 2 +- .../js/view/checkout/minicart/subtotal/totals.js | 2 +- .../checkout/minicart/subtotal/totals.html | 2 +- .../Block/Checkout/AbstractMultishipping.php | 2 +- .../Block/Checkout/Address/Select.php | 2 +- .../Multishipping/Block/Checkout/Addresses.php | 2 +- .../Multishipping/Block/Checkout/Billing.php | 2 +- .../Multishipping/Block/Checkout/Billing/Items.php | 2 +- .../Magento/Multishipping/Block/Checkout/Link.php | 2 +- .../Multishipping/Block/Checkout/Overview.php | 2 +- .../Multishipping/Block/Checkout/Payment/Info.php | 2 +- .../Multishipping/Block/Checkout/Shipping.php | 2 +- .../Magento/Multishipping/Block/Checkout/State.php | 2 +- .../Multishipping/Block/Checkout/Success.php | 2 +- .../Magento/Multishipping/Controller/Checkout.php | 2 +- .../Multishipping/Controller/Checkout/Address.php | 2 +- .../Controller/Checkout/Address/EditAddress.php | 2 +- .../Controller/Checkout/Address/EditBilling.php | 2 +- .../Controller/Checkout/Address/EditShipping.php | 2 +- .../Checkout/Address/EditShippingPost.php | 2 +- .../Controller/Checkout/Address/NewBilling.php | 2 +- .../Controller/Checkout/Address/NewShipping.php | 2 +- .../Controller/Checkout/Address/SaveBilling.php | 2 +- .../Controller/Checkout/Address/SelectBilling.php | 2 +- .../Controller/Checkout/Address/SetBilling.php | 2 +- .../Controller/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 +- .../Multishipping/Controller/Checkout/Billing.php | 2 +- .../Multishipping/Controller/Checkout/Index.php | 2 +- .../Multishipping/Controller/Checkout/Login.php | 2 +- .../Multishipping/Controller/Checkout/Overview.php | 2 +- .../Controller/Checkout/OverviewPost.php | 2 +- .../Multishipping/Controller/Checkout/Plugin.php | 2 +- .../Multishipping/Controller/Checkout/Register.php | 2 +- .../Controller/Checkout/RemoveItem.php | 2 +- .../Multishipping/Controller/Checkout/Shipping.php | 2 +- .../Controller/Checkout/ShippingPost.php | 2 +- .../Multishipping/Controller/Checkout/Success.php | 2 +- app/code/Magento/Multishipping/Helper/Data.php | 2 +- app/code/Magento/Multishipping/Helper/Url.php | 2 +- .../Model/Cart/Controller/CartPlugin.php | 2 +- .../Model/Checkout/Type/Multishipping.php | 2 +- .../Model/Checkout/Type/Multishipping/Plugin.php | 2 +- .../Model/Checkout/Type/Multishipping/State.php | 2 +- .../Model/Payment/Method/Specification/Enabled.php | 2 +- .../Unit/Block/Checkout/Address/SelectTest.php | 2 +- .../Test/Unit/Block/Checkout/OverviewTest.php | 2 +- .../Test/Unit/Block/Checkout/Payment/InfoTest.php | 2 +- .../Test/Unit/Block/Checkout/ShippingTest.php | 2 +- .../Test/Unit/Block/Checkout/StateTest.php | 2 +- .../Test/Unit/Block/Checkout/SuccessTest.php | 2 +- .../Checkout/Address/EditAddressTest.php | 2 +- .../Checkout/Address/EditBillingTest.php | 2 +- .../Checkout/Address/EditShippingTest.php | 2 +- .../Controller/Checkout/Address/NewBillingTest.php | 2 +- .../Checkout/Address/NewShippingTest.php | 2 +- .../Checkout/Address/ShippingSavedTest.php | 2 +- .../Test/Unit/Controller/Checkout/PluginTest.php | 2 +- .../Multishipping/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Cart/Controller/CartPluginTest.php | 2 +- .../Checkout/Type/Multishipping/PluginTest.php | 2 +- .../Unit/Model/Checkout/Type/MultishippingTest.php | 2 +- .../Payment/Method/Specification/EnabledTest.php | 2 +- app/code/Magento/Multishipping/etc/acl.xml | 2 +- .../Magento/Multishipping/etc/adminhtml/system.xml | 2 +- app/code/Magento/Multishipping/etc/config.xml | 2 +- app/code/Magento/Multishipping/etc/frontend/di.xml | 2 +- .../Multishipping/etc/frontend/page_types.xml | 2 +- .../Magento/Multishipping/etc/frontend/routes.xml | 2 +- .../Multishipping/etc/frontend/sections.xml | 2 +- app/code/Magento/Multishipping/etc/module.xml | 2 +- app/code/Magento/Multishipping/registration.php | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../frontend/layout/multishipping_checkout.xml | 2 +- .../multishipping_checkout_address_editaddress.xml | 2 +- .../multishipping_checkout_address_editbilling.xml | 2 +- ...multishipping_checkout_address_editshipping.xml | 2 +- .../multishipping_checkout_address_newbilling.xml | 2 +- .../multishipping_checkout_address_newshipping.xml | 2 +- .../multishipping_checkout_address_select.xml | 2 +- ...ultishipping_checkout_address_selectbilling.xml | 2 +- .../layout/multishipping_checkout_addresses.xml | 2 +- .../layout/multishipping_checkout_billing.xml | 2 +- .../multishipping_checkout_customer_address.xml | 2 +- .../layout/multishipping_checkout_login.xml | 2 +- .../layout/multishipping_checkout_overview.xml | 2 +- .../layout/multishipping_checkout_register.xml | 2 +- .../layout/multishipping_checkout_shipping.xml | 2 +- .../layout/multishipping_checkout_success.xml | 2 +- .../view/frontend/requirejs-config.js | 2 +- .../templates/checkout/address/select.phtml | 2 +- .../frontend/templates/checkout/addresses.phtml | 2 +- .../view/frontend/templates/checkout/billing.phtml | 2 +- .../templates/checkout/billing/items.phtml | 2 +- .../frontend/templates/checkout/item/default.phtml | 2 +- .../view/frontend/templates/checkout/link.phtml | 2 +- .../frontend/templates/checkout/overview.phtml | 2 +- .../templates/checkout/overview/item.phtml | 2 +- .../frontend/templates/checkout/shipping.phtml | 2 +- .../view/frontend/templates/checkout/state.phtml | 2 +- .../view/frontend/templates/checkout/success.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../templates/multishipping/item/default.phtml | 2 +- .../view/frontend/web/js/multi-shipping.js | 2 +- .../Multishipping/view/frontend/web/js/overview.js | 2 +- .../Multishipping/view/frontend/web/js/payment.js | 2 +- .../NewRelicReporting/Model/Apm/Deployments.php | 2 +- .../Magento/NewRelicReporting/Model/Config.php | 2 +- .../Magento/NewRelicReporting/Model/Counter.php | 2 +- .../Magento/NewRelicReporting/Model/Counts.php | 2 +- app/code/Magento/NewRelicReporting/Model/Cron.php | 2 +- .../NewRelicReporting/Model/Cron/ReportCounts.php | 2 +- .../Model/Cron/ReportModulesInfo.php | 2 +- .../Model/Cron/ReportNewRelicCron.php | 2 +- .../Magento/NewRelicReporting/Model/CronEvent.php | 2 +- .../Magento/NewRelicReporting/Model/Module.php | 2 +- .../NewRelicReporting/Model/Module/Collect.php | 2 +- .../NewRelicReporting/Model/NewRelicWrapper.php | 2 +- .../Model/Observer/CheckConfig.php | 2 +- .../Model/Observer/ReportConcurrentAdmins.php | 2 +- .../Observer/ReportConcurrentAdminsToNewRelic.php | 2 +- .../Model/Observer/ReportConcurrentUsers.php | 2 +- .../Observer/ReportConcurrentUsersToNewRelic.php | 2 +- .../Model/Observer/ReportOrderPlaced.php | 2 +- .../Model/Observer/ReportOrderPlacedToNewRelic.php | 2 +- .../Model/Observer/ReportProductDeleted.php | 2 +- .../Observer/ReportProductDeletedToNewRelic.php | 2 +- .../Model/Observer/ReportProductSaved.php | 2 +- .../Observer/ReportProductSavedToNewRelic.php | 2 +- .../Model/Observer/ReportSystemCacheFlush.php | 2 +- .../Observer/ReportSystemCacheFlushToNewRelic.php | 2 +- .../Magento/NewRelicReporting/Model/Orders.php | 2 +- .../Model/ResourceModel/Counts.php | 2 +- .../Model/ResourceModel/Counts/Collection.php | 2 +- .../Model/ResourceModel/Module.php | 2 +- .../Model/ResourceModel/Module/Collection.php | 2 +- .../Model/ResourceModel/Orders.php | 2 +- .../Model/ResourceModel/Orders/Collection.php | 2 +- .../Model/ResourceModel/System.php | 2 +- .../Model/ResourceModel/System/Collection.php | 2 +- .../Model/ResourceModel/Users.php | 2 +- .../Model/ResourceModel/Users/Collection.php | 2 +- .../Magento/NewRelicReporting/Model/System.php | 2 +- app/code/Magento/NewRelicReporting/Model/Users.php | 2 +- .../NewRelicReporting/Setup/InstallSchema.php | 2 +- .../Test/Unit/Model/Apm/DeploymentsTest.php | 2 +- .../Test/Unit/Model/CounterTest.php | 2 +- .../Test/Unit/Model/Cron/ReportCountsTest.php | 2 +- .../Test/Unit/Model/Cron/ReportModulesInfoTest.php | 2 +- .../Unit/Model/Cron/ReportNewRelicCronTest.php | 2 +- .../Test/Unit/Model/CronEventTest.php | 2 +- .../NewRelicReporting/Test/Unit/Model/CronTest.php | 2 +- .../Test/Unit/Model/Module/CollectTest.php | 2 +- .../Test/Unit/Model/Observer/CheckConfigTest.php | 2 +- .../Model/Observer/ReportConcurrentAdminsTest.php | 2 +- .../ReportConcurrentAdminsToNewRelicTest.php | 2 +- .../Model/Observer/ReportConcurrentUsersTest.php | 2 +- .../ReportConcurrentUsersToNewRelicTest.php | 2 +- .../Unit/Model/Observer/ReportOrderPlacedTest.php | 2 +- .../Observer/ReportOrderPlacedToNewRelicTest.php | 2 +- .../Model/Observer/ReportProductDeletedTest.php | 2 +- .../ReportProductDeletedToNewRelicTest.php | 2 +- .../Unit/Model/Observer/ReportProductSavedTest.php | 2 +- .../Observer/ReportProductSavedToNewRelicTest.php | 2 +- .../Model/Observer/ReportSystemCacheFlushTest.php | 2 +- .../ReportSystemCacheFlushToNewRelicTest.php | 2 +- app/code/Magento/NewRelicReporting/etc/acl.xml | 2 +- .../NewRelicReporting/etc/adminhtml/events.xml | 2 +- .../NewRelicReporting/etc/adminhtml/system.xml | 2 +- app/code/Magento/NewRelicReporting/etc/config.xml | 2 +- app/code/Magento/NewRelicReporting/etc/crontab.xml | 2 +- app/code/Magento/NewRelicReporting/etc/di.xml | 2 +- app/code/Magento/NewRelicReporting/etc/events.xml | 2 +- .../NewRelicReporting/etc/frontend/events.xml | 2 +- app/code/Magento/NewRelicReporting/etc/module.xml | 2 +- .../Magento/NewRelicReporting/registration.php | 2 +- .../Magento/Newsletter/Block/Adminhtml/Problem.php | 2 +- .../Adminhtml/Problem/Grid/Filter/Checkbox.php | 2 +- .../Adminhtml/Problem/Grid/Renderer/Checkbox.php | 2 +- .../Newsletter/Block/Adminhtml/Queue/Edit.php | 2 +- .../Newsletter/Block/Adminhtml/Queue/Edit/Form.php | 2 +- .../Block/Adminhtml/Queue/Grid/Renderer/Action.php | 2 +- .../Newsletter/Block/Adminhtml/Queue/Preview.php | 2 +- .../Block/Adminhtml/Queue/Preview/Form.php | 2 +- .../Newsletter/Block/Adminhtml/Subscriber.php | 2 +- .../Newsletter/Block/Adminhtml/Subscriber/Grid.php | 2 +- .../Adminhtml/Subscriber/Grid/Filter/Checkbox.php | 2 +- .../Adminhtml/Subscriber/Grid/Filter/Website.php | 2 +- .../Subscriber/Grid/Renderer/Checkbox.php | 2 +- .../Newsletter/Block/Adminhtml/Template.php | 2 +- .../Newsletter/Block/Adminhtml/Template/Edit.php | 2 +- .../Block/Adminhtml/Template/Edit/Form.php | 2 +- .../Newsletter/Block/Adminhtml/Template/Grid.php | 2 +- .../Adminhtml/Template/Grid/Renderer/Action.php | 2 +- .../Adminhtml/Template/Grid/Renderer/Sender.php | 2 +- .../Block/Adminhtml/Template/Preview.php | 2 +- .../Block/Adminhtml/Template/Preview/Form.php | 2 +- app/code/Magento/Newsletter/Block/Subscribe.php | 2 +- .../Subscribe/Grid/Options/GroupOptionHash.php | 2 +- .../Subscribe/Grid/Options/StoreOptionHash.php | 2 +- .../Newsletter/Controller/Adminhtml/Problem.php | 2 +- .../Controller/Adminhtml/Problem/Grid.php | 2 +- .../Controller/Adminhtml/Problem/Index.php | 2 +- .../Newsletter/Controller/Adminhtml/Queue.php | 2 +- .../Controller/Adminhtml/Queue/Cancel.php | 2 +- .../Newsletter/Controller/Adminhtml/Queue/Drop.php | 2 +- .../Newsletter/Controller/Adminhtml/Queue/Edit.php | 2 +- .../Newsletter/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 +- .../Newsletter/Controller/Adminhtml/Queue/Save.php | 2 +- .../Controller/Adminhtml/Queue/Sending.php | 2 +- .../Controller/Adminhtml/Queue/Start.php | 2 +- .../Newsletter/Controller/Adminhtml/Subscriber.php | 2 +- .../Controller/Adminhtml/Subscriber/ExportCsv.php | 2 +- .../Controller/Adminhtml/Subscriber/ExportXml.php | 2 +- .../Controller/Adminhtml/Subscriber/Grid.php | 2 +- .../Controller/Adminhtml/Subscriber/Index.php | 2 +- .../Controller/Adminhtml/Subscriber/MassDelete.php | 2 +- .../Adminhtml/Subscriber/MassUnsubscribe.php | 2 +- .../Newsletter/Controller/Adminhtml/Template.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 +- .../Controller/Adminhtml/Template/NewAction.php | 2 +- .../Controller/Adminhtml/Template/Preview.php | 2 +- .../Controller/Adminhtml/Template/Save.php | 2 +- app/code/Magento/Newsletter/Controller/Manage.php | 2 +- .../Magento/Newsletter/Controller/Manage/Index.php | 2 +- .../Magento/Newsletter/Controller/Manage/Save.php | 2 +- .../Magento/Newsletter/Controller/Subscriber.php | 2 +- .../Newsletter/Controller/Subscriber/Confirm.php | 2 +- .../Newsletter/Controller/Subscriber/NewAction.php | 2 +- .../Controller/Subscriber/Unsubscribe.php | 2 +- app/code/Magento/Newsletter/Helper/Data.php | 2 +- app/code/Magento/Newsletter/Model/Observer.php | 2 +- .../Newsletter/Model/Plugin/CustomerPlugin.php | 2 +- app/code/Magento/Newsletter/Model/Problem.php | 2 +- app/code/Magento/Newsletter/Model/Queue.php | 2 +- .../Newsletter/Model/Queue/Options/Status.php | 2 +- .../Newsletter/Model/Queue/TransportBuilder.php | 2 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- .../Newsletter/Model/ResourceModel/Problem.php | 2 +- .../Model/ResourceModel/Problem/Collection.php | 2 +- .../Newsletter/Model/ResourceModel/Queue.php | 2 +- .../Model/ResourceModel/Queue/Collection.php | 2 +- .../Model/ResourceModel/Queue/Grid/Collection.php | 2 +- .../Newsletter/Model/ResourceModel/Subscriber.php | 2 +- .../Model/ResourceModel/Subscriber/Collection.php | 2 +- .../ResourceModel/Subscriber/Grid/Collection.php | 2 +- .../Newsletter/Model/ResourceModel/Template.php | 2 +- .../Model/ResourceModel/Template/Collection.php | 2 +- app/code/Magento/Newsletter/Model/Session.php | 2 +- app/code/Magento/Newsletter/Model/Subscriber.php | 2 +- app/code/Magento/Newsletter/Model/Template.php | 2 +- .../Magento/Newsletter/Model/Template/Filter.php | 2 +- .../Magento/Newsletter/Setup/InstallSchema.php | 2 +- .../Unit/Block/Adminhtml/Queue/PreviewTest.php | 2 +- .../Unit/Block/Adminhtml/Template/PreviewTest.php | 2 +- .../Test/Unit/Controller/Manage/SaveTest.php | 2 +- .../Test/Unit/Model/Plugin/CustomerPluginTest.php | 2 +- .../Test/Unit/Model/Queue/TransportBuilderTest.php | 2 +- .../Newsletter/Test/Unit/Model/QueueTest.php | 2 +- .../Newsletter/Test/Unit/Model/SubscriberTest.php | 2 +- .../Test/Unit/Model/Template/FilterTest.php | 2 +- .../Newsletter/Test/Unit/Model/TemplateTest.php | 2 +- app/code/Magento/Newsletter/etc/acl.xml | 2 +- app/code/Magento/Newsletter/etc/adminhtml/menu.xml | 2 +- .../Magento/Newsletter/etc/adminhtml/routes.xml | 2 +- .../Magento/Newsletter/etc/adminhtml/system.xml | 2 +- app/code/Magento/Newsletter/etc/config.xml | 2 +- app/code/Magento/Newsletter/etc/crontab.xml | 2 +- app/code/Magento/Newsletter/etc/di.xml | 2 +- .../Magento/Newsletter/etc/email_templates.xml | 2 +- .../Newsletter/etc/extension_attributes.xml | 2 +- app/code/Magento/Newsletter/etc/frontend/di.xml | 2 +- .../Magento/Newsletter/etc/frontend/page_types.xml | 2 +- .../Magento/Newsletter/etc/frontend/routes.xml | 2 +- app/code/Magento/Newsletter/etc/module.xml | 2 +- app/code/Magento/Newsletter/registration.php | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../adminhtml/layout/newsletter_problem_block.xml | 2 +- .../adminhtml/layout/newsletter_problem_grid.xml | 2 +- .../adminhtml/layout/newsletter_problem_index.xml | 2 +- .../adminhtml/layout/newsletter_queue_edit.xml | 2 +- .../adminhtml/layout/newsletter_queue_grid.xml | 2 +- .../layout/newsletter_queue_grid_block.xml | 2 +- .../adminhtml/layout/newsletter_queue_index.xml | 2 +- .../adminhtml/layout/newsletter_queue_preview.xml | 2 +- .../layout/newsletter_queue_preview_popup.xml | 2 +- .../layout/newsletter_subscriber_block.xml | 2 +- .../layout/newsletter_subscriber_exportcsv.xml | 2 +- .../layout/newsletter_subscriber_exportxml.xml | 2 +- .../layout/newsletter_subscriber_grid.xml | 2 +- .../layout/newsletter_subscriber_index.xml | 2 +- .../adminhtml/layout/newsletter_template_edit.xml | 2 +- .../layout/newsletter_template_preview.xml | 2 +- .../layout/newsletter_template_preview_popup.xml | 2 +- .../Newsletter/view/adminhtml/layout/preview.xml | 2 +- .../templates/preview/iframeswitcher.phtml | 2 +- .../view/adminhtml/templates/preview/store.phtml | 2 +- .../view/adminhtml/templates/problem/list.phtml | 2 +- .../view/adminhtml/templates/queue/edit.phtml | 2 +- .../view/adminhtml/templates/queue/list.phtml | 2 +- .../view/adminhtml/templates/queue/preview.phtml | 2 +- .../view/adminhtml/templates/subscriber/list.phtml | 2 +- .../view/adminhtml/templates/template/edit.phtml | 2 +- .../view/adminhtml/templates/template/list.phtml | 2 +- .../adminhtml/templates/template/preview.phtml | 2 +- .../view/frontend/email/subscr_confirm.html | 2 +- .../view/frontend/email/subscr_success.html | 2 +- .../view/frontend/email/unsub_success.html | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../Newsletter/view/frontend/layout/default.xml | 2 +- .../frontend/layout/newsletter_manage_index.xml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../view/frontend/templates/subscribe.phtml | 2 +- .../Block/Form/AbstractInstruction.php | 2 +- .../OfflinePayments/Block/Form/Banktransfer.php | 2 +- .../OfflinePayments/Block/Form/Cashondelivery.php | 2 +- .../Magento/OfflinePayments/Block/Form/Checkmo.php | 2 +- .../OfflinePayments/Block/Form/Purchaseorder.php | 2 +- .../Magento/OfflinePayments/Block/Info/Checkmo.php | 2 +- .../OfflinePayments/Block/Info/Purchaseorder.php | 2 +- .../Magento/OfflinePayments/Model/Banktransfer.php | 2 +- .../OfflinePayments/Model/Cashondelivery.php | 2 +- app/code/Magento/OfflinePayments/Model/Checkmo.php | 2 +- .../Model/CheckmoConfigProvider.php | 2 +- .../Model/InstructionsConfigProvider.php | 2 +- .../OfflinePayments/Model/Purchaseorder.php | 2 +- .../Observer/BeforeOrderPaymentSaveObserver.php | 2 +- .../Unit/Block/Form/AbstractInstructionTest.php | 2 +- .../Test/Unit/Block/Info/CheckmoTest.php | 2 +- .../Test/Unit/Model/BanktransferTest.php | 2 +- .../Test/Unit/Model/CashondeliveryTest.php | 2 +- .../Test/Unit/Model/CheckmoConfigProviderTest.php | 2 +- .../Test/Unit/Model/CheckmoTest.php | 2 +- .../Unit/Model/InstructionsConfigProviderTest.php | 2 +- .../Test/Unit/Model/PurchaseorderTest.php | 2 +- .../BeforeOrderPaymentSaveObserverTest.php | 2 +- .../OfflinePayments/etc/adminhtml/system.xml | 2 +- app/code/Magento/OfflinePayments/etc/config.xml | 2 +- app/code/Magento/OfflinePayments/etc/events.xml | 2 +- .../Magento/OfflinePayments/etc/frontend/di.xml | 2 +- app/code/Magento/OfflinePayments/etc/module.xml | 2 +- app/code/Magento/OfflinePayments/etc/payment.xml | 2 +- app/code/Magento/OfflinePayments/registration.php | 2 +- .../adminhtml/templates/form/banktransfer.phtml | 2 +- .../adminhtml/templates/form/cashondelivery.phtml | 2 +- .../view/adminhtml/templates/form/checkmo.phtml | 2 +- .../adminhtml/templates/form/purchaseorder.phtml | 2 +- .../view/adminhtml/templates/info/checkmo.phtml | 2 +- .../adminhtml/templates/info/pdf/checkmo.phtml | 2 +- .../templates/info/pdf/purchaseorder.phtml | 2 +- .../adminhtml/templates/info/purchaseorder.phtml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../frontend/templates/form/banktransfer.phtml | 2 +- .../frontend/templates/form/cashondelivery.phtml | 2 +- .../view/frontend/templates/form/checkmo.phtml | 2 +- .../frontend/templates/form/purchaseorder.phtml | 2 +- .../view/frontend/templates/info/checkmo.phtml | 2 +- .../frontend/templates/info/purchaseorder.phtml | 2 +- .../payment/method-renderer/banktransfer-method.js | 2 +- .../method-renderer/cashondelivery-method.js | 2 +- .../view/payment/method-renderer/checkmo-method.js | 2 +- .../method-renderer/purchaseorder-method.js | 2 +- .../web/js/view/payment/offline-payments.js | 2 +- .../web/template/payment/banktransfer.html | 2 +- .../web/template/payment/cashondelivery.html | 2 +- .../frontend/web/template/payment/checkmo.html | 2 +- .../web/template/payment/purchaseorder-form.html | 2 +- .../Block/Adminhtml/Carrier/Tablerate/Grid.php | 2 +- .../Block/Adminhtml/Form/Field/Export.php | 2 +- .../Block/Adminhtml/Form/Field/Import.php | 2 +- .../Adminhtml/System/Config/ExportTablerates.php | 2 +- .../OfflineShipping/Model/Carrier/Flatrate.php | 2 +- .../Model/Carrier/Flatrate/ItemPriceCalculator.php | 2 +- .../OfflineShipping/Model/Carrier/Freeshipping.php | 2 +- .../OfflineShipping/Model/Carrier/Pickup.php | 2 +- .../OfflineShipping/Model/Carrier/Tablerate.php | 2 +- .../Model/Config/Backend/Tablerate.php | 2 +- .../Model/Config/Source/Flatrate.php | 2 +- .../Model/Config/Source/Tablerate.php | 2 +- .../Model/Plugin/Checkout/Block/Cart/Shipping.php | 2 +- .../Model/Quote/Address/FreeShipping.php | 2 +- .../Model/ResourceModel/Carrier/Tablerate.php | 2 +- .../Tablerate/CSV/ColumnNotFoundException.php | 2 +- .../Carrier/Tablerate/CSV/ColumnResolver.php | 2 +- .../Carrier/Tablerate/CSV/RowException.php | 2 +- .../Carrier/Tablerate/CSV/RowParser.php | 2 +- .../ResourceModel/Carrier/Tablerate/Collection.php | 2 +- .../Carrier/Tablerate/DataHashGenerator.php | 2 +- .../ResourceModel/Carrier/Tablerate/Import.php | 2 +- .../Carrier/Tablerate/LocationDirectory.php | 2 +- .../ResourceModel/Carrier/Tablerate/RateQuery.php | 2 +- .../OfflineShipping/Model/SalesRule/Calculator.php | 2 +- .../OfflineShipping/Model/SalesRule/Rule.php | 2 +- .../Model/Source/SalesRule/FreeShippingOptions.php | 2 +- .../OfflineShipping/Setup/InstallSchema.php | 2 +- .../Block/Adminhtml/Carrier/Tablerate/GridTest.php | 2 +- .../Unit/Block/Adminhtml/Form/Field/ExportTest.php | 2 +- .../Unit/Block/Adminhtml/Form/Field/ImportTest.php | 2 +- .../Unit/Model/Config/Backend/TablerateTest.php | 2 +- .../Test/Unit/Model/Config/Source/FlatrateTest.php | 2 +- .../Unit/Model/Config/Source/TablerateTest.php | 2 +- .../Plugin/Checkout/Block/Cart/ShippingTest.php | 2 +- .../Unit/Model/Quote/Address/FreeShippingTest.php | 2 +- .../Carrier/Tablerate/CSV/ColumnResolverTest.php | 2 +- .../Carrier/Tablerate/CSV/RowParserTest.php | 2 +- .../ResourceModel/Carrier/Tablerate/ImportTest.php | 2 +- .../Test/Unit/Model/SalesRule/CalculatorTest.php | 2 +- .../OfflineShipping/etc/adminhtml/routes.xml | 2 +- .../OfflineShipping/etc/adminhtml/system.xml | 2 +- app/code/Magento/OfflineShipping/etc/config.xml | 2 +- app/code/Magento/OfflineShipping/etc/di.xml | 2 +- app/code/Magento/OfflineShipping/etc/fieldset.xml | 2 +- app/code/Magento/OfflineShipping/etc/module.xml | 2 +- app/code/Magento/OfflineShipping/registration.php | 2 +- .../adminhtml/ui_component/sales_rule_form.xml | 2 +- .../ui_component/salesrulestaging_update_form.xml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../shipping-rates-validation-rules/flatrate.js | 2 +- .../freeshipping.js | 2 +- .../shipping-rates-validation-rules/tablerate.js | 2 +- .../js/model/shipping-rates-validator/flatrate.js | 2 +- .../model/shipping-rates-validator/freeshipping.js | 2 +- .../js/model/shipping-rates-validator/tablerate.js | 2 +- .../js/view/shipping-rates-validation/flatrate.js | 2 +- .../view/shipping-rates-validation/freeshipping.js | 2 +- .../js/view/shipping-rates-validation/tablerate.js | 2 +- app/code/Magento/PageCache/Block/Javascript.php | 2 +- .../Block/System/Config/Form/Field/Export.php | 2 +- .../System/Config/Form/Field/Export/Varnish3.php | 2 +- .../System/Config/Form/Field/Export/Varnish4.php | 2 +- .../Adminhtml/PageCache/ExportVarnishConfig.php | 2 +- app/code/Magento/PageCache/Controller/Block.php | 2 +- .../Magento/PageCache/Controller/Block/Esi.php | 2 +- .../Magento/PageCache/Controller/Block/Render.php | 2 +- app/code/Magento/PageCache/Helper/Data.php | 2 +- .../PageCache/Model/App/CacheIdentifierPlugin.php | 2 +- .../Model/App/FrontController/BuiltinPlugin.php | 2 +- .../Model/App/FrontController/VarnishPlugin.php | 2 +- .../PageCache/Model/App/PageCachePlugin.php | 2 +- .../PageCache/Model/App/Response/HttpPlugin.php | 2 +- app/code/Magento/PageCache/Model/Cache/Server.php | 2 +- app/code/Magento/PageCache/Model/Cache/Type.php | 2 +- app/code/Magento/PageCache/Model/Config.php | 2 +- .../Model/Controller/Result/BuiltinPlugin.php | 2 +- .../Model/Controller/Result/VarnishPlugin.php | 2 +- .../PageCache/Model/DepersonalizeChecker.php | 2 +- .../PageCache/Model/Layout/DepersonalizePlugin.php | 2 +- .../PageCache/Model/Layout/LayoutPlugin.php | 2 +- .../PageCache/Model/System/Config/Backend/Ttl.php | 2 +- .../Model/System/Config/Backend/Varnish.php | 2 +- .../Model/System/Config/Source/Application.php | 2 +- .../Magento/PageCache/Observer/FlushAllCache.php | 2 +- .../PageCache/Observer/FlushCacheByTags.php | 2 +- .../Magento/PageCache/Observer/FlushFormKey.php | 2 +- .../Magento/PageCache/Observer/InvalidateCache.php | 2 +- .../Observer/ProcessLayoutRenderElement.php | 2 +- .../Observer/RegisterFormKeyFromCookie.php | 2 +- .../Test/Unit/App/CacheIdentifierPluginTest.php | 2 +- .../Test/Unit/Block/Controller/StubBlock.php | 2 +- .../PageCache/Test/Unit/Block/JavascriptTest.php | 2 +- .../PageCache/ExportVarnishConfigTest.php | 2 +- .../Test/Unit/Controller/Block/EsiTest.php | 2 +- .../Test/Unit/Controller/Block/RenderTest.php | 2 +- .../PageCache/Test/Unit/Helper/DataTest.php | 2 +- .../App/FrontController/BuiltinPluginTest.php | 2 +- .../App/FrontController/VarnishPluginTest.php | 2 +- .../Test/Unit/Model/App/PageCachePluginTest.php | 2 +- .../Unit/Model/App/Response/HttpPluginTest.php | 2 +- .../PageCache/Test/Unit/Model/Cache/ServerTest.php | 2 +- .../PageCache/Test/Unit/Model/Cache/TypeTest.php | 2 +- .../PageCache/Test/Unit/Model/ConfigTest.php | 2 +- .../Model/Controller/Result/BuiltinPluginTest.php | 2 +- .../Model/Controller/Result/VarnishPluginTest.php | 2 +- .../Test/Unit/Model/DepersonalizeCheckerTest.php | 2 +- .../Unit/Model/Layout/DepersonalizePluginTest.php | 2 +- .../Test/Unit/Model/Layout/LayoutPluginTest.php | 2 +- .../PageCache/Test/Unit/Model/_files/result.vcl | 2 +- .../PageCache/Test/Unit/Model/_files/test.vcl | 2 +- .../Test/Unit/Observer/FlushAllCacheTest.php | 2 +- .../Test/Unit/Observer/FlushCacheByTagsTest.php | 2 +- .../Test/Unit/Observer/FlushFormKeyTest.php | 2 +- .../Test/Unit/Observer/InvalidateCacheTest.php | 2 +- .../Observer/ProcessLayoutRenderElementTest.php | 2 +- .../Observer/RegisterFormKeyFromCookieTest.php | 2 +- app/code/Magento/PageCache/etc/adminhtml/di.xml | 2 +- .../Magento/PageCache/etc/adminhtml/routes.xml | 2 +- .../Magento/PageCache/etc/adminhtml/system.xml | 2 +- app/code/Magento/PageCache/etc/cache.xml | 2 +- app/code/Magento/PageCache/etc/config.xml | 2 +- app/code/Magento/PageCache/etc/di.xml | 2 +- app/code/Magento/PageCache/etc/events.xml | 2 +- app/code/Magento/PageCache/etc/frontend/di.xml | 2 +- app/code/Magento/PageCache/etc/frontend/routes.xml | 2 +- app/code/Magento/PageCache/etc/module.xml | 2 +- app/code/Magento/PageCache/registration.php | 2 +- .../layout/adminhtml_system_config_edit.xml | 2 +- .../templates/page_cache_validation.phtml | 2 +- .../PageCache/view/frontend/layout/default.xml | 2 +- .../PageCache/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/javascript.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../PageCache/view/frontend/web/js/page-cache.js | 2 +- .../Payment/Api/Data/PaymentMethodInterface.php | 2 +- .../Payment/Api/PaymentMethodListInterface.php | 2 +- .../Payment/Block/Adminhtml/Transparent/Form.php | 2 +- .../Magento/Payment/Block/ConfigurableInfo.php | 2 +- app/code/Magento/Payment/Block/Form.php | 2 +- app/code/Magento/Payment/Block/Form/Cc.php | 2 +- app/code/Magento/Payment/Block/Form/Container.php | 2 +- app/code/Magento/Payment/Block/Info.php | 2 +- .../Payment/Block/Info/AbstractContainer.php | 2 +- app/code/Magento/Payment/Block/Info/Cc.php | 2 +- .../Magento/Payment/Block/Info/Instructions.php | 2 +- .../Magento/Payment/Block/Info/Substitution.php | 2 +- .../Magento/Payment/Block/Transparent/Form.php | 2 +- .../Magento/Payment/Block/Transparent/Iframe.php | 2 +- .../Magento/Payment/Block/Transparent/Info.php | 2 +- .../Payment/Gateway/Command/CommandException.php | 2 +- .../Payment/Gateway/Command/CommandManager.php | 2 +- .../Gateway/Command/CommandManagerInterface.php | 2 +- .../Payment/Gateway/Command/CommandManagerPool.php | 2 +- .../Command/CommandManagerPoolInterface.php | 2 +- .../Payment/Gateway/Command/CommandPool.php | 2 +- .../Gateway/Command/CommandPoolInterface.php | 2 +- .../Payment/Gateway/Command/GatewayCommand.php | 2 +- .../Payment/Gateway/Command/NullCommand.php | 2 +- .../Payment/Gateway/Command/Result/ArrayResult.php | 2 +- .../Payment/Gateway/Command/Result/BoolResult.php | 2 +- .../Payment/Gateway/Command/ResultInterface.php | 2 +- .../Magento/Payment/Gateway/CommandInterface.php | 2 +- app/code/Magento/Payment/Gateway/Config/Config.php | 2 +- .../Payment/Gateway/Config/ConfigFactory.php | 2 +- .../Payment/Gateway/Config/ConfigValueHandler.php | 2 +- .../Gateway/Config/ValueHandlerInterface.php | 2 +- .../Payment/Gateway/Config/ValueHandlerPool.php | 2 +- .../Gateway/Config/ValueHandlerPoolInterface.php | 2 +- .../Payment/Gateway/ConfigFactoryInterface.php | 2 +- .../Magento/Payment/Gateway/ConfigInterface.php | 2 +- .../Gateway/Data/AddressAdapterInterface.php | 2 +- .../Payment/Gateway/Data/Order/AddressAdapter.php | 2 +- .../Payment/Gateway/Data/Order/OrderAdapter.php | 2 +- .../Payment/Gateway/Data/OrderAdapterInterface.php | 2 +- .../Payment/Gateway/Data/PaymentDataObject.php | 2 +- .../Gateway/Data/PaymentDataObjectFactory.php | 2 +- .../Data/PaymentDataObjectFactoryInterface.php | 2 +- .../Gateway/Data/PaymentDataObjectInterface.php | 2 +- .../Payment/Gateway/Data/Quote/AddressAdapter.php | 2 +- .../Payment/Gateway/Data/Quote/QuoteAdapter.php | 2 +- .../Payment/Gateway/Helper/ContextHelper.php | 2 +- .../Payment/Gateway/Helper/SubjectReader.php | 2 +- .../Magento/Payment/Gateway/Http/Client/Soap.php | 2 +- .../Magento/Payment/Gateway/Http/Client/Zend.php | 2 +- .../Payment/Gateway/Http/ClientException.php | 2 +- .../Payment/Gateway/Http/ClientInterface.php | 2 +- .../Gateway/Http/Converter/HtmlFormConverter.php | 2 +- .../Http/Converter/Soap/ObjectToArrayConverter.php | 2 +- .../Payment/Gateway/Http/ConverterException.php | 2 +- .../Payment/Gateway/Http/ConverterInterface.php | 2 +- app/code/Magento/Payment/Gateway/Http/Transfer.php | 2 +- .../Payment/Gateway/Http/TransferBuilder.php | 2 +- .../Gateway/Http/TransferFactoryInterface.php | 2 +- .../Payment/Gateway/Http/TransferInterface.php | 2 +- .../Payment/Gateway/Request/BuilderComposite.php | 2 +- .../Payment/Gateway/Request/BuilderInterface.php | 2 +- .../Payment/Gateway/Response/HandlerChain.php | 2 +- .../Payment/Gateway/Response/HandlerInterface.php | 2 +- .../Gateway/Validator/AbstractValidator.php | 2 +- .../Payment/Gateway/Validator/CountryValidator.php | 2 +- .../Magento/Payment/Gateway/Validator/Result.php | 2 +- .../Payment/Gateway/Validator/ResultInterface.php | 2 +- .../Gateway/Validator/ValidatorComposite.php | 2 +- .../Gateway/Validator/ValidatorInterface.php | 2 +- .../Payment/Gateway/Validator/ValidatorPool.php | 2 +- .../Gateway/Validator/ValidatorPoolInterface.php | 2 +- app/code/Magento/Payment/Helper/Data.php | 2 +- app/code/Magento/Payment/Helper/Formatter.php | 2 +- app/code/Magento/Payment/Model/Cart.php | 2 +- .../Payment/Model/Cart/SalesModel/Factory.php | 2 +- .../Payment/Model/Cart/SalesModel/Order.php | 2 +- .../Payment/Model/Cart/SalesModel/Quote.php | 2 +- .../Model/Cart/SalesModel/SalesModelInterface.php | 2 +- app/code/Magento/Payment/Model/CcConfig.php | 2 +- .../Magento/Payment/Model/CcConfigProvider.php | 2 +- .../Payment/Model/CcGenericConfigProvider.php | 2 +- .../Payment/Model/Checks/CanUseCheckout.php | 2 +- .../Payment/Model/Checks/CanUseForCountry.php | 2 +- .../Checks/CanUseForCountry/CountryProvider.php | 2 +- .../Payment/Model/Checks/CanUseForCurrency.php | 2 +- .../Payment/Model/Checks/CanUseInternal.php | 2 +- .../Magento/Payment/Model/Checks/Composite.php | 2 +- .../Payment/Model/Checks/SpecificationFactory.php | 2 +- .../Model/Checks/SpecificationInterface.php | 2 +- .../Magento/Payment/Model/Checks/TotalMinMax.php | 2 +- .../Magento/Payment/Model/Checks/ZeroTotal.php | 2 +- app/code/Magento/Payment/Model/Config.php | 2 +- .../Magento/Payment/Model/Config/Converter.php | 2 +- app/code/Magento/Payment/Model/Config/Reader.php | 2 +- .../Magento/Payment/Model/Config/SchemaLocator.php | 2 +- .../Payment/Model/Config/Source/Allmethods.php | 2 +- .../Model/Config/Source/Allspecificcountries.php | 2 +- .../Magento/Payment/Model/Config/Source/Cctype.php | 2 +- .../Magento/Payment/Model/IframeConfigProvider.php | 2 +- app/code/Magento/Payment/Model/Info.php | 2 +- app/code/Magento/Payment/Model/InfoInterface.php | 2 +- .../Payment/Model/Method/AbstractMethod.php | 2 +- app/code/Magento/Payment/Model/Method/Adapter.php | 2 +- app/code/Magento/Payment/Model/Method/Cc.php | 2 +- .../Payment/Model/Method/ConfigInterface.php | 2 +- app/code/Magento/Payment/Model/Method/Factory.php | 2 +- app/code/Magento/Payment/Model/Method/Free.php | 2 +- .../Payment/Model/Method/InstanceFactory.php | 2 +- app/code/Magento/Payment/Model/Method/Logger.php | 2 +- .../Model/Method/Online/GatewayInterface.php | 2 +- .../Method/Specification/AbstractSpecification.php | 2 +- .../Model/Method/Specification/Composite.php | 2 +- .../Payment/Model/Method/Specification/Factory.php | 2 +- .../Model/Method/SpecificationInterface.php | 2 +- .../Magento/Payment/Model/Method/Substitution.php | 2 +- .../Payment/Model/Method/TransparentInterface.php | 2 +- app/code/Magento/Payment/Model/MethodInterface.php | 2 +- app/code/Magento/Payment/Model/MethodList.php | 2 +- app/code/Magento/Payment/Model/Paygate/Result.php | 2 +- app/code/Magento/Payment/Model/PaymentMethod.php | 2 +- .../Magento/Payment/Model/PaymentMethodList.php | 2 +- .../Payment/Model/ResourceModel/Grid/GroupList.php | 2 +- .../Payment/Model/ResourceModel/Grid/TypeList.php | 2 +- app/code/Magento/Payment/Model/Source/Cctype.php | 2 +- app/code/Magento/Payment/Model/Source/Invoice.php | 2 +- .../Observer/AbstractDataAssignObserver.php | 2 +- .../Observer/SalesOrderBeforeSaveObserver.php | 2 +- .../UpdateOrderStatusForPaymentMethodsObserver.php | 2 +- .../Payment/Plugin/PaymentConfigurationProcess.php | 2 +- .../Unit/Block/Adminhtml/Transparent/FormTest.php | 2 +- .../Block/Adminhtml/Transparent/FormTesting.php | 2 +- .../Payment/Test/Unit/Block/Form/ContainerTest.php | 2 +- .../Magento/Payment/Test/Unit/Block/FormTest.php | 10 +++++----- .../Payment/Test/Unit/Block/Info/CcTest.php | 2 +- .../Test/Unit/Block/Info/ContainerAbstractTest.php | 2 +- .../Test/Unit/Block/Info/InstructionsTest.php | 2 +- .../Test/Unit/Block/Info/SubstitutionTest.php | 2 +- .../Magento/Payment/Test/Unit/Block/InfoTest.php | 2 +- .../Test/Unit/Block/Transparent/FormTest.php | 2 +- .../Test/Unit/Block/Transparent/FormTesting.php | 2 +- .../Test/Unit/Gateway/Command/CommandPoolTest.php | 2 +- .../Unit/Gateway/Command/GatewayCommandTest.php | 2 +- .../Test/Unit/Gateway/Config/ConfigTest.php | 2 +- .../Unit/Gateway/Config/ConfigValueHandlerTest.php | 2 +- .../Unit/Gateway/Config/ValueHandlerPoolTest.php | 2 +- .../Unit/Gateway/Data/Order/AddressAdapterTest.php | 2 +- .../Unit/Gateway/Data/Order/OrderAdapterTest.php | 2 +- .../Gateway/Data/PaymentDataObjectFactoryTest.php | 2 +- .../Unit/Gateway/Data/PaymentDataObjectTest.php | 2 +- .../Unit/Gateway/Data/Quote/AddressAdapterTest.php | 2 +- .../Unit/Gateway/Data/Quote/QuoteAdapterTest.php | 2 +- .../Test/Unit/Gateway/Http/Client/SoapTest.php | 2 +- .../Test/Unit/Gateway/Http/Client/ZendTest.php | 2 +- .../Http/Converter/HtmlFormConverterTest.php | 2 +- .../Converter/Soap/ObjectToArrayConverterTest.php | 2 +- .../Test/Unit/Gateway/Http/TransferTest.php | 2 +- .../Unit/Gateway/Request/BuilderCompositeTest.php | 2 +- .../Unit/Gateway/Response/HandlerChainTest.php | 2 +- .../Gateway/Validator/CountryValidatorTest.php | 2 +- .../Test/Unit/Gateway/Validator/ResultTest.php | 2 +- .../Gateway/Validator/ValidatorCompositeTest.php | 2 +- .../Unit/Gateway/Validator/ValidatorPoolTest.php | 2 +- .../Magento/Payment/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Cart/SalesModel/FactoryTest.php | 2 +- .../Test/Unit/Model/Cart/SalesModel/OrderTest.php | 2 +- .../Test/Unit/Model/Cart/SalesModel/QuoteTest.php | 2 +- .../Magento/Payment/Test/Unit/Model/CartTest.php | 2 +- .../Test/Unit/Model/CcConfigProviderTest.php | 2 +- .../Payment/Test/Unit/Model/CcConfigTest.php | 2 +- .../Unit/Model/CcGenericConfigProviderTest.php | 2 +- .../Test/Unit/Model/Checks/CanUseCheckoutTest.php | 2 +- .../CanUseForCountry/CountryProviderTest.php | 2 +- .../Unit/Model/Checks/CanUseForCountryTest.php | 2 +- .../Unit/Model/Checks/CanUseForCurrencyTest.php | 2 +- .../Test/Unit/Model/Checks/CanUseInternalTest.php | 2 +- .../Test/Unit/Model/Checks/CompositeTest.php | 2 +- .../Unit/Model/Checks/SpecificationFactoryTest.php | 2 +- .../Test/Unit/Model/Checks/TotalMinMaxTest.php | 2 +- .../Test/Unit/Model/Checks/ZeroTotalTest.php | 2 +- .../Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Test/Unit/Model/Config/SchemaLocatorTest.php | 2 +- .../Unit/Model/Config/Source/AllmethodsTest.php | 2 +- .../Config/Source/AllspecificcountriesTest.php | 2 +- .../Test/Unit/Model/Config/Source/CctypeTest.php | 2 +- .../Test/Unit/Model/Config/_files/payment.xml | 2 +- .../Magento/Payment/Test/Unit/Model/ConfigTest.php | 2 +- .../Magento/Payment/Test/Unit/Model/InfoTest.php | 2 +- .../Test/Unit/Model/Method/AbstractMethod/Stub.php | 2 +- .../Test/Unit/Model/Method/AbstractMethodTest.php | 2 +- .../Payment/Test/Unit/Model/Method/AdapterTest.php | 2 +- .../Payment/Test/Unit/Model/Method/CcTest.php | 2 +- .../Payment/Test/Unit/Model/Method/FactoryTest.php | 2 +- .../Payment/Test/Unit/Model/Method/FreeTest.php | 2 +- .../Payment/Test/Unit/Model/Method/LoggerTest.php | 2 +- .../Model/Method/Specification/CompositeTest.php | 2 +- .../Model/Method/Specification/FactoryTest.php | 2 +- .../Test/Unit/Model/Method/SubstitutionTest.php | 2 +- .../Payment/Test/Unit/Model/MethodListTest.php | 2 +- .../Test/Unit/Model/PaymentMethodListTest.php | 2 +- .../Model/ResourceModel/Grid/GroupListTest.php | 2 +- .../Unit/Model/ResourceModel/Grid/TypeListTest.php | 2 +- .../Payment/Test/Unit/Model/Source/CctypeTest.php | 2 +- .../Payment/Test/Unit/Model/Source/InvoiceTest.php | 2 +- .../Observer/SalesOrderBeforeSaveObserverTest.php | 2 +- ...ateOrderStatusForPaymentMethodsObserverTest.php | 2 +- .../Plugin/PaymentConfigurationProcessTest.php | 2 +- .../Ui/Component/Listing/Column/Method/Options.php | 2 +- app/code/Magento/Payment/etc/acl.xml | 2 +- app/code/Magento/Payment/etc/adminhtml/system.xml | 2 +- app/code/Magento/Payment/etc/config.xml | 2 +- app/code/Magento/Payment/etc/di.xml | 2 +- app/code/Magento/Payment/etc/events.xml | 2 +- app/code/Magento/Payment/etc/frontend/di.xml | 2 +- app/code/Magento/Payment/etc/module.xml | 2 +- app/code/Magento/Payment/etc/payment.xml | 2 +- app/code/Magento/Payment/etc/payment.xsd | 2 +- app/code/Magento/Payment/etc/payment_file.xsd | 2 +- app/code/Magento/Payment/registration.php | 2 +- .../Payment/view/adminhtml/templates/form/cc.phtml | 2 +- .../view/adminhtml/templates/info/default.phtml | 2 +- .../adminhtml/templates/info/instructions.phtml | 2 +- .../adminhtml/templates/info/pdf/default.phtml | 2 +- .../adminhtml/templates/info/substitution.phtml | 2 +- .../adminhtml/templates/transparent/form.phtml | 2 +- .../adminhtml/templates/transparent/iframe.phtml | 2 +- .../adminhtml/templates/transparent/info.phtml | 2 +- .../Payment/view/adminhtml/web/transparent.js | 2 +- .../credit-card-validation/credit-card-data.js | 2 +- .../credit-card-number-validator.js | 2 +- .../credit-card-type.js | 2 +- .../luhn10-validator.js | 2 +- .../model/credit-card-validation/cvv-validator.js | 2 +- .../expiration-date-validator.js | 2 +- .../expiration-month-validator.js | 2 +- .../expiration-year-validator.js | 2 +- .../expiration-date-validator/parse-date.js | 2 +- .../js/model/credit-card-validation/validator.js | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../frontend/layout/checkout_onepage_review.xml | 2 +- .../Payment/view/frontend/requirejs-config.js | 2 +- .../Payment/view/frontend/templates/form/cc.phtml | 2 +- .../view/frontend/templates/info/default.phtml | 2 +- .../frontend/templates/info/instructions.phtml | 2 +- .../view/frontend/templates/transparent/form.phtml | 2 +- .../frontend/templates/transparent/iframe.phtml | 2 +- .../view/frontend/templates/transparent/info.phtml | 2 +- .../Magento/Payment/view/frontend/web/cc-type.js | 2 +- .../view/frontend/web/js/view/payment/cc-form.js | 2 +- .../view/frontend/web/js/view/payment/iframe.js | 2 +- .../js/view/payment/method-renderer/free-method.js | 2 +- .../view/frontend/web/js/view/payment/payments.js | 2 +- .../frontend/web/template/payment/cc-form.html | 2 +- .../view/frontend/web/template/payment/free.html | 2 +- .../view/frontend/web/template/payment/iframe.html | 2 +- .../Payment/view/frontend/web/transparent.js | 2 +- .../Paypal/Block/Adminhtml/Billing/Agreement.php | 2 +- .../Block/Adminhtml/Billing/Agreement/Grid.php | 2 +- .../Block/Adminhtml/Billing/Agreement/View.php | 2 +- .../Adminhtml/Billing/Agreement/View/Form.php | 2 +- .../Adminhtml/Billing/Agreement/View/Tab/Info.php | 2 +- .../Billing/Agreement/View/Tab/Orders.php | 2 +- .../Adminhtml/Billing/Agreement/View/Tabs.php | 2 +- .../Adminhtml/Customer/Edit/Tab/Agreement.php | 2 +- .../Paypal/Block/Adminhtml/Payflowpro/CcForm.php | 2 +- .../Paypal/Block/Adminhtml/Settlement/Details.php | 2 +- .../Block/Adminhtml/Settlement/Details/Form.php | 2 +- .../Paypal/Block/Adminhtml/Settlement/Report.php | 2 +- .../Block/Adminhtml/Store/SwitcherPlugin.php | 2 +- .../Block/Adminhtml/System/Config/ApiWizard.php | 2 +- .../Block/Adminhtml/System/Config/BmlApiWizard.php | 2 +- .../Adminhtml/System/Config/Field/Country.php | 2 +- .../Config/Field/Depends/BmlApiSortOrder.php | 2 +- .../System/Config/Field/Depends/BmlSortOrder.php | 2 +- .../System/Config/Field/Depends/MerchantId.php | 2 +- .../System/Config/Field/Enable/AbstractEnable.php | 2 +- .../Adminhtml/System/Config/Field/Enable/Bml.php | 2 +- .../System/Config/Field/Enable/BmlApi.php | 2 +- .../System/Config/Field/Enable/Express.php | 2 +- .../System/Config/Field/Enable/InContext.php | 2 +- .../System/Config/Field/Enable/InContextApi.php | 2 +- .../System/Config/Field/Enable/Payment.php | 2 +- .../Block/Adminhtml/System/Config/Field/Hidden.php | 2 +- .../Adminhtml/System/Config/Fieldset/Expanded.php | 2 +- .../Adminhtml/System/Config/Fieldset/Group.php | 2 +- .../Adminhtml/System/Config/Fieldset/Hint.php | 2 +- .../Adminhtml/System/Config/Fieldset/Payment.php | 2 +- .../System/Config/Payflowlink/Advanced.php | 2 +- .../Adminhtml/System/Config/Payflowlink/Info.php | 2 +- .../Adminhtml/System/Config/ResolutionRules.php | 2 +- .../Paypal/Block/Billing/Agreement/View.php | 2 +- .../Magento/Paypal/Block/Billing/Agreements.php | 2 +- app/code/Magento/Paypal/Block/Bml/Banners.php | 2 +- app/code/Magento/Paypal/Block/Bml/Form.php | 2 +- app/code/Magento/Paypal/Block/Bml/Shortcut.php | 2 +- .../Paypal/Block/Cart/ValidationMessages.php | 2 +- .../Checkout/Onepage/Success/BillingAgreement.php | 2 +- app/code/Magento/Paypal/Block/Express/Form.php | 2 +- .../Paypal/Block/Express/InContext/Component.php | 2 +- .../Block/Express/InContext/Minicart/Button.php | 2 +- app/code/Magento/Paypal/Block/Express/Review.php | 2 +- .../Paypal/Block/Express/Review/Billing.php | 2 +- .../Paypal/Block/Express/Review/Details.php | 2 +- .../Paypal/Block/Express/Review/Shipping.php | 2 +- app/code/Magento/Paypal/Block/Express/Shortcut.php | 2 +- app/code/Magento/Paypal/Block/Hosted/Pro/Form.php | 2 +- .../Magento/Paypal/Block/Hosted/Pro/Iframe.php | 2 +- app/code/Magento/Paypal/Block/Hosted/Pro/Info.php | 2 +- app/code/Magento/Paypal/Block/Iframe.php | 2 +- app/code/Magento/Paypal/Block/Logo.php | 2 +- .../Magento/Paypal/Block/Payflow/Advanced/Form.php | 2 +- .../Paypal/Block/Payflow/Advanced/Iframe.php | 2 +- .../Magento/Paypal/Block/Payflow/Advanced/Info.php | 2 +- app/code/Magento/Paypal/Block/Payflow/Bml/Form.php | 2 +- .../Paypal/Block/Payflow/Customer/CardRenderer.php | 2 +- app/code/Magento/Paypal/Block/Payflow/Info.php | 2 +- .../Magento/Paypal/Block/Payflow/Link/Form.php | 2 +- .../Magento/Paypal/Block/Payflow/Link/Iframe.php | 2 +- .../Magento/Paypal/Block/Payflow/Link/Info.php | 2 +- .../Magento/Paypal/Block/PayflowExpress/Form.php | 2 +- .../Block/Payment/Form/Billing/Agreement.php | 2 +- app/code/Magento/Paypal/Block/Payment/Info.php | 2 +- .../Block/Payment/Info/Billing/Agreement.php | 2 +- .../Controller/Adminhtml/Billing/Agreement.php | 2 +- .../Adminhtml/Billing/Agreement/Cancel.php | 2 +- .../Adminhtml/Billing/Agreement/CustomerGrid.php | 2 +- .../Adminhtml/Billing/Agreement/Delete.php | 2 +- .../Adminhtml/Billing/Agreement/Grid.php | 2 +- .../Adminhtml/Billing/Agreement/Index.php | 2 +- .../Adminhtml/Billing/Agreement/OrdersGrid.php | 2 +- .../Adminhtml/Billing/Agreement/View.php | 2 +- .../Paypal/Controller/Adminhtml/Paypal/Reports.php | 2 +- .../Adminhtml/Paypal/Reports/Details.php | 2 +- .../Controller/Adminhtml/Paypal/Reports/Fetch.php | 2 +- .../Controller/Adminhtml/Paypal/Reports/Grid.php | 2 +- .../Controller/Adminhtml/Paypal/Reports/Index.php | 2 +- .../Adminhtml/Transparent/RequestSecureToken.php | 2 +- .../Controller/Adminhtml/Transparent/Response.php | 2 +- .../Paypal/Controller/Billing/Agreement.php | 2 +- .../Paypal/Controller/Billing/Agreement/Cancel.php | 2 +- .../Controller/Billing/Agreement/CancelWizard.php | 2 +- .../Paypal/Controller/Billing/Agreement/Index.php | 2 +- .../Controller/Billing/Agreement/ReturnWizard.php | 2 +- .../Controller/Billing/Agreement/StartWizard.php | 2 +- .../Paypal/Controller/Billing/Agreement/View.php | 2 +- app/code/Magento/Paypal/Controller/Bml/Start.php | 2 +- .../Paypal/Controller/Express/AbstractExpress.php | 2 +- .../Controller/Express/AbstractExpress/Cancel.php | 2 +- .../Controller/Express/AbstractExpress/Edit.php | 2 +- .../Express/AbstractExpress/PlaceOrder.php | 2 +- .../Express/AbstractExpress/ReturnAction.php | 2 +- .../Controller/Express/AbstractExpress/Review.php | 2 +- .../Express/AbstractExpress/SaveShippingMethod.php | 2 +- .../AbstractExpress/ShippingOptionsCallback.php | 2 +- .../Controller/Express/AbstractExpress/Start.php | 2 +- .../AbstractExpress/UpdateShippingMethods.php | 2 +- .../Magento/Paypal/Controller/Express/Cancel.php | 2 +- .../Magento/Paypal/Controller/Express/Edit.php | 2 +- .../Magento/Paypal/Controller/Express/GetToken.php | 2 +- .../Paypal/Controller/Express/PlaceOrder.php | 2 +- .../Paypal/Controller/Express/ReturnAction.php | 2 +- .../Magento/Paypal/Controller/Express/Review.php | 2 +- .../Controller/Express/SaveShippingMethod.php | 2 +- .../Controller/Express/ShippingOptionsCallback.php | 2 +- .../Magento/Paypal/Controller/Express/Start.php | 2 +- .../Controller/Express/UpdateShippingMethods.php | 2 +- .../Magento/Paypal/Controller/Hostedpro/Cancel.php | 2 +- .../Paypal/Controller/Hostedpro/Redirect.php | 2 +- .../Paypal/Controller/Hostedpro/ReturnAction.php | 2 +- app/code/Magento/Paypal/Controller/Ipn/Index.php | 2 +- app/code/Magento/Paypal/Controller/Payflow.php | 2 +- .../Paypal/Controller/Payflow/CancelPayment.php | 2 +- .../Magento/Paypal/Controller/Payflow/Form.php | 2 +- .../Paypal/Controller/Payflow/ReturnUrl.php | 2 +- .../Paypal/Controller/Payflow/SilentPost.php | 2 +- .../Controller/Payflowadvanced/CancelPayment.php | 2 +- .../Paypal/Controller/Payflowadvanced/Form.php | 2 +- .../Controller/Payflowadvanced/ReturnUrl.php | 2 +- .../Controller/Payflowadvanced/SilentPost.php | 2 +- .../Magento/Paypal/Controller/Payflowbml/Start.php | 2 +- .../Paypal/Controller/Payflowexpress/Cancel.php | 2 +- .../Paypal/Controller/Payflowexpress/Edit.php | 2 +- .../Controller/Payflowexpress/PlaceOrder.php | 2 +- .../Controller/Payflowexpress/ReturnAction.php | 2 +- .../Paypal/Controller/Payflowexpress/Review.php | 2 +- .../Payflowexpress/SaveShippingMethod.php | 2 +- .../Payflowexpress/ShippingOptionsCallback.php | 2 +- .../Paypal/Controller/Payflowexpress/Start.php | 2 +- .../Payflowexpress/UpdateShippingMethods.php | 2 +- .../Controller/Transparent/RequestSecureToken.php | 2 +- .../Paypal/Controller/Transparent/Response.php | 2 +- app/code/Magento/Paypal/Cron/FetchReports.php | 2 +- .../Paypal/CustomerData/BillingAgreement.php | 2 +- .../Payflowpro/Command/AuthorizationCommand.php | 2 +- .../Gateway/Payflowpro/Command/SaleCommand.php | 2 +- app/code/Magento/Paypal/Helper/Backend.php | 2 +- app/code/Magento/Paypal/Helper/Checkout.php | 2 +- app/code/Magento/Paypal/Helper/Data.php | 2 +- app/code/Magento/Paypal/Helper/Hss.php | 2 +- .../Paypal/Helper/Shortcut/CheckoutValidator.php | 2 +- .../Magento/Paypal/Helper/Shortcut/Factory.php | 2 +- .../Magento/Paypal/Helper/Shortcut/Validator.php | 2 +- .../Paypal/Helper/Shortcut/ValidatorInterface.php | 2 +- app/code/Magento/Paypal/Model/AbstractConfig.php | 2 +- app/code/Magento/Paypal/Model/AbstractIpn.php | 2 +- app/code/Magento/Paypal/Model/Api/AbstractApi.php | 2 +- app/code/Magento/Paypal/Model/Api/Nvp.php | 2 +- app/code/Magento/Paypal/Model/Api/PayflowNvp.php | 2 +- .../Paypal/Model/Api/ProcessableException.php | 2 +- app/code/Magento/Paypal/Model/Api/Type/Factory.php | 2 +- .../Paypal/Model/Billing/AbstractAgreement.php | 2 +- .../Magento/Paypal/Model/Billing/Agreement.php | 2 +- .../Model/Billing/Agreement/MethodInterface.php | 2 +- .../Model/Billing/Agreement/OrdersUpdater.php | 2 +- .../Model/BillingAgreementConfigProvider.php | 2 +- app/code/Magento/Paypal/Model/Bml.php | 2 +- app/code/Magento/Paypal/Model/Cart.php | 2 +- app/code/Magento/Paypal/Model/Cert.php | 2 +- app/code/Magento/Paypal/Model/Config.php | 2 +- app/code/Magento/Paypal/Model/Config/Factory.php | 2 +- .../Paypal/Model/Config/Rules/Converter.php | 2 +- .../Paypal/Model/Config/Rules/FileResolver.php | 2 +- .../Magento/Paypal/Model/Config/Rules/Reader.php | 2 +- .../Paypal/Model/Config/Rules/SchemaLocator.php | 2 +- .../Model/Config/Structure/Element/FieldPlugin.php | 2 +- .../Config/Structure/PaymentSectionModifier.php | 2 +- .../Paypal/Model/Config/StructurePlugin.php | 2 +- app/code/Magento/Paypal/Model/Direct.php | 2 +- app/code/Magento/Paypal/Model/Express.php | 2 +- app/code/Magento/Paypal/Model/Express/Checkout.php | 2 +- .../Paypal/Model/Express/Checkout/Factory.php | 2 +- .../Magento/Paypal/Model/Express/QuotePlugin.php | 2 +- .../Magento/Paypal/Model/ExpressConfigProvider.php | 2 +- app/code/Magento/Paypal/Model/Hostedpro.php | 2 +- .../Magento/Paypal/Model/Hostedpro/Request.php | 2 +- .../Magento/Paypal/Model/IframeConfigProvider.php | 2 +- app/code/Magento/Paypal/Model/Info.php | 2 +- app/code/Magento/Paypal/Model/Ipn.php | 2 +- app/code/Magento/Paypal/Model/IpnFactory.php | 2 +- app/code/Magento/Paypal/Model/IpnInterface.php | 2 +- app/code/Magento/Paypal/Model/Method/Agreement.php | 2 +- .../Model/Method/Checks/SpecificationPlugin.php | 2 +- app/code/Magento/Paypal/Model/Payflow/Bml.php | 2 +- app/code/Magento/Paypal/Model/Payflow/Pro.php | 2 +- app/code/Magento/Paypal/Model/Payflow/Request.php | 2 +- .../Paypal/Model/Payflow/Service/Gateway.php | 2 +- .../Model/Payflow/Service/Request/SecureToken.php | 2 +- .../Handler/CreditCardValidationHandler.php | 2 +- .../Service/Response/Handler/FraudHandler.php | 2 +- .../Service/Response/Handler/HandlerComposite.php | 2 +- .../Service/Response/Handler/HandlerInterface.php | 2 +- .../Model/Payflow/Service/Response/Transaction.php | 2 +- .../Service/Response/Validator/AVSResponse.php | 2 +- .../Service/Response/Validator/CVV2Match.php | 2 +- .../Response/Validator/ResponseValidator.php | 2 +- .../Service/Response/Validator/SecureToken.php | 2 +- .../Service/Response/ValidatorInterface.php | 2 +- .../Magento/Paypal/Model/Payflow/Transparent.php | 2 +- .../Ui/Adminhtml/TokenUiComponentProvider.php | 2 +- .../Model/Payflow/Ui/TokenUiComponentProvider.php | 2 +- app/code/Magento/Paypal/Model/PayflowConfig.php | 2 +- app/code/Magento/Paypal/Model/PayflowExpress.php | 2 +- .../Paypal/Model/PayflowExpress/Checkout.php | 2 +- app/code/Magento/Paypal/Model/Payflowadvanced.php | 2 +- app/code/Magento/Paypal/Model/Payflowlink.php | 2 +- app/code/Magento/Paypal/Model/Payflowpro.php | 2 +- .../Payment/Method/Billing/AbstractAgreement.php | 2 +- app/code/Magento/Paypal/Model/Pro.php | 2 +- .../Magento/Paypal/Model/Report/Settlement.php | 2 +- .../Magento/Paypal/Model/Report/Settlement/Row.php | 2 +- .../Model/ResourceModel/Billing/Agreement.php | 2 +- .../ResourceModel/Billing/Agreement/Collection.php | 2 +- .../Magento/Paypal/Model/ResourceModel/Cert.php | 2 +- .../Model/ResourceModel/Report/Settlement.php | 2 +- .../Settlement/Options/TransactionEvents.php | 2 +- .../Model/ResourceModel/Report/Settlement/Row.php | 2 +- .../Report/Settlement/Row/Collection.php | 2 +- .../Paypal/Model/System/Config/Backend/Cert.php | 2 +- .../Paypal/Model/System/Config/Backend/Cron.php | 2 +- .../System/Config/Backend/MerchantCountry.php | 2 +- .../Model/System/Config/Source/BmlPosition.php | 2 +- .../Paypal/Model/System/Config/Source/BmlSize.php | 2 +- .../Model/System/Config/Source/BuyerCountry.php | 2 +- .../System/Config/Source/FetchingSchedule.php | 2 +- .../Paypal/Model/System/Config/Source/Logo.php | 2 +- .../Model/System/Config/Source/MerchantCountry.php | 2 +- .../Model/System/Config/Source/PaymentActions.php | 2 +- .../Config/Source/PaymentActions/Express.php | 2 +- .../System/Config/Source/RequireBillingAddress.php | 2 +- .../Model/System/Config/Source/UrlMethod.php | 2 +- .../Model/System/Config/Source/Yesnoshortcut.php | 2 +- .../AddBillingAgreementToSessionObserver.php | 2 +- .../Paypal/Observer/AddPaypalShortcutsObserver.php | 2 +- .../Paypal/Observer/HtmlTransactionIdObserver.php | 2 +- .../Paypal/Observer/PayflowProAddCcData.php | 2 +- .../RestrictAdminBillingAgreementUsageObserver.php | 2 +- .../Observer/SaveOrderAfterSubmitObserver.php | 2 +- .../Observer/SetResponseAfterSaveOrderObserver.php | 2 +- app/code/Magento/Paypal/Setup/InstallData.php | 2 +- app/code/Magento/Paypal/Setup/InstallSchema.php | 2 +- .../Block/Adminhtml/Store/SwitcherPluginTest.php | 2 +- .../Adminhtml/System/Config/Field/CountryTest.php | 2 +- .../Config/Field/Enable/AbstractEnable/Stub.php | 2 +- .../Config/Field/Enable/AbstractEnableTest.php | 2 +- .../Adminhtml/System/Config/Fieldset/GroupTest.php | 2 +- .../Adminhtml/System/Config/Fieldset/HintTest.php | 2 +- .../System/Config/Fieldset/PaymentTest.php | 2 +- .../System/Config/ResolutionRulesTest.php | 2 +- .../Test/Unit/Block/Billing/Agreement/ViewTest.php | 2 +- .../Test/Unit/Block/Billing/AgreementsTest.php | 2 +- .../Paypal/Test/Unit/Block/Bml/ShortcutTest.php | 2 +- .../Paypal/Test/Unit/Block/Express/FormTest.php | 2 +- .../Paypal/Test/Unit/Block/Express/ReviewTest.php | 2 +- .../Test/Unit/Block/Express/ShortcutTest.php | 2 +- .../Test/Unit/Block/Payflow/Link/IframeTest.php | 2 +- .../Test/Unit/Block/PayflowExpress/FormTest.php | 2 +- .../Controller/Billing/Agreement/CancelTest.php | 2 +- .../Unit/Controller/Express/PlaceOrderTest.php | 2 +- .../Unit/Controller/Express/ReturnActionTest.php | 2 +- .../Test/Unit/Controller/Express/StartTest.php | 2 +- .../Paypal/Test/Unit/Controller/ExpressTest.php | 2 +- .../Paypal/Test/Unit/Controller/Ipn/IndexTest.php | 2 +- .../Test/Unit/Controller/Payflow/ReturnUrlTest.php | 2 +- .../Transparent/RequestSecureTokenTest.php | 2 +- .../Unit/Controller/Transparent/ResponseTest.php | 2 +- .../Unit/CustomerData/BillingAgreementTest.php | 2 +- .../Paypal/Test/Unit/Helper/BackendTest.php | 2 +- .../Paypal/Test/Unit/Helper/CheckoutTest.php | 2 +- .../Magento/Paypal/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Helper/Shortcut/CheckoutValidatorTest.php | 2 +- .../Test/Unit/Helper/Shortcut/FactoryTest.php | 2 +- .../Test/Unit/Helper/Shortcut/ValidatorTest.php | 2 +- .../Paypal/Test/Unit/Model/AbstractConfigTest.php | 2 +- .../Test/Unit/Model/AbstractConfigTesting.php | 2 +- .../Magento/Paypal/Test/Unit/Model/Api/NvpTest.php | 2 +- .../Unit/Model/Api/ProcessableExceptionTest.php | 2 +- .../Unit/Model/Billing/AbstractAgreementTest.php | 2 +- .../Model/Billing/Agreement/OrdersUpdaterTest.php | 2 +- .../Test/Unit/Model/Billing/AgreementTest.php | 2 +- .../Model/BillingAgreementConfigProviderTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/CartTest.php | 2 +- .../Test/Unit/Model/Config/Rules/ConverterTest.php | 2 +- .../Config/Rules/ConvertibleContent/rules.xml | 2 +- .../Unit/Model/Config/Rules/FileResolverTest.php | 2 +- .../Test/Unit/Model/Config/Rules/ReaderTest.php | 2 +- .../Unit/Model/Config/Rules/SchemaLocatorTest.php | 2 +- .../Config/Structure/Element/FieldPluginTest.php | 2 +- .../Structure/PaymentSectionModifierTest.php | 2 +- .../Test/Unit/Model/Config/StructurePluginTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/ConfigTest.php | 2 +- .../Test/Unit/Model/Express/CheckoutTest.php | 2 +- .../Test/Unit/Model/ExpressConfigProviderTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/ExpressTest.php | 2 +- .../Test/Unit/Model/Hostedpro/RequestTest.php | 2 +- .../Test/Unit/Model/IframeConfigProviderTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/InfoTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/IpnTest.php | 2 +- .../Test/Unit/Model/Method/AgreementTest.php | 2 +- .../Method/Checks/SpecificationPluginTest.php | 2 +- .../Unit/Model/Payflow/Service/GatewayTest.php | 2 +- .../Payflow/Service/Request/SecureTokenTest.php | 2 +- .../Handler/CreditCardValidationHandlerTest.php | 2 +- .../Service/Response/Handler/FraudHandlerTest.php | 2 +- .../Response/Handler/HandlerCompositeTest.php | 2 +- .../Response/Handler/_files/fps_prexmldata.xml | 2 +- .../Response/Handler/_files/xxe_fps_prexmldata.xml | 2 +- .../Payflow/Service/Response/TransactionTest.php | 2 +- .../Service/Response/Validator/AVSResponseTest.php | 2 +- .../Service/Response/Validator/CVV2MatchTest.php | 2 +- .../Response/Validator/ResponseValidatorTest.php | 2 +- .../Service/Response/Validator/SecureTokenTest.php | 2 +- .../Test/Unit/Model/Payflow/TransparentTest.php | 2 +- .../Paypal/Test/Unit/Model/PayflowConfigTest.php | 2 +- .../Paypal/Test/Unit/Model/PayflowExpressTest.php | 2 +- .../Paypal/Test/Unit/Model/PayflowlinkTest.php | 2 +- .../Paypal/Test/Unit/Model/PayflowproTest.php | 2 +- .../Method/Billing/AbstractAgreementStub.php | 2 +- .../Method/Billing/AbstractAgreementTest.php | 2 +- .../Magento/Paypal/Test/Unit/Model/ProTest.php | 2 +- .../Test/Unit/Model/Report/Settlement/RowTest.php | 2 +- .../Model/ResourceModel/Billing/AgreementTest.php | 2 +- .../Model/System/Config/Source/BmlPositionTest.php | 2 +- .../System/Config/Source/YesnoshortcutTest.php | 2 +- .../Unit/Model/_files/additional_info_data.php | 2 +- .../AddBillingAgreementToSessionObserverTest.php | 2 +- .../Observer/AddPaypalShortcutsObserverTest.php | 2 +- .../Observer/HtmlTransactionIdObserverTest.php | 2 +- ...trictAdminBillingAgreementUsageObserverTest.php | 2 +- .../SetResponseAfterSaveOrderObserverTest.php | 2 +- app/code/Magento/Paypal/etc/acl.xml | 2 +- app/code/Magento/Paypal/etc/adminhtml/di.xml | 2 +- app/code/Magento/Paypal/etc/adminhtml/events.xml | 2 +- app/code/Magento/Paypal/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Paypal/etc/adminhtml/routes.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_au.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_ca.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_de.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_es.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_fr.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_gb.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_hk.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_it.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_jp.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_nz.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_other.xml | 2 +- .../Paypal/etc/adminhtml/rules/payment_us.xml | 2 +- app/code/Magento/Paypal/etc/adminhtml/system.xml | 2 +- .../etc/adminhtml/system/express_checkout.xml | 2 +- .../etc/adminhtml/system/payflow_advanced.xml | 2 +- .../Paypal/etc/adminhtml/system/payflow_link.xml | 2 +- .../system/payments_pro_hosted_solution.xml | 2 +- ...s_pro_hosted_solution_with_express_checkout.xml | 2 +- .../etc/adminhtml/system/paypal_payflowpro.xml | 2 +- .../paypal_payflowpro_with_express_checkout.xml | 2 +- app/code/Magento/Paypal/etc/config.xml | 2 +- app/code/Magento/Paypal/etc/crontab.xml | 2 +- app/code/Magento/Paypal/etc/di.xml | 2 +- app/code/Magento/Paypal/etc/events.xml | 2 +- app/code/Magento/Paypal/etc/frontend/di.xml | 2 +- app/code/Magento/Paypal/etc/frontend/events.xml | 2 +- .../Magento/Paypal/etc/frontend/page_types.xml | 2 +- app/code/Magento/Paypal/etc/frontend/routes.xml | 2 +- app/code/Magento/Paypal/etc/frontend/sections.xml | 2 +- app/code/Magento/Paypal/etc/module.xml | 2 +- app/code/Magento/Paypal/etc/payment.xml | 2 +- app/code/Magento/Paypal/etc/rules.xsd | 2 +- app/code/Magento/Paypal/registration.php | 2 +- .../layout/adminhtml_paypal_reports_block.xml | 2 +- .../layout/adminhtml_system_config_edit.xml | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../paypal_billing_agreement_customergrid.xml | 2 +- .../layout/paypal_billing_agreement_grid.xml | 2 +- .../layout/paypal_billing_agreement_index.xml | 2 +- .../layout/paypal_billing_agreement_ordersgrid.xml | 2 +- .../layout/paypal_billing_agreement_view.xml | 2 +- .../layout/paypal_paypal_reports_grid.xml | 2 +- .../layout/paypal_paypal_reports_index.xml | 2 +- .../adminhtml/layout/sales_order_create_index.xml | 2 +- ...ales_order_create_load_block_billing_method.xml | 2 +- .../layout/transparent_payment_response.xml | 2 +- .../templates/billing/agreement/form.phtml | 2 +- .../templates/billing/agreement/view/form.phtml | 2 +- .../billing/agreement/view/tab/info.phtml | 2 +- .../adminhtml/templates/payflowpro/vault.phtml | 2 +- .../templates/payment/form/billing/agreement.phtml | 2 +- .../templates/system/config/api_wizard.phtml | 2 +- .../templates/system/config/bml_api_wizard.phtml | 2 +- .../templates/system/config/fieldset/hint.phtml | 2 +- .../system/config/payflowlink/advanced.phtml | 2 +- .../templates/system/config/payflowlink/info.phtml | 2 +- .../adminhtml/templates/system/config/rules.phtml | 2 +- .../adminhtml/templates/transparent/form.phtml | 2 +- .../adminhtml/templates/transparent/iframe.phtml | 2 +- .../view/adminhtml/web/js/payflowpro/vault.js | 2 +- .../view/adminhtml/web/js/predicate/confirm.js | 2 +- .../Magento/Paypal/view/adminhtml/web/js/rule.js | 2 +- .../Magento/Paypal/view/adminhtml/web/js/rules.js | 2 +- .../Paypal/view/adminhtml/web/js/solution.js | 2 +- .../Paypal/view/adminhtml/web/js/solutions.js | 2 +- .../Magento/Paypal/view/adminhtml/web/styles.css | 2 +- .../Magento/Paypal/view/base/requirejs-config.js | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../frontend/layout/checkout_onepage_review.xml | 2 +- .../frontend/layout/checkout_onepage_success.xml | 2 +- .../view/frontend/layout/cms_index_index.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../Paypal/view/frontend/layout/default.xml | 2 +- .../layout/paypal_billing_agreement_index.xml | 2 +- .../layout/paypal_billing_agreement_view.xml | 2 +- .../view/frontend/layout/paypal_express_review.xml | 2 +- .../layout/paypal_express_review_details.xml | 2 +- .../layout/paypal_payflow_cancelpayment.xml | 2 +- .../view/frontend/layout/paypal_payflow_form.xml | 2 +- .../frontend/layout/paypal_payflow_returnurl.xml | 2 +- .../paypal_payflowadvanced_cancelpayment.xml | 2 +- .../layout/paypal_payflowadvanced_form.xml | 2 +- .../layout/paypal_payflowadvanced_returnurl.xml | 2 +- .../layout/paypal_payflowexpress_review.xml | 2 +- .../layout/transparent_payment_response.xml | 2 +- .../frontend/layout/vault_cards_listaction.xml | 2 +- .../Paypal/view/frontend/requirejs-config.js | 2 +- .../templates/billing/agreement/view.phtml | 2 +- .../frontend/templates/billing/agreements.phtml | 2 +- .../Paypal/view/frontend/templates/bml.phtml | 2 +- .../templates/checkout/onepage/review/totals.phtml | 2 +- .../onepage/success/billing_agreement.phtml | 2 +- .../templates/express/in-context/component.phtml | 2 +- .../express/in-context/shortcut/button.phtml | 2 +- .../view/frontend/templates/express/review.phtml | 2 +- .../templates/express/review/details.phtml | 2 +- .../templates/express/review/shipping/method.phtml | 2 +- .../view/frontend/templates/express/shortcut.phtml | 2 +- .../templates/express/shortcut/container.phtml | 2 +- .../Paypal/view/frontend/templates/hss/form.phtml | 2 +- .../view/frontend/templates/hss/iframe.phtml | 2 +- .../Paypal/view/frontend/templates/hss/info.phtml | 2 +- .../Paypal/view/frontend/templates/hss/js.phtml | 2 +- .../frontend/templates/hss/review/button.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../view/frontend/templates/partner/logo.phtml | 2 +- .../frontend/templates/payflowadvanced/form.phtml | 2 +- .../frontend/templates/payflowadvanced/info.phtml | 2 +- .../view/frontend/templates/payflowlink/form.phtml | 2 +- .../view/frontend/templates/payflowlink/info.phtml | 2 +- .../frontend/templates/payflowlink/redirect.phtml | 2 +- .../templates/payment/form/billing/agreement.phtml | 2 +- .../view/frontend/templates/payment/mark.phtml | 2 +- .../view/frontend/templates/payment/redirect.phtml | 2 +- .../frontend/web/js/action/set-payment-method.js | 2 +- .../web/js/in-context/billing-agreement.js | 2 +- .../view/frontend/web/js/in-context/button.js | 2 +- .../frontend/web/js/in-context/express-checkout.js | 2 +- .../view/frontend/web/js/model/iframe-redirect.js | 2 +- .../Paypal/view/frontend/web/js/model/iframe.js | 2 +- .../Paypal/view/frontend/web/js/paypal-checkout.js | 2 +- .../view/payment/method-renderer/iframe-methods.js | 2 +- .../method-renderer/in-context/checkout-express.js | 2 +- .../payment/method-renderer/payflow-express-bml.js | 2 +- .../payment/method-renderer/payflow-express.js | 2 +- .../payment/method-renderer/payflowpro-method.js | 2 +- .../payment/method-renderer/payflowpro/vault.js | 2 +- .../method-renderer/paypal-billing-agreement.js | 2 +- .../method-renderer/paypal-express-abstract.js | 2 +- .../payment/method-renderer/paypal-express-bml.js | 2 +- .../view/payment/method-renderer/paypal-express.js | 2 +- .../web/js/view/payment/paypal-payments.js | 2 +- .../frontend/web/js/view/review/actions/iframe.js | 2 +- .../Paypal/view/frontend/web/order-review.js | 2 +- .../payment/express/billing-agreement.html | 2 +- .../web/template/payment/iframe-methods.html | 2 +- .../web/template/payment/payflow-express-bml.html | 2 +- .../web/template/payment/payflow-express.html | 2 +- .../web/template/payment/payflowpro-form.html | 2 +- .../web/template/payment/paypal-express-bml.html | 2 +- .../payment/paypal-express-in-context.html | 2 +- .../web/template/payment/paypal-express.html | 2 +- .../payment/paypal_billing_agreement-form.html | 2 +- .../web/template/payment/paypal_direct-form.html | 2 +- .../Magento/Persistent/Block/Form/Remember.php | 2 +- .../Magento/Persistent/Block/Header/Additional.php | 2 +- app/code/Magento/Persistent/Controller/Index.php | 2 +- .../Controller/Index/ExpressCheckout.php | 2 +- .../Persistent/Controller/Index/SaveMethod.php | 2 +- .../Persistent/Controller/Index/UnsetCookie.php | 2 +- app/code/Magento/Persistent/Helper/Data.php | 2 +- app/code/Magento/Persistent/Helper/Session.php | 2 +- .../Model/Checkout/AddressDataProcessorPlugin.php | 2 +- .../Model/Checkout/ConfigProviderPlugin.php | 2 +- .../GuestPaymentInformationManagementPlugin.php | 2 +- .../Persistent/Model/CheckoutConfigProvider.php | 2 +- app/code/Magento/Persistent/Model/Factory.php | 2 +- .../Model/Layout/DepersonalizePlugin.php | 2 +- app/code/Magento/Persistent/Model/Observer.php | 2 +- .../Magento/Persistent/Model/Persistent/Config.php | 2 +- .../Persistent/Model/Plugin/CustomerData.php | 2 +- app/code/Magento/Persistent/Model/QuoteManager.php | 2 +- .../Persistent/Model/ResourceModel/Session.php | 2 +- app/code/Magento/Persistent/Model/Session.php | 2 +- .../Observer/ApplyBlockPersistentDataObserver.php | 2 +- .../Observer/ApplyPersistentDataObserver.php | 2 +- .../CheckExpirePersistentQuoteObserver.php | 2 +- .../Observer/ClearExpiredCronJobObserver.php | 2 +- .../CustomerAuthenticatedEventObserver.php | 2 +- .../Observer/EmulateCustomerObserver.php | 2 +- .../Persistent/Observer/EmulateQuoteObserver.php | 2 +- .../Observer/MakePersistentQuoteGuestObserver.php | 2 +- .../PreventClearCheckoutSessionObserver.php | 2 +- .../Observer/PreventExpressCheckoutObserver.php | 2 +- .../RemoveGuestPersistenceOnEmptyCartObserver.php | 2 +- .../RemovePersistentCookieOnRegisterObserver.php | 2 +- .../Persistent/Observer/RenewCookieObserver.php | 2 +- .../Observer/SetLoadPersistentQuoteObserver.php | 2 +- .../Observer/SetQuotePersistentDataObserver.php | 2 +- .../SetRememberMeCheckedStatusObserver.php | 2 +- .../SetRememberMeStatusForAjaxLoginObserver.php | 2 +- .../Observer/SynchronizePersistentInfoObserver.php | 2 +- .../SynchronizePersistentOnLoginObserver.php | 2 +- .../SynchronizePersistentOnLogoutObserver.php | 2 +- .../Observer/UpdateCustomerCookiesObserver.php | 2 +- .../Magento/Persistent/Setup/InstallSchema.php | 2 +- .../Test/Unit/Block/Header/AdditionalTest.php | 2 +- .../Persistent/Test/Unit/Helper/DataTest.php | 2 +- .../Model/Checkout/ConfigProviderPluginTest.php | 2 +- ...GuestPaymentInformationManagementPluginTest.php | 2 +- .../Persistent/Test/Unit/Model/FactoryTest.php | 2 +- .../Unit/Model/Layout/DepersonalizePluginTest.php | 2 +- .../Test/Unit/Model/Plugin/CustomerDataTest.php | 2 +- .../Test/Unit/Model/QuoteManagerTest.php | 2 +- .../Persistent/Test/Unit/Model/SessionTest.php | 2 +- .../ApplyBlockPersistentDataObserverTest.php | 2 +- .../Observer/ApplyPersistentDataObserverTest.php | 2 +- .../CheckExpirePersistentQuoteObserverTest.php | 2 +- .../Observer/ClearExpiredCronJobObserverTest.php | 2 +- .../CustomerAuthenticatedEventObserverTest.php | 2 +- .../Unit/Observer/EmulateCustomerObserverTest.php | 2 +- .../Unit/Observer/EmulateQuoteObserverTest.php | 2 +- .../MakePersistentQuoteGuestObserverTest.php | 2 +- .../PreventClearCheckoutSessionObserverTest.php | 2 +- .../PreventExpressCheckoutObserverTest.php | 2 +- ...moveGuestPersistenceOnEmptyCartObserverTest.php | 2 +- ...emovePersistentCookieOnRegisterObserverTest.php | 2 +- .../Test/Unit/Observer/RenewCookieObserverTest.php | 2 +- .../SetLoadPersistentQuoteObserverTest.php | 2 +- .../SetQuotePersistentDataObserverTest.php | 2 +- .../SetRememberMeCheckedStatusObserverTest.php | 2 +- .../SynchronizePersistentInfoObserverTest.php | 2 +- .../SynchronizePersistentOnLogoutObserverTest.php | 2 +- .../Observer/UpdateCustomerCookiesObserverTest.php | 2 +- app/code/Magento/Persistent/etc/acl.xml | 2 +- .../Magento/Persistent/etc/adminhtml/system.xml | 2 +- app/code/Magento/Persistent/etc/config.xml | 2 +- app/code/Magento/Persistent/etc/crontab.xml | 2 +- app/code/Magento/Persistent/etc/di.xml | 2 +- .../Persistent/etc/extension_attributes.xml | 2 +- app/code/Magento/Persistent/etc/frontend/di.xml | 2 +- .../Magento/Persistent/etc/frontend/events.xml | 2 +- .../Magento/Persistent/etc/frontend/routes.xml | 2 +- app/code/Magento/Persistent/etc/module.xml | 2 +- app/code/Magento/Persistent/etc/persistent.xml | 2 +- app/code/Magento/Persistent/etc/persistent.xsd | 2 +- app/code/Magento/Persistent/etc/webapi_rest/di.xml | 2 +- .../Magento/Persistent/etc/webapi_rest/events.xml | 2 +- app/code/Magento/Persistent/etc/webapi_soap/di.xml | 2 +- .../Magento/Persistent/etc/webapi_soap/events.xml | 2 +- app/code/Magento/Persistent/registration.php | 2 +- .../frontend/layout/customer_account_create.xml | 2 +- .../frontend/layout/customer_account_login.xml | 2 +- .../view/frontend/templates/remember_me.phtml | 2 +- .../view/frontend/web/js/view/remember-me.js | 2 +- .../view/frontend/web/template/remember-me.html | 2 +- .../ProductAlert/Block/Email/AbstractEmail.php | 2 +- .../Magento/ProductAlert/Block/Email/Price.php | 2 +- .../Magento/ProductAlert/Block/Email/Stock.php | 2 +- .../Magento/ProductAlert/Block/Product/View.php | 2 +- .../ProductAlert/Block/Product/View/Price.php | 2 +- .../ProductAlert/Block/Product/View/Stock.php | 2 +- app/code/Magento/ProductAlert/Controller/Add.php | 2 +- .../Magento/ProductAlert/Controller/Add/Price.php | 2 +- .../Magento/ProductAlert/Controller/Add/Stock.php | 2 +- .../ProductAlert/Controller/Add/TestObserver.php | 2 +- .../ProductAlert/Controller/Unsubscribe.php | 2 +- .../ProductAlert/Controller/Unsubscribe/Price.php | 2 +- .../Controller/Unsubscribe/PriceAll.php | 2 +- .../ProductAlert/Controller/Unsubscribe/Stock.php | 2 +- .../Controller/Unsubscribe/StockAll.php | 2 +- app/code/Magento/ProductAlert/Helper/Data.php | 2 +- app/code/Magento/ProductAlert/Model/Email.php | 2 +- app/code/Magento/ProductAlert/Model/Observer.php | 2 +- app/code/Magento/ProductAlert/Model/Price.php | 2 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../ProductAlert/Model/ResourceModel/Price.php | 2 +- .../Model/ResourceModel/Price/Collection.php | 2 +- .../ResourceModel/Price/Customer/Collection.php | 2 +- .../ProductAlert/Model/ResourceModel/Stock.php | 2 +- .../Model/ResourceModel/Stock/Collection.php | 2 +- .../ResourceModel/Stock/Customer/Collection.php | 2 +- app/code/Magento/ProductAlert/Model/Stock.php | 2 +- .../Magento/ProductAlert/Setup/InstallSchema.php | 2 +- app/code/Magento/ProductAlert/Setup/Recurring.php | 2 +- .../Test/Unit/Block/Email/StockTest.php | 2 +- .../Test/Unit/Block/Product/View/PriceTest.php | 2 +- .../Test/Unit/Block/Product/View/StockTest.php | 2 +- .../Test/Unit/Block/Product/ViewTest.php | 2 +- .../Magento/ProductAlert/etc/adminhtml/system.xml | 2 +- app/code/Magento/ProductAlert/etc/config.xml | 2 +- app/code/Magento/ProductAlert/etc/crontab.xml | 2 +- app/code/Magento/ProductAlert/etc/di.xml | 2 +- .../Magento/ProductAlert/etc/email_templates.xml | 2 +- .../Magento/ProductAlert/etc/frontend/routes.xml | 2 +- app/code/Magento/ProductAlert/etc/module.xml | 2 +- app/code/Magento/ProductAlert/registration.php | 2 +- .../view/adminhtml/email/cron_error.html | 2 +- .../view/frontend/email/price_alert.html | 2 +- .../view/frontend/email/stock_alert.html | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../view/frontend/templates/email/price.phtml | 2 +- .../view/frontend/templates/email/stock.phtml | 2 +- .../view/frontend/templates/product/view.phtml | 2 +- .../Block/Adminhtml/Product/Edit/NewVideo.php | 2 +- .../ProductVideo/Block/Product/View/Gallery.php | 2 +- .../Adminhtml/Product/Gallery/RetrieveImage.php | 2 +- app/code/Magento/ProductVideo/Helper/Media.php | 2 +- .../Catalog/Product/Gallery/AbstractHandler.php | 2 +- .../Catalog/Product/Gallery/CreateHandler.php | 2 +- .../Plugin/Catalog/Product/Gallery/ReadHandler.php | 2 +- .../Model/Plugin/ExternalVideoResourceBackend.php | 2 +- .../Media/ExternalVideoEntryConverter.php | 2 +- .../Model/Product/Attribute/Media/VideoEntry.php | 2 +- .../ProductVideo/Model/ResourceModel/Video.php | 2 +- .../Magento/ProductVideo/Model/VideoExtractor.php | 2 +- .../Observer/ChangeTemplateObserver.php | 2 +- .../Magento/ProductVideo/Setup/InstallSchema.php | 2 +- .../Block/Adminhtml/Product/Edit/NewVideoTest.php | 2 +- .../Test/Unit/Block/Product/View/GalleryTest.php | 2 +- .../Product/Gallery/RetrieveImageTest.php | 2 +- .../ProductVideo/Test/Unit/Helper/MediaTest.php | 2 +- .../Catalog/Product/Gallery/CreateHandlerTest.php | 2 +- .../Catalog/Product/Gallery/ReadHandlerTest.php | 2 +- .../Media/ExternalVideoEntryConverterTest.php | 2 +- .../Product/Attribute/Media/VideoEntryTest.php | 2 +- .../Unit/Observer/ChangeTemplateObserverTest.php | 2 +- .../Magento/ProductVideo/etc/adminhtml/events.xml | 2 +- .../Magento/ProductVideo/etc/adminhtml/routes.xml | 2 +- .../Magento/ProductVideo/etc/adminhtml/system.xml | 2 +- app/code/Magento/ProductVideo/etc/config.xml | 2 +- app/code/Magento/ProductVideo/etc/di.xml | 2 +- .../ProductVideo/etc/extension_attributes.xml | 2 +- app/code/Magento/ProductVideo/etc/module.xml | 2 +- app/code/Magento/ProductVideo/registration.php | 2 +- .../view/adminhtml/layout/catalog_product_form.xml | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../view/adminhtml/requirejs-config.js | 2 +- .../view/adminhtml/templates/helper/gallery.phtml | 2 +- .../templates/product/edit/base_image.phtml | 2 +- .../templates/product/edit/slideout/form.phtml | 2 +- .../view/adminhtml/web/js/get-video-information.js | 2 +- .../view/adminhtml/web/js/new-video-dialog.js | 2 +- .../view/adminhtml/web/js/video-modal.js | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../ProductVideo/view/frontend/requirejs-config.js | 2 +- .../frontend/templates/product/view/gallery.phtml | 2 +- .../frontend/web/js/fotorama-add-video-events.js | 2 +- .../view/frontend/web/js/load-player.js | 2 +- .../Api/BillingAddressManagementInterface.php | 2 +- .../Quote/Api/CartItemRepositoryInterface.php | 2 +- .../Magento/Quote/Api/CartManagementInterface.php | 2 +- .../Magento/Quote/Api/CartRepositoryInterface.php | 2 +- .../Quote/Api/CartTotalManagementInterface.php | 2 +- .../Quote/Api/CartTotalRepositoryInterface.php | 2 +- .../Quote/Api/CouponManagementInterface.php | 2 +- .../Api/Data/AddressAdditionalDataInterface.php | 2 +- .../Magento/Quote/Api/Data/AddressInterface.php | 2 +- app/code/Magento/Quote/Api/Data/CartInterface.php | 2 +- .../Magento/Quote/Api/Data/CartItemInterface.php | 2 +- .../Quote/Api/Data/CartSearchResultsInterface.php | 2 +- .../Magento/Quote/Api/Data/CurrencyInterface.php | 2 +- .../Quote/Api/Data/EstimateAddressInterface.php | 2 +- .../Magento/Quote/Api/Data/PaymentInterface.php | 2 +- .../Quote/Api/Data/PaymentMethodInterface.php | 2 +- .../Quote/Api/Data/ProductOptionInterface.php | 2 +- .../Quote/Api/Data/ShippingAssignmentInterface.php | 2 +- .../Magento/Quote/Api/Data/ShippingInterface.php | 2 +- .../Quote/Api/Data/ShippingMethodInterface.php | 2 +- .../Quote/Api/Data/TotalSegmentInterface.php | 2 +- .../Api/Data/TotalsAdditionalDataInterface.php | 2 +- .../Magento/Quote/Api/Data/TotalsInterface.php | 2 +- .../Magento/Quote/Api/Data/TotalsItemInterface.php | 2 +- .../Api/GuestBillingAddressManagementInterface.php | 2 +- .../Quote/Api/GuestCartItemRepositoryInterface.php | 2 +- .../Quote/Api/GuestCartManagementInterface.php | 2 +- .../Quote/Api/GuestCartRepositoryInterface.php | 2 +- .../Api/GuestCartTotalManagementInterface.php | 2 +- .../Api/GuestCartTotalRepositoryInterface.php | 2 +- .../Quote/Api/GuestCouponManagementInterface.php | 2 +- .../Api/GuestPaymentMethodManagementInterface.php | 2 +- .../Quote/Api/GuestShipmentEstimationInterface.php | 2 +- .../Api/GuestShippingMethodManagementInterface.php | 2 +- .../Quote/Api/PaymentMethodManagementInterface.php | 2 +- .../Quote/Api/ShipmentEstimationInterface.php | 2 +- .../Api/ShippingMethodManagementInterface.php | 2 +- .../Magento/Quote/Model/AddressAdditionalData.php | 2 +- .../Quote/Model/AddressAdditionalDataProcessor.php | 2 +- .../Quote/Model/BillingAddressManagement.php | 2 +- .../Quote/Model/Cart/CartTotalManagement.php | 2 +- .../Quote/Model/Cart/CartTotalRepository.php | 2 +- app/code/Magento/Quote/Model/Cart/Currency.php | 2 +- .../Magento/Quote/Model/Cart/ShippingMethod.php | 2 +- .../Quote/Model/Cart/ShippingMethodConverter.php | 2 +- app/code/Magento/Quote/Model/Cart/TotalSegment.php | 2 +- app/code/Magento/Quote/Model/Cart/Totals.php | 2 +- app/code/Magento/Quote/Model/Cart/Totals/Item.php | 2 +- .../Quote/Model/Cart/Totals/ItemConverter.php | 2 +- .../Quote/Model/Cart/TotalsAdditionalData.php | 2 +- .../Model/Cart/TotalsAdditionalDataProcessor.php | 2 +- .../Magento/Quote/Model/Cart/TotalsConverter.php | 2 +- app/code/Magento/Quote/Model/CouponManagement.php | 2 +- .../Magento/Quote/Model/CustomerManagement.php | 2 +- app/code/Magento/Quote/Model/EstimateAddress.php | 2 +- .../GuestCart/GuestBillingAddressManagement.php | 2 +- .../Model/GuestCart/GuestCartItemRepository.php | 2 +- .../Quote/Model/GuestCart/GuestCartManagement.php | 2 +- .../Quote/Model/GuestCart/GuestCartRepository.php | 2 +- .../Model/GuestCart/GuestCartTotalManagement.php | 2 +- .../Model/GuestCart/GuestCartTotalRepository.php | 2 +- .../Model/GuestCart/GuestCouponManagement.php | 2 +- .../GuestCart/GuestPaymentMethodManagement.php | 2 +- .../GuestCart/GuestShippingAddressManagement.php | 2 +- .../GuestShippingAddressManagementInterface.php | 2 +- .../GuestCart/GuestShippingMethodManagement.php | 2 +- .../GuestShippingMethodManagementInterface.php | 2 +- .../GuestCartManagement/Plugin/Authorization.php | 2 +- .../Quote/Model/PaymentMethodManagement.php | 2 +- .../Model/Product/Plugin/RemoveQuoteItems.php | 2 +- .../Quote/Model/Product/QuoteItemsCleaner.php | 2 +- .../Model/Product/QuoteItemsCleanerInterface.php | 2 +- app/code/Magento/Quote/Model/QueryResolver.php | 2 +- app/code/Magento/Quote/Model/Quote.php | 2 +- app/code/Magento/Quote/Model/Quote/Address.php | 2 +- .../Quote/Address/BillingAddressPersister.php | 2 +- .../Model/Quote/Address/CustomAttributeList.php | 2 +- .../Quote/Address/CustomAttributeListInterface.php | 2 +- .../Quote/Model/Quote/Address/FreeShipping.php | 2 +- .../Model/Quote/Address/FreeShippingInterface.php | 2 +- .../Magento/Quote/Model/Quote/Address/Item.php | 2 +- .../Magento/Quote/Model/Quote/Address/Rate.php | 2 +- .../Model/Quote/Address/RateCollectorInterface.php | 2 +- .../Address/RateCollectorInterfaceFactory.php | 2 +- .../Quote/Model/Quote/Address/RateRequest.php | 2 +- .../Quote/Address/RateResult/AbstractResult.php | 2 +- .../Quote/Model/Quote/Address/RateResult/Error.php | 2 +- .../Model/Quote/Address/RateResult/Method.php | 2 +- .../Magento/Quote/Model/Quote/Address/Relation.php | 2 +- .../Magento/Quote/Model/Quote/Address/ToOrder.php | 2 +- .../Quote/Model/Quote/Address/ToOrderAddress.php | 2 +- .../Magento/Quote/Model/Quote/Address/Total.php | 2 +- .../Model/Quote/Address/Total/AbstractTotal.php | 2 +- .../Quote/Model/Quote/Address/Total/Collector.php | 2 +- .../Quote/Address/Total/CollectorInterface.php | 2 +- .../Quote/Model/Quote/Address/Total/Grand.php | 2 +- .../Model/Quote/Address/Total/ReaderInterface.php | 2 +- .../Quote/Model/Quote/Address/Total/Shipping.php | 2 +- .../Quote/Model/Quote/Address/Total/Subtotal.php | 2 +- .../Quote/Model/Quote/Address/TotalFactory.php | 2 +- .../Quote/Model/Quote/Address/Validator.php | 2 +- app/code/Magento/Quote/Model/Quote/Config.php | 2 +- app/code/Magento/Quote/Model/Quote/Item.php | 2 +- .../Quote/Model/Quote/Item/AbstractItem.php | 2 +- .../Model/Quote/Item/CartItemOptionsProcessor.php | 2 +- .../Quote/Model/Quote/Item/CartItemPersister.php | 2 +- .../Quote/Item/CartItemProcessorInterface.php | 2 +- .../Model/Quote/Item/CartItemProcessorsPool.php | 2 +- .../Magento/Quote/Model/Quote/Item/Compare.php | 2 +- app/code/Magento/Quote/Model/Quote/Item/Option.php | 2 +- .../Magento/Quote/Model/Quote/Item/Processor.php | 2 +- .../Quote/Model/Quote/Item/RelatedProducts.php | 2 +- .../Magento/Quote/Model/Quote/Item/Repository.php | 2 +- .../Magento/Quote/Model/Quote/Item/ToOrderItem.php | 2 +- .../Magento/Quote/Model/Quote/Item/Updater.php | 2 +- app/code/Magento/Quote/Model/Quote/Payment.php | 2 +- .../Quote/Model/Quote/Payment/ToOrderPayment.php | 2 +- .../Magento/Quote/Model/Quote/ProductOption.php | 2 +- app/code/Magento/Quote/Model/Quote/Relation.php | 2 +- .../ShippingAssignmentPersister.php | 2 +- .../ShippingAssignmentProcessor.php | 2 +- .../Quote/ShippingAssignment/ShippingProcessor.php | 2 +- .../Magento/Quote/Model/Quote/TotalsCollector.php | 2 +- .../Quote/Model/Quote/TotalsCollectorList.php | 2 +- .../Magento/Quote/Model/Quote/TotalsReader.php | 2 +- .../MinimumOrderAmount/ValidationMessage.php | 2 +- .../Magento/Quote/Model/QuoteAddressValidator.php | 2 +- app/code/Magento/Quote/Model/QuoteIdMask.php | 2 +- app/code/Magento/Quote/Model/QuoteManagement.php | 2 +- app/code/Magento/Quote/Model/QuoteRepository.php | 2 +- .../Quote/Model/QuoteRepository/LoadHandler.php | 2 +- .../Model/QuoteRepository/Plugin/Authorization.php | 2 +- .../Quote/Model/QuoteRepository/SaveHandler.php | 2 +- app/code/Magento/Quote/Model/QuoteValidator.php | 2 +- .../Magento/Quote/Model/ResourceModel/Quote.php | 2 +- .../Quote/Model/ResourceModel/Quote/Address.php | 2 +- .../Quote/Address/Attribute/Backend.php | 2 +- .../Quote/Address/Attribute/Backend/Child.php | 2 +- .../Quote/Address/Attribute/Backend/Region.php | 2 +- .../Quote/Address/Attribute/Frontend.php | 2 +- .../Address/Attribute/Frontend/Custbalance.php | 2 +- .../Quote/Address/Attribute/Frontend/Discount.php | 2 +- .../Quote/Address/Attribute/Frontend/Grand.php | 2 +- .../Quote/Address/Attribute/Frontend/Shipping.php | 2 +- .../Quote/Address/Attribute/Frontend/Subtotal.php | 2 +- .../Quote/Address/Attribute/Frontend/Tax.php | 2 +- .../ResourceModel/Quote/Address/Collection.php | 2 +- .../Model/ResourceModel/Quote/Address/Item.php | 2 +- .../Quote/Address/Item/Collection.php | 2 +- .../Model/ResourceModel/Quote/Address/Rate.php | 2 +- .../Quote/Address/Rate/Collection.php | 2 +- .../Quote/Model/ResourceModel/Quote/Collection.php | 2 +- .../Quote/Model/ResourceModel/Quote/Item.php | 2 +- .../Model/ResourceModel/Quote/Item/Collection.php | 2 +- .../Model/ResourceModel/Quote/Item/Option.php | 2 +- .../ResourceModel/Quote/Item/Option/Collection.php | 2 +- .../Quote/Model/ResourceModel/Quote/Payment.php | 2 +- .../ResourceModel/Quote/Payment/Collection.php | 2 +- .../Model/ResourceModel/Quote/QuoteIdMask.php | 2 +- app/code/Magento/Quote/Model/Shipping.php | 2 +- .../Quote/Model/ShippingAddressManagement.php | 2 +- .../Model/ShippingAddressManagementInterface.php | 2 +- .../Magento/Quote/Model/ShippingAssignment.php | 2 +- .../Quote/Model/ShippingMethodManagement.php | 2 +- .../Model/ShippingMethodManagementInterface.php | 2 +- .../Quote/Model/Webapi/ParamOverriderCartId.php | 2 +- .../Observer/Backend/CustomerQuoteObserver.php | 2 +- .../Quote/Address/CollectTotalsObserver.php | 2 +- .../Frontend/Quote/Address/VatValidator.php | 2 +- .../Quote/Observer/Webapi/SubmitObserver.php | 2 +- app/code/Magento/Quote/Setup/InstallData.php | 2 +- app/code/Magento/Quote/Setup/InstallSchema.php | 2 +- app/code/Magento/Quote/Setup/QuoteSetup.php | 2 +- app/code/Magento/Quote/Setup/UpgradeSchema.php | 2 +- .../Unit/Model/BillingAddressManagementTest.php | 2 +- .../Unit/Model/Cart/CartTotalManagementTest.php | 2 +- .../Unit/Model/Cart/CartTotalRepositoryTest.php | 2 +- .../Model/Cart/ShippingMethodConverterTest.php | 2 +- .../Unit/Model/Cart/Totals/ItemConverterTest.php | 2 +- .../Quote/Test/Unit/Model/CouponManagementTest.php | 2 +- .../Test/Unit/Model/CustomerManagementTest.php | 2 +- .../GuestBillingAddressManagementTest.php | 2 +- .../GuestCart/GuestCartItemRepositoryTest.php | 2 +- .../Model/GuestCart/GuestCartManagementTest.php | 2 +- .../Model/GuestCart/GuestCartRepositoryTest.php | 2 +- .../Unit/Model/GuestCart/GuestCartTestHelper.php | 2 +- .../GuestCart/GuestCartTotalRepositoryTest.php | 2 +- .../Model/GuestCart/GuestCouponManagementTest.php | 2 +- .../GuestCart/GuestPaymentMethodManagementTest.php | 2 +- .../GuestShippingAddressManagementTest.php | 2 +- .../GuestShippingMethodManagementTest.php | 2 +- .../Plugin/AuthorizationTest.php | 2 +- .../Unit/Model/PaymentMethodManagementTest.php | 2 +- .../Model/Product/Plugin/RemoveQuoteItemsTest.php | 2 +- .../Unit/Model/Product/QuoteItemsCleanerTest.php | 2 +- .../Quote/Test/Unit/Model/QueryResolverTest.php | 2 +- .../Test/Unit/Model/Quote/Address/RelationTest.php | 2 +- .../Model/Quote/Address/ToOrderAddressTest.php | 2 +- .../Test/Unit/Model/Quote/Address/ToOrderTest.php | 2 +- .../Unit/Model/Quote/Address/Total/GrandTest.php | 2 +- .../Model/Quote/Address/Total/ShippingTest.php | 2 +- .../Model/Quote/Address/Total/SubtotalTest.php | 2 +- .../Test/Unit/Model/Quote/Address/TotalTest.php | 2 +- .../Unit/Model/Quote/Address/ValidatorTest.php | 2 +- .../Quote/Test/Unit/Model/Quote/AddressTest.php | 2 +- .../Quote/Test/Unit/Model/Quote/ConfigTest.php | 2 +- .../Unit/Model/Quote/Item/AbstractItemTest.php | 2 +- .../Test/Unit/Model/Quote/Item/CompareTest.php | 2 +- .../Test/Unit/Model/Quote/Item/ProcessorTest.php | 2 +- .../Unit/Model/Quote/Item/RelatedProductsTest.php | 2 +- .../Test/Unit/Model/Quote/Item/RepositoryTest.php | 2 +- .../Test/Unit/Model/Quote/Item/ToOrderItemTest.php | 2 +- .../Test/Unit/Model/Quote/Item/UpdaterTest.php | 2 +- .../Quote/Test/Unit/Model/Quote/ItemTest.php | 2 +- .../Model/Quote/Payment/ToOrderPaymentTest.php | 2 +- .../Quote/Test/Unit/Model/Quote/PaymentTest.php | 2 +- .../Quote/Test/Unit/Model/Quote/RelationTest.php | 2 +- .../ShippingAssignmentProcessorTest.php | 2 +- .../ShippingAssignment/ShippingProcessorTest.php | 2 +- .../Test/Unit/Model/Quote/TotalsReaderTest.php | 2 +- .../MinimumOrderAmount/ValidationMessageTest.php | 2 +- .../Test/Unit/Model/QuoteAddressValidatorTest.php | 2 +- .../Quote/Test/Unit/Model/QuoteIdMaskTest.php | 2 +- .../Quote/Test/Unit/Model/QuoteManagementTest.php | 2 +- .../QuoteRepository/Plugin/AuthorizationTest.php | 2 +- .../Unit/Model/QuoteRepository/SaveHandlerTest.php | 2 +- .../Quote/Test/Unit/Model/QuoteRepositoryTest.php | 2 +- .../Magento/Quote/Test/Unit/Model/QuoteTest.php | 2 +- .../Quote/Test/Unit/Model/QuoteValidatorTest.php | 2 +- .../ResourceModel/Quote/Item/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/Quote/ItemTest.php | 2 +- .../Model/ResourceModel/Quote/QuoteAddressTest.php | 2 +- .../Unit/Model/ShippingAddressManagementTest.php | 2 +- .../Unit/Model/ShippingMethodManagementTest.php | 2 +- .../Unit/Model/Webapi/ParamOverriderCartIdTest.php | 2 +- .../Observer/Backend/CustomerQuoteObserverTest.php | 2 +- .../Quote/Address/CollectTotalsObserverTest.php | 2 +- .../Frontend/Quote/Address/VatValidatorTest.php | 2 +- .../Unit/Observer/Webapi/SubmitObserverTest.php | 2 +- app/code/Magento/Quote/etc/acl.xml | 2 +- app/code/Magento/Quote/etc/adminhtml/events.xml | 2 +- app/code/Magento/Quote/etc/di.xml | 2 +- app/code/Magento/Quote/etc/events.xml | 2 +- .../Magento/Quote/etc/extension_attributes.xml | 2 +- app/code/Magento/Quote/etc/fieldset.xml | 2 +- app/code/Magento/Quote/etc/module.xml | 2 +- app/code/Magento/Quote/etc/sales.xml | 2 +- app/code/Magento/Quote/etc/webapi.xml | 2 +- app/code/Magento/Quote/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Quote/etc/webapi_rest/events.xml | 2 +- app/code/Magento/Quote/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Quote/etc/webapi_soap/events.xml | 2 +- app/code/Magento/Quote/registration.php | 2 +- .../Block/Adminhtml/Config/Form/Field/MtdStart.php | 2 +- .../Block/Adminhtml/Config/Form/Field/YtdStart.php | 2 +- .../Reports/Block/Adminhtml/Customer/Accounts.php | 2 +- .../Reports/Block/Adminhtml/Customer/Orders.php | 2 +- .../Reports/Block/Adminhtml/Customer/Totals.php | 2 +- .../Reports/Block/Adminhtml/Filter/Form.php | 2 +- app/code/Magento/Reports/Block/Adminhtml/Grid.php | 2 +- .../Reports/Block/Adminhtml/Grid/AbstractGrid.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Blanknumber.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Currency.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Customer.php | 2 +- .../Adminhtml/Grid/Column/Renderer/Product.php | 2 +- .../Reports/Block/Adminhtml/Grid/Shopcart.php | 2 +- .../Magento/Reports/Block/Adminhtml/Product.php | 2 +- .../Reports/Block/Adminhtml/Product/Downloads.php | 2 +- .../Block/Adminhtml/Product/Downloads/Grid.php | 2 +- .../Product/Downloads/Renderer/Purchases.php | 2 +- .../Reports/Block/Adminhtml/Product/Lowstock.php | 2 +- .../Block/Adminhtml/Product/Lowstock/Grid.php | 2 +- .../Reports/Block/Adminhtml/Product/Sold.php | 2 +- .../Reports/Block/Adminhtml/Product/Viewed.php | 2 +- .../Block/Adminhtml/Product/Viewed/Grid.php | 2 +- .../Reports/Block/Adminhtml/Refresh/Statistics.php | 2 +- .../Reports/Block/Adminhtml/Review/Customer.php | 2 +- .../Reports/Block/Adminhtml/Review/Detail.php | 2 +- .../Reports/Block/Adminhtml/Review/Detail/Grid.php | 2 +- .../Reports/Block/Adminhtml/Review/Product.php | 2 +- .../Reports/Block/Adminhtml/Sales/Bestsellers.php | 2 +- .../Block/Adminhtml/Sales/Bestsellers/Grid.php | 2 +- .../Reports/Block/Adminhtml/Sales/Coupons.php | 2 +- .../Reports/Block/Adminhtml/Sales/Coupons/Grid.php | 2 +- .../Adminhtml/Sales/Grid/Column/Renderer/Date.php | 2 +- .../Reports/Block/Adminhtml/Sales/Invoiced.php | 2 +- .../Block/Adminhtml/Sales/Invoiced/Grid.php | 2 +- .../Reports/Block/Adminhtml/Sales/Refunded.php | 2 +- .../Block/Adminhtml/Sales/Refunded/Grid.php | 2 +- .../Reports/Block/Adminhtml/Sales/Sales.php | 2 +- .../Reports/Block/Adminhtml/Sales/Sales/Grid.php | 2 +- .../Reports/Block/Adminhtml/Sales/Shipping.php | 2 +- .../Block/Adminhtml/Sales/Shipping/Grid.php | 2 +- .../Magento/Reports/Block/Adminhtml/Sales/Tax.php | 2 +- .../Reports/Block/Adminhtml/Sales/Tax/Grid.php | 2 +- .../Reports/Block/Adminhtml/Shopcart/Abandoned.php | 2 +- .../Block/Adminhtml/Shopcart/Abandoned/Grid.php | 2 +- .../Reports/Block/Adminhtml/Shopcart/Customer.php | 2 +- .../Block/Adminhtml/Shopcart/Customer/Grid.php | 2 +- .../Reports/Block/Adminhtml/Shopcart/Product.php | 2 +- .../Block/Adminhtml/Shopcart/Product/Grid.php | 2 +- .../Magento/Reports/Block/Adminhtml/Wishlist.php | 2 +- .../Reports/Block/Adminhtml/Wishlist/Grid.php | 2 +- .../Reports/Block/Product/AbstractProduct.php | 2 +- .../Magento/Reports/Block/Product/Compared.php | 2 +- app/code/Magento/Reports/Block/Product/Viewed.php | 2 +- .../Reports/Block/Product/Widget/Compared.php | 2 +- .../Reports/Block/Product/Widget/Viewed.php | 2 +- .../Reports/Block/Product/Widget/Viewed/Item.php | 2 +- .../Magento/Reports/Controller/Adminhtml/Index.php | 2 +- .../Controller/Adminhtml/Report/AbstractReport.php | 2 +- .../Controller/Adminhtml/Report/Customer.php | 2 +- .../Adminhtml/Report/Customer/Accounts.php | 2 +- .../Report/Customer/ExportAccountsCsv.php | 2 +- .../Report/Customer/ExportAccountsExcel.php | 2 +- .../Adminhtml/Report/Customer/ExportOrdersCsv.php | 2 +- .../Report/Customer/ExportOrdersExcel.php | 2 +- .../Adminhtml/Report/Customer/ExportTotalsCsv.php | 2 +- .../Report/Customer/ExportTotalsExcel.php | 2 +- .../Adminhtml/Report/Customer/Orders.php | 2 +- .../Adminhtml/Report/Customer/Totals.php | 2 +- .../Controller/Adminhtml/Report/Product.php | 2 +- .../Adminhtml/Report/Product/Downloads.php | 2 +- .../Report/Product/ExportDownloadsCsv.php | 2 +- .../Report/Product/ExportDownloadsExcel.php | 2 +- .../Adminhtml/Report/Product/ExportLowstockCsv.php | 2 +- .../Report/Product/ExportLowstockExcel.php | 2 +- .../Adminhtml/Report/Product/ExportSoldCsv.php | 2 +- .../Adminhtml/Report/Product/ExportSoldExcel.php | 2 +- .../Adminhtml/Report/Product/ExportViewedCsv.php | 2 +- .../Adminhtml/Report/Product/ExportViewedExcel.php | 2 +- .../Adminhtml/Report/Product/Lowstock.php | 2 +- .../Controller/Adminhtml/Report/Product/Sold.php | 2 +- .../Controller/Adminhtml/Report/Product/Viewed.php | 2 +- .../Reports/Controller/Adminhtml/Report/Review.php | 2 +- .../Adminhtml/Report/Review/Customer.php | 2 +- .../Adminhtml/Report/Review/ExportCustomerCsv.php | 2 +- .../Report/Review/ExportCustomerExcel.php | 2 +- .../Adminhtml/Report/Review/ExportProductCsv.php | 2 +- .../Report/Review/ExportProductDetailCsv.php | 2 +- .../Report/Review/ExportProductDetailExcel.php | 2 +- .../Adminhtml/Report/Review/ExportProductExcel.php | 2 +- .../Controller/Adminhtml/Report/Review/Product.php | 2 +- .../Adminhtml/Report/Review/ProductDetail.php | 2 +- .../Reports/Controller/Adminhtml/Report/Sales.php | 2 +- .../Adminhtml/Report/Sales/Bestsellers.php | 2 +- .../Controller/Adminhtml/Report/Sales/Coupons.php | 2 +- .../Report/Sales/ExportBestsellersCsv.php | 2 +- .../Report/Sales/ExportBestsellersExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportCouponsCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportCouponsExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportInvoicedCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportInvoicedExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportRefundedCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportRefundedExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportSalesCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportSalesExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportShippingCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportShippingExcel.php | 2 +- .../Adminhtml/Report/Sales/ExportTaxCsv.php | 2 +- .../Adminhtml/Report/Sales/ExportTaxExcel.php | 2 +- .../Controller/Adminhtml/Report/Sales/Invoiced.php | 2 +- .../Adminhtml/Report/Sales/RefreshLifetime.php | 2 +- .../Adminhtml/Report/Sales/RefreshRecent.php | 2 +- .../Adminhtml/Report/Sales/RefreshStatistics.php | 2 +- .../Controller/Adminhtml/Report/Sales/Refunded.php | 2 +- .../Controller/Adminhtml/Report/Sales/Sales.php | 2 +- .../Controller/Adminhtml/Report/Sales/Shipping.php | 2 +- .../Controller/Adminhtml/Report/Sales/Tax.php | 2 +- .../Controller/Adminhtml/Report/Shopcart.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 +- .../Adminhtml/Report/Shopcart/ExportProductCsv.php | 2 +- .../Report/Shopcart/ExportProductExcel.php | 2 +- .../Adminhtml/Report/Shopcart/Product.php | 2 +- .../Controller/Adminhtml/Report/Statistics.php | 2 +- .../Adminhtml/Report/Statistics/Index.php | 2 +- .../Report/Statistics/RefreshLifetime.php | 2 +- .../Adminhtml/Report/Statistics/RefreshRecent.php | 2 +- app/code/Magento/Reports/Helper/Data.php | 2 +- app/code/Magento/Reports/Model/Config.php | 2 +- app/code/Magento/Reports/Model/Event.php | 2 +- app/code/Magento/Reports/Model/Event/Type.php | 2 +- app/code/Magento/Reports/Model/Flag.php | 2 +- .../Magento/Reports/Model/Grouped/Collection.php | 2 +- app/code/Magento/Reports/Model/Item.php | 2 +- app/code/Magento/Reports/Model/Plugin/Log.php | 2 +- .../Reports/Model/Product/Index/AbstractIndex.php | 2 +- .../Reports/Model/Product/Index/Compared.php | 2 +- .../Reports/Model/Product/Index/Factory.php | 2 +- .../Magento/Reports/Model/Product/Index/Viewed.php | 2 +- .../Model/ResourceModel/Accounts/Collection.php | 2 +- .../ResourceModel/Accounts/Collection/Initial.php | 2 +- .../Model/ResourceModel/Customer/Collection.php | 2 +- .../ResourceModel/Customer/Orders/Collection.php | 2 +- .../Customer/Orders/Collection/Initial.php | 2 +- .../ResourceModel/Customer/Totals/Collection.php | 2 +- .../Customer/Totals/Collection/Initial.php | 2 +- .../Magento/Reports/Model/ResourceModel/Event.php | 2 +- .../Model/ResourceModel/Event/Collection.php | 2 +- .../Reports/Model/ResourceModel/Event/Type.php | 2 +- .../Model/ResourceModel/Event/Type/Collection.php | 2 +- .../Magento/Reports/Model/ResourceModel/Helper.php | 2 +- .../Model/ResourceModel/HelperInterface.php | 2 +- .../Model/ResourceModel/Order/Collection.php | 2 +- .../Model/ResourceModel/Product/Collection.php | 2 +- .../ResourceModel/Product/Downloads/Collection.php | 2 +- .../ResourceModel/Product/Index/AbstractIndex.php | 2 +- .../Index/Collection/AbstractCollection.php | 2 +- .../Model/ResourceModel/Product/Index/Compared.php | 2 +- .../Product/Index/Compared/Collection.php | 2 +- .../Model/ResourceModel/Product/Index/Viewed.php | 2 +- .../Product/Index/Viewed/Collection.php | 2 +- .../ResourceModel/Product/Lowstock/Collection.php | 2 +- .../ResourceModel/Product/Sold/Collection.php | 2 +- .../Product/Sold/Collection/Initial.php | 2 +- .../Model/ResourceModel/Quote/Collection.php | 2 +- .../ResourceModel/Quote/CollectionFactory.php | 2 +- .../Quote/CollectionFactoryInterface.php | 2 +- .../Model/ResourceModel/Quote/Item/Collection.php | 2 +- .../Model/ResourceModel/Refresh/Collection.php | 2 +- .../Model/ResourceModel/Report/AbstractReport.php | 2 +- .../Model/ResourceModel/Report/Collection.php | 2 +- .../Report/Collection/AbstractCollection.php | 2 +- .../ResourceModel/Report/Collection/Factory.php | 2 +- .../Model/ResourceModel/Report/Product/Viewed.php | 2 +- .../Report/Product/Viewed/Collection.php | 2 +- .../Model/ResourceModel/Review/Collection.php | 2 +- .../ResourceModel/Review/Customer/Collection.php | 2 +- .../ResourceModel/Review/Product/Collection.php | 2 +- .../Model/ResourceModel/Wishlist/Collection.php | 2 +- .../ResourceModel/Wishlist/Product/Collection.php | 2 +- .../CatalogProductCompareAddProductObserver.php | 2 +- .../CatalogProductCompareClearObserver.php | 2 +- .../Observer/CatalogProductViewObserver.php | 2 +- .../Observer/CheckoutCartAddProductObserver.php | 2 +- .../Reports/Observer/CustomerLoginObserver.php | 2 +- .../Reports/Observer/CustomerLogoutObserver.php | 2 +- app/code/Magento/Reports/Observer/EventSaver.php | 2 +- .../Reports/Observer/SendfriendProductObserver.php | 2 +- .../Observer/WishlistAddProductObserver.php | 2 +- .../Reports/Observer/WishlistShareObserver.php | 2 +- app/code/Magento/Reports/Setup/InstallData.php | 2 +- app/code/Magento/Reports/Setup/InstallSchema.php | 2 +- app/code/Magento/Reports/Setup/Recurring.php | 2 +- .../Sales/Grid/Column/Renderer/DateTest.php | 2 +- .../Reports/Test/Unit/Block/Product/ViewedTest.php | 2 +- .../Adminhtml/Report/AbstractControllerTest.php | 2 +- .../Adminhtml/Report/Customer/AccountsTest.php | 2 +- .../Report/Customer/ExportAccountsCsvTest.php | 2 +- .../Report/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 +- .../Adminhtml/Report/Product/DownloadsTest.php | 2 +- .../Report/Product/ExportDownloadsCsvTest.php | 2 +- .../Report/Product/ExportDownloadsExcelTest.php | 2 +- .../Report/Product/ExportLowstockCsvTest.php | 2 +- .../Report/Product/ExportLowstockExcelTest.php | 2 +- .../Adminhtml/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 | 2 +- .../Magento/Reports/Test/Unit/Helper/DataTest.php | 2 +- .../Reports/Test/Unit/Model/Plugin/LogTest.php | 2 +- .../Test/Unit/Model/Product/Index/ComparedTest.php | 2 +- .../Model/ResourceModel/Event/CollectionTest.php | 2 +- .../Test/Unit/Model/ResourceModel/EventTest.php | 2 +- .../Test/Unit/Model/ResourceModel/HelperTest.php | 2 +- .../Model/ResourceModel/Order/CollectionTest.php | 2 +- .../Model/ResourceModel/Product/CollectionTest.php | 2 +- .../Model/ResourceModel/Quote/CollectionTest.php | 2 +- .../Report/Collection/AbstractCollectionTest.php | 2 +- .../Model/ResourceModel/Report/CollectionTest.php | 2 +- .../ResourceModel/Report/Product/ViewedTest.php | 2 +- .../ResourceModel/Report/Quote/CollectionTest.php | 2 +- ...CatalogProductCompareAddProductObserverTest.php | 2 +- .../Observer/CatalogProductViewObserverTest.php | 2 +- .../Unit/Observer/CustomerLoginObserverTest.php | 2 +- .../Unit/Observer/CustomerLogoutObserverTest.php | 2 +- app/code/Magento/Reports/etc/acl.xml | 2 +- app/code/Magento/Reports/etc/adminhtml/di.xml | 2 +- app/code/Magento/Reports/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Reports/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Reports/etc/adminhtml/system.xml | 2 +- app/code/Magento/Reports/etc/config.xml | 2 +- app/code/Magento/Reports/etc/di.xml | 2 +- app/code/Magento/Reports/etc/frontend/events.xml | 2 +- app/code/Magento/Reports/etc/module.xml | 2 +- .../Magento/Reports/etc/webapi_rest/events.xml | 2 +- .../Magento/Reports/etc/webapi_soap/events.xml | 2 +- app/code/Magento/Reports/etc/widget.xml | 2 +- app/code/Magento/Reports/registration.php | 2 +- .../layout/reports_report_customer_accounts.xml | 2 +- .../reports_report_customer_accounts_grid.xml | 2 +- .../reports_report_customer_exportaccountscsv.xml | 2 +- ...reports_report_customer_exportaccountsexcel.xml | 2 +- .../reports_report_customer_exportorderscsv.xml | 2 +- .../reports_report_customer_exportordersexcel.xml | 2 +- .../reports_report_customer_exporttotalscsv.xml | 2 +- .../reports_report_customer_exporttotalsexcel.xml | 2 +- .../layout/reports_report_customer_orders.xml | 2 +- .../layout/reports_report_customer_orders_grid.xml | 2 +- .../layout/reports_report_customer_totals.xml | 2 +- .../layout/reports_report_customer_totals_grid.xml | 2 +- .../view/adminhtml/layout/reports_report_grid.xml | 2 +- .../layout/reports_report_product_downloads.xml | 2 +- .../reports_report_product_exportlowstockcsv.xml | 2 +- .../reports_report_product_exportlowstockexcel.xml | 2 +- .../reports_report_product_exportsoldcsv.xml | 2 +- .../reports_report_product_exportsoldexcel.xml | 2 +- .../layout/reports_report_product_lowstock.xml | 2 +- .../reports_report_product_lowstock_grid.xml | 2 +- .../layout/reports_report_product_sold.xml | 2 +- .../layout/reports_report_product_sold_grid.xml | 2 +- .../layout/reports_report_product_viewed.xml | 2 +- .../layout/reports_report_review_customer.xml | 2 +- .../layout/reports_report_review_customer_grid.xml | 2 +- .../reports_report_review_exportcustomercsv.xml | 2 +- .../reports_report_review_exportcustomerexcel.xml | 2 +- .../reports_report_review_exportproductcsv.xml | 2 +- .../reports_report_review_exportproductexcel.xml | 2 +- .../layout/reports_report_review_product.xml | 2 +- .../layout/reports_report_review_product_grid.xml | 2 +- .../layout/reports_report_sales_bestsellers.xml | 2 +- .../layout/reports_report_sales_coupons.xml | 2 +- .../layout/reports_report_sales_invoiced.xml | 2 +- .../layout/reports_report_sales_refunded.xml | 2 +- .../layout/reports_report_sales_sales.xml | 2 +- .../layout/reports_report_sales_shipping.xml | 2 +- .../adminhtml/layout/reports_report_sales_tax.xml | 2 +- .../layout/reports_report_shopcart_abandoned.xml | 2 +- .../layout/reports_report_statistics_index.xml | 2 +- .../view/adminhtml/layout/reports_sales.xml | 2 +- .../Reports/view/adminhtml/templates/grid.phtml | 2 +- .../templates/report/grid/container.phtml | 2 +- .../templates/report/refresh/statistics.phtml | 2 +- .../view/adminhtml/templates/report/wishlist.phtml | 2 +- .../view/adminhtml/templates/store/switcher.phtml | 2 +- .../templates/store/switcher/enhanced.phtml | 2 +- .../Reports/view/frontend/layout/default.xml | 2 +- .../Magento/Reports/view/frontend/layout/print.xml | 2 +- .../Reports/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../frontend/templates/product/widget/viewed.phtml | 2 +- .../templates/product/widget/viewed/item.phtml | 2 +- .../compared/column/compared_default_list.phtml | 2 +- .../compared/column/compared_images_list.phtml | 2 +- .../compared/column/compared_names_list.phtml | 2 +- .../widget/compared/content/compared_grid.phtml | 2 +- .../widget/compared/content/compared_list.phtml | 2 +- .../widget/viewed/column/viewed_default_list.phtml | 2 +- .../widget/viewed/column/viewed_images_list.phtml | 2 +- .../widget/viewed/column/viewed_names_list.phtml | 2 +- .../widget/viewed/content/viewed_grid.phtml | 2 +- .../widget/viewed/content/viewed_list.phtml | 2 +- .../view/frontend/web/js/recently-viewed.js | 2 +- .../Magento/RequireJs/Block/Html/Head/Config.php | 2 +- app/code/Magento/RequireJs/Model/FileManager.php | 2 +- .../Test/Unit/Block/Html/Head/ConfigTest.php | 2 +- .../RequireJs/Test/Unit/Model/FileManagerTest.php | 2 +- app/code/Magento/RequireJs/etc/di.xml | 2 +- app/code/Magento/RequireJs/etc/module.xml | 2 +- app/code/Magento/RequireJs/registration.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Add.php | 2 +- .../Magento/Review/Block/Adminhtml/Add/Form.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Edit.php | 2 +- .../Magento/Review/Block/Adminhtml/Edit/Form.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Grid.php | 2 +- .../Review/Block/Adminhtml/Grid/Filter/Type.php | 2 +- .../Review/Block/Adminhtml/Grid/Renderer/Type.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Main.php | 2 +- .../Review/Block/Adminhtml/Product/Edit/Tab.php | 2 +- .../Block/Adminhtml/Product/Edit/Tab/Reviews.php | 2 +- .../Review/Block/Adminhtml/Product/Grid.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Rating.php | 2 +- .../Review/Block/Adminhtml/Rating/Detailed.php | 2 +- .../Magento/Review/Block/Adminhtml/Rating/Edit.php | 2 +- .../Review/Block/Adminhtml/Rating/Edit/Form.php | 2 +- .../Block/Adminhtml/Rating/Edit/Tab/Form.php | 2 +- .../Review/Block/Adminhtml/Rating/Edit/Tabs.php | 2 +- .../Review/Block/Adminhtml/Rating/Summary.php | 2 +- .../Magento/Review/Block/Adminhtml/ReviewTab.php | 2 +- app/code/Magento/Review/Block/Adminhtml/Rss.php | 2 +- .../Review/Block/Adminhtml/Rss/Grid/Link.php | 2 +- .../Magento/Review/Block/Customer/ListCustomer.php | 2 +- app/code/Magento/Review/Block/Customer/Recent.php | 2 +- app/code/Magento/Review/Block/Customer/View.php | 2 +- app/code/Magento/Review/Block/Form.php | 2 +- app/code/Magento/Review/Block/Form/Configure.php | 2 +- .../Product/Compare/ListCompare/Plugin/Review.php | 2 +- app/code/Magento/Review/Block/Product/Review.php | 2 +- .../Review/Block/Product/ReviewRenderer.php | 2 +- app/code/Magento/Review/Block/Product/View.php | 2 +- .../Magento/Review/Block/Product/View/ListView.php | 2 +- .../Magento/Review/Block/Product/View/Other.php | 2 +- .../Review/Block/Rating/Entity/Detailed.php | 2 +- app/code/Magento/Review/Block/View.php | 2 +- .../Review/Controller/Adminhtml/Product.php | 2 +- .../Review/Controller/Adminhtml/Product/Delete.php | 2 +- .../Review/Controller/Adminhtml/Product/Edit.php | 2 +- .../Review/Controller/Adminhtml/Product/Index.php | 2 +- .../Adminhtml/Product/JsonProductInfo.php | 2 +- .../Controller/Adminhtml/Product/MassDelete.php | 2 +- .../Adminhtml/Product/MassUpdateStatus.php | 2 +- .../Controller/Adminhtml/Product/MassVisibleIn.php | 2 +- .../Controller/Adminhtml/Product/NewAction.php | 2 +- .../Controller/Adminhtml/Product/Pending.php | 2 +- .../Review/Controller/Adminhtml/Product/Post.php | 2 +- .../Controller/Adminhtml/Product/ProductGrid.php | 2 +- .../Controller/Adminhtml/Product/RatingItems.php | 2 +- .../Controller/Adminhtml/Product/ReviewGrid.php | 2 +- .../Controller/Adminhtml/Product/Reviews/Grid.php | 2 +- .../Review/Controller/Adminhtml/Product/Save.php | 2 +- .../Magento/Review/Controller/Adminhtml/Rating.php | 2 +- .../Review/Controller/Adminhtml/Rating/Delete.php | 2 +- .../Review/Controller/Adminhtml/Rating/Edit.php | 2 +- .../Review/Controller/Adminhtml/Rating/Index.php | 2 +- .../Controller/Adminhtml/Rating/NewAction.php | 2 +- .../Review/Controller/Adminhtml/Rating/Save.php | 2 +- app/code/Magento/Review/Controller/Customer.php | 2 +- .../Magento/Review/Controller/Customer/Index.php | 2 +- .../Magento/Review/Controller/Customer/View.php | 2 +- app/code/Magento/Review/Controller/Product.php | 2 +- .../Review/Controller/Product/ListAction.php | 2 +- .../Magento/Review/Controller/Product/ListAjax.php | 2 +- .../Magento/Review/Controller/Product/Post.php | 2 +- .../Magento/Review/Controller/Product/View.php | 2 +- app/code/Magento/Review/CustomerData/Review.php | 2 +- app/code/Magento/Review/Helper/Action/Pager.php | 2 +- app/code/Magento/Review/Helper/Data.php | 2 +- app/code/Magento/Review/Model/Rating.php | 2 +- app/code/Magento/Review/Model/Rating/Entity.php | 2 +- app/code/Magento/Review/Model/Rating/Option.php | 2 +- .../Magento/Review/Model/Rating/Option/Vote.php | 2 +- .../Magento/Review/Model/ResourceModel/Rating.php | 2 +- .../Model/ResourceModel/Rating/Collection.php | 2 +- .../Review/Model/ResourceModel/Rating/Entity.php | 2 +- .../Model/ResourceModel/Rating/Grid/Collection.php | 2 +- .../Review/Model/ResourceModel/Rating/Option.php | 2 +- .../ResourceModel/Rating/Option/Collection.php | 2 +- .../Model/ResourceModel/Rating/Option/Vote.php | 2 +- .../Rating/Option/Vote/Collection.php | 2 +- .../Magento/Review/Model/ResourceModel/Review.php | 2 +- .../Model/ResourceModel/Review/Collection.php | 2 +- .../ResourceModel/Review/Product/Collection.php | 2 +- .../Review/Model/ResourceModel/Review/Status.php | 2 +- .../ResourceModel/Review/Status/Collection.php | 2 +- .../Review/Model/ResourceModel/Review/Summary.php | 2 +- .../ResourceModel/Review/Summary/Collection.php | 2 +- app/code/Magento/Review/Model/Review.php | 2 +- app/code/Magento/Review/Model/Review/Status.php | 2 +- app/code/Magento/Review/Model/Review/Summary.php | 2 +- app/code/Magento/Review/Model/Rss.php | 2 +- ...gBlockProductCollectionBeforeToHtmlObserver.php | 2 +- .../ProcessProductAfterDeleteEventObserver.php | 2 +- .../TagProductCollectionLoadAfterObserver.php | 2 +- app/code/Magento/Review/Setup/InstallData.php | 2 +- app/code/Magento/Review/Setup/InstallSchema.php | 2 +- .../Review/Test/Unit/Block/Adminhtml/MainTest.php | 2 +- .../Block/Adminhtml/Rating/Edit/Tab/FormTest.php | 2 +- .../Unit/Block/Adminhtml/Rss/Grid/LinkTest.php | 2 +- .../Review/Test/Unit/Block/Adminhtml/RssTest.php | 2 +- .../Review/Test/Unit/Block/Customer/RecentTest.php | 2 +- .../Magento/Review/Test/Unit/Block/FormTest.php | 2 +- .../Review/Test/Unit/Block/Product/ReviewTest.php | 2 +- .../Unit/Controller/Adminhtml/Product/PostTest.php | 2 +- .../Test/Unit/Controller/Product/PostTest.php | 2 +- .../Review/Test/Unit/Helper/Action/PagerTest.php | 2 +- .../Magento/Review/Test/Unit/Model/RatingTest.php | 2 +- .../Model/ResourceModel/Review/CollectionTest.php | 2 +- .../Review/Product/CollectionTest.php | 2 +- .../Review/Summary/CollectionTest.php | 2 +- .../Magento/Review/Test/Unit/Model/ReviewTest.php | 2 +- .../Magento/Review/Test/Unit/Model/RssTest.php | 2 +- .../Listing/Columns/ReviewActionsTest.php | 2 +- .../Ui/Component/Listing/Columns/StatusTest.php | 2 +- .../Unit/Ui/Component/Listing/Columns/TypeTest.php | 2 +- .../Component/Listing/Columns/VisibilityTest.php | 2 +- .../Product/Form/Modifier/ReviewTest.php | 2 +- .../Product/ReviewDataProviderTest.php | 2 +- .../Ui/Component/Listing/Columns/ReviewActions.php | 2 +- .../Review/Ui/Component/Listing/Columns/Status.php | 2 +- .../Review/Ui/Component/Listing/Columns/Type.php | 2 +- .../Ui/Component/Listing/Columns/Visibility.php | 2 +- .../DataProvider/Product/Form/Modifier/Review.php | 2 +- .../Ui/DataProvider/Product/ReviewDataProvider.php | 2 +- app/code/Magento/Review/etc/acl.xml | 2 +- app/code/Magento/Review/etc/adminhtml/di.xml | 2 +- app/code/Magento/Review/etc/adminhtml/events.xml | 2 +- app/code/Magento/Review/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Review/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Review/etc/adminhtml/system.xml | 2 +- app/code/Magento/Review/etc/config.xml | 2 +- app/code/Magento/Review/etc/di.xml | 2 +- app/code/Magento/Review/etc/frontend/di.xml | 2 +- app/code/Magento/Review/etc/frontend/events.xml | 2 +- .../Magento/Review/etc/frontend/page_types.xml | 2 +- app/code/Magento/Review/etc/frontend/routes.xml | 2 +- app/code/Magento/Review/etc/frontend/sections.xml | 2 +- app/code/Magento/Review/etc/module.xml | 2 +- app/code/Magento/Review/registration.php | 2 +- .../view/adminhtml/layout/catalog_product_new.xml | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../Review/view/adminhtml/layout/rating_block.xml | 2 +- .../view/adminhtml/layout/review_product_edit.xml | 2 +- .../view/adminhtml/layout/review_product_index.xml | 2 +- .../layout/review_product_reviews_grid.xml | 2 +- .../view/adminhtml/layout/review_rating_edit.xml | 2 +- .../view/adminhtml/layout/review_rating_index.xml | 2 +- .../Review/view/adminhtml/templates/add.phtml | 2 +- .../view/adminhtml/templates/rating/detailed.phtml | 2 +- .../view/adminhtml/templates/rating/form.phtml | 2 +- .../view/adminhtml/templates/rating/options.phtml | 2 +- .../templates/rating/stars/detailed.phtml | 2 +- .../adminhtml/templates/rating/stars/summary.phtml | 2 +- .../view/adminhtml/templates/rss/grid/link.phtml | 2 +- .../view/adminhtml/ui_component/review_listing.xml | 2 +- .../Magento/Review/view/adminhtml/web/js/rating.js | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../frontend/layout/checkout_cart_configure.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../frontend/layout/customer_account_index.xml | 2 +- .../view/frontend/layout/review_customer_index.xml | 2 +- .../view/frontend/layout/review_customer_view.xml | 2 +- .../layout/review_product_form_component.xml | 2 +- .../view/frontend/layout/review_product_list.xml | 2 +- .../frontend/layout/review_product_listajax.xml | 2 +- .../view/frontend/layout/review_product_view.xml | 2 +- .../frontend/layout/wishlist_index_configure.xml | 2 +- .../view/frontend/templates/customer/list.phtml | 2 +- .../view/frontend/templates/customer/recent.phtml | 2 +- .../view/frontend/templates/customer/view.phtml | 2 +- .../Review/view/frontend/templates/detailed.phtml | 2 +- .../Review/view/frontend/templates/empty.phtml | 2 +- .../Review/view/frontend/templates/form.phtml | 2 +- .../view/frontend/templates/helper/summary.phtml | 2 +- .../frontend/templates/helper/summary_short.phtml | 2 +- .../frontend/templates/product/view/count.phtml | 2 +- .../frontend/templates/product/view/list.phtml | 2 +- .../frontend/templates/product/view/other.phtml | 2 +- .../Review/view/frontend/templates/redirect.phtml | 2 +- .../Review/view/frontend/templates/review.phtml | 2 +- .../Review/view/frontend/templates/view.phtml | 2 +- .../Review/view/frontend/web/js/error-placement.js | 2 +- .../Review/view/frontend/web/js/process-reviews.js | 2 +- .../Review/view/frontend/web/js/view/review.js | 2 +- app/code/Magento/Robots/Block/Data.php | 2 +- app/code/Magento/Robots/Controller/Index/Index.php | 2 +- app/code/Magento/Robots/Controller/Router.php | 2 +- app/code/Magento/Robots/Model/Config/Value.php | 2 +- app/code/Magento/Robots/Model/Robots.php | 2 +- .../Magento/Robots/Test/Unit/Block/DataTest.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Robots/Test/Unit/Controller/RouterTest.php | 2 +- .../Robots/Test/Unit/Model/Config/ValueTest.php | 2 +- .../Magento/Robots/Test/Unit/Model/RobotsTest.php | 2 +- app/code/Magento/Robots/etc/di.xml | 2 +- app/code/Magento/Robots/etc/frontend/di.xml | 2 +- app/code/Magento/Robots/etc/frontend/routes.xml | 2 +- app/code/Magento/Robots/etc/module.xml | 2 +- app/code/Magento/Robots/registration.php | 2 +- .../view/frontend/layout/robots_index_index.xml | 2 +- .../Robots/view/frontend/page_layout/robots.xml | 2 +- .../Robots/view/frontend/templates/robots.phtml | 2 +- .../App/Action/Plugin/BackendAuthentication.php | 2 +- app/code/Magento/Rss/Block/Feeds.php | 2 +- app/code/Magento/Rss/Controller/Adminhtml/Feed.php | 2 +- .../Rss/Controller/Adminhtml/Feed/Index.php | 2 +- app/code/Magento/Rss/Controller/Feed.php | 2 +- app/code/Magento/Rss/Controller/Feed/Index.php | 2 +- app/code/Magento/Rss/Controller/Index.php | 2 +- app/code/Magento/Rss/Controller/Index/Index.php | 2 +- app/code/Magento/Rss/Model/Rss.php | 2 +- app/code/Magento/Rss/Model/RssManager.php | 2 +- .../Rss/Model/System/Config/Backend/Links.php | 2 +- app/code/Magento/Rss/Model/UrlBuilder.php | 2 +- .../Action/Plugin/BackendAuthenticationTest.php | 2 +- app/code/Magento/Rss/Test/Unit/Block/FeedsTest.php | 2 +- .../Unit/Controller/Adminhtml/Feed/IndexTest.php | 2 +- .../Rss/Test/Unit/Controller/Feed/IndexTest.php | 2 +- .../Magento/Rss/Test/Unit/Model/RssManagerTest.php | 2 +- app/code/Magento/Rss/Test/Unit/Model/RssTest.php | 2 +- .../Magento/Rss/Test/Unit/Model/UrlBuilderTest.php | 2 +- app/code/Magento/Rss/etc/acl.xml | 2 +- app/code/Magento/Rss/etc/adminhtml/di.xml | 2 +- app/code/Magento/Rss/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Rss/etc/adminhtml/system.xml | 2 +- app/code/Magento/Rss/etc/di.xml | 2 +- app/code/Magento/Rss/etc/frontend/page_types.xml | 2 +- app/code/Magento/Rss/etc/frontend/routes.xml | 2 +- app/code/Magento/Rss/etc/module.xml | 2 +- app/code/Magento/Rss/registration.php | 2 +- .../Magento/Rss/view/frontend/layout/default.xml | 2 +- .../Rss/view/frontend/layout/rss_index_index.xml | 2 +- .../Rss/view/frontend/templates/feeds.phtml | 2 +- app/code/Magento/Rule/Block/Actions.php | 2 +- app/code/Magento/Rule/Block/Conditions.php | 2 +- app/code/Magento/Rule/Block/Editable.php | 2 +- app/code/Magento/Rule/Block/Newchild.php | 2 +- app/code/Magento/Rule/Block/Rule.php | 2 +- app/code/Magento/Rule/Model/AbstractModel.php | 2 +- .../Magento/Rule/Model/Action/AbstractAction.php | 2 +- .../Magento/Rule/Model/Action/ActionInterface.php | 2 +- app/code/Magento/Rule/Model/Action/Collection.php | 2 +- app/code/Magento/Rule/Model/ActionFactory.php | 2 +- .../Rule/Model/Condition/AbstractCondition.php | 2 +- app/code/Magento/Rule/Model/Condition/Combine.php | 2 +- .../Rule/Model/Condition/ConditionInterface.php | 2 +- app/code/Magento/Rule/Model/Condition/Context.php | 2 +- .../Model/Condition/Product/AbstractProduct.php | 2 +- .../Magento/Rule/Model/Condition/Sql/Builder.php | 2 +- .../Rule/Model/Condition/Sql/Expression.php | 2 +- app/code/Magento/Rule/Model/ConditionFactory.php | 2 +- app/code/Magento/Rule/Model/Renderer/Actions.php | 2 +- .../Magento/Rule/Model/Renderer/Conditions.php | 2 +- .../Rule/Model/ResourceModel/AbstractResource.php | 2 +- .../Rule/Collection/AbstractCollection.php | 2 +- .../Rule/Test/Unit/Model/ActionFactoryTest.php | 2 +- .../Unit/Model/Condition/AbstractConditionTest.php | 2 +- .../Rule/Test/Unit/Model/Condition/CombineTest.php | 2 +- .../Condition/Product/AbstractProductTest.php | 2 +- .../Test/Unit/Model/Condition/Sql/BuilderTest.php | 2 +- .../Unit/Model/Condition/Sql/ExpressionTest.php | 2 +- .../Rule/Test/Unit/Model/ConditionFactoryTest.php | 2 +- .../Rule/Test/Unit/Model/Renderer/ActionsTest.php | 2 +- .../Test/Unit/Model/Renderer/ConditionsTest.php | 2 +- .../Rule/Collection/AbstractCollectionTest.php | 2 +- app/code/Magento/Rule/etc/module.xml | 2 +- app/code/Magento/Rule/registration.php | 2 +- app/code/Magento/Rule/view/adminhtml/web/rules.js | 2 +- .../Api/CreditmemoCommentRepositoryInterface.php | 2 +- .../Api/CreditmemoItemRepositoryInterface.php | 2 +- .../Sales/Api/CreditmemoManagementInterface.php | 2 +- .../Sales/Api/CreditmemoRepositoryInterface.php | 2 +- .../Magento/Sales/Api/Data/CommentInterface.php | 2 +- .../Data/CreditmemoCommentCreationInterface.php | 2 +- .../Sales/Api/Data/CreditmemoCommentInterface.php | 2 +- .../CreditmemoCommentSearchResultInterface.php | 2 +- .../Data/CreditmemoCreationArgumentsInterface.php | 2 +- .../Magento/Sales/Api/Data/CreditmemoInterface.php | 2 +- .../Api/Data/CreditmemoItemCreationInterface.php | 2 +- .../Sales/Api/Data/CreditmemoItemInterface.php | 2 +- .../Data/CreditmemoItemSearchResultInterface.php | 2 +- .../Api/Data/CreditmemoSearchResultInterface.php | 2 +- .../Magento/Sales/Api/Data/EntityInterface.php | 2 +- .../Api/Data/InvoiceCommentCreationInterface.php | 2 +- .../Sales/Api/Data/InvoiceCommentInterface.php | 2 +- .../Data/InvoiceCommentSearchResultInterface.php | 2 +- .../Api/Data/InvoiceCreationArgumentsInterface.php | 2 +- .../Magento/Sales/Api/Data/InvoiceInterface.php | 2 +- .../Api/Data/InvoiceItemCreationInterface.php | 2 +- .../Sales/Api/Data/InvoiceItemInterface.php | 2 +- .../Api/Data/InvoiceItemSearchResultInterface.php | 2 +- .../Api/Data/InvoiceSearchResultInterface.php | 2 +- .../Magento/Sales/Api/Data/LineItemInterface.php | 2 +- .../Sales/Api/Data/OrderAddressInterface.php | 2 +- .../Api/Data/OrderAddressSearchResultInterface.php | 2 +- app/code/Magento/Sales/Api/Data/OrderInterface.php | 2 +- .../Magento/Sales/Api/Data/OrderItemInterface.php | 2 +- .../Api/Data/OrderItemSearchResultInterface.php | 2 +- .../Sales/Api/Data/OrderPaymentInterface.php | 2 +- .../Api/Data/OrderPaymentSearchResultInterface.php | 2 +- .../Sales/Api/Data/OrderSearchResultInterface.php | 2 +- .../Sales/Api/Data/OrderStatusHistoryInterface.php | 2 +- .../OrderStatusHistorySearchResultInterface.php | 2 +- .../Api/Data/ShipmentCommentCreationInterface.php | 2 +- .../Sales/Api/Data/ShipmentCommentInterface.php | 2 +- .../Data/ShipmentCommentSearchResultInterface.php | 2 +- .../Data/ShipmentCreationArgumentsInterface.php | 2 +- .../Magento/Sales/Api/Data/ShipmentInterface.php | 2 +- .../Api/Data/ShipmentItemCreationInterface.php | 2 +- .../Sales/Api/Data/ShipmentItemInterface.php | 2 +- .../Api/Data/ShipmentItemSearchResultInterface.php | 2 +- .../Api/Data/ShipmentPackageCreationInterface.php | 2 +- .../Sales/Api/Data/ShipmentPackageInterface.php | 2 +- .../Api/Data/ShipmentSearchResultInterface.php | 2 +- .../Api/Data/ShipmentTrackCreationInterface.php | 2 +- .../Sales/Api/Data/ShipmentTrackInterface.php | 2 +- .../Data/ShipmentTrackSearchResultInterface.php | 2 +- .../Sales/Api/Data/ShippingAssignmentInterface.php | 2 +- .../Magento/Sales/Api/Data/ShippingInterface.php | 2 +- app/code/Magento/Sales/Api/Data/TotalInterface.php | 2 +- app/code/Magento/Sales/Api/Data/TrackInterface.php | 2 +- .../Sales/Api/Data/TransactionInterface.php | 2 +- .../Api/Data/TransactionSearchResultInterface.php | 2 +- .../CouldNotInvoiceExceptionInterface.php | 2 +- .../Exception/CouldNotRefundExceptionInterface.php | 2 +- .../Exception/CouldNotShipExceptionInterface.php | 2 +- .../DocumentValidationExceptionInterface.php | 2 +- .../Api/InvoiceCommentRepositoryInterface.php | 2 +- .../Sales/Api/InvoiceItemRepositoryInterface.php | 2 +- .../Sales/Api/InvoiceManagementInterface.php | 2 +- .../Magento/Sales/Api/InvoiceOrderInterface.php | 2 +- .../Sales/Api/InvoiceRepositoryInterface.php | 2 +- .../Sales/Api/OrderAddressRepositoryInterface.php | 2 +- .../Sales/Api/OrderCustomerManagementInterface.php | 2 +- .../Sales/Api/OrderItemRepositoryInterface.php | 2 +- .../Magento/Sales/Api/OrderManagementInterface.php | 2 +- .../Sales/Api/OrderPaymentRepositoryInterface.php | 2 +- .../Magento/Sales/Api/OrderRepositoryInterface.php | 2 +- .../Api/OrderStatusHistoryRepositoryInterface.php | 2 +- .../Magento/Sales/Api/RefundInvoiceInterface.php | 2 +- .../Magento/Sales/Api/RefundOrderInterface.php | 2 +- app/code/Magento/Sales/Api/ShipOrderInterface.php | 2 +- .../Api/ShipmentCommentRepositoryInterface.php | 2 +- .../Sales/Api/ShipmentItemRepositoryInterface.php | 2 +- .../Sales/Api/ShipmentManagementInterface.php | 2 +- .../Sales/Api/ShipmentRepositoryInterface.php | 2 +- .../Sales/Api/ShipmentTrackRepositoryInterface.php | 2 +- .../Sales/Api/TransactionRepositoryInterface.php | 2 +- .../Magento/Sales/Block/Adminhtml/Creditmemo.php | 2 +- .../Sales/Block/Adminhtml/CustomerOrdersTab.php | 2 +- app/code/Magento/Sales/Block/Adminhtml/Invoice.php | 2 +- .../Sales/Block/Adminhtml/Items/AbstractItems.php | 2 +- .../Block/Adminhtml/Items/Column/DefaultColumn.php | 2 +- .../Sales/Block/Adminhtml/Items/Column/Name.php | 2 +- .../Sales/Block/Adminhtml/Items/Column/Qty.php | 2 +- .../Adminhtml/Items/Renderer/DefaultRenderer.php | 2 +- app/code/Magento/Sales/Block/Adminhtml/Order.php | 2 +- .../Sales/Block/Adminhtml/Order/AbstractOrder.php | 2 +- .../Sales/Block/Adminhtml/Order/Address.php | 2 +- .../Sales/Block/Adminhtml/Order/Address/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Comments/View.php | 2 +- .../Magento/Sales/Block/Adminhtml/Order/Create.php | 2 +- .../Adminhtml/Order/Create/AbstractCreate.php | 2 +- .../Adminhtml/Order/Create/Billing/Address.php | 2 +- .../Adminhtml/Order/Create/Billing/Method.php | 2 +- .../Adminhtml/Order/Create/Billing/Method/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Comment.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Coupons.php | 2 +- .../Block/Adminhtml/Order/Create/Coupons/Form.php | 2 +- .../Block/Adminhtml/Order/Create/Customer.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Data.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Form.php | 2 +- .../Adminhtml/Order/Create/Form/AbstractForm.php | 2 +- .../Block/Adminhtml/Order/Create/Form/Account.php | 2 +- .../Block/Adminhtml/Order/Create/Form/Address.php | 2 +- .../Block/Adminhtml/Order/Create/Giftmessage.php | 2 +- .../Adminhtml/Order/Create/Giftmessage/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Header.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Items.php | 2 +- .../Block/Adminhtml/Order/Create/Items/Grid.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Load.php | 2 +- .../Block/Adminhtml/Order/Create/Messages.php | 2 +- .../Block/Adminhtml/Order/Create/Newsletter.php | 2 +- .../Adminhtml/Order/Create/Newsletter/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Search.php | 2 +- .../Block/Adminhtml/Order/Create/Search/Grid.php | 2 +- .../Order/Create/Search/Grid/Renderer/Price.php | 2 +- .../Order/Create/Search/Grid/Renderer/Product.php | 2 +- .../Order/Create/Search/Grid/Renderer/Qty.php | 2 +- .../Adminhtml/Order/Create/Shipping/Address.php | 2 +- .../Adminhtml/Order/Create/Shipping/Method.php | 2 +- .../Order/Create/Shipping/Method/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Sidebar.php | 2 +- .../Order/Create/Sidebar/AbstractSidebar.php | 2 +- .../Block/Adminhtml/Order/Create/Sidebar/Cart.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Compared.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Pcompared.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Pviewed.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Reorder.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Viewed.php | 2 +- .../Adminhtml/Order/Create/Sidebar/Wishlist.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Store.php | 2 +- .../Block/Adminhtml/Order/Create/Store/Select.php | 2 +- .../Sales/Block/Adminhtml/Order/Create/Totals.php | 2 +- .../Order/Create/Totals/DefaultTotals.php | 2 +- .../Adminhtml/Order/Create/Totals/Discount.php | 2 +- .../Adminhtml/Order/Create/Totals/Grandtotal.php | 2 +- .../Adminhtml/Order/Create/Totals/Shipping.php | 2 +- .../Adminhtml/Order/Create/Totals/Subtotal.php | 2 +- .../Block/Adminhtml/Order/Create/Totals/Table.php | 2 +- .../Block/Adminhtml/Order/Create/Totals/Tax.php | 2 +- .../Block/Adminhtml/Order/Creditmemo/Create.php | 2 +- .../Order/Creditmemo/Create/Adjustments.php | 2 +- .../Adminhtml/Order/Creditmemo/Create/Form.php | 2 +- .../Adminhtml/Order/Creditmemo/Create/Items.php | 2 +- .../Block/Adminhtml/Order/Creditmemo/Totals.php | 2 +- .../Block/Adminhtml/Order/Creditmemo/View.php | 2 +- .../Adminhtml/Order/Creditmemo/View/Comments.php | 2 +- .../Block/Adminhtml/Order/Creditmemo/View/Form.php | 2 +- .../Adminhtml/Order/Creditmemo/View/Items.php | 2 +- .../Sales/Block/Adminhtml/Order/Details.php | 2 +- .../Sales/Block/Adminhtml/Order/Invoice/Create.php | 2 +- .../Block/Adminhtml/Order/Invoice/Create/Form.php | 2 +- .../Block/Adminhtml/Order/Invoice/Create/Items.php | 2 +- .../Sales/Block/Adminhtml/Order/Invoice/Totals.php | 2 +- .../Sales/Block/Adminhtml/Order/Invoice/View.php | 2 +- .../Adminhtml/Order/Invoice/View/Comments.php | 2 +- .../Block/Adminhtml/Order/Invoice/View/Form.php | 2 +- .../Block/Adminhtml/Order/Invoice/View/Items.php | 2 +- .../Sales/Block/Adminhtml/Order/Payment.php | 2 +- .../Magento/Sales/Block/Adminhtml/Order/Status.php | 2 +- .../Sales/Block/Adminhtml/Order/Status/Assign.php | 2 +- .../Block/Adminhtml/Order/Status/Assign/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Status/Edit.php | 2 +- .../Block/Adminhtml/Order/Status/Edit/Form.php | 2 +- .../Block/Adminhtml/Order/Status/NewStatus.php | 2 +- .../Adminhtml/Order/Status/NewStatus/Form.php | 2 +- .../Sales/Block/Adminhtml/Order/Totalbar.php | 2 +- .../Magento/Sales/Block/Adminhtml/Order/Totals.php | 2 +- .../Sales/Block/Adminhtml/Order/Totals/Item.php | 2 +- .../Sales/Block/Adminhtml/Order/Totals/Tax.php | 2 +- .../Magento/Sales/Block/Adminhtml/Order/View.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Form.php | 2 +- .../Block/Adminhtml/Order/View/Giftmessage.php | 2 +- .../Sales/Block/Adminhtml/Order/View/History.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Info.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Items.php | 2 +- .../Order/View/Items/Renderer/DefaultRenderer.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Messages.php | 2 +- .../Block/Adminhtml/Order/View/Tab/Creditmemos.php | 2 +- .../Block/Adminhtml/Order/View/Tab/History.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Tab/Info.php | 2 +- .../Block/Adminhtml/Order/View/Tab/Invoices.php | 2 +- .../Block/Adminhtml/Order/View/Tab/Shipments.php | 2 +- .../Adminhtml/Order/View/Tab/Transactions.php | 2 +- .../Sales/Block/Adminhtml/Order/View/Tabs.php | 2 +- .../Block/Adminhtml/Reorder/Renderer/Action.php | 2 +- .../Sales/Block/Adminhtml/Report/Filter/Form.php | 2 +- .../Block/Adminhtml/Report/Filter/Form/Coupon.php | 2 +- .../Block/Adminhtml/Report/Filter/Form/Order.php | 2 +- .../Sales/Block/Adminhtml/Rss/Order/Grid/Link.php | 2 +- .../Magento/Sales/Block/Adminhtml/Shipment.php | 2 +- .../System/Config/Form/Fieldset/Order/Statuses.php | 2 +- app/code/Magento/Sales/Block/Adminhtml/Totals.php | 2 +- .../Magento/Sales/Block/Adminhtml/Transactions.php | 2 +- .../Sales/Block/Adminhtml/Transactions/Detail.php | 2 +- .../Block/Adminhtml/Transactions/Detail/Grid.php | 2 +- app/code/Magento/Sales/Block/Guest/Link.php | 2 +- .../Magento/Sales/Block/Items/AbstractItems.php | 2 +- app/code/Magento/Sales/Block/Order/Comments.php | 2 +- app/code/Magento/Sales/Block/Order/Creditmemo.php | 2 +- .../Magento/Sales/Block/Order/Creditmemo/Items.php | 2 +- .../Sales/Block/Order/Creditmemo/Totals.php | 2 +- .../Sales/Block/Order/Email/Creditmemo/Items.php | 2 +- .../Sales/Block/Order/Email/Invoice/Items.php | 2 +- app/code/Magento/Sales/Block/Order/Email/Items.php | 2 +- .../Sales/Block/Order/Email/Items/DefaultItems.php | 2 +- .../Block/Order/Email/Items/Order/DefaultOrder.php | 2 +- .../Sales/Block/Order/Email/Shipment/Items.php | 2 +- app/code/Magento/Sales/Block/Order/History.php | 2 +- .../Sales/Block/Order/History/Container.php | 2 +- app/code/Magento/Sales/Block/Order/Info.php | 2 +- .../Magento/Sales/Block/Order/Info/Buttons.php | 2 +- .../Magento/Sales/Block/Order/Info/Buttons/Rss.php | 2 +- app/code/Magento/Sales/Block/Order/Invoice.php | 2 +- .../Magento/Sales/Block/Order/Invoice/Items.php | 2 +- .../Magento/Sales/Block/Order/Invoice/Totals.php | 2 +- .../Block/Order/Item/Renderer/DefaultRenderer.php | 2 +- app/code/Magento/Sales/Block/Order/Items.php | 2 +- app/code/Magento/Sales/Block/Order/Link.php | 2 +- .../Sales/Block/Order/PrintOrder/Creditmemo.php | 2 +- .../Sales/Block/Order/PrintOrder/Invoice.php | 2 +- .../Sales/Block/Order/PrintOrder/Shipment.php | 2 +- .../Magento/Sales/Block/Order/PrintShipment.php | 2 +- app/code/Magento/Sales/Block/Order/Recent.php | 2 +- app/code/Magento/Sales/Block/Order/Totals.php | 2 +- app/code/Magento/Sales/Block/Order/View.php | 2 +- app/code/Magento/Sales/Block/Reorder/Sidebar.php | 2 +- .../Sales/Block/Status/Grid/Column/State.php | 2 +- .../Sales/Block/Status/Grid/Column/Unassign.php | 2 +- app/code/Magento/Sales/Block/Widget/Guest/Form.php | 2 +- .../Controller/AbstractController/Creditmemo.php | 2 +- .../Controller/AbstractController/Invoice.php | 2 +- .../Controller/AbstractController/OrderLoader.php | 2 +- .../AbstractController/OrderLoaderInterface.php | 2 +- .../AbstractController/OrderViewAuthorization.php | 2 +- .../OrderViewAuthorizationInterface.php | 2 +- .../Controller/AbstractController/PrintAction.php | 2 +- .../AbstractController/PrintCreditmemo.php | 2 +- .../Controller/AbstractController/PrintInvoice.php | 2 +- .../AbstractController/PrintShipment.php | 2 +- .../Controller/AbstractController/Reorder.php | 2 +- .../Controller/AbstractController/Shipment.php | 2 +- .../Sales/Controller/AbstractController/View.php | 2 +- .../Creditmemo/AbstractCreditmemo/Email.php | 2 +- .../Creditmemo/AbstractCreditmemo/Grid.php | 2 +- .../Creditmemo/AbstractCreditmemo/Index.php | 2 +- .../AbstractCreditmemo/Pdfcreditmemos.php | 2 +- .../Creditmemo/AbstractCreditmemo/PrintAction.php | 2 +- .../Creditmemo/AbstractCreditmemo/View.php | 2 +- .../Controller/Adminhtml/Creditmemo/Email.php | 2 +- .../Sales/Controller/Adminhtml/Creditmemo/Grid.php | 2 +- .../Controller/Adminhtml/Creditmemo/Index.php | 2 +- .../Adminhtml/Creditmemo/Pdfcreditmemos.php | 2 +- .../Adminhtml/Creditmemo/PrintAction.php | 2 +- .../Sales/Controller/Adminhtml/Creditmemo/View.php | 2 +- .../Adminhtml/Invoice/AbstractInvoice/Email.php | 2 +- .../Adminhtml/Invoice/AbstractInvoice/Grid.php | 2 +- .../Adminhtml/Invoice/AbstractInvoice/Index.php | 2 +- .../Invoice/AbstractInvoice/Pdfinvoices.php | 2 +- .../Invoice/AbstractInvoice/PrintAction.php | 2 +- .../Adminhtml/Invoice/AbstractInvoice/View.php | 2 +- .../Sales/Controller/Adminhtml/Invoice/Email.php | 2 +- .../Sales/Controller/Adminhtml/Invoice/Grid.php | 2 +- .../Sales/Controller/Adminhtml/Invoice/Index.php | 2 +- .../Controller/Adminhtml/Invoice/Pdfinvoices.php | 2 +- .../Controller/Adminhtml/Invoice/PrintAction.php | 2 +- .../Sales/Controller/Adminhtml/Invoice/View.php | 2 +- .../Magento/Sales/Controller/Adminhtml/Order.php | 2 +- .../Adminhtml/Order/AbstractMassAction.php | 2 +- .../Controller/Adminhtml/Order/AddComment.php | 2 +- .../Sales/Controller/Adminhtml/Order/Address.php | 2 +- .../Controller/Adminhtml/Order/AddressSave.php | 2 +- .../Sales/Controller/Adminhtml/Order/Cancel.php | 2 +- .../Controller/Adminhtml/Order/CommentsHistory.php | 2 +- .../Sales/Controller/Adminhtml/Order/Create.php | 2 +- .../Adminhtml/Order/Create/AddConfigured.php | 2 +- .../Controller/Adminhtml/Order/Create/Cancel.php | 2 +- .../Order/Create/ConfigureProductToAdd.php | 2 +- .../Adminhtml/Order/Create/ConfigureQuoteItems.php | 2 +- .../Controller/Adminhtml/Order/Create/Index.php | 2 +- .../Adminhtml/Order/Create/LoadBlock.php | 2 +- .../Adminhtml/Order/Create/ProcessData.php | 2 +- .../Controller/Adminhtml/Order/Create/Reorder.php | 2 +- .../Controller/Adminhtml/Order/Create/Save.php | 2 +- .../Adminhtml/Order/Create/ShowUpdateResult.php | 2 +- .../Controller/Adminhtml/Order/Create/Start.php | 2 +- .../Adminhtml/Order/Creditmemo/AddComment.php | 2 +- .../Adminhtml/Order/Creditmemo/Cancel.php | 2 +- .../Adminhtml/Order/Creditmemo/Email.php | 2 +- .../Controller/Adminhtml/Order/Creditmemo/Grid.php | 2 +- .../Adminhtml/Order/Creditmemo/Index.php | 2 +- .../Adminhtml/Order/Creditmemo/NewAction.php | 2 +- .../Adminhtml/Order/Creditmemo/Pdfcreditmemos.php | 2 +- .../Adminhtml/Order/Creditmemo/PrintAction.php | 2 +- .../Controller/Adminhtml/Order/Creditmemo/Save.php | 2 +- .../Adminhtml/Order/Creditmemo/Start.php | 2 +- .../Adminhtml/Order/Creditmemo/UpdateQty.php | 2 +- .../Controller/Adminhtml/Order/Creditmemo/View.php | 2 +- .../Controller/Adminhtml/Order/Creditmemo/Void.php | 2 +- .../Adminhtml/Order/CreditmemoLoader.php | 2 +- .../Controller/Adminhtml/Order/Creditmemos.php | 2 +- .../Adminhtml/Order/Edit/AddConfigured.php | 2 +- .../Controller/Adminhtml/Order/Edit/Cancel.php | 2 +- .../Adminhtml/Order/Edit/ConfigureProductToAdd.php | 2 +- .../Adminhtml/Order/Edit/ConfigureQuoteItems.php | 2 +- .../Controller/Adminhtml/Order/Edit/Index.php | 2 +- .../Controller/Adminhtml/Order/Edit/LoadBlock.php | 2 +- .../Adminhtml/Order/Edit/ProcessData.php | 2 +- .../Controller/Adminhtml/Order/Edit/Reorder.php | 2 +- .../Sales/Controller/Adminhtml/Order/Edit/Save.php | 2 +- .../Adminhtml/Order/Edit/ShowUpdateResult.php | 2 +- .../Controller/Adminhtml/Order/Edit/Start.php | 2 +- .../Sales/Controller/Adminhtml/Order/Email.php | 2 +- .../Sales/Controller/Adminhtml/Order/Grid.php | 2 +- .../Sales/Controller/Adminhtml/Order/Hold.php | 2 +- .../Sales/Controller/Adminhtml/Order/Index.php | 2 +- .../Adminhtml/Order/Invoice/AddComment.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Cancel.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Capture.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Email.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Grid.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Index.php | 2 +- .../Adminhtml/Order/Invoice/NewAction.php | 2 +- .../Adminhtml/Order/Invoice/Pdfinvoices.php | 2 +- .../Adminhtml/Order/Invoice/PrintAction.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Save.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Start.php | 2 +- .../Adminhtml/Order/Invoice/UpdateQty.php | 2 +- .../Controller/Adminhtml/Order/Invoice/View.php | 2 +- .../Controller/Adminhtml/Order/Invoice/Void.php | 2 +- .../Sales/Controller/Adminhtml/Order/Invoices.php | 2 +- .../Controller/Adminhtml/Order/MassCancel.php | 2 +- .../Sales/Controller/Adminhtml/Order/MassHold.php | 2 +- .../Controller/Adminhtml/Order/MassUnhold.php | 2 +- .../Adminhtml/Order/PdfDocumentsMassAction.php | 2 +- .../Controller/Adminhtml/Order/Pdfcreditmemos.php | 2 +- .../Sales/Controller/Adminhtml/Order/Pdfdocs.php | 2 +- .../Controller/Adminhtml/Order/Pdfinvoices.php | 2 +- .../Controller/Adminhtml/Order/Pdfshipments.php | 2 +- .../Controller/Adminhtml/Order/ReviewPayment.php | 2 +- .../Sales/Controller/Adminhtml/Order/Shipments.php | 2 +- .../Sales/Controller/Adminhtml/Order/Status.php | 2 +- .../Controller/Adminhtml/Order/Status/Assign.php | 2 +- .../Adminhtml/Order/Status/AssignPost.php | 2 +- .../Controller/Adminhtml/Order/Status/Edit.php | 2 +- .../Controller/Adminhtml/Order/Status/Index.php | 2 +- .../Adminhtml/Order/Status/NewAction.php | 2 +- .../Controller/Adminhtml/Order/Status/Save.php | 2 +- .../Controller/Adminhtml/Order/Status/Unassign.php | 2 +- .../Controller/Adminhtml/Order/Transactions.php | 2 +- .../Sales/Controller/Adminhtml/Order/Unhold.php | 2 +- .../Sales/Controller/Adminhtml/Order/View.php | 2 +- .../Adminhtml/Order/View/Giftmessage.php | 2 +- .../Adminhtml/Order/View/Giftmessage/Save.php | 2 +- .../Controller/Adminhtml/Order/VoidPayment.php | 2 +- .../Adminhtml/Shipment/AbstractShipment/Index.php | 2 +- .../Shipment/AbstractShipment/Pdfshipments.php | 2 +- .../Shipment/AbstractShipment/PrintAction.php | 2 +- .../Adminhtml/Shipment/AbstractShipment/View.php | 2 +- .../Sales/Controller/Adminhtml/Shipment/Index.php | 2 +- .../Controller/Adminhtml/Shipment/Pdfshipments.php | 2 +- .../Controller/Adminhtml/Shipment/PrintAction.php | 2 +- .../Sales/Controller/Adminhtml/Shipment/View.php | 2 +- .../Sales/Controller/Adminhtml/Transactions.php | 2 +- .../Controller/Adminhtml/Transactions/Fetch.php | 2 +- .../Controller/Adminhtml/Transactions/Grid.php | 2 +- .../Controller/Adminhtml/Transactions/Index.php | 2 +- .../Controller/Adminhtml/Transactions/View.php | 2 +- .../Controller/Download/DownloadCustomOption.php | 2 +- .../Magento/Sales/Controller/Guest/Creditmemo.php | 2 +- app/code/Magento/Sales/Controller/Guest/Form.php | 2 +- .../Magento/Sales/Controller/Guest/Invoice.php | 2 +- .../Magento/Sales/Controller/Guest/OrderLoader.php | 2 +- .../Controller/Guest/OrderViewAuthorization.php | 2 +- .../Magento/Sales/Controller/Guest/PrintAction.php | 2 +- .../Sales/Controller/Guest/PrintCreditmemo.php | 2 +- .../Sales/Controller/Guest/PrintInvoice.php | 2 +- .../Sales/Controller/Guest/PrintShipment.php | 2 +- .../Magento/Sales/Controller/Guest/Reorder.php | 2 +- .../Magento/Sales/Controller/Guest/Shipment.php | 2 +- app/code/Magento/Sales/Controller/Guest/View.php | 2 +- .../Magento/Sales/Controller/Order/Creditmemo.php | 2 +- .../Magento/Sales/Controller/Order/History.php | 2 +- .../Magento/Sales/Controller/Order/Invoice.php | 2 +- .../Controller/Order/Plugin/Authentication.php | 2 +- .../Magento/Sales/Controller/Order/PrintAction.php | 2 +- .../Sales/Controller/Order/PrintCreditmemo.php | 2 +- .../Sales/Controller/Order/PrintInvoice.php | 2 +- .../Sales/Controller/Order/PrintShipment.php | 2 +- .../Magento/Sales/Controller/Order/Reorder.php | 2 +- .../Magento/Sales/Controller/Order/Shipment.php | 2 +- app/code/Magento/Sales/Controller/Order/View.php | 2 +- .../Magento/Sales/Controller/OrderInterface.php | 2 +- app/code/Magento/Sales/Cron/CleanExpiredQuotes.php | 2 +- app/code/Magento/Sales/Cron/GridAsyncInsert.php | 2 +- app/code/Magento/Sales/Cron/SendEmails.php | 2 +- .../Sales/CustomerData/LastOrderedItems.php | 2 +- .../Sales/Exception/CouldNotInvoiceException.php | 2 +- .../Sales/Exception/CouldNotRefundException.php | 2 +- .../Sales/Exception/CouldNotShipException.php | 2 +- .../Exception/DocumentValidationException.php | 2 +- app/code/Magento/Sales/Helper/Admin.php | 2 +- app/code/Magento/Sales/Helper/Data.php | 2 +- app/code/Magento/Sales/Helper/Guest.php | 2 +- app/code/Magento/Sales/Helper/Reorder.php | 2 +- app/code/Magento/Sales/Model/AbstractModel.php | 2 +- app/code/Magento/Sales/Model/AbstractNotifier.php | 2 +- app/code/Magento/Sales/Model/AdminOrder/Create.php | 2 +- .../Magento/Sales/Model/AdminOrder/EmailSender.php | 2 +- .../Model/AdminOrder/Product/Quote/Initializer.php | 2 +- app/code/Magento/Sales/Model/Config.php | 2 +- .../Model/Config/Backend/Email/AsyncSending.php | 2 +- .../Model/Config/Backend/Grid/AsyncIndexing.php | 2 +- app/code/Magento/Sales/Model/Config/Converter.php | 2 +- app/code/Magento/Sales/Model/Config/Data.php | 2 +- app/code/Magento/Sales/Model/Config/Ordered.php | 2 +- app/code/Magento/Sales/Model/Config/Reader.php | 2 +- .../Magento/Sales/Model/Config/SchemaLocator.php | 2 +- .../Sales/Model/Config/Source/Order/Status.php | 2 +- .../Model/Config/Source/Order/Status/NewStatus.php | 2 +- .../Config/Source/Order/Status/Newprocessing.php | 2 +- .../Config/Source/Order/Status/Processing.php | 2 +- app/code/Magento/Sales/Model/ConfigInterface.php | 2 +- app/code/Magento/Sales/Model/Convert/Order.php | 2 +- .../AggregateSalesReportBestsellersData.php | 2 +- .../CronJob/AggregateSalesReportInvoicedData.php | 2 +- .../CronJob/AggregateSalesReportOrderData.php | 2 +- .../CronJob/AggregateSalesReportRefundedData.php | 2 +- .../Sales/Model/CronJob/CleanExpiredOrders.php | 2 +- app/code/Magento/Sales/Model/Download.php | 2 +- .../Magento/Sales/Model/EmailSenderHandler.php | 2 +- app/code/Magento/Sales/Model/EntityInterface.php | 2 +- app/code/Magento/Sales/Model/EntityStorage.php | 2 +- .../Sales/Model/Grid/Child/CollectionUpdater.php | 2 +- .../Magento/Sales/Model/Grid/CollectionUpdater.php | 2 +- app/code/Magento/Sales/Model/GridAsyncInsert.php | 2 +- app/code/Magento/Sales/Model/Increment.php | 2 +- app/code/Magento/Sales/Model/InvoiceOrder.php | 2 +- app/code/Magento/Sales/Model/Order.php | 2 +- app/code/Magento/Sales/Model/Order/Address.php | 2 +- .../Magento/Sales/Model/Order/Address/Renderer.php | 2 +- .../Sales/Model/Order/Address/Validator.php | 2 +- .../Sales/Model/Order/AddressRepository.php | 2 +- app/code/Magento/Sales/Model/Order/Admin/Item.php | 2 +- app/code/Magento/Sales/Model/Order/Config.php | 2 +- app/code/Magento/Sales/Model/Order/Creditmemo.php | 2 +- .../Sales/Model/Order/Creditmemo/Comment.php | 2 +- .../Model/Order/Creditmemo/Comment/Validator.php | 2 +- .../Model/Order/Creditmemo/CommentCreation.php | 2 +- .../Sales/Model/Order/Creditmemo/Config.php | 2 +- .../Model/Order/Creditmemo/CreationArguments.php | 2 +- .../Model/Order/Creditmemo/CreditmemoValidator.php | 2 +- .../Creditmemo/CreditmemoValidatorInterface.php | 2 +- .../Magento/Sales/Model/Order/Creditmemo/Item.php | 2 +- .../Item/Validation/CreationQuantityValidator.php | 2 +- .../Sales/Model/Order/Creditmemo/ItemCreation.php | 2 +- .../Order/Creditmemo/ItemCreationValidator.php | 2 +- .../Creditmemo/ItemCreationValidatorInterface.php | 2 +- .../Sales/Model/Order/Creditmemo/Notifier.php | 2 +- .../Model/Order/Creditmemo/NotifierInterface.php | 2 +- .../Model/Order/Creditmemo/RefundOperation.php | 2 +- .../Model/Order/Creditmemo/Sender/EmailSender.php | 2 +- .../Model/Order/Creditmemo/SenderInterface.php | 2 +- .../Model/Order/Creditmemo/Total/AbstractTotal.php | 2 +- .../Sales/Model/Order/Creditmemo/Total/Cost.php | 2 +- .../Model/Order/Creditmemo/Total/Discount.php | 2 +- .../Sales/Model/Order/Creditmemo/Total/Grand.php | 2 +- .../Model/Order/Creditmemo/Total/Shipping.php | 2 +- .../Model/Order/Creditmemo/Total/Subtotal.php | 2 +- .../Sales/Model/Order/Creditmemo/Total/Tax.php | 2 +- .../Creditmemo/Validation/QuantityValidator.php | 2 +- .../Creditmemo/Validation/TotalsValidator.php | 2 +- .../Model/Order/CreditmemoDocumentFactory.php | 2 +- .../Sales/Model/Order/CreditmemoFactory.php | 2 +- .../Sales/Model/Order/CreditmemoNotifier.php | 2 +- .../Sales/Model/Order/CreditmemoRepository.php | 2 +- .../Sales/Model/Order/CustomerManagement.php | 2 +- .../Model/Order/Email/Container/Container.php | 2 +- .../Email/Container/CreditmemoCommentIdentity.php | 2 +- .../Order/Email/Container/CreditmemoIdentity.php | 2 +- .../Order/Email/Container/IdentityInterface.php | 2 +- .../Email/Container/InvoiceCommentIdentity.php | 2 +- .../Order/Email/Container/InvoiceIdentity.php | 2 +- .../Order/Email/Container/OrderCommentIdentity.php | 2 +- .../Model/Order/Email/Container/OrderIdentity.php | 2 +- .../Email/Container/ShipmentCommentIdentity.php | 2 +- .../Order/Email/Container/ShipmentIdentity.php | 2 +- .../Sales/Model/Order/Email/Container/Template.php | 2 +- .../Sales/Model/Order/Email/NotifySender.php | 2 +- .../Magento/Sales/Model/Order/Email/Sender.php | 2 +- .../Order/Email/Sender/CreditmemoCommentSender.php | 2 +- .../Model/Order/Email/Sender/CreditmemoSender.php | 2 +- .../Order/Email/Sender/InvoiceCommentSender.php | 2 +- .../Model/Order/Email/Sender/InvoiceSender.php | 2 +- .../Order/Email/Sender/OrderCommentSender.php | 2 +- .../Sales/Model/Order/Email/Sender/OrderSender.php | 2 +- .../Order/Email/Sender/ShipmentCommentSender.php | 2 +- .../Model/Order/Email/Sender/ShipmentSender.php | 2 +- .../Sales/Model/Order/Email/SenderBuilder.php | 2 +- .../Model/Order/Grid/Massaction/ItemsUpdater.php | 2 +- .../Sales/Model/Order/Grid/Row/UrlGenerator.php | 2 +- app/code/Magento/Sales/Model/Order/Invoice.php | 2 +- .../Magento/Sales/Model/Order/Invoice/Comment.php | 2 +- .../Model/Order/Invoice/Comment/Validator.php | 2 +- .../Sales/Model/Order/Invoice/CommentCreation.php | 2 +- .../Magento/Sales/Model/Order/Invoice/Config.php | 2 +- .../Model/Order/Invoice/CreationArguments.php | 2 +- .../Model/Order/Invoice/Grid/Row/UrlGenerator.php | 2 +- .../Sales/Model/Order/Invoice/InvoiceValidator.php | 2 +- .../Order/Invoice/InvoiceValidatorInterface.php | 2 +- .../Magento/Sales/Model/Order/Invoice/Item.php | 2 +- .../Sales/Model/Order/Invoice/ItemCreation.php | 2 +- .../Magento/Sales/Model/Order/Invoice/Notifier.php | 2 +- .../Model/Order/Invoice/NotifierInterface.php | 2 +- .../Sales/Model/Order/Invoice/PayOperation.php | 2 +- .../Model/Order/Invoice/Sender/EmailSender.php | 2 +- .../Sales/Model/Order/Invoice/SenderInterface.php | 2 +- .../Model/Order/Invoice/Total/AbstractTotal.php | 2 +- .../Sales/Model/Order/Invoice/Total/Cost.php | 2 +- .../Sales/Model/Order/Invoice/Total/Discount.php | 2 +- .../Sales/Model/Order/Invoice/Total/Grand.php | 2 +- .../Sales/Model/Order/Invoice/Total/Shipping.php | 2 +- .../Sales/Model/Order/Invoice/Total/Subtotal.php | 2 +- .../Sales/Model/Order/Invoice/Total/Tax.php | 2 +- .../Model/Order/Invoice/Validation/CanRefund.php | 2 +- .../Sales/Model/Order/InvoiceDocumentFactory.php | 2 +- .../Magento/Sales/Model/Order/InvoiceNotifier.php | 2 +- .../Sales/Model/Order/InvoiceNotifierInterface.php | 2 +- .../Sales/Model/Order/InvoiceQuantityValidator.php | 2 +- .../Sales/Model/Order/InvoiceRepository.php | 2 +- .../Model/Order/InvoiceStatisticInterface.php | 2 +- app/code/Magento/Sales/Model/Order/Item.php | 2 +- .../Magento/Sales/Model/Order/ItemRepository.php | 2 +- .../Model/Order/OrderStateResolverInterface.php | 2 +- .../Magento/Sales/Model/Order/OrderValidator.php | 2 +- .../Sales/Model/Order/OrderValidatorInterface.php | 2 +- app/code/Magento/Sales/Model/Order/Payment.php | 2 +- .../Magento/Sales/Model/Order/Payment/Info.php | 2 +- .../Order/Payment/Operations/AbstractOperation.php | 2 +- .../Payment/Operations/AuthorizeOperation.php | 2 +- .../Order/Payment/Operations/CaptureOperation.php | 2 +- .../Order/Payment/Operations/OrderOperation.php | 2 +- .../RegisterCaptureNotificationOperation.php | 2 +- .../Sales/Model/Order/Payment/Processor.php | 2 +- .../Sales/Model/Order/Payment/Repository.php | 2 +- .../Model/Order/Payment/State/AuthorizeCommand.php | 2 +- .../Model/Order/Payment/State/CaptureCommand.php | 2 +- .../Model/Order/Payment/State/CommandInterface.php | 2 +- .../Model/Order/Payment/State/OrderCommand.php | 2 +- .../State/RegisterCaptureNotificationCommand.php | 2 +- .../Sales/Model/Order/Payment/Transaction.php | 2 +- .../Model/Order/Payment/Transaction/Builder.php | 2 +- .../Order/Payment/Transaction/BuilderInterface.php | 2 +- .../Model/Order/Payment/Transaction/Manager.php | 2 +- .../Order/Payment/Transaction/ManagerInterface.php | 2 +- .../Model/Order/Payment/Transaction/Repository.php | 2 +- .../Magento/Sales/Model/Order/PaymentAdapter.php | 2 +- .../Sales/Model/Order/PaymentAdapterInterface.php | 2 +- .../Magento/Sales/Model/Order/Pdf/AbstractPdf.php | 2 +- app/code/Magento/Sales/Model/Order/Pdf/Config.php | 2 +- .../Sales/Model/Order/Pdf/Config/Converter.php | 2 +- .../Sales/Model/Order/Pdf/Config/Reader.php | 2 +- .../Sales/Model/Order/Pdf/Config/SchemaLocator.php | 2 +- .../Magento/Sales/Model/Order/Pdf/Creditmemo.php | 2 +- app/code/Magento/Sales/Model/Order/Pdf/Invoice.php | 2 +- .../Sales/Model/Order/Pdf/Items/AbstractItems.php | 2 +- .../Pdf/Items/Creditmemo/DefaultCreditmemo.php | 2 +- .../Order/Pdf/Items/Invoice/DefaultInvoice.php | 2 +- .../Order/Pdf/Items/Shipment/DefaultShipment.php | 2 +- .../Magento/Sales/Model/Order/Pdf/ItemsFactory.php | 2 +- .../Magento/Sales/Model/Order/Pdf/Shipment.php | 2 +- .../Sales/Model/Order/Pdf/Total/DefaultTotal.php | 2 +- .../Sales/Model/Order/Pdf/Total/Factory.php | 2 +- .../Magento/Sales/Model/Order/RefundAdapter.php | 2 +- .../Sales/Model/Order/RefundAdapterInterface.php | 2 +- app/code/Magento/Sales/Model/Order/Shipment.php | 2 +- .../Magento/Sales/Model/Order/Shipment/Comment.php | 2 +- .../Model/Order/Shipment/Comment/Validator.php | 2 +- .../Sales/Model/Order/Shipment/CommentCreation.php | 2 +- .../Model/Order/Shipment/CreationArguments.php | 2 +- .../Magento/Sales/Model/Order/Shipment/Item.php | 2 +- .../Sales/Model/Order/Shipment/ItemCreation.php | 2 +- .../Sales/Model/Order/Shipment/Notifier.php | 2 +- .../Model/Order/Shipment/NotifierInterface.php | 2 +- .../Sales/Model/Order/Shipment/OrderRegistrar.php | 2 +- .../Order/Shipment/OrderRegistrarInterface.php | 2 +- .../Magento/Sales/Model/Order/Shipment/Package.php | 2 +- .../Sales/Model/Order/Shipment/PackageCreation.php | 2 +- .../Model/Order/Shipment/Sender/EmailSender.php | 2 +- .../Sales/Model/Order/Shipment/SenderInterface.php | 2 +- .../Model/Order/Shipment/ShipmentValidator.php | 2 +- .../Order/Shipment/ShipmentValidatorInterface.php | 2 +- .../Magento/Sales/Model/Order/Shipment/Track.php | 2 +- .../Sales/Model/Order/Shipment/Track/Validator.php | 2 +- .../Sales/Model/Order/Shipment/TrackCreation.php | 2 +- .../Shipment/Validation/QuantityValidator.php | 2 +- .../Order/Shipment/Validation/TrackValidator.php | 2 +- .../Sales/Model/Order/ShipmentDocumentFactory.php | 2 +- .../Magento/Sales/Model/Order/ShipmentFactory.php | 2 +- .../Sales/Model/Order/ShipmentRepository.php | 2 +- app/code/Magento/Sales/Model/Order/Shipping.php | 2 +- .../Sales/Model/Order/ShippingAssignment.php | 2 +- .../Model/Order/ShippingAssignmentBuilder.php | 2 +- .../Magento/Sales/Model/Order/ShippingBuilder.php | 2 +- .../Magento/Sales/Model/Order/ShippingTotal.php | 2 +- .../Magento/Sales/Model/Order/StateResolver.php | 2 +- app/code/Magento/Sales/Model/Order/Status.php | 2 +- .../Magento/Sales/Model/Order/Status/History.php | 2 +- .../Sales/Model/Order/Status/History/Validator.php | 2 +- .../Magento/Sales/Model/Order/StatusResolver.php | 2 +- app/code/Magento/Sales/Model/Order/Tax.php | 2 +- app/code/Magento/Sales/Model/Order/Tax/Item.php | 2 +- app/code/Magento/Sales/Model/Order/Total.php | 2 +- .../Sales/Model/Order/Total/AbstractTotal.php | 2 +- .../Sales/Model/Order/Total/Config/Base.php | 2 +- .../Magento/Sales/Model/Order/TotalFactory.php | 2 +- .../Sales/Model/Order/Validation/CanInvoice.php | 2 +- .../Sales/Model/Order/Validation/CanRefund.php | 2 +- .../Sales/Model/Order/Validation/CanShip.php | 2 +- .../Sales/Model/Order/Validation/InvoiceOrder.php | 2 +- .../Order/Validation/InvoiceOrderInterface.php | 2 +- .../Sales/Model/Order/Validation/RefundInvoice.php | 2 +- .../Order/Validation/RefundInvoiceInterface.php | 2 +- .../Sales/Model/Order/Validation/RefundOrder.php | 2 +- .../Order/Validation/RefundOrderInterface.php | 2 +- .../Sales/Model/Order/Validation/ShipOrder.php | 2 +- .../Model/Order/Validation/ShipOrderInterface.php | 2 +- .../Sales/Model/OrderIncrementIdChecker.php | 2 +- app/code/Magento/Sales/Model/OrderNotifier.php | 2 +- app/code/Magento/Sales/Model/OrderRepository.php | 2 +- app/code/Magento/Sales/Model/RefundInvoice.php | 2 +- app/code/Magento/Sales/Model/RefundOrder.php | 2 +- .../Sales/Model/ResourceModel/AbstractGrid.php | 2 +- .../Sales/Model/ResourceModel/Attribute.php | 2 +- .../Collection/AbstractCollection.php | 2 +- .../Sales/Model/ResourceModel/EntityAbstract.php | 2 +- .../Magento/Sales/Model/ResourceModel/Grid.php | 2 +- .../Sales/Model/ResourceModel/Grid/Collection.php | 2 +- .../Sales/Model/ResourceModel/GridInterface.php | 2 +- .../Magento/Sales/Model/ResourceModel/GridPool.php | 2 +- .../Magento/Sales/Model/ResourceModel/Helper.php | 2 +- .../Sales/Model/ResourceModel/HelperInterface.php | 2 +- .../Magento/Sales/Model/ResourceModel/Metadata.php | 2 +- .../Magento/Sales/Model/ResourceModel/Order.php | 2 +- .../Sales/Model/ResourceModel/Order/Address.php | 2 +- .../ResourceModel/Order/Address/Collection.php | 2 +- .../Order/Attribute/Backend/Billing.php | 2 +- .../Order/Attribute/Backend/Child.php | 2 +- .../Order/Attribute/Backend/Shipping.php | 2 +- .../Sales/Model/ResourceModel/Order/Collection.php | 2 +- .../Order/Collection/AbstractCollection.php | 2 +- .../ResourceModel/Order/Collection/Factory.php | 2 +- .../ResourceModel/Order/CollectionFactory.php | 2 +- .../Order/CollectionFactoryInterface.php | 2 +- .../Comment/Collection/AbstractCollection.php | 2 +- .../Sales/Model/ResourceModel/Order/Creditmemo.php | 2 +- .../Order/Creditmemo/Attribute/Backend/Child.php | 2 +- .../ResourceModel/Order/Creditmemo/Collection.php | 2 +- .../ResourceModel/Order/Creditmemo/Comment.php | 2 +- .../Order/Creditmemo/Comment/Collection.php | 2 +- .../Order/Creditmemo/Grid/Collection.php | 2 +- .../Order/Creditmemo/Grid/StatusList.php | 2 +- .../Model/ResourceModel/Order/Creditmemo/Item.php | 2 +- .../Order/Creditmemo/Item/Collection.php | 2 +- .../Order/Creditmemo/Order/Grid/Collection.php | 2 +- .../ResourceModel/Order/Creditmemo/Relation.php | 2 +- .../Order/Creditmemo/Relation/Refund.php | 2 +- .../ResourceModel/Order/Customer/Collection.php | 2 +- .../Model/ResourceModel/Order/Grid/Collection.php | 2 +- .../Model/ResourceModel/Order/Handler/Address.php | 2 +- .../Model/ResourceModel/Order/Handler/State.php | 2 +- .../Sales/Model/ResourceModel/Order/Invoice.php | 2 +- .../Order/Invoice/Attribute/Backend/Child.php | 2 +- .../Order/Invoice/Attribute/Backend/Item.php | 2 +- .../Order/Invoice/Attribute/Backend/Order.php | 2 +- .../ResourceModel/Order/Invoice/Collection.php | 2 +- .../Model/ResourceModel/Order/Invoice/Comment.php | 2 +- .../Order/Invoice/Comment/Collection.php | 2 +- .../Order/Invoice/Grid/Collection.php | 2 +- .../Order/Invoice/Grid/StatusList.php | 2 +- .../Model/ResourceModel/Order/Invoice/Item.php | 2 +- .../Order/Invoice/Item/Collection.php | 2 +- .../Order/Invoice/Orders/Grid/Collection.php | 2 +- .../Model/ResourceModel/Order/Invoice/Relation.php | 2 +- .../Sales/Model/ResourceModel/Order/Item.php | 2 +- .../Model/ResourceModel/Order/Item/Collection.php | 2 +- .../Sales/Model/ResourceModel/Order/Payment.php | 2 +- .../ResourceModel/Order/Payment/Collection.php | 2 +- .../ResourceModel/Order/Payment/Transaction.php | 2 +- .../Order/Payment/Transaction/Collection.php | 2 +- .../ResourceModel/Order/Plugin/Authorization.php | 2 +- .../Sales/Model/ResourceModel/Order/Relation.php | 2 +- .../Model/ResourceModel/Order/Rss/OrderStatus.php | 2 +- .../Sales/Model/ResourceModel/Order/Shipment.php | 2 +- .../Order/Shipment/Attribute/Backend/Child.php | 2 +- .../ResourceModel/Order/Shipment/Collection.php | 2 +- .../Model/ResourceModel/Order/Shipment/Comment.php | 2 +- .../Order/Shipment/Comment/Collection.php | 2 +- .../Order/Shipment/Grid/Collection.php | 2 +- .../Model/ResourceModel/Order/Shipment/Item.php | 2 +- .../Order/Shipment/Item/Collection.php | 2 +- .../Order/Shipment/Order/Grid/Collection.php | 2 +- .../ResourceModel/Order/Shipment/Relation.php | 2 +- .../Model/ResourceModel/Order/Shipment/Track.php | 2 +- .../Order/Shipment/Track/Collection.php | 2 +- .../Sales/Model/ResourceModel/Order/Status.php | 2 +- .../ResourceModel/Order/Status/Collection.php | 2 +- .../Model/ResourceModel/Order/Status/History.php | 2 +- .../Order/Status/History/Collection.php | 2 +- .../Sales/Model/ResourceModel/Order/Tax.php | 2 +- .../Model/ResourceModel/Order/Tax/Collection.php | 2 +- .../Sales/Model/ResourceModel/Order/Tax/Item.php | 2 +- .../Magento/Sales/Model/ResourceModel/Report.php | 2 +- .../Model/ResourceModel/Report/AbstractReport.php | 2 +- .../Model/ResourceModel/Report/Bestsellers.php | 2 +- .../Report/Bestsellers/Collection.php | 2 +- .../Report/Collection/AbstractCollection.php | 2 +- .../Sales/Model/ResourceModel/Report/Invoiced.php | 2 +- .../Report/Invoiced/Collection/Invoiced.php | 2 +- .../Report/Invoiced/Collection/Order.php | 2 +- .../Sales/Model/ResourceModel/Report/Order.php | 2 +- .../ResourceModel/Report/Order/Collection.php | 2 +- .../Model/ResourceModel/Report/Order/Createdat.php | 2 +- .../Model/ResourceModel/Report/Order/Updatedat.php | 2 +- .../Report/Order/Updatedat/Collection.php | 2 +- .../Sales/Model/ResourceModel/Report/Refunded.php | 2 +- .../Report/Refunded/Collection/Order.php | 2 +- .../Report/Refunded/Collection/Refunded.php | 2 +- .../Sales/Model/ResourceModel/Report/Shipping.php | 2 +- .../Report/Shipping/Collection/Order.php | 2 +- .../Report/Shipping/Collection/Shipment.php | 2 +- .../Sales/Model/ResourceModel/Sale/Collection.php | 2 +- .../Model/ResourceModel/Status/Collection.php | 2 +- .../ResourceModel/Transaction/Grid/Collection.php | 2 +- .../ResourceModel/Transaction/Grid/TypeList.php | 2 +- app/code/Magento/Sales/Model/Rss/NewOrder.php | 2 +- app/code/Magento/Sales/Model/Rss/OrderStatus.php | 2 +- .../Sales/Model/Service/CreditmemoService.php | 2 +- .../Magento/Sales/Model/Service/InvoiceService.php | 2 +- .../Magento/Sales/Model/Service/OrderService.php | 2 +- .../Sales/Model/Service/ShipmentService.php | 2 +- app/code/Magento/Sales/Model/ShipOrder.php | 2 +- .../Spi/CreditmemoCommentResourceInterface.php | 2 +- .../Model/Spi/CreditmemoItemResourceInterface.php | 2 +- .../Model/Spi/CreditmemoResourceInterface.php | 2 +- .../Model/Spi/InvoiceCommentResourceInterface.php | 2 +- .../Model/Spi/InvoiceItemResourceInterface.php | 2 +- .../Sales/Model/Spi/InvoiceResourceInterface.php | 2 +- .../Model/Spi/OrderAddressResourceInterface.php | 2 +- .../Sales/Model/Spi/OrderItemResourceInterface.php | 2 +- .../Model/Spi/OrderPaymentResourceInterface.php | 2 +- .../Sales/Model/Spi/OrderResourceInterface.php | 2 +- .../Spi/OrderStatusHistoryResourceInterface.php | 2 +- .../Model/Spi/ShipmentCommentResourceInterface.php | 2 +- .../Model/Spi/ShipmentItemResourceInterface.php | 2 +- .../Sales/Model/Spi/ShipmentResourceInterface.php | 2 +- .../Model/Spi/ShipmentTrackResourceInterface.php | 2 +- .../Model/Spi/TransactionResourceInterface.php | 2 +- .../Magento/Sales/Model/Status/ListFactory.php | 2 +- app/code/Magento/Sales/Model/Status/ListStatus.php | 2 +- app/code/Magento/Sales/Model/Validator.php | 2 +- .../Magento/Sales/Model/ValidatorInterface.php | 2 +- app/code/Magento/Sales/Model/ValidatorResult.php | 2 +- .../Sales/Model/ValidatorResultInterface.php | 2 +- .../Magento/Sales/Model/ValidatorResultMerger.php | 2 +- .../Sales/Observer/Backend/CatalogPriceRule.php | 2 +- .../Backend/CatalogProductSaveAfterObserver.php | 2 +- .../Backend/SubtractQtyFromQuotesObserver.php | 2 +- .../Observer/ConvertAdditionalInfoObserver.php | 2 +- .../Frontend/AddVatRequestParamsOrderComment.php | 2 +- .../Observer/Frontend/RestoreCustomerGroupId.php | 2 +- .../Sales/Observer/GridAsyncInsertObserver.php | 2 +- .../Sales/Observer/GridProcessAddressChange.php | 2 +- .../Sales/Observer/GridSyncInsertObserver.php | 2 +- .../Sales/Observer/GridSyncRemoveObserver.php | 2 +- .../Magento/Sales/Observer/Virtual/SendEmails.php | 2 +- app/code/Magento/Sales/Setup/InstallData.php | 2 +- app/code/Magento/Sales/Setup/InstallSchema.php | 2 +- app/code/Magento/Sales/Setup/SalesSetup.php | 2 +- app/code/Magento/Sales/Setup/UpgradeData.php | 2 +- app/code/Magento/Sales/Setup/UpgradeSchema.php | 2 +- .../Block/Adminhtml/Items/AbstractItemsTest.php | 2 +- .../Unit/Block/Adminhtml/Items/AbstractTest.php | 2 +- .../Adminhtml/Items/Column/DefaultColumnTest.php | 2 +- .../Block/Adminhtml/Order/Comments/ViewTest.php | 2 +- .../Block/Adminhtml/Order/Create/CustomerTest.php | 2 +- .../Adminhtml/Order/Create/Items/GridTest.php | 2 +- .../Order/Create/Search/Grid/Renderer/QtyTest.php | 2 +- .../Order/Create/Sidebar/AbstractSidebarTest.php | 2 +- .../Block/Adminhtml/Order/Create/TotalsTest.php | 2 +- .../Order/Creditmemo/Create/ItemsTest.php | 2 +- .../Block/Adminhtml/Order/Invoice/ViewTest.php | 2 +- .../Adminhtml/Order/Status/Assign/FormTest.php | 2 +- .../Unit/Block/Adminhtml/Order/Totals/TaxTest.php | 2 +- .../Block/Adminhtml/Order/View/GiftmessageTest.php | 2 +- .../Block/Adminhtml/Order/View/HistoryTest.php | 2 +- .../Unit/Block/Adminhtml/Order/View/InfoTest.php | 2 +- .../Block/Adminhtml/Order/View/Tab/HistoryTest.php | 2 +- .../Adminhtml/Order/View/Tab/Stub/OnlineMethod.php | 2 +- .../Adminhtml/Order/View/Tab/TransactionsTest.php | 2 +- .../Block/Adminhtml/Rss/Order/Grid/LinkTest.php | 2 +- .../Sales/Test/Unit/Block/Guest/LinkTest.php | 2 +- .../Sales/Test/Unit/Block/Items/AbstractTest.php | 2 +- .../Test/Unit/Block/Order/Create/TotalsTest.php | 2 +- .../Block/Order/Email/Items/DefaultItemsTest.php | 2 +- .../Order/Email/Items/Order/DefaultOrderTest.php | 2 +- .../Sales/Test/Unit/Block/Order/HistoryTest.php | 2 +- .../Test/Unit/Block/Order/Info/Buttons/RssTest.php | 2 +- .../Order/Item/Renderer/DefaultRendererTest.php | 2 +- .../Test/Unit/Block/Order/PrintShipmentTest.php | 2 +- .../Sales/Test/Unit/Block/Order/RecentTest.php | 2 +- .../Sales/Test/Unit/Block/Reorder/SidebarTest.php | 2 +- .../Creditmemo/AbstractCreditmemo/EmailTest.php | 2 +- .../Invoice/AbstractInvoice/EmailTest.php | 2 +- .../Unit/Controller/Adminhtml/Order/CancelTest.php | 2 +- .../Adminhtml/Order/Create/ProcessDataTest.php | 2 +- .../Adminhtml/Order/Creditmemo/AddCommentTest.php | 2 +- .../Adminhtml/Order/Creditmemo/CancelTest.php | 2 +- .../Adminhtml/Order/Creditmemo/NewActionTest.php | 2 +- .../Adminhtml/Order/Creditmemo/PrintActionTest.php | 2 +- .../Adminhtml/Order/Creditmemo/SaveTest.php | 2 +- .../Adminhtml/Order/Creditmemo/UpdateQtyTest.php | 2 +- .../Adminhtml/Order/Creditmemo/ViewTest.php | 2 +- .../Adminhtml/Order/Creditmemo/VoidTest.php | 2 +- .../Adminhtml/Order/CreditmemoLoaderTest.php | 2 +- .../Unit/Controller/Adminhtml/Order/EmailTest.php | 2 +- .../Unit/Controller/Adminhtml/Order/HoldTest.php | 2 +- .../Adminhtml/Order/Invoice/AddCommentTest.php | 2 +- .../Adminhtml/Order/Invoice/CancelTest.php | 2 +- .../Adminhtml/Order/Invoice/CaptureTest.php | 2 +- .../Adminhtml/Order/Invoice/NewActionTest.php | 2 +- .../Adminhtml/Order/Invoice/PrintActionTest.php | 2 +- .../Adminhtml/Order/Invoice/SaveTest.php | 2 +- .../Adminhtml/Order/Invoice/UpdateQtyTest.php | 2 +- .../Adminhtml/Order/Invoice/ViewTest.php | 2 +- .../Adminhtml/Order/Invoice/VoidTest.php | 2 +- .../Controller/Adminhtml/Order/MassCancelTest.php | 2 +- .../Controller/Adminhtml/Order/MassHoldTest.php | 2 +- .../Controller/Adminhtml/Order/MassUnholdTest.php | 2 +- .../Adminhtml/Order/ReviewPaymentTest.php | 2 +- .../Unit/Controller/Adminhtml/Order/UnholdTest.php | 2 +- .../Unit/Controller/Adminhtml/Order/ViewTest.php | 2 +- .../Adminhtml/PdfDocumentsMassActionTest.php | 2 +- .../Download/DownloadCustomOptionTest.php | 2 +- .../Sales/Test/Unit/Controller/Guest/ViewTest.php | 2 +- .../Test/Unit/Cron/CleanExpiredQuotesTest.php | 2 +- .../Unit/CustomerData/LastOrderedItemsTest.php | 2 +- .../Magento/Sales/Test/Unit/Helper/AdminTest.php | 2 +- .../Magento/Sales/Test/Unit/Helper/DataTest.php | 2 +- .../Magento/Sales/Test/Unit/Helper/ReorderTest.php | 2 +- .../Sales/Test/Unit/Model/AbstractModelTest.php | 2 +- .../Test/Unit/Model/AdminOrder/CreateTest.php | 2 +- .../Test/Unit/Model/AdminOrder/EmailSenderTest.php | 2 +- .../AdminOrder/Product/Quote/InitializerTest.php | 2 +- .../Config/Backend/Email/AsyncSendingTest.php | 2 +- .../Config/Backend/Grid/AsyncIndexingTest.php | 2 +- .../Sales/Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Sales/Test/Unit/Model/Config/DataTest.php | 2 +- .../Sales/Test/Unit/Model/Config/ReaderTest.php | 2 +- .../Test/Unit/Model/Config/SchemaLocatorTest.php | 2 +- .../Unit/Model/Config/Source/Order/StatusTest.php | 2 +- .../Sales/Test/Unit/Model/Config/XsdTest.php | 2 +- .../Model/Config/_files/core_totals_config.php | 2 +- .../Model/Config/_files/custom_totals_config.php | 2 +- .../Unit/Model/Config/_files/sales_invalid.xml | 2 +- .../Config/_files/sales_invalid_duplicates.xml | 2 +- .../Config/_files/sales_invalid_root_node.xml | 2 +- .../Model/Config/_files/sales_invalid_scope.xml | 2 +- .../_files/sales_invalid_without_attributes.xml | 2 +- .../Test/Unit/Model/Config/_files/sales_valid.xml | 2 +- .../Magento/Sales/Test/Unit/Model/ConfigTest.php | 2 +- .../AggregateSalesReportBestsellersDataTest.php | 2 +- .../AggregateSalesReportInvoicedDataTest.php | 2 +- .../CronJob/AggregateSalesReportOrderDataTest.php | 2 +- .../AggregateSalesReportRefundedDataTest.php | 2 +- .../Unit/Model/CronJob/CleanExpiredOrdersTest.php | 2 +- .../Magento/Sales/Test/Unit/Model/DownloadTest.php | 2 +- .../Test/Unit/Model/EmailSenderHandlerTest.php | 2 +- .../Model/Grid/Child/CollectionUpdaterTest.php | 2 +- .../Test/Unit/Model/Grid/CollectionUpdaterTest.php | 2 +- .../Sales/Test/Unit/Model/GridAsyncInsertTest.php | 2 +- .../Sales/Test/Unit/Model/IncrementTest.php | 2 +- .../Sales/Test/Unit/Model/InvoiceOrderTest.php | 2 +- .../Test/Unit/Model/InvoiceRepositoryTest.php | 2 +- .../Test/Unit/Model/Order/Address/RendererTest.php | 2 +- .../Unit/Model/Order/Address/ValidatorTest.php | 2 +- .../Unit/Model/Order/AddressRepositoryTest.php | 2 +- .../Sales/Test/Unit/Model/Order/AddressTest.php | 2 +- .../Sales/Test/Unit/Model/Order/Admin/ItemTest.php | 2 +- .../Sales/Test/Unit/Model/Order/ConfigTest.php | 2 +- .../Order/Creditmemo/Comment/ValidatorTest.php | 2 +- .../Validation/CreateQuantityValidatorTest.php | 2 +- .../Test/Unit/Model/Order/Creditmemo/ItemTest.php | 2 +- .../Model/Order/Creditmemo/RefundOperationTest.php | 2 +- .../Order/Creditmemo/Sender/EmailSenderTest.php | 2 +- .../Unit/Model/Order/Creditmemo/Total/CostTest.php | 2 +- .../Model/Order/Creditmemo/Total/DiscountTest.php | 2 +- .../Model/Order/Creditmemo/Total/ShippingTest.php | 2 +- .../Model/Order/Creditmemo/Total/SubtotalTest.php | 2 +- .../Unit/Model/Order/Creditmemo/Total/TaxTest.php | 2 +- .../Validation/QuantityValidatorTest.php | 2 +- .../Model/Order/CreditmemoDocumentFactoryTest.php | 2 +- .../Unit/Model/Order/CreditmemoNotifierTest.php | 2 +- .../Unit/Model/Order/CreditmemoRepositoryTest.php | 2 +- .../Sales/Test/Unit/Model/Order/CreditmemoTest.php | 2 +- .../Unit/Model/Order/CustomerManagementTest.php | 2 +- .../Container/CreditmemoCommentIdentityTest.php | 2 +- .../Email/Container/CreditmemoIdentityTest.php | 2 +- .../Email/Container/InvoiceCommentIdentityTest.php | 2 +- .../Order/Email/Container/InvoiceIdentityTest.php | 2 +- .../Email/Container/OrderCommentIdentityTest.php | 2 +- .../Order/Email/Container/OrderIdentityTest.php | 2 +- .../Container/ShipmentCommentIdentityTest.php | 2 +- .../Order/Email/Container/ShipmentIdentityTest.php | 2 +- .../Model/Order/Email/Container/TemplateTest.php | 2 +- .../Order/Email/Sender/AbstractSenderTest.php | 2 +- .../Email/Sender/CreditmemoCommentSenderTest.php | 2 +- .../Order/Email/Sender/CreditmemoSenderTest.php | 2 +- .../Email/Sender/InvoiceCommentSenderTest.php | 2 +- .../Model/Order/Email/Sender/InvoiceSenderTest.php | 2 +- .../Order/Email/Sender/OrderCommentSenderTest.php | 2 +- .../Model/Order/Email/Sender/OrderSenderTest.php | 2 +- .../Email/Sender/ShipmentCommentSenderTest.php | 2 +- .../Order/Email/Sender/ShipmentSenderTest.php | 2 +- .../Unit/Model/Order/Email/SenderBuilderTest.php | 2 +- .../Order/Email/Stub/TransportInterfaceMock.php | 2 +- .../Order/Grid/Massaction/ItemsUpdaterTest.php | 2 +- .../Unit/Model/Order/Grid/Row/UrlGeneratorTest.php | 2 +- .../Model/Order/Invoice/Comment/ValidatorTest.php | 2 +- .../Order/Invoice/Grid/Row/UrlGeneratorTest.php | 2 +- .../Test/Unit/Model/Order/Invoice/ItemTest.php | 2 +- .../Unit/Model/Order/Invoice/PayOperationTest.php | 2 +- .../Model/Order/Invoice/Sender/EmailSenderTest.php | 2 +- .../Model/Order/Invoice/Total/ShippingTest.php | 2 +- .../Unit/Model/Order/Invoice/Total/TaxTest.php | 2 +- .../Order/Invoice/Validation/CanRefundTest.php | 2 +- .../Model/Order/InvoiceDocumentFactoryTest.php | 2 +- .../Test/Unit/Model/Order/InvoiceNotifierTest.php | 2 +- .../Model/Order/InvoiceQuantityValidatorTest.php | 2 +- .../Sales/Test/Unit/Model/Order/InvoiceTest.php | 2 +- .../Test/Unit/Model/Order/ItemRepositoryTest.php | 2 +- .../Sales/Test/Unit/Model/Order/ItemTest.php | 2 +- .../Test/Unit/Model/Order/Payment/InfoTest.php | 2 +- .../Payment/Operations/CaptureOperationTest.php | 2 +- .../Unit/Model/Order/Payment/RepositoryTest.php | 2 +- .../Order/Payment/State/AuthorizeCommandTest.php | 2 +- .../Order/Payment/State/CaptureCommandTest.php | 2 +- .../Model/Order/Payment/State/OrderCommandTest.php | 2 +- .../RegisterCaptureNotificationCommandTest.php | 2 +- .../Order/Payment/Transaction/BuilderTest.php | 2 +- .../Order/Payment/Transaction/ManagerTest.php | 2 +- .../Order/Payment/Transaction/RepositoryTest.php | 2 +- .../Unit/Model/Order/Payment/TransactionTest.php | 2 +- .../Test/Unit/Model/Order/PaymentAdapterTest.php | 2 +- .../Sales/Test/Unit/Model/Order/PaymentTest.php | 2 +- .../Test/Unit/Model/Order/Pdf/AbstractTest.php | 2 +- .../Unit/Model/Order/Pdf/Config/ConverterTest.php | 2 +- .../Unit/Model/Order/Pdf/Config/ReaderTest.php | 2 +- .../Model/Order/Pdf/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Model/Order/Pdf/Config/XsdTest.php | 2 +- .../Model/Order/Pdf/Config/_files/pdf_merged.php | 2 +- .../Model/Order/Pdf/Config/_files/pdf_merged.xml | 2 +- .../Unit/Model/Order/Pdf/Config/_files/pdf_one.xml | 2 +- .../Unit/Model/Order/Pdf/Config/_files/pdf_two.xml | 2 +- .../Sales/Test/Unit/Model/Order/Pdf/ConfigTest.php | 2 +- .../Test/Unit/Model/Order/Pdf/InvoiceTest.php | 2 +- .../Unit/Model/Order/Pdf/Total/FactoryTest.php | 2 +- .../Model/Order/Shipment/Comment/ValidatorTest.php | 2 +- .../Model/Order/Shipment/OrderRegistrarTest.php | 2 +- .../Order/Shipment/Sender/EmailSenderTest.php | 2 +- .../Model/Order/Shipment/Track/ValidatorTest.php | 2 +- .../Test/Unit/Model/Order/Shipment/TrackTest.php | 2 +- .../Shipment/Validation/QuantityValidatorTest.php | 2 +- .../Shipment/Validation/TrackValidatorTest.php | 2 +- .../Model/Order/ShipmentDocumentFactoryTest.php | 2 +- .../Test/Unit/Model/Order/ShipmentFactoryTest.php | 2 +- .../Unit/Model/Order/ShipmentRepositoryTest.php | 2 +- .../Sales/Test/Unit/Model/Order/ShipmentTest.php | 2 +- .../Test/Unit/Model/Order/StateResolverTest.php | 2 +- .../Model/Order/Status/History/ValidatorTest.php | 2 +- .../Test/Unit/Model/Order/Status/HistoryTest.php | 2 +- .../Test/Unit/Model/Order/StatusResolverTest.php | 2 +- .../Sales/Test/Unit/Model/Order/StatusTest.php | 2 +- .../Unit/Model/Order/Total/Config/BaseTest.php | 2 +- .../Unit/Model/Order/Validation/CanInvoiceTest.php | 2 +- .../Unit/Model/Order/Validation/CanRefundTest.php | 2 +- .../Unit/Model/Order/Validation/CanShipTest.php | 2 +- .../Unit/Model/OrderIncrementIdCheckerTest.php | 2 +- .../Sales/Test/Unit/Model/OrderNotifierTest.php | 2 +- .../Sales/Test/Unit/Model/OrderRepositoryTest.php | 2 +- .../Magento/Sales/Test/Unit/Model/OrderTest.php | 2 +- .../Sales/Test/Unit/Model/RefundInvoiceTest.php | 2 +- .../Sales/Test/Unit/Model/RefundOrderTest.php | 2 +- .../Unit/Model/ResourceModel/AttributeTest.php | 2 +- .../Test/Unit/Model/ResourceModel/GridPoolTest.php | 2 +- .../Test/Unit/Model/ResourceModel/HelperTest.php | 2 +- .../Unit/Model/ResourceModel/Order/AddressTest.php | 2 +- .../ResourceModel/Order/Creditmemo/CommentTest.php | 2 +- .../Order/Creditmemo/Relation/RefundTest.php | 2 +- .../Order/Creditmemo/RelationTest.php | 2 +- .../ResourceModel/Order/Handler/AddressTest.php | 2 +- .../ResourceModel/Order/Handler/StateTest.php | 2 +- .../ResourceModel/Order/Invoice/CommentTest.php | 2 +- .../ResourceModel/Order/Invoice/RelationTest.php | 2 +- .../Model/ResourceModel/Order/RelationTest.php | 2 +- .../ResourceModel/Order/Shipment/CommentTest.php | 2 +- .../ResourceModel/Order/Shipment/RelationTest.php | 2 +- .../ResourceModel/Order/Shipment/TrackTest.php | 2 +- .../Order/Status/History/CollectionTest.php | 2 +- .../ResourceModel/Order/Status/HistoryTest.php | 2 +- .../Unit/Model/ResourceModel/Order/StatusTest.php | 2 +- .../Model/ResourceModel/Order/Tax/ItemTest.php | 2 +- .../Test/Unit/Model/ResourceModel/OrderTest.php | 2 +- .../Sales/Test/Unit/Model/Rss/NewOrderTest.php | 2 +- .../Sales/Test/Unit/Model/Rss/OrderStatusTest.php | 2 +- .../Unit/Model/Service/CreditmemoServiceTest.php | 2 +- .../Test/Unit/Model/Service/InvoiceServiceTest.php | 2 +- .../Test/Unit/Model/Service/OrderServiceTest.php | 2 +- .../Unit/Model/Service/ShipmentServiceTest.php | 2 +- .../Sales/Test/Unit/Model/ShipOrderTest.php | 2 +- .../Test/Unit/Model/Status/ListStatusTest.php | 2 +- .../Unit/Observer/Backend/CatalogPriceRuleTest.php | 2 +- .../CatalogProductSaveAfterObserverTest.php | 2 +- .../Backend/SubtractQtyFromQuotesObserverTest.php | 2 +- .../AddVatRequestParamsOrderCommentTest.php | 2 +- .../Frontend/RestoreCustomerGroupIdTest.php | 2 +- .../Unit/Observer/GridProcessAddressChangeTest.php | 2 +- .../Unit/Observer/GridSyncInsertObserverTest.php | 2 +- .../Unit/Observer/GridSyncRemoveObserverTest.php | 2 +- .../Ui/Component/DataProvider/DocumentTest.php | 2 +- .../Ui/Component/Listing/Column/AddressTest.php | 2 +- .../Component/Listing/Column/CustomerGroupTest.php | 2 +- .../Component/Listing/Column/PaymentMethodTest.php | 2 +- .../Unit/Ui/Component/Listing/Column/PriceTest.php | 2 +- .../Listing/Column/PurchasedPriceTest.php | 2 +- .../Listing/Column/Status/OptionsTest.php | 2 +- .../Ui/Component/Listing/Column/StatusTest.php | 2 +- .../Ui/Component/Listing/Column/ViewActionTest.php | 2 +- .../Sales/Ui/Component/Control/PdfAction.php | 2 +- .../Sales/Ui/Component/DataProvider/Document.php | 2 +- .../Sales/Ui/Component/Listing/Column/Address.php | 2 +- .../Component/Listing/Column/Creditmemo/State.php | 2 +- .../Listing/Column/Creditmemo/State/Options.php | 2 +- .../Ui/Component/Listing/Column/CustomerGroup.php | 2 +- .../Ui/Component/Listing/Column/Invoice/State.php | 2 +- .../Listing/Column/Invoice/State/Options.php | 2 +- .../Ui/Component/Listing/Column/PaymentMethod.php | 2 +- .../Sales/Ui/Component/Listing/Column/Price.php | 2 +- .../Ui/Component/Listing/Column/PurchasedPrice.php | 2 +- .../Sales/Ui/Component/Listing/Column/Status.php | 2 +- .../Ui/Component/Listing/Column/Status/Options.php | 2 +- .../Ui/Component/Listing/Column/ViewAction.php | 2 +- app/code/Magento/Sales/etc/acl.xml | 2 +- app/code/Magento/Sales/etc/adminhtml/di.xml | 2 +- app/code/Magento/Sales/etc/adminhtml/events.xml | 2 +- app/code/Magento/Sales/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Sales/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Sales/etc/adminhtml/system.xml | 2 +- app/code/Magento/Sales/etc/catalog_attributes.xml | 2 +- app/code/Magento/Sales/etc/config.xml | 2 +- app/code/Magento/Sales/etc/crontab.xml | 2 +- app/code/Magento/Sales/etc/di.xml | 2 +- app/code/Magento/Sales/etc/email_templates.xml | 2 +- app/code/Magento/Sales/etc/events.xml | 2 +- .../Magento/Sales/etc/extension_attributes.xml | 2 +- app/code/Magento/Sales/etc/fieldset.xml | 2 +- app/code/Magento/Sales/etc/frontend/di.xml | 2 +- app/code/Magento/Sales/etc/frontend/events.xml | 2 +- app/code/Magento/Sales/etc/frontend/page_types.xml | 2 +- app/code/Magento/Sales/etc/frontend/routes.xml | 2 +- app/code/Magento/Sales/etc/frontend/sections.xml | 2 +- app/code/Magento/Sales/etc/module.xml | 2 +- app/code/Magento/Sales/etc/pdf.xml | 2 +- app/code/Magento/Sales/etc/pdf.xsd | 2 +- app/code/Magento/Sales/etc/pdf_file.xsd | 2 +- app/code/Magento/Sales/etc/resources.xml | 2 +- app/code/Magento/Sales/etc/sales.xml | 2 +- app/code/Magento/Sales/etc/sales.xsd | 2 +- app/code/Magento/Sales/etc/webapi.xml | 2 +- app/code/Magento/Sales/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Sales/etc/webapi_rest/events.xml | 2 +- app/code/Magento/Sales/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Sales/etc/webapi_soap/events.xml | 2 +- app/code/Magento/Sales/etc/widget.xml | 2 +- app/code/Magento/Sales/registration.php | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../layout/sales_creditmemo_exportcsv.xml | 2 +- .../layout/sales_creditmemo_exportexcel.xml | 2 +- .../adminhtml/layout/sales_creditmemo_grid.xml | 2 +- .../adminhtml/layout/sales_creditmemo_index.xml | 2 +- .../layout/sales_creditmemo_item_price.xml | 2 +- .../adminhtml/layout/sales_invoice_exportcsv.xml | 2 +- .../adminhtml/layout/sales_invoice_exportexcel.xml | 2 +- .../view/adminhtml/layout/sales_invoice_grid.xml | 2 +- .../view/adminhtml/layout/sales_invoice_index.xml | 2 +- .../adminhtml/layout/sales_invoice_item_price.xml | 2 +- .../adminhtml/layout/sales_order_addcomment.xml | 2 +- .../view/adminhtml/layout/sales_order_address.xml | 2 +- .../layout/sales_order_create_customer_block.xml | 2 +- .../adminhtml/layout/sales_order_create_index.xml | 2 +- .../layout/sales_order_create_item_price.xml | 2 +- ...les_order_create_load_block_billing_address.xml | 2 +- ...ales_order_create_load_block_billing_method.xml | 2 +- .../sales_order_create_load_block_comment.xml | 2 +- ...sales_order_create_load_block_customer_grid.xml | 2 +- .../layout/sales_order_create_load_block_data.xml | 2 +- .../sales_order_create_load_block_form_account.xml | 2 +- .../sales_order_create_load_block_giftmessage.xml | 2 +- .../sales_order_create_load_block_header.xml | 2 +- .../layout/sales_order_create_load_block_items.xml | 2 +- .../layout/sales_order_create_load_block_json.xml | 2 +- .../sales_order_create_load_block_message.xml | 2 +- .../sales_order_create_load_block_newsletter.xml | 2 +- .../layout/sales_order_create_load_block_plain.xml | 2 +- .../sales_order_create_load_block_search.xml | 2 +- .../sales_order_create_load_block_search_grid.xml | 2 +- ...es_order_create_load_block_shipping_address.xml | 2 +- ...les_order_create_load_block_shipping_method.xml | 2 +- .../sales_order_create_load_block_sidebar.xml | 2 +- .../sales_order_create_load_block_sidebar_cart.xml | 2 +- ...es_order_create_load_block_sidebar_compared.xml | 2 +- ...s_order_create_load_block_sidebar_pcompared.xml | 2 +- ...les_order_create_load_block_sidebar_pviewed.xml | 2 +- ...les_order_create_load_block_sidebar_reorder.xml | 2 +- ...ales_order_create_load_block_sidebar_viewed.xml | 2 +- ...es_order_create_load_block_sidebar_wishlist.xml | 2 +- .../sales_order_create_load_block_totals.xml | 2 +- .../layout/sales_order_creditmemo_addcomment.xml | 2 +- .../layout/sales_order_creditmemo_grid_block.xml | 2 +- .../layout/sales_order_creditmemo_new.xml | 2 +- .../layout/sales_order_creditmemo_updateqty.xml | 2 +- .../layout/sales_order_creditmemo_view.xml | 2 +- .../adminhtml/layout/sales_order_creditmemos.xml | 2 +- .../adminhtml/layout/sales_order_edit_index.xml | 2 +- .../adminhtml/layout/sales_order_exportcsv.xml | 2 +- .../adminhtml/layout/sales_order_exportexcel.xml | 2 +- .../view/adminhtml/layout/sales_order_grid.xml | 2 +- .../view/adminhtml/layout/sales_order_index.xml | 2 +- .../layout/sales_order_invoice_addcomment.xml | 2 +- .../layout/sales_order_invoice_grid_block.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../layout/sales_order_invoice_updateqty.xml | 2 +- .../adminhtml/layout/sales_order_invoice_view.xml | 2 +- .../view/adminhtml/layout/sales_order_invoices.xml | 2 +- .../adminhtml/layout/sales_order_item_price.xml | 2 +- .../layout/sales_order_shipment_grid_block.xml | 2 +- .../adminhtml/layout/sales_order_shipments.xml | 2 +- .../adminhtml/layout/sales_order_status_assign.xml | 2 +- .../adminhtml/layout/sales_order_status_edit.xml | 2 +- .../adminhtml/layout/sales_order_status_index.xml | 2 +- .../adminhtml/layout/sales_order_status_new.xml | 2 +- .../adminhtml/layout/sales_order_transactions.xml | 2 +- .../layout/sales_order_transactions_grid_block.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../adminhtml/layout/sales_shipment_exportcsv.xml | 2 +- .../layout/sales_shipment_exportexcel.xml | 2 +- .../view/adminhtml/layout/sales_shipment_index.xml | 2 +- .../layout/sales_transaction_child_block.xml | 2 +- .../adminhtml/layout/sales_transactions_grid.xml | 2 +- .../layout/sales_transactions_grid_block.xml | 2 +- .../adminhtml/layout/sales_transactions_index.xml | 2 +- .../adminhtml/layout/sales_transactions_view.xml | 2 +- .../Sales/view/adminhtml/requirejs-config.js | 2 +- .../adminhtml/templates/items/column/name.phtml | 2 +- .../adminhtml/templates/items/column/qty.phtml | 2 +- .../view/adminhtml/templates/items/price/row.phtml | 2 +- .../adminhtml/templates/items/price/total.phtml | 2 +- .../adminhtml/templates/items/price/unit.phtml | 2 +- .../templates/items/renderer/default.phtml | 2 +- .../adminhtml/templates/order/address/form.phtml | 2 +- .../adminhtml/templates/order/comments/view.phtml | 2 +- .../templates/order/create/abstract.phtml | 2 +- .../order/create/billing/method/form.phtml | 2 +- .../adminhtml/templates/order/create/comment.phtml | 2 +- .../templates/order/create/coupons/form.phtml | 2 +- .../adminhtml/templates/order/create/data.phtml | 2 +- .../adminhtml/templates/order/create/form.phtml | 2 +- .../templates/order/create/form/account.phtml | 2 +- .../templates/order/create/form/address.phtml | 2 +- .../templates/order/create/giftmessage.phtml | 2 +- .../adminhtml/templates/order/create/items.phtml | 2 +- .../templates/order/create/items/grid.phtml | 2 +- .../templates/order/create/items/price/row.phtml | 2 +- .../templates/order/create/items/price/total.phtml | 2 +- .../templates/order/create/items/price/unit.phtml | 2 +- .../view/adminhtml/templates/order/create/js.phtml | 2 +- .../templates/order/create/newsletter/form.phtml | 2 +- .../order/create/shipping/method/form.phtml | 2 +- .../adminhtml/templates/order/create/sidebar.phtml | 2 +- .../templates/order/create/sidebar/items.phtml | 2 +- .../templates/order/create/store/select.phtml | 2 +- .../adminhtml/templates/order/create/totals.phtml | 2 +- .../templates/order/create/totals/default.phtml | 2 +- .../templates/order/create/totals/grandtotal.phtml | 2 +- .../templates/order/create/totals/shipping.phtml | 2 +- .../templates/order/create/totals/subtotal.phtml | 2 +- .../templates/order/create/totals/tax.phtml | 2 +- .../templates/order/creditmemo/create/form.phtml | 2 +- .../templates/order/creditmemo/create/items.phtml | 2 +- .../creditmemo/create/items/renderer/default.phtml | 2 +- .../creditmemo/create/totals/adjustments.phtml | 2 +- .../templates/order/creditmemo/view/form.phtml | 2 +- .../templates/order/creditmemo/view/items.phtml | 2 +- .../creditmemo/view/items/renderer/default.phtml | 2 +- .../view/adminhtml/templates/order/details.phtml | 2 +- .../adminhtml/templates/order/giftoptions.phtml | 2 +- .../templates/order/invoice/create/form.phtml | 2 +- .../templates/order/invoice/create/items.phtml | 2 +- .../invoice/create/items/renderer/default.phtml | 2 +- .../templates/order/invoice/view/form.phtml | 2 +- .../templates/order/invoice/view/items.phtml | 2 +- .../invoice/view/items/renderer/default.phtml | 2 +- .../view/adminhtml/templates/order/totalbar.phtml | 2 +- .../view/adminhtml/templates/order/totals.phtml | 2 +- .../templates/order/totals/discount.phtml | 2 +- .../adminhtml/templates/order/totals/due.phtml | 2 +- .../adminhtml/templates/order/totals/footer.phtml | 2 +- .../adminhtml/templates/order/totals/grand.phtml | 2 +- .../adminhtml/templates/order/totals/item.phtml | 2 +- .../adminhtml/templates/order/totals/main.phtml | 2 +- .../adminhtml/templates/order/totals/paid.phtml | 2 +- .../templates/order/totals/refunded.phtml | 2 +- .../templates/order/totals/shipping.phtml | 2 +- .../adminhtml/templates/order/totals/tax.phtml | 2 +- .../view/adminhtml/templates/order/view/form.phtml | 2 +- .../templates/order/view/giftmessage.phtml | 2 +- .../adminhtml/templates/order/view/history.phtml | 2 +- .../view/adminhtml/templates/order/view/info.phtml | 2 +- .../adminhtml/templates/order/view/items.phtml | 2 +- .../order/view/items/renderer/default.phtml | 2 +- .../templates/order/view/tab/history.phtml | 2 +- .../adminhtml/templates/order/view/tab/info.phtml | 2 +- .../adminhtml/templates/page/js/components.phtml | 2 +- .../adminhtml/templates/rss/order/grid/link.phtml | 2 +- .../adminhtml/templates/transactions/detail.phtml | 2 +- .../ui_component/sales_order_creditmemo_grid.xml | 2 +- .../adminhtml/ui_component/sales_order_grid.xml | 2 +- .../ui_component/sales_order_invoice_grid.xml | 2 +- .../ui_component/sales_order_shipment_grid.xml | 2 +- .../sales_order_view_creditmemo_grid.xml | 2 +- .../ui_component/sales_order_view_invoice_grid.xml | 2 +- .../sales_order_view_shipment_grid.xml | 2 +- .../web/js/bootstrap/order-create-index.js | 2 +- .../web/js/bootstrap/order-post-action.js | 2 +- .../Sales/view/adminhtml/web/order/create/form.js | 2 +- .../view/adminhtml/web/order/create/giftmessage.js | 2 +- .../view/adminhtml/web/order/create/scripts.js | 2 +- .../Sales/view/adminhtml/web/order/edit/message.js | 2 +- .../adminhtml/web/order/giftoptions_tooltip.js | 2 +- .../view/adminhtml/web/order/view/post-wrapper.js | 2 +- .../Sales/view/frontend/email/creditmemo_new.html | 2 +- .../view/frontend/email/creditmemo_new_guest.html | 2 +- .../view/frontend/email/creditmemo_update.html | 2 +- .../frontend/email/creditmemo_update_guest.html | 2 +- .../Sales/view/frontend/email/invoice_new.html | 2 +- .../view/frontend/email/invoice_new_guest.html | 2 +- .../Sales/view/frontend/email/invoice_update.html | 2 +- .../view/frontend/email/invoice_update_guest.html | 2 +- .../Sales/view/frontend/email/order_new.html | 2 +- .../Sales/view/frontend/email/order_new_guest.html | 2 +- .../Sales/view/frontend/email/order_update.html | 2 +- .../view/frontend/email/order_update_guest.html | 2 +- .../Sales/view/frontend/email/shipment_new.html | 2 +- .../view/frontend/email/shipment_new_guest.html | 2 +- .../Sales/view/frontend/email/shipment_update.html | 2 +- .../view/frontend/email/shipment_update_guest.html | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../frontend/layout/customer_account_index.xml | 2 +- .../Magento/Sales/view/frontend/layout/default.xml | 2 +- .../frontend/layout/sales_email_item_price.xml | 2 +- .../layout/sales_email_order_creditmemo_items.xml | 2 +- .../sales_email_order_creditmemo_renderers.xml | 2 +- .../layout/sales_email_order_invoice_items.xml | 2 +- .../layout/sales_email_order_invoice_renderers.xml | 2 +- .../frontend/layout/sales_email_order_items.xml | 2 +- .../layout/sales_email_order_renderers.xml | 2 +- .../layout/sales_email_order_shipment_items.xml | 2 +- .../sales_email_order_shipment_renderers.xml | 2 +- .../frontend/layout/sales_guest_creditmemo.xml | 2 +- .../view/frontend/layout/sales_guest_form.xml | 2 +- .../view/frontend/layout/sales_guest_invoice.xml | 2 +- .../view/frontend/layout/sales_guest_print.xml | 2 +- .../layout/sales_guest_printcreditmemo.xml | 2 +- .../frontend/layout/sales_guest_printinvoice.xml | 2 +- .../frontend/layout/sales_guest_printshipment.xml | 2 +- .../view/frontend/layout/sales_guest_reorder.xml | 2 +- .../view/frontend/layout/sales_guest_shipment.xml | 2 +- .../view/frontend/layout/sales_guest_view.xml | 2 +- .../frontend/layout/sales_order_creditmemo.xml | 2 +- .../layout/sales_order_creditmemo_renderers.xml | 2 +- .../layout/sales_order_guest_info_links.xml | 2 +- .../view/frontend/layout/sales_order_history.xml | 2 +- .../frontend/layout/sales_order_info_links.xml | 2 +- .../view/frontend/layout/sales_order_invoice.xml | 2 +- .../layout/sales_order_invoice_renderers.xml | 2 +- .../frontend/layout/sales_order_item_price.xml | 2 +- .../frontend/layout/sales_order_item_renderers.xml | 2 +- .../view/frontend/layout/sales_order_print.xml | 2 +- .../sales_order_print_creditmemo_renderers.xml | 2 +- .../layout/sales_order_print_invoice_renderers.xml | 2 +- .../layout/sales_order_print_renderers.xml | 2 +- .../sales_order_print_shipment_renderers.xml | 2 +- .../layout/sales_order_printcreditmemo.xml | 2 +- .../frontend/layout/sales_order_printinvoice.xml | 2 +- .../frontend/layout/sales_order_printshipment.xml | 2 +- .../view/frontend/layout/sales_order_reorder.xml | 2 +- .../view/frontend/layout/sales_order_shipment.xml | 2 +- .../layout/sales_order_shipment_renderers.xml | 2 +- .../view/frontend/layout/sales_order_view.xml | 2 +- .../Sales/view/frontend/requirejs-config.js | 2 +- .../templates/email/creditmemo/items.phtml | 2 +- .../frontend/templates/email/invoice/items.phtml | 2 +- .../view/frontend/templates/email/items.phtml | 2 +- .../templates/email/items/creditmemo/default.phtml | 2 +- .../templates/email/items/invoice/default.phtml | 2 +- .../templates/email/items/order/default.phtml | 2 +- .../frontend/templates/email/items/price/row.phtml | 2 +- .../templates/email/items/shipment/default.phtml | 2 +- .../frontend/templates/email/shipment/items.phtml | 2 +- .../frontend/templates/email/shipment/track.phtml | 2 +- .../Sales/view/frontend/templates/guest/form.phtml | 2 +- .../view/frontend/templates/items/price/row.phtml | 2 +- .../items/price/total_after_discount.phtml | 2 +- .../view/frontend/templates/items/price/unit.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../view/frontend/templates/order/comments.phtml | 2 +- .../view/frontend/templates/order/creditmemo.phtml | 2 +- .../templates/order/creditmemo/items.phtml | 2 +- .../order/creditmemo/items/renderer/default.phtml | 2 +- .../view/frontend/templates/order/history.phtml | 2 +- .../Sales/view/frontend/templates/order/info.phtml | 2 +- .../frontend/templates/order/info/buttons.phtml | 2 +- .../templates/order/info/buttons/rss.phtml | 2 +- .../view/frontend/templates/order/invoice.phtml | 2 +- .../frontend/templates/order/invoice/items.phtml | 2 +- .../order/invoice/items/renderer/default.phtml | 2 +- .../view/frontend/templates/order/items.phtml | 2 +- .../templates/order/items/renderer/default.phtml | 2 +- .../frontend/templates/order/order_comments.phtml | 2 +- .../view/frontend/templates/order/order_date.phtml | 2 +- .../frontend/templates/order/order_status.phtml | 2 +- .../templates/order/print/creditmemo.phtml | 2 +- .../frontend/templates/order/print/invoice.phtml | 2 +- .../frontend/templates/order/print/shipment.phtml | 2 +- .../view/frontend/templates/order/recent.phtml | 2 +- .../order/shipment/items/renderer/default.phtml | 2 +- .../view/frontend/templates/order/totals.phtml | 2 +- .../Sales/view/frontend/templates/order/view.phtml | 2 +- .../view/frontend/templates/reorder/sidebar.phtml | 2 +- .../frontend/templates/widget/guest/form.phtml | 2 +- .../Sales/view/frontend/web/gift-message.js | 2 +- .../frontend/web/js/view/last-ordered-items.js | 2 +- .../Sales/view/frontend/web/orders-returns.js | 2 +- .../SalesInventory/Model/Order/ReturnProcessor.php | 2 +- .../SalesInventory/Model/Order/ReturnValidator.php | 2 +- .../Model/Plugin/Order/ReturnToStockInvoice.php | 2 +- .../Model/Plugin/Order/ReturnToStockOrder.php | 2 +- .../Validation/InvoiceRefundCreationArguments.php | 2 +- .../Validation/OrderRefundCreationArguments.php | 2 +- .../Test/Unit/Model/Order/ReturnProcessorTest.php | 2 +- .../Test/Unit/Model/Order/ReturnValidatorTest.php | 2 +- .../Plugin/Order/ReturnToStockInvoiceTest.php | 2 +- .../Model/Plugin/Order/ReturnToStockOrderTest.php | 2 +- .../InvoiceRefundCreationArgumentsTest.php | 2 +- .../OrderRefundCreationArgumentsTest.php | 2 +- app/code/Magento/SalesInventory/etc/di.xml | 2 +- .../SalesInventory/etc/extension_attributes.xml | 2 +- app/code/Magento/SalesInventory/etc/module.xml | 2 +- app/code/Magento/SalesInventory/registration.php | 2 +- .../SalesRule/Api/CouponManagementInterface.php | 2 +- .../SalesRule/Api/CouponRepositoryInterface.php | 2 +- .../SalesRule/Api/Data/ConditionInterface.php | 2 +- .../Api/Data/CouponGenerationSpecInterface.php | 2 +- .../Magento/SalesRule/Api/Data/CouponInterface.php | 2 +- .../Api/Data/CouponMassDeleteResultInterface.php | 2 +- .../Api/Data/CouponSearchResultInterface.php | 2 +- .../Magento/SalesRule/Api/Data/RuleInterface.php | 2 +- .../SalesRule/Api/Data/RuleLabelInterface.php | 2 +- .../Api/Data/RuleSearchResultInterface.php | 2 +- .../SalesRule/Api/RuleRepositoryInterface.php | 2 +- .../SalesRule/Block/Adminhtml/Promo/Quote.php | 2 +- .../Adminhtml/Promo/Quote/Edit/DeleteButton.php | 2 +- .../Adminhtml/Promo/Quote/Edit/GenericButton.php | 2 +- .../Adminhtml/Promo/Quote/Edit/ResetButton.php | 2 +- .../Promo/Quote/Edit/SaveAndContinueButton.php | 2 +- .../Adminhtml/Promo/Quote/Edit/SaveButton.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Tab/Actions.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Tab/Conditions.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Tab/Coupons.php | 2 +- .../Promo/Quote/Edit/Tab/Coupons/Form.php | 2 +- .../Promo/Quote/Edit/Tab/Coupons/Grid.php | 2 +- .../Edit/Tab/Coupons/Grid/Column/Renderer/Used.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Tab/Labels.php | 2 +- .../Block/Adminhtml/Promo/Widget/Chooser.php | 2 +- app/code/Magento/SalesRule/Block/Rss/Discounts.php | 2 +- .../Block/Widget/Form/Element/Dependence.php | 2 +- .../SalesRule/Controller/Adminhtml/Promo/Quote.php | 2 +- .../Adminhtml/Promo/Quote/ApplyRules.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Chooser.php | 2 +- .../Adminhtml/Promo/Quote/CouponsGrid.php | 2 +- .../Adminhtml/Promo/Quote/CouponsMassDelete.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Delete.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Edit.php | 2 +- .../Adminhtml/Promo/Quote/ExportCouponsCsv.php | 2 +- .../Adminhtml/Promo/Quote/ExportCouponsXml.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Generate.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Index.php | 2 +- .../Controller/Adminhtml/Promo/Quote/NewAction.php | 2 +- .../Adminhtml/Promo/Quote/NewActionHtml.php | 2 +- .../Adminhtml/Promo/Quote/NewConditionHtml.php | 2 +- .../Controller/Adminhtml/Promo/Quote/Save.php | 2 +- .../Cron/AggregateSalesReportCouponsData.php | 2 +- app/code/Magento/SalesRule/Helper/Coupon.php | 2 +- .../SalesRule/Model/Converter/ToDataModel.php | 2 +- .../Magento/SalesRule/Model/Converter/ToModel.php | 2 +- app/code/Magento/SalesRule/Model/Coupon.php | 2 +- .../SalesRule/Model/Coupon/Codegenerator.php | 2 +- .../Model/Coupon/CodegeneratorInterface.php | 2 +- .../SalesRule/Model/Coupon/Massgenerator.php | 2 +- .../Magento/SalesRule/Model/CouponRepository.php | 2 +- .../Magento/SalesRule/Model/Data/Condition.php | 2 +- .../SalesRule/Model/Data/CouponGenerationSpec.php | 2 +- .../Model/Data/CouponMassDeleteResult.php | 2 +- app/code/Magento/SalesRule/Model/Data/Rule.php | 2 +- .../Magento/SalesRule/Model/Data/RuleLabel.php | 2 +- .../Magento/SalesRule/Model/DeltaPriceRound.php | 2 +- .../Model/Plugin/QuoteConfigProductAttributes.php | 2 +- .../SalesRule/Model/Plugin/ResourceModel/Rule.php | 2 +- app/code/Magento/SalesRule/Model/Plugin/Rule.php | 2 +- .../Magento/SalesRule/Model/Quote/Discount.php | 2 +- .../Magento/SalesRule/Model/RegistryConstants.php | 2 +- .../SalesRule/Model/ResourceModel/Coupon.php | 2 +- .../Model/ResourceModel/Coupon/Collection.php | 2 +- .../SalesRule/Model/ResourceModel/Coupon/Usage.php | 2 +- .../SalesRule/Model/ResourceModel/ReadHandler.php | 2 +- .../Model/ResourceModel/Report/Collection.php | 2 +- .../SalesRule/Model/ResourceModel/Report/Rule.php | 2 +- .../Model/ResourceModel/Report/Rule/Createdat.php | 2 +- .../Model/ResourceModel/Report/Rule/Updatedat.php | 2 +- .../ResourceModel/Report/Updatedat/Collection.php | 2 +- .../Magento/SalesRule/Model/ResourceModel/Rule.php | 2 +- .../Model/ResourceModel/Rule/Collection.php | 2 +- .../Model/ResourceModel/Rule/Customer.php | 2 +- .../ResourceModel/Rule/Customer/Collection.php | 2 +- .../Model/ResourceModel/Rule/DateApplier.php | 2 +- .../Model/ResourceModel/Rule/Quote/Collection.php | 2 +- .../SalesRule/Model/ResourceModel/SaveHandler.php | 2 +- app/code/Magento/SalesRule/Model/Rss/Discounts.php | 2 +- app/code/Magento/SalesRule/Model/Rule.php | 2 +- .../SalesRule/Model/Rule/Action/Collection.php | 2 +- .../Rule/Action/Discount/AbstractDiscount.php | 2 +- .../Model/Rule/Action/Discount/BuyXGetY.php | 2 +- .../Model/Rule/Action/Discount/ByFixed.php | 2 +- .../Model/Rule/Action/Discount/ByPercent.php | 2 +- .../Rule/Action/Discount/CalculatorFactory.php | 2 +- .../Model/Rule/Action/Discount/CartFixed.php | 2 +- .../SalesRule/Model/Rule/Action/Discount/Data.php | 2 +- .../Rule/Action/Discount/DiscountInterface.php | 2 +- .../Model/Rule/Action/Discount/ToFixed.php | 2 +- .../Model/Rule/Action/Discount/ToPercent.php | 2 +- .../SalesRule/Model/Rule/Action/Product.php | 2 +- .../SalesRule/Model/Rule/Condition/Address.php | 2 +- .../SalesRule/Model/Rule/Condition/Combine.php | 2 +- .../SalesRule/Model/Rule/Condition/Product.php | 2 +- .../Model/Rule/Condition/Product/Combine.php | 2 +- .../Model/Rule/Condition/Product/Found.php | 2 +- .../Model/Rule/Condition/Product/Subselect.php | 2 +- app/code/Magento/SalesRule/Model/Rule/Customer.php | 2 +- .../Magento/SalesRule/Model/Rule/DataProvider.php | 2 +- .../Model/Rule/Metadata/ValueProvider.php | 2 +- .../Magento/SalesRule/Model/RuleRepository.php | 2 +- app/code/Magento/SalesRule/Model/RulesApplier.php | 2 +- .../Model/Service/CouponManagementService.php | 2 +- .../Model/Spi/CouponResourceInterface.php | 2 +- .../Model/System/Config/Source/Coupon/Format.php | 2 +- app/code/Magento/SalesRule/Model/Utility.php | 2 +- app/code/Magento/SalesRule/Model/Validator.php | 2 +- .../Magento/SalesRule/Model/Validator/Pool.php | 2 +- .../Observer/AddSalesRuleNameToOrderObserver.php | 2 +- .../CatalogAttributeDeleteAfterObserver.php | 2 +- .../Observer/CatalogAttributeSaveAfterObserver.php | 2 +- .../Observer/CheckSalesRulesAvailability.php | 2 +- .../Observer/SalesOrderAfterPlaceObserver.php | 2 +- app/code/Magento/SalesRule/Setup/InstallData.php | 2 +- app/code/Magento/SalesRule/Setup/InstallSchema.php | 2 +- app/code/Magento/SalesRule/Setup/UpgradeSchema.php | 2 +- .../Promo/Quote/Edit/DeleteButtonTest.php | 2 +- .../Promo/Quote/Edit/GenericButtonTest.php | 2 +- .../Adminhtml/Promo/Quote/Edit/ResetButtonTest.php | 2 +- .../Promo/Quote/Edit/SaveAndContinueButtonTest.php | 2 +- .../Adminhtml/Promo/Quote/Edit/SaveButtonTest.php | 2 +- .../Test/Unit/Block/Rss/DiscountsTest.php | 2 +- .../Cron/AggregateSalesReportCouponsDataTest.php | 2 +- .../SalesRule/Test/Unit/Helper/CouponTest.php | 2 +- .../Test/Unit/Model/Converter/ToDataModelTest.php | 2 +- .../Test/Unit/Model/Converter/ToModelTest.php | 2 +- .../Test/Unit/Model/Coupon/CodegeneratorTest.php | 2 +- .../Test/Unit/Model/Coupon/MassgeneratorTest.php | 2 +- .../Test/Unit/Model/CouponRepositoryTest.php | 2 +- .../SalesRule/Test/Unit/Model/CouponTest.php | 2 +- .../Test/Unit/Model/DeltaPriceRoundTest.php | 2 +- .../Plugin/QuoteConfigProductAttributesTest.php | 2 +- .../Unit/Model/Plugin/ResourceModel/RuleTest.php | 2 +- .../SalesRule/Test/Unit/Model/Plugin/RuleTest.php | 2 +- .../Test/Unit/Model/Quote/DiscountTest.php | 2 +- .../Unit/Model/ResourceModel/ReadHandlerTest.php | 2 +- .../Model/ResourceModel/Report/CollectionTest.php | 2 +- .../Unit/Model/ResourceModel/Report/RuleTest.php | 2 +- .../Model/ResourceModel/Rule/DateApplierTest.php | 2 +- .../Test/Unit/Model/ResourceModel/RuleTest.php | 2 +- .../Unit/Model/ResourceModel/SaveHandlerTest.php | 2 +- .../Test/Unit/Model/Rss/DiscountsTest.php | 2 +- .../Model/Rule/Action/Discount/ByPercentTest.php | 2 +- .../Model/Rule/Action/Discount/CartFixedTest.php | 2 +- .../Model/Rule/Action/Discount/ToPercentTest.php | 2 +- .../Test/Unit/Model/Rule/Condition/AddressTest.php | 2 +- .../Test/Unit/Model/Rule/Condition/ProductTest.php | 2 +- .../Test/Unit/Model/Rule/DataProviderTest.php | 2 +- .../Unit/Model/Rule/Metadata/ValueProviderTest.php | 2 +- .../Unit/Model/Rule/Metadata/_files/MetaData.php | 2 +- .../Test/Unit/Model/RuleRepositoryTest.php | 2 +- .../Magento/SalesRule/Test/Unit/Model/RuleTest.php | 2 +- .../SalesRule/Test/Unit/Model/RulesApplierTest.php | 2 +- .../Model/Service/CouponManagementServiceTest.php | 2 +- .../System/Config/Source/Coupon/FormatTest.php | 2 +- .../SalesRule/Test/Unit/Model/UtilityTest.php | 2 +- .../Test/Unit/Model/Validator/PoolTest.php | 2 +- .../SalesRule/Test/Unit/Model/ValidatorTest.php | 2 +- .../Unit/Model/_files/quote_item_downloadable.php | 2 +- .../Test/Unit/Model/_files/quote_item_simple.php | 2 +- .../AddSalesRuleNameToOrderObserverTest.php | 2 +- .../CatalogAttributeDeleteAfterObserverTest.php | 2 +- .../CatalogAttributeSaveAfterObserverTest.php | 2 +- .../Observer/SalesOrderAfterPlaceObserverTest.php | 2 +- app/code/Magento/SalesRule/etc/acl.xml | 2 +- app/code/Magento/SalesRule/etc/adminhtml/di.xml | 2 +- .../Magento/SalesRule/etc/adminhtml/events.xml | 2 +- app/code/Magento/SalesRule/etc/adminhtml/menu.xml | 2 +- .../Magento/SalesRule/etc/adminhtml/routes.xml | 2 +- .../Magento/SalesRule/etc/adminhtml/system.xml | 2 +- app/code/Magento/SalesRule/etc/config.xml | 2 +- app/code/Magento/SalesRule/etc/crontab.xml | 2 +- app/code/Magento/SalesRule/etc/di.xml | 2 +- app/code/Magento/SalesRule/etc/events.xml | 2 +- app/code/Magento/SalesRule/etc/fieldset.xml | 2 +- app/code/Magento/SalesRule/etc/frontend/di.xml | 2 +- app/code/Magento/SalesRule/etc/module.xml | 2 +- app/code/Magento/SalesRule/etc/sales.xml | 2 +- app/code/Magento/SalesRule/etc/webapi.xml | 2 +- app/code/Magento/SalesRule/registration.php | 2 +- .../layout/sales_rule_promo_quote_couponsgrid.xml | 2 +- .../layout/sales_rule_promo_quote_edit.xml | 2 +- .../layout/sales_rule_promo_quote_index.xml | 2 +- .../adminhtml/templates/promo/salesrulejs.phtml | 2 +- .../view/adminhtml/templates/tab/coupons.phtml | 2 +- .../adminhtml/ui_component/sales_rule_form.xml | 2 +- .../view/base/web/js/form/element/coupon-type.js | 2 +- .../web/js/form/element/manage-coupon-codes.js | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../view/frontend/web/js/action/cancel-coupon.js | 2 +- .../view/frontend/web/js/action/set-coupon-code.js | 2 +- .../web/js/model/payment/discount-messages.js | 2 +- .../frontend/web/js/view/cart/totals/discount.js | 2 +- .../web/js/view/payment/discount-messages.js | 2 +- .../view/frontend/web/js/view/payment/discount.js | 2 +- .../view/frontend/web/js/view/summary/discount.js | 2 +- .../web/template/cart/totals/discount.html | 2 +- .../frontend/web/template/payment/discount.html | 2 +- .../frontend/web/template/summary/discount.html | 2 +- app/code/Magento/SalesSequence/Model/Builder.php | 2 +- app/code/Magento/SalesSequence/Model/Config.php | 2 +- .../Magento/SalesSequence/Model/EntityPool.php | 2 +- app/code/Magento/SalesSequence/Model/Manager.php | 2 +- app/code/Magento/SalesSequence/Model/Meta.php | 2 +- app/code/Magento/SalesSequence/Model/Profile.php | 2 +- .../SalesSequence/Model/ResourceModel/Meta.php | 2 +- .../SalesSequence/Model/ResourceModel/Profile.php | 2 +- app/code/Magento/SalesSequence/Model/Sequence.php | 2 +- .../Observer/SequenceCreatorObserver.php | 2 +- .../Magento/SalesSequence/Setup/InstallData.php | 2 +- .../Magento/SalesSequence/Setup/InstallSchema.php | 2 +- .../SalesSequence/Test/Unit/Model/BuilderTest.php | 2 +- .../SalesSequence/Test/Unit/Model/ManagerTest.php | 2 +- .../Test/Unit/Model/ResourceModel/MetaTest.php | 2 +- .../Test/Unit/Model/ResourceModel/ProfileTest.php | 2 +- .../SalesSequence/Test/Unit/Model/SequenceTest.php | 2 +- app/code/Magento/SalesSequence/etc/module.xml | 2 +- app/code/Magento/SalesSequence/registration.php | 2 +- .../Console/Command/SampleDataDeployCommand.php | 2 +- .../Console/Command/SampleDataRemoveCommand.php | 2 +- .../Console/Command/SampleDataResetCommand.php | 2 +- .../Magento/SampleData/Console/CommandList.php | 2 +- app/code/Magento/SampleData/Model/Dependency.php | 2 +- app/code/Magento/SampleData/Setup/InstallData.php | 2 +- .../Command/SampleDataDeployCommandTest.php | 2 +- app/code/Magento/SampleData/cli_commands.php | 2 +- app/code/Magento/SampleData/etc/di.xml | 2 +- app/code/Magento/SampleData/etc/module.xml | 2 +- app/code/Magento/SampleData/registration.php | 2 +- .../Search/Adapter/Query/Preprocessor/Synonyms.php | 2 +- .../Search/Api/Data/SynonymGroupInterface.php | 2 +- app/code/Magento/Search/Api/SearchInterface.php | 2 +- .../Search/Api/SynonymAnalyzerInterface.php | 2 +- .../Search/Api/SynonymGroupRepositoryInterface.php | 2 +- .../Search/Block/Adminhtml/Dashboard/Last.php | 2 +- .../Search/Block/Adminhtml/Dashboard/Top.php | 2 +- .../Search/Block/Adminhtml/Reports/Search.php | 2 +- .../Magento/Search/Block/Adminhtml/Synonyms.php | 2 +- .../Block/Adminhtml/Synonyms/Edit/BackButton.php | 2 +- .../Block/Adminhtml/Synonyms/Edit/DeleteButton.php | 2 +- .../Adminhtml/Synonyms/Edit/GenericButton.php | 2 +- .../Block/Adminhtml/Synonyms/Edit/ResetButton.php | 2 +- .../Synonyms/Edit/SaveAndContinueButton.php | 2 +- .../Block/Adminhtml/Synonyms/Edit/SaveButton.php | 2 +- app/code/Magento/Search/Block/Adminhtml/Term.php | 2 +- .../Magento/Search/Block/Adminhtml/Term/Edit.php | 2 +- .../Search/Block/Adminhtml/Term/Edit/Form.php | 2 +- app/code/Magento/Search/Block/Term.php | 2 +- .../Controller/Adminhtml/Synonyms/Delete.php | 2 +- .../Search/Controller/Adminhtml/Synonyms/Edit.php | 2 +- .../Search/Controller/Adminhtml/Synonyms/Index.php | 2 +- .../Controller/Adminhtml/Synonyms/MassDelete.php | 2 +- .../Controller/Adminhtml/Synonyms/NewAction.php | 2 +- .../Adminhtml/Synonyms/ResultPageBuilder.php | 2 +- .../Search/Controller/Adminhtml/Synonyms/Save.php | 2 +- .../Magento/Search/Controller/Adminhtml/Term.php | 2 +- .../Search/Controller/Adminhtml/Term/Delete.php | 2 +- .../Search/Controller/Adminhtml/Term/Edit.php | 2 +- .../Controller/Adminhtml/Term/ExportSearchCsv.php | 2 +- .../Adminhtml/Term/ExportSearchExcel.php | 2 +- .../Search/Controller/Adminhtml/Term/Index.php | 2 +- .../Controller/Adminhtml/Term/MassDelete.php | 2 +- .../Search/Controller/Adminhtml/Term/NewAction.php | 2 +- .../Search/Controller/Adminhtml/Term/Report.php | 2 +- .../Search/Controller/Adminhtml/Term/Save.php | 2 +- .../Magento/Search/Controller/Ajax/Suggest.php | 2 +- .../Search/Controller/RegistryConstants.php | 2 +- .../Magento/Search/Controller/Term/Popular.php | 2 +- app/code/Magento/Search/Helper/Data.php | 2 +- app/code/Magento/Search/Model/AdapterFactory.php | 2 +- .../Adminhtml/System/Config/Source/Engine.php | 2 +- app/code/Magento/Search/Model/Autocomplete.php | 2 +- .../Model/Autocomplete/DataProviderInterface.php | 2 +- .../Magento/Search/Model/Autocomplete/Item.php | 2 +- .../Search/Model/Autocomplete/ItemFactory.php | 2 +- .../Search/Model/Autocomplete/ItemInterface.php | 2 +- .../Magento/Search/Model/AutocompleteInterface.php | 2 +- app/code/Magento/Search/Model/EngineResolver.php | 2 +- app/code/Magento/Search/Model/Query.php | 2 +- app/code/Magento/Search/Model/QueryFactory.php | 2 +- .../Magento/Search/Model/QueryFactoryInterface.php | 2 +- app/code/Magento/Search/Model/QueryInterface.php | 2 +- app/code/Magento/Search/Model/QueryResult.php | 2 +- .../Magento/Search/Model/ResourceModel/Query.php | 2 +- .../Model/ResourceModel/Query/Collection.php | 2 +- .../Search/Model/ResourceModel/SynonymGroup.php | 2 +- .../ResourceModel/SynonymGroup/Collection.php | 2 +- .../Search/Model/ResourceModel/SynonymReader.php | 2 +- app/code/Magento/Search/Model/Search.php | 2 +- .../Search/Model/SearchCollectionFactory.php | 2 +- .../Search/Model/SearchCollectionInterface.php | 2 +- app/code/Magento/Search/Model/SearchEngine.php | 2 +- .../Magento/Search/Model/SearchEngine/Config.php | 2 +- .../Search/Model/SearchEngine/Config/Data.php | 2 +- .../Search/Model/SearchEngine/MenuBuilder.php | 2 +- .../Magento/Search/Model/Synonym/DataProvider.php | 2 +- .../Model/Synonym/MergeConflictException.php | 2 +- app/code/Magento/Search/Model/SynonymAnalyzer.php | 2 +- app/code/Magento/Search/Model/SynonymGroup.php | 2 +- .../Search/Model/SynonymGroupRepository.php | 2 +- app/code/Magento/Search/Model/SynonymReader.php | 2 +- app/code/Magento/Search/Setup/InstallSchema.php | 2 +- app/code/Magento/Search/Setup/UpgradeSchema.php | 2 +- .../Adapter/Query/Preprocessor/SynonymsTest.php | 2 +- .../Unit/Controller/Adminhtml/Ajax/SuggestTest.php | 2 +- .../Controller/Adminhtml/Synonyms/DeleteTest.php | 2 +- .../Controller/Adminhtml/Term/MassDeleteTest.php | 2 +- .../Unit/Controller/Adminhtml/Term/SaveTest.php | 2 +- .../Magento/Search/Test/Unit/Helper/DataTest.php | 2 +- .../Search/Test/Unit/Model/AdapterFactoryTest.php | 2 +- .../Search/Test/Unit/Model/AutocompleteTest.php | 2 +- .../Search/Test/Unit/Model/EngineResolverTest.php | 2 +- .../Search/Test/Unit/Model/QueryFactoryTest.php | 2 +- .../Search/Test/Unit/Model/QueryResultTest.php | 2 +- .../Magento/Search/Test/Unit/Model/QueryTest.php | 2 +- .../Test/Unit/Model/ResourceModel/QueryTest.php | 2 +- .../Unit/Model/ResourceModel/SynonymGroupTest.php | 2 +- .../Test/Unit/Model/SearchEngine/ConfigTest.php | 2 +- .../Unit/Model/SearchEngine/MenuBuilderTest.php | 2 +- .../Search/Test/Unit/Model/SearchEngineTest.php | 2 +- .../Test/Unit/Model/SynonymGroupRepositoryTest.php | 2 +- .../Search/Test/Unit/Model/SynonymGroupTest.php | 2 +- .../Ui/Component/Listing/Column/Scope/Options.php | 2 +- .../Ui/Component/Listing/Column/Store/Options.php | 2 +- .../Ui/Component/Listing/Column/StoreView.php | 2 +- .../Ui/Component/Listing/Column/SynonymActions.php | 2 +- .../Search/Ui/Component/Listing/Column/Website.php | 2 +- .../Component/Listing/Column/Website/Options.php | 2 +- app/code/Magento/Search/etc/acl.xml | 2 +- app/code/Magento/Search/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Search/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Search/etc/adminhtml/system.xml | 2 +- app/code/Magento/Search/etc/di.xml | 2 +- .../Magento/Search/etc/frontend/page_types.xml | 2 +- app/code/Magento/Search/etc/frontend/routes.xml | 2 +- app/code/Magento/Search/etc/module.xml | 2 +- app/code/Magento/Search/etc/search_engine.xml | 2 +- app/code/Magento/Search/etc/webapi.xml | 2 +- app/code/Magento/Search/registration.php | 2 +- .../adminhtml/layout/adminhtml_dashboard_index.xml | 2 +- .../view/adminhtml/layout/search_synonyms_edit.xml | 2 +- .../adminhtml/layout/search_synonyms_index.xml | 2 +- .../view/adminhtml/layout/search_synonyms_new.xml | 2 +- .../view/adminhtml/layout/search_term_block.xml | 2 +- .../view/adminhtml/layout/search_term_edit.xml | 2 +- .../layout/search_term_exportsearchcsv.xml | 2 +- .../layout/search_term_exportsearchexcel.xml | 2 +- .../adminhtml/layout/search_term_grid_block.xml | 2 +- .../view/adminhtml/layout/search_term_index.xml | 2 +- .../view/adminhtml/layout/search_term_report.xml | 2 +- .../adminhtml/layout/search_term_report_block.xml | 2 +- .../ui_component/search_synonyms_form.xml | 2 +- .../ui_component/search_synonyms_grid.xml | 2 +- .../Search/view/frontend/layout/default.xml | 2 +- .../view/frontend/layout/search_term_popular.xml | 2 +- .../Search/view/frontend/requirejs-config.js | 2 +- .../Search/view/frontend/templates/form.mini.phtml | 2 +- .../Search/view/frontend/templates/term.phtml | 2 +- .../Magento/Search/view/frontend/web/form-mini.js | 2 +- .../Security/Block/Adminhtml/Session/Activity.php | 2 +- .../Controller/Adminhtml/Session/Activity.php | 2 +- .../Controller/Adminhtml/Session/LogoutAll.php | 2 +- .../Magento/Security/Model/AdminSessionInfo.php | 2 +- .../Security/Model/AdminSessionsManager.php | 2 +- app/code/Magento/Security/Model/Config.php | 2 +- .../Security/Model/Config/Source/ResetMethod.php | 2 +- .../Magento/Security/Model/ConfigInterface.php | 2 +- .../Security/Model/PasswordResetRequestEvent.php | 2 +- .../Security/Model/Plugin/AccountManagement.php | 2 +- app/code/Magento/Security/Model/Plugin/Auth.php | 2 +- .../Magento/Security/Model/Plugin/AuthSession.php | 2 +- .../Security/Model/Plugin/LoginController.php | 2 +- .../Model/ResourceModel/AdminSessionInfo.php | 2 +- .../ResourceModel/AdminSessionInfo/Collection.php | 2 +- .../ResourceModel/PasswordResetRequestEvent.php | 2 +- .../PasswordResetRequestEvent/Collection.php | 2 +- .../CollectionFactory.php | 2 +- .../Security/Model/SecurityChecker/Frequency.php | 2 +- .../Security/Model/SecurityChecker/Quantity.php | 2 +- .../SecurityChecker/SecurityCheckerInterface.php | 2 +- app/code/Magento/Security/Model/SecurityCookie.php | 2 +- .../Magento/Security/Model/SecurityManager.php | 2 +- app/code/Magento/Security/Setup/InstallSchema.php | 2 +- app/code/Magento/Security/Setup/UpgradeSchema.php | 2 +- .../Unit/Block/Adminhtml/Session/ActivityTest.php | 2 +- .../Controller/Adminhtml/Session/ActivityTest.php | 2 +- .../Controller/Adminhtml/Session/LogoutAllTest.php | 2 +- .../Test/Unit/Model/AdminSessionInfoTest.php | 2 +- .../Test/Unit/Model/AdminSessionsManagerTest.php | 2 +- .../Unit/Model/Config/Source/ResetMethodTest.php | 2 +- .../Security/Test/Unit/Model/ConfigTest.php | 2 +- .../Unit/Model/Plugin/AccountManagementTest.php | 2 +- .../Test/Unit/Model/Plugin/AuthSessionTest.php | 2 +- .../Security/Test/Unit/Model/Plugin/AuthTest.php | 2 +- .../Test/Unit/Model/Plugin/LoginControllerTest.php | 2 +- .../AdminSessionInfo/CollectionTest.php | 2 +- .../Model/ResourceModel/AdminSessionInfoTest.php | 2 +- .../CollectionFactoryTest.php | 2 +- .../PasswordResetRequestEvent/CollectionTest.php | 2 +- .../PasswordResetRequestEventTest.php | 2 +- .../Unit/Model/SecurityChecker/FrequencyTest.php | 2 +- .../Unit/Model/SecurityChecker/QuantityTest.php | 2 +- .../Test/Unit/Model/SecurityCookieTest.php | 2 +- .../Test/Unit/Model/SecurityManagerTest.php | 2 +- app/code/Magento/Security/etc/adminhtml/di.xml | 2 +- app/code/Magento/Security/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Security/etc/adminhtml/system.xml | 2 +- app/code/Magento/Security/etc/config.xml | 2 +- app/code/Magento/Security/etc/crontab.xml | 2 +- app/code/Magento/Security/etc/di.xml | 2 +- app/code/Magento/Security/etc/module.xml | 2 +- app/code/Magento/Security/registration.php | 2 +- .../Security/view/adminhtml/layout/default.xml | 2 +- .../adminhtml/layout/security_session_activity.xml | 2 +- .../view/adminhtml/page_layout/admin-popup.xml | 2 +- .../Security/view/adminhtml/requirejs-config.js | 2 +- .../adminhtml/templates/page/activity_link.phtml | 2 +- .../adminhtml/templates/session/activity.phtml | 2 +- .../Security/view/adminhtml/web/css/activity.css | 2 +- .../view/adminhtml/web/js/confirm-redirect.js | 2 +- .../Block/Plugin/Catalog/Product/View.php | 2 +- app/code/Magento/SendFriend/Block/Send.php | 2 +- app/code/Magento/SendFriend/Controller/Product.php | 2 +- .../Magento/SendFriend/Controller/Product/Send.php | 2 +- .../SendFriend/Controller/Product/Sendmail.php | 2 +- app/code/Magento/SendFriend/Helper/Data.php | 2 +- .../SendFriend/Model/ResourceModel/SendFriend.php | 2 +- .../Model/ResourceModel/SendFriend/Collection.php | 2 +- app/code/Magento/SendFriend/Model/SendFriend.php | 2 +- .../Magento/SendFriend/Model/Source/Checktype.php | 2 +- .../Magento/SendFriend/Setup/InstallSchema.php | 2 +- .../Unit/Block/Plugin/Catalog/Product/ViewTest.php | 2 +- .../SendFriend/Test/Unit/Block/SendTest.php | 2 +- .../Test/Unit/Controller/Product/SendTest.php | 2 +- .../Test/Unit/Controller/Product/SendmailTest.php | 2 +- .../SendFriend/Test/Unit/Model/SendFriendTest.php | 2 +- .../Magento/SendFriend/etc/adminhtml/system.xml | 2 +- app/code/Magento/SendFriend/etc/config.xml | 2 +- .../Magento/SendFriend/etc/email_templates.xml | 2 +- app/code/Magento/SendFriend/etc/frontend/di.xml | 2 +- .../Magento/SendFriend/etc/frontend/page_types.xml | 2 +- .../Magento/SendFriend/etc/frontend/routes.xml | 2 +- app/code/Magento/SendFriend/etc/module.xml | 2 +- app/code/Magento/SendFriend/registration.php | 2 +- .../view/frontend/email/product_share.html | 2 +- .../frontend/layout/sendfriend_product_send.xml | 2 +- .../SendFriend/view/frontend/templates/send.phtml | 2 +- .../SendFriend/view/frontend/web/back-event.js | 2 +- .../Magento/Shipping/Block/Adminhtml/Create.php | 2 +- .../Shipping/Block/Adminhtml/Create/Form.php | 2 +- .../Shipping/Block/Adminhtml/Create/Items.php | 2 +- .../Shipping/Block/Adminhtml/Order/Packaging.php | 2 +- .../Block/Adminhtml/Order/Packaging/Grid.php | 2 +- .../Shipping/Block/Adminhtml/Order/Tracking.php | 2 +- .../Block/Adminhtml/Order/Tracking/Invoice.php | 2 +- .../Block/Adminhtml/Order/Tracking/View.php | 2 +- app/code/Magento/Shipping/Block/Adminhtml/View.php | 2 +- .../Shipping/Block/Adminhtml/View/Comments.php | 2 +- .../Magento/Shipping/Block/Adminhtml/View/Form.php | 2 +- .../Shipping/Block/Adminhtml/View/Items.php | 2 +- app/code/Magento/Shipping/Block/Items.php | 2 +- app/code/Magento/Shipping/Block/Order/Shipment.php | 2 +- app/code/Magento/Shipping/Block/Tracking/Ajax.php | 2 +- app/code/Magento/Shipping/Block/Tracking/Link.php | 2 +- app/code/Magento/Shipping/Block/Tracking/Popup.php | 2 +- .../Adminhtml/Order/Shipment/AddComment.php | 2 +- .../Adminhtml/Order/Shipment/AddTrack.php | 2 +- .../Adminhtml/Order/Shipment/CreateLabel.php | 2 +- .../Controller/Adminhtml/Order/Shipment/Email.php | 2 +- .../Order/Shipment/GetShippingItemsGrid.php | 2 +- .../Controller/Adminhtml/Order/Shipment/Index.php | 2 +- .../Order/Shipment/MassPrintShippingLabel.php | 2 +- .../Adminhtml/Order/Shipment/NewAction.php | 2 +- .../Adminhtml/Order/Shipment/Pdfshipments.php | 2 +- .../Adminhtml/Order/Shipment/PrintAction.php | 2 +- .../Adminhtml/Order/Shipment/PrintLabel.php | 2 +- .../Adminhtml/Order/Shipment/PrintPackage.php | 2 +- .../Adminhtml/Order/Shipment/RemoveTrack.php | 2 +- .../Controller/Adminhtml/Order/Shipment/Save.php | 2 +- .../Controller/Adminhtml/Order/Shipment/Start.php | 2 +- .../Controller/Adminhtml/Order/Shipment/View.php | 2 +- .../Controller/Adminhtml/Order/ShipmentLoader.php | 2 +- .../Adminhtml/Shipment/MassPrintShippingLabel.php | 2 +- .../Magento/Shipping/Controller/Tracking/Popup.php | 2 +- app/code/Magento/Shipping/Helper/Carrier.php | 2 +- app/code/Magento/Shipping/Helper/Data.php | 2 +- .../Shipping/Model/Carrier/AbstractCarrier.php | 2 +- .../Model/Carrier/AbstractCarrierInterface.php | 2 +- .../Model/Carrier/AbstractCarrierOnline.php | 2 +- .../Shipping/Model/Carrier/CarrierInterface.php | 2 +- .../Model/Carrier/Source/GenericDefault.php | 2 +- .../Model/Carrier/Source/GenericInterface.php | 2 +- app/code/Magento/Shipping/Model/CarrierFactory.php | 2 +- .../Shipping/Model/CarrierFactoryInterface.php | 2 +- app/code/Magento/Shipping/Model/Config.php | 2 +- .../Shipping/Model/Config/Source/Allmethods.php | 2 +- .../Model/Config/Source/Allspecificcountries.php | 2 +- .../Shipping/Model/Config/Source/Online/Mode.php | 2 +- .../Model/Config/Source/Online/Requesttype.php | 2 +- app/code/Magento/Shipping/Model/Info.php | 2 +- app/code/Magento/Shipping/Model/Observer.php | 2 +- .../Magento/Shipping/Model/Order/Pdf/Packaging.php | 2 +- app/code/Magento/Shipping/Model/Order/Track.php | 2 +- app/code/Magento/Shipping/Model/Rate/Result.php | 2 +- .../Model/ResourceModel/Order/Track/Collection.php | 2 +- .../Magento/Shipping/Model/Shipment/Request.php | 2 +- .../Shipping/Model/Shipment/ReturnShipment.php | 2 +- .../Magento/Shipping/Model/ShipmentNotifier.php | 2 +- app/code/Magento/Shipping/Model/Shipping.php | 2 +- .../Shipping/Model/Shipping/LabelGenerator.php | 2 +- .../Magento/Shipping/Model/Shipping/Labels.php | 2 +- .../Magento/Shipping/Model/Simplexml/Element.php | 2 +- .../Shipping/Model/Source/HandlingAction.php | 2 +- .../Magento/Shipping/Model/Source/HandlingType.php | 2 +- .../Magento/Shipping/Model/Tracking/Result.php | 2 +- .../Model/Tracking/Result/AbstractResult.php | 2 +- .../Shipping/Model/Tracking/Result/Error.php | 2 +- .../Shipping/Model/Tracking/Result/Status.php | 2 +- .../Unit/Block/Adminhtml/Order/TrackingTest.php | 2 +- .../Adminhtml/Order/Shipment/AddCommentTest.php | 2 +- .../Adminhtml/Order/Shipment/AddTrackTest.php | 2 +- .../Adminhtml/Order/Shipment/CreateLabelTest.php | 2 +- .../Adminhtml/Order/Shipment/EmailTest.php | 2 +- .../Order/Shipment/GetShippingItemsGridTest.php | 2 +- .../Adminhtml/Order/Shipment/NewActionTest.php | 2 +- .../Adminhtml/Order/Shipment/PrintLabelTest.php | 2 +- .../Adminhtml/Order/Shipment/PrintPackageTest.php | 2 +- .../Adminhtml/Order/Shipment/RemoveTrackTest.php | 2 +- .../Adminhtml/Order/Shipment/SaveTest.php | 2 +- .../Adminhtml/Order/Shipment/ViewTest.php | 2 +- .../Adminhtml/Order/ShipmentLoaderTest.php | 2 +- .../Shipping/Test/Unit/Helper/CarrierTest.php | 2 +- .../Model/Carrier/AbstractCarrierOnlineTest.php | 2 +- .../Shipping/Test/Unit/Model/Order/TrackTest.php | 2 +- .../Test/Unit/Model/ShipmentNotifierTest.php | 2 +- .../Shipping/Test/Unit/Model/ShipmentTest.php | 2 +- .../Unit/Model/Shipping/LabelGeneratorTest.php | 2 +- .../Test/Unit/Model/Shipping/LabelsTest.php | 2 +- .../Shipping/Test/Unit/Model/ShippingTest.php | 2 +- .../Test/Unit/Model/Simplexml/ElementTest.php | 2 +- app/code/Magento/Shipping/etc/acl.xml | 2 +- app/code/Magento/Shipping/etc/adminhtml/di.xml | 2 +- app/code/Magento/Shipping/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Shipping/etc/adminhtml/system.xml | 2 +- app/code/Magento/Shipping/etc/config.xml | 2 +- app/code/Magento/Shipping/etc/crontab.xml | 2 +- app/code/Magento/Shipping/etc/di.xml | 2 +- .../Magento/Shipping/etc/frontend/page_types.xml | 2 +- app/code/Magento/Shipping/etc/frontend/routes.xml | 2 +- app/code/Magento/Shipping/etc/module.xml | 2 +- app/code/Magento/Shipping/registration.php | 2 +- .../layout/adminhtml_order_shipment_addcomment.xml | 2 +- .../layout/adminhtml_order_shipment_addtrack.xml | 2 +- .../layout/adminhtml_order_shipment_new.xml | 2 +- .../adminhtml_order_shipment_removetrack.xml | 2 +- .../layout/adminhtml_order_shipment_view.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../view/adminhtml/templates/create/form.phtml | 2 +- .../view/adminhtml/templates/create/items.phtml | 2 +- .../templates/create/items/renderer/default.phtml | 2 +- .../adminhtml/templates/order/packaging/grid.phtml | 2 +- .../templates/order/packaging/packed.phtml | 2 +- .../templates/order/packaging/popup.phtml | 2 +- .../templates/order/packaging/popup_content.phtml | 2 +- .../view/adminhtml/templates/order/tracking.phtml | 2 +- .../adminhtml/templates/order/tracking/view.phtml | 2 +- .../view/adminhtml/templates/order/view/info.phtml | 2 +- .../view/adminhtml/templates/view/form.phtml | 2 +- .../view/adminhtml/templates/view/items.phtml | 2 +- .../templates/view/items/renderer/default.phtml | 2 +- .../Shipping/view/adminhtml/web/js/packages.js | 2 +- .../Shipping/view/adminhtml/web/order/packaging.js | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../view/frontend/layout/sales_guest_reorder.xml | 2 +- .../view/frontend/layout/sales_guest_shipment.xml | 2 +- .../view/frontend/layout/sales_guest_view.xml | 2 +- .../view/frontend/layout/sales_order_reorder.xml | 2 +- .../view/frontend/layout/sales_order_shipment.xml | 2 +- .../view/frontend/layout/sales_order_view.xml | 2 +- .../frontend/layout/shipping_tracking_popup.xml | 2 +- .../Shipping/view/frontend/templates/items.phtml | 2 +- .../view/frontend/templates/order/shipment.phtml | 2 +- .../view/frontend/templates/tracking/details.phtml | 2 +- .../view/frontend/templates/tracking/link.phtml | 2 +- .../view/frontend/templates/tracking/popup.phtml | 2 +- .../frontend/templates/tracking/progress.phtml | 2 +- .../Shipping/view/frontend/web/js/model/config.js | 2 +- .../js/view/checkout/shipping/shipping-policy.js | 2 +- .../checkout/shipping/shipping-policy.html | 2 +- app/code/Magento/Sitemap/Block/Adminhtml/Edit.php | 2 +- .../Magento/Sitemap/Block/Adminhtml/Edit/Form.php | 2 +- .../Block/Adminhtml/Grid/Renderer/Action.php | 2 +- .../Sitemap/Block/Adminhtml/Grid/Renderer/Link.php | 2 +- .../Sitemap/Block/Adminhtml/Grid/Renderer/Time.php | 2 +- .../Magento/Sitemap/Block/Adminhtml/Sitemap.php | 2 +- app/code/Magento/Sitemap/Block/Robots.php | 2 +- .../Sitemap/Controller/Adminhtml/Sitemap.php | 2 +- .../Controller/Adminhtml/Sitemap/Delete.php | 2 +- .../Sitemap/Controller/Adminhtml/Sitemap/Edit.php | 2 +- .../Controller/Adminhtml/Sitemap/Generate.php | 2 +- .../Sitemap/Controller/Adminhtml/Sitemap/Index.php | 2 +- .../Controller/Adminhtml/Sitemap/NewAction.php | 2 +- .../Sitemap/Controller/Adminhtml/Sitemap/Save.php | 2 +- app/code/Magento/Sitemap/Helper/Data.php | 2 +- .../Sitemap/Model/Config/Backend/Priority.php | 2 +- .../Sitemap/Model/Config/Backend/Robots.php | 2 +- .../Sitemap/Model/Config/Source/Frequency.php | 2 +- app/code/Magento/Sitemap/Model/Observer.php | 2 +- .../Model/ResourceModel/Catalog/Category.php | 2 +- .../Model/ResourceModel/Catalog/Product.php | 2 +- .../Sitemap/Model/ResourceModel/Cms/Page.php | 2 +- .../Sitemap/Model/ResourceModel/Sitemap.php | 2 +- .../Model/ResourceModel/Sitemap/Collection.php | 2 +- app/code/Magento/Sitemap/Model/Sitemap.php | 2 +- .../Model/Source/Product/Image/IncludeImage.php | 2 +- app/code/Magento/Sitemap/Setup/InstallSchema.php | 2 +- .../Magento/Sitemap/Test/Unit/Block/RobotsTest.php | 2 +- .../Unit/Controller/Adminhtml/Sitemap/SaveTest.php | 2 +- .../Magento/Sitemap/Test/Unit/Helper/DataTest.php | 2 +- .../Test/Unit/Model/Config/Backend/RobotsTest.php | 2 +- .../Sitemap/Test/Unit/Model/SitemapTest.php | 2 +- .../Sitemap/Test/Unit/Model/_files/sitemap-1-1.xml | 2 +- .../Sitemap/Test/Unit/Model/_files/sitemap-1-2.xml | 2 +- .../Sitemap/Test/Unit/Model/_files/sitemap-1-3.xml | 2 +- .../Sitemap/Test/Unit/Model/_files/sitemap-1-4.xml | 2 +- .../Test/Unit/Model/_files/sitemap-index.xml | 2 +- .../Test/Unit/Model/_files/sitemap-single.xml | 2 +- app/code/Magento/Sitemap/etc/acl.xml | 2 +- app/code/Magento/Sitemap/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Sitemap/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Sitemap/etc/adminhtml/system.xml | 2 +- app/code/Magento/Sitemap/etc/config.xml | 2 +- app/code/Magento/Sitemap/etc/crontab.xml | 2 +- app/code/Magento/Sitemap/etc/di.xml | 2 +- app/code/Magento/Sitemap/etc/email_templates.xml | 2 +- app/code/Magento/Sitemap/etc/module.xml | 2 +- app/code/Magento/Sitemap/registration.php | 2 +- .../view/adminhtml/email/generate_warnings.html | 2 +- .../adminhtml/layout/adminhtml_sitemap_index.xml | 2 +- .../layout/adminhtml_sitemap_index_grid_block.xml | 2 +- .../view/frontend/layout/robots_index_index.xml | 2 +- app/code/Magento/Store/Api/Data/GroupInterface.php | 2 +- .../Store/Api/Data/StoreConfigInterface.php | 2 +- app/code/Magento/Store/Api/Data/StoreInterface.php | 2 +- .../Magento/Store/Api/Data/WebsiteInterface.php | 2 +- .../Magento/Store/Api/GroupRepositoryInterface.php | 2 +- .../Store/Api/StoreConfigManagerInterface.php | 2 +- .../Store/Api/StoreCookieManagerInterface.php | 2 +- .../Magento/Store/Api/StoreManagementInterface.php | 2 +- .../Magento/Store/Api/StoreRepositoryInterface.php | 2 +- .../Magento/Store/Api/StoreResolverInterface.php | 2 +- .../Store/Api/WebsiteManagementInterface.php | 2 +- .../Store/Api/WebsiteRepositoryInterface.php | 2 +- .../Magento/Store/App/Action/Plugin/Context.php | 2 +- .../Magento/Store/App/Action/Plugin/StoreCheck.php | 2 +- .../App/Config/Source/RuntimeConfigSource.php | 2 +- app/code/Magento/Store/App/Config/Type/Scopes.php | 2 +- .../App/FrontController/Plugin/DefaultStore.php | 2 +- .../FrontController/Plugin/RequestPreprocessor.php | 2 +- .../Store/App/Request/PathInfoProcessor.php | 2 +- app/code/Magento/Store/App/Response/Redirect.php | 2 +- app/code/Magento/Store/Block/Store/Switcher.php | 2 +- app/code/Magento/Store/Block/Switcher.php | 2 +- .../Store/Controller/Store/SwitchAction.php | 2 +- app/code/Magento/Store/Model/Address/Renderer.php | 2 +- app/code/Magento/Store/Model/App/Emulation.php | 2 +- app/code/Magento/Store/Model/BaseUrlChecker.php | 2 +- app/code/Magento/Store/Model/Config/Converter.php | 2 +- .../Magento/Store/Model/Config/Placeholder.php | 2 +- .../Store/Model/Config/Processor/Fallback.php | 2 +- .../Store/Model/Config/Processor/Placeholder.php | 2 +- .../Config/Reader/Source/Dynamic/DefaultScope.php | 2 +- .../Model/Config/Reader/Source/Dynamic/Store.php | 2 +- .../Model/Config/Reader/Source/Dynamic/Website.php | 2 +- .../Config/Reader/Source/Initial/DefaultScope.php | 2 +- .../Model/Config/Reader/Source/Initial/Store.php | 2 +- .../Model/Config/Reader/Source/Initial/Website.php | 2 +- app/code/Magento/Store/Model/Config/StoreView.php | 2 +- app/code/Magento/Store/Model/Data/StoreConfig.php | 2 +- .../Store/Model/DefaultStoreScopeProvider.php | 2 +- app/code/Magento/Store/Model/Group.php | 2 +- app/code/Magento/Store/Model/GroupRepository.php | 2 +- .../Magento/Store/Model/HeaderProvider/Hsts.php | 2 +- .../Store/Model/HeaderProvider/UpgradeInsecure.php | 2 +- app/code/Magento/Store/Model/Information.php | 2 +- app/code/Magento/Store/Model/PathConfig.php | 2 +- .../Magento/Store/Model/Plugin/StoreCookie.php | 2 +- app/code/Magento/Store/Model/Resolver/Group.php | 2 +- app/code/Magento/Store/Model/Resolver/Store.php | 2 +- app/code/Magento/Store/Model/Resolver/Website.php | 2 +- .../ResourceModel/Config/Collection/Scoped.php | 2 +- .../Magento/Store/Model/ResourceModel/Group.php | 2 +- .../Store/Model/ResourceModel/Group/Collection.php | 2 +- .../Magento/Store/Model/ResourceModel/Store.php | 2 +- .../Store/Model/ResourceModel/Store/Collection.php | 2 +- .../Magento/Store/Model/ResourceModel/Website.php | 2 +- .../Model/ResourceModel/Website/Collection.php | 2 +- .../ResourceModel/Website/Grid/Collection.php | 2 +- .../Magento/Store/Model/ScopeFallbackResolver.php | 2 +- app/code/Magento/Store/Model/ScopeInterface.php | 2 +- app/code/Magento/Store/Model/ScopeTreeProvider.php | 2 +- app/code/Magento/Store/Model/ScopeValidator.php | 2 +- .../Store/Model/Service/StoreConfigManager.php | 2 +- app/code/Magento/Store/Model/Store.php | 2 +- .../Magento/Store/Model/StoreCookieManager.php | 2 +- .../Store/Model/StoreIsInactiveException.php | 2 +- app/code/Magento/Store/Model/StoreManagement.php | 2 +- app/code/Magento/Store/Model/StoreManager.php | 2 +- .../Magento/Store/Model/StoreManagerInterface.php | 2 +- app/code/Magento/Store/Model/StoreRepository.php | 2 +- app/code/Magento/Store/Model/StoreResolver.php | 2 +- .../Magento/Store/Model/StoreResolver/Group.php | 2 +- .../Store/Model/StoreResolver/ReaderInterface.php | 2 +- .../Store/Model/StoreResolver/ReaderList.php | 2 +- .../Magento/Store/Model/StoreResolver/Store.php | 2 +- .../Magento/Store/Model/StoreResolver/Website.php | 2 +- .../Magento/Store/Model/StoreScopeProvider.php | 2 +- app/code/Magento/Store/Model/StoresConfig.php | 2 +- app/code/Magento/Store/Model/System/Store.php | 2 +- app/code/Magento/Store/Model/Website.php | 2 +- app/code/Magento/Store/Model/WebsiteManagement.php | 2 +- app/code/Magento/Store/Model/WebsiteRepository.php | 2 +- app/code/Magento/Store/Setup/InstallSchema.php | 2 +- .../Test/Unit/App/Action/Plugin/ContextTest.php | 2 +- .../Test/Unit/App/Action/Plugin/StoreCheckTest.php | 2 +- .../App/Config/Source/RuntimeConfigSourceTest.php | 2 +- .../Plugin/RequestPreprocessorTest.php | 2 +- .../Unit/App/Request/PathInfoProcessorTest.php | 2 +- .../Store/Test/Unit/App/Response/RedirectTest.php | 2 +- .../Store/Test/Unit/Block/Store/SwitcherTest.php | 2 +- .../Magento/Store/Test/Unit/Block/SwitcherTest.php | 2 +- .../Unit/Controller/Store/SwitchActionTest.php | 2 +- .../Store/Test/Unit/Model/Address/RendererTest.php | 2 +- .../Store/Test/Unit/Model/App/EmulationTest.php | 2 +- .../Store/Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Test/Unit/Model/Config/PlaceholderTest.php | 2 +- .../Model/Config/Processor/PlaceholderTest.php | 2 +- .../Reader/Source/Dynamic/DefaultScopeTest.php | 2 +- .../Config/Reader/Source/Dynamic/StoreTest.php | 2 +- .../Config/Reader/Source/Dynamic/WebsiteTest.php | 2 +- .../Reader/Source/Initial/DefaultScopeTest.php | 2 +- .../Config/Reader/Source/Initial/StoreTest.php | 2 +- .../Config/Reader/Source/Initial/WebsiteTest.php | 2 +- .../Test/Unit/Model/HeaderProvider/HstsTest.php | 2 +- .../Model/HeaderProvider/UpgradeInsecureTest.php | 2 +- .../Store/Test/Unit/Model/InformationTest.php | 2 +- .../Store/Test/Unit/Model/PathConfigTest.php | 2 +- .../Test/Unit/Model/Plugin/StoreCookieTest.php | 2 +- .../Store/Test/Unit/Model/Resolver/GroupTest.php | 2 +- .../Store/Test/Unit/Model/Resolver/StoreTest.php | 2 +- .../Store/Test/Unit/Model/Resolver/WebsiteTest.php | 2 +- .../Test/Unit/Model/ScopeFallbackResolverTest.php | 2 +- .../Test/Unit/Model/ScopeTreeProviderTest.php | 2 +- .../Store/Test/Unit/Model/ScopeValidatorTest.php | 2 +- .../Unit/Model/Service/StoreConfigManagerTest.php | 2 +- .../Store/Test/Unit/Model/StoreManagementTest.php | 2 +- .../Store/Test/Unit/Model/StoreManagerTest.php | 2 +- .../Store/Test/Unit/Model/StoreRepositoryTest.php | 2 +- .../Magento/Store/Test/Unit/Model/StoreTest.php | 2 +- .../Store/Test/Unit/Model/StoresConfigTest.php | 2 +- .../Store/Test/Unit/Model/System/StoreTest.php | 2 +- .../Test/Unit/Model/WebsiteManagementTest.php | 2 +- .../Test/Unit/Model/WebsiteRepositoryTest.php | 2 +- .../Magento/Store/Test/Unit/Model/WebsiteTest.php | 2 +- .../Unit/Ui/Component/Listing/Column/StoreTest.php | 2 +- .../Unit/Url/Plugin/RouteParamsResolverTest.php | 2 +- .../Test/Unit/Url/Plugin/SecurityInfoTest.php | 2 +- .../Store/Ui/Component/Form/Fieldset/Websites.php | 2 +- .../Store/Ui/Component/Listing/Column/Store.php | 2 +- .../Ui/Component/Listing/Column/Store/Options.php | 2 +- .../Store/Url/Plugin/RouteParamsResolver.php | 2 +- app/code/Magento/Store/Url/Plugin/SecurityInfo.php | 2 +- app/code/Magento/Store/etc/adminhtml/di.xml | 2 +- app/code/Magento/Store/etc/cache.xml | 2 +- app/code/Magento/Store/etc/config.xml | 2 +- app/code/Magento/Store/etc/config.xsd | 2 +- app/code/Magento/Store/etc/data_source/website.xml | 2 +- app/code/Magento/Store/etc/di.xml | 2 +- app/code/Magento/Store/etc/frontend/di.xml | 2 +- app/code/Magento/Store/etc/frontend/routes.xml | 2 +- app/code/Magento/Store/etc/frontend/sections.xml | 2 +- app/code/Magento/Store/etc/module.xml | 2 +- app/code/Magento/Store/etc/webapi.xml | 2 +- app/code/Magento/Store/registration.php | 2 +- .../view/frontend/templates/switch/flags.phtml | 2 +- .../view/frontend/templates/switch/languages.phtml | 2 +- .../view/frontend/templates/switch/stores.phtml | 2 +- .../Magento/Swagger/Controller/Index/Index.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- app/code/Magento/Swagger/etc/frontend/routes.xml | 2 +- app/code/Magento/Swagger/etc/module.xml | 2 +- app/code/Magento/Swagger/registration.php | 2 +- .../view/frontend/layout/swagger_index_index.xml | 2 +- .../view/frontend/templates/swagger-ui/index.phtml | 2 +- .../view/frontend/web/swagger-ui/css/style.css | 2 +- .../view/frontend/web/swagger-ui/js/lib/marked.js | 2 +- .../frontend/web/swagger-ui/js/magento-swagger.js | 2 +- .../view/frontend/web/swagger-ui/js/swagger-ui.js | 2 +- .../Attribute/Edit/Options/AbstractSwatch.php | 2 +- .../Adminhtml/Attribute/Edit/Options/Text.php | 2 +- .../Adminhtml/Attribute/Edit/Options/Visual.php | 2 +- .../Adminhtml/Product/Attribute/Edit/Form.php | 2 +- .../Block/LayeredNavigation/RenderLayered.php | 2 +- .../Block/Product/Renderer/Configurable.php | 2 +- .../Product/Renderer/Listing/Configurable.php | 2 +- .../Swatches/Controller/Adminhtml/Iframe/Show.php | 2 +- .../Adminhtml/Product/Attribute/Plugin/Save.php | 2 +- .../Magento/Swatches/Controller/Ajax/Media.php | 2 +- app/code/Magento/Swatches/Helper/Data.php | 2 +- app/code/Magento/Swatches/Helper/Media.php | 2 +- app/code/Magento/Swatches/Model/AttributesList.php | 2 +- .../Swatches/Model/Form/Element/AbstractSwatch.php | 2 +- .../Swatches/Model/Form/Element/SwatchText.php | 2 +- .../Swatches/Model/Form/Element/SwatchVisual.php | 2 +- .../Magento/Swatches/Model/Plugin/Configurable.php | 2 +- .../Magento/Swatches/Model/Plugin/EavAttribute.php | 2 +- .../Swatches/Model/Plugin/FilterRenderer.php | 2 +- app/code/Magento/Swatches/Model/Plugin/Product.php | 2 +- .../Magento/Swatches/Model/Plugin/ProductImage.php | 2 +- .../Swatches/Model/ResourceModel/Swatch.php | 2 +- .../Model/ResourceModel/Swatch/Collection.php | 2 +- app/code/Magento/Swatches/Model/Swatch.php | 2 +- .../Swatches/Model/SwatchAttributeCodes.php | 2 +- .../Swatches/Model/SwatchAttributesProvider.php | 2 +- .../Observer/AddFieldsToAttributeObserver.php | 2 +- .../Observer/AddSwatchAttributeTypeObserver.php | 2 +- .../Swatches/Plugin/Catalog/CacheInvalidate.php | 2 +- app/code/Magento/Swatches/Setup/InstallData.php | 2 +- app/code/Magento/Swatches/Setup/InstallSchema.php | 2 +- app/code/Magento/Swatches/Setup/UpgradeData.php | 2 +- .../Attribute/Edit/Options/AbstractSwatchTest.php | 2 +- .../Adminhtml/Product/Attribute/Edit/FormTest.php | 2 +- .../Block/LayeredNavigation/RenderLayeredTest.php | 2 +- .../Block/Product/Renderer/ConfigurableTest.php | 2 +- .../Product/Renderer/Listing/ConfigurableTest.php | 2 +- .../Unit/Controller/Adminhtml/Iframe/ShowTest.php | 2 +- .../Product/Attribute/Plugin/SaveTest.php | 2 +- .../Test/Unit/Controller/Ajax/MediaTest.php | 2 +- .../Magento/Swatches/Test/Unit/Helper/DataTest.php | 2 +- .../Swatches/Test/Unit/Helper/MediaTest.php | 2 +- .../Test/Unit/Model/AttributesListTest.php | 2 +- .../Unit/Model/Form/Element/AbstractSwatchTest.php | 2 +- .../Test/Unit/Model/Plugin/ConfigurableTest.php | 2 +- .../Test/Unit/Model/Plugin/EavAttributeTest.php | 2 +- .../Test/Unit/Model/Plugin/FilterRendererTest.php | 2 +- .../Test/Unit/Model/Plugin/ProductImageTest.php | 2 +- .../Test/Unit/Model/Plugin/ProductTest.php | 2 +- .../Test/Unit/Model/SwatchAttributeCodesTest.php | 2 +- .../Unit/Model/SwatchAttributesProviderTest.php | 2 +- .../Observer/AddFieldsToAttributeObserverTest.php | 2 +- .../AddSwatchAttributeTypeObserverTest.php | 2 +- .../Unit/Plugin/Catalog/CacheInvalidateTest.php | 2 +- app/code/Magento/Swatches/etc/adminhtml/di.xml | 2 +- app/code/Magento/Swatches/etc/adminhtml/events.xml | 2 +- app/code/Magento/Swatches/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Swatches/etc/adminhtml/system.xml | 2 +- app/code/Magento/Swatches/etc/config.xml | 2 +- app/code/Magento/Swatches/etc/di.xml | 2 +- app/code/Magento/Swatches/etc/frontend/routes.xml | 2 +- app/code/Magento/Swatches/etc/module.xml | 2 +- app/code/Magento/Swatches/etc/view.xml | 2 +- app/code/Magento/Swatches/registration.php | 2 +- .../layout/catalog_product_attribute_edit.xml | 2 +- .../catalog_product_attribute_edit_popup.xml | 2 +- .../view/adminhtml/layout/catalog_product_form.xml | 2 +- .../layout/catalog_product_superconfig_config.xml | 2 +- .../Swatches/view/adminhtml/requirejs-config.js | 2 +- .../templates/catalog/product/attribute/js.phtml | 2 +- .../templates/catalog/product/attribute/text.phtml | 2 +- .../catalog/product/attribute/visual.phtml | 2 +- .../edit/attribute/steps/attributes_values.phtml | 2 +- .../adminhtml/ui_component/design_config_form.xml | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../Swatches/view/adminhtml/web/css/swatches.css | 2 +- .../adminhtml/web/js/form/element/swatch-visual.js | 2 +- .../view/adminhtml/web/js/product-attributes.js | 2 +- .../Magento/Swatches/view/adminhtml/web/js/text.js | 2 +- .../Swatches/view/adminhtml/web/js/type-change.js | 2 +- .../Swatches/view/adminhtml/web/js/visual.js | 2 +- .../view/adminhtml/web/template/swatch-visual.html | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../catalog_product_view_type_configurable.xml | 2 +- .../layout/catalogsearch_advanced_result.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../checkout_cart_configure_type_configurable.xml | 2 +- .../wishlist_index_configure_type_configurable.xml | 2 +- .../templates/product/layered/renderer.phtml | 2 +- .../templates/product/listing/renderer.phtml | 2 +- .../frontend/templates/product/view/renderer.phtml | 2 +- .../Swatches/view/frontend/web/css/swatches.css | 2 +- .../view/frontend/web/js/catalog-add-to-cart.js | 2 +- .../view/frontend/web/js/swatch-renderer.js | 2 +- .../SwatchesLayeredNavigation/etc/module.xml | 2 +- .../SwatchesLayeredNavigation/registration.php | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../Magento/Tax/Api/Data/AppliedTaxInterface.php | 2 +- .../Tax/Api/Data/AppliedTaxRateInterface.php | 2 +- .../Tax/Api/Data/GrandTotalDetailsInterface.php | 2 +- .../Tax/Api/Data/GrandTotalRatesInterface.php | 2 +- .../Data/OrderTaxDetailsAppliedTaxInterface.php | 2 +- .../Tax/Api/Data/OrderTaxDetailsInterface.php | 2 +- .../Tax/Api/Data/OrderTaxDetailsItemInterface.php | 2 +- .../Magento/Tax/Api/Data/QuoteDetailsInterface.php | 2 +- .../Tax/Api/Data/QuoteDetailsItemInterface.php | 2 +- .../Magento/Tax/Api/Data/TaxClassInterface.php | 2 +- .../Magento/Tax/Api/Data/TaxClassKeyInterface.php | 2 +- .../Api/Data/TaxClassSearchResultsInterface.php | 2 +- .../Magento/Tax/Api/Data/TaxDetailsInterface.php | 2 +- .../Tax/Api/Data/TaxDetailsItemInterface.php | 2 +- app/code/Magento/Tax/Api/Data/TaxRateInterface.php | 2 +- .../Tax/Api/Data/TaxRateSearchResultsInterface.php | 2 +- .../Magento/Tax/Api/Data/TaxRateTitleInterface.php | 2 +- app/code/Magento/Tax/Api/Data/TaxRuleInterface.php | 2 +- .../Tax/Api/Data/TaxRuleSearchResultsInterface.php | 2 +- .../Tax/Api/OrderTaxManagementInterface.php | 2 +- .../Magento/Tax/Api/TaxCalculationInterface.php | 2 +- .../Tax/Api/TaxClassManagementInterface.php | 2 +- .../Tax/Api/TaxClassRepositoryInterface.php | 2 +- .../Magento/Tax/Api/TaxRateManagementInterface.php | 2 +- .../Magento/Tax/Api/TaxRateRepositoryInterface.php | 2 +- .../Magento/Tax/Api/TaxRuleRepositoryInterface.php | 2 +- .../Block/Adminhtml/Frontend/Region/Updater.php | 2 +- .../Tax/Block/Adminhtml/Items/Price/Renderer.php | 2 +- app/code/Magento/Tax/Block/Adminhtml/Rate/Form.php | 2 +- .../Block/Adminhtml/Rate/Grid/Renderer/Data.php | 2 +- .../Magento/Tax/Block/Adminhtml/Rate/Title.php | 2 +- .../Tax/Block/Adminhtml/Rate/Title/Fieldset.php | 2 +- .../Tax/Block/Adminhtml/Rate/Toolbar/Add.php | 2 +- .../Tax/Block/Adminhtml/Rate/Toolbar/Save.php | 2 +- app/code/Magento/Tax/Block/Adminhtml/Rule.php | 2 +- app/code/Magento/Tax/Block/Adminhtml/Rule/Edit.php | 2 +- .../Magento/Tax/Block/Adminhtml/Rule/Edit/Form.php | 2 +- app/code/Magento/Tax/Block/Checkout/Discount.php | 2 +- app/code/Magento/Tax/Block/Checkout/Grandtotal.php | 2 +- app/code/Magento/Tax/Block/Checkout/Shipping.php | 2 +- .../Magento/Tax/Block/Checkout/Shipping/Price.php | 2 +- app/code/Magento/Tax/Block/Checkout/Subtotal.php | 2 +- app/code/Magento/Tax/Block/Checkout/Tax.php | 2 +- app/code/Magento/Tax/Block/Item/Price/Renderer.php | 2 +- app/code/Magento/Tax/Block/Sales/Order/Tax.php | 2 +- app/code/Magento/Tax/Controller/Adminhtml/Rate.php | 2 +- .../Magento/Tax/Controller/Adminhtml/Rate/Add.php | 2 +- .../Tax/Controller/Adminhtml/Rate/AjaxDelete.php | 2 +- .../Tax/Controller/Adminhtml/Rate/AjaxLoad.php | 2 +- .../Tax/Controller/Adminhtml/Rate/AjaxSave.php | 2 +- .../Tax/Controller/Adminhtml/Rate/Delete.php | 2 +- .../Magento/Tax/Controller/Adminhtml/Rate/Edit.php | 2 +- .../Tax/Controller/Adminhtml/Rate/Index.php | 2 +- .../Magento/Tax/Controller/Adminhtml/Rate/Save.php | 2 +- app/code/Magento/Tax/Controller/Adminhtml/Rule.php | 2 +- .../Tax/Controller/Adminhtml/Rule/Delete.php | 2 +- .../Magento/Tax/Controller/Adminhtml/Rule/Edit.php | 2 +- .../Tax/Controller/Adminhtml/Rule/Index.php | 2 +- .../Tax/Controller/Adminhtml/Rule/NewAction.php | 2 +- .../Magento/Tax/Controller/Adminhtml/Rule/Save.php | 2 +- app/code/Magento/Tax/Controller/Adminhtml/Tax.php | 2 +- .../Tax/Controller/Adminhtml/Tax/AjaxDelete.php | 2 +- .../Tax/Controller/Adminhtml/Tax/AjaxSave.php | 2 +- .../Adminhtml/Tax/IgnoreTaxNotification.php | 2 +- .../Magento/Tax/Controller/RegistryConstants.php | 2 +- .../CheckoutTotalsJsLayoutDataProvider.php | 2 +- app/code/Magento/Tax/Helper/Data.php | 2 +- .../Tax/Model/AggregateSalesReportTaxData.php | 2 +- .../Magento/Tax/Model/App/Action/ContextPlugin.php | 2 +- app/code/Magento/Tax/Model/Calculation.php | 2 +- .../Calculation/AbstractAggregateCalculator.php | 2 +- .../Tax/Model/Calculation/AbstractCalculator.php | 2 +- .../Tax/Model/Calculation/CalculatorFactory.php | 2 +- .../Tax/Model/Calculation/GrandTotalDetails.php | 2 +- .../Tax/Model/Calculation/GrandTotalRates.php | 2 +- app/code/Magento/Tax/Model/Calculation/Rate.php | 2 +- .../Tax/Model/Calculation/Rate/Converter.php | 2 +- .../Magento/Tax/Model/Calculation/Rate/Title.php | 2 +- .../Magento/Tax/Model/Calculation/RateFactory.php | 2 +- .../Magento/Tax/Model/Calculation/RateRegistry.php | 2 +- .../Tax/Model/Calculation/RateRepository.php | 2 +- .../Tax/Model/Calculation/RowBaseCalculator.php | 2 +- app/code/Magento/Tax/Model/Calculation/Rule.php | 2 +- .../Tax/Model/Calculation/Rule/Validator.php | 2 +- .../Tax/Model/Calculation/TaxRuleRegistry.php | 2 +- .../Tax/Model/Calculation/TotalBaseCalculator.php | 2 +- .../Tax/Model/Calculation/UnitBaseCalculator.php | 2 +- app/code/Magento/Tax/Model/ClassModel.php | 2 +- app/code/Magento/Tax/Model/ClassModelRegistry.php | 2 +- app/code/Magento/Tax/Model/Config.php | 2 +- app/code/Magento/Tax/Model/Config/Notification.php | 2 +- .../Tax/Model/Config/Price/IncludePrice.php | 2 +- .../Magento/Tax/Model/Config/Source/Apply/On.php | 2 +- .../Magento/Tax/Model/Config/Source/Basedon.php | 2 +- .../Magento/Tax/Model/Config/Source/Catalog.php | 2 +- app/code/Magento/Tax/Model/Config/TaxClass.php | 2 +- .../Tax/Model/Layout/DepersonalizePlugin.php | 2 +- app/code/Magento/Tax/Model/Plugin/OrderSave.php | 2 +- .../Tax/Model/Quote/GrandTotalDetailsPlugin.php | 2 +- .../Magento/Tax/Model/Quote/ToOrderConverter.php | 2 +- app/code/Magento/Tax/Model/Rate/Source.php | 2 +- .../Tax/Model/ResourceModel/Calculation.php | 2 +- .../Model/ResourceModel/Calculation/Collection.php | 2 +- .../Tax/Model/ResourceModel/Calculation/Rate.php | 2 +- .../ResourceModel/Calculation/Rate/Collection.php | 2 +- .../Model/ResourceModel/Calculation/Rate/Title.php | 2 +- .../Calculation/Rate/Title/Collection.php | 2 +- .../Tax/Model/ResourceModel/Calculation/Rule.php | 2 +- .../ResourceModel/Calculation/Rule/Collection.php | 2 +- .../Tax/Model/ResourceModel/Report/Collection.php | 2 +- .../Magento/Tax/Model/ResourceModel/Report/Tax.php | 2 +- .../Model/ResourceModel/Report/Tax/Createdat.php | 2 +- .../Model/ResourceModel/Report/Tax/Updatedat.php | 2 +- .../ResourceModel/Report/Updatedat/Collection.php | 2 +- .../Tax/Model/ResourceModel/Sales/Order/Tax.php | 2 +- .../ResourceModel/Sales/Order/Tax/Collection.php | 2 +- .../Magento/Tax/Model/ResourceModel/TaxClass.php | 2 +- .../Model/ResourceModel/TaxClass/Collection.php | 2 +- app/code/Magento/Tax/Model/Sales/Order/Details.php | 2 +- app/code/Magento/Tax/Model/Sales/Order/Tax.php | 2 +- .../Tax/Model/Sales/Order/TaxManagement.php | 2 +- .../Magento/Tax/Model/Sales/Pdf/Grandtotal.php | 2 +- app/code/Magento/Tax/Model/Sales/Pdf/Shipping.php | 2 +- app/code/Magento/Tax/Model/Sales/Pdf/Subtotal.php | 2 +- app/code/Magento/Tax/Model/Sales/Pdf/Tax.php | 2 +- .../Magento/Tax/Model/Sales/Quote/ItemDetails.php | 2 +- .../Magento/Tax/Model/Sales/Quote/QuoteDetails.php | 2 +- .../Model/Sales/Total/Quote/CommonTaxCollector.php | 2 +- .../Tax/Model/Sales/Total/Quote/Shipping.php | 2 +- .../Tax/Model/Sales/Total/Quote/Subtotal.php | 2 +- .../Magento/Tax/Model/Sales/Total/Quote/Tax.php | 2 +- .../Tax/Model/System/Config/Source/Algorithm.php | 2 +- .../Tax/Model/System/Config/Source/Apply.php | 2 +- .../Tax/Model/System/Config/Source/PriceType.php | 2 +- .../Tax/Model/System/Config/Source/Tax/Country.php | 2 +- .../System/Config/Source/Tax/Display/Type.php | 2 +- .../Tax/Model/System/Config/Source/Tax/Region.php | 2 +- .../Message/Notification/ApplyDiscountOnPrices.php | 2 +- .../System/Message/Notification/DiscountErrors.php | 2 +- .../System/Message/Notification/RoundingErrors.php | 2 +- .../Model/System/Message/NotificationInterface.php | 2 +- .../Tax/Model/System/Message/Notifications.php | 2 +- app/code/Magento/Tax/Model/TaxCalculation.php | 2 +- .../Magento/Tax/Model/TaxClass/AbstractType.php | 2 +- app/code/Magento/Tax/Model/TaxClass/Factory.php | 2 +- app/code/Magento/Tax/Model/TaxClass/Key.php | 2 +- app/code/Magento/Tax/Model/TaxClass/Management.php | 2 +- app/code/Magento/Tax/Model/TaxClass/Repository.php | 2 +- .../Magento/Tax/Model/TaxClass/Source/Customer.php | 2 +- .../Magento/Tax/Model/TaxClass/Source/Product.php | 2 +- .../Magento/Tax/Model/TaxClass/Type/Customer.php | 2 +- .../Magento/Tax/Model/TaxClass/Type/Product.php | 2 +- .../Tax/Model/TaxClass/Type/TypeInterface.php | 2 +- app/code/Magento/Tax/Model/TaxConfigProvider.php | 2 +- .../Magento/Tax/Model/TaxDetails/AppliedTax.php | 2 +- .../Tax/Model/TaxDetails/AppliedTaxRate.php | 2 +- .../Magento/Tax/Model/TaxDetails/ItemDetails.php | 2 +- .../Magento/Tax/Model/TaxDetails/TaxDetails.php | 2 +- app/code/Magento/Tax/Model/TaxRateCollection.php | 2 +- app/code/Magento/Tax/Model/TaxRateManagement.php | 2 +- app/code/Magento/Tax/Model/TaxRuleCollection.php | 2 +- app/code/Magento/Tax/Model/TaxRuleRepository.php | 2 +- .../Tax/Observer/AfterAddressSaveObserver.php | 2 +- .../Tax/Observer/CustomerLoggedInObserver.php | 2 +- .../Tax/Observer/GetPriceConfigurationObserver.php | 2 +- .../Tax/Observer/UpdateProductOptionsObserver.php | 2 +- .../Tax/Plugin/Checkout/CustomerData/Cart.php | 2 +- app/code/Magento/Tax/Pricing/Adjustment.php | 2 +- app/code/Magento/Tax/Pricing/Render/Adjustment.php | 2 +- app/code/Magento/Tax/Setup/InstallData.php | 2 +- app/code/Magento/Tax/Setup/InstallSchema.php | 2 +- app/code/Magento/Tax/Setup/TaxSetup.php | 2 +- app/code/Magento/Tax/Setup/UpgradeData.php | 2 +- .../Tax/Test/Unit/App/Action/ContextPluginTest.php | 2 +- .../Block/Adminhtml/Items/Price/RendererTest.php | 2 +- .../Unit/Block/Checkout/Shipping/PriceTest.php | 2 +- .../Tax/Test/Unit/Block/Checkout/ShippingTest.php | 2 +- .../Test/Unit/Block/Item/Price/RendererTest.php | 2 +- .../Controller/Adminhtml/Rate/AjaxLoadTest.php | 2 +- .../Adminhtml/Tax/IgnoreTaxNotificationTest.php | 2 +- .../Magento/Tax/Test/Unit/GetterSetterTest.php | 2 +- app/code/Magento/Tax/Test/Unit/Helper/DataTest.php | 2 +- .../Model/Calculation/CalculatorFactoryTest.php | 2 +- .../Unit/Model/Calculation/Rate/ConverterTest.php | 2 +- .../Unit/Model/Calculation/RateRegistryTest.php | 2 +- .../Unit/Model/Calculation/RateRepositoryTest.php | 2 +- .../Tax/Test/Unit/Model/Calculation/RateTest.php | 2 +- .../RowBaseAndTotalBaseCalculatorTestCase.php | 2 +- .../Model/Calculation/RowBaseCalculatorTest.php | 2 +- .../Unit/Model/Calculation/TaxRuleRegistryTest.php | 2 +- .../Model/Calculation/TotalBaseCalculatorTest.php | 2 +- .../Model/Calculation/UnitBaseCalculatorTest.php | 2 +- .../Tax/Test/Unit/Model/ClassModelRegistryTest.php | 2 +- .../Tax/Test/Unit/Model/Config/TaxClassTest.php | 2 +- .../Magento/Tax/Test/Unit/Model/ConfigTest.php | 2 +- .../Tax/Test/Unit/Model/Plugin/OrderSaveTest.php | 2 +- .../Model/Quote/GrandTotalDetailsPluginTest.php | 2 +- .../Test/Unit/Model/Quote/ToOrderConverterTest.php | 2 +- .../Unit/Model/ResourceModel/CalculationTest.php | 2 +- .../Unit/Model/Sales/Order/TaxManagementTest.php | 2 +- .../Sales/Total/Quote/CommonTaxCollectorTest.php | 2 +- .../Unit/Model/Sales/Total/Quote/ShippingTest.php | 2 +- .../Unit/Model/Sales/Total/Quote/SubtotalTest.php | 2 +- .../Test/Unit/Model/Sales/Total/Quote/TaxTest.php | 2 +- .../Notification/ApplyDiscountOnPricesTest.php | 2 +- .../Message/Notification/DiscountErrorsTest.php | 2 +- .../Message/Notification/RoundingErrorsTest.php | 2 +- .../Model/System/Message/NotificationsTest.php | 2 +- .../Tax/Test/Unit/Model/TaxCalculationTest.php | 2 +- .../Tax/Test/Unit/Model/TaxClass/FactoryTest.php | 2 +- .../Test/Unit/Model/TaxClass/ManagementTest.php | 2 +- .../Test/Unit/Model/TaxClass/RepositoryTest.php | 2 +- .../Unit/Model/TaxClass/Source/CustomerTest.php | 2 +- .../Unit/Model/TaxClass/Source/ProductTest.php | 2 +- .../Test/Unit/Model/TaxClass/Type/CustomerTest.php | 2 +- .../Test/Unit/Model/TaxClass/Type/ProductTest.php | 2 +- .../Tax/Test/Unit/Model/TaxConfigProviderTest.php | 2 +- .../Tax/Test/Unit/Model/TaxRateCollectionTest.php | 2 +- .../Tax/Test/Unit/Model/TaxRateManagementTest.php | 2 +- .../Tax/Test/Unit/Model/TaxRuleCollectionTest.php | 2 +- .../Tax/Test/Unit/Model/TaxRuleRepositoryTest.php | 2 +- .../Unit/Observer/AfterAddressSaveObserverTest.php | 2 +- .../Unit/Observer/CustomerLoggedInObserverTest.php | 2 +- .../Observer/GetPriceConfigurationObserverTest.php | 2 +- .../Observer/UpdateProductOptionsObserverTest.php | 2 +- .../Unit/Plugin/Checkout/CustomerData/CartTest.php | 2 +- .../Tax/Test/Unit/Pricing/AdjustmentTest.php | 2 +- .../Test/Unit/Pricing/Render/AdjustmentTest.php | 2 +- .../Magento/Tax/Test/Unit/Setup/TaxSetupTest.php | 2 +- app/code/Magento/Tax/etc/acl.xml | 2 +- app/code/Magento/Tax/etc/adminhtml/di.xml | 2 +- app/code/Magento/Tax/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Tax/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Tax/etc/adminhtml/system.xml | 2 +- app/code/Magento/Tax/etc/catalog_attributes.xml | 2 +- app/code/Magento/Tax/etc/config.xml | 2 +- app/code/Magento/Tax/etc/crontab.xml | 2 +- app/code/Magento/Tax/etc/di.xml | 2 +- app/code/Magento/Tax/etc/events.xml | 2 +- app/code/Magento/Tax/etc/extension_attributes.xml | 2 +- app/code/Magento/Tax/etc/fieldset.xml | 2 +- app/code/Magento/Tax/etc/frontend/di.xml | 2 +- app/code/Magento/Tax/etc/frontend/events.xml | 2 +- app/code/Magento/Tax/etc/module.xml | 2 +- app/code/Magento/Tax/etc/pdf.xml | 2 +- app/code/Magento/Tax/etc/sales.xml | 2 +- app/code/Magento/Tax/etc/webapi.xml | 2 +- app/code/Magento/Tax/registration.php | 2 +- .../layout/sales_creditmemo_item_price.xml | 2 +- .../adminhtml/layout/sales_invoice_item_price.xml | 2 +- .../layout/sales_order_create_item_price.xml | 2 +- .../adminhtml/layout/sales_order_item_price.xml | 2 +- .../Tax/view/adminhtml/layout/tax_rate_block.xml | 2 +- .../view/adminhtml/layout/tax_rate_exportcsv.xml | 2 +- .../view/adminhtml/layout/tax_rate_exportxml.xml | 2 +- .../Tax/view/adminhtml/layout/tax_rate_index.xml | 2 +- .../Tax/view/adminhtml/layout/tax_rule_block.xml | 2 +- .../Tax/view/adminhtml/layout/tax_rule_edit.xml | 2 +- .../Tax/view/adminhtml/layout/tax_rule_index.xml | 2 +- .../view/adminhtml/templates/class/page/edit.phtml | 2 +- .../view/adminhtml/templates/items/price/row.phtml | 2 +- .../adminhtml/templates/items/price/total.phtml | 2 +- .../adminhtml/templates/items/price/unit.phtml | 2 +- .../templates/order/create/items/price/row.phtml | 2 +- .../templates/order/create/items/price/total.phtml | 2 +- .../templates/order/create/items/price/unit.phtml | 2 +- .../Tax/view/adminhtml/templates/rate/form.phtml | 2 +- .../Tax/view/adminhtml/templates/rate/js.phtml | 2 +- .../Tax/view/adminhtml/templates/rate/title.phtml | 2 +- .../Tax/view/adminhtml/templates/rule/edit.phtml | 2 +- .../view/adminhtml/templates/rule/rate/form.phtml | 2 +- .../adminhtml/templates/toolbar/class/add.phtml | 2 +- .../adminhtml/templates/toolbar/class/save.phtml | 2 +- .../adminhtml/templates/toolbar/rate/add.phtml | 2 +- .../adminhtml/templates/toolbar/rate/save.phtml | 2 +- .../adminhtml/templates/toolbar/rule/add.phtml | 2 +- .../adminhtml/templates/toolbar/rule/save.phtml | 2 +- .../Magento/Tax/view/adminhtml/web/js/bootstrap.js | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../view/base/templates/pricing/adjustment.phtml | 2 +- .../base/templates/pricing/adjustment/bundle.phtml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../checkout_cart_sidebar_total_renderers.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../layout/checkout_item_price_renderers.xml | 2 +- .../frontend/layout/sales_email_item_price.xml | 2 +- .../frontend/layout/sales_order_item_price.xml | 2 +- .../checkout/cart/item/price/sidebar.phtml | 2 +- .../frontend/templates/checkout/discount.phtml | 2 +- .../frontend/templates/checkout/grandtotal.phtml | 2 +- .../frontend/templates/checkout/shipping.phtml | 2 +- .../templates/checkout/shipping/price.phtml | 2 +- .../frontend/templates/checkout/subtotal.phtml | 2 +- .../Tax/view/frontend/templates/checkout/tax.phtml | 2 +- .../frontend/templates/email/items/price/row.phtml | 2 +- .../view/frontend/templates/item/price/row.phtml | 2 +- .../item/price/total_after_discount.phtml | 2 +- .../view/frontend/templates/item/price/unit.phtml | 2 +- .../Tax/view/frontend/templates/order/tax.phtml | 2 +- .../js/view/checkout/cart/totals/grand-total.js | 2 +- .../web/js/view/checkout/cart/totals/shipping.js | 2 +- .../web/js/view/checkout/cart/totals/tax.js | 2 +- .../js/view/checkout/minicart/subtotal/totals.js | 2 +- .../web/js/view/checkout/shipping_method/price.js | 2 +- .../web/js/view/checkout/summary/grand-total.js | 2 +- .../view/checkout/summary/item/details/subtotal.js | 2 +- .../web/js/view/checkout/summary/shipping.js | 2 +- .../web/js/view/checkout/summary/subtotal.js | 2 +- .../frontend/web/js/view/checkout/summary/tax.js | 2 +- .../template/checkout/cart/totals/grand-total.html | 2 +- .../template/checkout/cart/totals/shipping.html | 2 +- .../web/template/checkout/cart/totals/tax.html | 2 +- .../checkout/minicart/subtotal/totals.html | 2 +- .../template/checkout/shipping_method/price.html | 2 +- .../web/template/checkout/summary/grand-total.html | 2 +- .../checkout/summary/item/details/subtotal.html | 2 +- .../web/template/checkout/summary/shipping.html | 2 +- .../web/template/checkout/summary/subtotal.html | 2 +- .../web/template/checkout/summary/tax.html | 2 +- .../Block/Adminhtml/Rate/Grid/Renderer/Country.php | 2 +- .../Block/Adminhtml/Rate/ImportExport.php | 2 +- .../Block/Adminhtml/Rate/ImportExportHeader.php | 2 +- .../TaxImportExport/Controller/Adminhtml/Rate.php | 2 +- .../Controller/Adminhtml/Rate/ExportCsv.php | 2 +- .../Controller/Adminhtml/Rate/ExportPost.php | 2 +- .../Controller/Adminhtml/Rate/ExportXml.php | 2 +- .../Controller/Adminhtml/Rate/ImportExport.php | 2 +- .../Controller/Adminhtml/Rate/ImportPost.php | 2 +- .../Model/Rate/CsvImportHandler.php | 2 +- app/code/Magento/TaxImportExport/etc/acl.xml | 2 +- .../Magento/TaxImportExport/etc/adminhtml/menu.xml | 2 +- .../TaxImportExport/etc/adminhtml/routes.xml | 2 +- app/code/Magento/TaxImportExport/etc/module.xml | 2 +- app/code/Magento/TaxImportExport/registration.php | 2 +- .../view/adminhtml/layout/tax_rate_block.xml | 2 +- .../view/adminhtml/layout/tax_rule_edit.xml | 2 +- .../view/adminhtml/templates/importExport.phtml | 2 +- .../adminhtml/templates/importExportHeader.phtml | 2 +- .../Theme/Api/Data/DesignConfigDataInterface.php | 2 +- .../Theme/Api/Data/DesignConfigInterface.php | 2 +- .../Theme/Api/DesignConfigRepositoryInterface.php | 2 +- .../Adminhtml/Design/Config/Edit/BackButton.php | 2 +- .../Design/Config/Edit/SaveAndContinueButton.php | 2 +- .../Adminhtml/Design/Config/Edit/SaveButton.php | 2 +- .../Block/Adminhtml/Design/Config/Edit/Scope.php | 2 +- .../Theme/Block/Adminhtml/System/Design/Theme.php | 2 +- .../Block/Adminhtml/System/Design/Theme/Edit.php | 2 +- .../System/Design/Theme/Edit/AbstractTab.php | 2 +- .../Adminhtml/System/Design/Theme/Edit/Form.php | 2 +- .../System/Design/Theme/Edit/Form/Element/File.php | 2 +- .../Design/Theme/Edit/Form/Element/Image.php | 2 +- .../Design/Theme/Edit/Form/Element/Links.php | 2 +- .../Adminhtml/System/Design/Theme/Edit/Tab/Css.php | 2 +- .../System/Design/Theme/Edit/Tab/General.php | 2 +- .../Adminhtml/System/Design/Theme/Edit/Tab/Js.php | 2 +- .../Adminhtml/System/Design/Theme/Edit/Tabs.php | 2 +- .../Block/Adminhtml/Wysiwyg/Files/Content.php | 2 +- .../Adminhtml/Wysiwyg/Files/Content/Files.php | 2 +- .../Adminhtml/Wysiwyg/Files/Content/Uploader.php | 2 +- .../Theme/Block/Adminhtml/Wysiwyg/Files/Tree.php | 2 +- app/code/Magento/Theme/Block/Html/Breadcrumbs.php | 2 +- app/code/Magento/Theme/Block/Html/Footer.php | 2 +- app/code/Magento/Theme/Block/Html/Header.php | 2 +- app/code/Magento/Theme/Block/Html/Header/Logo.php | 2 +- app/code/Magento/Theme/Block/Html/Notices.php | 2 +- app/code/Magento/Theme/Block/Html/Pager.php | 2 +- app/code/Magento/Theme/Block/Html/Title.php | 2 +- app/code/Magento/Theme/Block/Html/Topmenu.php | 2 +- app/code/Magento/Theme/Block/Html/Welcome.php | 2 +- .../Console/Command/ThemeUninstallCommand.php | 2 +- .../Controller/Adminhtml/Design/Config/Edit.php | 2 +- .../Adminhtml/Design/Config/FileUploader/Save.php | 2 +- .../Controller/Adminhtml/Design/Config/Index.php | 2 +- .../Controller/Adminhtml/Design/Config/Save.php | 2 +- .../Controller/Adminhtml/System/Design/Theme.php | 2 +- .../Adminhtml/System/Design/Theme/Delete.php | 2 +- .../Adminhtml/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 +- .../Adminhtml/System/Design/Theme/NewAction.php | 2 +- .../Adminhtml/System/Design/Theme/Save.php | 2 +- .../Adminhtml/System/Design/Theme/UploadCss.php | 2 +- .../Adminhtml/System/Design/Theme/UploadJs.php | 2 +- .../Adminhtml/System/Design/Wysiwyg/Files.php | 2 +- .../System/Design/Wysiwyg/Files/Contents.php | 2 +- .../System/Design/Wysiwyg/Files/DeleteFiles.php | 2 +- .../System/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 +- .../System/Design/Wysiwyg/Files/PreviewImage.php | 2 +- .../System/Design/Wysiwyg/Files/TreeJson.php | 2 +- .../System/Design/Wysiwyg/Files/Upload.php | 2 +- .../Theme/Controller/Result/MessagePlugin.php | 2 +- app/code/Magento/Theme/CustomerData/Messages.php | 2 +- app/code/Magento/Theme/Helper/Storage.php | 2 +- app/code/Magento/Theme/Helper/Theme.php | 2 +- app/code/Magento/Theme/Model/Config.php | 2 +- .../Magento/Theme/Model/Config/Customization.php | 2 +- app/code/Magento/Theme/Model/CopyService.php | 2 +- .../Magento/Theme/Model/Data/Design/Config.php | 2 +- .../Theme/Model/Data/Design/Config/Data.php | 2 +- .../Theme/Model/Data/Design/ConfigFactory.php | 2 +- app/code/Magento/Theme/Model/Design.php | 2 +- .../Theme/Model/Design/Backend/Exceptions.php | 2 +- .../Magento/Theme/Model/Design/Backend/Favicon.php | 2 +- .../Magento/Theme/Model/Design/Backend/File.php | 2 +- .../Magento/Theme/Model/Design/Backend/Image.php | 2 +- .../Magento/Theme/Model/Design/Backend/Logo.php | 2 +- .../Magento/Theme/Model/Design/Backend/Theme.php | 2 +- .../Theme/Model/Design/BackendModelFactory.php | 2 +- .../Theme/Model/Design/Config/DataProvider.php | 2 +- .../Design/Config/DataProvider/DataLoader.php | 2 +- .../Design/Config/DataProvider/MetadataLoader.php | 2 +- .../Design/Config/FileUploader/FileProcessor.php | 2 +- .../Theme/Model/Design/Config/MetadataProvider.php | 2 +- .../Design/Config/MetadataProviderInterface.php | 2 +- .../Magento/Theme/Model/Design/Config/Plugin.php | 2 +- .../Magento/Theme/Model/Design/Config/Storage.php | 2 +- .../Theme/Model/Design/Config/Validator.php | 2 +- .../Theme/Model/Design/Config/ValueChecker.php | 2 +- .../Theme/Model/Design/Config/ValueProcessor.php | 2 +- .../Magento/Theme/Model/Design/Theme/Label.php | 2 +- .../Magento/Theme/Model/DesignConfigRepository.php | 2 +- app/code/Magento/Theme/Model/Favicon/Favicon.php | 2 +- .../Magento/Theme/Model/Indexer/Design/Config.php | 2 +- .../Model/Indexer/Design/Config/FieldsProvider.php | 2 +- .../Model/Indexer/Design/Config/Plugin/Store.php | 2 +- .../Indexer/Design/Config/Plugin/StoreGroup.php | 2 +- .../Model/Indexer/Design/Config/Plugin/Website.php | 2 +- app/code/Magento/Theme/Model/Layout/Config.php | 2 +- .../Theme/Model/Layout/Config/Converter.php | 2 +- .../Magento/Theme/Model/Layout/Config/Reader.php | 2 +- .../Theme/Model/Layout/Config/SchemaLocator.php | 2 +- .../Magento/Theme/Model/Layout/Source/Layout.php | 2 +- .../Theme/Model/PageLayout/Config/Builder.php | 2 +- .../Magento/Theme/Model/ResourceModel/Design.php | 2 +- .../Model/ResourceModel/Design/Collection.php | 2 +- .../Theme/Model/ResourceModel/Design/Config.php | 2 +- .../ResourceModel/Design/Config/Collection.php | 2 +- .../Design/Config/Scope/Collection.php | 2 +- .../Magento/Theme/Model/ResourceModel/Theme.php | 2 +- .../Theme/Model/ResourceModel/Theme/Collection.php | 2 +- .../ResourceModel/Theme/Customization/Update.php | 2 +- .../Model/ResourceModel/Theme/Data/Collection.php | 2 +- .../Theme/Model/ResourceModel/Theme/File.php | 2 +- .../Model/ResourceModel/Theme/File/Collection.php | 2 +- .../Model/ResourceModel/Theme/Grid/Collection.php | 2 +- app/code/Magento/Theme/Model/Theme.php | 2 +- app/code/Magento/Theme/Model/Theme/Collection.php | 2 +- .../Theme/Model/Theme/Customization/Config.php | 2 +- .../Model/Theme/Customization/File/CustomCss.php | 2 +- app/code/Magento/Theme/Model/Theme/Data.php | 2 +- .../Magento/Theme/Model/Theme/Data/Collection.php | 2 +- .../Magento/Theme/Model/Theme/Domain/Physical.php | 2 +- .../Magento/Theme/Model/Theme/Domain/Staging.php | 2 +- .../Magento/Theme/Model/Theme/Domain/Virtual.php | 2 +- app/code/Magento/Theme/Model/Theme/File.php | 2 +- .../Magento/Theme/Model/Theme/FileProvider.php | 2 +- app/code/Magento/Theme/Model/Theme/Image/Path.php | 2 +- .../Theme/Model/Theme/Plugin/Registration.php | 2 +- .../Magento/Theme/Model/Theme/Registration.php | 2 +- app/code/Magento/Theme/Model/Theme/Resolver.php | 2 +- app/code/Magento/Theme/Model/Theme/SingleFile.php | 2 +- .../Magento/Theme/Model/Theme/Source/Theme.php | 2 +- .../Theme/Model/Theme/ThemeDependencyChecker.php | 2 +- .../Magento/Theme/Model/Theme/ThemePackageInfo.php | 2 +- .../Magento/Theme/Model/Theme/ThemeProvider.php | 2 +- .../Magento/Theme/Model/Theme/ThemeUninstaller.php | 2 +- app/code/Magento/Theme/Model/ThemeValidator.php | 2 +- app/code/Magento/Theme/Model/Uploader/Service.php | 2 +- .../Magento/Theme/Model/Url/Plugin/Signature.php | 2 +- app/code/Magento/Theme/Model/View/Design.php | 2 +- app/code/Magento/Theme/Model/Wysiwyg/Storage.php | 2 +- .../Observer/ApplyThemeCustomizationObserver.php | 2 +- .../Observer/CheckThemeIsAssignedObserver.php | 2 +- .../Observer/CleanThemeRelatedContentObserver.php | 2 +- app/code/Magento/Theme/Setup/InstallData.php | 2 +- app/code/Magento/Theme/Setup/InstallSchema.php | 2 +- app/code/Magento/Theme/Setup/RecurringData.php | 2 +- app/code/Magento/Theme/Setup/UpgradeData.php | 2 +- .../Design/Config/Edit/BackButtonTest.php | 2 +- .../Design/Config/Edit/SaveButtonTest.php | 2 +- .../Adminhtml/Design/Config/Edit/ScopeTest.php | 2 +- .../Design/Theme/Edit/Form/Element/FileTest.php | 2 +- .../System/Design/Theme/Edit/FormTest.php | 2 +- .../Adminhtml/System/Design/Theme/Tab/CssTest.php | 2 +- .../Adminhtml/System/Design/Theme/Tab/JsTest.php | 2 +- .../System/Design/Theme/TabAbstractTest.php | 2 +- .../Block/Adminhtml/Wysiwyg/Files/ContentTest.php | 2 +- .../Block/Adminhtml/Wysiwyg/Files/TreeTest.php | 2 +- .../Theme/Test/Unit/Block/Html/FooterTest.php | 2 +- .../Theme/Test/Unit/Block/Html/Header/LogoTest.php | 2 +- .../Theme/Test/Unit/Block/Html/HeaderTest.php | 2 +- .../Theme/Test/Unit/Block/Html/TitleTest.php | 2 +- .../Theme/Test/Unit/Block/Html/TopmenuTest.php | 2 +- .../Console/Command/ThemeUninstallCommandTest.php | 2 +- .../Adminhtml/Design/Config/EditTest.php | 2 +- .../Design/Config/FileUploader/SaveTest.php | 2 +- .../Adminhtml/Design/Config/IndexTest.php | 2 +- .../Adminhtml/Design/Config/SaveTest.php | 2 +- .../Adminhtml/System/Design/Theme/DeleteTest.php | 2 +- .../System/Design/Theme/DownloadCssTest.php | 2 +- .../System/Design/Theme/DownloadCustomCssTest.php | 2 +- .../Adminhtml/System/Design/Theme/EditTest.php | 2 +- .../Adminhtml/System/Design/Theme/GridTest.php | 2 +- .../Adminhtml/System/Design/Theme/IndexTest.php | 2 +- .../Adminhtml/System/Design/Theme/SaveTest.php | 2 +- .../System/Design/Theme/UploadCssTest.php | 2 +- .../Adminhtml/System/Design/Theme/UploadJsTest.php | 2 +- .../Adminhtml/System/Design/ThemeTest.php | 2 +- .../System/Design/Wysiwyg/Files/ContentsTest.php | 2 +- .../Design/Wysiwyg/Files/DeleteFilesTest.php | 2 +- .../Design/Wysiwyg/Files/DeleteFolderTest.php | 2 +- .../System/Design/Wysiwyg/Files/IndexTest.php | 2 +- .../System/Design/Wysiwyg/Files/OnInsertTest.php | 2 +- .../Unit/Controller/Result/MessagePluginTest.php | 2 +- .../Theme/Test/Unit/CustomerData/MessagesTest.php | 2 +- .../Magento/Theme/Test/Unit/Helper/StorageTest.php | 2 +- .../Magento/Theme/Test/Unit/Helper/ThemeTest.php | 2 +- .../Test/Unit/Model/Config/CustomizationTest.php | 2 +- .../Theme/Test/Unit/Model/Config/ValidatorTest.php | 2 +- .../Magento/Theme/Test/Unit/Model/ConfigTest.php | 2 +- .../Theme/Test/Unit/Model/CopyServiceTest.php | 2 +- .../Unit/Model/Data/Design/ConfigFactoryTest.php | 2 +- .../Unit/Model/Design/Backend/ExceptionsTest.php | 2 +- .../Test/Unit/Model/Design/Backend/FileTest.php | 2 +- .../Test/Unit/Model/Design/Backend/ThemeTest.php | 2 +- .../Unit/Model/Design/BackendModelFactoryTest.php | 2 +- .../Design/Config/DataProvider/DataLoaderTest.php | 2 +- .../Config/DataProvider/MetadataLoaderTest.php | 2 +- .../Unit/Model/Design/Config/DataProviderTest.php | 2 +- .../Config/FileUploader/FileProcessorTest.php | 2 +- .../Test/Unit/Model/Design/Config/PluginTest.php | 2 +- .../Test/Unit/Model/Design/Config/StorageTest.php | 2 +- .../Unit/Model/Design/Config/ValueCheckerTest.php | 2 +- .../Model/Design/Config/ValueProcessorTest.php | 2 +- .../Test/Unit/Model/DesignConfigRepositoryTest.php | 2 +- .../Magento/Theme/Test/Unit/Model/DesignTest.php | 2 +- .../Theme/Test/Unit/Model/Favicon/FaviconTest.php | 2 +- .../Design/Config/Plugin/StoreGroupTest.php | 2 +- .../Indexer/Design/Config/Plugin/StoreTest.php | 2 +- .../Indexer/Design/Config/Plugin/WebsiteTest.php | 2 +- .../Test/Unit/Model/Indexer/Design/ConfigTest.php | 2 +- .../Unit/Model/Layout/Config/ConverterTest.php | 2 +- .../Unit/Model/Layout/Config/SchemaLocatorTest.php | 2 +- .../Model/Layout/Config/_files/page_layouts.xml | 2 +- .../Theme/Test/Unit/Model/Layout/ConfigTest.php | 2 +- .../Test/Unit/Model/Layout/Source/LayoutTest.php | 2 +- .../Unit/Model/PageLayout/Config/BuilderTest.php | 2 +- .../Design/Config/Scope/CollectionTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/CollectionTest.php | 2 +- .../Unit/Model/Theme/Customization/ConfigTest.php | 2 +- .../Theme/Customization/File/CustomCssTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/DataTest.php | 2 +- .../Test/Unit/Model/Theme/Domain/PhysicalTest.php | 2 +- .../Test/Unit/Model/Theme/Domain/StagingTest.php | 2 +- .../Test/Unit/Model/Theme/Domain/VirtualTest.php | 2 +- .../Test/Unit/Model/Theme/FileProviderTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/FileTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/Image/PathTest.php | 2 +- .../Unit/Model/Theme/Plugin/RegistrationTest.php | 2 +- .../Test/Unit/Model/Theme/RegistrationTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/ResolverTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/SingleFileTest.php | 2 +- .../Test/Unit/Model/Theme/Source/ThemeTest.php | 2 +- .../Model/Theme/ThemeDependencyCheckerTest.php | 2 +- .../Test/Unit/Model/Theme/ThemePackageInfoTest.php | 2 +- .../Test/Unit/Model/Theme/ThemeProviderTest.php | 2 +- .../Test/Unit/Model/Theme/ThemeUninstallerTest.php | 2 +- .../Theme/Test/Unit/Model/Theme/ValidationTest.php | 2 +- .../Magento/Theme/Test/Unit/Model/ThemeTest.php | 2 +- .../Theme/Test/Unit/Model/ThemeValidatorTest.php | 2 +- .../Theme/Test/Unit/Model/Uploader/ServiceTest.php | 2 +- .../Test/Unit/Model/Url/Plugin/SignatureTest.php | 2 +- .../Theme/Test/Unit/Model/View/DesignTest.php | 2 +- .../Theme/Test/Unit/Model/Wysiwyg/StorageTest.php | 2 +- .../Model/_files/frontend/magento_iphone/theme.xml | 2 +- .../frontend/magento_iphone/theme_invalid.xml | 2 +- .../ApplyThemeCustomizationObserverTest.php | 2 +- .../Observer/CheckThemeIsAssignedObserverTest.php | 2 +- .../CleanThemeRelatedContentObserverTest.php | 2 +- .../Design/Config/SearchRobots/ResetButtonTest.php | 2 +- .../Ui/Component/Listing/Column/EditActionTest.php | 2 +- .../Ui/Component/Design/Config/DataProvider.php | 2 +- .../Design/Config/SearchRobots/ResetButton.php | 2 +- .../Ui/Component/Listing/Column/EditAction.php | 2 +- app/code/Magento/Theme/etc/acl.xml | 2 +- app/code/Magento/Theme/etc/adminhtml/di.xml | 2 +- app/code/Magento/Theme/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Theme/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Theme/etc/config.xml | 4 ++-- app/code/Magento/Theme/etc/di.xml | 2 +- app/code/Magento/Theme/etc/events.xml | 2 +- .../Magento/Theme/etc/extension_attributes.xml | 2 +- app/code/Magento/Theme/etc/frontend/di.xml | 2 +- app/code/Magento/Theme/etc/frontend/events.xml | 2 +- app/code/Magento/Theme/etc/frontend/sections.xml | 2 +- app/code/Magento/Theme/etc/indexer.xml | 2 +- app/code/Magento/Theme/etc/module.xml | 2 +- app/code/Magento/Theme/etc/mview.xml | 2 +- app/code/Magento/Theme/i18n/en_US.csv | 2 +- app/code/Magento/Theme/registration.php | 2 +- .../layout/adminhtml_system_design_theme_block.xml | 2 +- .../layout/adminhtml_system_design_theme_edit.xml | 2 +- .../layout/adminhtml_system_design_theme_grid.xml | 2 +- .../layout/adminhtml_system_design_theme_index.xml | 2 +- ...inhtml_system_design_wysiwyg_files_contents.xml | 2 +- ...adminhtml_system_design_wysiwyg_files_index.xml | 2 +- .../adminhtml/layout/theme_design_config_edit.xml | 2 +- .../adminhtml/layout/theme_design_config_index.xml | 2 +- app/code/Magento/Theme/view/adminhtml/layouts.xml | 2 +- .../view/adminhtml/page_layout/admin-1column.xml | 2 +- .../adminhtml/page_layout/admin-2columns-left.xml | 2 +- .../view/adminhtml/page_layout/admin-empty.xml | 2 +- .../view/adminhtml/page_layout/admin-login.xml | 2 +- .../Theme/view/adminhtml/requirejs-config.js | 2 +- .../view/adminhtml/templates/browser/content.phtml | 2 +- .../templates/browser/content/files.phtml | 2 +- .../templates/browser/content/uploader.phtml | 2 +- .../templates/design/config/edit/scope.phtml | 2 +- .../Theme/view/adminhtml/templates/tabs/css.phtml | 2 +- .../adminhtml/templates/tabs/fieldset/js.phtml | 2 +- .../Theme/view/adminhtml/templates/tabs/js.phtml | 2 +- .../Theme/view/adminhtml/templates/title.phtml | 2 +- .../adminhtml/ui_component/design_config_form.xml | 2 +- .../ui_component/design_config_listing.xml | 2 +- .../Magento/Theme/view/adminhtml/web/css/theme.css | 2 +- .../Theme/view/adminhtml/web/js/bootstrap.js | 2 +- .../Theme/view/adminhtml/web/js/custom-js-list.js | 2 +- .../Magento/Theme/view/adminhtml/web/js/form.js | 2 +- .../Theme/view/adminhtml/web/js/sortable.js | 2 +- .../Theme/view/adminhtml/web/prototype/magento.css | 2 +- app/code/Magento/Theme/view/base/layouts.xml | 2 +- .../Magento/Theme/view/base/page_layout/empty.xml | 2 +- .../Magento/Theme/view/base/requirejs-config.js | 2 +- .../Magento/Theme/view/base/templates/root.phtml | 2 +- .../Magento/Theme/view/frontend/layout/default.xml | 2 +- .../view/frontend/layout/default_head_blocks.xml | 2 +- .../Theme/view/frontend/layout/page_calendar.xml | 2 +- .../Magento/Theme/view/frontend/layout/print.xml | 2 +- app/code/Magento/Theme/view/frontend/layouts.xml | 2 +- .../Theme/view/frontend/page_layout/1column.xml | 2 +- .../view/frontend/page_layout/2columns-left.xml | 2 +- .../view/frontend/page_layout/2columns-right.xml | 2 +- .../Theme/view/frontend/page_layout/3columns.xml | 2 +- .../Theme/view/frontend/requirejs-config.js | 2 +- .../frontend/templates/callouts/left_col.phtml | 2 +- .../frontend/templates/callouts/right_col.phtml | 2 +- .../frontend/templates/html/absolute_footer.phtml | 2 +- .../Theme/view/frontend/templates/html/block.phtml | 2 +- .../view/frontend/templates/html/breadcrumbs.phtml | 2 +- .../view/frontend/templates/html/bugreport.phtml | 2 +- .../view/frontend/templates/html/collapsible.phtml | 2 +- .../view/frontend/templates/html/container.phtml | 2 +- .../view/frontend/templates/html/copyright.phtml | 2 +- .../view/frontend/templates/html/footer.phtml | 2 +- .../view/frontend/templates/html/header.phtml | 2 +- .../view/frontend/templates/html/header/logo.phtml | 2 +- .../view/frontend/templates/html/messages.phtml | 2 +- .../view/frontend/templates/html/notices.phtml | 2 +- .../Theme/view/frontend/templates/html/pager.phtml | 2 +- .../Theme/view/frontend/templates/html/print.phtml | 2 +- .../view/frontend/templates/html/sections.phtml | 2 +- .../Theme/view/frontend/templates/html/skip.phtml | 2 +- .../view/frontend/templates/html/skiptarget.phtml | 2 +- .../Theme/view/frontend/templates/html/title.phtml | 2 +- .../view/frontend/templates/html/topmenu.phtml | 2 +- .../view/frontend/templates/js/calendar.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../Theme/view/frontend/templates/js/cookie.phtml | 2 +- .../view/frontend/templates/js/polyfill.phtml | 2 +- .../Theme/view/frontend/templates/link.phtml | 2 +- .../Theme/view/frontend/templates/messages.phtml | 2 +- .../frontend/templates/page/js/require_js.phtml | 2 +- .../Theme/view/frontend/templates/template.phtml | 2 +- .../Theme/view/frontend/templates/text.phtml | 2 +- .../Magento/Theme/view/frontend/web/css/tabs.css | 2 +- .../Theme/view/frontend/web/css/validate.css | 2 +- .../Theme/view/frontend/web/js/row-builder.js | 2 +- .../Magento/Theme/view/frontend/web/js/truncate.js | 2 +- .../Theme/view/frontend/web/js/view/messages.js | 2 +- app/code/Magento/Theme/view/frontend/web/menu.js | 2 +- .../Theme/view/frontend/web/prototype/magento.css | 2 +- .../Translation/App/Config/Type/Translation.php | 2 +- .../Magento/Translation/Block/Html/Head/Config.php | 2 +- app/code/Magento/Translation/Block/Js.php | 2 +- .../Console/Command/UninstallLanguageCommand.php | 2 +- .../Magento/Translation/Controller/Ajax/Index.php | 2 +- app/code/Magento/Translation/Model/FileManager.php | 2 +- .../Translation/Model/Inline/CacheManager.php | 2 +- .../Magento/Translation/Model/Inline/Config.php | 2 +- .../Magento/Translation/Model/Inline/Parser.php | 2 +- app/code/Magento/Translation/Model/Js/Config.php | 2 +- .../Model/Js/Config/Source/Strategy.php | 2 +- .../Translation/Model/Js/DataProviderInterface.php | 2 +- .../Magento/Translation/Model/Js/PreProcessor.php | 2 +- .../Translation/Model/Json/PreProcessor.php | 2 +- .../Model/ResourceModel/StringUtils.php | 2 +- .../Translation/Model/ResourceModel/Translate.php | 2 +- .../Model/Source/InitialTranslationSource.php | 2 +- app/code/Magento/Translation/Model/StringUtils.php | 2 +- .../Magento/Translation/Setup/InstallSchema.php | 2 +- .../Test/Unit/App/Config/Type/TranslationTest.php | 2 +- .../Magento/Translation/Test/Unit/Block/JsTest.php | 2 +- .../Command/UninstallLanguageCommandTest.php | 2 +- .../Test/Unit/Model/FileManagerTest.php | 2 +- .../Test/Unit/Model/Inline/CacheManagerTest.php | 2 +- .../Test/Unit/Model/Inline/ConfigTest.php | 2 +- .../Test/Unit/Model/Inline/ParserTest.php | 2 +- .../Unit/Model/Js/Config/Source/StrategyTest.php | 2 +- .../Translation/Test/Unit/Model/Js/ConfigTest.php | 2 +- .../Test/Unit/Model/Js/DataProviderTest.php | 2 +- .../Test/Unit/Model/Js/PreProcessorTest.php | 2 +- .../Test/Unit/Model/Json/PreProcessorTest.php | 2 +- .../Model/Source/InitialTranslationSourceTest.php | 2 +- app/code/Magento/Translation/etc/adminhtml/di.xml | 2 +- .../Magento/Translation/etc/adminhtml/routes.xml | 2 +- .../Magento/Translation/etc/adminhtml/system.xml | 2 +- app/code/Magento/Translation/etc/cache.xml | 2 +- app/code/Magento/Translation/etc/config.xml | 2 +- app/code/Magento/Translation/etc/di.xml | 2 +- .../Magento/Translation/etc/frontend/routes.xml | 2 +- app/code/Magento/Translation/etc/module.xml | 2 +- app/code/Magento/Translation/registration.php | 2 +- .../adminhtml/templates/translate_inline.phtml | 2 +- .../view/base/templates/translate.phtml | 2 +- .../Translation/view/base/web/js/i18n-config.js | 2 +- .../Translation/view/frontend/requirejs-config.js | 2 +- .../view/frontend/templates/translate_inline.phtml | 2 +- .../Translation/view/frontend/web/add-class.js | 2 +- .../Magento/Ui/Api/BookmarkManagementInterface.php | 2 +- .../Magento/Ui/Api/BookmarkRepositoryInterface.php | 2 +- .../Ui/Api/Data/BookmarkExtensionInterface.php | 2 +- app/code/Magento/Ui/Api/Data/BookmarkInterface.php | 2 +- .../Ui/Api/Data/BookmarkSearchResultsInterface.php | 2 +- .../Magento/Ui/Block/Component/StepsWizard.php | 2 +- .../Block/Component/StepsWizard/StepAbstract.php | 2 +- .../Block/Component/StepsWizard/StepInterface.php | 2 +- app/code/Magento/Ui/Block/Logger.php | 2 +- .../Magento/Ui/Component/AbstractComponent.php | 2 +- app/code/Magento/Ui/Component/Action.php | 2 +- app/code/Magento/Ui/Component/Bookmark.php | 2 +- app/code/Magento/Ui/Component/Container.php | 2 +- app/code/Magento/Ui/Component/Control/Action.php | 2 +- .../Magento/Ui/Component/Control/ActionPool.php | 2 +- app/code/Magento/Ui/Component/Control/Button.php | 2 +- .../Magento/Ui/Component/Control/Container.php | 2 +- app/code/Magento/Ui/Component/Control/Item.php | 2 +- app/code/Magento/Ui/Component/Control/Link.php | 2 +- .../Magento/Ui/Component/Control/SplitButton.php | 2 +- app/code/Magento/Ui/Component/DataSource.php | 2 +- app/code/Magento/Ui/Component/DynamicRows.php | 2 +- app/code/Magento/Ui/Component/ExportButton.php | 2 +- app/code/Magento/Ui/Component/Filters.php | 2 +- .../Ui/Component/Filters/FilterModifier.php | 2 +- .../Ui/Component/Filters/Type/AbstractFilter.php | 2 +- .../Magento/Ui/Component/Filters/Type/Date.php | 2 +- .../Ui/Component/Filters/Type/DateRange.php | 2 +- .../Magento/Ui/Component/Filters/Type/Input.php | 2 +- .../Magento/Ui/Component/Filters/Type/Range.php | 2 +- .../Magento/Ui/Component/Filters/Type/Search.php | 2 +- .../Magento/Ui/Component/Filters/Type/Select.php | 2 +- app/code/Magento/Ui/Component/Form.php | 2 +- .../Magento/Ui/Component/Form/AttributeMapper.php | 2 +- app/code/Magento/Ui/Component/Form/Collection.php | 2 +- .../Ui/Component/Form/Element/AbstractElement.php | 2 +- .../Form/Element/AbstractOptionsField.php | 2 +- .../Ui/Component/Form/Element/ActionDelete.php | 2 +- .../Magento/Ui/Component/Form/Element/Checkbox.php | 2 +- .../Ui/Component/Form/Element/CheckboxSet.php | 2 +- .../Form/Element/DataType/AbstractDataType.php | 2 +- .../Ui/Component/Form/Element/DataType/Boolean.php | 2 +- .../Form/Element/DataType/DataTypeInterface.php | 2 +- .../Ui/Component/Form/Element/DataType/Date.php | 2 +- .../Ui/Component/Form/Element/DataType/Email.php | 2 +- .../Ui/Component/Form/Element/DataType/Media.php | 2 +- .../Ui/Component/Form/Element/DataType/Number.php | 2 +- .../Component/Form/Element/DataType/Password.php | 2 +- .../Ui/Component/Form/Element/DataType/Price.php | 2 +- .../Ui/Component/Form/Element/DataType/Text.php | 2 +- .../Ui/Component/Form/Element/ElementInterface.php | 2 +- .../Magento/Ui/Component/Form/Element/Hidden.php | 2 +- .../Magento/Ui/Component/Form/Element/Input.php | 2 +- .../Ui/Component/Form/Element/MultiSelect.php | 2 +- .../Ui/Component/Form/Element/Multiline.php | 2 +- .../Magento/Ui/Component/Form/Element/Radio.php | 2 +- .../Magento/Ui/Component/Form/Element/RadioSet.php | 2 +- .../Magento/Ui/Component/Form/Element/Range.php | 2 +- .../Magento/Ui/Component/Form/Element/Select.php | 2 +- .../Magento/Ui/Component/Form/Element/Textarea.php | 2 +- .../Magento/Ui/Component/Form/Element/Wysiwyg.php | 2 +- app/code/Magento/Ui/Component/Form/Field.php | 2 +- app/code/Magento/Ui/Component/Form/Fieldset.php | 2 +- .../Magento/Ui/Component/Form/Fieldset/Factory.php | 2 +- app/code/Magento/Ui/Component/HtmlContent.php | 2 +- app/code/Magento/Ui/Component/Layout.php | 2 +- app/code/Magento/Ui/Component/Layout/Tabs.php | 2 +- app/code/Magento/Ui/Component/Layout/Tabs/Nav.php | 2 +- app/code/Magento/Ui/Component/Layout/Tabs/Tab.php | 2 +- .../Ui/Component/Layout/Tabs/TabInterface.php | 2 +- .../Ui/Component/Layout/Tabs/TabWrapper.php | 2 +- app/code/Magento/Ui/Component/Listing.php | 2 +- app/code/Magento/Ui/Component/Listing/Columns.php | 2 +- .../Ui/Component/Listing/Columns/Column.php | 2 +- .../Component/Listing/Columns/ColumnInterface.php | 2 +- .../Magento/Ui/Component/Listing/Columns/Date.php | 2 +- .../Magento/Ui/Component/Listing/RowInterface.php | 2 +- app/code/Magento/Ui/Component/MassAction.php | 2 +- .../Ui/Component/MassAction/Columns/Column.php | 2 +- .../Magento/Ui/Component/MassAction/Filter.php | 2 +- app/code/Magento/Ui/Component/Modal.php | 2 +- app/code/Magento/Ui/Component/Paging.php | 2 +- app/code/Magento/Ui/Component/Wrapper/Block.php | 2 +- .../Magento/Ui/Component/Wrapper/UiComponent.php | 2 +- app/code/Magento/Ui/Component/Wysiwyg/Config.php | 2 +- .../Ui/Component/Wysiwyg/ConfigInterface.php | 2 +- .../Ui/Controller/Adminhtml/AbstractAction.php | 2 +- .../Ui/Controller/Adminhtml/Bookmark/Delete.php | 2 +- .../Ui/Controller/Adminhtml/Bookmark/Save.php | 2 +- .../Ui/Controller/Adminhtml/Export/GridToCsv.php | 2 +- .../Ui/Controller/Adminhtml/Export/GridToXml.php | 2 +- .../Ui/Controller/Adminhtml/Index/Render.php | 2 +- .../Controller/Adminhtml/Index/Render/Handle.php | 2 +- .../Magento/Ui/Controller/UiActionInterface.php | 2 +- .../Ui/DataProvider/AbstractDataProvider.php | 2 +- .../Ui/DataProvider/AddFieldToCollection.php | 2 +- .../DataProvider/AddFieldToCollectionInterface.php | 2 +- .../AddFilterToCollectionInterface.php | 2 +- .../Magento/Ui/DataProvider/EavValidationRules.php | 2 +- .../Magento/Ui/DataProvider/Mapper/FormElement.php | 2 +- .../Ui/DataProvider/Mapper/MapperInterface.php | 2 +- .../Ui/DataProvider/Mapper/MetaProperties.php | 2 +- .../Magento/Ui/DataProvider/Modifier/Dummy.php | 2 +- .../Ui/DataProvider/Modifier/ModifierFactory.php | 2 +- .../Ui/DataProvider/Modifier/ModifierInterface.php | 2 +- app/code/Magento/Ui/DataProvider/Modifier/Pool.php | 2 +- .../Ui/DataProvider/Modifier/PoolInterface.php | 2 +- app/code/Magento/Ui/Model/Bookmark.php | 2 +- app/code/Magento/Ui/Model/BookmarkManagement.php | 2 +- app/code/Magento/Ui/Model/Config.php | 2 +- app/code/Magento/Ui/Model/Export/ConvertToCsv.php | 2 +- app/code/Magento/Ui/Model/Export/ConvertToXml.php | 2 +- .../Magento/Ui/Model/Export/MetadataProvider.php | 2 +- .../Ui/Model/Export/SearchResultIterator.php | 2 +- app/code/Magento/Ui/Model/Manager.php | 2 +- .../Magento/Ui/Model/ResourceModel/Bookmark.php | 2 +- .../Ui/Model/ResourceModel/Bookmark/Collection.php | 2 +- .../Ui/Model/ResourceModel/BookmarkRepository.php | 2 +- app/code/Magento/Ui/Setup/InstallSchema.php | 2 +- .../Xhtml/Compiler/Element/Content.php | 2 +- .../TemplateEngine/Xhtml/Compiler/Element/Form.php | 2 +- .../Xhtml/Compiler/Element/Render.php | 2 +- .../Magento/Ui/TemplateEngine/Xhtml/Result.php | 2 +- .../Test/Unit/Component/AbstractComponentTest.php | 2 +- .../Test/Unit/Component/Control/ActionPoolTest.php | 2 +- .../Ui/Test/Unit/Component/Control/ActionTest.php | 2 +- .../Ui/Test/Unit/Component/Control/ButtonTest.php | 2 +- .../Test/Unit/Component/Control/ContainerTest.php | 2 +- .../Ui/Test/Unit/Component/Control/LinkTest.php | 2 +- .../Ui/Test/Unit/Component/ExportButtonTest.php | 2 +- .../Unit/Component/Filters/FilterModifierTest.php | 2 +- .../Unit/Component/Filters/Type/DateRangeTest.php | 2 +- .../Test/Unit/Component/Filters/Type/DateTest.php | 2 +- .../Test/Unit/Component/Filters/Type/InputTest.php | 2 +- .../Test/Unit/Component/Filters/Type/RangeTest.php | 2 +- .../Unit/Component/Filters/Type/SelectTest.php | 2 +- .../Component/Form/Element/AbstractElementTest.php | 2 +- .../Component/Form/Element/ActionDeleteTest.php | 2 +- .../Component/Form/Element/CheckboxSetTest.php | 2 +- .../Component/Form/Element/DataType/DateTest.php | 2 +- .../Component/Form/Element/DataType/MediaTest.php | 2 +- .../Component/Form/Element/MultiSelectTest.php | 2 +- .../Unit/Component/Form/Element/RadioSetTest.php | 2 +- .../Unit/Component/Form/Element/SelectTest.php | 2 +- .../Unit/Component/Form/Element/WysiwygTest.php | 2 +- .../Unit/Component/Form/Field/MultilineTest.php | 2 +- .../Ui/Test/Unit/Component/Form/FieldTest.php | 2 +- .../Magento/Ui/Test/Unit/Component/FormTest.php | 2 +- .../Unit/Component/Listing/Columns/ColumnTest.php | 2 +- .../Unit/Component/Listing/Columns/DateTest.php | 2 +- .../Ui/Test/Unit/Component/Listing/ColumnsTest.php | 2 +- .../Magento/Ui/Test/Unit/Component/ListingTest.php | 2 +- .../Component/MassAction/Columns/ColumnTest.php | 2 +- .../Test/Unit/Component/MassAction/FilterTest.php | 2 +- .../Ui/Test/Unit/Component/MassActionTest.php | 2 +- .../Magento/Ui/Test/Unit/Component/PagingTest.php | 2 +- .../Controller/Adminhtml/Export/GridToCsvTest.php | 2 +- .../Controller/Adminhtml/Export/GridToXmlTest.php | 2 +- .../Adminhtml/Index/Render/HandleTest.php | 2 +- .../Unit/Controller/Adminhtml/Index/RenderTest.php | 2 +- .../Unit/DataProvider/EavValidationRulesTest.php | 2 +- .../Test/Unit/DataProvider/Modifier/PoolTest.php | 2 +- .../Ui/Test/Unit/Model/BookmarkManagementTest.php | 2 +- .../Ui/Test/Unit/Model/Export/ConvertToCsvTest.php | 2 +- .../Ui/Test/Unit/Model/Export/ConvertToXmlTest.php | 2 +- .../Unit/Model/Export/MetadataProviderTest.php | 2 +- .../Magento/Ui/Test/Unit/Model/ManagerTest.php | 2 +- .../Model/ResourceModel/BookmarkRepositoryTest.php | 2 +- app/code/Magento/Ui/etc/adminhtml/di.xml | 2 +- app/code/Magento/Ui/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Ui/etc/adminhtml/system.xml | 2 +- app/code/Magento/Ui/etc/config.xml | 2 +- app/code/Magento/Ui/etc/data_source.xsd | 2 +- app/code/Magento/Ui/etc/di.xml | 2 +- app/code/Magento/Ui/etc/module.xml | 2 +- app/code/Magento/Ui/etc/ui_components.xsd | 2 +- app/code/Magento/Ui/etc/ui_configuration.xsd | 2 +- app/code/Magento/Ui/etc/ui_definition.xsd | 2 +- app/code/Magento/Ui/etc/ui_template.xsd | 2 +- app/code/Magento/Ui/registration.php | 2 +- app/code/Magento/Ui/view/base/layout/default.xml | 2 +- app/code/Magento/Ui/view/base/requirejs-config.js | 2 +- .../base/templates/container/content/default.phtml | 2 +- .../Ui/view/base/templates/context/default.phtml | 2 +- .../base/templates/control/button/default.phtml | 2 +- .../view/base/templates/control/button/split.phtml | 2 +- .../Ui/view/base/templates/form/default.phtml | 2 +- .../Ui/view/base/templates/label/default.phtml | 2 +- .../view/base/templates/layout/tabs/default.phtml | 2 +- .../base/templates/layout/tabs/nav/default.phtml | 2 +- .../Magento/Ui/view/base/templates/logger.phtml | 2 +- .../Ui/view/base/templates/stepswizard.phtml | 2 +- .../Ui/view/base/ui_component/etc/definition.xml | 2 +- .../ui_component/templates/container/default.xhtml | 2 +- .../ui_component/templates/export/button.xhtml | 2 +- .../ui_component/templates/form/collapsible.xhtml | 2 +- .../base/ui_component/templates/form/default.xhtml | 2 +- .../ui_component/templates/listing/default.xhtml | 2 +- .../Magento/Ui/view/base/web/js/block-loader.js | 2 +- app/code/Magento/Ui/view/base/web/js/core/app.js | 2 +- .../Ui/view/base/web/js/core/renderer/layout.js | 2 +- .../Ui/view/base/web/js/core/renderer/types.js | 2 +- .../Ui/view/base/web/js/dynamic-rows/dnd.js | 2 +- .../base/web/js/dynamic-rows/dynamic-rows-grid.js | 2 +- .../view/base/web/js/dynamic-rows/dynamic-rows.js | 2 +- .../Ui/view/base/web/js/dynamic-rows/record.js | 2 +- .../Magento/Ui/view/base/web/js/form/adapter.js | 2 +- .../Ui/view/base/web/js/form/button-adapter.js | 2 +- .../Magento/Ui/view/base/web/js/form/client.js | 2 +- .../Ui/view/base/web/js/form/components/area.js | 2 +- .../Ui/view/base/web/js/form/components/button.js | 2 +- .../view/base/web/js/form/components/collection.js | 2 +- .../base/web/js/form/components/collection/item.js | 2 +- .../view/base/web/js/form/components/fieldset.js | 2 +- .../Ui/view/base/web/js/form/components/group.js | 2 +- .../Ui/view/base/web/js/form/components/html.js | 2 +- .../base/web/js/form/components/insert-form.js | 2 +- .../base/web/js/form/components/insert-listing.js | 2 +- .../Ui/view/base/web/js/form/components/insert.js | 2 +- .../Ui/view/base/web/js/form/components/tab.js | 2 +- .../view/base/web/js/form/components/tab_group.js | 2 +- .../Ui/view/base/web/js/form/element/abstract.js | 2 +- .../Ui/view/base/web/js/form/element/boolean.js | 2 +- .../view/base/web/js/form/element/checkbox-set.js | 2 +- .../Ui/view/base/web/js/form/element/country.js | 2 +- .../Ui/view/base/web/js/form/element/date.js | 2 +- .../view/base/web/js/form/element/file-uploader.js | 2 +- .../Ui/view/base/web/js/form/element/media.js | 2 +- .../view/base/web/js/form/element/multiselect.js | 2 +- .../Ui/view/base/web/js/form/element/post-code.js | 2 +- .../Ui/view/base/web/js/form/element/region.js | 2 +- .../Ui/view/base/web/js/form/element/select.js | 2 +- .../form/element/single-checkbox-toggle-notice.js | 2 +- .../js/form/element/single-checkbox-use-config.js | 2 +- .../base/web/js/form/element/single-checkbox.js | 2 +- .../Ui/view/base/web/js/form/element/text.js | 2 +- .../Ui/view/base/web/js/form/element/textarea.js | 2 +- .../Ui/view/base/web/js/form/element/ui-select.js | 2 +- .../Ui/view/base/web/js/form/element/website.js | 2 +- .../Ui/view/base/web/js/form/element/wysiwyg.js | 2 +- app/code/Magento/Ui/view/base/web/js/form/form.js | 2 +- .../Magento/Ui/view/base/web/js/form/provider.js | 2 +- .../Ui/view/base/web/js/grid/columns/actions.js | 2 +- .../Ui/view/base/web/js/grid/columns/column.js | 2 +- .../Ui/view/base/web/js/grid/columns/date.js | 2 +- .../view/base/web/js/grid/columns/multiselect.js | 2 +- .../Ui/view/base/web/js/grid/columns/onoff.js | 2 +- .../Ui/view/base/web/js/grid/columns/select.js | 2 +- .../Ui/view/base/web/js/grid/columns/thumbnail.js | 2 +- .../web/js/grid/controls/bookmarks/bookmarks.js | 2 +- .../base/web/js/grid/controls/bookmarks/storage.js | 2 +- .../Ui/view/base/web/js/grid/controls/columns.js | 2 +- .../Ui/view/base/web/js/grid/data-storage.js | 2 +- app/code/Magento/Ui/view/base/web/js/grid/dnd.js | 2 +- .../Ui/view/base/web/js/grid/editing/bulk.js | 2 +- .../Ui/view/base/web/js/grid/editing/client.js | 2 +- .../view/base/web/js/grid/editing/editor-view.js | 2 +- .../Ui/view/base/web/js/grid/editing/editor.js | 2 +- .../Ui/view/base/web/js/grid/editing/record.js | 2 +- .../Magento/Ui/view/base/web/js/grid/export.js | 2 +- .../Ui/view/base/web/js/grid/filters/chips.js | 2 +- .../Ui/view/base/web/js/grid/filters/filters.js | 2 +- .../Ui/view/base/web/js/grid/filters/range.js | 2 +- .../Magento/Ui/view/base/web/js/grid/listing.js | 2 +- .../Ui/view/base/web/js/grid/massactions.js | 2 +- .../Ui/view/base/web/js/grid/paging/paging.js | 2 +- .../Ui/view/base/web/js/grid/paging/sizes.js | 2 +- .../Magento/Ui/view/base/web/js/grid/provider.js | 2 +- .../Magento/Ui/view/base/web/js/grid/resize.js | 2 +- .../Ui/view/base/web/js/grid/search/search.js | 2 +- .../Ui/view/base/web/js/grid/sticky/sticky.js | 2 +- .../Magento/Ui/view/base/web/js/grid/toolbar.js | 2 +- .../Ui/view/base/web/js/grid/tree-massactions.js | 2 +- .../Magento/Ui/view/base/web/js/lib/collapsible.js | 2 +- .../Magento/Ui/view/base/web/js/lib/core/class.js | 2 +- .../Ui/view/base/web/js/lib/core/collection.js | 2 +- .../view/base/web/js/lib/core/element/element.js | 2 +- .../Ui/view/base/web/js/lib/core/element/links.js | 2 +- .../Magento/Ui/view/base/web/js/lib/core/events.js | 2 +- .../Ui/view/base/web/js/lib/core/storage/local.js | 2 +- .../Magento/Ui/view/base/web/js/lib/key-codes.js | 2 +- .../web/js/lib/knockout/bindings/after-render.js | 2 +- .../web/js/lib/knockout/bindings/autoselect.js | 2 +- .../base/web/js/lib/knockout/bindings/bind-html.js | 2 +- .../base/web/js/lib/knockout/bindings/bootstrap.js | 2 +- .../web/js/lib/knockout/bindings/collapsible.js | 2 +- .../web/js/lib/knockout/bindings/datepicker.js | 2 +- .../web/js/lib/knockout/bindings/fadeVisible.js | 2 +- .../view/base/web/js/lib/knockout/bindings/i18n.js | 2 +- .../base/web/js/lib/knockout/bindings/keyboard.js | 2 +- .../base/web/js/lib/knockout/bindings/mage-init.js | 2 +- .../base/web/js/lib/knockout/bindings/optgroup.js | 2 +- .../web/js/lib/knockout/bindings/outer_click.js | 2 +- .../base/web/js/lib/knockout/bindings/range.js | 2 +- .../base/web/js/lib/knockout/bindings/resizable.js | 2 +- .../base/web/js/lib/knockout/bindings/scope.js | 2 +- .../web/js/lib/knockout/bindings/simple-checked.js | 2 +- .../web/js/lib/knockout/bindings/staticChecked.js | 2 +- .../base/web/js/lib/knockout/bindings/tooltip.js | 2 +- .../Ui/view/base/web/js/lib/knockout/bootstrap.js | 2 +- .../web/js/lib/knockout/extender/bound-nodes.js | 2 +- .../js/lib/knockout/extender/observable_array.js | 2 +- .../base/web/js/lib/knockout/template/engine.js | 2 +- .../base/web/js/lib/knockout/template/loader.js | 2 +- .../js/lib/knockout/template/observable_source.js | 2 +- .../base/web/js/lib/knockout/template/renderer.js | 2 +- .../Ui/view/base/web/js/lib/registry/registry.js | 2 +- .../Magento/Ui/view/base/web/js/lib/spinner.js | 2 +- .../Magento/Ui/view/base/web/js/lib/step-wizard.js | 2 +- .../Ui/view/base/web/js/lib/validation/rules.js | 2 +- .../Ui/view/base/web/js/lib/validation/utils.js | 2 +- .../view/base/web/js/lib/validation/validator.js | 2 +- .../Ui/view/base/web/js/lib/view/utils/async.js | 2 +- .../Ui/view/base/web/js/lib/view/utils/bindings.js | 2 +- .../base/web/js/lib/view/utils/dom-observer.js | 2 +- .../Ui/view/base/web/js/lib/view/utils/raf.js | 2 +- .../Magento/Ui/view/base/web/js/modal/alert.js | 2 +- .../Magento/Ui/view/base/web/js/modal/confirm.js | 2 +- .../Ui/view/base/web/js/modal/modal-component.js | 2 +- .../Magento/Ui/view/base/web/js/modal/modal.js | 2 +- .../Ui/view/base/web/js/modal/modalToggle.js | 2 +- .../Magento/Ui/view/base/web/js/modal/prompt.js | 2 +- .../Ui/view/base/web/js/timeline/timeline-view.js | 2 +- .../Ui/view/base/web/js/timeline/timeline.js | 2 +- .../Magento/Ui/view/base/web/templates/area.html | 2 +- .../Ui/view/base/web/templates/block-loader.html | 2 +- .../Ui/view/base/web/templates/collection.html | 2 +- .../view/base/web/templates/content/content.html | 2 +- .../dynamic-rows/cells/action-delete.html | 2 +- .../base/web/templates/dynamic-rows/cells/dnd.html | 2 +- .../web/templates/dynamic-rows/cells/text.html | 2 +- .../templates/dynamic-rows/cells/thumbnail.html | 2 +- .../dynamic-rows/templates/collapsible.html | 2 +- .../templates/dynamic-rows/templates/default.html | 2 +- .../web/templates/dynamic-rows/templates/grid.html | 2 +- .../view/base/web/templates/form/collection.html | 2 +- .../form/components/button/container.html | 2 +- .../templates/form/components/button/simple.html | 2 +- .../web/templates/form/components/collection.html | 2 +- .../form/components/collection/preview.html | 2 +- .../web/templates/form/components/complex.html | 2 +- .../templates/form/components/single/checkbox.html | 2 +- .../templates/form/components/single/field.html | 2 +- .../templates/form/components/single/radio.html | 2 +- .../templates/form/components/single/switcher.html | 2 +- .../base/web/templates/form/element/button.html | 2 +- .../web/templates/form/element/checkbox-set.html | 2 +- .../base/web/templates/form/element/checkbox.html | 2 +- .../view/base/web/templates/form/element/date.html | 2 +- .../base/web/templates/form/element/email.html | 2 +- .../form/element/helper/fallback-reset.html | 2 +- .../web/templates/form/element/helper/service.html | 2 +- .../web/templates/form/element/helper/tooltip.html | 2 +- .../base/web/templates/form/element/hidden.html | 2 +- .../base/web/templates/form/element/input.html | 2 +- .../base/web/templates/form/element/media.html | 2 +- .../web/templates/form/element/multiselect.html | 2 +- .../base/web/templates/form/element/preview.html | 2 +- .../base/web/templates/form/element/price.html | 2 +- .../base/web/templates/form/element/radio.html | 2 +- .../base/web/templates/form/element/select.html | 2 +- .../web/templates/form/element/split-button.html | 2 +- .../base/web/templates/form/element/switcher.html | 2 +- .../base/web/templates/form/element/textarea.html | 2 +- .../templates/form/element/uploader/preview.html | 2 +- .../templates/form/element/uploader/uploader.html | 2 +- .../base/web/templates/form/element/wysiwyg.html | 2 +- .../Ui/view/base/web/templates/form/field.html | 2 +- .../Ui/view/base/web/templates/form/fieldset.html | 2 +- .../Ui/view/base/web/templates/form/insert.html | 2 +- .../Ui/view/base/web/templates/grid/actions.html | 2 +- .../base/web/templates/grid/cells/actions.html | 2 +- .../view/base/web/templates/grid/cells/html.html | 2 +- .../base/web/templates/grid/cells/multiselect.html | 2 +- .../view/base/web/templates/grid/cells/onoff.html | 2 +- .../view/base/web/templates/grid/cells/text.html | 2 +- .../base/web/templates/grid/cells/thumbnail.html | 2 +- .../templates/grid/cells/thumbnail/preview.html | 2 +- .../web/templates/grid/columns/multiselect.html | 2 +- .../base/web/templates/grid/columns/onoff.html | 2 +- .../view/base/web/templates/grid/columns/text.html | 2 +- .../grid/controls/bookmarks/bookmarks.html | 2 +- .../templates/grid/controls/bookmarks/view.html | 2 +- .../base/web/templates/grid/controls/columns.html | 2 +- .../view/base/web/templates/grid/editing/bulk.html | 2 +- .../base/web/templates/grid/editing/field.html | 2 +- .../web/templates/grid/editing/header-buttons.html | 2 +- .../web/templates/grid/editing/row-buttons.html | 2 +- .../view/base/web/templates/grid/editing/row.html | 2 +- .../view/base/web/templates/grid/exportButton.html | 2 +- .../base/web/templates/grid/filters/chips.html | 2 +- .../web/templates/grid/filters/elements/group.html | 2 +- .../grid/filters/elements/ui-select-optgroup.html | 2 +- .../templates/grid/filters/elements/ui-select.html | 2 +- .../base/web/templates/grid/filters/field.html | 2 +- .../base/web/templates/grid/filters/filters.html | 2 +- .../Ui/view/base/web/templates/grid/listing.html | 2 +- .../view/base/web/templates/grid/paging-total.html | 2 +- .../grid/paging/paging-detailed-total.html | 2 +- .../base/web/templates/grid/paging/paging.html | 2 +- .../view/base/web/templates/grid/paging/sizes.html | 2 +- .../base/web/templates/grid/search/search.html | 2 +- .../base/web/templates/grid/sticky/filters.html | 2 +- .../base/web/templates/grid/sticky/listing.html | 2 +- .../base/web/templates/grid/sticky/sticky.html | 2 +- .../Ui/view/base/web/templates/grid/submenu.html | 2 +- .../Ui/view/base/web/templates/grid/toolbar.html | 2 +- .../base/web/templates/grid/tree-massactions.html | 2 +- .../base/web/templates/grid/view-switcher.html | 2 +- .../Ui/view/base/web/templates/group/group.html | 2 +- .../base/web/templates/modal/modal-component.html | 2 +- .../base/web/templates/modal/modal-custom.html | 2 +- .../view/base/web/templates/modal/modal-popup.html | 2 +- .../view/base/web/templates/modal/modal-slide.html | 2 +- .../Magento/Ui/view/base/web/templates/tab.html | 2 +- .../view/base/web/templates/timeline/record.html | 2 +- .../view/base/web/templates/timeline/timeline.html | 2 +- .../view/base/web/templates/tooltip/tooltip.html | 2 +- .../Ui/view/frontend/web/js/model/messageList.js | 2 +- .../Ui/view/frontend/web/js/model/messages.js | 2 +- .../Ui/view/frontend/web/js/view/messages.js | 2 +- .../Ui/view/frontend/web/template/messages.html | 2 +- .../web/templates/form/element/checkbox.html | 2 +- .../frontend/web/templates/form/element/date.html | 2 +- .../frontend/web/templates/form/element/email.html | 2 +- .../web/templates/form/element/helper/tooltip.html | 2 +- .../frontend/web/templates/form/element/input.html | 2 +- .../web/templates/form/element/password.html | 2 +- .../web/templates/form/element/select.html | 2 +- .../Ui/view/frontend/web/templates/form/field.html | 2 +- .../view/frontend/web/templates/group/group.html | 2 +- .../Ups/Block/Backend/System/CarrierConfig.php | 2 +- app/code/Magento/Ups/Helper/Config.php | 2 +- app/code/Magento/Ups/Model/Carrier.php | 2 +- .../Magento/Ups/Model/Config/Source/Container.php | 2 +- .../Magento/Ups/Model/Config/Source/DestType.php | 2 +- .../Magento/Ups/Model/Config/Source/Freemethod.php | 2 +- .../Magento/Ups/Model/Config/Source/Generic.php | 2 +- .../Magento/Ups/Model/Config/Source/Method.php | 2 +- .../Ups/Model/Config/Source/OriginShipment.php | 2 +- .../Magento/Ups/Model/Config/Source/Pickup.php | 2 +- app/code/Magento/Ups/Model/Config/Source/Type.php | 2 +- .../Ups/Model/Config/Source/Unitofmeasure.php | 2 +- .../Magento/Ups/Test/Unit/Helper/ConfigTest.php | 2 +- .../Magento/Ups/Test/Unit/Model/CarrierTest.php | 2 +- app/code/Magento/Ups/etc/adminhtml/system.xml | 2 +- app/code/Magento/Ups/etc/config.xml | 2 +- app/code/Magento/Ups/etc/di.xml | 2 +- app/code/Magento/Ups/etc/module.xml | 2 +- app/code/Magento/Ups/registration.php | 2 +- .../layout/adminhtml_system_config_edit.xml | 2 +- .../templates/system/shipping/carrier_config.phtml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../js/model/shipping-rates-validation-rules.js | 2 +- .../web/js/model/shipping-rates-validator.js | 2 +- .../web/js/view/shipping-rates-validation.js | 2 +- .../UrlRewrite/Block/Catalog/Category/Edit.php | 2 +- .../UrlRewrite/Block/Catalog/Category/Tree.php | 2 +- .../Magento/UrlRewrite/Block/Catalog/Edit/Form.php | 2 +- .../UrlRewrite/Block/Catalog/Product/Edit.php | 2 +- .../UrlRewrite/Block/Catalog/Product/Grid.php | 2 +- .../Magento/UrlRewrite/Block/Cms/Page/Edit.php | 2 +- .../UrlRewrite/Block/Cms/Page/Edit/Form.php | 2 +- .../Magento/UrlRewrite/Block/Cms/Page/Grid.php | 2 +- app/code/Magento/UrlRewrite/Block/Edit.php | 2 +- app/code/Magento/UrlRewrite/Block/Edit/Form.php | 2 +- .../Magento/UrlRewrite/Block/GridContainer.php | 2 +- app/code/Magento/UrlRewrite/Block/Link.php | 2 +- .../Block/Plugin/Store/Switcher/SetRedirectUrl.php | 2 +- app/code/Magento/UrlRewrite/Block/Selector.php | 2 +- .../Controller/Adminhtml/Url/Rewrite.php | 2 +- .../Adminhtml/Url/Rewrite/CategoriesJson.php | 2 +- .../Adminhtml/Url/Rewrite/CmsPageGrid.php | 2 +- .../Controller/Adminhtml/Url/Rewrite/Delete.php | 2 +- .../Controller/Adminhtml/Url/Rewrite/Edit.php | 2 +- .../Controller/Adminhtml/Url/Rewrite/Index.php | 2 +- .../Adminhtml/Url/Rewrite/ProductGrid.php | 2 +- .../Controller/Adminhtml/Url/Rewrite/Save.php | 2 +- app/code/Magento/UrlRewrite/Controller/Router.php | 2 +- app/code/Magento/UrlRewrite/Helper/UrlRewrite.php | 2 +- .../Magento/UrlRewrite/Model/MergeDataProvider.php | 2 +- .../Magento/UrlRewrite/Model/OptionProvider.php | 2 +- .../UrlRewrite/Model/ResourceModel/UrlRewrite.php | 2 +- .../Model/ResourceModel/UrlRewriteCollection.php | 2 +- .../UrlRewrite/Model/Storage/AbstractStorage.php | 2 +- .../Magento/UrlRewrite/Model/Storage/DbStorage.php | 2 +- .../Magento/UrlRewrite/Model/StorageInterface.php | 2 +- .../UrlRewrite/Model/UrlFinderInterface.php | 2 +- .../UrlRewrite/Model/UrlPersistInterface.php | 2 +- app/code/Magento/UrlRewrite/Model/UrlRewrite.php | 2 +- .../UrlRewrite/Service/V1/Data/UrlRewrite.php | 2 +- .../Magento/UrlRewrite/Setup/InstallSchema.php | 2 +- .../Test/Unit/Block/Catalog/Edit/FormTest.php | 2 +- .../Plugin/Store/Switcher/SetRedirectUrlTest.php | 2 +- .../UrlRewrite/Test/Unit/Controller/RouterTest.php | 2 +- .../UrlRewrite/Test/Unit/Helper/UrlRewriteTest.php | 2 +- .../Test/Unit/Model/MergeDataProviderTest.php | 2 +- .../ResourceModel/UrlRewriteCollectionTest.php | 2 +- .../Unit/Model/Storage/AbstractStorageTest.php | 2 +- .../Test/Unit/Model/Storage/DbStorageTest.php | 2 +- app/code/Magento/UrlRewrite/etc/acl.xml | 2 +- app/code/Magento/UrlRewrite/etc/adminhtml/menu.xml | 2 +- .../Magento/UrlRewrite/etc/adminhtml/routes.xml | 2 +- app/code/Magento/UrlRewrite/etc/config.xml | 2 +- app/code/Magento/UrlRewrite/etc/di.xml | 2 +- app/code/Magento/UrlRewrite/etc/frontend/di.xml | 2 +- app/code/Magento/UrlRewrite/etc/module.xml | 2 +- app/code/Magento/UrlRewrite/registration.php | 2 +- .../layout/adminhtml_url_rewrite_index.xml | 2 +- .../view/adminhtml/templates/categories.phtml | 2 +- .../UrlRewrite/view/adminhtml/templates/edit.phtml | 2 +- .../view/adminhtml/templates/selector.phtml | 2 +- app/code/Magento/User/Api/Data/UserInterface.php | 2 +- app/code/Magento/User/Block/Adminhtml/Locks.php | 2 +- app/code/Magento/User/Block/Buttons.php | 2 +- app/code/Magento/User/Block/Role.php | 2 +- app/code/Magento/User/Block/Role/Edit.php | 2 +- app/code/Magento/User/Block/Role/Grid/User.php | 2 +- app/code/Magento/User/Block/Role/Tab/Edit.php | 2 +- app/code/Magento/User/Block/Role/Tab/Info.php | 2 +- app/code/Magento/User/Block/Role/Tab/Users.php | 2 +- app/code/Magento/User/Block/User.php | 2 +- app/code/Magento/User/Block/User/Edit.php | 2 +- app/code/Magento/User/Block/User/Edit/Form.php | 2 +- app/code/Magento/User/Block/User/Edit/Tab/Main.php | 2 +- .../Magento/User/Block/User/Edit/Tab/Roles.php | 2 +- app/code/Magento/User/Block/User/Edit/Tabs.php | 2 +- .../User/Console/UnlockAdminAccountCommand.php | 2 +- .../Magento/User/Controller/Adminhtml/Auth.php | 2 +- .../Controller/Adminhtml/Auth/Forgotpassword.php | 2 +- .../Controller/Adminhtml/Auth/ResetPassword.php | 2 +- .../Adminhtml/Auth/ResetPasswordPost.php | 2 +- .../Magento/User/Controller/Adminhtml/Locks.php | 2 +- .../User/Controller/Adminhtml/Locks/Grid.php | 2 +- .../User/Controller/Adminhtml/Locks/Index.php | 2 +- .../User/Controller/Adminhtml/Locks/MassUnlock.php | 2 +- .../Magento/User/Controller/Adminhtml/User.php | 2 +- .../User/Controller/Adminhtml/User/Delete.php | 2 +- .../User/Controller/Adminhtml/User/Edit.php | 2 +- .../User/Controller/Adminhtml/User/Index.php | 2 +- .../Controller/Adminhtml/User/InvalidateToken.php | 2 +- .../User/Controller/Adminhtml/User/NewAction.php | 2 +- .../User/Controller/Adminhtml/User/Role.php | 2 +- .../User/Controller/Adminhtml/User/Role/Delete.php | 2 +- .../Controller/Adminhtml/User/Role/EditRole.php | 2 +- .../Adminhtml/User/Role/Editrolegrid.php | 2 +- .../User/Controller/Adminhtml/User/Role/Index.php | 2 +- .../Controller/Adminhtml/User/Role/RoleGrid.php | 2 +- .../Controller/Adminhtml/User/Role/SaveRole.php | 2 +- .../User/Controller/Adminhtml/User/RoleGrid.php | 2 +- .../User/Controller/Adminhtml/User/RolesGrid.php | 2 +- .../User/Controller/Adminhtml/User/Save.php | 2 +- .../User/Controller/Adminhtml/User/Validate.php | 2 +- app/code/Magento/User/Helper/Data.php | 2 +- .../Authorization/AdminSessionUserContext.php | 2 +- .../User/Model/Backend/Config/ObserverConfig.php | 2 +- .../User/Model/Plugin/AuthorizationRole.php | 2 +- .../Model/ResourceModel/Role/User/Collection.php | 2 +- app/code/Magento/User/Model/ResourceModel/User.php | 2 +- .../User/Model/ResourceModel/User/Collection.php | 2 +- .../Model/ResourceModel/User/Locked/Collection.php | 2 +- .../User/Model/System/Config/Source/Password.php | 2 +- app/code/Magento/User/Model/User.php | 2 +- .../Magento/User/Model/UserValidationRules.php | 2 +- .../Magento/User/Observer/Backend/AuthObserver.php | 2 +- .../Backend/ForceAdminPasswordChangeObserver.php | 2 +- .../Backend/TrackAdminNewPasswordObserver.php | 2 +- app/code/Magento/User/Setup/InstallSchema.php | 2 +- app/code/Magento/User/Setup/UpgradeData.php | 2 +- app/code/Magento/User/Setup/UpgradeSchema.php | 2 +- .../Magento/User/Test/Unit/Block/Role/EditTest.php | 2 +- .../User/Test/Unit/Block/Role/Grid/UserTest.php | 2 +- .../User/Test/Unit/Block/Role/Tab/EditTest.php | 2 +- .../User/Test/Unit/Block/Role/Tab/InfoTest.php | 2 +- .../User/Test/Unit/Block/Role/Tab/UsersTest.php | 2 +- .../Unit/Console/UnlockAdminAccountCommandTest.php | 2 +- .../Magento/User/Test/Unit/Helper/DataTest.php | 2 +- .../Authorization/AdminSessionUserContextTest.php | 2 +- .../Unit/Model/Plugin/AuthorizationRoleTest.php | 2 +- .../Test/Unit/Model/ResourceModel/UserTest.php | 2 +- app/code/Magento/User/Test/Unit/Model/UserTest.php | 2 +- .../Test/Unit/Model/UserValidationRulesTest.php | 2 +- .../Unit/Observer/Backend/AuthObserverTest.php | 2 +- .../ForceAdminPasswordChangeObserverTest.php | 2 +- .../Backend/TrackAdminNewPasswordObserverTest.php | 2 +- app/code/Magento/User/etc/acl.xml | 2 +- app/code/Magento/User/etc/adminhtml/di.xml | 2 +- app/code/Magento/User/etc/adminhtml/events.xml | 2 +- app/code/Magento/User/etc/adminhtml/menu.xml | 2 +- app/code/Magento/User/etc/adminhtml/routes.xml | 2 +- app/code/Magento/User/etc/adminhtml/system.xml | 2 +- app/code/Magento/User/etc/config.xml | 2 +- app/code/Magento/User/etc/di.xml | 2 +- app/code/Magento/User/etc/email_templates.xml | 2 +- app/code/Magento/User/etc/module.xml | 2 +- app/code/Magento/User/etc/webapi_rest/di.xml | 2 +- app/code/Magento/User/registration.php | 2 +- .../email/password_reset_confirmation.html | 2 +- .../view/adminhtml/email/user_notification.html | 2 +- .../layout/adminhtml_auth_forgotpassword.xml | 2 +- .../view/adminhtml/layout/adminhtml_auth_login.xml | 2 +- .../layout/adminhtml_auth_resetpassword.xml | 2 +- .../adminhtml/layout/adminhtml_locks_block.xml | 2 +- .../view/adminhtml/layout/adminhtml_locks_grid.xml | 2 +- .../adminhtml/layout/adminhtml_locks_index.xml | 2 +- .../view/adminhtml/layout/adminhtml_user_edit.xml | 2 +- .../adminhtml/layout/adminhtml_user_grid_block.xml | 2 +- .../view/adminhtml/layout/adminhtml_user_index.xml | 2 +- .../layout/adminhtml_user_role_editrole.xml | 2 +- .../layout/adminhtml_user_role_editrolegrid.xml | 2 +- .../layout/adminhtml_user_role_grid_block.xml | 2 +- .../adminhtml/layout/adminhtml_user_role_index.xml | 2 +- .../layout/adminhtml_user_role_rolegrid.xml | 2 +- .../adminhtml/layout/adminhtml_user_rolegrid.xml | 2 +- .../adminhtml/layout/adminhtml_user_rolesgrid.xml | 2 +- .../User/view/adminhtml/requirejs-config.js | 2 +- .../adminhtml/templates/admin/forgotpassword.phtml | 2 +- .../templates/admin/forgotpassword_url.phtml | 2 +- .../templates/admin/resetforgottenpassword.phtml | 2 +- .../User/view/adminhtml/templates/role/edit.phtml | 2 +- .../User/view/adminhtml/templates/role/info.phtml | 2 +- .../User/view/adminhtml/templates/role/users.phtml | 2 +- .../adminhtml/templates/role/users_grid_js.phtml | 2 +- .../adminhtml/templates/user/roles_grid_js.phtml | 2 +- .../Magento/User/view/adminhtml/web/app-config.js | 2 +- .../User/view/adminhtml/web/js/roles-tree.js | 2 +- .../Order/Packaging/Plugin/DisplayGirth.php | 2 +- .../Edit/Tab/General/Shipping/Packaging/Plugin.php | 2 +- app/code/Magento/Usps/Helper/Data.php | 2 +- app/code/Magento/Usps/Model/Carrier.php | 2 +- app/code/Magento/Usps/Model/Source/Container.php | 2 +- app/code/Magento/Usps/Model/Source/Freemethod.php | 2 +- app/code/Magento/Usps/Model/Source/Generic.php | 2 +- app/code/Magento/Usps/Model/Source/Machinable.php | 2 +- app/code/Magento/Usps/Model/Source/Method.php | 2 +- app/code/Magento/Usps/Model/Source/Size.php | 2 +- app/code/Magento/Usps/Setup/UpgradeData.php | 2 +- .../Magento/Usps/Test/Unit/Helper/DataTest.php | 2 +- .../Magento/Usps/Test/Unit/Model/CarrierTest.php | 2 +- .../Usps/Test/Unit/Model/Source/GenericTest.php | 2 +- .../Test/Unit/Model/_files/rates_request_data.php | 2 +- .../Model/_files/return_shipment_request_data.php | 2 +- .../Model/_files/success_usps_response_rates.xml | 2 +- .../success_usps_response_return_shipment.xml | 2 +- app/code/Magento/Usps/etc/adminhtml/di.xml | 2 +- app/code/Magento/Usps/etc/adminhtml/system.xml | 2 +- app/code/Magento/Usps/etc/config.xml | 2 +- app/code/Magento/Usps/etc/di.xml | 2 +- app/code/Magento/Usps/etc/module.xml | 2 +- app/code/Magento/Usps/registration.php | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../js/model/shipping-rates-validation-rules.js | 2 +- .../web/js/model/shipping-rates-validator.js | 2 +- .../web/js/view/shipping-rates-validation.js | 2 +- .../Magento/Variable/Block/System/Variable.php | 2 +- .../Variable/Block/System/Variable/Edit.php | 2 +- .../Variable/Block/System/Variable/Edit/Form.php | 2 +- .../Controller/Adminhtml/System/Variable.php | 2 +- .../Adminhtml/System/Variable/Delete.php | 2 +- .../Controller/Adminhtml/System/Variable/Edit.php | 2 +- .../Controller/Adminhtml/System/Variable/Index.php | 2 +- .../Adminhtml/System/Variable/NewAction.php | 2 +- .../Controller/Adminhtml/System/Variable/Save.php | 2 +- .../Adminhtml/System/Variable/Validate.php | 2 +- .../Adminhtml/System/Variable/WysiwygPlugin.php | 2 +- .../Variable/Model/ResourceModel/Variable.php | 2 +- .../Model/ResourceModel/Variable/Collection.php | 2 +- app/code/Magento/Variable/Model/Variable.php | 2 +- .../Magento/Variable/Model/Variable/Config.php | 2 +- app/code/Magento/Variable/Setup/InstallSchema.php | 2 +- .../Adminhtml/System/Variable/ValidateTest.php | 2 +- .../Test/Unit/Model/Variable/ConfigTest.php | 2 +- .../Variable/Test/Unit/Model/VariableTest.php | 2 +- app/code/Magento/Variable/etc/acl.xml | 2 +- app/code/Magento/Variable/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Variable/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Variable/etc/module.xml | 2 +- app/code/Magento/Variable/registration.php | 2 +- .../layout/adminhtml_system_variable_edit.xml | 2 +- .../adminhtml_system_variable_grid_block.xml | 2 +- .../layout/adminhtml_system_variable_index.xml | 2 +- .../adminhtml/templates/system/variable/js.phtml | 2 +- .../Variable/view/adminhtml/web/variables.js | 2 +- .../Vault/Api/Data/PaymentTokenInterface.php | 2 +- .../Api/Data/PaymentTokenInterfaceFactory.php | 2 +- .../Data/PaymentTokenSearchResultsInterface.php | 2 +- .../Vault/Api/PaymentMethodListInterface.php | 2 +- .../Vault/Api/PaymentTokenManagementInterface.php | 2 +- .../Vault/Api/PaymentTokenRepositoryInterface.php | 2 +- .../Magento/Vault/Block/AbstractCardRenderer.php | 2 +- .../Magento/Vault/Block/AbstractTokenRenderer.php | 2 +- .../Magento/Vault/Block/CardRendererInterface.php | 2 +- app/code/Magento/Vault/Block/CreditCards.php | 2 +- .../Magento/Vault/Block/Customer/AccountTokens.php | 2 +- .../Magento/Vault/Block/Customer/CreditCards.php | 2 +- .../Magento/Vault/Block/Customer/IconInterface.php | 2 +- .../Magento/Vault/Block/Customer/PaymentTokens.php | 2 +- app/code/Magento/Vault/Block/Form.php | 2 +- .../Magento/Vault/Block/TokenRendererInterface.php | 2 +- .../Vault/Controller/Cards/DeleteAction.php | 2 +- .../Magento/Vault/Controller/Cards/ListAction.php | 2 +- .../Magento/Vault/Controller/CardsManagement.php | 2 +- .../Vault/Model/AbstractPaymentTokenFactory.php | 2 +- .../Vault/Model/AccountPaymentTokenFactory.php | 2 +- .../Magento/Vault/Model/CreditCardTokenFactory.php | 2 +- .../Vault/Model/CustomerTokenManagement.php | 2 +- .../Vault/Model/Method/NullPaymentProvider.php | 2 +- app/code/Magento/Vault/Model/Method/Vault.php | 2 +- app/code/Magento/Vault/Model/PaymentMethodList.php | 2 +- app/code/Magento/Vault/Model/PaymentToken.php | 2 +- .../Magento/Vault/Model/PaymentTokenManagement.php | 2 +- .../Magento/Vault/Model/PaymentTokenRepository.php | 2 +- .../Vault/Model/ResourceModel/PaymentToken.php | 2 +- .../ResourceModel/PaymentToken/Collection.php | 2 +- .../Model/Ui/Adminhtml/TokensConfigProvider.php | 2 +- .../Magento/Vault/Model/Ui/TokenUiComponent.php | 2 +- .../Vault/Model/Ui/TokenUiComponentInterface.php | 2 +- .../Model/Ui/TokenUiComponentProviderInterface.php | 2 +- .../Vault/Model/Ui/TokensConfigProvider.php | 2 +- .../Magento/Vault/Model/Ui/VaultConfigProvider.php | 2 +- .../Magento/Vault/Model/VaultPaymentInterface.php | 2 +- .../Vault/Observer/AfterPaymentSaveObserver.php | 2 +- .../Vault/Observer/PaymentTokenAssigner.php | 2 +- .../Magento/Vault/Observer/VaultEnableAssigner.php | 2 +- .../Vault/Plugin/PaymentVaultAttributesLoad.php | 2 +- .../Plugin/PaymentVaultConfigurationProcess.php | 2 +- app/code/Magento/Vault/Setup/InstallSchema.php | 2 +- app/code/Magento/Vault/Setup/UpgradeData.php | 2 +- .../Test/Unit/Block/Customer/AccountTokensTest.php | 2 +- .../Unit/Model/AccountPaymentTokenFactoryTest.php | 2 +- .../Test/Unit/Model/CreditCardTokenFactoryTest.php | 2 +- .../Unit/Model/CustomerTokenManagementTest.php | 2 +- .../Vault/Test/Unit/Model/Method/VaultTest.php | 2 +- .../Test/Unit/Model/PaymentMethodListTest.php | 2 +- .../Test/Unit/Model/PaymentTokenManagementTest.php | 2 +- .../Test/Unit/Model/PaymentTokenRepositoryTest.php | 2 +- .../Ui/Adminhtml/TokensConfigProviderTest.php | 2 +- .../Unit/Model/Ui/TokensConfigProviderTest.php | 2 +- .../Test/Unit/Model/Ui/VaultConfigProviderTest.php | 2 +- .../Unit/Observer/AfterPaymentSaveObserverTest.php | 2 +- .../Unit/Observer/PaymentTokenAssignerTest.php | 2 +- .../Test/Unit/Observer/VaultEnableAssignerTest.php | 2 +- .../PaymentVaultConfigurationProcessTest.php | 2 +- app/code/Magento/Vault/etc/adminhtml/di.xml | 2 +- app/code/Magento/Vault/etc/config.xml | 2 +- app/code/Magento/Vault/etc/di.xml | 2 +- app/code/Magento/Vault/etc/events.xml | 2 +- .../Magento/Vault/etc/extension_attributes.xml | 2 +- app/code/Magento/Vault/etc/frontend/di.xml | 2 +- app/code/Magento/Vault/etc/frontend/routes.xml | 2 +- app/code/Magento/Vault/etc/module.xml | 2 +- app/code/Magento/Vault/registration.php | 2 +- .../view/adminhtml/templates/form/vault.phtml | 2 +- .../Magento/Vault/view/adminhtml/web/js/vault.js | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../frontend/layout/vault_cards_listaction.xml | 2 +- .../Vault/view/frontend/templates/cards_list.phtml | 2 +- .../templates/customer_account/credit_card.phtml | 2 +- .../Vault/view/frontend/templates/token_list.phtml | 2 +- .../web/js/customer_account/deleteWidget.js | 2 +- .../web/js/view/payment/method-renderer/vault.js | 2 +- .../frontend/web/js/view/payment/vault-enabler.js | 2 +- .../view/frontend/web/js/view/payment/vault.js | 2 +- .../view/frontend/web/template/payment/form.html | 2 +- .../Magento/Version/Controller/Index/Index.php | 2 +- app/code/Magento/Version/etc/frontend/routes.xml | 2 +- app/code/Magento/Version/etc/module.xml | 2 +- app/code/Magento/Version/registration.php | 2 +- .../Magento/Webapi/Controller/PathProcessor.php | 2 +- app/code/Magento/Webapi/Controller/Rest.php | 2 +- .../Webapi/Controller/Rest/InputParamsResolver.php | 2 +- .../Controller/Rest/ParamOverriderCustomerId.php | 2 +- .../Webapi/Controller/Rest/ParamsOverrider.php | 2 +- .../Webapi/Controller/Rest/RequestValidator.php | 2 +- app/code/Magento/Webapi/Controller/Rest/Router.php | 2 +- .../Webapi/Controller/Rest/Router/Route.php | 2 +- app/code/Magento/Webapi/Controller/Soap.php | 2 +- .../Webapi/Controller/Soap/Request/Handler.php | 2 +- .../Webapi/Model/AbstractSchemaGenerator.php | 2 +- .../Model/Authorization/GuestUserContext.php | 2 +- .../Model/Authorization/OauthUserContext.php | 2 +- .../Model/Authorization/TokenUserContext.php | 2 +- .../Magento/Webapi/Model/Cache/Type/Webapi.php | 2 +- app/code/Magento/Webapi/Model/Config.php | 2 +- .../Magento/Webapi/Model/Config/ClassReflector.php | 2 +- app/code/Magento/Webapi/Model/Config/Converter.php | 2 +- app/code/Magento/Webapi/Model/Config/Reader.php | 2 +- .../Magento/Webapi/Model/Config/SchemaLocator.php | 2 +- .../Authorization/CustomerSessionUserContext.php | 2 +- .../Webapi/Model/Plugin/GuestAuthorization.php | 2 +- app/code/Magento/Webapi/Model/Plugin/Manager.php | 2 +- app/code/Magento/Webapi/Model/Rest/Config.php | 2 +- app/code/Magento/Webapi/Model/Rest/Swagger.php | 2 +- .../Webapi/Model/Rest/Swagger/Generator.php | 2 +- app/code/Magento/Webapi/Model/ServiceMetadata.php | 2 +- app/code/Magento/Webapi/Model/Soap/Config.php | 2 +- app/code/Magento/Webapi/Model/Soap/Fault.php | 2 +- app/code/Magento/Webapi/Model/Soap/Server.php | 2 +- .../Magento/Webapi/Model/Soap/ServerFactory.php | 2 +- app/code/Magento/Webapi/Model/Soap/Wsdl.php | 2 +- .../Webapi/Model/Soap/Wsdl/ComplexTypeStrategy.php | 2 +- .../Magento/Webapi/Model/Soap/Wsdl/Generator.php | 2 +- app/code/Magento/Webapi/Model/Soap/WsdlFactory.php | 2 +- .../Magento/Webapi/Model/WebapiRoleLocator.php | 2 +- .../Test/Unit/Controller/PathProcessorTest.php | 2 +- .../Rest/ParamOverriderCustomerIdTest.php | 2 +- .../Unit/Controller/Rest/ParamsOverriderTest.php | 2 +- .../Unit/Controller/Rest/RequestValidatorTest.php | 2 +- .../Test/Unit/Controller/Rest/Router/RouteTest.php | 2 +- .../Test/Unit/Controller/Rest/RouterTest.php | 2 +- .../Webapi/Test/Unit/Controller/RestTest.php | 2 +- .../Unit/Controller/Soap/Request/HandlerTest.php | 2 +- .../Webapi/Test/Unit/Controller/SoapTest.php | 2 +- .../Magento/Webapi/Test/Unit/ExceptionTest.php | 2 +- .../Model/Authorization/GuestUserContextTest.php | 2 +- .../Model/Authorization/OauthUserContextTest.php | 2 +- .../Model/Authorization/TokenUserContextTest.php | 2 +- .../Test/Unit/Model/Config/ClassReflectorTest.php | 2 +- .../Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Model/Config/TestServiceForClassReflector.php | 2 +- .../Test/Unit/Model/Config/_files/webapi.php | 2 +- .../Test/Unit/Model/Config/_files/webapi.xml | 2 +- .../Test/Unit/Model/DataObjectProcessorTest.php | 2 +- .../Test/Unit/Model/Files/TestDataInterface.php | 2 +- .../Test/Unit/Model/Files/TestDataObject.php | 2 +- .../Webapi/Test/Unit/Model/Plugin/ManagerTest.php | 2 +- .../Test/Unit/Model/Rest/Swagger/GeneratorTest.php | 2 +- .../Webapi/Test/Unit/Model/ServiceMetadataTest.php | 2 +- .../Webapi/Test/Unit/Model/Soap/ConfigTest.php | 2 +- .../Webapi/Test/Unit/Model/Soap/FaultTest.php | 2 +- .../Webapi/Test/Unit/Model/Soap/ServerTest.php | 2 +- .../Model/Soap/Wsdl/ComplexTypeStrategyTest.php | 2 +- .../Test/Unit/Model/Soap/Wsdl/GeneratorTest.php | 2 +- .../Test/Unit/Model/Soap/WsdlFactoryTest.php | 2 +- .../Test/Unit/Model/WebapiRoleLocatorTest.php | 2 +- .../Magento/Webapi/Test/Unit/Model/_files/acl.php | 2 +- .../Magento/Webapi/Test/Unit/Model/_files/acl.xml | 2 +- .../Magento/Webapi/Test/Unit/Model/_files/acl.xsd | 2 +- .../_files/soap_fault/soap_fault_expected_xmls.php | 2 +- .../Webapi/Test/Unit/_files/test_interfaces.php | 2 +- app/code/Magento/Webapi/etc/adminhtml/system.xml | 2 +- app/code/Magento/Webapi/etc/cache.xml | 2 +- app/code/Magento/Webapi/etc/di.xml | 2 +- app/code/Magento/Webapi/etc/frontend/routes.xml | 2 +- app/code/Magento/Webapi/etc/module.xml | 2 +- app/code/Magento/Webapi/etc/webapi.xsd | 2 +- app/code/Magento/Webapi/etc/webapi_rest/di.xml | 2 +- app/code/Magento/Webapi/etc/webapi_soap/di.xml | 2 +- app/code/Magento/Webapi/registration.php | 2 +- .../layout/adminhtml_integration_edit.xml | 2 +- .../adminhtml_integration_permissionsdialog.xml | 2 +- .../Model/Plugin/AnonymousResourceSecurity.php | 2 +- .../Model/Plugin/CacheInvalidator.php | 2 +- .../WebapiSecurity/etc/adminhtml/system.xml | 2 +- app/code/Magento/WebapiSecurity/etc/config.xml | 2 +- app/code/Magento/WebapiSecurity/etc/di.xml | 2 +- app/code/Magento/WebapiSecurity/etc/module.xml | 2 +- app/code/Magento/WebapiSecurity/registration.php | 2 +- .../Weee/Block/Adminhtml/Items/Price/Renderer.php | 2 +- app/code/Magento/Weee/Block/Element/Weee/Tax.php | 2 +- .../Magento/Weee/Block/Item/Price/Renderer.php | 2 +- app/code/Magento/Weee/Block/Renderer/Weee/Tax.php | 2 +- app/code/Magento/Weee/Block/Sales/Order/Totals.php | 2 +- app/code/Magento/Weee/Helper/Data.php | 2 +- .../Weee/Model/App/Action/ContextPlugin.php | 2 +- .../Weee/Model/Attribute/Backend/Weee/Tax.php | 2 +- app/code/Magento/Weee/Model/Config.php | 2 +- .../Magento/Weee/Model/Config/Source/Display.php | 2 +- .../ResourceModel/Attribute/Backend/Weee/Tax.php | 2 +- app/code/Magento/Weee/Model/ResourceModel/Tax.php | 2 +- app/code/Magento/Weee/Model/Sales/Pdf/Weee.php | 2 +- app/code/Magento/Weee/Model/Tax.php | 2 +- .../Magento/Weee/Model/Total/Creditmemo/Weee.php | 2 +- app/code/Magento/Weee/Model/Total/Invoice/Weee.php | 2 +- app/code/Magento/Weee/Model/Total/Quote/Weee.php | 2 +- .../Magento/Weee/Model/Total/Quote/WeeeTax.php | 2 +- app/code/Magento/Weee/Model/WeeeConfigProvider.php | 2 +- .../Observer/AddWeeeTaxAttributeTypeObserver.php | 2 +- .../Magento/Weee/Observer/AfterAddressSave.php | 2 +- .../AssignBackendModelToAttributeObserver.php | 2 +- .../Magento/Weee/Observer/CustomerLoggedIn.php | 2 +- .../Observer/GetPriceConfigurationObserver.php | 2 +- .../Observer/SetWeeeRendererInFormObserver.php | 2 +- .../Weee/Observer/UpdateElementTypesObserver.php | 2 +- .../Observer/UpdateExcludedFieldListObserver.php | 2 +- .../Weee/Observer/UpdateProductOptionsObserver.php | 2 +- .../Weee/Plugin/Checkout/CustomerData/Cart.php | 2 +- app/code/Magento/Weee/Pricing/Adjustment.php | 2 +- .../Magento/Weee/Pricing/Render/Adjustment.php | 2 +- .../Magento/Weee/Pricing/Render/TaxAdjustment.php | 2 +- app/code/Magento/Weee/Pricing/TaxAdjustment.php | 2 +- app/code/Magento/Weee/Setup/InstallData.php | 2 +- app/code/Magento/Weee/Setup/InstallSchema.php | 2 +- app/code/Magento/Weee/Setup/Recurring.php | 2 +- .../Test/Unit/App/Action/ContextPluginTest.php | 2 +- .../Weee/Test/Unit/Block/Element/Weee/TaxTest.php | 2 +- .../Test/Unit/Block/Item/Price/RendererTest.php | 2 +- .../Magento/Weee/Test/Unit/Helper/DataTest.php | 2 +- .../Unit/Model/Attribute/Backend/Weee/TaxTest.php | 2 +- .../Magento/Weee/Test/Unit/Model/ConfigTest.php | 2 +- .../Attribute/Backend/Weee/TaxTest.php | 2 +- .../Weee/Test/Unit/Model/ResourceModel/TaxTest.php | 2 +- app/code/Magento/Weee/Test/Unit/Model/TaxTest.php | 2 +- .../Test/Unit/Model/Total/Creditmemo/WeeeTest.php | 2 +- .../Test/Unit/Model/Total/Invoice/WeeeTest.php | 2 +- .../Test/Unit/Model/Total/Quote/WeeeTaxTest.php | 2 +- .../Weee/Test/Unit/Model/Total/Quote/WeeeTest.php | 2 +- .../Test/Unit/Model/WeeeConfigProviderTest.php | 2 +- .../Test/Unit/Observer/AfterAddressSaveTest.php | 2 +- .../Test/Unit/Observer/CustomerLoggedInTest.php | 2 +- .../Observer/GetPriceConfigurationObserverTest.php | 2 +- .../Observer/UpdateProductOptionsObserverTest.php | 2 +- .../Weee/Test/Unit/Pricing/AdjustmentTest.php | 2 +- .../Test/Unit/Pricing/Render/AdjustmentTest.php | 2 +- .../Test/Unit/Pricing/Render/TaxAdjustmentTest.php | 2 +- .../Weee/Test/Unit/Pricing/TaxAdjustmentTest.php | 2 +- .../Product/Form/Modifier/Manager/WebsiteTest.php | 2 +- .../Product/Form/Modifier/WeeeTest.php | 2 +- .../Ui/DataProvider/Product/Form/Modifier/Weee.php | 2 +- app/code/Magento/Weee/etc/adminhtml/di.xml | 2 +- app/code/Magento/Weee/etc/adminhtml/events.xml | 2 +- app/code/Magento/Weee/etc/adminhtml/system.xml | 2 +- app/code/Magento/Weee/etc/config.xml | 2 +- app/code/Magento/Weee/etc/di.xml | 2 +- app/code/Magento/Weee/etc/events.xml | 2 +- app/code/Magento/Weee/etc/fieldset.xml | 2 +- app/code/Magento/Weee/etc/frontend/di.xml | 2 +- app/code/Magento/Weee/etc/frontend/events.xml | 2 +- app/code/Magento/Weee/etc/module.xml | 2 +- app/code/Magento/Weee/etc/pdf.xml | 2 +- app/code/Magento/Weee/etc/sales.xml | 2 +- app/code/Magento/Weee/registration.php | 2 +- .../view/adminhtml/layout/catalog_product_form.xml | 2 +- .../layout/sales_creditmemo_item_price.xml | 2 +- .../adminhtml/layout/sales_invoice_item_price.xml | 2 +- .../layout/sales_order_create_item_price.xml | 2 +- .../layout/sales_order_creditmemo_new.xml | 2 +- .../layout/sales_order_creditmemo_updateqty.xml | 2 +- .../layout/sales_order_creditmemo_view.xml | 2 +- .../adminhtml/layout/sales_order_invoice_new.xml | 2 +- .../layout/sales_order_invoice_updateqty.xml | 2 +- .../adminhtml/layout/sales_order_invoice_view.xml | 2 +- .../adminhtml/layout/sales_order_item_price.xml | 2 +- .../view/adminhtml/layout/sales_order_view.xml | 2 +- .../Weee/view/adminhtml/requirejs-config.js | 2 +- .../view/adminhtml/templates/items/price/row.phtml | 2 +- .../adminhtml/templates/items/price/total.phtml | 2 +- .../adminhtml/templates/items/price/unit.phtml | 2 +- .../templates/order/create/items/price/row.phtml | 2 +- .../templates/order/create/items/price/total.phtml | 2 +- .../templates/order/create/items/price/unit.phtml | 2 +- .../view/adminhtml/templates/renderer/tax.phtml | 2 +- .../ui_component/product_attribute_add_form.xml | 2 +- .../Weee/view/adminhtml/web/js/fpt-attribute.js | 2 +- .../Weee/view/adminhtml/web/js/fpt-group.js | 2 +- .../view/adminhtml/web/js/regions-tax-select.js | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../view/base/templates/pricing/adjustment.phtml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../view/frontend/layout/checkout_index_index.xml | 2 +- .../layout/checkout_item_price_renderers.xml | 2 +- .../Magento/Weee/view/frontend/layout/default.xml | 2 +- .../frontend/layout/sales_email_item_price.xml | 2 +- .../layout/sales_email_order_creditmemo_items.xml | 2 +- .../layout/sales_email_order_invoice_items.xml | 2 +- .../frontend/layout/sales_email_order_items.xml | 2 +- .../frontend/layout/sales_guest_creditmemo.xml | 2 +- .../view/frontend/layout/sales_guest_invoice.xml | 2 +- .../view/frontend/layout/sales_guest_print.xml | 2 +- .../layout/sales_guest_printcreditmemo.xml | 2 +- .../frontend/layout/sales_guest_printinvoice.xml | 2 +- .../Weee/view/frontend/layout/sales_guest_view.xml | 2 +- .../frontend/layout/sales_order_creditmemo.xml | 2 +- .../view/frontend/layout/sales_order_invoice.xml | 2 +- .../frontend/layout/sales_order_item_price.xml | 2 +- .../view/frontend/layout/sales_order_print.xml | 2 +- .../layout/sales_order_printcreditmemo.xml | 2 +- .../frontend/layout/sales_order_printinvoice.xml | 2 +- .../Weee/view/frontend/layout/sales_order_view.xml | 2 +- .../Magento/Weee/view/frontend/requirejs-config.js | 2 +- .../checkout/cart/item/price/sidebar.phtml | 2 +- .../onepage/review/item/price/row_excl_tax.phtml | 2 +- .../onepage/review/item/price/row_incl_tax.phtml | 2 +- .../onepage/review/item/price/unit_excl_tax.phtml | 2 +- .../onepage/review/item/price/unit_incl_tax.phtml | 2 +- .../frontend/templates/email/items/price/row.phtml | 2 +- .../view/frontend/templates/item/price/row.phtml | 2 +- .../item/price/total_after_discount.phtml | 2 +- .../view/frontend/templates/item/price/unit.phtml | 2 +- .../view/frontend/web/js/view/cart/totals/weee.js | 2 +- .../checkout/summary/item/price/row_excl_tax.js | 2 +- .../checkout/summary/item/price/row_incl_tax.js | 2 +- .../js/view/checkout/summary/item/price/weee.js | 2 +- .../frontend/web/js/view/checkout/summary/weee.js | 2 +- .../Magento/Weee/view/frontend/web/tax-toggle.js | 2 +- .../checkout/summary/item/price/row_excl_tax.html | 2 +- .../checkout/summary/item/price/row_incl_tax.html | 2 +- .../web/template/checkout/summary/weee.html | 2 +- app/code/Magento/Widget/Block/Adminhtml/Widget.php | 2 +- .../Adminhtml/Widget/Catalog/Category/Chooser.php | 2 +- .../Widget/Block/Adminhtml/Widget/Chooser.php | 2 +- .../Magento/Widget/Block/Adminhtml/Widget/Form.php | 2 +- .../Widget/Block/Adminhtml/Widget/Instance.php | 2 +- .../Block/Adminhtml/Widget/Instance/Edit.php | 2 +- .../Widget/Instance/Edit/Chooser/Container.php | 2 +- .../Instance/Edit/Chooser/DesignAbstraction.php | 2 +- .../Widget/Instance/Edit/Chooser/Layout.php | 2 +- .../Widget/Instance/Edit/Chooser/Template.php | 2 +- .../Block/Adminhtml/Widget/Instance/Edit/Form.php | 2 +- .../Adminhtml/Widget/Instance/Edit/Tab/Main.php | 2 +- .../Widget/Instance/Edit/Tab/Main/Layout.php | 2 +- .../Widget/Instance/Edit/Tab/Properties.php | 2 +- .../Widget/Instance/Edit/Tab/Settings.php | 2 +- .../Block/Adminhtml/Widget/Instance/Edit/Tabs.php | 2 +- .../Widget/Block/Adminhtml/Widget/Options.php | 2 +- app/code/Magento/Widget/Block/BlockInterface.php | 2 +- .../Controller/Adminhtml/Widget/BuildWidget.php | 2 +- .../Widget/Controller/Adminhtml/Widget/Index.php | 2 +- .../Controller/Adminhtml/Widget/Instance.php | 2 +- .../Adminhtml/Widget/Instance/Blocks.php | 2 +- .../Adminhtml/Widget/Instance/Categories.php | 2 +- .../Adminhtml/Widget/Instance/Delete.php | 2 +- .../Controller/Adminhtml/Widget/Instance/Edit.php | 2 +- .../Controller/Adminhtml/Widget/Instance/Index.php | 2 +- .../Adminhtml/Widget/Instance/NewAction.php | 2 +- .../Adminhtml/Widget/Instance/Products.php | 2 +- .../Controller/Adminhtml/Widget/Instance/Save.php | 2 +- .../Adminhtml/Widget/Instance/Template.php | 2 +- .../Adminhtml/Widget/Instance/Validate.php | 2 +- .../Controller/Adminhtml/Widget/LoadOptions.php | 2 +- app/code/Magento/Widget/Helper/Conditions.php | 2 +- app/code/Magento/Widget/Model/Config/Converter.php | 2 +- app/code/Magento/Widget/Model/Config/Data.php | 2 +- .../Magento/Widget/Model/Config/FileResolver.php | 2 +- app/code/Magento/Widget/Model/Config/Reader.php | 2 +- .../Magento/Widget/Model/Config/SchemaLocator.php | 2 +- app/code/Magento/Widget/Model/Layout/Link.php | 2 +- app/code/Magento/Widget/Model/Layout/Update.php | 2 +- .../Magento/Widget/Model/NamespaceResolver.php | 2 +- .../Widget/Model/ResourceModel/Layout/Link.php | 2 +- .../Model/ResourceModel/Layout/Link/Collection.php | 2 +- .../Widget/Model/ResourceModel/Layout/Plugin.php | 2 +- .../Widget/Model/ResourceModel/Layout/Update.php | 2 +- .../ResourceModel/Layout/Update/Collection.php | 2 +- .../Magento/Widget/Model/ResourceModel/Widget.php | 2 +- .../Widget/Model/ResourceModel/Widget/Instance.php | 2 +- .../ResourceModel/Widget/Instance/Collection.php | 2 +- .../Widget/Instance/Options/ThemeId.php | 2 +- .../Widget/Instance/Options/Types.php | 2 +- app/code/Magento/Widget/Model/Template/Filter.php | 2 +- .../Widget/Model/Template/FilterEmulate.php | 2 +- app/code/Magento/Widget/Model/Widget.php | 2 +- app/code/Magento/Widget/Model/Widget/Config.php | 2 +- app/code/Magento/Widget/Model/Widget/Instance.php | 2 +- .../Model/Widget/Instance/OptionsFactory.php | 2 +- app/code/Magento/Widget/Setup/InstallData.php | 2 +- app/code/Magento/Widget/Setup/InstallSchema.php | 2 +- .../Widget/Catalog/Category/ChooserTest.php | 2 +- .../Edit/Chooser/AbstractContainerTest.php | 2 +- .../Widget/Instance/Edit/Chooser/ContainerTest.php | 2 +- .../Widget/Instance/Edit/Tab/PropertiesTest.php | 2 +- .../Adminhtml/Widget/Instance/CategoriesTest.php | 2 +- .../Adminhtml/Widget/LoadOptionsTest.php | 2 +- .../Widget/Test/Unit/Helper/ConditionsTest.php | 2 +- .../Test/Unit/Model/Config/ConverterTest.php | 2 +- .../Test/Unit/Model/Config/FileResolverTest.php | 2 +- .../Test/Unit/Model/NamespaceResolverTest.php | 2 +- .../ResourceModel/Layout/AbstractTestCase.php | 2 +- .../ResourceModel/Layout/Link/CollectionTest.php | 2 +- .../ResourceModel/Layout/Update/CollectionTest.php | 2 +- .../Test/Unit/Model/Template/FilterEmulateTest.php | 2 +- .../Widget/Test/Unit/Model/Template/FilterTest.php | 2 +- .../Widget/Test/Unit/Model/Widget/InstanceTest.php | 2 +- .../Magento/Widget/Test/Unit/Model/WidgetTest.php | 2 +- .../Test/Unit/Model/_files/mappedConfigArray1.php | 2 +- .../Test/Unit/Model/_files/mappedConfigArray2.php | 2 +- .../Unit/Model/_files/mappedConfigArrayAll.php | 2 +- .../Widget/Test/Unit/Model/_files/widget.xml | 2 +- .../Test/Unit/Model/_files/widget_config.php | 2 +- app/code/Magento/Widget/etc/acl.xml | 2 +- app/code/Magento/Widget/etc/adminhtml/di.xml | 2 +- app/code/Magento/Widget/etc/adminhtml/menu.xml | 2 +- app/code/Magento/Widget/etc/adminhtml/routes.xml | 2 +- app/code/Magento/Widget/etc/di.xml | 2 +- app/code/Magento/Widget/etc/module.xml | 2 +- app/code/Magento/Widget/etc/types.xsd | 2 +- app/code/Magento/Widget/etc/widget.xsd | 2 +- app/code/Magento/Widget/etc/widget_file.xsd | 2 +- app/code/Magento/Widget/registration.php | 2 +- .../adminhtml/layout/adminhtml_widget_index.xml | 2 +- .../layout/adminhtml_widget_instance_block.xml | 2 +- .../layout/adminhtml_widget_instance_edit.xml | 2 +- .../layout/adminhtml_widget_instance_index.xml | 2 +- .../layout/adminhtml_widget_loadoptions.xml | 2 +- .../templates/catalog/category/widget/tree.phtml | 2 +- .../adminhtml/templates/instance/edit/layout.phtml | 2 +- .../view/adminhtml/templates/instance/js.phtml | 2 +- .../Widget/view/frontend/layout/default.xml | 2 +- .../Magento/Widget/view/frontend/layout/print.xml | 2 +- app/code/Magento/Wishlist/Block/AbstractBlock.php | 2 +- app/code/Magento/Wishlist/Block/AddToWishlist.php | 2 +- .../Adminhtml/Widget/Grid/Column/Filter/Text.php | 2 +- .../Wishlist/Block/Adminhtml/WishlistTab.php | 2 +- .../Cart/Item/Renderer/Actions/MoveToWishlist.php | 2 +- .../Product/ProductList/Item/AddTo/Wishlist.php | 2 +- .../Block/Catalog/Product/View/AddTo/Wishlist.php | 2 +- .../Magento/Wishlist/Block/Customer/Sharing.php | 2 +- .../Magento/Wishlist/Block/Customer/Sidebar.php | 2 +- .../Magento/Wishlist/Block/Customer/Wishlist.php | 2 +- .../Wishlist/Block/Customer/Wishlist/Button.php | 2 +- .../Block/Customer/Wishlist/Item/Column.php | 2 +- .../Customer/Wishlist/Item/Column/Actions.php | 2 +- .../Block/Customer/Wishlist/Item/Column/Cart.php | 2 +- .../Customer/Wishlist/Item/Column/Comment.php | 2 +- .../Block/Customer/Wishlist/Item/Column/Edit.php | 2 +- .../Block/Customer/Wishlist/Item/Column/Image.php | 2 +- .../Block/Customer/Wishlist/Item/Column/Info.php | 2 +- .../Block/Customer/Wishlist/Item/Column/Remove.php | 2 +- .../Block/Customer/Wishlist/Item/Options.php | 2 +- .../Wishlist/Block/Customer/Wishlist/Items.php | 2 +- app/code/Magento/Wishlist/Block/Item/Configure.php | 2 +- app/code/Magento/Wishlist/Block/Link.php | 2 +- app/code/Magento/Wishlist/Block/Rss/EmailLink.php | 2 +- app/code/Magento/Wishlist/Block/Rss/Link.php | 2 +- .../Magento/Wishlist/Block/Share/Email/Items.php | 2 +- app/code/Magento/Wishlist/Block/Share/Wishlist.php | 2 +- .../Magento/Wishlist/Controller/AbstractIndex.php | 2 +- app/code/Magento/Wishlist/Controller/Index/Add.php | 2 +- .../Magento/Wishlist/Controller/Index/Allcart.php | 2 +- .../Magento/Wishlist/Controller/Index/Cart.php | 2 +- .../Wishlist/Controller/Index/Configure.php | 2 +- .../Controller/Index/DownloadCustomOption.php | 2 +- .../Magento/Wishlist/Controller/Index/Fromcart.php | 2 +- .../Magento/Wishlist/Controller/Index/Index.php | 2 +- .../Magento/Wishlist/Controller/Index/Plugin.php | 2 +- .../Magento/Wishlist/Controller/Index/Remove.php | 2 +- .../Magento/Wishlist/Controller/Index/Send.php | 2 +- .../Magento/Wishlist/Controller/Index/Share.php | 2 +- .../Magento/Wishlist/Controller/Index/Update.php | 2 +- .../Controller/Index/UpdateItemOptions.php | 2 +- .../Magento/Wishlist/Controller/IndexInterface.php | 2 +- .../Magento/Wishlist/Controller/Shared/Allcart.php | 2 +- .../Magento/Wishlist/Controller/Shared/Cart.php | 2 +- .../Magento/Wishlist/Controller/Shared/Index.php | 2 +- .../Controller/Shared/WishlistProvider.php | 2 +- .../Wishlist/Controller/WishlistProvider.php | 2 +- .../Controller/WishlistProviderInterface.php | 2 +- app/code/Magento/Wishlist/Helper/Data.php | 2 +- app/code/Magento/Wishlist/Helper/Rss.php | 2 +- .../Magento/Wishlist/Model/AuthenticationState.php | 2 +- .../Model/AuthenticationStateInterface.php | 2 +- app/code/Magento/Wishlist/Model/Config.php | 2 +- .../Wishlist/Model/Config/Source/Summary.php | 2 +- app/code/Magento/Wishlist/Model/Item.php | 2 +- app/code/Magento/Wishlist/Model/Item/Option.php | 2 +- app/code/Magento/Wishlist/Model/ItemCarrier.php | 2 +- .../Wishlist/Model/LocaleQuantityProcessor.php | 2 +- .../Magento/Wishlist/Model/ResourceModel/Item.php | 2 +- .../Model/ResourceModel/Item/Collection.php | 2 +- .../Model/ResourceModel/Item/Collection/Grid.php | 2 +- .../Wishlist/Model/ResourceModel/Item/Option.php | 2 +- .../Model/ResourceModel/Item/Option/Collection.php | 2 +- .../Wishlist/Model/ResourceModel/Wishlist.php | 2 +- .../Model/ResourceModel/Wishlist/Collection.php | 2 +- app/code/Magento/Wishlist/Model/Rss/Wishlist.php | 2 +- app/code/Magento/Wishlist/Model/Wishlist.php | 2 +- app/code/Magento/Wishlist/Observer/AddToCart.php | 2 +- .../Magento/Wishlist/Observer/CartUpdateBefore.php | 2 +- .../Magento/Wishlist/Observer/CustomerLogin.php | 2 +- .../Magento/Wishlist/Observer/CustomerLogout.php | 2 +- .../ConfiguredPrice/ConfigurableProduct.php | 2 +- .../Pricing/ConfiguredPrice/Downloadable.php | 2 +- .../Wishlist/Pricing/Render/ConfiguredPriceBox.php | 2 +- app/code/Magento/Wishlist/Setup/InstallSchema.php | 2 +- app/code/Magento/Wishlist/Setup/Recurring.php | 2 +- .../Widget/Grid/Column/Filter/TextTest.php | 2 +- .../Item/Renderer/Actions/MoveToWishlistTest.php | 2 +- .../Test/Unit/Block/Customer/SidebarTest.php | 2 +- .../Test/Unit/Block/Item/ConfigureTest.php | 2 +- .../Wishlist/Test/Unit/Block/Rss/EmailLinkTest.php | 2 +- .../Wishlist/Test/Unit/Block/Rss/LinkTest.php | 2 +- .../Test/Unit/Controller/Index/AllcartTest.php | 2 +- .../Test/Unit/Controller/Index/CartTest.php | 2 +- .../Test/Unit/Controller/Index/FromcartTest.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Test/Unit/Controller/Index/PluginTest.php | 2 +- .../Test/Unit/Controller/Index/RemoveTest.php | 2 +- .../Test/Unit/Controller/Index/SendTest.php | 2 +- .../Test/Unit/Controller/Index/ShareTest.php | 2 +- .../Controller/Index/UpdateItemOptionsTest.php | 2 +- .../Test/Unit/Controller/Shared/AllcartTest.php | 2 +- .../Test/Unit/Controller/Shared/CartTest.php | 2 +- .../Test/Unit/Controller/WishlistProviderTest.php | 2 +- .../Test/Unit/CustomerData/WishlistTest.php | 2 +- .../Magento/Wishlist/Test/Unit/Helper/DataTest.php | 2 +- .../Magento/Wishlist/Test/Unit/Helper/RssTest.php | 2 +- .../Test/Unit/Model/AuthenticationStateTest.php | 2 +- .../Wishlist/Test/Unit/Model/ConfigTest.php | 2 +- .../Wishlist/Test/Unit/Model/ItemCarrierTest.php | 2 +- .../Magento/Wishlist/Test/Unit/Model/ItemTest.php | 2 +- .../Unit/Model/LocaleQuantityProcessorTest.php | 2 +- .../Model/ResourceModel/Item/CollectionTest.php | 2 +- .../Wishlist/Test/Unit/Model/Rss/WishlistTest.php | 2 +- .../Wishlist/Test/Unit/Model/WishlistTest.php | 2 +- .../Wishlist/Test/Unit/Observer/AddToCartTest.php | 2 +- .../Test/Unit/Observer/CartUpdateBeforeTest.php | 2 +- .../Test/Unit/Observer/CustomerLoginTest.php | 2 +- .../Test/Unit/Observer/CustomerLogoutTest.php | 2 +- .../ConfiguredPrice/ConfigurableProductTest.php | 2 +- .../Pricing/ConfiguredPrice/DownloadableTest.php | 2 +- .../Unit/Pricing/Render/ConfiguredPriceBoxTest.php | 2 +- app/code/Magento/Wishlist/etc/acl.xml | 2 +- app/code/Magento/Wishlist/etc/adminhtml/di.xml | 2 +- app/code/Magento/Wishlist/etc/adminhtml/system.xml | 2 +- .../Magento/Wishlist/etc/catalog_attributes.xml | 2 +- app/code/Magento/Wishlist/etc/config.xml | 2 +- app/code/Magento/Wishlist/etc/di.xml | 2 +- app/code/Magento/Wishlist/etc/email_templates.xml | 2 +- app/code/Magento/Wishlist/etc/events.xml | 2 +- app/code/Magento/Wishlist/etc/frontend/di.xml | 2 +- app/code/Magento/Wishlist/etc/frontend/events.xml | 2 +- .../Magento/Wishlist/etc/frontend/page_types.xml | 2 +- app/code/Magento/Wishlist/etc/frontend/routes.xml | 2 +- .../Magento/Wishlist/etc/frontend/sections.xml | 2 +- app/code/Magento/Wishlist/etc/module.xml | 2 +- app/code/Magento/Wishlist/etc/view.xml | 2 +- app/code/Magento/Wishlist/registration.php | 2 +- .../view/adminhtml/layout/customer_index_edit.xml | 2 +- .../adminhtml/layout/customer_index_wishlist.xml | 2 +- .../templates/customer/edit/tab/wishlist.phtml | 2 +- .../view/base/layout/catalog_product_prices.xml | 2 +- .../view/frontend/email/share_notification.html | 2 +- .../view/frontend/layout/catalog_category_view.xml | 2 +- .../view/frontend/layout/catalog_product_view.xml | 2 +- .../layout/catalogsearch_advanced_result.xml | 2 +- .../frontend/layout/catalogsearch_result_index.xml | 2 +- .../view/frontend/layout/checkout_cart_index.xml | 2 +- .../layout/checkout_cart_item_renderers.xml | 2 +- .../view/frontend/layout/customer_account.xml | 2 +- .../Wishlist/view/frontend/layout/default.xml | 2 +- .../view/frontend/layout/wishlist_email_items.xml | 2 +- .../view/frontend/layout/wishlist_email_rss.xml | 2 +- .../frontend/layout/wishlist_index_configure.xml | 2 +- .../wishlist_index_configure_type_bundle.xml | 2 +- .../wishlist_index_configure_type_configurable.xml | 2 +- .../wishlist_index_configure_type_downloadable.xml | 2 +- .../wishlist_index_configure_type_grouped.xml | 2 +- .../wishlist_index_configure_type_simple.xml | 2 +- .../view/frontend/layout/wishlist_index_index.xml | 2 +- .../view/frontend/layout/wishlist_index_share.xml | 2 +- .../view/frontend/layout/wishlist_shared_index.xml | 2 +- .../Wishlist/view/frontend/requirejs-config.js | 2 +- .../Wishlist/view/frontend/templates/addto.phtml | 2 +- .../view/frontend/templates/button/share.phtml | 2 +- .../view/frontend/templates/button/tocart.phtml | 2 +- .../view/frontend/templates/button/update.phtml | 2 +- .../item/renderer/actions/move_to_wishlist.phtml | 2 +- .../catalog/product/list/addto/wishlist.phtml | 2 +- .../catalog/product/view/addto/wishlist.phtml | 2 +- .../view/frontend/templates/email/items.phtml | 2 +- .../frontend/templates/item/column/actions.phtml | 2 +- .../view/frontend/templates/item/column/cart.phtml | 2 +- .../frontend/templates/item/column/comment.phtml | 2 +- .../view/frontend/templates/item/column/edit.phtml | 2 +- .../frontend/templates/item/column/image.phtml | 2 +- .../view/frontend/templates/item/column/name.phtml | 2 +- .../frontend/templates/item/column/price.phtml | 2 +- .../frontend/templates/item/column/remove.phtml | 2 +- .../frontend/templates/item/configure/addto.phtml | 2 +- .../templates/item/configure/addto/wishlist.phtml | 2 +- .../view/frontend/templates/item/list.phtml | 2 +- .../view/frontend/templates/js/components.phtml | 2 +- .../Wishlist/view/frontend/templates/link.phtml | 2 +- .../messages/addProductSuccessMessage.phtml | 2 +- .../view/frontend/templates/options_list.phtml | 2 +- .../view/frontend/templates/rss/email.phtml | 2 +- .../view/frontend/templates/rss/wishlist.phtml | 2 +- .../Wishlist/view/frontend/templates/shared.phtml | 2 +- .../Wishlist/view/frontend/templates/sharing.phtml | 2 +- .../Wishlist/view/frontend/templates/sidebar.phtml | 2 +- .../Wishlist/view/frontend/templates/view.phtml | 2 +- .../view/frontend/web/js/add-to-wishlist.js | 2 +- .../Wishlist/view/frontend/web/js/search.js | 2 +- .../Wishlist/view/frontend/web/js/view/wishlist.js | 2 +- .../Magento/Wishlist/view/frontend/web/wishlist.js | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../backend/Magento_Backend/layout/default.xml | 2 +- .../backend/Magento_Backend/layout/styles.xml | 2 +- .../web/css/source/_module-old.less | 2 +- .../Magento_Backend/web/css/source/_module.less | 2 +- .../web/css/source/module/_footer.less | 2 +- .../web/css/source/module/_header.less | 2 +- .../web/css/source/module/_main.less | 2 +- .../web/css/source/module/_menu.less | 2 +- .../css/source/module/header/_actions-group.less | 2 +- .../css/source/module/header/_headings-group.less | 2 +- .../header/actions-group/_notifications.less | 2 +- .../module/header/actions-group/_search.less | 2 +- .../source/module/header/actions-group/_user.less | 2 +- .../module/header/headings-group/_breadcrumbs.less | 2 +- .../web/css/source/module/main/_actions-bar.less | 2 +- .../source/module/main/_collapsible-blocks.less | 2 +- .../web/css/source/module/main/_page-nav.less | 2 +- .../web/css/source/module/main/_store-scope.less | 2 +- .../module/main/actions-bar/_store-switcher.less | 2 +- .../css/source/module/pages/_cache-management.less | 2 +- .../web/css/source/module/pages/_dashboard.less | 2 +- .../web/css/source/module/pages/_login.less | 2 +- .../Magento_Banner/web/css/source/_module.less | 2 +- .../Magento_Braintree/web/css/source/_module.less | 2 +- .../web/css/source/_module-old.less | 2 +- .../Magento_Catalog/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Config/web/css/source/_module.less | 2 +- .../web/css/source/_module-old.less | 2 +- .../web/css/source/_module.less | 2 +- .../components/_attributes_template_popup.less | 2 +- .../source/module/components/_currency-addon.less | 2 +- .../web/css/source/module/components/_grid.less | 2 +- .../source/module/components/_navigation-bar.less | 2 +- .../source/module/components/_steps-wizard.less | 2 +- .../module/components/navigation-bar/_buttons.less | 2 +- .../components/navigation-bar/_navigation-bar.less | 2 +- .../css/source/module/steps/_attribute-values.less | 2 +- .../web/css/source/module/steps/_bulk-images.less | 2 +- .../source/module/steps/_select-attributes.less | 2 +- .../web/css/source/module/steps/_summary.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Customer/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module-old.less | 2 +- .../web/css/source/_module.less | 2 +- .../backend/Magento_Enterprise/layout/default.xml | 2 +- .../web/css/source/_module-old.less | 2 +- .../Magento_GiftCard/web/css/source/_module.less | 2 +- .../web/css/source/_module-old.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Msrp/web/css/source/_module-old.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Review/web/css/source/_module.less | 2 +- .../Magento_Reward/web/css/source/_module.less | 2 +- .../Magento_Rma/web/css/source/_module.less | 2 +- .../Magento_Sales/web/css/source/_module.less | 2 +- .../web/css/source/module/_edit-order.less | 2 +- .../web/css/source/module/_order.less | 2 +- .../web/css/source/module/order/_address.less | 2 +- .../web/css/source/module/order/_discounts.less | 2 +- .../web/css/source/module/order/_gift-options.less | 2 +- .../web/css/source/module/order/_items.less | 2 +- .../css/source/module/order/_order-account.less | 2 +- .../css/source/module/order/_order-comments.less | 2 +- .../css/source/module/order/_payment-shipping.less | 2 +- .../web/css/source/module/order/_sidebar.less | 2 +- .../web/css/source/module/order/_sku.less | 2 +- .../web/css/source/module/order/_total.less | 2 +- .../Magento_Shipping/web/css/source/_module.less | 2 +- .../Magento_Staging/web/css/source/_module.less | 2 +- .../source/module/_scheduled-changes-modal.less | 2 +- .../web/css/source/module/_scheduled-changes.less | 2 +- .../css/source/module/_staging-data-tooltip.less | 2 +- .../Magento_Tax/web/css/source/_module-old.less | 2 +- .../Magento_Tax/web/css/source/_module.less | 2 +- .../Magento_Theme/web/css/source/_module-old.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Ui/web/css/source/_module-old.less | 2 +- .../backend/Magento_Ui/web/css/source/_module.less | 2 +- .../web/css/source/module/_data-grid.less | 2 +- .../source/module/data-grid/_data-grid-header.less | 2 +- .../source/module/data-grid/_data-grid-static.less | 2 +- .../_data-grid-action-bookmarks.less | 2 +- .../_data-grid-action-columns.less | 2 +- .../data-grid-header/_data-grid-action-export.less | 2 +- .../data-grid-header/_data-grid-filters.less | 2 +- .../data-grid-header/_data-grid-pager.less | 2 +- .../data-grid-header/_data-grid-sticky-header.less | 2 +- .../Magento_Vault/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- app/design/adminhtml/Magento/backend/etc/view.xml | 2 +- .../adminhtml/Magento/backend/registration.php | 2 +- app/design/adminhtml/Magento/backend/theme.xml | 2 +- .../backend/web/app/setup/styles/less/_setup.less | 2 +- .../setup/styles/less/components/_messages.less | 2 +- .../styles/less/components/_navigation-bar.less | 2 +- .../styles/less/components/_progress-bars.less | 2 +- .../setup/styles/less/components/_tooltips.less | 2 +- .../components/tooltips/_password-strength.less | 2 +- .../styles/less/components/tooltips/_tooltips.less | 2 +- .../web/app/setup/styles/less/lib/_buttons.less | 2 +- .../web/app/setup/styles/less/lib/_classes.less | 2 +- .../web/app/setup/styles/less/lib/_collector.less | 2 +- .../web/app/setup/styles/less/lib/_extends.less | 2 +- .../web/app/setup/styles/less/lib/_forms.less | 2 +- .../web/app/setup/styles/less/lib/_icons.less | 2 +- .../web/app/setup/styles/less/lib/_lists.less | 2 +- .../web/app/setup/styles/less/lib/_structures.less | 2 +- .../web/app/setup/styles/less/lib/_utilities.less | 2 +- .../web/app/setup/styles/less/lib/_variables.less | 2 +- .../styles/less/lib/forms/_checkbox-radio.less | 2 +- .../app/setup/styles/less/lib/forms/_forms.less | 2 +- .../app/setup/styles/less/lib/forms/_legends.less | 2 +- .../setup/styles/less/lib/forms/_multiselects.less | 2 +- .../app/setup/styles/less/lib/forms/_selects.less | 2 +- .../setup/styles/less/lib/forms/_validation.less | 2 +- .../styles/less/lib/utilities/_animations.less | 2 +- .../styles/less/lib/utilities/_grid-framework.less | 2 +- .../app/setup/styles/less/lib/utilities/_grid.less | 2 +- .../less/lib/utilities/_vendor-prefixes.less | 2 +- .../web/app/setup/styles/less/pages/_common.less | 2 +- .../styles/less/pages/_customize-your-store.less | 2 +- .../web/app/setup/styles/less/pages/_install.less | 2 +- .../web/app/setup/styles/less/pages/_landing.less | 2 +- .../web/app/setup/styles/less/pages/_license.less | 2 +- .../setup/styles/less/pages/_readiness-check.less | 2 +- .../styles/less/pages/_web-configuration.less | 2 +- .../updater/styles/less/components/_data-grid.less | 2 +- .../updater/styles/less/components/_header.less | 2 +- .../app/updater/styles/less/components/_menu.less | 2 +- .../updater/styles/less/components/_modals.less | 2 +- .../less/components/_navigation-bar_extend.less | 2 +- .../styles/less/components/_page-inner.less | 2 +- .../web/app/updater/styles/less/pages/_common.less | 2 +- .../styles/less/pages/_component-manager.less | 2 +- .../web/app/updater/styles/less/pages/_home.less | 2 +- .../web/app/updater/styles/less/pages/_login.less | 2 +- .../app/updater/styles/less/source/_extends.less | 2 +- .../web/app/updater/styles/less/source/_forms.less | 2 +- .../web/app/updater/styles/less/source/_lists.less | 2 +- .../app/updater/styles/less/source/_structure.less | 2 +- .../updater/styles/less/source/_typography.less | 2 +- .../app/updater/styles/less/source/_variables.less | 2 +- .../Magento/backend/web/css/source/_actions.less | 2 +- .../Magento/backend/web/css/source/_classes.less | 2 +- .../backend/web/css/source/_components.less | 2 +- .../Magento/backend/web/css/source/_extends.less | 2 +- .../Magento/backend/web/css/source/_forms.less | 2 +- .../Magento/backend/web/css/source/_grid.less | 2 +- .../Magento/backend/web/css/source/_icons.less | 2 +- .../Magento/backend/web/css/source/_lists.less | 2 +- .../Magento/backend/web/css/source/_reset.less | 2 +- .../backend/web/css/source/_responsive.less | 2 +- .../Magento/backend/web/css/source/_sources.less | 2 +- .../Magento/backend/web/css/source/_structure.less | 2 +- .../Magento/backend/web/css/source/_tables.less | 2 +- .../Magento/backend/web/css/source/_tabs.less | 2 +- .../Magento/backend/web/css/source/_theme.less | 2 +- .../backend/web/css/source/_typography.less | 2 +- .../Magento/backend/web/css/source/_utilities.less | 2 +- .../Magento/backend/web/css/source/_variables.less | 2 +- .../web/css/source/actions/_actions-dropdown.less | 2 +- .../css/source/actions/_actions-multicheck.less | 2 +- .../css/source/actions/_actions-multiselect.less | 2 +- .../web/css/source/actions/_actions-select.less | 2 +- .../web/css/source/actions/_actions-split.less | 2 +- .../web/css/source/actions/_actions-switcher.less | 2 +- .../web/css/source/components/_calendar-temp.less | 2 +- .../web/css/source/components/_data-tooltip.less | 2 +- .../web/css/source/components/_file-insertion.less | 2 +- .../web/css/source/components/_file-uploader.less | 2 +- .../web/css/source/components/_media-gallery.less | 2 +- .../web/css/source/components/_messages.less | 2 +- .../web/css/source/components/_modals_extend.less | 2 +- .../web/css/source/components/_popups-old.less | 2 +- .../backend/web/css/source/components/_popups.less | 2 +- .../css/source/components/_resizable-block.less | 2 +- .../web/css/source/components/_rules-temp.less | 2 +- .../backend/web/css/source/components/_slider.less | 2 +- .../web/css/source/components/_spinner.less | 2 +- .../web/css/source/components/_timeline.less | 2 +- .../backend/web/css/source/forms/_controls.less | 2 +- .../backend/web/css/source/forms/_extends.less | 2 +- .../backend/web/css/source/forms/_fields.less | 2 +- .../web/css/source/forms/_form-wysiwyg.less | 2 +- .../backend/web/css/source/forms/_temp.less | 2 +- .../css/source/forms/controls/_checkbox-radio.less | 2 +- .../source/forms/fields/_control-collapsible.less | 2 +- .../css/source/forms/fields/_control-table.less | 2 +- .../web/css/source/forms/fields/_field-reset.less | 2 +- .../css/source/forms/fields/_field-tooltips.less | 2 +- .../backend/web/css/source/utilities/_actions.less | 2 +- .../web/css/source/utilities/_animations.less | 2 +- .../web/css/source/utilities/_grid-framework.less | 2 +- .../backend/web/css/source/utilities/_grid.less | 2 +- .../backend/web/css/source/utilities/_spinner.less | 2 +- .../backend/web/css/source/variables/_actions.less | 2 +- .../web/css/source/variables/_animations.less | 2 +- .../backend/web/css/source/variables/_colors.less | 2 +- .../web/css/source/variables/_components.less | 2 +- .../web/css/source/variables/_data-grid.less | 2 +- .../backend/web/css/source/variables/_forms.less | 2 +- .../backend/web/css/source/variables/_icons.less | 2 +- .../backend/web/css/source/variables/_spinner.less | 2 +- .../web/css/source/variables/_structure.less | 2 +- .../web/css/source/variables/_typography.less | 2 +- .../Magento/backend/web/css/styles-old.less | 2 +- .../adminhtml/Magento/backend/web/css/styles.less | 2 +- .../adminhtml/Magento/backend/web/js/theme.js | 2 +- .../Magento/backend/web/mui/clearless/_all.less | 2 +- .../Magento/backend/web/mui/clearless/_arrows.less | 2 +- .../backend/web/mui/clearless/_helpers.less | 2 +- .../Magento/backend/web/mui/clearless/_icons.less | 2 +- .../backend/web/mui/clearless/_settings.less | 2 +- .../backend/web/mui/clearless/_sprites.less | 2 +- .../Magento/backend/web/mui/styles/_abstract.less | 2 +- .../Magento/backend/web/mui/styles/_base.less | 2 +- .../Magento/backend/web/mui/styles/_table.less | 2 +- .../Magento/backend/web/mui/styles/_vars.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../Magento_Banner/web/css/source/_widgets.less | 2 +- .../Magento_Braintree/web/css/source/_module.less | 2 +- .../Magento_Bundle/web/css/source/_email.less | 2 +- .../Magento_Bundle/web/css/source/_module.less | 2 +- .../Magento_Catalog/web/css/source/_module.less | 2 +- .../Magento_Catalog/web/css/source/_widgets.less | 2 +- .../web/css/source/module/_listings.less | 2 +- .../web/css/source/module/_toolbar.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Checkout/web/css/source/_module.less | 2 +- .../web/css/source/module/_cart.less | 2 +- .../web/css/source/module/_checkout.less | 2 +- .../web/css/source/module/_minicart.less | 2 +- .../source/module/checkout/_authentication.less | 2 +- .../module/checkout/_checkout-agreements.less | 2 +- .../web/css/source/module/checkout/_checkout.less | 2 +- .../source/module/checkout/_estimated-total.less | 2 +- .../web/css/source/module/checkout/_fields.less | 2 +- .../web/css/source/module/checkout/_modals.less | 2 +- .../css/source/module/checkout/_order-summary.less | 2 +- .../source/module/checkout/_payment-options.less | 2 +- .../web/css/source/module/checkout/_payments.less | 2 +- .../css/source/module/checkout/_progress-bar.less | 2 +- .../source/module/checkout/_shipping-policy.less | 2 +- .../web/css/source/module/checkout/_shipping.less | 2 +- .../checkout/_sidebar-shipping-information.less | 2 +- .../web/css/source/module/checkout/_sidebar.less | 2 +- .../web/css/source/module/checkout/_tooltip.less | 2 +- .../blank/Magento_Cms/web/css/source/_widgets.less | 2 +- .../Magento_Customer/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_GiftCard/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Invitation/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../blank/Magento_Msrp/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Newsletter/web/css/source/_module.less | 2 +- .../Magento_Paypal/web/css/source/_module.less | 2 +- .../web/css/source/module/_billing.less | 2 +- .../web/css/source/module/_paypal-button.less | 2 +- .../web/css/source/module/_review.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Reports/web/css/source/_widgets.less | 2 +- .../Magento_Review/web/css/source/_module.less | 2 +- .../Magento_Reward/web/css/source/_module.less | 2 +- .../blank/Magento_Rma/web/css/source/_email.less | 2 +- .../blank/Magento_Rma/web/css/source/_module.less | 2 +- .../blank/Magento_Sales/web/css/source/_email.less | 2 +- .../Magento_Sales/web/css/source/_module.less | 2 +- .../Magento_Sales/web/css/source/_widgets.less | 2 +- .../Magento_SalesRule/web/css/source/_module.less | 2 +- .../Magento_SendFriend/web/css/source/_module.less | 2 +- .../Magento_Theme/layout/default_head_blocks.xml | 2 +- .../Magento_Theme/web/css/source/_module.less | 2 +- .../Magento_Vault/web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../blank/Magento_Weee/web/css/source/_module.less | 2 +- .../Magento_Wishlist/web/css/source/_module.less | 2 +- app/design/frontend/Magento/blank/etc/view.xml | 2 +- app/design/frontend/Magento/blank/registration.php | 2 +- app/design/frontend/Magento/blank/theme.xml | 2 +- .../frontend/Magento/blank/web/css/_styles.less | 2 +- .../Magento/blank/web/css/email-fonts.less | 2 +- .../Magento/blank/web/css/email-inline.less | 2 +- .../frontend/Magento/blank/web/css/email.less | 2 +- .../frontend/Magento/blank/web/css/print.less | 2 +- .../blank/web/css/source/_actions-toolbar.less | 2 +- .../Magento/blank/web/css/source/_breadcrumbs.less | 2 +- .../Magento/blank/web/css/source/_buttons.less | 2 +- .../Magento/blank/web/css/source/_components.less | 2 +- .../Magento/blank/web/css/source/_email-base.less | 2 +- .../blank/web/css/source/_email-extend.less | 2 +- .../blank/web/css/source/_email-variables.less | 2 +- .../Magento/blank/web/css/source/_extends.less | 2 +- .../Magento/blank/web/css/source/_forms.less | 2 +- .../Magento/blank/web/css/source/_icons.less | 2 +- .../Magento/blank/web/css/source/_layout.less | 2 +- .../Magento/blank/web/css/source/_loaders.less | 2 +- .../Magento/blank/web/css/source/_messages.less | 2 +- .../Magento/blank/web/css/source/_navigation.less | 2 +- .../Magento/blank/web/css/source/_pages.less | 2 +- .../Magento/blank/web/css/source/_popups.less | 2 +- .../Magento/blank/web/css/source/_price.less | 2 +- .../Magento/blank/web/css/source/_reset.less | 2 +- .../Magento/blank/web/css/source/_sections.less | 2 +- .../Magento/blank/web/css/source/_sources.less | 2 +- .../Magento/blank/web/css/source/_tables.less | 2 +- .../Magento/blank/web/css/source/_theme.less | 2 +- .../Magento/blank/web/css/source/_tooltips.less | 2 +- .../Magento/blank/web/css/source/_typography.less | 2 +- .../Magento/blank/web/css/source/_variables.less | 2 +- .../web/css/source/components/_modals_extend.less | 2 +- .../frontend/Magento/blank/web/css/styles-l.less | 2 +- .../frontend/Magento/blank/web/css/styles-m.less | 2 +- .../Magento/blank/web/js/navigation-menu.js | 2 +- .../frontend/Magento/blank/web/js/responsive.js | 2 +- app/design/frontend/Magento/blank/web/js/theme.js | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_widgets.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Bundle/web/css/source/_module.less | 2 +- .../layout/catalog_product_view.xml | 2 +- .../luma/Magento_Catalog/layout/default.xml | 2 +- .../Magento_Catalog/web/css/source/_module.less | 2 +- .../web/css/source/module/_listings.less | 2 +- .../web/css/source/module/_toolbar.less | 2 +- .../web/css/source/_module.less | 2 +- .../layout/checkout_cart_index.xml | 2 +- .../Magento_Checkout/web/css/source/_module.less | 2 +- .../web/css/source/module/_cart.less | 2 +- .../web/css/source/module/_minicart.less | 2 +- .../web/css/source/module/checkout/_checkout.less | 2 +- .../source/module/checkout/_estimated-total.less | 2 +- .../web/css/source/module/checkout/_fields.less | 2 +- .../web/css/source/module/checkout/_modals.less | 2 +- .../css/source/module/checkout/_order-summary.less | 2 +- .../source/module/checkout/_payment-options.less | 2 +- .../web/css/source/module/checkout/_payments.less | 2 +- .../css/source/module/checkout/_progress-bar.less | 2 +- .../web/css/source/module/checkout/_shipping.less | 2 +- .../luma/Magento_Customer/email/account_new.html | 2 +- .../Magento_Customer/layout/customer_account.xml | 2 +- .../luma/Magento_Customer/layout/default.xml | 2 +- .../Magento_Customer/web/css/source/_email.less | 2 +- .../Magento_Customer/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento/luma/Magento_Email/email/footer.html | 2 +- .../Magento_GiftCard/web/css/source/_module.less | 2 +- .../layout/checkout_cart_index.xml | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Invitation/web/css/source/_module.less | 2 +- .../templates/layer/state.phtml | 2 +- .../templates/layer/view.phtml | 2 +- .../web/css/source/_module.less | 2 +- .../luma/Magento_Msrp/web/css/source/_module.less | 2 +- .../web/css/source/_module.less | 2 +- .../Magento_Newsletter/web/css/source/_module.less | 2 +- .../web/css/source/module/_billing.less | 2 +- .../web/css/source/module/_paypal-button.less | 2 +- .../web/css/source/module/_review.less | 2 +- .../Magento_Review/web/css/source/_module.less | 2 +- .../Magento_Reward/web/css/source/_module.less | 2 +- .../luma/Magento_Rma/web/css/source/_module.less | 2 +- .../luma/Magento_Sales/email/creditmemo_new.html | 2 +- .../Magento_Sales/email/creditmemo_new_guest.html | 2 +- .../Magento_Sales/email/creditmemo_update.html | 2 +- .../email/creditmemo_update_guest.html | 2 +- .../luma/Magento_Sales/email/invoice_new.html | 2 +- .../Magento_Sales/email/invoice_new_guest.html | 2 +- .../luma/Magento_Sales/email/invoice_update.html | 2 +- .../Magento_Sales/email/invoice_update_guest.html | 2 +- .../luma/Magento_Sales/email/order_new.html | 2 +- .../luma/Magento_Sales/email/order_new_guest.html | 2 +- .../luma/Magento_Sales/email/order_update.html | 2 +- .../Magento_Sales/email/order_update_guest.html | 2 +- .../luma/Magento_Sales/email/shipment_new.html | 2 +- .../Magento_Sales/email/shipment_new_guest.html | 2 +- .../luma/Magento_Sales/email/shipment_update.html | 2 +- .../Magento_Sales/email/shipment_update_guest.html | 2 +- .../luma/Magento_Sales/web/css/source/_email.less | 2 +- .../luma/Magento_Sales/web/css/source/_module.less | 2 +- .../Magento_SendFriend/web/css/source/_module.less | 2 +- .../Magento/luma/Magento_Theme/layout/default.xml | 2 +- .../Magento_Theme/layout/default_head_blocks.xml | 2 +- .../luma/Magento_Theme/web/css/source/_module.less | 2 +- .../css/source/module/_collapsible_navigation.less | 2 +- .../luma/Magento_Vault/web/css/source/_module.less | 2 +- .../Magento_Wishlist/web/css/source/_module.less | 2 +- app/design/frontend/Magento/luma/etc/view.xml | 2 +- app/design/frontend/Magento/luma/registration.php | 2 +- app/design/frontend/Magento/luma/theme.xml | 2 +- .../luma/web/css/source/_actions-toolbar.less | 2 +- .../Magento/luma/web/css/source/_breadcrumbs.less | 2 +- .../Magento/luma/web/css/source/_buttons.less | 2 +- .../Magento/luma/web/css/source/_email-extend.less | 2 +- .../luma/web/css/source/_email-variables.less | 2 +- .../Magento/luma/web/css/source/_extends.less | 2 +- .../Magento/luma/web/css/source/_forms.less | 2 +- .../Magento/luma/web/css/source/_pages.less | 2 +- .../Magento/luma/web/css/source/_popups.less | 2 +- .../Magento/luma/web/css/source/_sections.less | 2 +- .../Magento/luma/web/css/source/_tables.less | 2 +- .../Magento/luma/web/css/source/_theme.less | 2 +- .../Magento/luma/web/css/source/_variables.less | 2 +- .../web/css/source/components/_modals_extend.less | 2 +- app/etc/NonComposerComponentRegistration.php | 2 +- app/etc/di.xml | 2 +- app/functions.php | 2 +- app/i18n/Magento/de_DE/language.xml | 2 +- app/i18n/Magento/de_DE/registration.php | 2 +- app/i18n/Magento/en_US/language.xml | 2 +- app/i18n/Magento/en_US/registration.php | 2 +- app/i18n/Magento/es_ES/language.xml | 2 +- app/i18n/Magento/es_ES/registration.php | 2 +- app/i18n/Magento/fr_FR/language.xml | 2 +- app/i18n/Magento/fr_FR/registration.php | 2 +- app/i18n/Magento/nl_NL/language.xml | 2 +- app/i18n/Magento/nl_NL/registration.php | 2 +- app/i18n/Magento/pt_BR/language.xml | 2 +- app/i18n/Magento/pt_BR/registration.php | 2 +- app/i18n/Magento/zh_Hans_CN/language.xml | 2 +- app/i18n/Magento/zh_Hans_CN/registration.php | 2 +- bin/magento | 2 +- .../TestModule1/Controller/CookieTester.php | 2 +- .../Controller/CookieTester/DeleteCookie.php | 2 +- .../Controller/CookieTester/SetPublicCookie.php | 2 +- .../Controller/CookieTester/SetSensitiveCookie.php | 2 +- .../TestModule1/Service/V1/AllSoapAndRest.php | 2 +- .../Service/V1/AllSoapAndRestInterface.php | 2 +- .../Magento/TestModule1/Service/V1/Entity/Item.php | 2 +- .../TestModule1/Service/V2/AllSoapAndRest.php | 2 +- .../Service/V2/AllSoapAndRestInterface.php | 2 +- .../Magento/TestModule1/Service/V2/Entity/Item.php | 2 +- .../_files/Magento/TestModule1/etc/acl.xml | 2 +- .../_files/Magento/TestModule1/etc/di.xml | 2 +- .../TestModule1/etc/extension_attributes.xml | 2 +- .../Magento/TestModule1/etc/frontend/routes.xml | 2 +- .../_files/Magento/TestModule1/etc/module.xml | 2 +- .../_files/Magento/TestModule1/etc/webapi.xml | 2 +- .../_files/Magento/TestModule1/registration.php | 2 +- .../Magento/TestModule2/Service/V1/Entity/Item.php | 2 +- .../Magento/TestModule2/Service/V1/NoWebApiXml.php | 2 +- .../Service/V1/NoWebApiXmlInterface.php | 2 +- .../Magento/TestModule2/Service/V1/SubsetRest.php | 2 +- .../TestModule2/Service/V1/SubsetRestInterface.php | 2 +- .../_files/Magento/TestModule2/etc/acl.xml | 2 +- .../_files/Magento/TestModule2/etc/di.xml | 2 +- .../_files/Magento/TestModule2/etc/module.xml | 2 +- .../TestModule2/etc/schema/AllSoapNoRestV1.xsd | 2 +- .../TestModule2/etc/schema/NoWebApiXmlV1.xsd | 2 +- .../TestModule2/etc/schema/SubsetRestV1.xsd | 2 +- .../_files/Magento/TestModule2/etc/webapi.xml | 2 +- .../_files/Magento/TestModule2/registration.php | 2 +- .../TestModule3/Service/V1/Entity/Parameter.php | 2 +- .../Service/V1/Entity/WrappedErrorParameter.php | 2 +- .../Magento/TestModule3/Service/V1/Error.php | 2 +- .../TestModule3/Service/V1/ErrorInterface.php | 2 +- .../_files/Magento/TestModule3/etc/acl.xml | 2 +- .../_files/Magento/TestModule3/etc/di.xml | 2 +- .../_files/Magento/TestModule3/etc/module.xml | 2 +- .../_files/Magento/TestModule3/etc/webapi.xml | 2 +- .../_files/Magento/TestModule3/registration.php | 2 +- .../TestModule4/Model/ResourceModel/Item.php | 2 +- .../TestModule4/Service/V1/DataObjectService.php | 2 +- .../Service/V1/DataObjectServiceInterface.php | 2 +- .../Service/V1/Entity/DataObjectRequest.php | 2 +- .../Service/V1/Entity/DataObjectResponse.php | 2 +- .../Service/V1/Entity/ExtensibleRequest.php | 2 +- .../V1/Entity/ExtensibleRequestInterface.php | 2 +- .../Service/V1/Entity/NestedDataObjectRequest.php | 2 +- .../_files/Magento/TestModule4/etc/acl.xml | 2 +- .../_files/Magento/TestModule4/etc/di.xml | 2 +- .../_files/Magento/TestModule4/etc/module.xml | 2 +- .../_files/Magento/TestModule4/etc/webapi.xml | 2 +- .../_files/Magento/TestModule4/registration.php | 2 +- .../TestModule5/Service/V1/AllSoapAndRest.php | 2 +- .../Service/V1/AllSoapAndRestInterface.php | 2 +- .../Service/V1/Entity/AllSoapAndRest.php | 2 +- .../TestModule5/Service/V1/OverrideService.php | 2 +- .../Service/V1/OverrideServiceInterface.php | 2 +- .../TestModule5/Service/V2/AllSoapAndRest.php | 2 +- .../Service/V2/AllSoapAndRestInterface.php | 2 +- .../Service/V2/Entity/AllSoapAndRest.php | 2 +- .../_files/Magento/TestModule5/etc/acl.xml | 2 +- .../_files/Magento/TestModule5/etc/di.xml | 2 +- .../_files/Magento/TestModule5/etc/module.xml | 2 +- .../_files/Magento/TestModule5/etc/webapi.xml | 2 +- .../_files/Magento/TestModule5/registration.php | 2 +- .../Api/CustomerPersistenceInterface.php | 2 +- .../Api/Data/ExtensionAttributeInterface.php | 2 +- .../Model/Address/Mapper.php | 2 +- .../Model/CustomerPersistence.php | 2 +- .../Model/Data/ExtensionAttribute.php | 2 +- .../Model/ResourceModel/Address/ReadHandler.php | 2 +- .../Model/ResourceModel/Address/SaveHandler.php | 2 +- .../Model/ResourceModel/ReadHandler.php | 2 +- .../Model/ResourceModel/SaveHandler.php | 2 +- .../Setup/InstallSchema.php | 2 +- .../Magento/TestModuleDefaultHydrator/etc/di.xml | 2 +- .../etc/extension_attributes.xml | 2 +- .../TestModuleDefaultHydrator/etc/webapi.xml | 2 +- .../TestModuleDefaultHydrator/registration.php | 2 +- .../etc/integration.xml | 2 +- .../TestModuleIntegrationFromConfig/etc/module.xml | 2 +- .../registration.php | 2 +- .../Api/TestRepositoryInterface.php | 2 +- .../Model/TestRepository.php | 2 +- .../Magento/TestModuleJoinDirectives/etc/acl.xml | 2 +- .../Magento/TestModuleJoinDirectives/etc/di.xml | 2 +- .../etc/extension_attributes.xml | 2 +- .../TestModuleJoinDirectives/etc/module.xml | 2 +- .../TestModuleJoinDirectives/etc/webapi.xml | 2 +- .../TestModuleJoinDirectives/registration.php | 2 +- .../TestModuleMSC/Api/AllSoapAndRestInterface.php | 2 +- .../Data/CustomAttributeDataObjectInterface.php | 2 +- .../CustomAttributeNestedDataObjectInterface.php | 2 +- .../TestModuleMSC/Api/Data/ItemInterface.php | 2 +- .../Magento/TestModuleMSC/Model/AllSoapAndRest.php | 2 +- .../Model/Data/CustomAttributeDataObject.php | 2 +- .../Model/Data/CustomAttributeNestedDataObject.php | 2 +- .../Model/Data/Eav/AttributeMetadata.php | 2 +- .../Magento/TestModuleMSC/Model/Data/Item.php | 2 +- .../TestModuleMSC/Model/ResourceModel/Item.php | 2 +- .../_files/Magento/TestModuleMSC/etc/acl.xml | 2 +- .../_files/Magento/TestModuleMSC/etc/di.xml | 2 +- .../TestModuleMSC/etc/extension_attributes.xml | 2 +- .../_files/Magento/TestModuleMSC/etc/module.xml | 2 +- .../_files/Magento/TestModuleMSC/etc/webapi.xml | 2 +- .../_files/Magento/TestModuleMSC/registration.php | 2 +- .../api-functional/config/config-global.php.dist | 2 +- .../config/install-config-mysql.php.dist | 2 +- .../TestFramework/Annotation/ApiDataFixture.php | 2 +- .../TestFramework/Authentication/OauthHelper.php | 2 +- .../Authentication/Rest/CurlClient.php | 2 +- .../Authentication/Rest/OauthClient.php | 2 +- .../Authentication/Rest/OauthClient/Signature.php | 2 +- .../TestFramework/Bootstrap/WebapiDocBlock.php | 2 +- .../Magento/TestFramework/Helper/Customer.php | 2 +- .../TestFramework/TestCase/Webapi/Adapter/Rest.php | 2 +- .../TestCase/Webapi/Adapter/Rest/CurlClient.php | 2 +- .../Webapi/Adapter/Rest/DocumentationGenerator.php | 2 +- .../TestFramework/TestCase/Webapi/Adapter/Soap.php | 2 +- .../TestCase/Webapi/AdapterInterface.php | 2 +- .../Magento/TestFramework/TestCase/Webapi/Curl.php | 2 +- .../TestFramework/TestCase/WebapiAbstract.php | 2 +- .../Magento/TestFramework/WebApiApplication.php | 2 +- dev/tests/api-functional/framework/autoload.php | 2 +- dev/tests/api-functional/framework/bootstrap.php | 2 +- dev/tests/api-functional/phpunit.xml.dist | 2 +- .../Magento/Bundle/Api/CartItemRepositoryTest.php | 2 +- .../Magento/Bundle/Api/OrderItemRepositoryTest.php | 2 +- .../Bundle/Api/ProductLinkManagementTest.php | 2 +- .../Bundle/Api/ProductOptionRepositoryTest.php | 2 +- .../Bundle/Api/ProductOptionTypeListTest.php | 2 +- .../Magento/Bundle/Api/ProductServiceTest.php | 2 +- .../Catalog/Api/AttributeSetManagementTest.php | 2 +- .../Catalog/Api/AttributeSetRepositoryTest.php | 2 +- .../Magento/Catalog/Api/CartItemRepositoryTest.php | 2 +- ...egoryAttributeOptionManagementInterfaceTest.php | 2 +- .../Api/CategoryAttributeRepositoryTest.php | 2 +- .../Catalog/Api/CategoryLinkManagementTest.php | 2 +- .../Catalog/Api/CategoryLinkRepositoryTest.php | 2 +- .../Magento/Catalog/Api/CategoryManagementTest.php | 2 +- .../Magento/Catalog/Api/CategoryRepositoryTest.php | 2 +- .../Catalog/Api/OrderItemRepositoryTest.php | 2 +- .../Api/ProductAttributeGroupRepositoryTest.php | 2 +- .../Catalog/Api/ProductAttributeManagementTest.php | 2 +- ...ttributeMediaGalleryManagementInterfaceTest.php | 2 +- ...oductAttributeOptionManagementInterfaceTest.php | 2 +- .../Catalog/Api/ProductAttributeRepositoryTest.php | 2 +- .../Catalog/Api/ProductAttributeTypesListTest.php | 2 +- .../Api/ProductCustomAttributeWrongTypeTest.php | 2 +- .../Api/ProductCustomOptionRepositoryTest.php | 2 +- .../Api/ProductCustomOptionTypeListTest.php | 2 +- .../Api/ProductLinkManagementInterfaceTest.php | 2 +- .../Api/ProductLinkRepositoryInterfaceTest.php | 2 +- .../Catalog/Api/ProductLinkTypeListTest.php | 2 +- .../Api/ProductMediaAttributeManagementTest.php | 2 +- .../Catalog/Api/ProductRepositoryInterfaceTest.php | 2 +- .../Api/ProductRepositoryMultiStoreTest.php | 2 +- .../Catalog/Api/ProductTierPriceManagementTest.php | 2 +- .../Magento/Catalog/Api/ProductTypeListTest.php | 2 +- .../Magento/Catalog/Api/_files/product_options.php | 2 +- .../Api/_files/product_options_negative.php | 2 +- .../Api/_files/product_options_update_negative.php | 2 +- .../CatalogInventory/Api/LowStockItemsTest.php | 2 +- .../Api/ProductRepositoryInterfaceTest.php | 2 +- .../Magento/CatalogInventory/Api/StockItemTest.php | 2 +- .../CatalogInventory/Api/StockStatusTest.php | 2 +- .../Api/CheckoutAgreementsRepositoryTest.php | 2 +- .../Magento/Cms/Api/BlockRepositoryTest.php | 2 +- .../Magento/Cms/Api/PageRepositoryTest.php | 2 +- .../Api/CartItemRepositoryTest.php | 2 +- .../Api/ConfigurableProductManagementTest.php | 2 +- .../ConfigurableProduct/Api/LinkManagementTest.php | 2 +- .../Api/OptionRepositoryTest.php | 2 +- .../Api/OrderItemRepositoryTest.php | 2 +- .../Api/ProductRepositoryTest.php | 2 +- .../Api/AccountManagementCustomAttributesTest.php | 2 +- .../Customer/Api/AccountManagementMeTest.php | 2 +- .../Magento/Customer/Api/AccountManagementTest.php | 2 +- .../Magento/Customer/Api/AddressMetadataTest.php | 2 +- .../Magento/Customer/Api/AddressRepositoryTest.php | 2 +- .../Magento/Customer/Api/CustomerMetadataTest.php | 2 +- .../Customer/Api/CustomerRepositoryTest.php | 2 +- .../Magento/Customer/Api/GroupManagementTest.php | 2 +- .../Magento/Customer/Api/GroupRepositoryTest.php | 2 +- .../Api/CountryInformationAcquirerTest.php | 2 +- .../Api/CurrencyInformationAcquirerTest.php | 2 +- .../Downloadable/Api/CartItemRepositoryTest.php | 2 +- .../Downloadable/Api/LinkRepositoryTest.php | 2 +- .../Downloadable/Api/OrderItemRepositoryTest.php | 2 +- .../Downloadable/Api/ProductRepositoryTest.php | 2 +- .../Downloadable/Api/SampleRepositoryTest.php | 2 +- .../Magento/Eav/Api/AttributeSetManagementTest.php | 2 +- .../Magento/Eav/Api/AttributeSetRepositoryTest.php | 2 +- .../Framework/Model/Entity/HydratorTest.php | 2 +- .../Magento/Framework/Stdlib/CookieManagerTest.php | 2 +- .../Magento/GiftMessage/Api/CartRepositoryTest.php | 2 +- .../GiftMessage/Api/GuestCartRepositoryTest.php | 2 +- .../GiftMessage/Api/GuestItemRepositoryTest.php | 2 +- .../Magento/GiftMessage/Api/ItemRepositoryTest.php | 2 +- .../Api/ProductLinkManagementTest.php | 2 +- .../Api/ProductLinkRepositoryTest.php | 2 +- .../GroupedProduct/Api/ProductLinkTypeListTest.php | 2 +- .../Api/ProductRepositoryInterfaceTest.php | 2 +- .../Integration/Model/AdminTokenServiceTest.php | 2 +- .../Integration/Model/CustomerTokenServiceTest.php | 2 +- .../Magento/Integration/Model/IntegrationTest.php | 2 +- .../Quote/Api/BillingAddressManagementTest.php | 2 +- .../Magento/Quote/Api/CartItemRepositoryTest.php | 2 +- .../Magento/Quote/Api/CartRepositoryTest.php | 2 +- .../Magento/Quote/Api/CartTotalRepositoryTest.php | 2 +- .../Magento/Quote/Api/CouponManagementTest.php | 2 +- .../Api/GuestBillingAddressManagementTest.php | 2 +- .../Quote/Api/GuestCartItemRepositoryTest.php | 2 +- .../Magento/Quote/Api/GuestCartManagementTest.php | 2 +- .../Magento/Quote/Api/GuestCartRepositoryTest.php | 2 +- .../Quote/Api/GuestCartTotalRepositoryTest.php | 2 +- .../Quote/Api/GuestCouponManagementTest.php | 2 +- .../Quote/Api/GuestPaymentMethodManagementTest.php | 2 +- .../Api/GuestShippingMethodManagementTest.php | 2 +- .../Quote/Api/PaymentMethodManagementTest.php | 2 +- .../Quote/Api/ShippingMethodManagementTest.php | 2 +- .../Service/V1/CreditMemoCreateRefundTest.php | 2 +- .../Sales/Service/V1/CreditmemoAddCommentTest.php | 2 +- .../Sales/Service/V1/CreditmemoCancelTest.php | 2 +- .../Service/V1/CreditmemoCommentsListTest.php | 2 +- .../Sales/Service/V1/CreditmemoCreateTest.php | 2 +- .../Sales/Service/V1/CreditmemoEmailTest.php | 2 +- .../Magento/Sales/Service/V1/CreditmemoGetTest.php | 2 +- .../Sales/Service/V1/CreditmemoListTest.php | 2 +- .../Sales/Service/V1/InvoiceAddCommentTest.php | 2 +- .../Sales/Service/V1/InvoiceCaptureTest.php | 2 +- .../Sales/Service/V1/InvoiceCommentsListTest.php | 2 +- .../Magento/Sales/Service/V1/InvoiceCreateTest.php | 2 +- .../Magento/Sales/Service/V1/InvoiceEmailTest.php | 2 +- .../Magento/Sales/Service/V1/InvoiceGetTest.php | 2 +- .../Magento/Sales/Service/V1/InvoiceListTest.php | 2 +- .../Magento/Sales/Service/V1/InvoiceVoidTest.php | 2 +- .../Sales/Service/V1/OrderAddressUpdateTest.php | 2 +- .../Magento/Sales/Service/V1/OrderCancelTest.php | 2 +- .../Sales/Service/V1/OrderCommentsListTest.php | 2 +- .../Magento/Sales/Service/V1/OrderCreateTest.php | 2 +- .../Magento/Sales/Service/V1/OrderEmailTest.php | 2 +- .../Sales/Service/V1/OrderGetStatusTest.php | 2 +- .../Magento/Sales/Service/V1/OrderGetTest.php | 2 +- .../Magento/Sales/Service/V1/OrderHoldTest.php | 2 +- .../Sales/Service/V1/OrderInvoiceCreateTest.php | 2 +- .../Sales/Service/V1/OrderItemGetListTest.php | 2 +- .../Magento/Sales/Service/V1/OrderItemGetTest.php | 2 +- .../Magento/Sales/Service/V1/OrderListTest.php | 2 +- .../Sales/Service/V1/OrderStatusHistoryAddTest.php | 2 +- .../Magento/Sales/Service/V1/OrderUnHoldTest.php | 2 +- .../Magento/Sales/Service/V1/RefundOrderTest.php | 2 +- .../Magento/Sales/Service/V1/ShipOrderTest.php | 2 +- .../Sales/Service/V1/ShipmentAddCommentTest.php | 2 +- .../Sales/Service/V1/ShipmentAddTrackTest.php | 2 +- .../Sales/Service/V1/ShipmentCommentsListTest.php | 2 +- .../Sales/Service/V1/ShipmentCreateTest.php | 2 +- .../Magento/Sales/Service/V1/ShipmentEmailTest.php | 2 +- .../Magento/Sales/Service/V1/ShipmentGetTest.php | 2 +- .../Sales/Service/V1/ShipmentLabelGetTest.php | 2 +- .../Magento/Sales/Service/V1/ShipmentListTest.php | 2 +- .../Sales/Service/V1/ShipmentRemoveTrackTest.php | 2 +- .../Magento/Sales/Service/V1/TransactionTest.php | 2 +- .../Service/V1/ReturnItemsAfterRefundOrderTest.php | 2 +- .../Magento/SalesRule/Api/CouponManagementTest.php | 2 +- .../Magento/SalesRule/Api/CouponRepositoryTest.php | 2 +- .../Magento/SalesRule/Api/RuleRepositoryTest.php | 2 +- .../Magento/Store/Api/GroupRepositoryTest.php | 2 +- .../Magento/Store/Api/StoreConfigManagerTest.php | 2 +- .../Magento/Store/Api/StoreRepositoryTest.php | 2 +- .../Magento/Store/Api/WebsiteRepositoryTest.php | 2 +- .../Magento/Tax/Api/TaxClassRepositoryTest.php | 2 +- .../Magento/Tax/Api/TaxRateRepositoryTest.php | 2 +- .../Tax/Api/TaxRuleRepositoryInterfaceTest.php | 2 +- .../Magento/Webapi/Authentication/RestTest.php | 2 +- .../CustomAttributeTypeWsdlGenerationTest.php | 2 +- .../ServiceSerializationTest.php | 2 +- .../Magento/Webapi/DeserializationTest.php | 2 +- .../Magento/Webapi/JoinDirectivesTest.php | 2 +- .../Webapi/JsonGenerationFromDataObjectTest.php | 2 +- .../Magento/Webapi/PartialResponseTest.php | 2 +- .../Magento/Webapi/Routing/BaseService.php | 2 +- .../Magento/Webapi/Routing/CoreRoutingTest.php | 2 +- .../Magento/Webapi/Routing/GettersTest.php | 2 +- .../Magento/Webapi/Routing/NoWebApiXmlTest.php | 2 +- .../Webapi/Routing/RequestIdOverrideTest.php | 2 +- .../Webapi/Routing/RestErrorHandlingTest.php | 2 +- .../Webapi/Routing/ServiceVersionV1Test.php | 2 +- .../Webapi/Routing/ServiceVersionV2Test.php | 2 +- .../Webapi/Routing/SoapErrorHandlingTest.php | 2 +- .../Magento/Webapi/Routing/SubsetTest.php | 2 +- .../Webapi/WsdlGenerationFromDataObjectTest.php | 2 +- dev/tests/functional/bootstrap.php | 2 +- dev/tests/functional/credentials.xml.dist | 2 +- dev/tests/functional/etc/config.xml.dist | 2 +- dev/tests/functional/etc/config.xsd | 2 +- dev/tests/functional/etc/di.xml | 2 +- dev/tests/functional/etc/events.xml | 2 +- dev/tests/functional/etc/events.xsd | 2 +- dev/tests/functional/isolation.php | 2 +- .../lib/Magento/Mtf/App/State/AbstractState.php | 2 +- .../lib/Magento/Mtf/App/State/State1.php | 2 +- .../Mtf/Client/Element/ConditionsElement.php | 2 +- .../Mtf/Client/Element/DatepickerElement.php | 2 +- .../Client/Element/DropdownmultiselectElement.php | 2 +- .../Mtf/Client/Element/GlobalsearchElement.php | 2 +- .../Mtf/Client/Element/JquerytreeElement.php | 2 +- .../Mtf/Client/Element/LiselectstoreElement.php | 2 +- .../Client/Element/MultiselectgrouplistElement.php | 2 +- .../Mtf/Client/Element/MultiselectlistElement.php | 2 +- .../Mtf/Client/Element/MultisuggestElement.php | 2 +- .../Mtf/Client/Element/OptgroupselectElement.php | 2 +- .../Mtf/Client/Element/RadiobuttonElement.php | 2 +- .../Mtf/Client/Element/SelectstoreElement.php | 2 +- .../Mtf/Client/Element/SimplifiedselectElement.php | 2 +- .../Magento/Mtf/Client/Element/SuggestElement.php | 2 +- .../Magento/Mtf/Client/Element/SwitcherElement.php | 2 +- .../lib/Magento/Mtf/Client/Element/Tree.php | 2 +- .../lib/Magento/Mtf/Client/Element/TreeElement.php | 2 +- .../Magento/Mtf/Constraint/AbstractAssertForm.php | 2 +- .../lib/Magento/Mtf/EntryPoint/EntryPoint.php | 2 +- .../functional/lib/Magento/Mtf/Handler/Webapi.php | 2 +- .../lib/Magento/Mtf/Page/BackendPage.php | 2 +- .../Magento/Mtf/System/Observer/WebapiResponse.php | 2 +- .../lib/Magento/Mtf/Util/Command/Cli.php | 2 +- .../lib/Magento/Mtf/Util/Command/Cli/Cache.php | 2 +- .../lib/Magento/Mtf/Util/Command/Cli/Cron.php | 2 +- .../lib/Magento/Mtf/Util/Command/Cli/Indexer.php | 2 +- .../Magento/Mtf/Util/Command/Cli/StaticContent.php | 2 +- .../lib/Magento/Mtf/Util/Command/Website.php | 2 +- .../lib/Magento/Mtf/Util/Generate/Factory.php | 2 +- .../Mtf/Util/Generate/Factory/AbstractFactory.php | 2 +- .../Magento/Mtf/Util/Generate/Factory/Block.php | 2 +- .../Magento/Mtf/Util/Generate/Factory/Fixture.php | 2 +- .../Magento/Mtf/Util/Generate/Factory/Handler.php | 2 +- .../lib/Magento/Mtf/Util/Generate/Factory/Page.php | 2 +- .../Mtf/Util/Generate/Factory/Repository.php | 2 +- .../Mtf/Util/Generate/Fixture/FieldsProvider.php | 2 +- .../Mtf/Util/Generate/Fixture/SchemaXml.php | 2 +- .../Magento/Mtf/Util/Generate/Fixture/template.xml | 2 +- .../Generate/Repository/RepositoryResource.php | 2 +- .../Util/Generate/Repository/TableCollection.php | 2 +- .../Mtf/Util/ModuleResolver/SequenceSorter.php | 2 +- .../Protocol/CurlTransport/BackendDecorator.php | 2 +- .../Protocol/CurlTransport/FrontendDecorator.php | 2 +- .../Protocol/CurlTransport/WebapiDecorator.php | 2 +- dev/tests/functional/phpunit.xml.dist | 2 +- .../Test/Block/System/Messages.php | 2 +- .../Test/TestCase/NavigateMenuTest.xml | 2 +- .../Test/Block/Form/AuthorizenetCc.php | 2 +- .../Test/Block/Form/AuthorizenetCc.xml | 2 +- .../Magento/Authorizenet/Test/Block/Form/Cc.php | 2 +- .../Magento/Authorizenet/Test/Block/Form/Cc.xml | 2 +- .../AssertCreditCardNumberOnOnePageCheckout.php | 2 +- .../Test/Fixture/CreditCardAuthorizenet.xml | 2 +- .../Authorizenet/Test/Page/CheckoutOnepage.xml | 2 +- .../Authorizenet/Test/Repository/ConfigData.xml | 2 +- .../Authorizenet/Test/Repository/CreditCard.xml | 2 +- ...aymentMethodDataPersistenceWithDiscountTest.xml | 2 +- .../Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../app/Magento/Backend/Test/Block/Admin/Login.php | 2 +- .../app/Magento/Backend/Test/Block/Admin/Login.xml | 2 +- .../Backend/Test/Block/Dashboard/StoreStats.php | 2 +- .../Backend/Test/Block/Dashboard/StoreStats.xml | 2 +- .../Backend/Test/Block/Dashboard/Tab/Products.php | 2 +- .../Test/Block/Dashboard/Tab/Products/Ordered.php | 2 +- .../app/Magento/Backend/Test/Block/Denied.php | 2 +- .../Magento/Backend/Test/Block/FormPageActions.php | 2 +- .../Magento/Backend/Test/Block/GridPageActions.php | 2 +- .../tests/app/Magento/Backend/Test/Block/Menu.php | 2 +- .../app/Magento/Backend/Test/Block/Messages.php | 2 +- .../app/Magento/Backend/Test/Block/Page/Error.php | 2 +- .../app/Magento/Backend/Test/Block/Page/Header.php | 2 +- .../app/Magento/Backend/Test/Block/Page/Main.php | 2 +- .../app/Magento/Backend/Test/Block/PageActions.php | 2 +- .../Backend/Test/Block/System/Config/Form.php | 2 +- .../Test/Block/System/Config/Form/Group.php | 2 +- .../Test/Block/System/Config/PageActions.php | 2 +- .../Backend/Test/Block/System/Config/Payments.php | 2 +- .../Test/Block/System/Store/Delete/Form.php | 2 +- .../Test/Block/System/Store/Delete/Form.xml | 2 +- .../Block/System/Store/Edit/Form/GroupForm.php | 2 +- .../Block/System/Store/Edit/Form/GroupForm.xml | 2 +- .../Block/System/Store/Edit/Form/StoreForm.php | 2 +- .../Block/System/Store/Edit/Form/StoreForm.xml | 2 +- .../Block/System/Store/Edit/Form/WebsiteForm.php | 2 +- .../Block/System/Store/Edit/Form/WebsiteForm.xml | 2 +- .../Test/Block/System/Store/FormPageActions.php | 2 +- .../Test/Block/System/Store/GridPageActions.php | 2 +- .../Backend/Test/Block/System/Store/StoreGrid.php | 2 +- .../app/Magento/Backend/Test/Block/Template.php | 2 +- .../app/Magento/Backend/Test/Block/Version.php | 2 +- .../Magento/Backend/Test/Block/Widget/FormTabs.php | 2 +- .../app/Magento/Backend/Test/Block/Widget/Grid.php | 2 +- .../app/Magento/Backend/Test/Block/Widget/Tab.php | 2 +- .../Constraint/AssertAdminLoginPageIsAvailable.php | 2 +- .../Constraint/AssertBackendPageIsAvailable.php | 2 +- .../Constraint/AssertBestsellersOnDashboard.php | 2 +- .../Constraint/AssertGlobalSearchCustomerName.php | 2 +- .../AssertGlobalSearchNoRecordsFound.php | 2 +- .../Test/Constraint/AssertGlobalSearchOrderId.php | 2 +- .../Test/Constraint/AssertGlobalSearchPreview.php | 2 +- .../Constraint/AssertGlobalSearchProductName.php | 2 +- .../Test/Constraint/AssertHttpUsedOnFrontend.php | 2 +- .../AssertHttpsHeaderOptionsAvailable.php | 2 +- .../AssertHttpsHeaderOptionsNotAvailable.php | 2 +- .../Test/Constraint/AssertHttpsUsedOnBackend.php | 2 +- .../Test/Constraint/AssertStoreCanBeLocalized.php | 2 +- .../Backend/Test/Fixture/Admin/SuperAdmin.php | 2 +- .../Magento/Backend/Test/Fixture/GlobalSearch.xml | 2 +- .../Backend/Test/Fixture/GlobalSearch/Query.php | 2 +- .../Magento/Backend/Test/Fixture/Source/Date.php | 2 +- .../Magento/Backend/Test/Handler/Conditions.php | 2 +- .../app/Magento/Backend/Test/Handler/Extractor.php | 2 +- .../Magento/Backend/Test/Handler/Ui/LoginUser.php | 2 +- .../Magento/Backend/Test/Handler/Ui/LogoutUser.php | 2 +- .../Magento/Backend/Test/Page/AdminAuthLogin.php | 2 +- .../Backend/Test/Page/Adminhtml/Dashboard.xml | 2 +- .../Backend/Test/Page/Adminhtml/DeleteGroup.xml | 2 +- .../Backend/Test/Page/Adminhtml/DeleteWebsite.xml | 2 +- .../Backend/Test/Page/Adminhtml/EditGroup.xml | 2 +- .../Backend/Test/Page/Adminhtml/EditStore.xml | 2 +- .../Backend/Test/Page/Adminhtml/EditWebsite.xml | 2 +- .../Backend/Test/Page/Adminhtml/NewGroupIndex.xml | 2 +- .../Test/Page/Adminhtml/NewWebsiteIndex.xml | 2 +- .../Backend/Test/Page/Adminhtml/StoreDelete.xml | 2 +- .../Backend/Test/Page/Adminhtml/StoreIndex.xml | 2 +- .../Backend/Test/Page/Adminhtml/StoreNew.xml | 2 +- .../Backend/Test/Page/Adminhtml/SystemConfig.xml | 2 +- .../Test/Page/Adminhtml/SystemConfigEdit.xml | 2 +- .../Adminhtml/SystemConfigEditSectionPayment.xml | 2 +- .../Magento/Backend/Test/Repository/ConfigData.xml | 2 +- .../Test/TestCase/ConfigureSecureUrlsTest.php | 2 +- .../Test/TestCase/ConfigureSecureUrlsTest.xml | 2 +- .../Test/TestCase/ExpireAdminSessionTest.php | 2 +- .../Test/TestCase/ExpireAdminSessionTest.xml | 2 +- .../Test/TestCase/GlobalSearchEntityTest.php | 2 +- .../Test/TestCase/GlobalSearchEntityTest.xml | 2 +- .../Test/TestCase/HttpsHeadersDisableTest.php | 2 +- .../Test/TestCase/HttpsHeadersDisableTest.xml | 2 +- .../Test/TestCase/HttpsHeadersEnableTest.php | 2 +- .../Test/TestCase/HttpsHeadersEnableTest.xml | 2 +- .../Backend/Test/TestCase/NavigateMenuTest.php | 2 +- .../Backend/Test/TestCase/NavigateMenuTest.xml | 2 +- .../tests/app/Magento/Backend/Test/etc/di.xml | 2 +- .../Backup/Test/Block/Adminhtml/BackupGrid.php | 2 +- .../Backup/Test/Constraint/AssertBackupInGrid.php | 2 +- .../Backup/Test/Page/Adminhtml/BackupIndex.xml | 2 +- .../Backup/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Braintree/Test/Block/Adminhtml/Report/Grid.php | 2 +- .../app/Magento/Braintree/Test/Block/Form/Cc.php | 2 +- .../app/Magento/Braintree/Test/Block/Form/Cc.xml | 2 +- .../Magento/Braintree/Test/Block/Form/Secure3d.php | 2 +- .../Magento/Braintree/Test/Block/Form/Secure3d.xml | 2 +- .../app/Magento/Braintree/Test/Block/Info.php | 2 +- .../Braintree/Test/Block/Paypal/PopupWindow.php | 2 +- .../Test/Block/System/Config/Braintree.php | 2 +- .../Constraint/Assert3dSecureInfoIsPresent.php | 2 +- ...ssertTransactionIsPresentInSettlementReport.php | 2 +- .../Braintree/Test/Fixture/CreditCardBraintree.xml | 2 +- .../Braintree/Test/Fixture/Secure3dBraintree.xml | 2 +- .../Page/Adminhtml/BraintreeSettlementReport.xml | 2 +- .../Test/Page/Adminhtml/SalesOrderView.xml | 2 +- .../Adminhtml/SystemConfigEditSectionPayment.xml | 2 +- .../Braintree/Test/Page/CatalogProductView.xml | 2 +- .../Magento/Braintree/Test/Page/CheckoutCart.xml | 2 +- .../Braintree/Test/Page/CheckoutOnepage.xml | 2 +- .../Braintree/Test/Repository/ConfigData.xml | 2 +- .../Braintree/Test/Repository/CreditCard.xml | 2 +- .../Magento/Braintree/Test/Repository/Secure3d.xml | 2 +- .../TestCase/BraintreeSettlementReportTest.php | 2 +- .../TestCase/BraintreeSettlementReportTest.xml | 2 +- .../CheckoutWithBraintreePaypalCartTest.php | 2 +- .../CheckoutWithBraintreePaypalCartTest.xml | 2 +- .../CheckoutWithBraintreePaypalMinicartTest.php | 2 +- .../CheckoutWithBraintreePaypalMinicartTest.xml | 2 +- .../CreateOnlineCreditMemoBraintreePaypalTest.php | 2 +- .../CreateOnlineCreditMemoBraintreePaypalTest.xml | 2 +- .../TestCase/CreateOnlineInvoiceEntityTest.xml | 2 +- .../Test/TestCase/CreateOrderBackendTest.xml | 2 +- ...ateOrderWithPayPalBraintreeVaultBackendTest.php | 2 +- ...ateOrderWithPayPalBraintreeVaultBackendTest.xml | 2 +- .../Test/TestCase/CreateVaultOrderBackendTest.xml | 2 +- .../Test/TestCase/InvoicePayPalBraintreeTest.php | 2 +- .../Test/TestCase/InvoicePaypalBraintreeTest.xml | 2 +- .../TestCase/OnePageCheckoutAcceptPaymentTest.php | 2 +- .../TestCase/OnePageCheckoutAcceptPaymentTest.xml | 2 +- .../TestCase/OnePageCheckoutDenyPaymentTest.php | 2 +- .../TestCase/OnePageCheckoutDenyPaymentTest.xml | 2 +- .../Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../TestCase/OnePageCheckoutWith3dSecureTest.php | 2 +- .../TestCase/OnePageCheckoutWith3dSecureTest.xml | 2 +- .../OnePageCheckoutWithBraintreePaypalTest.php | 2 +- .../OnePageCheckoutWithBraintreePaypalTest.xml | 2 +- .../TestCase/OnePageCheckoutWithDiscountTest.xml | 2 +- .../Test/TestCase/ReorderUsingVaultTest.xml | 2 +- .../SaveUseDeleteVaultForPaypalBraintreeTest.php | 2 +- .../SaveUseDeleteVaultForPaypalBraintreeTest.xml | 2 +- .../Test/TestCase/UseVaultOnCheckoutTest.xml | 2 +- .../UseVaultWith3dSecureOnCheckoutTest.php | 2 +- .../UseVaultWith3dSecureOnCheckoutTest.xml | 2 +- .../Braintree/Test/TestStep/AcceptPaymentStep.php | 2 +- .../ChangeOrderStatusToPaymentReviewStep.php | 2 +- .../Test/TestStep/CheckBraintreeConfigStep.php | 2 +- .../TestStep/CheckoutWithPaypalFromCartStep.php | 2 +- .../CheckoutWithPaypalFromMinicartStep.php | 2 +- .../Test/TestStep/ContinueToPaypalStep.php | 2 +- .../TestStep/CreateBraintreeCreditMemoStep.php | 2 +- .../Braintree/Test/TestStep/DenyPaymentStep.php | 2 +- .../Test/TestStep/PlaceOrderWith3dSecureStep.php | 2 +- .../Test/TestStep/PlaceOrderWithPaypalStep.php | 2 +- .../tests/app/Magento/Braintree/Test/etc/di.xml | 2 +- .../app/Magento/Braintree/Test/etc/testcase.xml | 2 +- .../Catalog/Product/Edit/Section/Bundle.php | 2 +- .../Catalog/Product/Edit/Section/Bundle/Option.php | 2 +- .../Catalog/Product/Edit/Section/Bundle/Option.xml | 2 +- .../Edit/Section/Bundle/Option/Search/Grid.php | 2 +- .../Edit/Section/Bundle/Option/Selection.php | 2 +- .../Edit/Section/Bundle/Option/Selection.xml | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Adminhtml/Product/Composite/Configure.xml | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Bundle/Test/Block/Catalog/Product/View.php | 2 +- .../Block/Catalog/Product/View/Type/Bundle.php | 2 +- .../Block/Catalog/Product/View/Type/Option.php | 2 +- .../Catalog/Product/View/Type/Option/Checkbox.php | 2 +- .../Catalog/Product/View/Type/Option/Checkbox.xml | 2 +- .../Catalog/Product/View/Type/Option/Dropdown.php | 2 +- .../Catalog/Product/View/Type/Option/Dropdown.xml | 2 +- .../Catalog/Product/View/Type/Option/Multiple.php | 2 +- .../Catalog/Product/View/Type/Option/Multiple.xml | 2 +- .../Product/View/Type/Option/Radiobuttons.php | 2 +- .../Product/View/Type/Option/Radiobuttons.xml | 2 +- .../Test/Constraint/AssertBundleInCategory.php | 2 +- .../Constraint/AssertBundleItemsOnProductPage.php | 2 +- .../Test/Constraint/AssertBundlePriceType.php | 2 +- .../Test/Constraint/AssertBundlePriceView.php | 2 +- .../Test/Constraint/AssertBundleProductForm.php | 2 +- ...undleProductInCustomerWishlistOnBackendGrid.php | 2 +- .../Test/Constraint/AssertBundleProductPage.php | 2 +- ...sertProductCustomOptionsOnBundleProductPage.php | 2 +- .../AssertTierPriceOnBundleProductPage.php | 2 +- .../Magento/Bundle/Test/Fixture/BundleProduct.xml | 2 +- .../Fixture/BundleProduct/BundleSelections.php | 2 +- .../app/Magento/Bundle/Test/Fixture/Cart/Item.php | 2 +- .../BundleProduct/BundleProductInterface.php | 2 +- .../Bundle/Test/Handler/BundleProduct/Curl.php | 2 +- .../Bundle/Test/Handler/BundleProduct/Webapi.php | 2 +- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Bundle/Test/Repository/BundleProduct.xml | 2 +- .../Repository/BundleProduct/BundleSelections.xml | 2 +- .../Test/Repository/BundleProduct/CheckoutData.xml | 2 +- .../Bundle/Test/Repository/BundleProduct/Price.xml | 2 +- .../TestCase/CreateBundleProductEntityTest.php | 2 +- .../TestCase/CreateBundleProductEntityTest.xml | 2 +- .../Test/TestCase/DeleteProductEntityTest.xml | 2 +- .../DeleteProductFromMiniShoppingCartTest.xml | 2 +- .../TestCase/UpdateBundleProductEntityTest.php | 2 +- .../TestCase/UpdateBundleProductEntityTest.xml | 2 +- .../TestCase/ValidateOrderOfProductTypeTest.xml | 2 +- .../tests/app/Magento/Bundle/Test/etc/curl/di.xml | 2 +- .../app/Magento/Bundle/Test/etc/webapi/di.xml | 2 +- .../Catalog/Test/Block/AbstractConfigureBlock.php | 2 +- .../Catalog/Test/Block/AbstractPriceBlock.php | 2 +- .../Block/Adminhtml/Category/Edit/CategoryForm.php | 2 +- .../Block/Adminhtml/Category/Edit/CategoryForm.xml | 2 +- .../Block/Adminhtml/Category/Edit/PageActions.php | 2 +- .../Category/Edit/Section/ProductGrid.php | 2 +- .../Adminhtml/Category/Edit/Section/Products.php | 2 +- .../Catalog/Test/Block/Adminhtml/Category/Tree.php | 2 +- .../Block/Adminhtml/Category/Widget/Chooser.php | 2 +- .../Adminhtml/Product/Attribute/AttributeForm.php | 2 +- .../Adminhtml/Product/Attribute/AttributeForm.xml | 2 +- .../Product/Attribute/CustomAttribute.php | 2 +- .../Product/Attribute/Edit/AttributeForm.php | 2 +- .../Product/Attribute/Edit/AttributeForm.xml | 2 +- .../Adminhtml/Product/Attribute/Edit/Options.php | 2 +- .../Product/Attribute/Edit/Tab/Advanced.php | 2 +- .../Product/Attribute/Edit/Tab/Options.php | 2 +- .../Product/Attribute/Edit/Tab/Options/Option.php | 2 +- .../Product/Attribute/Edit/Tab/Options/Option.xml | 2 +- .../Block/Adminhtml/Product/Attribute/Grid.php | 2 +- .../Product/Attribute/Set/FormPageActions.php | 2 +- .../Block/Adminhtml/Product/Attribute/Set/Grid.php | 2 +- .../Product/Attribute/Set/GridPageActions.php | 2 +- .../Block/Adminhtml/Product/Attribute/Set/Main.php | 2 +- .../Attribute/Set/Main/AttributeSetForm.php | 2 +- .../Attribute/Set/Main/AttributeSetForm.xml | 2 +- .../Product/Attribute/Set/Main/EditForm.php | 2 +- .../Product/Attribute/Set/Main/EditForm.xml | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Adminhtml/Product/Composite/Configure.xml | 2 +- .../Adminhtml/Product/Edit/Action/Attribute.php | 2 +- .../Adminhtml/Product/Edit/Action/Attribute.xml | 2 +- .../Product/Edit/Action/FormPageActions.php | 2 +- .../Product/Edit/Section/AdvancedInventory.php | 2 +- .../Product/Edit/Section/AdvancedPricing.php | 2 +- .../Edit/Section/AdvancedPricing/OptionTier.php | 2 +- .../Edit/Section/AdvancedPricing/OptionTier.xml | 2 +- .../Adminhtml/Product/Edit/Section/Attributes.php | 2 +- .../Product/Edit/Section/Attributes/Grid.php | 2 +- .../Product/Edit/Section/Attributes/Search.php | 2 +- .../Adminhtml/Product/Edit/Section/Options.php | 2 +- .../Edit/Section/Options/AbstractOptions.php | 2 +- .../Adminhtml/Product/Edit/Section/Options/Row.php | 2 +- .../Product/Edit/Section/Options/Search/Grid.php | 2 +- .../Product/Edit/Section/Options/Type.php | 2 +- .../Product/Edit/Section/Options/Type/Area.php | 2 +- .../Product/Edit/Section/Options/Type/Area.xml | 2 +- .../Product/Edit/Section/Options/Type/Checkbox.php | 2 +- .../Product/Edit/Section/Options/Type/Checkbox.xml | 2 +- .../Product/Edit/Section/Options/Type/Date.php | 2 +- .../Product/Edit/Section/Options/Type/Date.xml | 2 +- .../Product/Edit/Section/Options/Type/DateTime.php | 2 +- .../Product/Edit/Section/Options/Type/DateTime.xml | 2 +- .../Product/Edit/Section/Options/Type/DropDown.php | 2 +- .../Product/Edit/Section/Options/Type/DropDown.xml | 2 +- .../Product/Edit/Section/Options/Type/Field.php | 2 +- .../Product/Edit/Section/Options/Type/Field.xml | 2 +- .../Product/Edit/Section/Options/Type/File.php | 2 +- .../Product/Edit/Section/Options/Type/File.xml | 2 +- .../Edit/Section/Options/Type/MultipleSelect.php | 2 +- .../Edit/Section/Options/Type/MultipleSelect.xml | 2 +- .../Edit/Section/Options/Type/RadioButtons.php | 2 +- .../Edit/Section/Options/Type/RadioButtons.xml | 2 +- .../Product/Edit/Section/Options/Type/Time.php | 2 +- .../Product/Edit/Section/Options/Type/Time.xml | 2 +- .../Product/Edit/Section/ProductDetails.php | 2 +- .../Edit/Section/ProductDetails/AttributeSet.php | 2 +- .../Edit/Section/ProductDetails/CategoryIds.php | 2 +- .../Edit/Section/ProductDetails/NewCategoryIds.php | 2 +- .../Edit/Section/ProductDetails/NewCategoryIds.xml | 2 +- .../Adminhtml/Product/Edit/Section/Related.php | 2 +- .../Product/Edit/Section/Related/Grid.php | 2 +- .../Product/Edit/Section/Websites/StoreTree.php | 2 +- .../Block/Adminhtml/Product/FormPageActions.php | 2 +- .../Catalog/Test/Block/Adminhtml/Product/Grid.php | 2 +- .../Block/Adminhtml/Product/GridPageAction.php | 2 +- .../Block/Adminhtml/Product/Modal/AddAttribute.php | 2 +- .../Block/Adminhtml/Product/Modal/NewAttribute.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Block/Adminhtml/Product/Widget/Chooser.php | 2 +- .../Test/Block/Category/ProductPagination.php | 2 +- .../Magento/Catalog/Test/Block/Category/View.php | 2 +- .../Catalog/Test/Block/Links/CompareLink.php | 2 +- .../Catalog/Test/Block/Product/Additional.php | 2 +- .../Test/Block/Product/Compare/ListCompare.php | 2 +- .../Catalog/Test/Block/Product/Compare/Sidebar.php | 2 +- .../Block/Product/Grouped/AssociatedProducts.php | 2 +- .../AssociatedProducts/ListAssociatedProducts.php | 2 +- .../ListAssociatedProducts/Product.php | 2 +- .../Grouped/AssociatedProducts/Search/Grid.php | 2 +- .../Catalog/Test/Block/Product/ListProduct.php | 2 +- .../Magento/Catalog/Test/Block/Product/Price.php | 2 +- .../Block/Product/ProductList/BottomToolbar.php | 2 +- .../Test/Block/Product/ProductList/Crosssell.php | 2 +- .../Test/Block/Product/ProductList/ProductItem.php | 2 +- .../Block/Product/ProductList/PromotedSection.php | 2 +- .../Test/Block/Product/ProductList/Related.php | 2 +- .../Product/ProductList/Related/ProductItem.php | 2 +- .../Test/Block/Product/ProductList/TopToolbar.php | 2 +- .../Test/Block/Product/ProductList/Upsell.php | 2 +- .../Magento/Catalog/Test/Block/Product/View.php | 2 +- .../Test/Block/Product/View/CustomOptions.php | 2 +- .../Test/Block/Product/View/CustomOptions.xml | 2 +- .../app/Magento/Catalog/Test/Block/Search.php | 2 +- .../AssertAbsenceDeleteAttributeButton.php | 2 +- .../Constraint/AssertAddToCartButtonAbsent.php | 2 +- .../Constraint/AssertAddToCartButtonPresent.php | 2 +- .../AssertAddedProductAttributeOnProductForm.php | 2 +- .../Test/Constraint/AssertAttributeForm.php | 2 +- .../AssertAttributeOptionsOnProductForm.php | 2 +- .../Test/Constraint/AssertAttributeSetForm.php | 2 +- .../AssertAttributeSetGroupOnProductForm.php | 2 +- .../Test/Constraint/AssertAttributeSetInGrid.php | 2 +- .../Constraint/AssertAttributeSetNotInGrid.php | 2 +- .../Constraint/AssertAttributeSetOnProductForm.php | 2 +- .../AssertAttributeSetSuccessDeleteMessage.php | 2 +- .../AssertAttributeSetSuccessSaveMessage.php | 2 +- .../Constraint/AssertCategoryAbsenceOnBackend.php | 2 +- .../Constraint/AssertCategoryAbsenceOnFrontend.php | 2 +- .../Test/Constraint/AssertCategoryBreadcrumbs.php | 2 +- .../Constraint/AssertCategoryCannotBeDeleted.php | 2 +- .../AssertCategoryForAssignedProducts.php | 2 +- .../Catalog/Test/Constraint/AssertCategoryForm.php | 2 +- .../Test/Constraint/AssertCategoryIsNotActive.php | 2 +- .../Catalog/Test/Constraint/AssertCategoryPage.php | 2 +- .../Test/Constraint/AssertCategoryRedirect.php | 2 +- .../Test/Constraint/AssertCategorySaveMessage.php | 2 +- .../AssertCategorySuccessDeleteMessage.php | 2 +- .../AssertCategoryWithCustomStoreOnFrontend.php | 2 +- .../AssertImagesAreVisibleOnProductPage.php | 2 +- .../AssertMassProductUpdateSuccessMessage.php | 2 +- .../AssertPriceOnProductPageInterface.php | 2 +- .../Constraint/AssertProductAbsentCrossSells.php | 2 +- .../AssertProductAbsentRelatedProducts.php | 2 +- .../Test/Constraint/AssertProductAbsentUpSells.php | 2 +- .../AssertProductAttributeAbsenceInGrid.php | 2 +- ...roductAttributeAbsenceInSearchOnProductForm.php | 2 +- ...sertProductAttributeAbsenceInTemplateGroups.php | 2 +- ...oductAttributeAbsenceInUnassignedAttributes.php | 2 +- .../AssertProductAttributeDisplayingOnFrontend.php | 2 +- ...ssertProductAttributeDisplayingOnSearchForm.php | 2 +- .../Constraint/AssertProductAttributeInGrid.php | 2 +- .../AssertProductAttributeIsComparable.php | 2 +- .../AssertProductAttributeIsFilterable.php | 2 +- .../AssertProductAttributeIsFilterableInSearch.php | 2 +- .../Constraint/AssertProductAttributeIsGlobal.php | 2 +- .../AssertProductAttributeIsHtmlAllowed.php | 2 +- .../AssertProductAttributeIsRequired.php | 2 +- .../Constraint/AssertProductAttributeIsUnique.php | 2 +- ...ssertProductAttributeIsUsedInSortOnFrontend.php | 2 +- .../AssertProductAttributeSaveMessage.php | 2 +- .../AssertProductAttributeSuccessDeleteMessage.php | 2 +- .../AssertProductCompareBlockOnCmsPage.php | 2 +- .../Constraint/AssertProductCompareItemsLink.php | 2 +- .../AssertProductCompareItemsLinkIsAbsent.php | 2 +- .../Test/Constraint/AssertProductComparePage.php | 2 +- ...ssertProductCompareRemoveLastProductMessage.php | 2 +- .../AssertProductCompareSuccessAddMessage.php | 2 +- ...oductCompareSuccessRemoveAllProductsMessage.php | 2 +- .../AssertProductCompareSuccessRemoveMessage.php | 2 +- .../Test/Constraint/AssertProductCrossSells.php | 2 +- .../AssertProductCustomOptionsOnProductPage.php | 2 +- .../Test/Constraint/AssertProductDuplicateForm.php | 2 +- ...rtProductDuplicateIsNotDisplayingOnFrontend.php | 2 +- .../Constraint/AssertProductDuplicateMessage.php | 2 +- .../Constraint/AssertProductDuplicatedInGrid.php | 2 +- .../Catalog/Test/Constraint/AssertProductForm.php | 2 +- .../Constraint/AssertProductGridFilterCorrect.php | 2 +- .../Test/Constraint/AssertProductInCart.php | 2 +- .../Test/Constraint/AssertProductInCategory.php | 2 +- .../Test/Constraint/AssertProductInGrid.php | 2 +- .../Test/Constraint/AssertProductInStock.php | 2 +- .../AssertProductIsNotDisplayingOnFrontend.php | 2 +- .../AssertProductIsNotVisibleInCompareBlock.php | 2 +- .../AssertProductIsNotVisibleInComparePage.php | 2 +- .../Test/Constraint/AssertProductNoImageInGrid.php | 2 +- .../Test/Constraint/AssertProductNotInGrid.php | 2 +- .../Constraint/AssertProductNotSearchableBySku.php | 2 +- .../AssertProductNotVisibleInCategory.php | 2 +- .../Test/Constraint/AssertProductOutOfStock.php | 2 +- .../Catalog/Test/Constraint/AssertProductPage.php | 2 +- .../Constraint/AssertProductRelatedProducts.php | 2 +- .../Test/Constraint/AssertProductSaveMessage.php | 2 +- .../Constraint/AssertProductSearchableBySku.php | 2 +- .../AssertProductSimpleDuplicateForm.php | 2 +- .../Constraint/AssertProductSkuAutoGenerated.php | 2 +- .../AssertProductSpecialPriceOnProductPage.php | 2 +- .../AssertProductSuccessDeleteMessage.php | 2 +- .../AssertProductTierPriceOnProductPage.php | 2 +- ...rtProductTierPriceOnProductPageWithCustomer.php | 2 +- .../Constraint/AssertProductTypeOrderOnCreate.php | 2 +- .../Test/Constraint/AssertProductUpSells.php | 2 +- .../Catalog/Test/Constraint/AssertProductView.php | 2 +- .../Constraint/AssertProductVisibleInCategory.php | 2 +- ...tUsedSuperAttributeImpossibleDeleteMessages.php | 2 +- .../app/Magento/Catalog/Test/Fixture/Cart/Item.php | 2 +- .../Catalog/Test/Fixture/CatalogAttributeSet.xml | 2 +- .../CatalogAttributeSet/AssignedAttributes.php | 2 +- .../Fixture/CatalogAttributeSet/SkeletonSet.php | 2 +- .../Test/Fixture/CatalogProductAttribute.xml | 2 +- .../Catalog/Test/Fixture/CatalogProductSimple.xml | 2 +- .../CatalogProductSimple/CustomAttribute.php | 2 +- .../Catalog/Test/Fixture/CatalogProductVirtual.xml | 2 +- .../app/Magento/Catalog/Test/Fixture/Category.xml | 2 +- .../Test/Fixture/Category/CategoryProducts.php | 2 +- .../Catalog/Test/Fixture/Category/LandingPage.php | 2 +- .../Catalog/Test/Fixture/Category/ParentId.php | 2 +- .../Catalog/Test/Fixture/Category/StoreId.php | 2 +- .../Test/Fixture/Product/AttributeSetId.php | 2 +- .../Catalog/Test/Fixture/Product/CategoryIds.php | 2 +- .../Catalog/Test/Fixture/Product/CustomOptions.php | 2 +- .../Magento/Catalog/Test/Fixture/Product/Price.php | 2 +- .../Test/Fixture/Product/RelatedProducts.php | 2 +- .../Catalog/Test/Fixture/Product/TaxClass.php | 2 +- .../Catalog/Test/Fixture/Product/TierPrice.php | 2 +- .../Catalog/Test/Fixture/Product/WebsiteIds.php | 2 +- .../CatalogAttributeSetInterface.php | 2 +- .../Test/Handler/CatalogAttributeSet/Curl.php | 2 +- .../CatalogProductAttributeInterface.php | 2 +- .../Test/Handler/CatalogProductAttribute/Curl.php | 2 +- .../CatalogProductSimpleInterface.php | 2 +- .../Test/Handler/CatalogProductSimple/Curl.php | 2 +- .../Test/Handler/CatalogProductSimple/Ui.php | 2 +- .../Test/Handler/CatalogProductSimple/Webapi.php | 2 +- .../CatalogProductVirtualInterface.php | 2 +- .../Test/Handler/CatalogProductVirtual/Curl.php | 2 +- .../Test/Handler/CatalogProductVirtual/Webapi.php | 2 +- .../Test/Handler/Category/CategoryInterface.php | 2 +- .../Magento/Catalog/Test/Handler/Category/Curl.php | 2 +- .../Catalog/Test/Handler/Category/Webapi.php | 2 +- .../Test/Page/Adminhtml/CatalogCategoryEdit.xml | 2 +- .../Test/Page/Adminhtml/CatalogCategoryIndex.xml | 2 +- .../CatalogProductActionAttributeEdit.xml | 2 +- .../Adminhtml/CatalogProductAttributeIndex.xml | 2 +- .../Page/Adminhtml/CatalogProductAttributeNew.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductEdit.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductIndex.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductNew.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductSetAdd.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductSetEdit.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductSetIndex.xml | 2 +- .../Catalog/Test/Page/Category/CatalogCategory.php | 2 +- .../Test/Page/Category/CatalogCategoryEdit.php | 2 +- .../Test/Page/Category/CatalogCategoryView.xml | 2 +- .../app/Magento/Catalog/Test/Page/CmsIndex.xml | 2 +- .../Test/Page/Product/CatalogProductCompare.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Test/Repository/CatalogAttributeSet.xml | 2 +- .../Test/Repository/CatalogProductAttribute.xml | 2 +- .../Repository/CatalogProductAttribute/Options.xml | 2 +- .../Test/Repository/CatalogProductSimple.xml | 2 +- .../CatalogProductSimple/CheckoutData.xml | 2 +- .../Test/Repository/CatalogProductSimple/Price.xml | 2 +- .../Test/Repository/CatalogProductVirtual.xml | 2 +- .../CatalogProductVirtual/CheckoutData.xml | 2 +- .../Magento/Catalog/Test/Repository/Category.xml | 2 +- .../Magento/Catalog/Test/Repository/ConfigData.xml | 2 +- .../Test/Repository/Product/CustomOptions.xml | 2 +- .../Catalog/Test/Repository/Product/Fpt.xml | 2 +- .../Catalog/Test/Repository/Product/TierPrice.xml | 2 +- .../TestCase/Category/CreateCategoryEntityTest.php | 2 +- .../TestCase/Category/CreateCategoryEntityTest.xml | 2 +- .../TestCase/Category/DeleteCategoryEntityTest.php | 2 +- .../TestCase/Category/DeleteCategoryEntityTest.xml | 2 +- .../TestCase/Category/UpdateCategoryEntityTest.php | 2 +- .../TestCase/Category/UpdateCategoryEntityTest.xml | 2 +- .../Catalog/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Product/AbstractCompareProductsTest.php | 2 +- .../AbstractProductPromotedProductsTest.php | 2 +- .../TestCase/Product/AddCompareProductsTest.php | 2 +- .../TestCase/Product/AddCompareProductsTest.xml | 2 +- .../TestCase/Product/AddToCartCrossSellTest.php | 2 +- .../TestCase/Product/AddToCartCrossSellTest.xml | 2 +- .../Product/ClearAllCompareProductsTest.php | 2 +- .../Product/ClearAllCompareProductsTest.xml | 2 +- .../Product/CreateSimpleProductEntityTest.php | 2 +- .../Product/CreateSimpleProductEntityTest.xml | 2 +- .../Product/CreateVirtualProductEntityTest.php | 2 +- .../Product/CreateVirtualProductEntityTest.xml | 2 +- .../TestCase/Product/DeleteCompareProductsTest.php | 2 +- .../TestCase/Product/DeleteCompareProductsTest.xml | 2 +- .../TestCase/Product/DeleteProductEntityTest.php | 2 +- .../TestCase/Product/DeleteProductEntityTest.xml | 2 +- .../Product/DuplicateProductEntityTest.php | 2 +- .../Product/DuplicateProductEntityTest.xml | 2 +- .../TestCase/Product/MassProductUpdateTest.php | 2 +- .../TestCase/Product/MassProductUpdateTest.xml | 2 +- .../Product/NavigateRelatedProductsTest.php | 2 +- .../Product/NavigateRelatedProductsTest.xml | 2 +- .../Product/NavigateUpSellProductsTest.php | 2 +- .../Product/NavigateUpSellProductsTest.xml | 2 +- .../Product/ProductTypeSwitchingOnCreationTest.php | 2 +- .../Product/ProductTypeSwitchingOnCreationTest.xml | 2 +- .../Product/ProductTypeSwitchingOnUpdateTest.php | 2 +- .../Product/ProductTypeSwitchingOnUpdateTest.xml | 2 +- .../Product/UpdateSimpleProductEntityTest.php | 2 +- .../Product/UpdateSimpleProductEntityTest.xml | 2 +- .../Product/UpdateVirtualProductEntityTest.php | 2 +- .../Product/UpdateVirtualProductEntityTest.xml | 2 +- .../Product/ValidateOrderOfProductTypeTest.php | 2 +- .../Product/ValidateOrderOfProductTypeTest.xml | 2 +- .../CreateAttributeSetEntityTest.php | 2 +- .../CreateAttributeSetEntityTest.xml | 2 +- ...teProductAttributeEntityFromProductPageTest.php | 2 +- ...teProductAttributeEntityFromProductPageTest.xml | 2 +- .../CreateProductAttributeEntityTest.php | 2 +- .../CreateProductAttributeEntityTest.xml | 2 +- ...eleteAssignedToTemplateProductAttributeTest.php | 2 +- ...eleteAssignedToTemplateProductAttributeTest.xml | 2 +- .../ProductAttribute/DeleteAttributeSetTest.php | 2 +- .../ProductAttribute/DeleteAttributeSetTest.xml | 2 +- .../DeleteProductAttributeEntityTest.php | 2 +- .../DeleteProductAttributeEntityTest.xml | 2 +- .../DeleteSystemProductAttributeTest.php | 2 +- .../DeleteSystemProductAttributeTest.xml | 2 +- ...eleteUsedInConfigurableProductAttributeTest.php | 2 +- ...eleteUsedInConfigurableProductAttributeTest.xml | 2 +- .../ProductAttribute/UpdateAttributeSetTest.php | 2 +- .../ProductAttribute/UpdateAttributeSetTest.xml | 2 +- .../UpdateProductAttributeEntityTest.php | 2 +- .../UpdateProductAttributeEntityTest.xml | 2 +- .../TestStep/AddAttributeToAttributeSetStep.php | 2 +- .../AddNewAttributeFromProductPageStep.php | 2 +- .../Catalog/Test/TestStep/AddNewAttributeStep.php | 2 +- .../Test/TestStep/CreateAttributeSetStep.php | 2 +- .../Catalog/Test/TestStep/CreateCategoryStep.php | 2 +- .../Test/TestStep/CreateProductAttributesStep.php | 2 +- .../Catalog/Test/TestStep/CreateProductStep.php | 2 +- .../TestStep/CreateProductWithAttributeSetStep.php | 2 +- .../Catalog/Test/TestStep/CreateProductsStep.php | 2 +- .../Catalog/Test/TestStep/DeleteAttributeStep.php | 2 +- .../FillAttributeFormOnProductPageStep.php | 2 +- .../Test/TestStep/FillAttributeFormStep.php | 2 +- .../FillCustomAttributesOnProductPageStep.php | 2 +- .../TestStep/MergePreconditionProductsStep.php | 2 +- .../TestStep/OpenProductAttributesPageStep.php | 2 +- .../Test/TestStep/OpenProductOnBackendStep.php | 2 +- .../Test/TestStep/OpenProductsOnFrontendStep.php | 2 +- .../TestStep/SaveAttributeOnProductPageStep.php | 2 +- .../Catalog/Test/TestStep/SaveAttributeSetStep.php | 2 +- .../Catalog/Test/TestStep/SaveAttributeStep.php | 2 +- .../Catalog/Test/TestStep/SaveProductStep.php | 2 +- .../Test/TestStep/SetDefaultAttributeValueStep.php | 2 +- .../tests/app/Magento/Catalog/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Catalog/Test/etc/di.xml | 2 +- .../app/Magento/Catalog/Test/etc/testcase.xml | 2 +- .../tests/app/Magento/Catalog/Test/etc/ui/di.xml | 2 +- .../app/Magento/Catalog/Test/etc/webapi/di.xml | 2 +- .../Test/Repository/ConfigData.xml | 2 +- .../Test/Block/Adminhtml/FormPageActions.php | 2 +- .../Test/Block/Adminhtml/Promo/Catalog.php | 2 +- .../Adminhtml/Promo/Catalog/Edit/PromoForm.php | 2 +- .../Adminhtml/Promo/Catalog/Edit/PromoForm.xml | 2 +- .../Promo/Catalog/Edit/Section/Conditions.php | 2 +- .../Promo/Catalog/Edit/Section/RuleInformation.php | 2 +- .../Test/Block/Adminhtml/Promo/GridPageActions.php | 2 +- .../Magento/CatalogRule/Test/Block/Conditions.php | 2 +- .../AssertCatalogPriceRuleAppliedCatalogPage.php | 2 +- ...ssertCatalogPriceRuleAppliedOnepageCheckout.php | 2 +- .../AssertCatalogPriceRuleAppliedProductPage.php | 2 +- .../AssertCatalogPriceRuleAppliedShoppingCart.php | 2 +- .../Test/Constraint/AssertCatalogPriceRuleForm.php | 2 +- .../Constraint/AssertCatalogPriceRuleInGrid.php | 2 +- ...AssertCatalogPriceRuleNotAppliedCatalogPage.php | 2 +- ...AssertCatalogPriceRuleNotAppliedProductPage.php | 2 +- ...ssertCatalogPriceRuleNotAppliedShoppingCart.php | 2 +- .../Constraint/AssertCatalogPriceRuleNotInGrid.php | 2 +- .../AssertCatalogPriceRuleNoticeMessage.php | 2 +- .../AssertCatalogPriceRuleSuccessDeleteMessage.php | 2 +- .../AssertCatalogPriceRuleSuccessSaveMessage.php | 2 +- .../AssertProductAttributeIsUsedPromoRules.php | 2 +- .../CatalogRule/Test/Fixture/CatalogRule.xml | 2 +- .../Handler/CatalogRule/CatalogRuleInterface.php | 2 +- .../CatalogRule/Test/Handler/CatalogRule/Curl.php | 2 +- .../Test/Page/Adminhtml/CatalogRuleIndex.xml | 2 +- .../Test/Page/Adminhtml/CatalogRuleNew.xml | 2 +- .../CatalogRule/Test/Repository/CatalogRule.xml | 2 +- .../TestCase/AbstractCatalogRuleEntityTest.php | 2 +- .../ApplySeveralCatalogPriceRuleEntityTest.php | 2 +- .../ApplySeveralCatalogPriceRuleEntityTest.xml | 2 +- .../TestCase/CreateCatalogPriceRuleEntityTest.php | 2 +- .../TestCase/CreateCatalogPriceRuleEntityTest.xml | 2 +- .../Test/TestCase/CreateCatalogRuleTest.php | 2 +- .../Test/TestCase/CreateCatalogRuleTest.xml | 2 +- .../TestCase/DeleteCatalogPriceRuleEntityTest.php | 2 +- .../TestCase/DeleteCatalogPriceRuleEntityTest.xml | 2 +- .../CatalogRule/Test/TestCase/NavigateMenuTest.xml | 2 +- .../TestCase/UpdateCatalogPriceRuleEntityTest.php | 2 +- .../TestCase/UpdateCatalogPriceRuleEntityTest.xml | 2 +- .../Test/TestStep/CreateCatalogRuleStep.php | 2 +- .../Test/TestStep/DeleteAllCatalogRulesStep.php | 2 +- .../app/Magento/CatalogRule/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/CatalogRule/Test/etc/di.xml | 2 +- .../app/Magento/CatalogRule/Test/etc/ui/di.xml | 2 +- .../Test/Block/Adminhtml/Edit/SearchTermForm.php | 2 +- .../Test/Block/Adminhtml/Edit/SearchTermForm.xml | 2 +- .../CatalogSearch/Test/Block/Adminhtml/Grid.php | 2 +- .../Test/Block/Advanced/CustomAttribute/Date.php | 2 +- .../Test/Block/Advanced/CustomAttribute/Select.php | 2 +- .../Test/Block/Advanced/CustomAttribute/Text.php | 2 +- .../CatalogSearch/Test/Block/Advanced/Form.php | 2 +- .../CatalogSearch/Test/Block/Advanced/Form.xml | 2 +- .../CatalogSearch/Test/Block/Advanced/Result.php | 2 +- .../Constraint/AssertAdvancedSearchNoResult.php | 2 +- .../AssertAdvancedSearchProductByAttribute.php | 2 +- .../AssertAdvancedSearchProductsResult.php | 2 +- .../AssertAttributeSearchableByLabel.php | 2 +- .../Constraint/AssertCatalogSearchNoResult.php | 2 +- .../AssertCatalogSearchNoResultMessage.php | 2 +- .../Test/Constraint/AssertCatalogSearchResult.php | 2 +- .../AssertProductCanBeOpenedFromSearchResult.php | 2 +- .../Test/Constraint/AssertSearchTermForm.php | 2 +- .../Test/Constraint/AssertSearchTermInGrid.php | 2 +- .../AssertSearchTermMassActionNotOnFrontend.php | 2 +- .../AssertSearchTermMassActionsNotInGrid.php | 2 +- .../Test/Constraint/AssertSearchTermNotInGrid.php | 2 +- .../Constraint/AssertSearchTermNotOnFrontend.php | 2 +- .../Test/Constraint/AssertSearchTermOnFrontend.php | 2 +- .../AssertSearchTermSuccessDeleteMessage.php | 2 +- .../AssertSearchTermSuccessMassDeleteMessage.php | 2 +- .../AssertSearchTermSuccessSaveMessage.php | 2 +- .../Constraint/AssertSuggestSearchingResult.php | 2 +- .../Test/Fixture/CatalogSearchQuery.xml | 2 +- .../Test/Fixture/CatalogSearchQuery/QueryText.php | 2 +- .../CatalogSearchQueryInterface.php | 2 +- .../Test/Handler/CatalogSearchQuery/Curl.php | 2 +- .../Test/Page/Adminhtml/CatalogSearchEdit.xml | 2 +- .../Test/Page/Adminhtml/CatalogSearchIndex.xml | 2 +- .../CatalogSearch/Test/Page/AdvancedResult.xml | 2 +- .../CatalogSearch/Test/Page/AdvancedSearch.xml | 2 +- .../Test/Page/CatalogsearchResult.xml | 2 +- .../Test/Repository/CatalogSearchQuery.xml | 2 +- .../Test/TestCase/AdvancedSearchEntityTest.php | 2 +- .../Test/TestCase/AdvancedSearchEntityTest.xml | 2 +- .../Test/TestCase/CreateSearchTermEntityTest.php | 2 +- .../Test/TestCase/CreateSearchTermEntityTest.xml | 2 +- .../Test/TestCase/DeleteSearchTermEntityTest.php | 2 +- .../Test/TestCase/DeleteSearchTermEntityTest.xml | 2 +- .../TestCase/MassDeleteSearchTermEntityTest.php | 2 +- .../TestCase/MassDeleteSearchTermEntityTest.xml | 2 +- .../Test/TestCase/NavigateMenuTest.xml | 2 +- .../Test/TestCase/SearchEntityResultsTest.php | 2 +- .../Test/TestCase/SearchEntityResultsTest.xml | 2 +- .../TestCase/SuggestSearchingResultEntityTest.php | 2 +- .../TestCase/SuggestSearchingResultEntityTest.xml | 2 +- .../Test/TestCase/UpdateSearchTermEntityTest.php | 2 +- .../Test/TestCase/UpdateSearchTermEntityTest.xml | 2 +- .../app/Magento/CatalogSearch/Test/etc/curl/di.xml | 2 +- .../app/Magento/CatalogSearch/Test/etc/di.xml | 2 +- .../tests/app/Magento/Checkout/Test/Block/Cart.php | 2 +- .../Checkout/Test/Block/Cart/AbstractCartItem.php | 2 +- .../Magento/Checkout/Test/Block/Cart/CartEmpty.php | 2 +- .../Magento/Checkout/Test/Block/Cart/CartItem.php | 2 +- .../Checkout/Test/Block/Cart/DiscountCodes.php | 2 +- .../app/Magento/Checkout/Test/Block/Cart/Pager.php | 2 +- .../Magento/Checkout/Test/Block/Cart/Shipping.php | 2 +- .../Magento/Checkout/Test/Block/Cart/Shipping.xml | 2 +- .../Magento/Checkout/Test/Block/Cart/Sidebar.php | 2 +- .../Checkout/Test/Block/Cart/Sidebar/Item.php | 2 +- .../Magento/Checkout/Test/Block/Cart/Totals.php | 2 +- .../Checkout/Test/Block/Onepage/AbstractReview.php | 2 +- .../Magento/Checkout/Test/Block/Onepage/Link.php | 2 +- .../Magento/Checkout/Test/Block/Onepage/Login.php | 2 +- .../Magento/Checkout/Test/Block/Onepage/Login.xml | 2 +- .../Checkout/Test/Block/Onepage/Payment.php | 2 +- .../Test/Block/Onepage/Payment/DiscountCodes.php | 2 +- .../Checkout/Test/Block/Onepage/Payment/Method.php | 2 +- .../Test/Block/Onepage/Payment/Method/Billing.php | 2 +- .../Test/Block/Onepage/Payment/Method/Billing.xml | 2 +- .../Magento/Checkout/Test/Block/Onepage/Review.php | 2 +- .../Checkout/Test/Block/Onepage/Shipping.php | 2 +- .../Checkout/Test/Block/Onepage/Shipping.xml | 2 +- .../Test/Block/Onepage/Shipping/AddressModal.php | 2 +- .../Test/Block/Onepage/Shipping/AddressModal.xml | 2 +- .../Test/Block/Onepage/Shipping/Method.php | 2 +- .../Checkout/Test/Block/Onepage/Success.php | 2 +- .../AssertAddedProductToCartSuccessMessage.php | 2 +- .../AssertBillingAddressAbsentInPayment.php | 2 +- .../AssertBillingAddressSameAsShippingCheckbox.php | 2 +- .../Checkout/Test/Constraint/AssertCartIsEmpty.php | 2 +- .../Test/Constraint/AssertCartItemsOptions.php | 2 +- .../Constraint/AssertDiscountInShoppingCart.php | 2 +- .../Constraint/AssertEstimateShippingAndTax.php | 2 +- .../Constraint/AssertGrandTotalInShoppingCart.php | 2 +- .../Constraint/AssertGrandTotalOrderReview.php | 2 +- .../AssertItemsCounterInMiniShoppingCart.php | 2 +- .../AssertLinkGoToCartNotPresentInSummaryBlock.php | 2 +- .../AssertLinkGoToCartPresentInSummaryBlock.php | 2 +- .../Test/Constraint/AssertMinicartEmpty.php | 2 +- .../Constraint/AssertOrderSuccessPlacedMessage.php | 2 +- .../AssertPagersNotPresentInShoppingCart.php | 2 +- .../AssertPagersPresentInShoppingCart.php | 2 +- .../Test/Constraint/AssertPagersSummaryText.php | 2 +- .../Constraint/AssertPaymentMethodPersistence.php | 2 +- .../Test/Constraint/AssertPriceInShoppingCart.php | 2 +- .../AssertProductAbsentInMiniShoppingCart.php | 2 +- .../Test/Constraint/AssertProductIsNotEditable.php | 2 +- .../AssertProductOptionsAbsentInShoppingCart.php | 2 +- .../AssertProductPresentInMiniShoppingCart.php | 2 +- .../AssertProductPresentInShoppingCart.php | 2 +- .../AssertProductQtyInMiniShoppingCart.php | 2 +- .../Constraint/AssertProductQtyInShoppingCart.php | 2 +- .../AssertProductsAbsentInShoppingCart.php | 2 +- ...ShippingAddressJsValidationMessagesIsAbsent.php | 2 +- .../Constraint/AssertShippingInShoppingCart.php | 2 +- .../Constraint/AssertShippingMethodsEstimate.php | 2 +- .../AssertShippingMethodsSuccessEstimate.php | 2 +- ...ppingMethodsSuccessEstimateAfterAddressEdit.php | 2 +- .../Constraint/AssertShippingTotalOrderReview.php | 2 +- .../Test/Constraint/AssertSubTotalOrderReview.php | 2 +- .../AssertSubtotalInMiniShoppingCart.php | 2 +- .../Constraint/AssertSubtotalInShoppingCart.php | 2 +- .../Test/Constraint/AssertTaxInShoppingCart.php | 2 +- .../Test/Constraint/AssertTaxTotalOrderReview.php | 2 +- ...AssertVisibleItemsQtyInCheckoutSummaryBlock.php | 2 +- .../AssertVisibleItemsQtyInMiniShoppingCart.php | 2 +- ...ertVisibleItemsQtyMessageInMiniShoppingCart.php | 2 +- ...isibleItemsQtyMessageOnCheckoutSummaryBlock.php | 2 +- .../app/Magento/Checkout/Test/Fixture/Cart.xml | 2 +- .../Magento/Checkout/Test/Fixture/Cart/Items.php | 2 +- .../Magento/Checkout/Test/Page/CheckoutCart.xml | 2 +- .../Magento/Checkout/Test/Page/CheckoutOnepage.xml | 2 +- .../Checkout/Test/Page/CheckoutOnepageSuccess.xml | 2 +- .../app/Magento/Checkout/Test/Page/CmsIndex.xml | 2 +- .../Checkout/Test/Repository/ConfigData.xml | 2 +- .../AddProductsToShoppingCartEntityTest.php | 2 +- .../AddProductsToShoppingCartEntityTest.xml | 2 +- .../DeleteProductFromMiniShoppingCartTest.php | 2 +- .../DeleteProductFromMiniShoppingCartTest.xml | 2 +- .../DeleteProductsFromShoppingCartTest.php | 2 +- .../DeleteProductsFromShoppingCartTest.xml | 2 +- .../EditShippingAddressOnePageCheckoutTest.php | 2 +- .../EditShippingAddressOnePageCheckoutTest.xml | 2 +- .../TestCase/OnePageCheckoutJsValidationTest.php | 2 +- .../TestCase/OnePageCheckoutJsValidationTest.xml | 2 +- .../Checkout/Test/TestCase/OnePageCheckoutTest.php | 2 +- .../Checkout/Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../OnePageEstimateShippingMethodsTest.php | 2 +- .../Test/TestCase/ShoppingCartPagerTest.php | 2 +- .../Test/TestCase/ShoppingCartPagerTest.xml | 2 +- ...eAddressOnCheckoutWithMultipleAddressesTest.php | 2 +- ...eAddressOnCheckoutWithMultipleAddressesTest.xml | 2 +- ...UpdateProductFromMiniShoppingCartEntityTest.php | 2 +- ...UpdateProductFromMiniShoppingCartEntityTest.xml | 2 +- .../Test/TestCase/UpdateShoppingCartTest.php | 2 +- .../Test/TestCase/UpdateShoppingCartTest.xml | 2 +- .../Test/TestStep/AddNewShippingAddressStep.php | 2 +- .../Test/TestStep/AddProductsToTheCartStep.php | 2 +- .../Test/TestStep/ClearShoppingCartStep.php | 2 +- .../Test/TestStep/ClickProceedToCheckoutStep.php | 2 +- .../Test/TestStep/EditShippingAddressStep.php | 2 +- .../Test/TestStep/EstimateShippingAndTaxStep.php | 2 +- .../Test/TestStep/FillBillingInformationStep.php | 2 +- .../Test/TestStep/FillShippingAddressStep.php | 2 +- .../Test/TestStep/FillShippingMethodStep.php | 2 +- .../Checkout/Test/TestStep/PlaceOrderStep.php | 2 +- .../Test/TestStep/ProceedToCheckoutStep.php | 2 +- .../Checkout/Test/TestStep/RefreshPageStep.php | 2 +- .../TestStep/RemoveProductsFromTheCartStep.php | 2 +- .../Test/TestStep/ResolveShippingMethodsStep.php | 2 +- .../Test/TestStep/SelectCheckoutMethodStep.php | 2 +- .../Test/TestStep/SelectPaymentMethodStep.php | 2 +- .../Checkout/Test/TestStep/ViewAndEditCartStep.php | 2 +- .../tests/app/Magento/Checkout/Test/etc/di.xml | 2 +- .../app/Magento/Checkout/Test/etc/testcase.xml | 2 +- .../Test/Block/Adminhtml/AgreementGrid.php | 2 +- .../Block/Agreement/Edit/AgreementsForm.php | 2 +- .../Block/Agreement/Edit/AgreementsForm.xml | 2 +- .../Multishipping/MultishippingAgreementReview.php | 2 +- .../Test/Block/Onepage/AgreementReview.php | 2 +- .../Test/Constraint/AssertTermAbsentInGrid.php | 2 +- .../Test/Constraint/AssertTermAbsentOnCheckout.php | 2 +- .../Test/Constraint/AssertTermInGrid.php | 2 +- .../Test/Constraint/AssertTermOnCheckout.php | 2 +- ...rtTermRequireMessageOnMultishippingCheckout.php | 2 +- .../Constraint/AssertTermSuccessDeleteMessage.php | 2 +- .../Constraint/AssertTermSuccessSaveMessage.php | 2 +- .../Test/Fixture/CheckoutAgreement.xml | 2 +- .../Test/Fixture/CheckoutAgreement/Stores.php | 2 +- .../CheckoutAgreementInterface.php | 2 +- .../Test/Handler/CheckoutAgreement/Curl.php | 2 +- .../Test/Page/Adminhtml/CheckoutAgreementIndex.xml | 2 +- .../Test/Page/Adminhtml/CheckoutAgreementNew.xml | 2 +- .../Test/Page/CheckoutOnepage.xml | 2 +- .../Test/Page/MultishippingCheckoutOverview.xml | 2 +- .../Test/Repository/CheckoutAgreement.xml | 2 +- .../Test/Repository/ConfigData.xml | 2 +- .../Test/TestCase/CreateTermEntityTest.php | 2 +- .../Test/TestCase/CreateTermEntityTest.xml | 2 +- .../Test/TestCase/DeleteTermEntityTest.php | 2 +- .../Test/TestCase/DeleteTermEntityTest.xml | 2 +- .../Test/TestCase/NavigateMenuTest.xml | 2 +- .../Test/TestCase/UpdateTermEntityTest.php | 2 +- .../Test/TestCase/UpdateTermEntityTest.xml | 2 +- .../Test/TestStep/CheckTermOnMultishippingStep.php | 2 +- .../Test/TestStep/CreateTermEntityStep.php | 2 +- .../Test/TestStep/DeleteAllTermsEntityStep.php | 2 +- .../Test/TestStep/DeleteTermEntityStep.php | 2 +- .../Test/TestStep/SetupTermEntityStep.php | 2 +- .../Test/TestStep/UpdateTermEntityStep.php | 2 +- .../CheckoutAgreements/Test/etc/curl/di.xml | 2 +- .../app/Magento/CheckoutAgreements/Test/etc/di.xml | 2 +- .../CheckoutAgreements/Test/etc/testcase.xml | 2 +- .../Cms/Test/Block/Adminhtml/Block/CmsGrid.php | 2 +- .../Test/Block/Adminhtml/Block/Edit/BlockForm.php | 2 +- .../Test/Block/Adminhtml/Block/Edit/CmsForm.php | 2 +- .../Test/Block/Adminhtml/Block/Edit/CmsForm.xml | 2 +- .../Test/Block/Adminhtml/Page/Edit/PageForm.php | 2 +- .../Test/Block/Adminhtml/Page/Edit/PageForm.xml | 2 +- .../Test/Block/Adminhtml/Page/Edit/Tab/Content.php | 2 +- .../Magento/Cms/Test/Block/Adminhtml/Page/Grid.php | 2 +- .../Test/Block/Adminhtml/Page/Widget/Chooser.php | 2 +- .../Cms/Test/Block/Adminhtml/Wysiwyg/Config.php | 2 +- .../tests/app/Magento/Cms/Test/Block/Page.php | 2 +- .../Constraint/AssertCmsBlockDeleteMessage.php | 2 +- .../Cms/Test/Constraint/AssertCmsBlockInGrid.php | 2 +- .../Test/Constraint/AssertCmsBlockNotInGrid.php | 2 +- .../Constraint/AssertCmsBlockNotOnCategoryPage.php | 2 +- .../Constraint/AssertCmsBlockOnCategoryPage.php | 2 +- .../AssertCmsBlockSuccessSaveMessage.php | 2 +- .../Test/Constraint/AssertCmsPageDeleteMessage.php | 2 +- .../Constraint/AssertCmsPageDisabledOnFrontend.php | 2 +- .../AssertCmsPageDuplicateErrorMessage.php | 2 +- .../Cms/Test/Constraint/AssertCmsPageForm.php | 2 +- .../Cms/Test/Constraint/AssertCmsPageInGrid.php | 2 +- .../Cms/Test/Constraint/AssertCmsPageNotInGrid.php | 2 +- .../Cms/Test/Constraint/AssertCmsPagePreview.php | 2 +- .../Constraint/AssertCmsPageSuccessSaveMessage.php | 2 +- .../Cms/Test/Constraint/AssertCmsWidgetTitle.php | 2 +- .../Constraint/AssertUrlRewriteCmsPageRedirect.php | 2 +- .../app/Magento/Cms/Test/Fixture/CmsBlock.xml | 2 +- .../Magento/Cms/Test/Fixture/CmsBlock/Stores.php | 2 +- .../tests/app/Magento/Cms/Test/Fixture/CmsPage.xml | 2 +- .../Magento/Cms/Test/Fixture/CmsPage/Content.php | 2 +- .../Test/Handler/CmsBlock/CmsBlockInterface.php | 2 +- .../app/Magento/Cms/Test/Handler/CmsBlock/Curl.php | 2 +- .../Cms/Test/Handler/CmsPage/CmsPageInterface.php | 2 +- .../app/Magento/Cms/Test/Handler/CmsPage/Curl.php | 2 +- .../Cms/Test/Page/Adminhtml/CmsBlockEdit.xml | 2 +- .../Cms/Test/Page/Adminhtml/CmsBlockIndex.xml | 2 +- .../Cms/Test/Page/Adminhtml/CmsBlockNew.xml | 2 +- .../Cms/Test/Page/Adminhtml/CmsPageIndex.xml | 2 +- .../Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml | 2 +- .../tests/app/Magento/Cms/Test/Page/CmsIndex.xml | 2 +- .../tests/app/Magento/Cms/Test/Page/CmsPage.xml | 2 +- .../app/Magento/Cms/Test/Repository/CmsBlock.xml | 2 +- .../app/Magento/Cms/Test/Repository/CmsPage.xml | 2 +- .../Cms/Test/Repository/CmsPage/Content.xml | 2 +- .../app/Magento/Cms/Test/Repository/ConfigData.xml | 2 +- .../app/Magento/Cms/Test/Repository/UrlRewrite.xml | 2 +- .../Test/TestCase/AbstractCmsBlockEntityTest.php | 2 +- .../Cms/Test/TestCase/CreateCmsBlockEntityTest.php | 2 +- .../Cms/Test/TestCase/CreateCmsBlockEntityTest.xml | 2 +- .../Cms/Test/TestCase/CreateCmsPageEntityTest.php | 2 +- .../Cms/Test/TestCase/CreateCmsPageEntityTest.xml | 2 +- .../TestCase/CreateCmsPageRewriteEntityTest.php | 2 +- .../TestCase/CreateCmsPageRewriteEntityTest.xml | 2 +- .../TestCase/CreateCustomUrlRewriteEntityTest.xml | 2 +- .../Cms/Test/TestCase/DeleteCmsBlockEntityTest.php | 2 +- .../Cms/Test/TestCase/DeleteCmsBlockEntityTest.xml | 2 +- .../Cms/Test/TestCase/DeleteCmsPageEntityTest.php | 2 +- .../Cms/Test/TestCase/DeleteCmsPageEntityTest.xml | 2 +- .../TestCase/DeleteCmsPageUrlRewriteEntityTest.php | 2 +- .../TestCase/DeleteCmsPageUrlRewriteEntityTest.xml | 2 +- .../Cms/Test/TestCase/GridFilteringTest.xml | 2 +- .../Cms/Test/TestCase/GridFullTextSearchTest.xml | 2 +- .../Magento/Cms/Test/TestCase/GridSortingTest.xml | 2 +- .../Magento/Cms/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Cms/Test/TestCase/UpdateCmsBlockEntityTest.php | 2 +- .../Cms/Test/TestCase/UpdateCmsBlockEntityTest.xml | 2 +- .../Cms/Test/TestCase/UpdateCmsPageEntityTest.php | 2 +- .../Cms/Test/TestCase/UpdateCmsPageEntityTest.xml | 2 +- .../TestCase/UpdateCmsPageRewriteEntityTest.php | 2 +- .../TestCase/UpdateCmsPageRewriteEntityTest.xml | 2 +- .../tests/app/Magento/Cms/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Cms/Test/etc/di.xml | 2 +- .../app/Magento/Config/Test/Fixture/ConfigData.xml | 2 +- .../Config/Test/Fixture/ConfigData/Section.php | 2 +- .../Handler/ConfigData/ConfigDataInterface.php | 2 +- .../Config/Test/Handler/ConfigData/Curl.php | 2 +- .../Test/TestStep/SetupConfigurationStep.php | 2 +- .../tests/app/Magento/Config/Test/etc/curl/di.xml | 2 +- .../Adminhtml/Product/AffectedAttributeSet.php | 2 +- .../Adminhtml/Product/AffectedAttributeSet.xml | 2 +- .../Adminhtml/Product/AssociatedProductGrid.php | 2 +- .../Block/Adminhtml/Product/AttributesGrid.php | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Adminhtml/Product/Composite/Configure.xml | 2 +- .../Product/Edit/NewConfigurableAttributeForm.php | 2 +- .../Product/Edit/NewConfigurableAttributeForm.xml | 2 +- .../Product/Edit/Section/Variations/Config.php | 2 +- .../Edit/Section/Variations/Config/Attribute.php | 2 +- .../Edit/Section/Variations/Config/Attribute.xml | 2 +- .../Config/Attribute/AttributeSelector.php | 2 +- .../Variations/Config/Attribute/ToggleDropdown.php | 2 +- .../Edit/Section/Variations/Config/Matrix.php | 2 +- .../Edit/Section/Variations/Config/Matrix.xml | 2 +- .../Block/Adminhtml/Product/FormPageActions.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Test/Block/Product/Price.php | 2 +- .../Test/Block/Product/View.php | 2 +- .../Block/Product/View/ConfigurableOptions.php | 2 +- .../AssertChildProductIsNotDisplayedSeparately.php | 2 +- .../Test/Constraint/AssertChildProductsInGrid.php | 2 +- ...rtConfigurableAttributesAbsentOnProductPage.php | 2 +- ...gurableAttributesBlockIsAbsentOnProductPage.php | 2 +- .../AssertConfigurableProductDuplicateForm.php | 2 +- .../Constraint/AssertConfigurableProductForm.php | 2 +- .../Constraint/AssertConfigurableProductInCart.php | 2 +- .../AssertConfigurableProductInCategory.php | 2 +- ...rableProductInCustomerWishlistOnBackendGrid.php | 2 +- .../AssertConfigurableProductOutOfStockPage.php | 2 +- .../Constraint/AssertConfigurableProductPage.php | 2 +- ...rtProductAttributeAbsenceInVariationsSearch.php | 2 +- .../AssertProductAttributeIsConfigurable.php | 2 +- .../AssertProductTierPriceOnProductPage.php | 2 +- .../AssertProductsInStockInLayeredNavigation.php | 2 +- .../ConfigurableProduct/Test/Fixture/Cart/Item.php | 2 +- .../Test/Fixture/ConfigurableProduct.xml | 2 +- .../ConfigurableAttributesData.php | 2 +- .../ConfigurableProductInterface.php | 2 +- .../Test/Handler/ConfigurableProduct/Curl.php | 2 +- .../Test/Handler/ConfigurableProduct/Webapi.php | 2 +- .../Test/Page/Adminhtml/CatalogProductEdit.xml | 2 +- .../Test/Page/Adminhtml/CatalogProductNew.xml | 2 +- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Test/Repository/ConfigData.xml | 2 +- .../Test/Repository/ConfigurableProduct.xml | 2 +- .../ConfigurableProduct/CheckoutData.xml | 2 +- .../ConfigurableAttributesData.xml | 2 +- .../Test/Repository/ConfigurableProduct/Price.xml | 2 +- .../CreateConfigurableProductEntityTest.php | 2 +- .../CreateConfigurableProductEntityTest.xml | 2 +- .../Test/TestCase/DeleteProductEntityTest.xml | 2 +- .../DeleteProductFromMiniShoppingCartTest.xml | 2 +- .../Test/TestCase/DuplicateProductEntityTest.xml | 2 +- .../Test/TestCase/TaxCalculationTest.xml | 2 +- .../UpdateConfigurableProductCustomWebsiteTest.php | 2 +- .../UpdateConfigurableProductCustomWebsiteTest.xml | 2 +- .../UpdateConfigurableProductEntityTest.php | 2 +- .../UpdateConfigurableProductEntityTest.xml | 2 +- .../TestCase/ValidateOrderOfProductTypeTest.xml | 2 +- .../TestStep/UpdateConfigurableProductStep.php | 2 +- .../UpdateSimplesInConfigurablePerStoreStep.php | 2 +- .../ConfigurableProduct/Test/etc/curl/di.xml | 2 +- .../Magento/ConfigurableProduct/Test/etc/di.xml | 2 +- .../ConfigurableProduct/Test/etc/testcase.xml | 2 +- .../ConfigurableProduct/Test/etc/webapi/di.xml | 2 +- .../System/Currency/Rate/CurrencyRateForm.php | 2 +- .../System/Currency/Rate/CurrencyRateForm.xml | 2 +- .../System/Currency/Rate/FormPageActions.php | 2 +- .../Block/Adminhtml/System/CurrencySymbolForm.php | 2 +- .../Block/Adminhtml/System/CurrencySymbolForm.xml | 2 +- .../Block/Adminhtml/System/FormPageActions.php | 2 +- .../AssertCurrencySymbolOnCatalogPage.php | 2 +- .../AssertCurrencySymbolOnProductPage.php | 2 +- .../AssertCurrencySymbolSuccessSaveMessage.php | 2 +- .../Test/Fixture/CurrencySymbolEntity.xml | 2 +- .../Test/Handler/CurrencySymbolEntity/Curl.php | 2 +- .../CurrencySymbolEntityInterface.php | 2 +- .../Test/Page/Adminhtml/ConfigCurrencySetUp.xml | 2 +- .../Test/Page/Adminhtml/SystemCurrencyIndex.xml | 2 +- .../Page/Adminhtml/SystemCurrencySymbolIndex.xml | 2 +- .../CurrencySymbol/Test/Repository/ConfigData.xml | 2 +- .../Test/Repository/CurrencySymbolEntity.xml | 2 +- .../TestCase/AbstractCurrencySymbolEntityTest.php | 2 +- .../Test/TestCase/EditCurrencySymbolEntityTest.php | 2 +- .../Test/TestCase/EditCurrencySymbolEntityTest.xml | 2 +- .../Test/TestCase/NavigateMenuTest.xml | 2 +- .../TestCase/ResetCurrencySymbolEntityTest.php | 2 +- .../TestCase/ResetCurrencySymbolEntityTest.xml | 2 +- .../Magento/CurrencySymbol/Test/etc/curl/di.xml | 2 +- .../Test/Block/Account/AddressesAdditional.php | 2 +- .../Test/Block/Account/AddressesDefault.php | 2 +- .../Test/Block/Account/Dashboard/Address.php | 2 +- .../Customer/Test/Block/Account/Dashboard/Info.php | 2 +- .../Magento/Customer/Test/Block/Account/Links.php | 2 +- .../Magento/Customer/Test/Block/Address/Edit.php | 2 +- .../Magento/Customer/Test/Block/Address/Edit.xml | 2 +- .../Customer/Test/Block/Address/Renderer.php | 2 +- .../Customer/Test/Block/Adminhtml/CustomerGrid.php | 2 +- .../Test/Block/Adminhtml/Edit/CustomerForm.php | 2 +- .../Test/Block/Adminhtml/Edit/CustomerForm.xml | 2 +- .../Test/Block/Adminhtml/Edit/FormPageActions.php | 2 +- .../Test/Block/Adminhtml/Edit/Tab/Addresses.php | 2 +- .../Test/Block/Adminhtml/Edit/Tab/Addresses.xml | 2 +- .../Block/Adminhtml/Group/CustomerGroupGrid.php | 2 +- .../Test/Block/Adminhtml/Group/Edit/Form.php | 2 +- .../Test/Block/Adminhtml/Group/Edit/Form.xml | 2 +- .../Customer/Test/Block/Form/CustomerForm.php | 2 +- .../Customer/Test/Block/Form/CustomerForm.xml | 2 +- .../Customer/Test/Block/Form/ForgotPassword.php | 2 +- .../Customer/Test/Block/Form/ForgotPassword.xml | 2 +- .../app/Magento/Customer/Test/Block/Form/Login.php | 2 +- .../app/Magento/Customer/Test/Block/Form/Login.xml | 2 +- .../Magento/Customer/Test/Block/Form/Register.php | 2 +- .../Magento/Customer/Test/Block/Form/Register.xml | 2 +- .../AssertAdditionalAddressCreatedFrontend.php | 2 +- .../AssertAdditionalAddressDeletedFrontend.php | 2 +- .../Constraint/AssertAddressDeletedBackend.php | 2 +- .../Constraint/AssertAddressDeletedFrontend.php | 2 +- .../Constraint/AssertChangePasswordFailMessage.php | 2 +- .../AssertCustomerAddressSuccessSaveMessage.php | 2 +- .../Constraint/AssertCustomerBackendBackButton.php | 2 +- .../AssertCustomerBackendDuplicateErrorMessage.php | 2 +- .../Constraint/AssertCustomerBackendFormTitle.php | 2 +- .../AssertCustomerBackendRequiredFields.php | 2 +- ...rtCustomerDefaultAddressFrontendAddressBook.php | 2 +- .../Constraint/AssertCustomerDefaultAddresses.php | 2 +- .../AssertCustomerFailRegisterMessage.php | 2 +- .../AssertCustomerForgotPasswordSuccessMessage.php | 2 +- .../Test/Constraint/AssertCustomerForm.php | 2 +- .../AssertCustomerGroupAlreadyExists.php | 2 +- ...CustomerGroupChangedToDefaultOnCustomerForm.php | 2 +- .../AssertCustomerGroupFieldsDisabled.php | 2 +- .../Test/Constraint/AssertCustomerGroupForm.php | 2 +- .../Test/Constraint/AssertCustomerGroupInGrid.php | 2 +- .../Constraint/AssertCustomerGroupNotInGrid.php | 2 +- .../AssertCustomerGroupNotOnCartPriceRuleForm.php | 2 +- ...ssertCustomerGroupNotOnCatalogPriceRuleForm.php | 2 +- .../AssertCustomerGroupNotOnProductForm.php | 2 +- .../AssertCustomerGroupOnCartPriceRuleForm.php | 2 +- .../AssertCustomerGroupOnCatalogPriceRuleForm.php | 2 +- .../AssertCustomerGroupOnCustomerForm.php | 2 +- .../AssertCustomerGroupOnProductForm.php | 2 +- .../AssertCustomerGroupSuccessDeleteMessage.php | 2 +- .../AssertCustomerGroupSuccessSaveMessage.php | 2 +- .../Test/Constraint/AssertCustomerInGrid.php | 2 +- .../AssertCustomerInfoSuccessSavedMessage.php | 2 +- .../Test/Constraint/AssertCustomerInvalidEmail.php | 2 +- .../Test/Constraint/AssertCustomerLogin.php | 2 +- .../Test/Constraint/AssertCustomerLogout.php | 2 +- .../Constraint/AssertCustomerMassDeleteInGrid.php | 2 +- .../AssertCustomerMassDeleteNotInGrid.php | 2 +- .../AssertCustomerMassDeleteSuccessMessage.php | 2 +- .../Test/Constraint/AssertCustomerNameFrontend.php | 2 +- .../Test/Constraint/AssertCustomerNotInGrid.php | 2 +- .../Constraint/AssertCustomerPasswordChanged.php | 2 +- .../AssertCustomerRedirectToDashboard.php | 2 +- .../AssertCustomerSuccessDeleteMessage.php | 2 +- .../AssertCustomerSuccessRegisterMessage.php | 2 +- .../AssertCustomerSuccessSaveMessage.php | 2 +- .../AssertMassActionSuccessUpdateMessage.php | 2 +- .../Test/Constraint/AssertNoAlertPopup.php | 2 +- .../AssertNoDeleteForSystemCustomerGroup.php | 2 +- .../AssertWrongPassConfirmationMessage.php | 2 +- .../app/Magento/Customer/Test/Fixture/Address.xml | 2 +- .../Test/Fixture/Address/CustomAttribute.php | 2 +- .../app/Magento/Customer/Test/Fixture/Customer.xml | 2 +- .../Customer/Test/Fixture/Customer/Address.php | 2 +- .../Customer/Test/Fixture/Customer/GroupId.php | 2 +- .../Customer/Test/Fixture/CustomerGroup.xml | 2 +- .../Test/Fixture/CustomerGroup/TaxClassIds.php | 2 +- .../Customer/Test/Handler/Customer/Curl.php | 2 +- .../Test/Handler/Customer/CustomerInterface.php | 2 +- .../Customer/Test/Handler/Customer/Webapi.php | 2 +- .../Customer/Test/Handler/CustomerGroup/Curl.php | 2 +- .../CustomerGroup/CustomerGroupInterface.php | 2 +- .../Customer/Test/Page/Address/DefaultAddress.php | 2 +- .../Test/Page/Adminhtml/CustomerGroupEdit.xml | 2 +- .../Test/Page/Adminhtml/CustomerGroupIndex.xml | 2 +- .../Test/Page/Adminhtml/CustomerGroupNew.xml | 2 +- .../Customer/Test/Page/Adminhtml/CustomerIndex.xml | 2 +- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 2 +- .../Test/Page/Adminhtml/CustomerIndexNew.xml | 2 +- .../Customer/Test/Page/CustomerAccountAddress.xml | 2 +- .../Customer/Test/Page/CustomerAccountCreate.xml | 2 +- .../Customer/Test/Page/CustomerAccountEdit.xml | 2 +- .../Test/Page/CustomerAccountForgotPassword.xml | 2 +- .../Customer/Test/Page/CustomerAccountIndex.xml | 2 +- .../Customer/Test/Page/CustomerAccountLogin.xml | 2 +- .../Customer/Test/Page/CustomerAccountLogout.php | 2 +- .../Customer/Test/Page/CustomerAddressEdit.php | 2 +- .../Magento/Customer/Test/Repository/Address.php | 2 +- .../Magento/Customer/Test/Repository/Address.xml | 2 +- .../Customer/Test/Repository/ConfigData.xml | 2 +- .../Magento/Customer/Test/Repository/Customer.xml | 2 +- .../Customer/Test/Repository/CustomerGroup.xml | 2 +- .../Test/TestCase/AbstractApplyVatIdTest.php | 2 +- .../Customer/Test/TestCase/ApplyVatIdTest.php | 2 +- .../Customer/Test/TestCase/ApplyVatIdTest.xml | 2 +- .../Test/TestCase/ChangeCustomerPasswordTest.php | 2 +- .../Test/TestCase/ChangeCustomerPasswordTest.xml | 2 +- .../TestCase/CreateCustomerBackendEntityTest.php | 2 +- .../TestCase/CreateCustomerBackendEntityTest.xml | 2 +- .../TestCase/CreateCustomerGroupEntityTest.php | 2 +- .../TestCase/CreateCustomerGroupEntityTest.xml | 2 +- .../CreateExistingCustomerBackendEntity.php | 2 +- .../CreateExistingCustomerBackendEntity.xml | 2 +- .../CreateExistingCustomerFrontendEntity.php | 2 +- .../CreateExistingCustomerFrontendEntity.xml | 2 +- .../Test/TestCase/DeleteCustomerAddressTest.php | 2 +- .../Test/TestCase/DeleteCustomerAddressTest.xml | 2 +- .../TestCase/DeleteCustomerBackendEntityTest.php | 2 +- .../TestCase/DeleteCustomerBackendEntityTest.xml | 2 +- .../TestCase/DeleteCustomerGroupEntityTest.php | 2 +- .../TestCase/DeleteCustomerGroupEntityTest.xml | 2 +- .../TestCase/DeleteSystemCustomerGroupTest.php | 2 +- .../TestCase/DeleteSystemCustomerGroupTest.xml | 2 +- .../Test/TestCase/ForgotPasswordOnFrontendTest.php | 2 +- .../Test/TestCase/ForgotPasswordOnFrontendTest.xml | 2 +- .../Customer/Test/TestCase/GridFilteringTest.xml | 2 +- .../Test/TestCase/GridFullTextSearchTest.xml | 2 +- .../Customer/Test/TestCase/GridSortingTest.xml | 2 +- .../Test/TestCase/MassAssignCustomerGroupTest.php | 2 +- .../Test/TestCase/MassAssignCustomerGroupTest.xml | 2 +- .../MassDeleteCustomerBackendEntityTest.php | 2 +- .../MassDeleteCustomerBackendEntityTest.xml | 2 +- .../Customer/Test/TestCase/NavigateMenuTest.xml | 2 +- .../RegisterCustomerFrontendEntityTest.php | 2 +- .../RegisterCustomerFrontendEntityTest.xml | 2 +- .../TestCase/UpdateCustomerBackendEntityTest.php | 2 +- .../TestCase/UpdateCustomerBackendEntityTest.xml | 2 +- .../TestCase/UpdateCustomerFrontendEntityTest.php | 2 +- .../TestCase/UpdateCustomerFrontendEntityTest.xml | 2 +- .../TestCase/UpdateCustomerGroupEntityTest.php | 2 +- .../TestCase/UpdateCustomerGroupEntityTest.xml | 2 +- .../VerifyDisabledCustomerGroupFieldTest.php | 2 +- .../VerifyDisabledCustomerGroupFieldTest.xml | 2 +- .../Customer/Test/TestStep/CreateCustomerStep.php | 2 +- .../CreateOrderFromCustomerAccountStep.php | 2 +- .../EditCustomerDefaultAddressOnFrontendStep.php | 2 +- .../Test/TestStep/LoginCustomerOnFrontendStep.php | 2 +- .../Test/TestStep/LogoutCustomerOnFrontendStep.php | 2 +- .../Test/TestStep/OpenCustomerOnBackendStep.php | 2 +- .../app/Magento/Customer/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Customer/Test/etc/di.xml | 2 +- .../app/Magento/Customer/Test/etc/testcase.xml | 2 +- .../app/Magento/Customer/Test/etc/webapi/di.xml | 2 +- .../app/Magento/Dhl/Test/Repository/ConfigData.xml | 2 +- .../Dhl/Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../Directory/Test/Block/Currency/Switcher.php | 2 +- .../AssertCurrencyRateAppliedOnCatalogPage.php | 2 +- .../AssertCurrencyRateSuccessSaveMessage.php | 2 +- .../Directory/Test/Fixture/CurrencyRate.xml | 2 +- .../Directory/Test/Handler/CurrencyRate/Curl.php | 2 +- .../Handler/CurrencyRate/CurrencyRateInterface.php | 2 +- .../Directory/Test/Repository/CurrencyRate.xml | 2 +- .../Test/TestCase/CreateCurrencyRateTest.php | 2 +- .../Test/TestCase/CreateCurrencyRateTest.xml | 2 +- .../app/Magento/Directory/Test/etc/curl/di.xml | 2 +- .../Catalog/Product/Edit/Section/Downloadable.php | 2 +- .../Product/Edit/Section/Downloadable/LinkRow.php | 2 +- .../Product/Edit/Section/Downloadable/LinkRow.xml | 2 +- .../Product/Edit/Section/Downloadable/Links.php | 2 +- .../Product/Edit/Section/Downloadable/Links.xml | 2 +- .../Edit/Section/Downloadable/SampleRow.php | 2 +- .../Edit/Section/Downloadable/SampleRow.xml | 2 +- .../Product/Edit/Section/Downloadable/Samples.php | 2 +- .../Product/Edit/Section/Downloadable/Samples.xml | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Adminhtml/Product/Composite/Configure.xml | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Test/Block/Catalog/Product/View.php | 2 +- .../Test/Block/Catalog/Product/View/Links.php | 2 +- .../Test/Block/Catalog/Product/View/Samples.php | 2 +- .../Test/Block/Customer/Products/ListProducts.php | 2 +- ...sertTaxCalculationAfterCheckoutDownloadable.php | 2 +- ...sertTaxRuleIsAppliedToAllPricesDownloadable.php | 2 +- .../Constraint/AssertDownloadableDuplicateForm.php | 2 +- .../Constraint/AssertDownloadableLinksData.php | 2 +- .../Constraint/AssertDownloadableProductForm.php | 2 +- ...dableProductInCustomerWishlistOnBackendGrid.php | 2 +- .../Constraint/AssertDownloadableSamplesData.php | 2 +- ...erCheckoutDownloadableExcludingIncludingTax.php | 2 +- ...lationAfterCheckoutDownloadableExcludingTax.php | 2 +- ...lationAfterCheckoutDownloadableIncludingTax.php | 2 +- ...oAllPricesDownloadableExcludingIncludingTax.php | 2 +- ...sAppliedToAllPricesDownloadableExcludingTax.php | 2 +- ...sAppliedToAllPricesDownloadableIncludingTax.php | 2 +- .../Downloadable/Test/Fixture/Cart/Item.php | 2 +- .../Test/Fixture/DownloadableProduct.xml | 2 +- .../Test/Handler/DownloadableProduct/Curl.php | 2 +- .../DownloadableProductInterface.php | 2 +- .../Test/Handler/DownloadableProduct/Webapi.php | 2 +- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../Test/Page/DownloadableCustomerProducts.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Test/Repository/DownloadableProduct.xml | 2 +- .../DownloadableProduct/CheckoutData.xml | 2 +- .../Test/Repository/DownloadableProduct/Links.xml | 2 +- .../Repository/DownloadableProduct/Samples.xml | 2 +- .../CreateDownloadableProductEntityTest.php | 2 +- .../CreateDownloadableProductEntityTest.xml | 2 +- .../Test/TestCase/DeleteProductEntityTest.xml | 2 +- .../DeleteProductFromMiniShoppingCartTest.xml | 2 +- .../Test/TestCase/DuplicateProductEntityTest.xml | 2 +- .../Test/TestCase/TaxCalculationTest.xml | 2 +- .../UpdateDownloadableProductEntityTest.php | 2 +- .../UpdateDownloadableProductEntityTest.xml | 2 +- .../TestCase/ValidateOrderOfProductTypeTest.xml | 2 +- .../app/Magento/Downloadable/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Downloadable/Test/etc/di.xml | 2 +- .../Magento/Downloadable/Test/etc/webapi/di.xml | 2 +- .../Email/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Magento/Fedex/Test/Repository/ConfigData.xml | 2 +- .../Fedex/Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../TrackingShipmentForPlacedOrderTest.xml | 2 +- .../Test/Block/Adminhtml/Order/Create.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Form.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Form.xml | 2 +- .../Block/Adminhtml/Order/Create/GiftOptions.php | 2 +- .../Block/Adminhtml/Order/Create/GiftOptions.xml | 2 +- .../Test/Block/Adminhtml/Order/Create/Items.php | 2 +- .../Adminhtml/Order/Create/Items/ItemProduct.php | 2 +- .../Test/Block/Adminhtml/Order/View/Form.php | 2 +- .../Test/Block/Adminhtml/Order/View/Form.xml | 2 +- .../Block/Adminhtml/Order/View/GiftOptions.php | 2 +- .../Block/Adminhtml/Order/View/GiftOptions.xml | 2 +- .../Test/Block/Adminhtml/Order/View/Items.php | 2 +- .../Adminhtml/Order/View/Items/ItemProduct.php | 2 +- .../GiftMessage/Test/Block/Cart/GiftOptions.php | 2 +- .../Block/Cart/GiftOptions/GiftMessageForm.php | 2 +- .../Block/Cart/GiftOptions/GiftMessageForm.xml | 2 +- .../Test/Block/Cart/Item/GiftOptions.php | 2 +- .../Test/Block/Cart/Item/GiftOptions.xml | 2 +- .../Test/Block/Message/Order/Items/View.php | 2 +- .../GiftMessage/Test/Block/Message/Order/View.php | 2 +- .../Constraint/AssertGiftMessageInBackendOrder.php | 2 +- .../AssertGiftMessageInFrontendOrder.php | 2 +- .../AssertGiftMessageInFrontendOrderItems.php | 2 +- .../GiftMessage/Test/Fixture/GiftMessage.xml | 2 +- .../GiftMessage/Test/Fixture/GiftMessage/Items.php | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../GiftMessage/Test/Page/Adminhtml/OrderView.xml | 2 +- .../Magento/GiftMessage/Test/Page/CheckoutCart.xml | 2 +- .../GiftMessage/Test/Page/CustomerOrderView.xml | 2 +- .../GiftMessage/Test/Repository/ConfigData.xml | 2 +- .../GiftMessage/Test/Repository/GiftMessage.xml | 2 +- .../Test/TestCase/CheckoutWithGiftMessagesTest.php | 2 +- .../Test/TestCase/CheckoutWithGiftMessagesTest.xml | 2 +- .../Test/TestStep/AddGiftMessageBackendStep.php | 2 +- .../Test/TestStep/AddGiftMessageStep.php | 2 +- .../tests/app/Magento/GiftMessage/Test/etc/di.xml | 2 +- .../app/Magento/GiftMessage/Test/etc/testcase.xml | 2 +- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Adminhtml/Product/Composite/Configure.xml | 2 +- .../Product/Grouped/AssociatedProducts.php | 2 +- .../AssociatedProducts/ListAssociatedProducts.php | 2 +- .../ListAssociatedProducts/Product.php | 2 +- .../ListAssociatedProducts/Product.xml | 2 +- .../Grouped/AssociatedProducts/Search/Grid.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../GroupedProduct/Test/Block/Cart/Sidebar.php | 2 +- .../Test/Block/Cart/Sidebar/Item.php | 2 +- .../Test/Block/Catalog/Product/View.php | 2 +- .../Block/Catalog/Product/View/Type/Grouped.php | 2 +- .../GroupedProduct/Test/Block/Checkout/Cart.php | 2 +- .../Test/Block/Checkout/Cart/CartItem.php | 2 +- .../AbstractAssertPriceOnGroupedProductPage.php | 2 +- .../Test/Constraint/AssertGroupedProductForm.php | 2 +- ...oupedProductInCustomerWishlistOnBackendGrid.php | 2 +- .../AssertGroupedProductInItemsOrderedGrid.php | 2 +- .../Constraint/AssertGroupedProductsDefaultQty.php | 2 +- .../AssertSpecialPriceOnGroupedProductPage.php | 2 +- .../AssertTierPriceOnGroupedProductPage.php | 2 +- .../GroupedProduct/Test/Fixture/Cart/Item.php | 2 +- .../GroupedProduct/Test/Fixture/GroupedProduct.xml | 2 +- .../Test/Fixture/GroupedProduct/Associated.php | 2 +- .../Test/Handler/GroupedProduct/Curl.php | 2 +- .../GroupedProduct/GroupedProductInterface.php | 2 +- .../Test/Handler/GroupedProduct/Webapi.php | 2 +- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../GroupedProduct/Test/Page/CheckoutCart.xml | 2 +- .../Magento/GroupedProduct/Test/Page/CmsIndex.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Test/Repository/GroupedProduct.xml | 2 +- .../Test/Repository/GroupedProduct/Associated.xml | 2 +- .../Repository/GroupedProduct/CheckoutData.xml | 2 +- .../Test/Repository/GroupedProduct/Price.xml | 2 +- .../TestCase/CreateGroupedProductEntityTest.php | 2 +- .../TestCase/CreateGroupedProductEntityTest.xml | 2 +- .../Test/TestCase/DeleteProductEntityTest.xml | 2 +- .../DeleteProductFromMiniShoppingCartTest.xml | 2 +- .../TestCase/UpdateGroupedProductEntityTest.php | 2 +- .../TestCase/UpdateGroupedProductEntityTest.xml | 2 +- .../TestCase/ValidateOrderOfProductTypeTest.xml | 2 +- .../Magento/GroupedProduct/Test/etc/curl/di.xml | 2 +- .../Magento/GroupedProduct/Test/etc/webapi/di.xml | 2 +- .../Test/Block/Adminhtml/Export/Edit/Form.php | 2 +- .../Test/Block/Adminhtml/Export/Edit/Form.xml | 2 +- .../Test/Block/Adminhtml/Export/Filter.php | 2 +- .../AssertProductAttributeAbsenceForExport.php | 2 +- .../ImportExport/Test/Fixture/ImportExport.xml | 2 +- .../Test/Page/Adminhtml/AdminExportIndex.xml | 2 +- .../ImportExport/Test/Repository/ImportExport.xml | 2 +- .../Test/TestCase/NavigateMenuTest.xml | 2 +- .../tests/app/Magento/ImportExport/Test/etc/di.xml | 2 +- .../Indexer/Test/TestCase/NavigateMenuTest.xml | 2 +- .../app/Magento/Install/Test/Block/CreateAdmin.php | 2 +- .../app/Magento/Install/Test/Block/CreateAdmin.xml | 2 +- .../Magento/Install/Test/Block/CustomizeStore.php | 2 +- .../Magento/Install/Test/Block/CustomizeStore.xml | 2 +- .../app/Magento/Install/Test/Block/Database.php | 2 +- .../app/Magento/Install/Test/Block/Database.xml | 2 +- .../app/Magento/Install/Test/Block/Install.php | 2 +- .../app/Magento/Install/Test/Block/Landing.php | 2 +- .../app/Magento/Install/Test/Block/License.php | 2 +- .../app/Magento/Install/Test/Block/Readiness.php | 2 +- .../Install/Test/Block/WebConfiguration.php | 2 +- .../Install/Test/Block/WebConfiguration.xml | 2 +- .../Constraint/AssertAdminUriAutogenerated.php | 2 +- .../Test/Constraint/AssertAgreementTextPresent.php | 2 +- .../Test/Constraint/AssertCurrencySelected.php | 2 +- .../Install/Test/Constraint/AssertKeyCreated.php | 2 +- .../Test/Constraint/AssertLanguageSelected.php | 2 +- .../Test/Constraint/AssertRewritesEnabled.php | 2 +- .../Test/Constraint/AssertSecureUrlEnabled.php | 2 +- .../Test/Constraint/AssertSuccessInstall.php | 2 +- .../Constraint/AssertSuccessfulReadinessCheck.php | 2 +- .../app/Magento/Install/Test/Fixture/Install.xml | 2 +- .../app/Magento/Install/Test/Page/Install.xml | 2 +- .../Magento/Install/Test/TestCase/InstallTest.php | 2 +- .../Magento/Install/Test/TestCase/InstallTest.xml | 2 +- .../Adminhtml/Integration/Edit/IntegrationForm.php | 2 +- .../Adminhtml/Integration/Edit/IntegrationForm.xml | 2 +- .../Edit/IntegrationFormPageActions.php | 2 +- .../Block/Adminhtml/Integration/Edit/Tab/Api.php | 2 +- .../Adminhtml/Integration/IntegrationGrid.php | 2 +- .../Integration/IntegrationGrid/DeleteDialog.php | 2 +- .../Integration/IntegrationGrid/ResourcesPopup.php | 2 +- .../Integration/IntegrationGrid/ResourcesPopup.xml | 2 +- .../Integration/IntegrationGrid/TokensPopup.php | 2 +- .../Integration/IntegrationGrid/TokensPopup.xml | 2 +- .../AssertEmailValidationErrorGenerated.php | 2 +- .../Constraint/AssertIncorrectUserPassword.php | 2 +- .../Test/Constraint/AssertIntegrationForm.php | 2 +- .../Test/Constraint/AssertIntegrationInGrid.php | 2 +- ...ssertIntegrationNameDuplicationErrorMessage.php | 2 +- .../Test/Constraint/AssertIntegrationNotInGrid.php | 2 +- .../Constraint/AssertIntegrationResourcesPopup.php | 2 +- .../AssertIntegrationSuccessActivationMessage.php | 2 +- .../AssertIntegrationSuccessDeleteMessage.php | 2 +- .../AssertIntegrationSuccessReauthorizeMessage.php | 2 +- .../AssertIntegrationSuccessSaveMessage.php | 2 +- ...sertIntegrationSuccessSaveMessageNotPresent.php | 2 +- .../AssertIntegrationTokensAfterReauthorize.php | 2 +- .../Constraint/AssertIntegrationTokensPopup.php | 2 +- .../Test/Constraint/AssertNoAlertPopup.php | 2 +- .../Integration/Test/Fixture/Integration.xml | 2 +- .../Integration/Test/Handler/Integration/Curl.php | 2 +- .../Handler/Integration/IntegrationInterface.php | 2 +- .../Test/Page/Adminhtml/IntegrationIndex.xml | 2 +- .../Test/Page/Adminhtml/IntegrationNew.xml | 2 +- .../Integration/Test/Repository/Integration.xml | 2 +- .../TestCase/ActivateIntegrationEntityTest.php | 2 +- .../TestCase/ActivateIntegrationEntityTest.xml | 2 +- .../Test/TestCase/CreateIntegrationEntityTest.php | 2 +- .../Test/TestCase/CreateIntegrationEntityTest.xml | 2 +- .../CreateIntegrationWithDuplicatedNameTest.php | 2 +- .../CreateIntegrationWithDuplicatedNameTest.xml | 2 +- .../Test/TestCase/DeleteIntegrationEntityTest.php | 2 +- .../Test/TestCase/DeleteIntegrationEntityTest.xml | 2 +- .../Integration/Test/TestCase/NavigateMenuTest.xml | 2 +- .../ReAuthorizeTokensIntegrationEntityTest.php | 2 +- .../ReAuthorizeTokensIntegrationEntityTest.xml | 2 +- .../Test/TestCase/UpdateIntegrationEntityTest.php | 2 +- .../Test/TestCase/UpdateIntegrationEntityTest.xml | 2 +- .../app/Magento/Integration/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Integration/Test/etc/di.xml | 2 +- .../LayeredNavigation/Test/Block/Navigation.php | 2 +- .../Test/Constraint/AssertFilterProductList.php | 2 +- .../Test/Constraint/AssertProductsCount.php | 2 +- .../Test/Page/Category/CatalogCategoryView.xml | 2 +- .../LayeredNavigation/Test/Repository/Category.xml | 2 +- .../Test/Repository/ConfigData.xml | 2 +- .../Test/TestCase/FilterProductListTest.php | 2 +- .../Test/TestCase/FilterProductListTest.xml | 2 +- .../ProductsCountInLayeredNavigationTest.php | 2 +- .../ProductsCountInLayeredNavigationTest.xml | 2 +- .../Msrp/Test/Block/Product/ListProduct.php | 2 +- .../app/Magento/Msrp/Test/Block/Product/Map.php | 2 +- .../Test/Block/Product/ProductList/ProductItem.php | 2 +- .../app/Magento/Msrp/Test/Block/Product/View.php | 2 +- .../Test/Constraint/AssertMsrpInShoppingCart.php | 2 +- .../Test/Constraint/AssertMsrpOnCategoryPage.php | 2 +- .../Test/Constraint/AssertMsrpOnProductView.php | 2 +- .../Test/Page/Category/CatalogCategoryView.xml | 2 +- .../Msrp/Test/Page/Product/CatalogProductView.xml | 2 +- .../Msrp/Test/Repository/CatalogProductSimple.xml | 2 +- .../Magento/Msrp/Test/Repository/ConfigData.xml | 2 +- .../Msrp/Test/Repository/ConfigurableProduct.xml | 2 +- .../Magento/Msrp/Test/TestCase/ApplyMapTest.php | 2 +- .../Magento/Msrp/Test/TestCase/ApplyMapTest.xml | 2 +- .../Multishipping/Test/Block/Checkout/Address.php | 2 +- .../Test/Block/Checkout/Addresses.php | 2 +- .../Multishipping/Test/Block/Checkout/Billing.php | 2 +- .../Multishipping/Test/Block/Checkout/Link.php | 2 +- .../Multishipping/Test/Block/Checkout/Overview.php | 2 +- .../Multishipping/Test/Block/Checkout/Shipping.php | 2 +- .../Multishipping/Test/Block/Checkout/Success.php | 2 +- .../Constraint/AssertMultishippingAddresses.php | 2 +- ...ssertMultishippingOrderSuccessPlacedMessage.php | 2 +- .../Multishipping/Test/Page/CheckoutCart.xml | 2 +- .../MultishippingCheckoutAddressNewShipping.php | 2 +- .../Test/Page/MultishippingCheckoutAddresses.xml | 2 +- .../Test/Page/MultishippingCheckoutBilling.xml | 2 +- .../Test/Page/MultishippingCheckoutCart.php | 2 +- .../Test/Page/MultishippingCheckoutLogin.php | 2 +- .../Test/Page/MultishippingCheckoutOverview.xml | 2 +- .../Test/Page/MultishippingCheckoutRegister.php | 2 +- .../Test/Page/MultishippingCheckoutShipping.xml | 2 +- .../Test/Page/MultishippingCheckoutSuccess.xml | 2 +- .../Test/Page/MultishippingEditAddress.xml | 2 +- .../Test/TestStep/FillCustomerAddressesStep.php | 2 +- .../Test/TestStep/FillShippingInformationStep.php | 2 +- .../Multishipping/Test/TestStep/PlaceOrderStep.php | 2 +- .../ProceedToMultipleAddressCheckoutStep.php | 2 +- .../Test/TestStep/SelectPaymentMethodStep.php | 2 +- .../app/Magento/Multishipping/Test/etc/di.xml | 2 +- .../Test/Block/Adminhtml/Queue/Edit/QueueForm.php | 2 +- .../Test/Block/Adminhtml/Subscriber/Grid.php | 2 +- .../Block/Adminhtml/Template/FormPageActions.php | 2 +- .../Test/Block/Adminhtml/Template/Grid.php | 2 +- .../Block/Adminhtml/Template/GridPageActions.php | 2 +- .../Test/Block/Adminhtml/Template/Preview.php | 2 +- .../AssertCustomerIsSubscribedToNewsletter.php | 2 +- .../Test/Constraint/AssertNewsletterForm.php | 2 +- .../Test/Constraint/AssertNewsletterInGrid.php | 2 +- .../Test/Constraint/AssertNewsletterPreview.php | 2 +- .../Test/Constraint/AssertNewsletterQueue.php | 2 +- .../AssertNewsletterSuccessCreateMessage.php | 2 +- .../Magento/Newsletter/Test/Fixture/Template.xml | 2 +- .../Newsletter/Test/Handler/Template/Curl.php | 2 +- .../Test/Handler/Template/TemplateInterface.php | 2 +- .../Test/Page/Adminhtml/SubscriberIndex.xml | 2 +- .../Test/Page/Adminhtml/TemplateEdit.xml | 2 +- .../Test/Page/Adminhtml/TemplateIndex.xml | 2 +- .../Test/Page/Adminhtml/TemplateNewIndex.xml | 2 +- .../Test/Page/Adminhtml/TemplatePreview.xml | 2 +- .../Test/Page/Adminhtml/TemplateQueue.xml | 2 +- .../Newsletter/Test/Repository/Template.xml | 2 +- .../ActionNewsletterTemplateEntityTest.php | 2 +- .../ActionNewsletterTemplateEntityTest.xml | 2 +- .../CreateNewsletterTemplateEntityTest.php | 2 +- .../CreateNewsletterTemplateEntityTest.xml | 2 +- .../Newsletter/Test/TestCase/NavigateMenuTest.xml | 2 +- .../PreviewNewsletterTemplateEntityTest.php | 2 +- .../PreviewNewsletterTemplateEntityTest.xml | 2 +- .../Test/TestCase/UpdateNewsletterTemplateTest.php | 2 +- .../Test/TestCase/UpdateNewsletterTemplateTest.xml | 2 +- .../app/Magento/Newsletter/Test/etc/curl/di.xml | 2 +- .../OfflinePayments/Test/Repository/ConfigData.xml | 2 +- .../OfflineShipping/Test/Repository/ConfigData.xml | 2 +- .../app/Magento/PageCache/Test/Block/Cache.php | 2 +- .../PageCache/Test/Block/Cache/Additional.php | 2 +- .../Magento/PageCache/Test/Block/Cache/Grid.php | 2 +- .../Constraint/AssertCacheFlushSuccessMessage.php | 2 +- .../AssertCacheIsRefreshableAndInvalidated.php | 2 +- ...AssertFlushStaticFilesCacheButtonVisibility.php | 2 +- .../PageCache/Test/Page/Adminhtml/AdminCache.xml | 2 +- .../Test/TestCase/FlushAdditionalCachesTest.php | 2 +- .../Test/TestCase/FlushAdditionalCachesTest.xml | 2 +- .../FlushStaticFilesCacheButtonVisibilityTest.php | 2 +- .../FlushStaticFilesCacheButtonVisibilityTest.xml | 2 +- .../app/Magento/Payment/Test/Block/Form/Cc.php | 2 +- .../app/Magento/Payment/Test/Block/Form/Cc.xml | 2 +- .../Test/Constraint/AssertCardRequiredFields.php | 2 +- .../Test/Constraint/AssertFieldsAreActive.php | 2 +- .../Test/Constraint/AssertFieldsAreDisabled.php | 2 +- .../Test/Constraint/AssertFieldsAreEnabled.php | 2 +- .../Test/Constraint/AssertFieldsArePresent.php | 2 +- .../Magento/Payment/Test/Fixture/CreditCard.xml | 2 +- .../Payment/Test/Fixture/CreditCardAdmin.xml | 2 +- .../Magento/Payment/Test/Repository/CreditCard.xml | 2 +- .../Payment/Test/Repository/CreditCardAdmin.xml | 2 +- .../Test/TestCase/ConflictResolutionTest.php | 2 +- .../Test/TestCase/ConflictResolutionTest.xml | 2 +- .../tests/app/Magento/Payment/Test/etc/fixture.xml | 2 +- .../Magento/Paypal/Test/Block/Express/Review.php | 2 +- .../Express/Review/ShippingoptgroupElement.php | 2 +- .../Test/Block/Form/PayflowAdvanced/CcAdvanced.php | 2 +- .../Test/Block/Form/PayflowAdvanced/CcAdvanced.xml | 2 +- .../Test/Block/Form/PayflowAdvanced/CcLink.php | 2 +- .../Test/Block/Form/PayflowAdvanced/CcLink.xml | 2 +- .../Paypal/Test/Block/Sandbox/ExpressLogin.php | 2 +- .../Paypal/Test/Block/Sandbox/ExpressLogin.xml | 2 +- .../Paypal/Test/Block/Sandbox/ExpressMainLogin.php | 2 +- .../Test/Block/Sandbox/ExpressMainReview.php | 2 +- .../Paypal/Test/Block/Sandbox/ExpressOldLogin.php | 2 +- .../Paypal/Test/Block/Sandbox/ExpressOldLogin.xml | 2 +- .../Paypal/Test/Block/Sandbox/ExpressOldReview.php | 2 +- .../Paypal/Test/Block/Sandbox/ExpressReview.php | 2 +- .../Paypal/Test/Block/Sandbox/SignupAddCard.php | 2 +- .../Paypal/Test/Block/Sandbox/SignupAddCard.xml | 2 +- .../Paypal/Test/Block/Sandbox/SignupCreate.php | 2 +- .../Paypal/Test/Block/Sandbox/SignupCreate.xml | 2 +- .../Test/Block/Sandbox/SignupPersonalAccount.php | 2 +- .../Test/Block/Sandbox/SignupPersonalAccount.xml | 2 +- .../Test/Block/System/Config/ExpressCheckout.php | 2 +- .../Test/Block/System/Config/PayflowLink.php | 2 +- .../Paypal/Test/Block/System/Config/PayflowPro.php | 2 +- .../Test/Block/System/Config/PaymentsAdvanced.php | 2 +- .../Test/Block/System/Config/PaymentsPro.php | 2 +- .../Constraint/AssertExpressCancelledMessage.php | 2 +- .../Constraint/Sandbox/AssertTotalPaypalReview.php | 2 +- .../Paypal/Test/Fixture/SandboxCustomer.xml | 2 +- .../Adminhtml/SystemConfigEditSectionPayment.xml | 2 +- .../Magento/Paypal/Test/Page/CheckoutOnepage.xml | 2 +- .../Paypal/Test/Page/OrderReviewExpress.xml | 2 +- .../Paypal/Test/Page/Sandbox/AccountSignup.xml | 2 +- .../Paypal/Test/Page/Sandbox/ExpressReview.xml | 2 +- .../Paypal/Test/Page/Sandbox/SignupAddCard.xml | 2 +- .../Paypal/Test/Page/Sandbox/SignupCreate.xml | 2 +- .../Magento/Paypal/Test/Repository/ConfigData.xml | 2 +- .../Magento/Paypal/Test/Repository/CreditCard.xml | 2 +- .../Paypal/Test/Repository/SandboxCustomer.xml | 2 +- .../CreatePayFlowOrderBackendNegativeTest.php | 2 +- .../CreatePayFlowOrderBackendNegativeTest.xml | 2 +- .../TestCase/CreatePayFlowOrderCustomStoreTest.php | 2 +- .../TestCase/CreatePayFlowOrderCustomStoreTest.xml | 2 +- .../Test/TestCase/CreateVaultOrderBackendTest.xml | 2 +- .../ExpressCheckoutFromProductPageTest.php | 2 +- .../ExpressCheckoutFromProductPageTest.xml | 2 +- .../ExpressCheckoutFromShoppingCartTest.php | 2 +- .../ExpressCheckoutFromShoppingCartTest.xml | 2 +- .../Test/TestCase/ExpressCheckoutOnePageTest.php | 2 +- .../Test/TestCase/ExpressCheckoutOnePageTest.xml | 2 +- ...nContextExpressCheckoutFromShoppingCartTest.php | 2 +- ...nContextExpressCheckoutFromShoppingCartTest.xml | 2 +- .../InContextExpressOnePageCheckoutTest.php | 2 +- .../InContextExpressOnePageCheckoutTest.xml | 2 +- .../Paypal/Test/TestCase/ReorderUsingVaultTest.xml | 2 +- .../Test/TestCase/UseVaultOnCheckoutTest.xml | 2 +- .../Test/TestStep/CheckExpressConfigStep.php | 2 +- .../Test/TestStep/CheckPayflowLinkConfigStep.php | 2 +- .../Test/TestStep/CheckPayflowProConfigStep.php | 2 +- .../TestStep/CheckPaymentsAdvancedConfigStep.php | 2 +- .../Test/TestStep/CheckPaymentsProConfigStep.php | 2 +- .../CheckoutWithPaypalFromProductPageStep.php | 2 +- .../CheckoutWithPaypalFromShoppingCartStep.php | 2 +- .../Test/TestStep/ContinuePaypalCheckoutStep.php | 2 +- .../TestStep/ContinueToPaypalInContextStep.php | 2 +- .../Paypal/Test/TestStep/ContinueToPaypalStep.php | 2 +- .../Test/TestStep/CreateSandboxCustomerStep.php | 2 +- .../TestStep/ExpressCheckoutOrderPlaceStep.php | 2 +- .../Paypal/Test/TestStep/GetPlacedOrderIdStep.php | 2 +- ...ntextCheckoutWithPaypalFromShoppingCartStep.php | 2 +- .../tests/app/Magento/Paypal/Test/etc/di.xml | 2 +- .../tests/app/Magento/Paypal/Test/etc/testcase.xml | 2 +- .../Product/Edit/Tab/Images/VideoDialog.php | 2 +- .../Product/Edit/Tab/Images/VideoDialog.xml | 2 +- .../Adminhtml/Product/Edit/Tab/ImagesAndVideos.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Constraint/AssertGetVideoInfoDataIsCorrect.php | 2 +- .../Test/Constraint/AssertNoVideoCategoryView.php | 2 +- .../Test/Constraint/AssertNoVideoProductView.php | 2 +- .../Test/Constraint/AssertVideoCategoryView.php | 2 +- .../Test/Constraint/AssertVideoProductView.php | 2 +- .../Test/Fixture/CatalogProductSimple.xml | 2 +- .../Test/Fixture/Product/MediaGallery.php | 2 +- .../Test/Repository/CatalogProductSimple.xml | 2 +- .../ProductVideo/Test/Repository/ConfigData.xml | 2 +- .../Test/TestCase/AddProductVideoTest.php | 2 +- .../Test/TestCase/AddProductVideoTest.xml | 2 +- .../Test/TestCase/DeleteProductVideoTest.php | 2 +- .../Test/TestCase/DeleteProductVideoTest.xml | 2 +- .../Test/TestCase/UpdateProductVideoTest.php | 2 +- .../Test/TestCase/UpdateProductVideoTest.xml | 2 +- .../Test/Block/Adminhtml/AbstractFilter.php | 2 +- .../Test/Block/Adminhtml/Customer/AccountsGrid.php | 2 +- .../Block/Adminhtml/Customer/Counts/Filter.php | 2 +- .../Block/Adminhtml/Customer/Counts/Filter.xml | 2 +- .../Test/Block/Adminhtml/Customer/Counts/Grid.php | 2 +- .../Block/Adminhtml/Customer/Totals/Filter.php | 2 +- .../Block/Adminhtml/Customer/Totals/Filter.xml | 2 +- .../Test/Block/Adminhtml/Customer/Totals/Grid.php | 2 +- .../Block/Adminhtml/Product/Downloads/Grid.php | 2 +- .../Test/Block/Adminhtml/Product/Lowstock/Grid.php | 2 +- .../Test/Block/Adminhtml/Product/Sold/Grid.php | 2 +- .../Test/Block/Adminhtml/Product/Viewed/Filter.php | 2 +- .../Test/Block/Adminhtml/Product/Viewed/Filter.xml | 2 +- .../Block/Adminhtml/Product/Viewed/ProductGrid.php | 2 +- .../Block/Adminhtml/Refresh/Statistics/Grid.php | 2 +- .../Test/Block/Adminhtml/Review/Customer/Grid.php | 2 +- .../Test/Block/Adminhtml/Review/Products/Grid.php | 2 +- .../Adminhtml/Review/Products/Viewed/Filter.php | 2 +- .../Adminhtml/Review/Products/Viewed/Filter.xml | 2 +- .../Review/Products/Viewed/ProductGrid.php | 2 +- .../Test/Block/Adminhtml/Sales/Coupons/Action.php | 2 +- .../Test/Block/Adminhtml/Sales/Coupons/Filter.php | 2 +- .../Test/Block/Adminhtml/Sales/Coupons/Filter.xml | 2 +- .../Test/Block/Adminhtml/Sales/Coupons/Grid.php | 2 +- .../Test/Block/Adminhtml/Sales/Invoiced/Grid.php | 2 +- .../Adminhtml/Sales/Orders/Viewed/FilterGrid.php | 2 +- .../Block/Adminhtml/Sales/Refunded/FilterGrid.php | 2 +- .../Test/Block/Adminhtml/Sales/TaxRule/Action.php | 2 +- .../Test/Block/Adminhtml/Sales/TaxRule/Filter.php | 2 +- .../Test/Block/Adminhtml/Sales/TaxRule/Filter.xml | 2 +- .../Test/Block/Adminhtml/Sales/TaxRule/Grid.php | 2 +- .../Test/Block/Adminhtml/SearchTermsGrid.php | 2 +- .../Block/Adminhtml/Shopcart/Abandoned/Grid.php | 2 +- .../Test/Block/Adminhtml/Shopcart/Product/Grid.php | 2 +- .../Reports/Test/Block/Adminhtml/Viewed/Action.php | 2 +- .../AbstractAssertCustomerOrderReportResult.php | 2 +- .../AbstractAssertInvoiceReportResult.php | 2 +- .../Constraint/AbstractAssertSalesReportResult.php | 2 +- .../AssertAbandonedCartCustomerInfoResult.php | 2 +- .../Constraint/AssertBestsellerReportResult.php | 2 +- .../Test/Constraint/AssertCouponReportResult.php | 2 +- .../AssertCustomerOrderCountReportResult.php | 2 +- .../AssertCustomerOrderTotalReportResult.php | 2 +- .../Constraint/AssertDownloadsReportResult.php | 2 +- .../AssertInvoiceReportIntervalResult.php | 2 +- .../Constraint/AssertInvoiceReportTotalResult.php | 2 +- .../Constraint/AssertLowStockProductInGrid.php | 2 +- .../AssertNewAccountsReportTotalResult.php | 2 +- .../Test/Constraint/AssertOrderedProductResult.php | 2 +- .../Test/Constraint/AssertProductInCartResult.php | 2 +- .../AssertProductReportByCustomerInGrid.php | 2 +- .../AssertProductReportByCustomerNotInGrid.php | 2 +- .../AssertProductReviewIsAvailableForProduct.php | 2 +- .../AssertProductReviewReportIsVisibleInGrid.php | 2 +- .../AssertProductReviewsQtyByCustomer.php | 2 +- .../AssertProductViewsReportTotalResult.php | 2 +- .../AssertRefundReportIntervalResult.php | 2 +- .../Constraint/AssertSalesReportIntervalResult.php | 2 +- .../Constraint/AssertSalesReportTotalResult.php | 2 +- .../Test/Constraint/AssertSearchTermReportForm.php | 2 +- .../Test/Constraint/AssertSearchTermsInGrid.php | 2 +- .../Test/Constraint/AssertTaxReportInGrid.php | 2 +- .../Test/Constraint/AssertTaxReportNotInGrid.php | 2 +- .../Reports/Test/Page/Adminhtml/AbandonedCarts.xml | 2 +- .../Reports/Test/Page/Adminhtml/Bestsellers.xml | 2 +- .../Test/Page/Adminhtml/CustomerAccounts.xml | 2 +- .../Test/Page/Adminhtml/CustomerOrdersReport.xml | 2 +- .../Test/Page/Adminhtml/CustomerReportReview.xml | 2 +- .../Test/Page/Adminhtml/CustomerTotalsReport.xml | 2 +- .../Test/Page/Adminhtml/DownloadsReport.xml | 2 +- .../Test/Page/Adminhtml/OrderedProductsReport.xml | 2 +- .../Test/Page/Adminhtml/ProductLowStock.xml | 2 +- .../Test/Page/Adminhtml/ProductReportReview.xml | 2 +- .../Test/Page/Adminhtml/ProductReportView.xml | 2 +- .../Reports/Test/Page/Adminhtml/RefundsReport.xml | 2 +- .../Test/Page/Adminhtml/SalesCouponReportView.xml | 2 +- .../Test/Page/Adminhtml/SalesInvoiceReport.xml | 2 +- .../Reports/Test/Page/Adminhtml/SalesReport.xml | 2 +- .../Reports/Test/Page/Adminhtml/SalesTaxReport.xml | 2 +- .../Reports/Test/Page/Adminhtml/SearchIndex.xml | 2 +- .../Test/Page/Adminhtml/ShopCartProductReport.xml | 2 +- .../Reports/Test/Page/Adminhtml/Statistics.xml | 2 +- .../Magento/Reports/Test/Repository/ConfigData.xml | 2 +- .../TestCase/AbandonedCartsReportEntityTest.php | 2 +- .../TestCase/AbandonedCartsReportEntityTest.xml | 2 +- .../BestsellerProductsReportEntityTest.php | 2 +- .../BestsellerProductsReportEntityTest.xml | 2 +- .../TestCase/CustomerReviewReportEntityTest.php | 2 +- .../TestCase/CustomerReviewReportEntityTest.xml | 2 +- .../CustomersOrderCountReportEntityTest.php | 2 +- .../CustomersOrderCountReportEntityTest.xml | 2 +- .../CustomersOrderTotalReportEntityTest.php | 2 +- .../CustomersOrderTotalReportEntityTest.xml | 2 +- .../TestCase/DownloadProductsReportEntityTest.php | 2 +- .../TestCase/DownloadProductsReportEntityTest.xml | 2 +- .../TestCase/LowStockProductsReportEntityTest.php | 2 +- .../TestCase/LowStockProductsReportEntityTest.xml | 2 +- .../Reports/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Test/TestCase/NewAccountsReportEntityTest.php | 2 +- .../Test/TestCase/NewAccountsReportEntityTest.xml | 2 +- .../TestCase/OrderedProductsReportEntityTest.php | 2 +- .../TestCase/OrderedProductsReportEntityTest.xml | 2 +- .../TestCase/ProductReviewReportEntityTest.php | 2 +- .../TestCase/ProductReviewReportEntityTest.xml | 2 +- .../TestCase/ProductsInCartReportEntityTest.php | 2 +- .../TestCase/ProductsInCartReportEntityTest.xml | 2 +- .../Test/TestCase/SalesCouponReportEntityTest.php | 2 +- .../Test/TestCase/SalesCouponReportEntityTest.xml | 2 +- .../Test/TestCase/SalesInvoiceReportEntityTest.php | 2 +- .../Test/TestCase/SalesInvoiceReportEntityTest.xml | 2 +- .../Test/TestCase/SalesOrderReportEntityTest.php | 2 +- .../Test/TestCase/SalesOrderReportEntityTest.xml | 2 +- .../Test/TestCase/SalesRefundsReportEntityTest.php | 2 +- .../Test/TestCase/SalesRefundsReportEntityTest.xml | 2 +- .../Test/TestCase/SalesTaxReportEntityTest.php | 2 +- .../Test/TestCase/SalesTaxReportEntityTest.xml | 2 +- .../Test/TestCase/SearchTermsReportEntityTest.php | 2 +- .../Test/TestCase/SearchTermsReportEntityTest.xml | 2 +- .../TestCase/ViewedProductsReportEntityTest.php | 2 +- .../TestCase/ViewedProductsReportEntityTest.xml | 2 +- .../Block/Adminhtml/Customer/Edit/Tab/Reviews.php | 2 +- .../Test/Block/Adminhtml/Edit/CustomerForm.xml | 2 +- .../Test/Block/Adminhtml/Edit/RatingElement.php | 2 +- .../Test/Block/Adminhtml/FormPageActions.php | 2 +- .../Magento/Review/Test/Block/Adminhtml/Grid.php | 2 +- .../Adminhtml/Product/Edit/Section/Reviews.php | 2 +- .../Review/Test/Block/Adminhtml/Product/Grid.php | 2 +- .../Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- .../Block/Adminhtml/Rating/Edit/RatingForm.php | 2 +- .../Block/Adminhtml/Rating/Edit/RatingForm.xml | 2 +- .../Review/Test/Block/Adminhtml/Rating/Grid.php | 2 +- .../Review/Test/Block/Adminhtml/ReviewForm.php | 2 +- .../Review/Test/Block/Adminhtml/ReviewForm.xml | 2 +- .../app/Magento/Review/Test/Block/Product/View.php | 2 +- .../Review/Test/Block/Product/View/Summary.php | 2 +- .../app/Magento/Review/Test/Block/ReviewForm.php | 2 +- .../app/Magento/Review/Test/Block/ReviewForm.xml | 2 +- .../Test/Constraint/AssertProductRatingInGrid.php | 2 +- .../AssertProductRatingInProductPage.php | 2 +- .../Constraint/AssertProductRatingNotInGrid.php | 2 +- .../AssertProductRatingNotInProductPage.php | 2 +- .../Constraint/AssertProductRatingOnReviewPage.php | 2 +- .../AssertProductRatingSuccessDeleteMessage.php | 2 +- .../AssertProductRatingSuccessSaveMessage.php | 2 +- ...ssertProductReviewBackendSuccessSaveMessage.php | 2 +- .../Test/Constraint/AssertProductReviewForm.php | 2 +- .../Test/Constraint/AssertProductReviewInGrid.php | 2 +- .../AssertProductReviewInGridOnCustomerPage.php | 2 +- .../AssertProductReviewIsAbsentOnProductPage.php | 2 +- ...ProductReviewMassActionSuccessDeleteMessage.php | 2 +- ...AssertProductReviewMassActionSuccessMessage.php | 2 +- .../Constraint/AssertProductReviewNotInGrid.php | 2 +- .../AssertProductReviewNotOnProductPage.php | 2 +- .../AssertProductReviewOnProductPage.php | 2 +- .../AssertReviewCreationSuccessMessage.php | 2 +- .../AssertReviewLinksIsPresentOnProductPage.php | 2 +- .../Constraint/AssertReviewSuccessSaveMessage.php | 2 +- .../Constraint/AssertSetApprovedProductReview.php | 2 +- .../app/Magento/Review/Test/Fixture/Rating.xml | 2 +- .../app/Magento/Review/Test/Fixture/Review.xml | 2 +- .../Review/Test/Fixture/Review/EntityId.php | 2 +- .../Magento/Review/Test/Fixture/Review/Ratings.php | 2 +- .../Magento/Review/Test/Handler/Rating/Curl.php | 2 +- .../Review/Test/Handler/Rating/RatingInterface.php | 2 +- .../Magento/Review/Test/Handler/Review/Curl.php | 2 +- .../Review/Test/Handler/Review/ReviewInterface.php | 2 +- .../Review/Test/Page/Adminhtml/RatingEdit.xml | 2 +- .../Review/Test/Page/Adminhtml/RatingIndex.xml | 2 +- .../Review/Test/Page/Adminhtml/RatingNew.xml | 2 +- .../Review/Test/Page/Adminhtml/ReviewEdit.xml | 2 +- .../Review/Test/Page/Adminhtml/ReviewIndex.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../app/Magento/Review/Test/Repository/Rating.xml | 2 +- .../app/Magento/Review/Test/Repository/Review.xml | 2 +- .../TestCase/CreateProductRatingEntityTest.php | 2 +- .../TestCase/CreateProductRatingEntityTest.xml | 2 +- .../CreateProductReviewBackendEntityTest.php | 2 +- .../CreateProductReviewBackendEntityTest.xml | 2 +- .../CreateProductReviewFrontendEntityTest.php | 2 +- .../CreateProductReviewFrontendEntityTest.xml | 2 +- .../TestCase/DeleteProductRatingEntityTest.php | 2 +- .../TestCase/DeleteProductRatingEntityTest.xml | 2 +- .../ManageProductReviewFromCustomerPageTest.php | 2 +- .../ManageProductReviewFromCustomerPageTest.xml | 2 +- .../MassActionsProductReviewEntityTest.php | 2 +- .../MassActionsProductReviewEntityTest.xml | 2 +- .../TestCase/ModerateProductReviewEntityTest.php | 2 +- .../TestCase/ModerateProductReviewEntityTest.xml | 2 +- .../Review/Test/TestCase/NavigateMenuTest.xml | 2 +- .../UpdateProductReviewEntityOnProductPageTest.php | 2 +- .../UpdateProductReviewEntityOnProductPageTest.xml | 2 +- .../TestCase/UpdateProductReviewEntityTest.php | 2 +- .../TestCase/UpdateProductReviewEntityTest.xml | 2 +- .../tests/app/Magento/Review/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Review/Test/etc/di.xml | 2 +- .../Sales/Test/Block/Adminhtml/CreditMemo/Grid.php | 2 +- .../Sales/Test/Block/Adminhtml/Invoice/Grid.php | 2 +- .../Test/Block/Adminhtml/Order/AbstractForm.php | 2 +- .../Block/Adminhtml/Order/AbstractForm/Product.php | 2 +- .../Test/Block/Adminhtml/Order/AbstractItems.php | 2 +- .../Adminhtml/Order/AbstractItemsNewBlock.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/Actions.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/Create.php | 2 +- .../Adminhtml/Order/Create/Billing/Address.php | 2 +- .../Adminhtml/Order/Create/Billing/Address.xml | 2 +- .../Adminhtml/Order/Create/Billing/Method.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Coupons.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Customer.php | 2 +- .../Adminhtml/Order/Create/CustomerActivities.php | 2 +- .../Order/Create/CustomerActivities/Sidebar.php | 2 +- .../Sidebar/LastOrderedItems.php | 2 +- .../Sidebar/ProductsInComparison.php | 2 +- .../Sidebar/RecentlyComparedProducts.php | 2 +- .../Sidebar/RecentlyViewedItems.php | 2 +- .../Sidebar/RecentlyViewedProducts.php | 2 +- .../Sidebar/ShoppingCartItems.php | 2 +- .../Block/Adminhtml/Order/Create/Form/Account.php | 2 +- .../Block/Adminhtml/Order/Create/Form/Account.xml | 2 +- .../Test/Block/Adminhtml/Order/Create/Items.php | 2 +- .../Adminhtml/Order/Create/Items/ItemProduct.php | 2 +- .../Adminhtml/Order/Create/Items/ItemProduct.xml | 2 +- .../Block/Adminhtml/Order/Create/Search/Grid.php | 2 +- .../Adminhtml/Order/Create/Shipping/Address.php | 2 +- .../Adminhtml/Order/Create/Shipping/Method.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Store.php | 2 +- .../Test/Block/Adminhtml/Order/Create/Totals.php | 2 +- .../Test/Block/Adminhtml/Order/Creditmemo/Form.php | 2 +- .../Test/Block/Adminhtml/Order/Creditmemo/Form.xml | 2 +- .../Adminhtml/Order/Creditmemo/Form/Items.php | 2 +- .../Order/Creditmemo/Form/Items/Product.php | 2 +- .../Order/Creditmemo/Form/Items/Product.xml | 2 +- .../Test/Block/Adminhtml/Order/Creditmemo/Grid.php | 2 +- .../Block/Adminhtml/Order/Creditmemo/Totals.php | 2 +- .../Adminhtml/Order/Creditmemo/View/Items.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/Grid.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/History.php | 2 +- .../Test/Block/Adminhtml/Order/Invoice/Form.php | 2 +- .../Test/Block/Adminhtml/Order/Invoice/Form.xml | 2 +- .../Block/Adminhtml/Order/Invoice/Form/Items.php | 2 +- .../Adminhtml/Order/Invoice/Form/Items/Product.php | 2 +- .../Adminhtml/Order/Invoice/Form/Items/Product.xml | 2 +- .../Test/Block/Adminhtml/Order/Invoice/Grid.php | 2 +- .../Test/Block/Adminhtml/Order/Invoice/Totals.php | 2 +- .../Block/Adminhtml/Order/Invoice/View/Items.php | 2 +- .../Test/Block/Adminhtml/Order/Shipment/Totals.php | 2 +- .../Block/Adminhtml/Order/Shipment/View/Items.php | 2 +- .../Adminhtml/Order/Status/Assign/AssignForm.php | 2 +- .../Adminhtml/Order/Status/Assign/AssignForm.xml | 2 +- .../Adminhtml/Order/Status/GridPageActions.php | 2 +- .../Test/Block/Adminhtml/Order/StatusGrid.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/Totals.php | 2 +- .../Block/Adminhtml/Order/Transactions/Grid.php | 2 +- .../Test/Block/Adminhtml/Order/View/Addresses.php | 2 +- .../Sales/Test/Block/Adminhtml/Order/View/Info.php | 2 +- .../Test/Block/Adminhtml/Order/View/Items.php | 2 +- .../Test/Block/Adminhtml/Order/View/OrderForm.php | 2 +- .../Test/Block/Adminhtml/Order/View/OrderForm.xml | 2 +- .../Block/Adminhtml/Order/View/Tab/CreditMemos.php | 2 +- .../Adminhtml/Order/View/Tab/CreditMemos/Grid.php | 2 +- .../Test/Block/Adminhtml/Order/View/Tab/Info.php | 2 +- .../Order/View/Tab/Info/PaymentInfoBlock.php | 2 +- .../Order/View/Tab/Info/ShippingInfoBlock.php | 2 +- .../Block/Adminhtml/Order/View/Tab/Invoices.php | 2 +- .../Adminhtml/Order/View/Tab/Invoices/Grid.php | 2 +- .../Block/Adminhtml/Order/View/Tab/Shipments.php | 2 +- .../Adminhtml/Order/View/Tab/Shipments/Grid.php | 2 +- .../Adminhtml/Order/View/Tab/Transactions.php | 2 +- .../Adminhtml/Order/View/Tab/Transactions/Grid.php | 2 +- .../Test/Block/Adminhtml/Report/Filter/Form.php | 2 +- .../Test/Block/Adminhtml/Report/Filter/Form.xml | 2 +- .../app/Magento/Sales/Test/Block/Order/History.php | 2 +- .../app/Magento/Sales/Test/Block/Order/Info.php | 2 +- .../app/Magento/Sales/Test/Block/Order/Items.php | 2 +- .../app/Magento/Sales/Test/Block/Order/View.php | 2 +- .../Sales/Test/Block/Order/View/ActionsToolbar.php | 2 +- .../Magento/Sales/Test/Block/Widget/Guest/Form.php | 2 +- .../Magento/Sales/Test/Block/Widget/Guest/Form.xml | 2 +- .../Sales/Test/Constraint/AbstractAssertItems.php | 2 +- .../Constraint/AbstractAssertOrderOnFrontend.php | 2 +- ...AssertAcceptPaymentMessageInCommentsHistory.php | 2 +- .../AssertAcceptPaymentSuccessMessagePresent.php | 2 +- .../AssertAuthorizationInCommentsHistory.php | 2 +- .../Constraint/AssertCaptureInCommentsHistory.php | 2 +- .../Test/Constraint/AssertCreditMemoButton.php | 2 +- .../Test/Constraint/AssertCreditMemoItems.php | 2 +- .../AssertDenyPaymentMessageInCommentsHistory.php | 2 +- .../AssertDenyPaymentSuccessMessagePresent.php | 2 +- .../Constraint/AssertInvoiceInInvoicesGrid.php | 2 +- .../Test/Constraint/AssertInvoiceInInvoicesTab.php | 2 +- .../Sales/Test/Constraint/AssertInvoiceItems.php | 2 +- .../AssertInvoiceSuccessCreateMessage.php | 2 +- .../AssertInvoiceWithShipmentSuccessMessage.php | 2 +- .../Constraint/AssertInvoicedAmountOnFrontend.php | 2 +- .../Test/Constraint/AssertNoCreditMemoButton.php | 2 +- .../Test/Constraint/AssertNoInvoiceButton.php | 2 +- .../Sales/Test/Constraint/AssertOrderAddresses.php | 2 +- .../Constraint/AssertOrderButtonsAvailable.php | 2 +- .../Constraint/AssertOrderButtonsUnavailable.php | 2 +- .../AssertOrderCancelMassActionFailMessage.php | 2 +- .../AssertOrderCancelMassActionSuccessMessage.php | 2 +- .../Constraint/AssertOrderCancelSuccessMessage.php | 2 +- .../Test/Constraint/AssertOrderGrandTotal.php | 2 +- .../Test/Constraint/AssertOrderGrandTotalBase.php | 2 +- .../Test/Constraint/AssertOrderInOrdersGrid.php | 2 +- .../AssertOrderInOrdersGridOnFrontend.php | 2 +- .../AssertOrderItemsPagerDisplayedOnFrontend.php | 2 +- .../AssertOrderItemsPagerHiddenOnFrontend.php | 2 +- .../AssertOrderMassOnHoldSuccessMessage.php | 2 +- .../Test/Constraint/AssertOrderNotInOrdersGrid.php | 2 +- .../AssertOrderNotVisibleOnMyAccount.php | 2 +- .../Constraint/AssertOrderOnHoldFailMessage.php | 2 +- .../Constraint/AssertOrderOnHoldSuccessMessage.php | 2 +- .../Constraint/AssertOrderReleaseFailMessage.php | 2 +- .../AssertOrderReleaseSuccessMessage.php | 2 +- .../AssertOrderStatusDuplicateStatus.php | 2 +- .../Test/Constraint/AssertOrderStatusInGrid.php | 2 +- .../Test/Constraint/AssertOrderStatusIsCorrect.php | 2 +- .../Constraint/AssertOrderStatusNotAssigned.php | 2 +- .../AssertOrderStatusSuccessAssignMessage.php | 2 +- .../AssertOrderStatusSuccessCreateMessage.php | 2 +- .../AssertOrderStatusSuccessUnassignMessage.php | 2 +- .../Constraint/AssertOrderSuccessCreateMessage.php | 2 +- .../Test/Constraint/AssertOrdersInOrdersGrid.php | 2 +- .../Constraint/AssertProductInItemsOrderedGrid.php | 2 +- .../Constraint/AssertRefundInCommentsHistory.php | 2 +- .../Constraint/AssertRefundInCreditMemoTab.php | 2 +- .../Test/Constraint/AssertRefundInRefundsGrid.php | 2 +- .../AssertRefundOrderStatusInCommentsHistory.php | 2 +- .../AssertRefundSuccessCreateMessage.php | 2 +- .../AssertRefundedGrandTotalOnFrontend.php | 2 +- .../AssertReorderButtonIsNotVisibleOnFrontend.php | 2 +- .../Constraint/AssertReorderStatusIsCorrect.php | 2 +- .../AssertSalesPrintOrderBillingAddress.php | 2 +- .../Constraint/AssertSalesPrintOrderGrandTotal.php | 2 +- .../AssertSalesPrintOrderPaymentMethod.php | 2 +- .../Constraint/AssertSalesPrintOrderProducts.php | 2 +- .../Test/Constraint/AssertTransactionDetails.php | 2 +- .../Sales/Test/Constraint/AssertUnholdButton.php | 2 +- .../Magento/Sales/Test/Fixture/OrderInjectable.xml | 2 +- .../Fixture/OrderInjectable/BillingAddressId.php | 2 +- .../Test/Fixture/OrderInjectable/CouponCode.php | 2 +- .../Test/Fixture/OrderInjectable/CustomerId.php | 2 +- .../Test/Fixture/OrderInjectable/EntityId.php | 2 +- .../Sales/Test/Fixture/OrderInjectable/StoreId.php | 2 +- .../app/Magento/Sales/Test/Fixture/OrderStatus.xml | 2 +- .../Sales/Test/Handler/OrderInjectable/Curl.php | 2 +- .../OrderInjectable/OrderInjectableInterface.php | 2 +- .../Sales/Test/Handler/OrderInjectable/Webapi.php | 2 +- .../Sales/Test/Handler/OrderStatus/Curl.php | 2 +- .../Handler/OrderStatus/OrderStatusInterface.php | 2 +- .../Sales/Test/Page/Adminhtml/CreditMemoIndex.xml | 2 +- .../Sales/Test/Page/Adminhtml/InvoiceIndex.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- .../Test/Page/Adminhtml/OrderCreditMemoNew.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderIndex.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderInvoiceNew.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderInvoiceView.xml | 2 +- .../Test/Page/Adminhtml/OrderStatusAssign.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderStatusEdit.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderStatusIndex.xml | 2 +- .../Sales/Test/Page/Adminhtml/OrderStatusNew.xml | 2 +- .../Test/Page/Adminhtml/SalesCreditMemoView.xml | 2 +- .../Sales/Test/Page/Adminhtml/SalesInvoiceView.xml | 2 +- .../Sales/Test/Page/Adminhtml/SalesOrderView.xml | 2 +- .../app/Magento/Sales/Test/Page/CreditMemoView.xml | 2 +- .../Magento/Sales/Test/Page/CustomerOrderView.xml | 2 +- .../app/Magento/Sales/Test/Page/InvoiceView.xml | 2 +- .../app/Magento/Sales/Test/Page/OrderHistory.xml | 2 +- .../app/Magento/Sales/Test/Page/SalesGuestForm.xml | 2 +- .../Magento/Sales/Test/Page/SalesGuestPrint.xml | 2 +- .../app/Magento/Sales/Test/Page/SalesGuestView.xml | 2 +- .../Sales/Test/Page/SalesOrderShipmentNew.php | 2 +- .../Magento/Sales/Test/Repository/ConfigData.xml | 2 +- .../Sales/Test/Repository/OrderInjectable.xml | 2 +- .../Test/Repository/OrderInjectable/Price.xml | 2 +- .../Magento/Sales/Test/Repository/OrderStatus.xml | 2 +- .../Test/TestCase/AssignCustomOrderStatusTest.php | 2 +- .../Test/TestCase/AssignCustomOrderStatusTest.xml | 2 +- .../Sales/Test/TestCase/CancelCreatedOrderTest.php | 2 +- .../Sales/Test/TestCase/CancelCreatedOrderTest.xml | 2 +- .../Test/TestCase/CreateCreditMemoEntityTest.php | 2 +- .../Test/TestCase/CreateCreditMemoEntityTest.xml | 2 +- .../TestCase/CreateCustomOrderStatusEntityTest.php | 2 +- .../TestCase/CreateCustomOrderStatusEntityTest.xml | 2 +- .../Test/TestCase/CreateInvoiceEntityTest.php | 2 +- .../Test/TestCase/CreateInvoiceEntityTest.xml | 2 +- .../TestCase/CreateOnlineInvoiceEntityTest.php | 2 +- .../Sales/Test/TestCase/CreateOrderBackendTest.php | 2 +- .../Sales/Test/TestCase/CreateOrderBackendTest.xml | 2 +- .../Sales/Test/TestCase/FrontendOrderPagerTest.php | 2 +- .../Sales/Test/TestCase/FrontendOrderPagerTest.xml | 2 +- .../Sales/Test/TestCase/GridFilteringTest.xml | 2 +- .../Sales/Test/TestCase/GridFullTextSearchTest.xml | 2 +- .../Sales/Test/TestCase/GridSortingTest.xml | 2 +- .../Sales/Test/TestCase/HoldCreatedOrderTest.php | 2 +- .../Sales/Test/TestCase/HoldCreatedOrderTest.xml | 2 +- .../Sales/Test/TestCase/MassOrdersUpdateTest.php | 2 +- .../Sales/Test/TestCase/MassOrdersUpdateTest.xml | 2 +- .../MoveLastOrderedProductsOnOrderPageTest.php | 2 +- .../MoveLastOrderedProductsOnOrderPageTest.xml | 2 +- .../MoveProductsInComparedOnOrderPageTest.php | 2 +- .../MoveProductsInComparedOnOrderPageTest.xml | 2 +- ...MoveRecentlyComparedProductsOnOrderPageTest.php | 2 +- ...MoveRecentlyComparedProductsOnOrderPageTest.xml | 2 +- .../MoveRecentlyViewedProductsOnOrderPageTest.php | 2 +- .../MoveRecentlyViewedProductsOnOrderPageTest.xml | 2 +- .../MoveShoppingCartProductsOnOrderPageTest.php | 2 +- .../MoveShoppingCartProductsOnOrderPageTest.xml | 2 +- .../Sales/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Test/TestCase/PrintOrderFrontendGuestTest.php | 2 +- .../Test/TestCase/PrintOrderFrontendGuestTest.xml | 2 +- .../Sales/Test/TestCase/ReorderOrderEntityTest.php | 2 +- .../Sales/Test/TestCase/ReorderOrderEntityTest.xml | 2 +- .../TestCase/UnassignCustomOrderStatusTest.php | 2 +- .../TestCase/UnassignCustomOrderStatusTest.xml | 2 +- .../Test/TestCase/UpdateCustomOrderStatusTest.php | 2 +- .../Test/TestCase/UpdateCustomOrderStatusTest.xml | 2 +- .../Sales/Test/TestStep/AddProductsStep.php | 2 +- .../AddRecentlyViewedProductsToCartStep.php | 2 +- .../Sales/Test/TestStep/ConfigureProductsStep.php | 2 +- .../Sales/Test/TestStep/CreateCreditMemoStep.php | 2 +- .../Sales/Test/TestStep/CreateInvoiceStep.php | 2 +- .../Sales/Test/TestStep/CreateNewOrderStep.php | 2 +- .../Sales/Test/TestStep/CreateOrderStep.php | 2 +- .../Sales/Test/TestStep/CreateShipmentStep.php | 2 +- .../Test/TestStep/FillAccountInformationStep.php | 2 +- .../Sales/Test/TestStep/FillBillingAddressStep.php | 2 +- .../Test/TestStep/FillShippingAddressStep.php | 2 +- .../app/Magento/Sales/Test/TestStep/OnHoldStep.php | 2 +- .../Magento/Sales/Test/TestStep/OpenOrderStep.php | 2 +- .../OpenSalesOrderOnFrontendForGuestStep.php | 2 +- .../Sales/Test/TestStep/OpenSalesOrdersStep.php | 2 +- .../Test/TestStep/PrintOrderOnFrontendStep.php | 2 +- .../Magento/Sales/Test/TestStep/ReorderStep.php | 2 +- .../Test/TestStep/SelectCustomerOrderStep.php | 2 +- .../TestStep/SelectPaymentMethodForOrderStep.php | 2 +- .../TestStep/SelectShippingMethodForOrderStep.php | 2 +- .../Test/TestStep/SelectStoreFrontendStep.php | 2 +- .../Sales/Test/TestStep/SelectStoreStep.php | 2 +- .../Test/TestStep/SubmitOrderNegativeStep.php | 2 +- .../Sales/Test/TestStep/SubmitOrderStep.php | 2 +- .../Sales/Test/TestStep/UpdateProductsDataStep.php | 2 +- .../tests/app/Magento/Sales/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Sales/Test/etc/di.xml | 2 +- .../tests/app/Magento/Sales/Test/etc/testcase.xml | 2 +- .../tests/app/Magento/Sales/Test/etc/webapi/di.xml | 2 +- .../SalesRule/Test/Block/Adminhtml/Promo/Grid.php | 2 +- .../Adminhtml/Promo/Quote/Edit/PromoQuoteForm.php | 2 +- .../Adminhtml/Promo/Quote/Edit/PromoQuoteForm.xml | 2 +- .../Section/BlockPromoSalesRuleEditTabCoupons.php | 2 +- .../BlockPromoSalesRuleEditTabCoupons/Grid.php | 2 +- .../Promo/Quote/Edit/Section/Conditions.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Section/Labels.php | 2 +- .../Promo/Quote/Edit/Section/RuleInformation.php | 2 +- .../Magento/SalesRule/Test/Block/Order/Items.php | 2 +- .../Magento/SalesRule/Test/Block/Order/View.php | 2 +- .../Constraint/AssertCartPriceRuleApplying.php | 2 +- .../AssertCartPriceRuleConditionIsApplied.php | 2 +- .../AssertCartPriceRuleConditionIsNotApplied.php | 2 +- .../Test/Constraint/AssertCartPriceRuleForm.php | 2 +- .../AssertCartPriceRuleFreeShippingIsApplied.php | 2 +- .../AssertCartPriceRuleIsNotPresentedInGrid.php | 2 +- .../AssertCartPriceRuleSuccessDeleteMessage.php | 2 +- .../AssertCartPriceRuleSuccessSaveMessage.php | 2 +- .../AssertCouponCodeSuccessGeneratedMessage.php | 2 +- .../Constraint/AssertSalesRuleOnPrintOrder.php | 2 +- .../Test/Constraint/AssertUsesPerCoupon.php | 2 +- .../Magento/SalesRule/Test/Fixture/SalesRule.xml | 2 +- .../Fixture/SalesRule/ConditionsSerialized.php | 2 +- .../SalesRule/Test/Handler/SalesRule/Curl.php | 2 +- .../Test/Handler/SalesRule/SalesRuleInterface.php | 2 +- .../SalesRule/Test/Handler/SalesRule/Webapi.php | 2 +- .../Test/Page/Adminhtml/PromoQuoteEdit.xml | 2 +- .../Test/Page/Adminhtml/PromoQuoteIndex.xml | 2 +- .../Test/Page/Adminhtml/PromoQuoteNew.xml | 2 +- .../SalesRule/Test/Page/SalesGuestPrint.xml | 2 +- .../SalesRule/Test/Repository/SalesRule.xml | 2 +- .../TestCase/ApplySeveralSalesRuleEntityTest.php | 2 +- .../TestCase/ApplySeveralSalesRuleEntityTest.xml | 2 +- .../Test/TestCase/CreateSalesRuleEntityTest.php | 2 +- .../Test/TestCase/CreateSalesRuleEntityTest.xml | 2 +- .../Test/TestCase/DeleteSalesRuleEntityTest.php | 2 +- .../Test/TestCase/DeleteSalesRuleEntityTest.xml | 2 +- .../SalesRule/Test/TestCase/NavigateMenuTest.xml | 2 +- ...aymentMethodDataPersistenceWithDiscountTest.php | 2 +- .../TestCase/OnePageCheckoutWithDiscountTest.php | 2 +- .../TestCase/ShoppingCartWithFreeShippingTest.php | 2 +- .../TestCase/ShoppingCartWithFreeShippingTest.xml | 2 +- .../Test/TestCase/UpdateSalesRuleEntityTest.php | 2 +- .../Test/TestCase/UpdateSalesRuleEntityTest.xml | 2 +- .../Test/TestStep/ApplySalesRuleOnBackendStep.php | 2 +- .../Test/TestStep/ApplySalesRuleOnCheckoutStep.php | 2 +- .../Test/TestStep/ApplySalesRuleOnFrontendStep.php | 2 +- .../Test/TestStep/CreateSalesRuleStep.php | 2 +- .../Test/TestStep/DeleteAllSalesRuleStep.php | 2 +- .../app/Magento/SalesRule/Test/etc/curl/di.xml | 2 +- .../app/Magento/SalesRule/Test/etc/testcase.xml | 2 +- .../app/Magento/SalesRule/Test/etc/webapi/di.xml | 2 +- .../Adminhtml/Block/Edit/SynonymGroupForm.php | 2 +- .../Adminhtml/Block/Edit/SynonymGroupForm.xml | 2 +- .../Block/Adminhtml/Block/SynonymGroupGrid.php | 2 +- .../Constraint/AssertSynonymGroupDeleteMessage.php | 2 +- .../Test/Constraint/AssertSynonymGroupInGrid.php | 2 +- .../AssertSynonymGroupSuccessSaveMessage.php | 2 +- .../Constraint/AssertSynonymMergeErrorMessage.php | 2 +- .../Magento/Search/Test/Fixture/SynonymGroup.xml | 2 +- .../Search/Test/Fixture/SynonymGroup/ScopeId.php | 2 +- .../Search/Test/Handler/SynonymGroup/Curl.php | 2 +- .../Handler/SynonymGroup/SynonymGroupInterface.php | 2 +- .../Test/Page/Adminhtml/SynonymGroupIndex.xml | 2 +- .../Search/Test/Page/Adminhtml/SynonymGroupNew.xml | 2 +- .../Search/Test/Repository/SynonymGroup.xml | 2 +- .../Test/TestCase/CreateSynonymGroupEntityTest.php | 2 +- .../Test/TestCase/CreateSynonymGroupEntityTest.xml | 2 +- .../Test/TestCase/DeleteSynonymGroupEntityTest.php | 2 +- .../Test/TestCase/DeleteSynonymGroupEntityTest.xml | 2 +- .../Test/TestCase/MergeSynonymGroupEntityTest.php | 2 +- .../Test/TestCase/MergeSynonymGroupEntityTest.xml | 2 +- .../Test/TestCase/UpdateSynonymGroupEntityTest.php | 2 +- .../Test/TestCase/UpdateSynonymGroupEntityTest.xml | 2 +- .../tests/app/Magento/Search/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Search/Test/etc/di.xml | 2 +- .../Security/Test/Block/Form/ForgotPassword.php | 2 +- .../Security/Test/Block/Form/ForgotPassword.xml | 2 +- .../Test/Constraint/AssertCustomerIsLocked.php | 2 +- .../AssertCustomerResetPasswordFailed.php | 2 +- .../AssertPasswordIsNotSecureEnoughMessage.php | 2 +- .../AssertPasswordLengthErrorMessage.php | 2 +- .../Test/Constraint/AssertUserIsLocked.php | 2 +- .../Constraint/AssertUserPasswordResetFailed.php | 2 +- .../Test/Page/UserAccountForgotPassword.php | 2 +- .../Security/Test/Repository/ConfigData.xml | 2 +- ...LockAdminUserWhenCreatingNewIntegrationTest.php | 2 +- ...LockAdminUserWhenCreatingNewIntegrationTest.xml | 2 +- .../LockAdminUserWhenCreatingNewRoleTest.php | 2 +- .../LockAdminUserWhenCreatingNewRoleTest.xml | 2 +- .../Test/TestCase/LockCustomerOnEditPageTest.php | 2 +- .../Test/TestCase/LockCustomerOnEditPageTest.xml | 2 +- .../Test/TestCase/LockCustomerOnLoginPageTest.php | 2 +- .../Test/TestCase/LockCustomerOnLoginPageTest.xml | 2 +- .../TestCase/NewCustomerPasswordComplexityTest.php | 2 +- .../TestCase/NewCustomerPasswordComplexityTest.xml | 2 +- .../TestCase/ResetCustomerPasswordFailedTest.php | 2 +- .../TestCase/ResetCustomerPasswordFailedTest.xml | 2 +- .../Test/TestCase/ResetUserPasswordFailedTest.php | 2 +- .../Test/TestCase/ResetUserPasswordFailedTest.xml | 2 +- .../Magento/Shipping/Test/Block/Adminhtml/Form.php | 2 +- .../Magento/Shipping/Test/Block/Adminhtml/Form.xml | 2 +- .../Shipping/Test/Block/Adminhtml/Form/Items.php | 2 +- .../Test/Block/Adminhtml/Form/Items/Product.php | 2 +- .../Test/Block/Adminhtml/Form/Items/Product.xml | 2 +- .../Test/Block/Adminhtml/Order/Tracking.php | 2 +- .../Test/Block/Adminhtml/Order/Tracking/Item.php | 2 +- .../Test/Block/Adminhtml/Order/Tracking/Item.xml | 2 +- .../Block/Adminhtml/Order/TrackingInfoTable.php | 2 +- .../Test/Block/Adminhtml/Shipment/Grid.php | 2 +- .../Shipping/Test/Block/Adminhtml/View/Items.php | 2 +- .../app/Magento/Shipping/Test/Block/Order/Info.php | 2 +- .../Magento/Shipping/Test/Block/Order/Shipment.php | 2 +- .../Shipping/Test/Block/Order/Shipment/Items.php | 2 +- .../Test/Constraint/AssertNoShipButton.php | 2 +- .../Test/Constraint/AssertShipTotalQuantity.php | 2 +- .../Constraint/AssertShipmentInShipmentsGrid.php | 2 +- .../Constraint/AssertShipmentInShipmentsTab.php | 2 +- .../Test/Constraint/AssertShipmentItems.php | 2 +- .../AssertShipmentSuccessCreateMessage.php | 2 +- .../AssertShippingMethodOnPrintOrder.php | 2 +- .../Constraint/AssertTrackingDetailsIsPresent.php | 2 +- .../app/Magento/Shipping/Test/Fixture/Method.php | 2 +- .../Test/Page/Adminhtml/OrderShipmentNew.xml | 2 +- .../Test/Page/Adminhtml/OrderShipmentView.xml | 2 +- .../Test/Page/Adminhtml/SalesShipmentView.xml | 2 +- .../Shipping/Test/Page/Adminhtml/ShipmentIndex.xml | 2 +- .../Magento/Shipping/Test/Page/SalesGuestPrint.xml | 2 +- .../Magento/Shipping/Test/Page/ShipmentView.xml | 2 +- .../Shipping/Test/Repository/ConfigData.xml | 2 +- .../Magento/Shipping/Test/Repository/Method.php | 2 +- .../Test/TestCase/CreateShipmentEntityTest.php | 2 +- .../Test/TestCase/CreateShipmentEntityTest.xml | 2 +- .../TrackingShipmentForPlacedOrderTest.php | 2 +- .../TrackingShipmentForPlacedOrderTest.xml | 2 +- .../Test/TestStep/AddTrackingNumberStep.php | 2 +- .../tests/app/Magento/Shipping/Test/etc/di.xml | 2 +- .../app/Magento/Shipping/Test/etc/testcase.xml | 2 +- .../Sitemap/Test/Block/Adminhtml/SitemapGrid.php | 2 +- .../Test/Block/Adminhtml/SitemapPageActions.php | 2 +- .../Test/Constraint/AssertSitemapContent.php | 2 +- .../AssertSitemapFailFolderSaveMessage.php | 2 +- .../AssertSitemapFailPathSaveMessage.php | 2 +- .../Test/Constraint/AssertSitemapInGrid.php | 2 +- .../Test/Constraint/AssertSitemapNotInGrid.php | 2 +- .../AssertSitemapSuccessDeleteMessage.php | 2 +- .../AssertSitemapSuccessGenerateMessage.php | 2 +- ...AssertSitemapSuccessSaveAndGenerateMessages.php | 2 +- .../Constraint/AssertSitemapSuccessSaveMessage.php | 2 +- .../app/Magento/Sitemap/Test/Fixture/Sitemap.xml | 2 +- .../Magento/Sitemap/Test/Handler/Sitemap/Curl.php | 2 +- .../Test/Handler/Sitemap/SitemapInterface.php | 2 +- .../Sitemap/Test/Page/Adminhtml/SitemapEdit.xml | 2 +- .../Sitemap/Test/Page/Adminhtml/SitemapIndex.xml | 2 +- .../Sitemap/Test/Page/Adminhtml/SitemapNew.xml | 2 +- .../Magento/Sitemap/Test/Repository/Sitemap.xml | 2 +- .../Test/TestCase/CreateSitemapEntityTest.php | 2 +- .../Test/TestCase/CreateSitemapEntityTest.xml | 2 +- .../Test/TestCase/DeleteSitemapEntityTest.php | 2 +- .../Test/TestCase/DeleteSitemapEntityTest.xml | 2 +- .../Sitemap/Test/TestCase/NavigateMenuTest.xml | 2 +- .../tests/app/Magento/Sitemap/Test/etc/curl/di.xml | 2 +- .../app/Magento/Store/Test/Block/Switcher.php | 2 +- .../Store/Test/Constraint/AssertStoreBackend.php | 2 +- .../Store/Test/Constraint/AssertStoreForm.php | 2 +- .../Store/Test/Constraint/AssertStoreFrontend.php | 2 +- .../Store/Test/Constraint/AssertStoreGroupForm.php | 2 +- .../Test/Constraint/AssertStoreGroupInGrid.php | 2 +- .../Test/Constraint/AssertStoreGroupNotInGrid.php | 2 +- .../Constraint/AssertStoreGroupOnStoreViewForm.php | 2 +- ...ertStoreGroupSuccessDeleteAndBackupMessages.php | 2 +- .../AssertStoreGroupSuccessDeleteMessage.php | 2 +- .../AssertStoreGroupSuccessSaveMessage.php | 2 +- .../Store/Test/Constraint/AssertStoreInGrid.php | 2 +- .../Store/Test/Constraint/AssertStoreNotInGrid.php | 2 +- .../Test/Constraint/AssertStoreNotOnFrontend.php | 2 +- .../AssertStoreSuccessDeleteAndBackupMessages.php | 2 +- .../Constraint/AssertStoreSuccessDeleteMessage.php | 2 +- .../Constraint/AssertStoreSuccessSaveMessage.php | 2 +- .../Store/Test/Constraint/AssertWebsiteForm.php | 2 +- .../Store/Test/Constraint/AssertWebsiteInGrid.php | 2 +- .../Test/Constraint/AssertWebsiteNotInGrid.php | 2 +- .../Test/Constraint/AssertWebsiteOnStoreForm.php | 2 +- ...AssertWebsiteSuccessDeleteAndBackupMessages.php | 2 +- .../AssertWebsiteSuccessDeleteMessage.php | 2 +- .../Constraint/AssertWebsiteSuccessSaveMessage.php | 2 +- .../tests/app/Magento/Store/Test/Fixture/Store.xml | 2 +- .../Magento/Store/Test/Fixture/Store/GroupId.php | 2 +- .../app/Magento/Store/Test/Fixture/StoreGroup.xml | 2 +- .../Store/Test/Fixture/StoreGroup/CategoryId.php | 2 +- .../Store/Test/Fixture/StoreGroup/WebsiteId.php | 2 +- .../app/Magento/Store/Test/Fixture/Website.xml | 2 +- .../app/Magento/Store/Test/Handler/Store/Curl.php | 2 +- .../Store/Test/Handler/Store/StoreInterface.php | 2 +- .../Magento/Store/Test/Handler/StoreGroup/Curl.php | 2 +- .../Handler/StoreGroup/StoreGroupInterface.php | 2 +- .../Magento/Store/Test/Handler/Website/Curl.php | 2 +- .../Test/Handler/Website/WebsiteInterface.php | 2 +- .../app/Magento/Store/Test/Repository/Store.xml | 2 +- .../Magento/Store/Test/Repository/StoreGroup.xml | 2 +- .../app/Magento/Store/Test/Repository/Website.xml | 2 +- .../Store/Test/TestCase/CreateStoreEntityTest.php | 2 +- .../Store/Test/TestCase/CreateStoreEntityTest.xml | 2 +- .../Test/TestCase/CreateStoreGroupEntityTest.php | 2 +- .../Test/TestCase/CreateStoreGroupEntityTest.xml | 2 +- .../Test/TestCase/CreateWebsiteEntityTest.php | 2 +- .../Test/TestCase/CreateWebsiteEntityTest.xml | 2 +- .../Store/Test/TestCase/DeleteStoreEntityTest.php | 2 +- .../Store/Test/TestCase/DeleteStoreEntityTest.xml | 2 +- .../Test/TestCase/DeleteStoreGroupEntityTest.php | 2 +- .../Test/TestCase/DeleteStoreGroupEntityTest.xml | 2 +- .../Test/TestCase/DeleteWebsiteEntityTest.php | 2 +- .../Test/TestCase/DeleteWebsiteEntityTest.xml | 2 +- .../Store/Test/TestCase/UpdateStoreEntityTest.php | 2 +- .../Store/Test/TestCase/UpdateStoreEntityTest.xml | 2 +- .../Test/TestCase/UpdateStoreGroupEntityTest.php | 2 +- .../Test/TestCase/UpdateStoreGroupEntityTest.xml | 2 +- .../Test/TestCase/UpdateWebsiteEntityTest.php | 2 +- .../Test/TestCase/UpdateWebsiteEntityTest.xml | 2 +- .../Store/Test/TestStep/ApplyStoreConfigStep.php | 2 +- .../Store/Test/TestStep/CreateCustomStoreStep.php | 2 +- .../tests/app/Magento/Store/Test/etc/curl/di.xml | 2 +- .../Test/Constraint/AssertApiInfoTitleOnPage.php | 2 +- .../Constraint/AssertEndpointContentDisplay.php | 2 +- .../Constraint/AssertServiceContentDisplay.php | 2 +- .../Constraint/AssertSwaggerSectionLoadOnPage.php | 2 +- .../Magento/Swagger/Test/Page/SwaggerUiPage.php | 2 +- .../Test/TestCase/SwaggerUiForRestApiTest.php | 2 +- .../Test/TestCase/SwaggerUiForRestApiTest.xml | 2 +- .../Swatches/Test/Block/Product/ListProduct.php | 2 +- .../Test/Block/Product/ProductList/ProductItem.php | 2 +- .../Test/Block/Product/ViewWithSwatches.php | 2 +- .../AssertSwatchConfigurableProductPage.php | 2 +- .../AssertSwatchesVisibilityInCategory.php | 2 +- .../Magento/Swatches/Test/Fixture/Cart/Item.php | 2 +- .../Swatches/Test/Fixture/ConfigurableProduct.xml | 2 +- .../Test/Fixture/SwatchProductAttribute.xml | 2 +- .../Test/Handler/SwatchProductAttribute/Curl.php | 2 +- .../SwatchProductAttributeInterface.php | 2 +- .../Test/Page/Category/CatalogCategoryView.xml | 2 +- .../Test/Page/Product/CatalogProductView.xml | 2 +- .../Swatches/Test/Repository/ConfigData.xml | 2 +- .../Test/Repository/ConfigurableProduct.xml | 2 +- .../ConfigurableProduct/CheckoutData.xml | 2 +- .../ConfigurableAttributesData.xml | 2 +- .../Test/Repository/SwatchProductAttribute.xml | 2 +- ...igurableProductWithSwatchToShoppingCartTest.php | 2 +- ...igurableProductWithSwatchToShoppingCartTest.xml | 2 +- .../TestCase/CheckSwatchesInCategoryPageTest.php | 2 +- .../TestCase/CheckSwatchesInCategoryPageTest.xml | 2 +- ...igurableProductWithSwatchToShoppingCartTest.php | 2 +- ...igurableProductWithSwatchToShoppingCartTest.xml | 2 +- ...AddProductToCartFromCatalogCategoryPageStep.php | 2 +- .../app/Magento/Swatches/Test/etc/curl/di.xml | 2 +- .../app/Magento/Swatches/Test/etc/testcase.xml | 2 +- .../Tax/Test/Block/Adminhtml/Rate/Edit/Form.php | 2 +- .../Tax/Test/Block/Adminhtml/Rate/Edit/Form.xml | 2 +- .../Block/Adminhtml/Rate/Edit/FormPageActions.php | 2 +- .../Magento/Tax/Test/Block/Adminhtml/Rate/Grid.php | 2 +- .../Test/Block/Adminhtml/Rate/GridPageActions.php | 2 +- .../Tax/Test/Block/Adminhtml/Rule/Edit/Form.php | 2 +- .../Tax/Test/Block/Adminhtml/Rule/Edit/Form.xml | 2 +- .../Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.php | 2 +- .../Tax/Test/Block/Adminhtml/Rule/Edit/TaxRate.xml | 2 +- .../Magento/Tax/Test/Block/Adminhtml/Rule/Grid.php | 2 +- .../Block/Adminhtml/System/Config/Notification.php | 2 +- .../Adminhtml/System/Config/NotificationPopup.php | 2 +- .../Tax/Test/Block/Adminhtml/System/Config/Tax.php | 2 +- .../Constraint/AbstractAssertOrderTaxOnBackend.php | 2 +- .../AbstractAssertTaxCalculationAfterCheckout.php | 2 +- .../AbstractAssertTaxRuleIsAppliedToAllPrices.php | 2 +- .../AbstractAssertTaxWithCrossBorderApplying.php | 2 +- ...ssertOrderTaxOnBackendExcludingIncludingTax.php | 2 +- .../AssertOrderTaxOnBackendExcludingTax.php | 2 +- .../AssertOrderTaxOnBackendIncludingTax.php | 2 +- ...lculationAfterCheckoutExcludingIncludingTax.php | 2 +- ...sertTaxCalculationAfterCheckoutExcludingTax.php | 2 +- ...sertTaxCalculationAfterCheckoutIncludingTax.php | 2 +- .../AssertTaxConfigurationNotificationMessage.php | 2 +- .../AssertTaxConfigurationSuccessSaveMessage.php | 2 +- .../Tax/Test/Constraint/AssertTaxRateForm.php | 2 +- .../Tax/Test/Constraint/AssertTaxRateInGrid.php | 2 +- .../Tax/Test/Constraint/AssertTaxRateInTaxRule.php | 2 +- .../Tax/Test/Constraint/AssertTaxRateNotInGrid.php | 2 +- .../Test/Constraint/AssertTaxRateNotInTaxRule.php | 2 +- .../AssertTaxRateSuccessDeleteMessage.php | 2 +- .../Constraint/AssertTaxRateSuccessSaveMessage.php | 2 +- .../Tax/Test/Constraint/AssertTaxRuleApplying.php | 2 +- .../Tax/Test/Constraint/AssertTaxRuleForm.php | 2 +- .../Tax/Test/Constraint/AssertTaxRuleInGrid.php | 2 +- .../Tax/Test/Constraint/AssertTaxRuleIsApplied.php | 2 +- ...leIsAppliedToAllPricesExcludingIncludingTax.php | 2 +- ...sertTaxRuleIsAppliedToAllPricesExcludingTax.php | 2 +- ...sertTaxRuleIsAppliedToAllPricesIncludingTax.php | 2 +- .../Test/Constraint/AssertTaxRuleIsNotApplied.php | 2 +- .../Tax/Test/Constraint/AssertTaxRuleNotInGrid.php | 2 +- .../AssertTaxRuleSuccessDeleteMessage.php | 2 +- .../Constraint/AssertTaxRuleSuccessSaveMessage.php | 2 +- .../Constraint/AssertTaxWithCrossBorderApplied.php | 2 +- .../AssertTaxWithCrossBorderNotApplied.php | 2 +- .../app/Magento/Tax/Test/Fixture/TaxClass.xml | 2 +- .../tests/app/Magento/Tax/Test/Fixture/TaxRate.xml | 2 +- .../tests/app/Magento/Tax/Test/Fixture/TaxRule.xml | 2 +- .../Magento/Tax/Test/Fixture/TaxRule/TaxClass.php | 2 +- .../Magento/Tax/Test/Fixture/TaxRule/TaxRate.php | 2 +- .../Tax/Test/Handler/Curl/RemoveTaxRule.php | 2 +- .../app/Magento/Tax/Test/Handler/TaxClass/Curl.php | 2 +- .../Test/Handler/TaxClass/TaxClassInterface.php | 2 +- .../Magento/Tax/Test/Handler/TaxClass/Webapi.php | 2 +- .../app/Magento/Tax/Test/Handler/TaxRate/Curl.php | 2 +- .../Tax/Test/Handler/TaxRate/TaxRateInterface.php | 2 +- .../Magento/Tax/Test/Handler/TaxRate/Webapi.php | 2 +- .../app/Magento/Tax/Test/Handler/TaxRule/Curl.php | 2 +- .../Tax/Test/Handler/TaxRule/TaxRuleInterface.php | 2 +- .../Magento/Tax/Test/Handler/TaxRule/Webapi.php | 2 +- .../Tax/Test/Page/Adminhtml/TaxConfiguration.xml | 2 +- .../Tax/Test/Page/Adminhtml/TaxRateIndex.xml | 2 +- .../Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml | 2 +- .../Tax/Test/Page/Adminhtml/TaxRuleIndex.xml | 2 +- .../Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml | 2 +- .../app/Magento/Tax/Test/Repository/ConfigData.xml | 2 +- .../app/Magento/Tax/Test/Repository/TaxClass.xml | 2 +- .../app/Magento/Tax/Test/Repository/TaxRate.xml | 2 +- .../app/Magento/Tax/Test/Repository/TaxRule.xml | 2 +- .../Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.php | 2 +- .../Tax/Test/TestCase/ApplyTaxBasedOnVatIdTest.xml | 2 +- .../Tax/Test/TestCase/CreateTaxRateEntityTest.php | 2 +- .../Tax/Test/TestCase/CreateTaxRateEntityTest.xml | 2 +- .../Tax/Test/TestCase/CreateTaxRuleEntityTest.php | 2 +- .../Tax/Test/TestCase/CreateTaxRuleEntityTest.xml | 2 +- .../Tax/Test/TestCase/DeleteTaxRateEntityTest.php | 2 +- .../Tax/Test/TestCase/DeleteTaxRateEntityTest.xml | 2 +- .../Tax/Test/TestCase/DeleteTaxRuleEntityTest.php | 2 +- .../Tax/Test/TestCase/DeleteTaxRuleEntityTest.xml | 2 +- .../Magento/Tax/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Tax/Test/TestCase/TaxCalculationTest.php | 2 +- .../Tax/Test/TestCase/TaxCalculationTest.xml | 2 +- .../Tax/Test/TestCase/TaxConfigurationTest.php | 2 +- .../Tax/Test/TestCase/TaxConfigurationTest.xml | 2 +- .../Tax/Test/TestCase/TaxWithCrossBorderTest.php | 2 +- .../Tax/Test/TestCase/TaxWithCrossBorderTest.xml | 2 +- .../Tax/Test/TestCase/UpdateTaxRateEntityTest.php | 2 +- .../Tax/Test/TestCase/UpdateTaxRateEntityTest.xml | 2 +- .../Tax/Test/TestCase/UpdateTaxRuleEntityTest.php | 2 +- .../Tax/Test/TestCase/UpdateTaxRuleEntityTest.xml | 2 +- .../Tax/Test/TestStep/CreateTaxRuleStep.php | 2 +- .../Tax/Test/TestStep/DeleteAllTaxRulesStep.php | 2 +- .../tests/app/Magento/Tax/Test/etc/curl/di.xml | 2 +- .../tests/app/Magento/Tax/Test/etc/di.xml | 2 +- .../tests/app/Magento/Tax/Test/etc/testcase.xml | 2 +- .../tests/app/Magento/Tax/Test/etc/webapi/di.xml | 2 +- .../Magento/Theme/Test/Block/Html/Breadcrumbs.php | 2 +- .../app/Magento/Theme/Test/Block/Html/Footer.php | 2 +- .../app/Magento/Theme/Test/Block/Html/Title.php | 2 +- .../app/Magento/Theme/Test/Block/Html/Topmenu.php | 2 +- .../tests/app/Magento/Theme/Test/Block/Links.php | 2 +- .../Theme/Test/Page/CheckoutOnepageSuccess.xml | 2 +- .../Theme/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Ui/Test/Block/Adminhtml/AbstractContainer.php | 2 +- .../Block/Adminhtml/AbstractFormContainers.php | 2 +- .../Magento/Ui/Test/Block/Adminhtml/DataGrid.php | 2 +- .../Ui/Test/Block/Adminhtml/FormSections.php | 2 +- .../app/Magento/Ui/Test/Block/Adminhtml/Modal.php | 2 +- .../Magento/Ui/Test/Block/Adminhtml/Section.php | 2 +- .../Ui/Test/Constraint/AssertGridFiltering.php | 2 +- .../Test/Constraint/AssertGridFullTextSearch.php | 2 +- .../Ui/Test/Constraint/AssertGridSorting.php | 2 +- .../TestCase/AdminUiControllerPermissionTest.xml | 2 +- .../Magento/Ui/Test/TestCase/GridFilteringTest.php | 2 +- .../Ui/Test/TestCase/GridFullTextSearchTest.php | 2 +- .../Magento/Ui/Test/TestCase/GridSortingTest.php | 2 +- .../Magento/Upgrade/Test/Block/Authentication.php | 2 +- .../Magento/Upgrade/Test/Block/Authentication.xml | 2 +- .../Magento/Upgrade/Test/Block/CreateBackup.php | 2 +- .../Magento/Upgrade/Test/Block/CreateBackup.xml | 2 +- .../tests/app/Magento/Upgrade/Test/Block/Home.php | 2 +- .../app/Magento/Upgrade/Test/Block/Readiness.php | 2 +- .../Magento/Upgrade/Test/Block/SelectVersion.php | 2 +- .../Magento/Upgrade/Test/Block/SelectVersion.xml | 2 +- .../Magento/Upgrade/Test/Block/SuccessMessage.php | 2 +- .../Magento/Upgrade/Test/Block/SystemConfig.php | 2 +- .../Magento/Upgrade/Test/Block/SystemUpgrade.php | 2 +- .../Test/Constraint/AssertApplicationVersion.php | 2 +- .../Test/Constraint/AssertSuccessMessage.php | 2 +- .../Constraint/AssertSuccessfulReadinessCheck.php | 2 +- .../Constraint/AssertVersionAndEditionCheck.php | 2 +- .../app/Magento/Upgrade/Test/Fixture/Upgrade.xml | 2 +- .../Upgrade/Test/Page/Adminhtml/SetupWizard.xml | 2 +- .../Upgrade/Test/TestCase/UpgradeSystemTest.php | 2 +- .../Upgrade/Test/TestCase/UpgradeSystemTest.xml | 2 +- .../app/Magento/Ups/Test/Repository/ConfigData.xml | 2 +- .../Ups/Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../OnePageEstimateShippingMethodsTest.xml | 2 +- .../Test/Block/Adminhtml/Catalog/Category/Grid.php | 2 +- .../Test/Block/Adminhtml/Catalog/Category/Tree.php | 2 +- .../Adminhtml/Catalog/Edit/UrlRewriteForm.php | 2 +- .../Adminhtml/Catalog/Edit/UrlRewriteForm.xml | 2 +- .../Test/Block/Adminhtml/Catalog/Product/Grid.php | 2 +- .../Test/Block/Adminhtml/Cms/Page/Grid.php | 2 +- .../UrlRewrite/Test/Block/Adminhtml/Selector.php | 2 +- .../AssertPageByUrlRewriteIsNotFound.php | 2 +- .../Constraint/AssertUrlRewriteCategoryInGrid.php | 2 +- .../AssertUrlRewriteCategoryNotInGrid.php | 2 +- .../AssertUrlRewriteCategoryRedirect.php | 2 +- .../Constraint/AssertUrlRewriteCustomRedirect.php | 2 +- .../AssertUrlRewriteCustomSearchRedirect.php | 2 +- .../Constraint/AssertUrlRewriteDeletedMessage.php | 2 +- .../Test/Constraint/AssertUrlRewriteInGrid.php | 2 +- .../Test/Constraint/AssertUrlRewriteNotInGrid.php | 2 +- .../Constraint/AssertUrlRewriteProductRedirect.php | 2 +- .../Constraint/AssertUrlRewriteSaveMessage.php | 2 +- .../AssertUrlRewriteSuccessOutsideRedirect.php | 2 +- .../AssertUrlRewriteUpdatedProductInGrid.php | 2 +- .../Magento/UrlRewrite/Test/Fixture/UrlRewrite.xml | 2 +- .../UrlRewrite/Test/Fixture/UrlRewrite/StoreId.php | 2 +- .../Test/Fixture/UrlRewrite/TargetPath.php | 2 +- .../UrlRewrite/Test/Handler/UrlRewrite/Curl.php | 2 +- .../Handler/UrlRewrite/UrlRewriteInterface.php | 2 +- .../Test/Page/Adminhtml/UrlRewriteEdit.xml | 2 +- .../Test/Page/Adminhtml/UrlRewriteIndex.xml | 2 +- .../UrlRewrite/Test/Repository/UrlRewrite.xml | 2 +- .../TestCase/CreateCategoryRewriteEntityTest.php | 2 +- .../TestCase/CreateCategoryRewriteEntityTest.xml | 2 +- .../TestCase/CreateCustomUrlRewriteEntityTest.php | 2 +- .../TestCase/CreateCustomUrlRewriteEntityTest.xml | 2 +- .../TestCase/CreateProductUrlRewriteEntityTest.php | 2 +- .../TestCase/CreateProductUrlRewriteEntityTest.xml | 2 +- .../DeleteCategoryUrlRewriteEntityTest.php | 2 +- .../DeleteCategoryUrlRewriteEntityTest.xml | 2 +- .../TestCase/DeleteCustomUrlRewriteEntityTest.php | 2 +- .../TestCase/DeleteCustomUrlRewriteEntityTest.xml | 2 +- .../TestCase/DeleteProductUrlRewriteEntityTest.php | 2 +- .../TestCase/DeleteProductUrlRewriteEntityTest.xml | 2 +- .../UrlRewrite/Test/TestCase/NavigateMenuTest.xml | 2 +- .../UpdateCategoryUrlRewriteEntityTest.php | 2 +- .../UpdateCategoryUrlRewriteEntityTest.xml | 2 +- .../TestCase/UpdateCustomUrlRewriteEntityTest.php | 2 +- .../TestCase/UpdateCustomUrlRewriteEntityTest.xml | 2 +- .../TestCase/UpdateProductUrlRewriteEntityTest.php | 2 +- .../TestCase/UpdateProductUrlRewriteEntityTest.xml | 2 +- .../app/Magento/UrlRewrite/Test/etc/curl/di.xml | 2 +- .../User/Test/Block/Adminhtml/Role/PageActions.php | 2 +- .../User/Test/Block/Adminhtml/Role/RoleForm.php | 2 +- .../User/Test/Block/Adminhtml/Role/RoleForm.xml | 2 +- .../User/Test/Block/Adminhtml/Role/Tab/Role.php | 2 +- .../Test/Block/Adminhtml/Role/Tab/User/Grid.php | 2 +- .../Magento/User/Test/Block/Adminhtml/RoleGrid.php | 2 +- .../User/Test/Block/Adminhtml/User/Edit/Form.php | 2 +- .../Test/Block/Adminhtml/User/Edit/PageActions.php | 2 +- .../Test/Block/Adminhtml/User/Edit/Tab/Roles.php | 2 +- .../User/Test/Block/Adminhtml/User/Tab/Role.php | 2 +- .../Test/Block/Adminhtml/User/Tab/Role/Grid.php | 2 +- .../User/Test/Block/Adminhtml/User/UserForm.php | 2 +- .../User/Test/Block/Adminhtml/User/UserForm.xml | 2 +- .../Magento/User/Test/Block/Adminhtml/UserGrid.php | 2 +- .../AssertAccessTokensSuccessRevokeMessage.php | 2 +- .../AssertImpossibleDeleteYourOwnAccount.php | 2 +- .../AssertImpossibleDeleteYourOwnRole.php | 2 +- .../Constraint/AssertIncorrectUserPassword.php | 2 +- .../User/Test/Constraint/AssertRoleInGrid.php | 2 +- .../User/Test/Constraint/AssertRoleNotInGrid.php | 2 +- .../Constraint/AssertRoleSuccessDeleteMessage.php | 2 +- .../Constraint/AssertRoleSuccessSaveMessage.php | 2 +- .../Test/Constraint/AssertUserDuplicateMessage.php | 2 +- .../AssertUserFailedLoginByPermissionMessage.php | 2 +- .../Constraint/AssertUserFailedLoginMessage.php | 2 +- .../User/Test/Constraint/AssertUserInGrid.php | 2 +- .../AssertUserInvalidEmailHostnameMessage.php | 2 +- .../Constraint/AssertUserInvalidEmailMessage.php | 2 +- .../User/Test/Constraint/AssertUserNotInGrid.php | 2 +- .../Constraint/AssertUserRoleRestrictedAccess.php | 2 +- .../Constraint/AssertUserSuccessDeleteMessage.php | 2 +- .../Test/Constraint/AssertUserSuccessLogOut.php | 2 +- .../Test/Constraint/AssertUserSuccessLogin.php | 2 +- .../Constraint/AssertUserSuccessSaveMessage.php | 2 +- .../tests/app/Magento/User/Test/Fixture/Role.xml | 2 +- .../Magento/User/Test/Fixture/Role/InRoleUsers.php | 2 +- .../tests/app/Magento/User/Test/Fixture/User.xml | 2 +- .../User/Test/Fixture/User/CurrentPassword.php | 2 +- .../app/Magento/User/Test/Fixture/User/RoleId.php | 2 +- .../app/Magento/User/Test/Handler/Role/Curl.php | 2 +- .../User/Test/Handler/Role/RoleInterface.php | 2 +- .../app/Magento/User/Test/Handler/User/Curl.php | 2 +- .../User/Test/Handler/User/UserInterface.php | 2 +- .../Magento/User/Test/Page/Adminhtml/UserEdit.xml | 2 +- .../Magento/User/Test/Page/Adminhtml/UserIndex.xml | 2 +- .../User/Test/Page/Adminhtml/UserRoleEditRole.xml | 2 +- .../User/Test/Page/Adminhtml/UserRoleIndex.xml | 2 +- .../Magento/User/Test/Repository/ConfigData.xml | 2 +- .../app/Magento/User/Test/Repository/Role.xml | 2 +- .../app/Magento/User/Test/Repository/User.xml | 2 +- .../Test/TestCase/CreateAdminUserEntityTest.php | 2 +- .../Test/TestCase/CreateAdminUserEntityTest.xml | 2 +- .../TestCase/CreateAdminUserRoleEntityTest.php | 2 +- .../TestCase/CreateAdminUserRoleEntityTest.xml | 2 +- .../Test/TestCase/DeleteAdminUserEntityTest.php | 2 +- .../Test/TestCase/DeleteAdminUserEntityTest.xml | 2 +- .../Test/TestCase/DeleteUserRoleEntityTest.php | 2 +- .../Test/TestCase/DeleteUserRoleEntityTest.xml | 2 +- .../User/Test/TestCase/LockAdminUserEntityTest.php | 2 +- .../User/Test/TestCase/LockAdminUserEntityTest.xml | 2 +- .../User/Test/TestCase/NavigateMenuTest.xml | 2 +- ...okeAllAccessTokensForAdminWithoutTokensTest.php | 2 +- ...okeAllAccessTokensForAdminWithoutTokensTest.xml | 2 +- .../Test/TestCase/UpdateAdminUserEntityTest.php | 2 +- .../Test/TestCase/UpdateAdminUserEntityTest.xml | 2 +- .../TestCase/UpdateAdminUserRoleEntityTest.php | 2 +- .../TestCase/UpdateAdminUserRoleEntityTest.xml | 2 +- .../UserLoginAfterChangingPermissionsTest.php | 2 +- .../UserLoginAfterChangingPermissionsTest.xml | 2 +- .../Magento/User/Test/TestStep/CreateUserStep.php | 2 +- .../User/Test/TestStep/LoginUserOnBackendStep.php | 2 +- .../User/Test/TestStep/LogoutUserOnBackendStep.php | 2 +- .../tests/app/Magento/User/Test/etc/curl/di.xml | 2 +- .../Magento/Usps/Test/Repository/ConfigData.xml | 2 +- .../Usps/Test/TestCase/OnePageCheckoutTest.xml | 2 +- .../System/Variable/Edit/VariableForm.php | 2 +- .../System/Variable/Edit/VariableForm.xml | 2 +- .../Adminhtml/System/Variable/FormPageActions.php | 2 +- .../Test/Block/Adminhtml/System/Variable/Grid.php | 2 +- .../Test/Constraint/AssertCustomVariableForm.php | 2 +- .../Test/Constraint/AssertCustomVariableInGrid.php | 2 +- .../Test/Constraint/AssertCustomVariableInPage.php | 2 +- .../AssertCustomVariableNotInCmsPageForm.php | 2 +- .../Constraint/AssertCustomVariableNotInGrid.php | 2 +- .../AssertCustomVariableSuccessDeleteMessage.php | 2 +- .../AssertCustomVariableSuccessSaveMessage.php | 2 +- .../Variable/Test/Fixture/SystemVariable.xml | 2 +- .../Variable/Test/Handler/SystemVariable/Curl.php | 2 +- .../SystemVariable/SystemVariableInterface.php | 2 +- .../Test/Page/Adminhtml/SystemVariableIndex.xml | 2 +- .../Test/Page/Adminhtml/SystemVariableNew.xml | 2 +- .../Variable/Test/Repository/SystemVariable.xml | 2 +- .../TestCase/CreateCustomVariableEntityTest.php | 2 +- .../TestCase/CreateCustomVariableEntityTest.xml | 2 +- .../TestCase/DeleteCustomVariableEntityTest.php | 2 +- .../TestCase/DeleteCustomVariableEntityTest.xml | 2 +- .../Variable/Test/TestCase/NavigateMenuTest.xml | 2 +- .../TestCase/UpdateCustomVariableEntityTest.php | 2 +- .../TestCase/UpdateCustomVariableEntityTest.xml | 2 +- .../app/Magento/Variable/Test/etc/curl/di.xml | 2 +- .../Magento/Vault/Test/Block/StoredPayments.php | 2 +- .../app/Magento/Vault/Test/Block/VaultPayment.php | 2 +- .../Constraint/AssertCreditCardDeletedMessage.php | 2 +- .../AssertCreditCardNotPresentOnCheckout.php | 2 +- .../AssertStoredPaymentDeletedMessage.php | 2 +- .../Magento/Vault/Test/Page/CheckoutOnepage.xml | 2 +- .../Vault/Test/Page/StoredPaymentMethods.xml | 2 +- .../Test/TestCase/CreateVaultOrderBackendTest.php | 2 +- .../Test/TestCase/DeleteSavedCreditCardTest.php | 2 +- .../Test/TestCase/DeleteSavedCreditCardTest.xml | 2 +- .../Vault/Test/TestCase/ReorderUsingVaultTest.php | 2 +- .../Vault/Test/TestCase/UseVaultOnCheckoutTest.php | 2 +- .../TestStep/DeleteCreditCardFromMyAccountStep.php | 2 +- .../Test/TestStep/DeleteStoredPaymentStep.php | 2 +- .../Test/TestStep/SaveCreditCardOnBackendStep.php | 2 +- .../Vault/Test/TestStep/SaveCreditCardStep.php | 2 +- .../Vault/Test/TestStep/UseSavedCreditCardStep.php | 2 +- .../Test/TestStep/UseSavedPaymentMethodStep.php | 2 +- .../Test/TestStep/UseVaultPaymentTokenStep.php | 2 +- .../tests/app/Magento/Vault/Test/etc/di.xml | 2 +- .../tests/app/Magento/Vault/Test/etc/testcase.xml | 2 +- .../TestCase/CustomerWebapisPermissionTest.xml | 2 +- .../tests/app/Magento/Weee/Test/Block/Cart.php | 2 +- .../app/Magento/Weee/Test/Block/Cart/CartItem.php | 2 +- .../Magento/Weee/Test/Block/Cart/CartItem/Fpt.php | 2 +- .../app/Magento/Weee/Test/Block/Cart/Totals.php | 2 +- .../Magento/Weee/Test/Block/Cart/Totals/Fpt.php | 2 +- .../Weee/Test/Block/Product/ListProduct.php | 2 +- .../app/Magento/Weee/Test/Block/Product/Price.php | 2 +- .../Test/Block/Product/ProductList/ProductItem.php | 2 +- .../app/Magento/Weee/Test/Block/Product/View.php | 2 +- .../Weee/Test/Constraint/AssertFptApplied.php | 2 +- .../Test/Page/Category/CatalogCategoryView.xml | 2 +- .../app/Magento/Weee/Test/Page/CheckoutCart.xml | 2 +- .../Weee/Test/Page/Product/CatalogProductView.xml | 2 +- .../Magento/Weee/Test/Repository/ConfigData.xml | 2 +- .../Weee/Test/TestCase/CreateTaxWithFptTest.php | 2 +- .../Weee/Test/TestCase/CreateTaxWithFptTest.xml | 2 +- .../tests/app/Magento/Weee/Test/etc/di.xml | 2 +- .../Test/Block/Adminhtml/Widget/ChosenOption.php | 2 +- .../Widget/Instance/Edit/Tab/Parameters.php | 2 +- .../Tab/ParametersType/CatalogCategoryLink.php | 2 +- .../Tab/ParametersType/CatalogCategoryLink.xml | 2 +- .../ParametersType/CatalogCategoryLink/Form.php | 2 +- .../ParametersType/CatalogCategoryLink/Form.xml | 2 +- .../Edit/Tab/ParametersType/CatalogProductLink.php | 2 +- .../Edit/Tab/ParametersType/CatalogProductLink.xml | 2 +- .../Tab/ParametersType/CatalogProductLink/Grid.php | 2 +- .../Edit/Tab/ParametersType/CmsPageLink.php | 2 +- .../Edit/Tab/ParametersType/CmsPageLink.xml | 2 +- .../Edit/Tab/ParametersType/CmsPageLink/Grid.php | 2 +- .../Edit/Tab/ParametersType/CmsStaticBlock.php | 2 +- .../Edit/Tab/ParametersType/CmsStaticBlock.xml | 2 +- .../Tab/ParametersType/CmsStaticBlock/Grid.php | 2 +- .../Edit/Tab/ParametersType/ParametersForm.php | 2 +- .../ParametersType/RecentlyComparedProducts.php | 2 +- .../ParametersType/RecentlyComparedProducts.xml | 2 +- .../Tab/ParametersType/RecentlyViewedProducts.php | 2 +- .../Tab/ParametersType/RecentlyViewedProducts.xml | 2 +- .../Widget/Instance/Edit/Tab/Settings.php | 2 +- .../Widget/Instance/Edit/Tab/WidgetInstance.php | 2 +- .../Edit/Tab/WidgetInstanceType/Categories.php | 2 +- .../Edit/Tab/WidgetInstanceType/Categories.xml | 2 +- .../Edit/Tab/WidgetInstanceType/GenericPages.php | 2 +- .../Edit/Tab/WidgetInstanceType/GenericPages.xml | 2 +- .../Edit/Tab/WidgetInstanceType/Product/Grid.php | 2 +- .../Edit/Tab/WidgetInstanceType/Products.php | 2 +- .../Edit/Tab/WidgetInstanceType/Products.xml | 2 +- .../Tab/WidgetInstanceType/WidgetInstanceForm.php | 2 +- .../Adminhtml/Widget/Instance/Edit/WidgetForm.php | 2 +- .../Adminhtml/Widget/Instance/Edit/WidgetForm.xml | 2 +- .../Test/Block/Adminhtml/Widget/WidgetGrid.php | 2 +- .../Widget/Test/Block/Adminhtml/WidgetForm.php | 2 +- .../Widget/Test/Block/Adminhtml/WidgetForm.xml | 2 +- .../app/Magento/Widget/Test/Block/WidgetView.php | 2 +- .../AssertProductInCatalogNewProductsList.php | 2 +- .../AssertWidgetAbsentOnFrontendHome.php | 2 +- .../Constraint/AssertWidgetCatalogCategoryLink.php | 2 +- .../Test/Constraint/AssertWidgetCmsPageLink.php | 2 +- .../Widget/Test/Constraint/AssertWidgetInGrid.php | 2 +- .../Constraint/AssertWidgetOnFrontendInCatalog.php | 2 +- .../Test/Constraint/AssertWidgetOnProductPage.php | 2 +- .../Test/Constraint/AssertWidgetProductLink.php | 2 +- .../AssertWidgetRecentlyComparedProducts.php | 2 +- .../AssertWidgetRecentlyViewedProducts.php | 2 +- .../AssertWidgetSuccessDeleteMessage.php | 2 +- .../Constraint/AssertWidgetSuccessSaveMessage.php | 2 +- .../app/Magento/Widget/Test/Fixture/Widget.xml | 2 +- .../Widget/Test/Fixture/Widget/Parameters.php | 2 +- .../Widget/Test/Fixture/Widget/StoreIds.php | 2 +- .../Widget/Test/Fixture/Widget/WidgetInstance.php | 2 +- .../Magento/Widget/Test/Handler/Widget/Curl.php | 2 +- .../Widget/Test/Handler/Widget/WidgetInterface.php | 2 +- .../Test/Page/Adminhtml/WidgetInstanceEdit.xml | 2 +- .../Test/Page/Adminhtml/WidgetInstanceIndex.xml | 2 +- .../Test/Page/Adminhtml/WidgetInstanceNew.xml | 2 +- .../app/Magento/Widget/Test/Repository/Widget.xml | 2 +- .../Widget/Test/Repository/Widget/Parameters.xml | 2 +- .../Test/Repository/Widget/WidgetInstance.xml | 2 +- .../TestCase/AbstractCreateWidgetEntityTest.php | 2 +- .../Test/TestCase/CreateWidgetEntityTest.php | 2 +- .../Test/TestCase/CreateWidgetEntityTest.xml | 2 +- .../Test/TestCase/DeleteWidgetEntityTest.php | 2 +- .../Test/TestCase/DeleteWidgetEntityTest.xml | 2 +- .../Widget/Test/TestCase/NavigateMenuTest.xml | 2 +- .../Widget/Test/TestStep/DeleteAllWidgetsStep.php | 2 +- .../tests/app/Magento/Widget/Test/etc/curl/di.xml | 2 +- .../Block/Adminhtml/Customer/Edit/Tab/Wishlist.php | 2 +- .../Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php | 2 +- .../Test/Block/Adminhtml/Edit/CustomerForm.xml | 2 +- .../Wishlist/Test/Block/Customer/Sharing.php | 2 +- .../Wishlist/Test/Block/Customer/Sharing.xml | 2 +- .../Wishlist/Test/Block/Customer/Wishlist.php | 2 +- .../Test/Block/Customer/Wishlist/Items.php | 2 +- .../Test/Block/Customer/Wishlist/Items/Product.php | 2 +- .../Test/Block/Customer/Wishlist/Items/Product.xml | 2 +- .../AbstractAssertWishlistProductDetails.php | 2 +- .../AssertAddProductToWishlistSuccessMessage.php | 2 +- .../AssertMoveProductToWishlistSuccessMessage.php | 2 +- .../Constraint/AssertProductDetailsInWishlist.php | 2 +- ...ssertProductInCustomerWishlistOnBackendGrid.php | 2 +- ...rtProductIsPresentInCustomerBackendWishlist.php | 2 +- .../AssertProductIsPresentInWishlist.php | 2 +- .../Constraint/AssertProductPriceIsNotZero.php | 2 +- .../AssertProductsIsAbsentInWishlist.php | 2 +- .../Test/Constraint/AssertWishlistIsEmpty.php | 2 +- .../Test/Constraint/AssertWishlistShareMessage.php | 2 +- .../Magento/Wishlist/Test/Page/WishlistIndex.xml | 2 +- .../Magento/Wishlist/Test/Page/WishlistShare.xml | 2 +- .../Test/TestCase/AbstractWishlistTest.php | 2 +- .../TestCase/AddProductToWishlistEntityTest.php | 2 +- .../TestCase/AddProductToWishlistEntityTest.xml | 2 +- ...ctsToCartFromCustomerWishlistOnFrontendTest.php | 2 +- ...ctsToCartFromCustomerWishlistOnFrontendTest.xml | 2 +- ...igureProductInCustomerWishlistOnBackendTest.php | 2 +- ...igureProductInCustomerWishlistOnBackendTest.xml | 2 +- ...gureProductInCustomerWishlistOnFrontendTest.php | 2 +- ...gureProductInCustomerWishlistOnFrontendTest.xml | 2 +- ...eteProductFromCustomerWishlistOnBackendTest.php | 2 +- ...eteProductFromCustomerWishlistOnBackendTest.xml | 2 +- .../DeleteProductsFromWishlistOnFrontendTest.php | 2 +- .../DeleteProductsFromWishlistOnFrontendTest.xml | 2 +- .../MoveProductFromShoppingCartToWishlistTest.php | 2 +- .../MoveProductFromShoppingCartToWishlistTest.xml | 2 +- .../Test/TestCase/ShareWishlistEntityTest.php | 2 +- .../Test/TestCase/ShareWishlistEntityTest.xml | 2 +- .../ViewProductInCustomerWishlistOnBackendTest.php | 2 +- .../ViewProductInCustomerWishlistOnBackendTest.xml | 2 +- .../Test/TestStep/AddProductsToWishlistStep.php | 2 +- .../Magento/Mtf/TestSuite/InjectableTests.php | 2 +- .../Mtf/TestSuite/InjectableTests/3rd_party.xml | 2 +- .../Mtf/TestSuite/InjectableTests/acceptance.xml | 2 +- .../Mtf/TestSuite/InjectableTests/basic.xml | 2 +- .../Mtf/TestSuite/InjectableTests/basic_green.xml | 2 +- .../Mtf/TestSuite/InjectableTests/domain_cs.xml | 2 +- .../Mtf/TestSuite/InjectableTests/domain_mx.xml | 2 +- .../InjectableTests/domain_mx_category.xml | 2 +- .../Mtf/TestSuite/InjectableTests/domain_ps.xml | 2 +- .../InjectableTests/extended_acceptance.xml | 2 +- .../Mtf/TestSuite/InjectableTests/installation.xml | 2 +- .../Magento/Mtf/TestSuite/InjectableTests/mvp.xml | 2 +- .../Mtf/TestSuite/InjectableTests/upgrade.xml | 2 +- dev/tests/functional/utils/bootstrap.php | 2 +- dev/tests/functional/utils/command.php | 2 +- dev/tests/functional/utils/generate.php | 2 +- dev/tests/functional/utils/generate/factory.php | 2 +- dev/tests/functional/utils/generate/fixture.php | 2 +- dev/tests/functional/utils/generate/handler.php | 2 +- dev/tests/functional/utils/generate/page.php | 2 +- dev/tests/functional/utils/generate/repository.php | 2 +- dev/tests/functional/utils/generateFixtureXml.php | 2 +- dev/tests/functional/utils/website.php | 2 +- dev/tests/integration/etc/config-global.php.dist | 2 +- dev/tests/integration/etc/di/preferences/ce.php | 2 +- .../integration/etc/install-config-mysql.php.dist | 2 +- .../etc/install-config-mysql.travis.php.dist | 2 +- .../Annotation/AdminConfigFixture.php | 2 +- .../Magento/TestFramework/Annotation/AppArea.php | 2 +- .../TestFramework/Annotation/AppIsolation.php | 2 +- .../Magento/TestFramework/Annotation/Cache.php | 2 +- .../Annotation/ComponentRegistrarFixture.php | 2 +- .../TestFramework/Annotation/ConfigFixture.php | 2 +- .../TestFramework/Annotation/DataFixture.php | 2 +- .../Annotation/DataFixtureBeforeTransaction.php | 2 +- .../TestFramework/Annotation/DbIsolation.php | 2 +- .../Api/Config/Reader/FileResolver.php | 2 +- .../framework/Magento/TestFramework/App/Config.php | 2 +- .../TestFramework/App/EnvironmentFactory.php | 2 +- .../Magento/TestFramework/App/Filesystem.php | 2 +- .../TestFramework/App/MutableScopeConfig.php | 2 +- .../App/ObjectManager/Environment/Developer.php | 2 +- .../Magento/TestFramework/App/ReinitableConfig.php | 2 +- .../framework/Magento/TestFramework/App/State.php | 2 +- .../Magento/TestFramework/Application.php | 2 +- .../Magento/TestFramework/Backend/App/Config.php | 2 +- .../framework/Magento/TestFramework/Bootstrap.php | 2 +- .../Magento/TestFramework/Bootstrap/DocBlock.php | 2 +- .../TestFramework/Bootstrap/Environment.php | 2 +- .../Magento/TestFramework/Bootstrap/Memory.php | 2 +- .../TestFramework/Bootstrap/MemoryFactory.php | 2 +- .../Magento/TestFramework/Bootstrap/Profiler.php | 2 +- .../Magento/TestFramework/Bootstrap/Settings.php | 2 +- .../framework/Magento/TestFramework/Config.php | 2 +- .../Magento/TestFramework/CookieManager.php | 2 +- .../Magento/TestFramework/Db/AbstractDb.php | 2 +- .../Magento/TestFramework/Db/Adapter/Mysql.php | 2 +- .../Db/Adapter/TransactionInterface.php | 2 +- .../Magento/TestFramework/Db/ConnectionAdapter.php | 2 +- .../framework/Magento/TestFramework/Db/Mysql.php | 2 +- .../Magento/TestFramework/Db/Sequence.php | 2 +- .../Magento/TestFramework/Db/Sequence/Builder.php | 2 +- .../framework/Magento/TestFramework/Entity.php | 2 +- .../Magento/TestFramework/ErrorLog/Listener.php | 2 +- .../Magento/TestFramework/ErrorLog/Logger.php | 2 +- .../Magento/TestFramework/Event/Magento.php | 2 +- .../TestFramework/Event/Param/Transaction.php | 2 +- .../Magento/TestFramework/Event/PhpUnit.php | 2 +- .../Magento/TestFramework/Event/Transaction.php | 2 +- .../Magento/TestFramework/EventManager.php | 2 +- .../framework/Magento/TestFramework/Helper/Api.php | 2 +- .../Magento/TestFramework/Helper/Bootstrap.php | 2 +- .../Magento/TestFramework/Helper/Config.php | 2 +- .../framework/Magento/TestFramework/Helper/Eav.php | 2 +- .../Magento/TestFramework/Helper/Factory.php | 2 +- .../Magento/TestFramework/Helper/Memory.php | 2 +- .../Magento/TestFramework/Indexer/TestCase.php | 2 +- .../TestFramework/Interception/PluginList.php | 2 +- .../Magento/TestFramework/Isolation/AppConfig.php | 2 +- .../TestFramework/Isolation/DeploymentConfig.php | 2 +- .../TestFramework/Isolation/WorkingDirectory.php | 2 +- .../TestFramework/Listener/ExtededTestdox.php | 2 +- .../Mail/Template/TransportBuilderMock.php | 2 +- .../TestFramework/Mail/TransportInterfaceMock.php | 2 +- .../Magento/TestFramework/MemoryLimit.php | 2 +- .../Magento/TestFramework/ObjectManager.php | 2 +- .../Magento/TestFramework/ObjectManager/Config.php | 2 +- .../Magento/TestFramework/ObjectManagerFactory.php | 2 +- .../TestFramework/Profiler/OutputBamboo.php | 2 +- .../framework/Magento/TestFramework/Request.php | 2 +- .../framework/Magento/TestFramework/Response.php | 2 +- .../Magento/TestFramework/Store/StoreManager.php | 2 +- .../TestCase/AbstractBackendController.php | 2 +- .../TestFramework/TestCase/AbstractConfigFiles.php | 2 +- .../TestFramework/TestCase/AbstractController.php | 2 +- .../TestFramework/TestCase/AbstractIntegrity.php | 2 +- .../Magento/TestFramework/View/Layout.php | 2 +- .../Workaround/Cleanup/StaticProperties.php | 2 +- .../Workaround/Cleanup/TestCaseProperties.php | 2 +- .../Magento/TestFramework/Workaround/Segfault.php | 2 +- dev/tests/integration/framework/autoload.php | 2 +- dev/tests/integration/framework/bootstrap.php | 2 +- .../framework/tests/unit/framework/bootstrap.php | 2 +- .../framework/tests/unit/phpunit.xml.dist | 2 +- .../Test/Annotation/AdminConfigFixtureTest.php | 2 +- .../Magento/Test/Annotation/AppAreaTest.php | 2 +- .../Magento/Test/Annotation/AppIsolationTest.php | 2 +- .../Annotation/ComponentRegistrarFixtureTest.php | 2 +- .../Magento/Test/Annotation/ConfigFixtureTest.php | 2 +- .../Magento/Test/Annotation/DataFixtureTest.php | 2 +- .../Magento/Test/Annotation/DbIsolationTest.php | 2 +- .../_files/components/a/aa/aaa/registration.php | 2 +- .../_files/components/a/aa/registration.php | 2 +- .../_files/components/b/registration.php | 2 +- .../Annotation/_files/components/registration.php | 2 +- .../_files/sample_fixture_two_rollback.php | 2 +- .../unit/testsuite/Magento/Test/App/ConfigTest.php | 2 +- .../testsuite/Magento/Test/ApplicationTest.php | 2 +- .../Magento/Test/Bootstrap/DocBlockTest.php | 2 +- .../Magento/Test/Bootstrap/EnvironmentTest.php | 2 +- .../Magento/Test/Bootstrap/MemoryTest.php | 2 +- .../Magento/Test/Bootstrap/ProfilerTest.php | 2 +- .../Magento/Test/Bootstrap/SettingsTest.php | 2 +- .../testsuite/Magento/Test/Bootstrap/_files/1.xml | 2 +- .../Magento/Test/Bootstrap/_files/1.xml.dist | 2 +- .../testsuite/Magento/Test/Bootstrap/_files/2.xml | 2 +- .../Magento/Test/Bootstrap/_files/3.xml.dist | 2 +- .../testsuite/Magento/Test/Bootstrap/_files/4.php | 2 +- .../Magento/Test/Bootstrap/_files/metrics.php | 2 +- .../unit/testsuite/Magento/Test/BootstrapTest.php | 2 +- .../Test/Db/Adapter/TransactionInterfaceTest.php | 2 +- .../unit/testsuite/Magento/Test/EntityTest.php | 2 +- .../testsuite/Magento/Test/Event/MagentoTest.php | 2 +- .../Magento/Test/Event/Param/TransactionTest.php | 2 +- .../testsuite/Magento/Test/Event/PhpUnitTest.php | 2 +- .../Magento/Test/Event/TransactionTest.php | 2 +- .../testsuite/Magento/Test/EventManagerTest.php | 2 +- .../Magento/Test/Helper/BootstrapTest.php | 2 +- .../testsuite/Magento/Test/Helper/FactoryTest.php | 2 +- .../testsuite/Magento/Test/Helper/MemoryTest.php | 2 +- .../Magento/Test/Isolation/AppConfigTest.php | 2 +- .../Test/Isolation/WorkingDirectoryTest.php | 2 +- .../testsuite/Magento/Test/MemoryLimitTest.php | 2 +- .../testsuite/Magento/Test/ObjectManagerTest.php | 2 +- .../Magento/Test/Profiler/OutputBambooTest.php | 2 +- .../Test/Profiler/OutputBambooTestFilter.php | 2 +- .../unit/testsuite/Magento/Test/RequestTest.php | 2 +- .../Test/TestCase/ControllerAbstractTest.php | 2 +- .../Workaround/Cleanup/TestCasePropertiesTest.php | 2 +- .../TestCasePropertiesTest/DummyTestCase.php | 2 +- dev/tests/integration/phpunit.xml.dist | 2 +- .../Adminhtml/Notification/MarkAsReadTest.php | 2 +- .../Adminhtml/Notification/MassMarkAsReadTest.php | 2 +- .../Adminhtml/Notification/MassRemoveTest.php | 2 +- .../Adminhtml/Notification/RemoveTest.php | 2 +- .../Inbox/Collection/CriticalTest.php | 2 +- .../AdminNotification/_files/notifications.php | 2 +- .../Model/Export/AdvancedPricingTest.php | 2 +- .../Model/Import/AdvancedPricingTest.php | 2 +- .../_files/create_products.php | 2 +- .../Model/ResourceModel/Role/CollectionTest.php | 2 +- .../ResourceModel/Role/Grid/CollectionTest.php | 2 +- .../Authorization/Model/ResourceModel/RoleTest.php | 2 +- .../Model/ResourceModel/Rules/CollectionTest.php | 2 +- .../Magento/Authorization/Model/RoleTest.php | 2 +- .../Magento/Authorization/Model/RulesTest.php | 2 +- .../Authorizenet/Directpost/Payment/PlaceTest.php | 2 +- .../Directpost/Payment/PlaceTesting.php | 2 +- .../Directpost/Payment/BackendResponseTest.php | 2 +- .../Controller/Directpost/Payment/ResponseTest.php | 2 +- .../Controller/Directpost/PaymentTest.php | 2 +- .../Authorizenet/Model/Directpost/RequestTest.php | 2 +- .../Magento/Authorizenet/Model/DirectpostTest.php | 2 +- .../Magento/Authorizenet/_files/order.php | 2 +- .../Authorizenet/_files/transaction_details.xml | 2 +- .../Magento/Backend/App/AbstractActionTest.php | 2 +- .../testsuite/Magento/Backend/App/RouterTest.php | 2 +- .../Magento/Backend/Block/Dashboard/GraphTest.php | 2 +- .../testsuite/Magento/Backend/Block/MenuTest.php | 2 +- .../Magento/Backend/Block/Page/FooterTest.php | 2 +- .../Magento/Backend/Block/Page/HeaderTest.php | 2 +- .../Backend/Block/System/Account/Edit/FormTest.php | 2 +- .../Block/System/Design/Edit/Tab/GeneralTest.php | 2 +- .../Backend/Block/System/Store/DeleteTest.php | 2 +- .../Block/System/Store/Edit/Form/GroupTest.php | 2 +- .../Block/System/Store/Edit/Form/StoreTest.php | 2 +- .../Block/System/Store/Edit/Form/WebsiteTest.php | 2 +- .../Backend/Block/System/Store/EditTest.php | 2 +- .../Magento/Backend/Block/TemplateTest.php | 2 +- .../Magento/Backend/Block/Widget/ContainerTest.php | 2 +- .../Backend/Block/Widget/Form/ContainerTest.php | 2 +- .../Magento/Backend/Block/Widget/FormTest.php | 2 +- .../Backend/Block/Widget/Grid/ColumnSetTest.php | 2 +- .../Backend/Block/Widget/Grid/ContainerTest.php | 2 +- .../Backend/Block/Widget/Grid/ExtendedTest.php | 2 +- .../Magento/Backend/Block/Widget/Grid/ItemTest.php | 2 +- .../Widget/Grid/Massaction/AdditionalTest.php | 2 +- .../Backend/Block/Widget/Grid/MassactionTest.php | 2 +- .../Magento/Backend/Block/Widget/GridTest.php | 2 +- .../Magento/Backend/Block/Widget/TabsTest.php | 2 +- .../testsuite/Magento/Backend/Block/WidgetTest.php | 2 +- .../layout/layout_test_grid_handle.xml | 2 +- .../Magento/test_default/registration.php | 2 +- .../adminhtml/Magento/test_default/theme.xml | 2 +- .../Backend/Block/_files/form_key_disabled.php | 2 +- .../Block/_files/form_key_disabled_rollback.php | 2 +- .../Block/_files/menu/Magento/Backend/etc/menu.xml | 2 +- .../Backend/Controller/Adminhtml/AuthTest.php | 2 +- .../Adminhtml/Cache/CleanStaticFilesTest.php | 2 +- .../Controller/Adminhtml/Cache/MassActionTest.php | 2 +- .../Backend/Controller/Adminhtml/CacheTest.php | 2 +- .../Adminhtml/Dashboard/ProductsViewedTest.php | 2 +- .../Backend/Controller/Adminhtml/DashboardTest.php | 2 +- .../Backend/Controller/Adminhtml/IndexTest.php | 2 +- .../Controller/Adminhtml/System/AccountTest.php | 2 +- .../Controller/Adminhtml/System/DesignTest.php | 2 +- .../Controller/Adminhtml/System/StoreTest.php | 2 +- .../Controller/Adminhtml/UrlRewriteTest.php | 2 +- .../testsuite/Magento/Backend/Helper/DataTest.php | 2 +- .../Magento/Backend/Model/Auth/SessionTest.php | 2 +- .../testsuite/Magento/Backend/Model/AuthTest.php | 2 +- .../Magento/Backend/Model/Locale/ResolverTest.php | 2 +- .../testsuite/Magento/Backend/Model/MenuTest.php | 2 +- .../Magento/Backend/Model/Search/CustomerTest.php | 2 +- .../Magento/Backend/Model/Search/OrderTest.php | 2 +- .../Backend/Model/Session/AdminConfigTest.php | 2 +- .../Magento/Backend/Model/Session/QuoteTest.php | 2 +- .../Magento/Backend/Model/SessionTest.php | 2 +- .../Magento/Backend/Model/Translate/InlineTest.php | 2 +- .../testsuite/Magento/Backend/Model/UrlTest.php | 2 +- .../_files/cache/all_types_invalidated.php | 2 +- .../cache/all_types_invalidated_rollback.php | 2 +- .../controllers/_files/cache/application_cache.php | 2 +- .../_files/cache/application_cache_rollback.php | 2 +- .../controllers/_files/cache/empty_storage.php | 2 +- .../_files/cache/non_application_cache.php | 2 +- .../cache/non_application_cache_rollback.php | 2 +- .../Magento/Braintree/Block/Form/ContainerTest.php | 2 +- .../Braintree/Block/VaultTokenRendererTest.php | 2 +- .../Adminhtml/Order/PaymentReviewTest.php | 2 +- .../Adminhtml/Payment/GetClientTokenTest.php | 2 +- .../Controller/Cards/DeleteActionTest.php | 2 +- .../Braintree/Model/PaymentMethodListTest.php | 2 +- .../PayPal/TokenUiComponentProviderTest.php | 2 +- .../Model/Ui/TokensConfigProviderTest.php | 2 +- .../Magento/Braintree/_files/fraud_order.php | 2 +- .../Braintree/_files/payment_configuration.php | 2 +- .../_files/payment_configuration_rollback.php | 2 +- .../Magento/Braintree/_files/payments.php | 2 +- .../Magento/Braintree/_files/paypal_quote.php | 2 +- .../Braintree/_files/paypal_vault_token.php | 2 +- .../Edit/Tab/Bundle/Option/Search/GridTest.php | 2 +- .../Product/Edit/Tab/Bundle/Option/SearchTest.php | 2 +- .../Magento/Bundle/Controller/ProductTest.php | 2 +- .../Bundle/Model/Product/OptionListTest.php | 2 +- .../Magento/Bundle/Model/Product/PriceTest.php | 2 +- .../Magento/Bundle/Model/Product/TypeTest.php | 2 +- .../testsuite/Magento/Bundle/Model/ProductTest.php | 2 +- .../_files/order_item_with_bundle_and_options.php | 2 +- ...order_item_with_bundle_and_options_rollback.php | 2 +- .../testsuite/Magento/Bundle/_files/product.php | 2 +- .../Magento/Bundle/_files/product_rollback.php | 2 +- .../_files/product_with_multiple_options.php | 2 +- .../product_with_multiple_options_rollback.php | 2 +- .../Bundle/_files/product_with_tier_pricing.php | 2 +- .../BundleImportExport/Model/BundleTest.php | 2 +- .../Model/Export/RowCustomizerTest.php | 2 +- .../Model/Import/Product/Type/BundleTest.php | 2 +- .../Block/Adminhtml/Captcha/DefaultCaptchaTest.php | 2 +- .../Magento/Captcha/Block/Captcha/DefaultTest.php | 2 +- ...ginActionWithInvalidCaptchaReturnsErrorTest.php | 2 +- ...ptchaIsRequiredAfterFailedLoginAttemptsTest.php | 2 +- ...eckUnsuccessfulMessageWhenCaptchaFailedTest.php | 2 +- ...rForgotPasswordBackendWhenCaptchaFailedTest.php | 2 +- .../Magento/Captcha/_files/dummy_user.php | 2 +- .../Adminhtml/Category/Checkboxes/TreeTest.php | 2 +- .../Catalog/Block/Adminhtml/Category/TreeTest.php | 2 +- .../Product/Attribute/Edit/Tab/FrontTest.php | 2 +- .../Product/Attribute/Set/Toolbar/AddTest.php | 2 +- .../Block/Adminhtml/Product/Edit/JsTest.php | 2 +- .../Product/Edit/Tab/Options/OptionTest.php | 2 +- .../Product/Edit/Tab/Options/Type/SelectTest.php | 2 +- .../Adminhtml/Product/Helper/Form/CategoryTest.php | 2 +- .../Product/Helper/Form/Gallery/ContentTest.php | 2 +- .../Adminhtml/Product/Helper/Form/WeightTest.php | 2 +- .../Block/Adminhtml/Product/Options/AjaxTest.php | 2 +- .../Magento/Catalog/Block/Product/AbstractTest.php | 2 +- .../Magento/Catalog/Block/Product/ListTest.php | 2 +- .../Magento/Catalog/Block/Product/NewTest.php | 2 +- .../Block/Product/ProductList/CrosssellTest.php | 2 +- .../Block/Product/ProductList/RelatedTest.php | 2 +- .../Block/Product/ProductList/ToolbarTest.php | 2 +- .../Catalog/Block/Product/View/AdditionalTest.php | 2 +- .../Catalog/Block/Product/View/OptionsTest.php | 2 +- .../Magento/Catalog/Block/Product/ViewTest.php | 2 +- .../Command/ProductAttributesCleanUpTest.php | 2 +- .../Catalog/Controller/Adminhtml/CategoryTest.php | 2 +- .../Adminhtml/Product/Action/AttributeTest.php | 2 +- .../Controller/Adminhtml/Product/AttributeTest.php | 2 +- .../Controller/Adminhtml/Product/ReviewTest.php | 2 +- .../Adminhtml/Product/Set/DeleteTest.php | 2 +- .../Catalog/Controller/Adminhtml/ProductTest.php | 2 +- .../Magento/Catalog/Controller/CategoryTest.php | 2 +- .../Magento/Catalog/Controller/IndexTest.php | 2 +- .../Catalog/Controller/Product/CompareTest.php | 2 +- .../Catalog/Controller/Product/ViewTest.php | 2 +- .../Magento/Catalog/Controller/ProductTest.php | 2 +- .../Catalog/Cron/DeleteOutdatedPriceValuesTest.php | 2 +- .../Magento/Catalog/Helper/CategoryTest.php | 2 +- .../testsuite/Magento/Catalog/Helper/DataTest.php | 2 +- .../Magento/Catalog/Helper/OutputTest.php | 2 +- .../Magento/Catalog/Helper/Product/CompareTest.php | 2 +- .../Catalog/Helper/Product/CompositeTest.php | 2 +- .../Magento/Catalog/Helper/Product/FlatTest.php | 2 +- .../Helper/Product/Stub/ProductControllerStub.php | 2 +- .../Magento/Catalog/Helper/Product/ViewTest.php | 2 +- .../Magento/Catalog/Helper/ProductTest.php | 2 +- .../Magento/Catalog/Model/AbstractModel/Stub.php | 2 +- .../Magento/Catalog/Model/AbstractTest.php | 2 +- .../Catalog/Model/Category/CategoryImageTest.php | 2 +- .../CategoryImageTest/StubZendLogWriterStream.php | 2 +- .../Catalog/Model/Category/DataProviderTest.php | 2 +- .../Category/_files/category_without_image.php | 2 +- .../Category/_files/service_category_create.php | 2 +- .../_files/service_category_create_rollback.php | 2 +- .../Magento/Catalog/Model/CategoryTest.php | 2 +- .../Magento/Catalog/Model/CategoryTreeTest.php | 2 +- .../testsuite/Magento/Catalog/Model/DesignTest.php | 2 +- .../Catalog/Model/Indexer/Category/ProductTest.php | 2 +- .../Magento/Catalog/Model/Indexer/FlatTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/FullTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/RowTest.php | 2 +- .../Model/Indexer/Product/Eav/Action/RowsTest.php | 2 +- .../Model/Indexer/Product/Flat/Action/FullTest.php | 2 +- .../Model/Indexer/Product/Flat/Action/RowTest.php | 2 +- .../Model/Indexer/Product/Flat/Action/RowsTest.php | 2 +- .../Model/Indexer/Product/Flat/ProcessorTest.php | 2 +- .../Indexer/Product/Price/Action/FullTest.php | 2 +- .../Model/Indexer/Product/Price/Action/RowTest.php | 2 +- .../Indexer/Product/Price/Action/RowsTest.php | 2 +- .../Magento/Catalog/Model/Layer/CategoryTest.php | 2 +- .../Catalog/Model/Layer/Filter/AttributeTest.php | 2 +- .../Catalog/Model/Layer/Filter/CategoryTest.php | 2 +- .../Model/Layer/Filter/DataProvider/PriceTest.php | 2 +- .../Catalog/Model/Layer/Filter/DecimalTest.php | 2 +- .../Layer/Filter/Price/AlgorithmAdvancedTest.php | 2 +- .../Model/Layer/Filter/Price/AlgorithmBaseTest.php | 2 +- .../Filter/Price/_files/_algorithm_base_data.php | 2 +- .../Filter/Price/_files/products_advanced.php | 2 +- .../Price/_files/products_advanced_rollback.php | 2 +- .../Layer/Filter/Price/_files/products_base.php | 2 +- .../Filter/Price/_files/products_base_rollback.php | 2 +- .../Catalog/Model/Layer/Filter/PriceTest.php | 2 +- .../Filter/_files/attribute_weight_filterable.php | 2 +- .../Layer/Filter/_files/attribute_with_option.php | 2 +- .../_files/attribute_with_option_rollback.php | 2 +- .../Magento/Catalog/Model/Product/ActionTest.php | 2 +- .../Model/Product/Attribute/Backend/PriceTest.php | 2 +- .../Model/Product/Attribute/Backend/SkuTest.php | 2 +- .../Product/Attribute/Backend/TierpriceTest.php | 2 +- .../Attribute/_files/create_attribute_service.php | 2 +- .../_files/create_attribute_service_rollback.php | 2 +- .../Product/Attribute/_files/select_attribute.php | 2 +- .../Attribute/_files/select_attribute_rollback.php | 2 +- .../Model/Product/Compare/ListCompareTest.php | 2 +- .../Model/Product/Gallery/CreateHandlerTest.php | 2 +- .../Model/Product/Gallery/ProcessorTest.php | 2 +- .../Model/Product/Gallery/ReadHandlerTest.php | 2 +- .../Magento/Catalog/Model/Product/ImageTest.php | 2 +- .../Product/Option/Type/File/ValidatorFileTest.php | 2 +- .../Product/Option/Type/File/ValidatorInfoTest.php | 2 +- .../Model/Product/Type/AbstractTypeTest.php | 2 +- .../Catalog/Model/Product/Type/PriceTest.php | 2 +- .../Catalog/Model/Product/Type/VirtualTest.php | 2 +- .../Magento/Catalog/Model/Product/TypeTest.php | 2 +- .../Magento/Catalog/Model/Product/UrlTest.php | 2 +- .../Product/_files/service_product_create.php | 2 +- .../_files/service_product_create_rollback.php | 2 +- .../Magento/Catalog/Model/ProductExternalTest.php | 2 +- .../Magento/Catalog/Model/ProductGettersTest.php | 2 +- .../Magento/Catalog/Model/ProductPriceTest.php | 2 +- .../Magento/Catalog/Model/ProductTest.php | 2 +- .../Model/ResourceModel/Eav/AttributeTest.php | 2 +- .../Model/ResourceModel/Product/CollectionTest.php | 2 +- .../Product/Indexer/Eav/SourceTest.php | 2 +- .../Product/Link/Product/CollectionTest.php | 2 +- .../ResourceModel/Product/Option/ValueTest.php | 2 +- .../Model/ResourceModel/Product/OptionTest.php | 2 +- .../Model/ResourceModel/_files/product_simple.php | 2 +- .../Model/ResourceModel/_files/url_rewrites.php | 2 +- .../Product/Option/Type/File/ProcessorTest.php | 2 +- ...SwitchPriceAttributeScopeOnConfigChangeTest.php | 2 +- .../RenderingBasedOnIsProductListFlagTest.php | 2 +- .../Catalog/Pricing/Render/FinalPriceBoxTest.php | 2 +- .../Product/Attributes/ListingTest.php | 2 +- .../DataProvider/Product/Form/Modifier/EavTest.php | 2 +- .../Modifier/_files/eav_expected_data_output.php | 2 +- .../Modifier/_files/eav_expected_meta_output.php | 2 +- .../_files/eav_expected_meta_output_w_default.php | 2 +- .../Catalog/Ui/DataProvider/ProductTest.php | 2 +- .../testsuite/Magento/Catalog/WidgetTest.php | 2 +- .../_files/attribute_set_with_image_attribute.php | 2 +- ...attribute_set_with_image_attribute_rollback.php | 2 +- .../Magento/Catalog/_files/categories.php | 2 +- .../Catalog/_files/categories_no_products.php | 2 +- .../_files/categories_no_products_rollback.php | 2 +- .../Magento/Catalog/_files/categories_rollback.php | 2 +- .../testsuite/Magento/Catalog/_files/category.php | 2 +- .../Magento/Catalog/_files/category_attribute.php | 2 +- .../Catalog/_files/category_attribute_rollback.php | 2 +- .../Magento/Catalog/_files/category_backend.php | 2 +- .../Catalog/_files/category_backend_rollback.php | 2 +- .../Magento/Catalog/_files/category_duplicates.php | 2 +- .../Magento/Catalog/_files/category_product.php | 2 +- .../Catalog/_files/category_product_rollback.php | 2 +- .../Magento/Catalog/_files/category_rollback.php | 2 +- .../Magento/Catalog/_files/category_tree.php | 2 +- .../Catalog/_files/category_tree_rollback.php | 2 +- .../Catalog/_files/category_with_position.php | 2 +- .../_files/category_with_position_rollback.php | 2 +- .../Magento/Catalog/_files/dropdown_attribute.php | 2 +- .../Catalog/_files/empty_attribute_group.php | 2 +- .../_files/empty_attribute_group_rollback.php | 2 +- .../Catalog/_files/enable_price_index_schedule.php | 2 +- .../enable_price_index_schedule_rollback.php | 2 +- .../Catalog/_files/enable_reindex_schedule.php | 2 +- .../_files/enable_reindex_schedule_rollback.php | 2 +- .../Catalog/_files/etc/extension_attributes.xml | 2 +- .../Catalog/_files/filterable_attributes.php | 2 +- .../Catalog/_files/indexer_catalog_category.php | 2 +- .../_files/indexer_catalog_category_rollback.php | 2 +- .../Magento/Catalog/_files/multiple_products.php | 2 +- .../Catalog/_files/multiple_products_rollback.php | 2 +- .../Catalog/_files/multiselect_attribute.php | 2 +- .../_files/multiselect_attribute_rollback.php | 2 +- ...multiselect_attribute_with_incorrect_values.php | 2 +- .../order_item_with_product_and_custom_options.php | 2 +- ...em_with_product_and_custom_options_rollback.php | 2 +- .../Magento/Catalog/_files/price_row_fixture.php | 2 +- .../Catalog/_files/price_row_fixture_rollback.php | 2 +- .../Magento/Catalog/_files/product_associated.php | 2 +- .../Catalog/_files/product_associated_rollback.php | 2 +- .../Magento/Catalog/_files/product_attribute.php | 2 +- .../Catalog/_files/product_attribute_rollback.php | 2 +- .../product_attribute_with_invalid_apply_to.php | 2 +- .../_files/product_different_store_prices.php | 2 +- .../product_different_store_prices_rollback.php | 2 +- .../_files/product_group_prices_rollback.php | 2 +- .../product_has_tier_price_show_as_low_as.php | 2 +- ...duct_has_tier_price_show_as_low_as_rollback.php | 2 +- .../Magento/Catalog/_files/product_image.php | 2 +- .../Catalog/_files/product_image_rollback.php | 2 +- .../Magento/Catalog/_files/product_simple.php | 2 +- .../Catalog/_files/product_simple_duplicated.php | 2 +- .../_files/product_simple_duplicated_rollback.php | 2 +- .../Catalog/_files/product_simple_multistore.php | 2 +- .../_files/product_simple_multistore_rollback.php | 2 +- .../Catalog/_files/product_simple_rollback.php | 2 +- .../_files/product_simple_with_admin_store.php | 2 +- .../_files/product_simple_with_custom_options.php | 2 +- ...product_simple_with_custom_options_rollback.php | 2 +- .../Catalog/_files/product_simple_with_url_key.php | 2 +- .../Magento/Catalog/_files/product_simple_xss.php | 2 +- .../Catalog/_files/product_special_price.php | 2 +- .../_files/product_special_price_rollback.php | 2 +- .../Magento/Catalog/_files/product_virtual.php | 2 +- .../Catalog/_files/product_virtual_in_stock.php | 2 +- .../_files/product_virtual_in_stock_rollback.php | 2 +- .../Catalog/_files/product_virtual_rollback.php | 2 +- .../_files/product_with_dropdown_option.php | 2 +- .../product_with_dropdown_option_rollback.php | 2 +- .../Magento/Catalog/_files/product_with_image.php | 2 +- .../Catalog/_files/product_with_image_rollback.php | 2 +- .../Catalog/_files/product_with_options.php | 2 +- .../_files/product_with_options_rollback.php | 2 +- .../Catalog/_files/product_without_options.php | 2 +- .../_files/product_without_options_rollback.php | 2 +- .../testsuite/Magento/Catalog/_files/products.php | 2 +- .../Magento/Catalog/_files/products_crosssell.php | 2 +- .../Catalog/_files/products_crosssell_rollback.php | 2 +- .../Catalog/_files/products_in_category.php | 2 +- .../_files/products_in_category_rollback.php | 2 +- .../Magento/Catalog/_files/products_new.php | 2 +- .../Catalog/_files/products_new_rollback.php | 2 +- .../Magento/Catalog/_files/products_related.php | 2 +- .../Catalog/_files/products_related_multiple.php | 2 +- .../_files/products_related_multiple_rollback.php | 2 +- .../Catalog/_files/products_related_rollback.php | 2 +- .../Magento/Catalog/_files/products_rollback.php | 2 +- .../Magento/Catalog/_files/products_upsell.php | 2 +- .../Catalog/_files/products_upsell_rollback.php | 2 +- .../_files/products_with_multiselect_attribute.php | 2 +- ...roducts_with_multiselect_attribute_rollback.php | 2 +- .../products_with_unique_input_attribute.php | 2 +- .../_files/products_with_websites_and_stores.php | 2 +- .../products_with_websites_and_stores_rollback.php | 2 +- .../quote_with_product_and_custom_options.php | 2 +- ...te_with_product_and_custom_options_rollback.php | 2 +- .../Magento/Catalog/_files/row_fixture.php | 2 +- .../Catalog/_files/row_fixture_rollback.php | 2 +- .../Catalog/_files/second_product_simple.php | 2 +- .../_files/second_product_simple_rollback.php | 2 +- .../Magento/Catalog/_files/text_attribute.php | 2 +- .../Catalog/_files/text_attribute_rollback.php | 2 +- .../Catalog/_files/unique_input_attribute.php | 2 +- .../Magento/Catalog/_files/url_rewrites.php | 2 +- .../Catalog/_files/url_rewrites_invalid.php | 2 +- .../Catalog/_files/url_rewrites_rollback.php | 2 +- .../Magento/Catalog/_files/validate_image.php | 2 +- .../Magento/Catalog/_files/validate_image_info.php | 2 +- .../_files/validate_image_info_rollback.php | 2 +- .../Catalog/_files/validate_image_rollback.php | 2 +- .../controllers/_files/attribute_system.php | 2 +- .../controllers/_files/attribute_system_popup.php | 2 +- .../_files/attribute_system_with_applyto_data.php | 2 +- .../controllers/_files/attribute_user_defined.php | 2 +- .../Catalog/controllers/_files/products.php | 2 +- .../controllers/_files/products_rollback.php | 2 +- .../Model/AbstractProductExportImportTestCase.php | 2 +- .../Model/Export/ProductTest.php | 2 +- .../Model/Import/Product/Type/AbstractTest.php | 2 +- .../Model/Import/ProductTest.php | 2 +- .../Model/Import/_files/media_import_image.php | 2 +- .../Import/_files/media_import_image_rollback.php | 2 +- .../CatalogImportExport/Model/ProductTest.php | 2 +- .../_files/product_export_data.php | 2 +- .../_files/product_export_data_rollback.php | 2 +- .../_files/product_export_data_special_chars.php | 2 +- .../product_export_data_special_chars_rollback.php | 2 +- .../product_export_with_product_links_data.php | 2 +- ...uct_export_with_product_links_data_rollback.php | 2 +- .../CatalogInventory/Api/StockItemSaveTest.php | 2 +- .../Adminhtml/Form/Field/CustomergroupTest.php | 2 +- .../Model/Indexer/Stock/Action/FullTest.php | 2 +- .../Model/Indexer/Stock/Action/RowTest.php | 2 +- .../Model/Indexer/Stock/Action/RowsTest.php | 2 +- .../Indexer/Stock/DefaultStockTest.php | 2 +- .../CatalogInventory/Model/Stock/ItemTest.php | 2 +- .../CatalogRule/Model/Indexer/BatchIndexTest.php | 2 +- .../Model/Indexer/IndexerBuilderTest.php | 2 +- .../CatalogRule/Model/Indexer/ProductRuleTest.php | 2 +- .../CatalogRule/Model/Indexer/RuleProductTest.php | 2 +- .../Magento/CatalogRule/Model/RuleTest.php | 2 +- .../Magento/CatalogRule/_files/attribute.php | 2 +- .../_files/catalog_rule_10_off_not_logged.php | 2 +- .../CatalogRule/_files/rule_by_attribute.php | 2 +- .../Magento/CatalogRule/_files/two_rules.php | 2 +- .../CatalogSearch/Block/Advanced/ResultTest.php | 2 +- .../Magento/CatalogSearch/Block/ResultTest.php | 2 +- .../Magento/CatalogSearch/Block/TermTest.php | 2 +- .../Magento/CatalogSearch/Controller/AjaxTest.php | 2 +- .../CatalogSearch/Controller/ResultTest.php | 2 +- .../Magento/CatalogSearch/Helper/DataTest.php | 2 +- .../Indexer/Fulltext/Action/DataProviderTest.php | 2 +- .../Model/Indexer/Fulltext/Action/FullTest.php | 2 +- .../CatalogSearch/Model/Indexer/FulltextTest.php | 2 +- .../Model/Layer/Filter/AttributeTest.php | 2 +- .../Model/Layer/Filter/CategoryTest.php | 2 +- .../Model/Layer/Filter/DecimalTest.php | 2 +- .../CatalogSearch/Model/Layer/Filter/PriceTest.php | 2 +- .../ResourceModel/Advanced/CollectionTest.php | 2 +- .../Model/Search/RequestGeneratorTest.php | 2 +- .../Magento/CatalogSearch/_files/full_reindex.php | 2 +- .../CatalogSearch/_files/indexer_fulltext.php | 2 +- .../_files/indexer_fulltext_rollback.php | 2 +- .../_files/product_configurable_not_available.php | 2 +- ...product_configurable_not_available_rollback.php | 2 +- .../product_configurable_with_single_child.php | 2 +- ...uct_configurable_with_single_child_rollback.php | 2 +- .../CatalogSearch/_files/product_for_search.php | 2 +- .../_files/product_for_search_rollback.php | 2 +- .../CatalogSearch/_files/products_for_index.php | 2 +- .../_files/products_for_index_rollback.php | 2 +- .../Magento/CatalogSearch/_files/query.php | 2 +- .../CatalogSearch/_files/search_attributes.php | 2 +- .../_files/search_attributes_rollback.php | 2 +- .../CatalogSearch/_files/searchable_attribute.php | 2 +- .../Model/CategoryUrlRewriteGeneratorTest.php | 2 +- ...CategoryProcessUrlRewriteSavingObserverTest.php | 2 +- .../Adminhtml/Category/Tab/AttributesTest.php | 2 +- .../CatalogUrlRewrite/_files/categories.php | 2 +- .../_files/categories_rollback.php | 2 +- .../_files/categories_with_product_ids.php | 2 +- .../_files/categories_with_products.php | 2 +- .../_files/categories_with_products_rollback.php | 2 +- .../CatalogUrlRewrite/_files/product_simple.php | 2 +- .../Block/Product/Widget/ConditionsTest.php | 2 +- .../Model/Rule/Condition/ProductTest.php | 2 +- .../Magento/Checkout/Block/Cart/GridTest.php | 2 +- .../testsuite/Magento/Checkout/Block/CartTest.php | 2 +- .../Magento/Checkout/Controller/CartTest.php | 2 +- .../testsuite/Magento/Checkout/Model/CartTest.php | 2 +- .../Magento/Checkout/Model/SessionTest.php | 2 +- .../Magento/Checkout/_files/active_quote.php | 2 +- .../Checkout/_files/active_quote_rollback.php | 2 +- .../testsuite/Magento/Checkout/_files/cart.php | 2 +- .../Magento/Checkout/_files/discount_10percent.php | 2 +- .../_files/discount_10percent_generalusers.php | 2 +- .../discount_10percent_generalusers_rollback.php | 2 +- .../_files/discount_10percent_rollback.php | 2 +- .../Magento/Checkout/_files/product_bundle.php | 2 +- .../Checkout/_files/product_with_custom_option.php | 2 +- .../testsuite/Magento/Checkout/_files/quote.php | 2 +- .../Magento/Checkout/_files/quote_with_address.php | 2 +- .../_files/quote_with_address_rollback.php | 2 +- .../Checkout/_files/quote_with_address_saved.php | 2 +- .../_files/quote_with_address_saved_rollback.php | 2 +- .../_files/quote_with_bundle_and_options.php | 2 +- .../quote_with_bundle_and_options_rollback.php | 2 +- .../Checkout/_files/quote_with_bundle_product.php | 2 +- .../Checkout/_files/quote_with_check_payment.php | 2 +- .../_files/quote_with_check_payment_rollback.php | 2 +- .../Checkout/_files/quote_with_coupon_saved.php | 2 +- .../_files/quote_with_coupon_saved_rollback.php | 2 +- .../_files/quote_with_downloadable_product.php | 2 +- .../Checkout/_files/quote_with_items_saved.php | 2 +- .../_files/quote_with_items_saved_rollback.php | 2 +- .../Checkout/_files/quote_with_payment_saved.php | 2 +- .../_files/quote_with_payment_saved_rollback.php | 2 +- .../_files/quote_with_product_and_payment.php | 2 +- .../quote_with_product_and_payment_rollback.php | 2 +- .../Checkout/_files/quote_with_shipping_method.php | 2 +- ...e_with_shipping_method_and_items_categories.php | 2 +- .../_files/quote_with_shipping_method_rollback.php | 2 +- .../Checkout/_files/quote_with_simple_product.php | 2 +- ...quote_with_simple_product_and_custom_option.php | 2 +- .../_files/quote_with_simple_product_and_image.php | 2 +- ...uote_with_simple_product_and_image_rollback.php | 2 +- .../_files/quote_with_simple_product_saved.php | 2 +- .../quote_with_simple_product_saved_rollback.php | 2 +- .../quote_with_virtual_product_and_address.php | 2 +- ...e_with_virtual_product_and_address_rollback.php | 2 +- .../_files/quote_with_virtual_product_saved.php | 2 +- .../quote_with_virtual_product_saved_rollback.php | 2 +- .../Checkout/_files/set_product_min_in_cart.php | 2 +- .../Magento/Checkout/_files/simple_product.php | 2 +- .../_files/agreement_active_with_html_content.php | 2 +- ...agreement_active_with_html_content_rollback.php | 2 +- .../agreement_inactive_with_text_content.php | 2 +- ...reement_inactive_with_text_content_rollback.php | 2 +- .../testsuite/Magento/Cms/Block/BlockTest.php | 2 +- .../testsuite/Magento/Cms/Block/PageTest.php | 2 +- .../Magento/Cms/Block/Widget/BlockTest.php | 2 +- .../Adminhtml/Wysiwyg/Images/IndexTest.php | 2 +- .../Magento/Cms/Controller/Noroute/IndexTest.php | 2 +- .../testsuite/Magento/Cms/Controller/PageTest.php | 2 +- .../Magento/Cms/Controller/RouterTest.php | 2 +- .../testsuite/Magento/Cms/Helper/PageTest.php | 2 +- .../Magento/Cms/Helper/Wysiwyg/ImagesTest.php | 2 +- .../testsuite/Magento/Cms/Model/PageTest.php | 2 +- .../Magento/Cms/Model/Wysiwyg/ConfigTest.php | 2 +- .../Cms/Model/Wysiwyg/Images/StorageTest.php | 2 +- .../testsuite/Magento/Cms/_files/block.php | 2 +- .../testsuite/Magento/Cms/_files/noroute.php | 2 +- .../testsuite/Magento/Cms/_files/pages.php | 2 +- .../Magento/Config/App/Config/Type/SystemTest.php | 2 +- .../Config/Block/System/Config/FormStub.php | 2 +- .../Config/Block/System/Config/FormTest.php | 2 +- .../System/Config/_files/test_section_config.xml | 2 +- .../Controller/Adminhtml/System/ConfigTest.php | 2 +- .../Model/Config/Backend/Admin/RobotsTest.php | 2 +- .../Config/Model/Config/Backend/BaseurlTest.php | 2 +- .../Config/Model/Config/Backend/EncryptedTest.php | 2 +- .../Model/Config/Backend/Image/AdapterTest.php | 2 +- .../Processor/EnvironmentPlaceholderTest.php | 2 +- .../testsuite/Magento/Config/Model/ConfigTest.php | 2 +- .../Config/Model/ResourceModel/ConfigTest.php | 2 +- .../Magento/Config/Model/_files/config_groups.php | 2 +- .../Magento/Config/Model/_files/config_section.php | 2 +- .../Magento/Config/Model/_files/no_robots_txt.php | 2 +- .../Magento/Config/Model/_files/robots_txt.php | 2 +- .../Magento/Config/_files/config_data.php | 2 +- .../Model/ConfigurableTest.php | 2 +- .../Model/Export/RowCustomizerTest.php | 2 +- .../Model/Import/Product/Type/ConfigurableTest.php | 2 +- .../Import/_files/configurable_attributes.php | 2 +- .../_files/configurable_attributes_rollback.php | 2 +- .../Edit/Tab/Variations/Config/MatrixTest.php | 2 +- .../Block/Product/View/Type/ConfigurableTest.php | 2 +- .../Controller/Adminhtml/ProductTest.php | 2 +- .../ConfigurableProduct/Controller/CartTest.php | 2 +- .../Model/OptionRepositoryTest.php | 2 +- .../Product/Type/Configurable/AttributeTest.php | 2 +- .../Model/Product/Type/Configurable/PriceTest.php | 2 +- .../Model/Product/Type/ConfigurableTest.php | 2 +- .../Model/Product/VariationHandlerTest.php | 2 +- .../Product/Indexer/Price/ConfigurableTest.php | 2 +- .../Pricing/Price/FinalPriceTest.php | 2 +- .../Price/LowestPriceOptionProviderTest.php | 2 +- .../Pricing/Price/SpecialPriceIndexerTest.php | 2 +- .../Pricing/Price/SpecialPriceTest.php | 2 +- .../RenderingBasedOnIsProductListFlagTest.php | 2 +- .../_files/configurable_attribute.php | 2 +- .../_files/configurable_attribute_rollback.php | 2 +- .../_files/configurable_products.php | 2 +- .../_files/configurable_products_rollback.php | 2 +- .../_files/delete_association.php | 2 +- .../order_item_with_configurable_and_options.php | 2 +- ...item_with_configurable_and_options_rollback.php | 2 +- .../_files/product_configurable.php | 2 +- .../_files/product_configurable_12345.php | 2 +- .../_files/product_configurable_12345_rollback.php | 2 +- .../_files/product_configurable_rollback.php | 2 +- .../_files/product_simple_77.php | 2 +- .../_files/quote_with_configurable_product.php | 2 +- ...te_with_configurable_product_last_variation.php | 2 +- ...onfigurable_product_last_variation_rollback.php | 2 +- .../quote_with_configurable_product_rollback.php | 2 +- .../ConfigurableProduct/_files/tax_rule.php | 2 +- .../etc/extension_attributes.xml | 2 +- .../Magento/Contact/Controller/IndexTest.php | 2 +- .../testsuite/Magento/Contact/Helper/DataTest.php | 2 +- .../Cookie/Model/Config/Backend/DomainTest.php | 2 +- .../Cookie/Model/Config/Backend/LifetimeTest.php | 2 +- .../Cookie/Model/Config/Backend/PathTest.php | 2 +- .../Cron/Observer/ProcessCronQueueObserverTest.php | 2 +- .../Adminhtml/System/Currency/FetchRatesTest.php | 2 +- .../Adminhtml/System/Currency/IndexTest.php | 2 +- .../Adminhtml/System/Currency/SaveRatesTest.php | 2 +- .../Adminhtml/System/Currencysymbol/IndexTest.php | 2 +- .../Adminhtml/System/Currencysymbol/SaveTest.php | 2 +- .../Model/System/CurrencysymbolTest.php | 2 +- .../Magento/Customer/Api/AddressRepositoryTest.php | 2 +- .../Block/Account/Dashboard/AddressTest.php | 2 +- .../Customer/Block/Account/Dashboard/InfoTest.php | 2 +- .../Customer/Block/Account/DashboardTest.php | 2 +- .../Magento/Customer/Block/Address/BookTest.php | 2 +- .../Magento/Customer/Block/Address/EditTest.php | 2 +- .../Block/Address/Renderer/DefaultRendererTest.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/CartTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/CartsTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/NewsletterTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/OrdersTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/CartTest.php | 2 +- .../Adminhtml/Edit/Tab/View/PersonalInfoTest.php | 2 +- .../Block/Adminhtml/Edit/Tab/View/SalesTest.php | 2 +- .../Customer/Block/Adminhtml/Edit/Tab/ViewTest.php | 2 +- .../Magento/Customer/Block/Adminhtml/EditTest.php | 2 +- .../Block/Adminhtml/Group/Edit/FormTest.php | 2 +- .../Customer/Block/Adminhtml/Group/EditTest.php | 2 +- .../Magento/Customer/Block/Widget/DobTest.php | 2 +- .../Magento/Customer/Block/Widget/GenderTest.php | 2 +- .../Magento/Customer/Block/Widget/NameTest.php | 2 +- .../Magento/Customer/Block/Widget/TaxvatTest.php | 2 +- .../Magento/Customer/Controller/AccountTest.php | 2 +- .../Magento/Customer/Controller/AddressTest.php | 2 +- .../Adminhtml/Cart/Product/Composite/CartTest.php | 2 +- .../Customer/Controller/Adminhtml/GroupTest.php | 2 +- .../Adminhtml/Index/MassAssignGroupTest.php | 2 +- .../Controller/Adminhtml/Index/MassDeleteTest.php | 2 +- .../Adminhtml/Index/MassSubscribeTest.php | 2 +- .../Adminhtml/Index/ResetPasswordTest.php | 2 +- .../Customer/Controller/Adminhtml/IndexTest.php | 2 +- .../Magento/Customer/Controller/AjaxLoginTest.php | 2 +- .../Magento/Customer/Helper/AddressTest.php | 2 +- .../testsuite/Magento/Customer/Helper/ViewTest.php | 2 +- .../Customer/Model/AccountManagementTest.php | 2 +- .../Magento/Customer/Model/AddressMetadataTest.php | 2 +- .../Magento/Customer/Model/AddressRegistryTest.php | 2 +- .../Magento/Customer/Model/AddressTest.php | 2 +- .../Magento/Customer/Model/Config/ShareTest.php | 2 +- .../Model/Config/Source/Group/MultiselectTest.php | 2 +- .../Customer/Model/Config/Source/GroupTest.php | 2 +- .../Customer/Model/CustomerMetadataTest.php | 2 +- .../Customer/Model/CustomerRegistryTest.php | 2 +- .../Magento/Customer/Model/CustomerTest.php | 2 +- .../Magento/Customer/Model/FileResolverStub.php | 2 +- .../testsuite/Magento/Customer/Model/FormTest.php | 2 +- .../Magento/Customer/Model/GroupManagementTest.php | 2 +- .../Magento/Customer/Model/GroupRegistryTest.php | 2 +- .../testsuite/Magento/Customer/Model/GroupTest.php | 2 +- .../Customer/Model/Metadata/FormFactoryTest.php | 2 +- .../Magento/Customer/Model/Metadata/FormTest.php | 2 +- .../Model/ResourceModel/Address/CollectionTest.php | 2 +- .../Model/ResourceModel/AddressRepositoryTest.php | 2 +- .../ResourceModel/Customer/CollectionTest.php | 2 +- .../Model/ResourceModel/CustomerRepositoryTest.php | 2 +- .../Group/Grid/ServiceCollectionTest.php | 2 +- .../Model/ResourceModel/GroupRepositoryTest.php | 2 +- .../Magento/Customer/Model/VisitorTest.php | 2 +- .../_files/attribute_user_defined_address.php | 2 +- ...ibute_user_defined_address_custom_attribute.php | 2 +- ...r_defined_address_custom_attribute_rollback.php | 2 +- .../attribute_user_defined_address_rollback.php | 2 +- .../attribute_user_defined_custom_attribute.php | 2 +- ...bute_user_defined_custom_attribute_rollback.php | 2 +- .../_files/attribute_user_defined_customer.php | 2 +- .../attribute_user_defined_customer_rollback.php | 2 +- .../Customer/_files/attribute_user_fullname.php | 2 +- .../testsuite/Magento/Customer/_files/customer.php | 2 +- .../Magento/Customer/_files/customer_address.php | 2 +- .../Customer/_files/customer_address_rollback.php | 2 +- .../Customer/_files/customer_from_repository.php | 2 +- .../Magento/Customer/_files/customer_group.php | 2 +- .../Customer/_files/customer_no_address.php | 2 +- .../_files/customer_non_default_website_id.php | 2 +- .../customer_non_default_website_id_rollback.php | 2 +- .../Customer/_files/customer_primary_addresses.php | 2 +- .../Magento/Customer/_files/customer_rollback.php | 2 +- .../Magento/Customer/_files/customer_rp_token.php | 2 +- .../Magento/Customer/_files/customer_sample.php | 2 +- .../Customer/_files/customer_two_addresses.php | 2 +- .../Customer/_files/etc/extension_attributes.xml | 2 +- .../Customer/_files/import_export/customer.php | 2 +- .../import_export/customer_with_addresses.php | 2 +- .../Customer/_files/import_export/customers.php | 2 +- .../import_export/customers_for_address_import.php | 2 +- .../Magento/Customer/_files/inactive_customer.php | 2 +- .../testsuite/Magento/Customer/_files/quote.php | 2 +- .../Magento/Customer/_files/quote_rollback.php | 2 +- .../Magento/Customer/_files/sales_order.php | 2 +- .../Magento/Customer/_files/three_customers.php | 2 +- .../Magento/Customer/_files/two_customers.php | 2 +- .../Magento/Customer/etc/extension_attributes.xml | 2 +- .../Model/Export/AddressTest.php | 2 +- .../Model/Export/CustomerTest.php | 2 +- .../Model/Import/AddressTest.php | 2 +- .../Model/Import/CustomerCompositeTest.php | 2 +- .../Model/Import/CustomerTest.php | 2 +- .../CustomerImportExport/_files/two_addresses.php | 2 +- .../_files/two_addresses_rollback.php | 2 +- .../Command/App/ApplicationDumpCommandTest.php | 2 +- .../Magento/Deploy/_files/config_data.php | 2 +- .../Command/SourceThemeDeployCommandTest.php | 2 +- .../Magento/Developer/Helper/DataTest.php | 2 +- .../Model/Config/Backend/AllowedIpsTest.php | 2 +- .../Dhl/Block/Adminhtml/UnitofmeasureTest.php | 2 +- .../Magento/Directory/Helper/DataTest.php | 2 +- .../Model/Country/Postcode/ValidatorTest.php | 2 +- .../Magento/Directory/Model/ObserverTest.php | 2 +- .../Product/Edit/Tab/Downloadable/LinksTest.php | 2 +- .../Product/Edit/Tab/Downloadable/SamplesTest.php | 2 +- .../Downloadable/Controller/ProductTest.php | 2 +- .../Downloadable/Model/Product/TypeTest.php | 2 +- .../order_item_with_downloadable_and_options.php | 2 +- ...item_with_downloadable_and_options_rollback.php | 2 +- .../_files/order_with_downloadable_product.php | 2 +- .../Downloadable/_files/product_downloadable.php | 2 +- .../_files/product_downloadable_rollback.php | 2 +- .../_files/product_downloadable_with_files.php | 2 +- .../product_downloadable_with_files_rollback.php | 2 +- .../_files/quote_with_downloadable_product.php | 2 +- .../quote_with_downloadable_product_rollback.php | 2 +- .../Downloadable/etc/extension_attributes.xml | 2 +- .../Model/DownloadableTest.php | 2 +- .../Model/Import/Product/Type/DownloadableTest.php | 2 +- .../Attribute/Edit/Main/AbstractMainTest.php | 2 +- .../Entity/Attribute/CollectionTest.php | 2 +- .../Eav/Model/ResourceModel/UpdateHandlerTest.php | 2 +- .../Eav/Model/Validator/Attribute/BackendTest.php | 2 +- .../Magento/Eav/_files/empty_attribute_set.php | 2 +- .../Eav/_files/empty_attribute_set_rollback.php | 2 +- .../Block/Adminhtml/Template/Edit/FormTest.php | 2 +- .../Controller/Adminhtml/Email/TemplateTest.php | 2 +- .../Magento/Email/Model/Template/FilterTest.php | 2 +- .../testsuite/Magento/Email/Model/TemplateTest.php | 2 +- .../code/Magento/Email/view/email/footer.html | 2 +- .../code/Magento/Email/view/email/header.html | 2 +- .../layout/email_template_test_handle.xml | 2 +- .../templates/sample_email_content.phtml | 2 +- .../Magento_ProductAlert/email/cron_error.html | 2 +- .../adminhtml/Magento/default/registration.php | 2 +- .../design/adminhtml/Magento/default/theme.xml | 2 +- .../adminhtml/Vendor/custom_theme/registration.php | 2 +- .../design/adminhtml/Vendor/custom_theme/theme.xml | 2 +- .../adminhtml/Vendor/default/registration.php | 2 +- .../design/adminhtml/Vendor/default/theme.xml | 2 +- .../email/account_new_confirmed.html | 2 +- .../layout/email_template_test_handle.xml | 2 +- .../templates/sample_email_content.phtml | 2 +- .../templates/sample_email_content_custom.phtml | 2 +- .../frontend/Magento/default/registration.php | 2 +- .../design/frontend/Magento/default/theme.xml | 2 +- .../frontend/Magento/default/web/css/email-3.less | 2 +- .../Magento/default/web/css/email-inline-3.less | 2 +- .../Magento/default/web/css/file-with-error.less | 2 +- .../Magento_Customer/email/account_new.html | 2 +- .../frontend/Vendor/custom_theme/registration.php | 2 +- .../design/frontend/Vendor/custom_theme/theme.xml | 2 +- .../Vendor/custom_theme/web/css/email-1.less | 2 +- .../custom_theme/web/css/email-inline-1.less | 2 +- .../email/account_new_confirmation.html | 2 +- .../frontend/Vendor/default/registration.php | 2 +- .../design/frontend/Vendor/default/theme.xml | 2 +- .../frontend/Vendor/default/web/css/email-2.less | 2 +- .../Vendor/default/web/css/email-inline-2.less | 2 +- .../Magento/Email/Model/_files/email_template.php | 2 +- .../Block/Adminhtml/Crypt/Key/EditTest.php | 2 +- .../Block/Adminhtml/Crypt/Key/FormTest.php | 2 +- .../Controller/Adminhtml/Crypt/Key/IndexTest.php | 2 +- .../Controller/Adminhtml/Crypt/Key/SaveTest.php | 2 +- .../Model/ResourceModel/Key/ChangeTest.php | 2 +- .../Magento/EncryptionKey/_files/payment_info.php | 2 +- .../testsuite/Magento/Fedex/Model/CarrierTest.php | 2 +- .../Fedex/Model/Source/UnitofmeasureTest.php | 2 +- .../Framework/Api/AbstractExtensibleObjectTest.php | 2 +- .../Api/ExtensionAttribute/Config/ReaderTest.php | 2 +- .../Config/_files/config_one.xml | 2 +- .../Config/_files/config_two.xml | 2 +- .../Api/ExtensionAttribute/JoinProcessorTest.php | 2 +- .../Api/ExtensionAttributesFactoryTest.php | 2 +- .../Wonderland/Api/Data/FakeAddressInterface.php | 2 +- .../Api/Data/FakeExtensibleOneInterface.php | 2 +- .../Api/Data/FakeExtensibleTwoInterface.php | 2 +- .../Wonderland/Api/Data/FakeRegionInterface.php | 2 +- .../Magento/Wonderland/Model/Data/FakeAddress.php | 2 +- .../Wonderland/Model/Data/FakeExtensibleOne.php | 2 +- .../Wonderland/Model/Data/FakeExtensibleTwo.php | 2 +- .../Magento/Wonderland/Model/Data/FakeRegion.php | 2 +- .../Magento/Wonderland/Model/FakeAddress.php | 2 +- .../_files/Magento/Wonderland/Model/FakeRegion.php | 2 +- .../Framework/Api/_files/extension_attributes.xml | 2 +- .../Framework/Api/etc/extension_attributes.xml | 2 +- .../testsuite/Magento/Framework/App/AreaTest.php | 2 +- .../Magento/Framework/App/Config/BaseTest.php | 2 +- .../Magento/Framework/App/Config/DataTest.php | 2 +- .../Magento/Framework/App/FrontControllerTest.php | 2 +- .../Framework/App/Language/DictionaryTest.php | 2 +- .../App/Language/_files/bar/en_gb/language.xml | 2 +- .../App/Language/_files/bar/en_gb/registration.php | 2 +- .../App/Language/_files/bar/en_us/language.xml | 2 +- .../App/Language/_files/bar/en_us/registration.php | 2 +- .../App/Language/_files/baz/en_gb/language.xml | 2 +- .../App/Language/_files/baz/en_gb/registration.php | 2 +- .../App/Language/_files/first/en_us/language.xml | 2 +- .../Language/_files/first/en_us/registration.php | 2 +- .../App/Language/_files/foo/en_au/language.xml | 2 +- .../App/Language/_files/foo/en_au/registration.php | 2 +- .../App/Language/_files/my/ru_ru/language.xml | 2 +- .../App/Language/_files/my/ru_ru/registration.php | 2 +- .../App/Language/_files/second/en_gb/language.xml | 2 +- .../Language/_files/second/en_gb/registration.php | 2 +- .../App/Language/_files/theirs/ru_ru/language.xml | 2 +- .../Language/_files/theirs/ru_ru/registration.php | 2 +- .../Magento/Framework/App/Request/HttpTest.php | 2 +- .../ResourceConnection/ConnectionFactoryTest.php | 2 +- .../HeaderProvider/AbstractHeaderTestCase.php | 2 +- .../App/Response/HeaderProvider/HstsTest.php | 2 +- .../HeaderProvider/UpgradeInsecureTest.php | 2 +- .../Response/HeaderProvider/XFrameOptionsTest.php | 2 +- .../Magento/Framework/App/Router/BaseTest.php | 2 +- .../Magento/Framework/App/Utility/FilesTest.php | 2 +- .../_files/fixtures/language/registration.php | 2 +- .../_files/fixtures/library/registration.php | 2 +- .../_files/fixtures/module/registration.php | 2 +- .../Utility/_files/fixtures/theme/registration.php | 2 +- .../Framework/Cache/Backend/MongoDbTest.php | 2 +- .../testsuite/Magento/Framework/Cache/CoreTest.php | 2 +- .../Magento/Framework/Code/GeneratorTest.php | 2 +- .../GeneratorTest/ParentClassWithNamespace.php | 2 +- .../GeneratorTest/SourceClassWithNamespace.php | 2 +- .../Code/Reader/SourceArgumentsReaderTest.php | 2 +- .../_files/SourceArgumentsReaderTest.php.sample | 2 +- .../SourceClassWithNamespaceFactory.php.sample | 2 +- .../SourceClassWithNamespaceInterceptor.php.sample | 2 +- .../SourceClassWithNamespaceProxy.php.sample | 2 +- .../Magento/Framework/Code/_files/ClassToFind.php | 2 +- .../Magento/Framework/Communication/ConfigTest.php | 2 +- ...communication_incorrect_request_schema_type.php | 2 +- .../_files/communication_invalid_topic_name.php | 2 +- ...communication_is_synchronous_is_not_boolean.php | 2 +- .../_files/communication_missing_handler.xml | 2 +- .../_files/communication_missing_request.xml | 2 +- ...nication_multiple_handlers_synchronous_mode.php | 2 +- ...nication_multiple_handlers_synchronous_mode.xml | 2 +- .../_files/communication_no_attributes.xml | 2 +- .../communication_not_existing_handler_method.php | 2 +- .../communication_not_existing_handler_method.xml | 2 +- .../_files/communication_not_existing_service.xml | 2 +- .../communication_not_existing_service_method.xml | 2 +- .../communication_request_not_existing_service.php | 2 +- .../communication_request_not_existing_service.xml | 2 +- ...communication_response_not_existing_service.php | 2 +- ...communication_response_not_existing_service.xml | 2 +- .../communication_topic_with_excessive_keys.php | 2 +- .../communication_topic_with_missed_keys.php | 2 +- .../_files/communication_topic_without_data.php | 2 +- .../_files/communication_with_disabled_handler.php | 2 +- .../_files/communication_with_non_matched_name.php | 2 +- .../Communication/_files/valid_communication.xml | 2 +- .../_files/valid_communication_expected.php | 2 +- .../_files/valid_communication_input.php | 2 +- .../Framework/Composer/ComposerInformationTest.php | 2 +- .../Magento/Framework/Composer/RemoveTest.php | 2 +- .../Composer/_files/testFromClone/vendor/README | 2 +- .../_files/testFromCreateProject/vendor/README | 2 +- .../Composer/_files/testSkeleton/vendor/README | 2 +- .../Framework/Composer/_files/vendor_path.php | 2 +- .../PreProcessor/File/Collector/AggregatedTest.php | 2 +- .../_files/code/Magento/Other/registration.php | 2 +- .../code/Magento/Other/view/frontend/web/3.less | 2 +- .../_files/code/Magento/Third/registration.php | 2 +- .../code/Magento/Third/view/frontend/web/3.less | 2 +- .../MagentoFrameworkCssTest_Third/web/3.less | 2 +- .../design/frontend/Test/default/registration.php | 2 +- .../_files/design/frontend/Test/default/theme.xml | 2 +- .../design/frontend/Test/parent/registration.php | 2 +- .../_files/design/frontend/Test/parent/theme.xml | 2 +- .../Css/PreProcessor/_files/lib/web/3.less | 2 +- .../Magento/Framework/DB/Adapter/InterfaceTest.php | 2 +- .../Magento/Framework/DB/Adapter/Pdo/MysqlTest.php | 2 +- .../testsuite/Magento/Framework/DB/HelperTest.php | 2 +- .../Magento/Framework/DB/TransactionTest.php | 2 +- .../Data/Argument/Interpreter/StringUtilsTest.php | 2 +- .../Framework/Data/Form/Element/DateTest.php | 2 +- .../Framework/Data/Form/Element/FieldsetTest.php | 2 +- .../Framework/Data/Form/Element/ImageTest.php | 2 +- .../DataObject/Copy/Config/ReaderTest.php | 2 +- .../Copy/Config/_files/expectedArray.php | 2 +- .../DataObject/Copy/Config/_files/fieldset.xml | 2 +- .../Copy/Config/_files/partialFieldsetFirst.xml | 2 +- .../Copy/Config/_files/partialFieldsetSecond.xml | 2 +- .../Magento/Framework/DataObject/CopyTest.php | 2 +- .../Api/Data/FakeAttributeMetadataInterface.php | 2 +- .../Wonderland/Api/Data/FakeCustomerInterface.php | 2 +- .../Model/Data/FakeAttributeMetadata.php | 2 +- .../Magento/Wonderland/Model/Data/FakeCustomer.php | 2 +- .../Wonderland/Model/FakeAttributeMetadata.php | 2 +- .../Magento/Wonderland/Model/FakeCustomer.php | 2 +- .../Magento/Framework/Encryption/EncryptorTest.php | 2 +- .../Magento/Framework/Encryption/ModelTest.php | 2 +- .../Exception/NoSuchEntityExceptionTest.php | 2 +- .../testsuite/Magento/Framework/File/SizeTest.php | 2 +- .../Framework/Filesystem/Directory/ReadTest.php | 2 +- .../Framework/Filesystem/Directory/WriteTest.php | 2 +- .../Framework/Filesystem/Driver/FileTest.php | 2 +- .../Magento/Framework/Filesystem/File/ReadTest.php | 2 +- .../Framework/Filesystem/File/WriteTest.php | 2 +- .../Framework/Filesystem/FileResolverTest.php | 2 +- .../Framework/Filesystem/FilesystemTest.php | 2 +- .../Framework/Filesystem/_files/ClassToFind.php | 2 +- .../Filter/Template/Tokenizer/ParameterTest.php | 2 +- .../Magento/Framework/HTTP/HeaderTest.php | 2 +- .../HTTP/PhpEnvironment/RemoteAddressTest.php | 2 +- .../HTTP/PhpEnvironment/ServerAddressTest.php | 2 +- .../Magento/Framework/Image/Adapter/ConfigTest.php | 2 +- .../Framework/Image/Adapter/InterfaceTest.php | 2 +- .../Framework/Interception/AbstractPlugin.php | 2 +- .../Framework/Interception/Fixture/Intercepted.php | 2 +- .../Fixture/Intercepted/FirstPlugin.php | 2 +- .../Fixture/Intercepted/InterfacePlugin.php | 2 +- .../Interception/Fixture/Intercepted/Plugin.php | 2 +- .../Interception/Fixture/InterceptedInterface.php | 2 +- .../Interception/Fixture/InterceptedParent.php | 2 +- .../Fixture/InterceptedParentInterface.php | 2 +- .../Magento/Framework/Interception/GeneralTest.php | 2 +- .../Framework/Interception/TwoPluginTest.php | 2 +- .../Magento/Framework/Json/Helper/DataTest.php | 2 +- .../Framework/Message/CollectionFactoryTest.php | 2 +- .../Magento/Framework/Message/FactoryTest.php | 2 +- .../Magento/Framework/Message/ManagerTest.php | 2 +- .../Framework/Model/Entity/HydratorTest.php | 2 +- .../Model/ResourceModel/Db/AbstractTest.php | 2 +- .../ResourceModel/Db/Collection/AbstractTest.php | 2 +- .../Model/ResourceModel/Db/ProfilerTest.php | 2 +- .../Model/ResourceModel/Entity/TableTest.php | 2 +- .../Framework/Model/ResourceModel/IteratorTest.php | 2 +- .../Type/Db/ConnectionFactoryTest.php | 2 +- .../Model/ResourceModel/Type/Db/Pdo/MysqlTest.php | 2 +- .../Magento/Framework/Model/ResourceTest.php | 2 +- .../Module/Plugin/DbStatusValidatorTest.php | 2 +- .../Magento/Framework/Mview/View/ChangelogTest.php | 2 +- .../ObjectManager/Config/Reader/DomTest.php | 2 +- .../Framework/ObjectManager/ObjectManagerTest.php | 2 +- .../Framework/ObjectManager/TestAsset/Basic.php | 2 +- .../TestAsset/ConstructorEightArguments.php | 2 +- .../TestAsset/ConstructorFiveArguments.php | 2 +- .../TestAsset/ConstructorFourArguments.php | 2 +- .../TestAsset/ConstructorNineArguments.php | 2 +- .../TestAsset/ConstructorNoArguments.php | 2 +- .../TestAsset/ConstructorSevenArguments.php | 2 +- .../TestAsset/ConstructorSixArguments.php | 2 +- .../TestAsset/ConstructorTenArguments.php | 2 +- .../TestAsset/ConstructorThreeArguments.php | 2 +- .../TestAsset/ConstructorTwoArguments.php | 2 +- .../TestAsset/InterfaceImplementation.php | 2 +- .../ObjectManager/TestAsset/InterfaceInjection.php | 2 +- .../ObjectManager/TestAsset/TestAssetInterface.php | 2 +- .../ObjectManager/_files/config_merged.xml | 2 +- .../Framework/ObjectManager/_files/config_one.xml | 2 +- .../Framework/ObjectManager/_files/config_two.xml | 2 +- .../Magento/Framework/Pricing/Helper/DataTest.php | 2 +- .../Driver/Standard/Output/CsvfileTest.php | 2 +- .../Driver/Standard/Output/FirebugTest.php | 2 +- .../Profiler/Driver/Standard/Output/HtmlTest.php | 2 +- .../Driver/Standard/Output/_files/output.html | 2 +- .../Driver/Standard/Output/_files/timers.php | 2 +- .../testsuite/Magento/Framework/ProfilerTest.php | 2 +- .../Framework/Search/Adapter/Mysql/AdapterTest.php | 2 +- .../Adapter/Mysql/Builder/Query/MatchTest.php | 2 +- .../Search/Request/Config/ConverterTest.php | 2 +- .../Search/Request/Config/FileResolverStub.php | 2 +- .../Search/Request/Config/FileSystemReaderTest.php | 2 +- .../Framework/Search/Request/MapperTest.php | 2 +- .../Search/_files/configurable_attribute.php | 2 +- .../_files/configurable_attribute_rollback.php | 2 +- .../Search/_files/custom_product_tax_class.php | 2 +- .../_files/custom_product_tax_class_rollback.php | 2 +- .../Framework/Search/_files/date_attribute.php | 2 +- .../Search/_files/date_attribute_rollback.php | 2 +- .../Search/_files/etc/search_request_1.xml | 2 +- .../Search/_files/etc/search_request_2.xml | 2 +- .../Search/_files/filterable_attribute.php | 2 +- .../_files/filterable_attribute_rollback.php | 2 +- .../Framework/Search/_files/grouped_product.php | 2 +- .../Search/_files/grouped_product_rollback.php | 2 +- .../Framework/Search/_files/price_attribute.php | 2 +- .../Search/_files/price_attribute_rollback.php | 2 +- .../Search/_files/product_configurable.php | 2 +- .../_files/product_configurable_rollback.php | 2 +- .../product_configurable_with_disabled_child.php | 2 +- ...t_configurable_with_disabled_child_rollback.php | 2 +- .../Magento/Framework/Search/_files/products.php | 2 +- .../Framework/Search/_files/products_rollback.php | 2 +- .../Magento/Framework/Search/_files/requests.xml | 2 +- .../Framework/Search/_files/search_request.xml | 2 +- .../Search/_files/search_request_config.php | 2 +- .../Search/_files/search_request_merged.php | 2 +- .../Config/Validator/CookieDomainValidatorTest.php | 2 +- .../Validator/CookieLifetimeValidatorTest.php | 2 +- .../Config/Validator/CookiePathValidatorTest.php | 2 +- .../Magento/Framework/Session/ConfigTest.php | 2 +- .../Framework/Session/SaveHandler/DbTableTest.php | 2 +- .../Magento/Framework/Session/SaveHandlerTest.php | 2 +- .../Framework/Session/SessionManagerTest.php | 2 +- .../Magento/Framework/Session/SidResolverTest.php | 2 +- .../Framework/Stdlib/Cookie/CookieScopeTest.php | 2 +- .../Stdlib/Cookie/PhpCookieManagerTest.php | 2 +- .../Stdlib/Cookie/PhpCookieReaderTest.php | 2 +- .../Magento/Framework/Translate/InlineTest.php | 2 +- .../Translate/_files/_inline_page_expected.html | 2 +- .../Translate/_files/_inline_page_original.html | 2 +- .../Translate/_files/_translation_data.php | 2 +- .../Magento/Framework/TranslateCachingTest.php | 2 +- .../testsuite/Magento/Framework/TranslateTest.php | 2 +- .../Magento/Framework/Url/Helper/DataTest.php | 2 +- .../testsuite/Magento/Framework/UrlTest.php | 2 +- .../Magento/Framework/Validator/FactoryTest.php | 2 +- .../Magento/Framework/ValidatorFactoryTest.php | 2 +- .../Magento/Framework/View/Asset/MinifierTest.php | 2 +- .../View/Design/Fallback/RulePoolTest.php | 2 +- .../View/Design/FileResolution/FallbackTest.php | 2 +- .../Framework/View/Design/Theme/LabelTest.php | 2 +- .../Framework/View/Design/Theme/ValidatorTest.php | 2 +- .../Framework/View/Element/AbstractBlockTest.php | 2 +- .../Framework/View/Element/TemplateTest.php | 2 +- .../Framework/View/Element/Text/ListTest.php | 2 +- .../Magento/Framework/View/Element/TextTest.php | 2 +- .../_files/frontend/Magento/plushe/css/wrong.css | 2 +- .../Magento/Framework/View/FileSystemTest.php | 2 +- .../Framework/View/Fixture/Block/BrokenAction.php | 2 +- .../View/Fixture/Block/BrokenConstructor.php | 2 +- .../Framework/View/Fixture/Block/BrokenLayout.php | 2 +- .../Magento/Framework/View/Layout/ElementTest.php | 2 +- .../Magento/Framework/View/Layout/MergeTest.php | 2 +- .../Framework/View/Layout/Reader/BlockTest.php | 2 +- .../Layout/Reader/_files/_layout_update_block.xml | 2 +- .../Reader/_files/_layout_update_reference.xml | 2 +- .../View/Layout/_files/_layout_update.xml | 2 +- .../layout/catalog_category_default.xml | 2 +- .../layout/catalog_category_layered.xml | 2 +- .../_mergeFiles/layout/catalog_product_view.xml | 2 +- .../catalog_product_view_type_configurable.xml | 2 +- .../layout/catalog_product_view_type_simple.xml | 2 +- .../_mergeFiles/layout/checkout_index_index.xml | 2 +- .../Layout/_mergeFiles/layout/customer_account.xml | 2 +- .../View/Layout/_mergeFiles/layout/default.xml | 2 +- .../View/Layout/_mergeFiles/layout/file_wrong.xml | 2 +- .../_mergeFiles/layout/fixture_handle_one.xml | 2 +- .../layout/fixture_handle_page_layout.xml | 2 +- .../_mergeFiles/layout/fixture_handle_two.xml | 2 +- .../layout/fixture_handle_with_page_layout.xml | 2 +- .../Layout/_mergeFiles/layout/not_a_page_type.xml | 2 +- .../View/Layout/_mergeFiles/layout/page_empty.xml | 2 +- .../View/Layout/_mergeFiles/layout/print.xml | 2 +- .../_mergeFiles/layout/sales_guest_print.xml | 2 +- .../_mergeFiles/layout/sales_order_print.xml | 2 +- .../Framework/View/Layout/_mergeFiles/merged.xml | 2 +- .../Framework/View/LayoutArgumentObjectUpdater.php | 2 +- .../Framework/View/LayoutArgumentSimpleUpdater.php | 2 +- .../Framework/View/LayoutDirectivesTest.php | 2 +- .../Magento/Framework/View/LayoutTest.php | 2 +- .../Framework/View/LayoutTestWithExceptions.php | 2 +- .../Framework/View/Model/Layout/MergeTest.php | 2 +- .../Layout/_files/layout/fixture_handle_one.xml | 2 +- .../Layout/_files/layout/fixture_handle_two.xml | 2 +- .../Framework/View/Page/Config/Reader/HtmlTest.php | 2 +- .../Page/Config/Reader/_files/_layout_update.xml | 2 +- .../Magento/Framework/View/Utility/Layout.php | 2 +- .../Magento/Framework/View/Utility/LayoutTest.php | 2 +- .../View/Utility/_files/layout/handle_one.xml | 2 +- .../View/Utility/_files/layout/handle_three.xml | 2 +- .../View/Utility/_files/layout/handle_two.xml | 2 +- .../_files/layout_merged/multiple_handles.xml | 2 +- .../Utility/_files/layout_merged/single_handle.xml | 2 +- .../View/_files/Fixture_Module/registration.php | 2 +- .../ModuleA/view/adminhtml/product/product.css | 2 +- .../Magento/ModuleC/view/adminhtml/styles.css | 2 +- .../app/code/ViewTest_Module/registration.php | 2 +- .../templates/fixture_template_two.phtml | 2 +- .../ViewTest_Module/web/fixture_script_two.js | 2 +- .../frontend/Vendor/custom_theme/registration.php | 2 +- .../templates/fixture_template_two.phtml | 2 +- .../design/frontend/Vendor/custom_theme/theme.xml | 2 +- .../Vendor/custom_theme/web/fixture_script_two.js | 2 +- .../Vendor/custom_theme/web/mage/script.js | 2 +- .../frontend/Vendor/custom_theme2/registration.php | 2 +- .../design/frontend/Vendor/custom_theme2/theme.xml | 2 +- .../templates/fixture_template.phtml | 2 +- .../default/ViewTest_Module/web/fixture_script.js | 2 +- .../web/i18n/ru_RU/fixture_script.js | 2 +- .../frontend/Vendor/default/registration.php | 2 +- .../default/templates/fixture_template.phtml | 2 +- .../design/frontend/Vendor/default/theme.xml | 2 +- .../frontend/Vendor/default/web/fixture_script.js | 2 +- .../default/web/i18n/ru_RU/fixture_script.js | 2 +- .../Vendor/standalone_theme/registration.php | 2 +- .../frontend/Vendor/standalone_theme/theme.xml | 2 +- .../View/_files/fallback/lib/web/mage/script.js | 2 +- .../Framework/View/_files/layout/cacheable.xml | 2 +- .../View/_files/layout/container_attributes.xml | 2 +- .../Framework/View/_files/layout/non_cacheable.xml | 2 +- .../action_for_anonymous_parent_block.xml | 2 +- .../_files/layout_directives_test/arguments.xml | 2 +- .../arguments_complex_values.xml | 2 +- .../arguments_object_type.xml | 2 +- .../arguments_object_type_updaters.xml | 2 +- .../layout_directives_test/arguments_url_type.xml | 2 +- .../_files/layout_directives_test/get_block.xml | 2 +- .../View/_files/layout_directives_test/group.xml | 2 +- .../_files/layout_directives_test/ifconfig.xml | 2 +- .../View/_files/layout_directives_test/move.xml | 2 +- .../layout_directives_test/move_alias_broken.xml | 2 +- .../_files/layout_directives_test/move_broken.xml | 2 +- .../layout_directives_test/move_new_alias.xml | 2 +- .../layout_directives_test/move_the_same_alias.xml | 2 +- .../View/_files/layout_directives_test/remove.xml | 2 +- .../layout_directives_test/remove_broken.xml | 2 +- .../View/_files/layout_directives_test/render.xml | 2 +- .../layout_directives_test/sort_after_after.xml | 2 +- .../layout_directives_test/sort_after_previous.xml | 2 +- .../layout_directives_test/sort_before_after.xml | 2 +- .../layout_directives_test/sort_before_before.xml | 2 +- .../View/_files/layout_with_exceptions/layout.xml | 2 +- .../View/_files/static/theme/registration.php | 2 +- .../Framework/View/_files/static/theme/theme.xml | 2 +- .../theme/web/css/preminified-styles.min.css | 2 +- .../View/_files/static/theme/web/css/styles.css | 4 ++-- .../View/_files/static/theme/web/js/test.js | 2 +- .../GiftMessage/Model/OrderItemRepositoryTest.php | 2 +- .../GiftMessage/Model/OrderRepositoryTest.php | 2 +- .../Magento/GiftMessage/_files/empty_order.php | 2 +- .../GiftMessage/_files/order_with_message.php | 2 +- .../_files/quote_with_customer_and_message.php | 2 +- .../quote_with_customer_and_message_rollback.php | 2 +- .../GiftMessage/_files/quote_with_item_message.php | 2 +- .../_files/quote_with_item_message_rollback.php | 2 +- .../GiftMessage/_files/quote_with_message.php | 2 +- .../_files/quote_with_message_rollback.php | 2 +- .../Magento/GiftMessage/_files/virtual_order.php | 2 +- .../GoogleAdwords/Model/Validator/FactoryTest.php | 2 +- .../GroupedImportExport/Model/GroupedTest.php | 2 +- .../Model/Import/Product/Type/GroupedTest.php | 2 +- .../Model/Product/Type/GroupedTest.php | 2 +- .../Grouped/AssociatedProductsCollectionTest.php | 2 +- .../Pricing/Price/FinalPriceTest.php | 2 +- .../GroupedProduct/_files/product_grouped.php | 2 +- .../_files/product_grouped_rollback.php | 2 +- .../Block/Adminhtml/Export/Edit/FormTest.php | 2 +- .../Block/Adminhtml/Export/FilterTest.php | 2 +- .../Block/Adminhtml/Import/Edit/BeforeTest.php | 2 +- .../Block/Adminhtml/Import/Edit/FormTest.php | 2 +- .../Controller/Adminhtml/ExportTest.php | 2 +- .../Adminhtml/Import/HttpFactoryMock.php | 2 +- .../Controller/Adminhtml/Import/ValidateTest.php | 2 +- .../Controller/Adminhtml/ImportTest.php | 2 +- .../Model/Export/AbstractStubEntity.php | 2 +- .../Model/Export/Entity/AbstractEavTest.php | 2 +- .../Model/Export/EntityAbstractTest.php | 2 +- .../Magento/ImportExport/Model/ExportTest.php | 2 +- .../Model/Import/Entity/EavAbstractTest.php | 2 +- .../Model/Import/EntityAbstractTest.php | 2 +- .../Magento/ImportExport/Model/ImportTest.php | 2 +- .../Model/ResourceModel/Import/DataTest.php | 2 +- .../Model/Source/Import/EntityTest.php | 2 +- .../Magento/ImportExport/_files/import_data.php | 2 +- .../Magento/ImportExport/_files/product.php | 2 +- .../Indexer/Controller/Adminhtml/IndexerTest.php | 2 +- .../Magento/Indexer/Model/Config/ConverterTest.php | 2 +- .../Indexer/Model/Config/_files/indexer.xml | 2 +- .../Magento/Indexer/Model/Config/_files/result.php | 2 +- .../Activate/Permissions/Tab/WebapiTest.php | 2 +- .../Block/Adminhtml/Integration/Edit/FormTest.php | 2 +- .../Adminhtml/Integration/Edit/Tab/InfoTest.php | 2 +- .../Block/Adminhtml/Integration/EditTest.php | 2 +- .../Block/Adminhtml/Integration/GridTest.php | 2 +- .../Block/Adminhtml/Integration/TokensTest.php | 2 +- .../Grid/Column/Renderer/Button/DeleteTest.php | 2 +- .../Grid/Column/Renderer/Button/EditTest.php | 2 +- .../Grid/Column/Renderer/Link/ActivateTest.php | 2 +- .../Controller/Adminhtml/IntegrationTest.php | 2 +- .../Integration/Model/AdminTokenServiceTest.php | 2 +- .../Integration/Model/AuthorizationServiceTest.php | 2 +- .../Model/Config/Consolidated/ReaderTest.php | 2 +- .../Config/Consolidated/_files/integration.php | 2 +- .../Config/Consolidated/_files/integrationA.xml | 2 +- .../Config/Consolidated/_files/integrationB.xml | 2 +- .../Model/Config/Integration/ReaderTest.php | 2 +- .../Model/Config/Integration/_files/api.php | 2 +- .../Model/Config/Integration/_files/apiA.xml | 2 +- .../Model/Config/Integration/_files/apiB.xml | 2 +- .../Integration/Model/Config/ReaderTest.php | 2 +- .../Integration/Model/Config/_files/configA.xml | 2 +- .../Integration/Model/Config/_files/configB.xml | 2 +- .../Model/Config/_files/integration.php | 2 +- .../Integration/Model/CustomerTokenServiceTest.php | 2 +- .../Model/ResourceModel/IntegrationTest.php | 2 +- .../_files/integration_all_permissions.php | 2 +- .../integration_all_permissions_rollback.php | 2 +- .../MediaStorage/Model/File/StorageTest.php | 2 +- .../testsuite/Magento/MemoryUsageTest.php | 2 +- .../Block/Checkout/Address/SelectTest.php | 2 +- .../Multishipping/Block/Checkout/AddressesTest.php | 2 +- .../Multishipping/Block/Checkout/OverviewTest.php | 2 +- .../Multishipping/Controller/CheckoutTest.php | 2 +- .../Model/Checkout/Type/MultishippingTest.php | 2 +- .../Block/Adminhtml/Queue/Edit/FormTest.php | 2 +- .../Newsletter/Block/Adminhtml/SubscriberTest.php | 2 +- .../Controller/Adminhtml/NewsletterQueueTest.php | 2 +- .../Adminhtml/NewsletterTemplateTest.php | 2 +- .../Magento/Newsletter/Controller/ManageTest.php | 2 +- .../Newsletter/Controller/SubscriberTest.php | 2 +- .../Magento/Newsletter/Helper/DataTest.php | 2 +- .../Magento/Newsletter/Model/Plugin/PluginTest.php | 2 +- .../Magento/Newsletter/Model/QueueTest.php | 2 +- .../Model/ResourceModel/Problem/CollectionTest.php | 2 +- .../ResourceModel/Subscriber/CollectionTest.php | 2 +- .../Model/ResourceModel/SubscriberTest.php | 2 +- .../Magento/Newsletter/Model/SubscriberTest.php | 2 +- .../Magento/Newsletter/Model/TemplateTest.php | 2 +- .../Newsletter/_files/newsletter_sample.php | 2 +- .../Magento/Newsletter/_files/problems.php | 2 +- .../testsuite/Magento/Newsletter/_files/queue.php | 2 +- .../Magento/Newsletter/_files/subscribers.php | 2 +- .../Newsletter/_files/subscribers_rollback.php | 2 +- .../Magento/Newsletter/_files/template.php | 2 +- .../Magento/PageCache/Block/JavascriptTest.php | 2 +- .../Block/System/Config/Form/Field/ExportTest.php | 2 +- .../Model/System/Config/Backend/TtlTest.php | 2 +- .../Model/System/Config/Backend/VarnishTest.php | 2 +- .../testsuite/Magento/Payment/Block/InfoTest.php | 2 +- .../Payment/Block/Transparent/IframeTest.php | 2 +- .../testsuite/Magento/Payment/Helper/DataTest.php | 2 +- .../Magento/Payment/Model/Config/ReaderTest.php | 2 +- .../testsuite/Magento/Payment/Model/ConfigTest.php | 2 +- .../Magento/Payment/Model/_files/payment.xml | 2 +- .../Magento/Payment/Model/_files/payment2.xml | 2 +- ...ateOrderStatusForPaymentMethodsObserverTest.php | 2 +- .../Magento/Payment/_files/order_status.php | 2 +- .../Paypal/Adminhtml/Paypal/ReportsTest.php | 2 +- .../Billing/Agreement/View/Tab/InfoTest.php | 2 +- .../Paypal/Block/Billing/Agreement/ViewTest.php | 2 +- .../Magento/Paypal/Block/Bml/BannersTest.php | 2 +- .../Paypal/Block/Express/Review/BillingTest.php | 2 +- .../Magento/Paypal/Block/Express/ReviewTest.php | 2 +- .../Block/Payment/Form/Billing/AgreementTest.php | 2 +- .../Adminhtml/Billing/Agreement/CancelTest.php | 2 +- .../Adminhtml/Billing/Agreement/DeleteTest.php | 2 +- .../Adminhtml/Billing/Agreement/GridTest.php | 2 +- .../Adminhtml/Billing/Agreement/IndexTest.php | 2 +- .../Adminhtml/Billing/Agreement/ViewTest.php | 2 +- .../Controller/Adminhtml/Billing/AgreementTest.php | 2 +- .../Adminhtml/Paypal/Reports/DetailsTest.php | 2 +- .../Adminhtml/Paypal/Reports/FetchTest.php | 2 +- .../Adminhtml/Paypal/Reports/IndexTest.php | 2 +- .../Paypal/Controller/Billing/AgreementTest.php | 2 +- .../Magento/Paypal/Controller/ExpressTest.php | 2 +- .../Magento/Paypal/Controller/HostedproTest.php | 2 +- .../Magento/Paypal/Controller/PayflowTest.php | 2 +- .../Paypal/Controller/PayflowadvancedTest.php | 2 +- .../Config/Structure/Reader/ConverterStub.php | 2 +- .../Model/Config/Structure/Reader/ReaderStub.php | 2 +- .../Model/Config/Structure/Reader/ReaderTest.php | 2 +- .../Structure/Reader/_files/actual/config.xml | 2 +- .../Structure/Reader/_files/expected/config.xml | 2 +- .../Magento/Paypal/Model/Express/CheckoutTest.php | 2 +- .../Magento/Paypal/Model/Hostedpro/RequestTest.php | 2 +- .../Magento/Paypal/Model/HostedproTest.php | 2 +- .../testsuite/Magento/Paypal/Model/IpnTest.php | 2 +- .../Magento/Paypal/Model/PayflowproTest.php | 2 +- .../Method/Billing/AbstractAgreementTest.php | 2 +- .../Magento/Paypal/Model/Report/SettlementTest.php | 2 +- .../Billing/Agreement/CollectionTest.php | 2 +- .../testsuite/Magento/Paypal/Model/VoidTest.php | 2 +- .../Magento/Paypal/_files/address_data.php | 2 +- .../Magento/Paypal/_files/billing_agreement.php | 2 +- .../testsuite/Magento/Paypal/_files/ipn.php | 2 +- .../Magento/Paypal/_files/order_express.php | 2 +- .../Magento/Paypal/_files/order_hostedpro.php | 2 +- .../Magento/Paypal/_files/order_payflowpro.php | 2 +- .../Magento/Paypal/_files/quote_express.php | 2 +- .../Paypal/_files/quote_express_configurable.php | 2 +- .../Paypal/_files/quote_express_with_customer.php | 2 +- .../Magento/Paypal/_files/quote_payment.php | 2 +- .../Paypal/_files/quote_payment_express.php | 2 +- .../_files/quote_payment_express_with_customer.php | 2 +- .../Paypal/_files/quote_payment_payflow.php | 2 +- .../Persistent/Block/Header/AdditionalTest.php | 2 +- ...GuestPaymentInformationManagementPluginTest.php | 2 +- .../Magento/Persistent/Model/ObserverTest.php | 2 +- .../Persistent/Model/Persistent/ConfigTest.php | 2 +- .../Model/Persistent/_files/expectedArray.php | 2 +- .../Persistent/_files/expectedBlocksArray.php | 2 +- .../Model/Persistent/_files/persistent.xml | 2 +- .../Magento/Persistent/Model/SessionTest.php | 2 +- .../Observer/EmulateCustomerObserverTest.php | 2 +- .../Observer/EmulateQuoteObserverTest.php | 2 +- .../SynchronizePersistentOnLoginObserverTest.php | 2 +- .../SynchronizePersistentOnLogoutObserverTest.php | 2 +- .../Magento/Persistent/_files/persistent.php | 2 +- .../Magento/ProductAlert/Model/EmailTest.php | 2 +- .../Magento/ProductAlert/Model/ObserverTest.php | 2 +- .../Magento/ProductAlert/_files/product_alert.php | 2 +- .../Magento/Quote/Model/Quote/AddressTest.php | 2 +- .../Quote/Model/Quote/Item/RepositoryTest.php | 2 +- .../Magento/Quote/Model/QuoteManagementTest.php | 2 +- .../Magento/Quote/Model/QuoteRepositoryTest.php | 2 +- .../testsuite/Magento/Quote/Model/QuoteTest.php | 2 +- .../Quote/Address/CollectTotalsObserverTest.php | 2 +- .../testsuite/Magento/Quote/_files/empty_quote.php | 2 +- .../Magento/Quote/_files/empty_quote_rollback.php | 2 +- .../Quote/_files/is_not_salable_product.php | 2 +- .../_files/is_not_salable_product_rollback.php | 2 +- .../Magento/Quote/etc/extension_attributes.xml | 2 +- .../Reports/Block/Adminhtml/Filter/FormTest.php | 2 +- .../Magento/Reports/Block/Adminhtml/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Bestsellers/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Coupons/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Invoiced/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Refunded/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Sales/GridTest.php | 2 +- .../Block/Adminhtml/Sales/Shipping/GridTest.php | 2 +- .../Reports/Block/Adminhtml/Sales/Tax/GridTest.php | 2 +- .../Adminhtml/Shopcart/Abandoned/GridTest.php | 2 +- .../Block/Adminhtml/Shopcart/GridTestAbstract.php | 2 +- .../Block/Adminhtml/Shopcart/Product/GridTest.php | 2 +- .../testsuite/Magento/Reports/Block/WidgetTest.php | 2 +- .../Adminhtml/Report/Product/ViewedTest.php | 2 +- .../Report/Product/Viewed/CollectionTest.php | 2 +- .../Review/Customer/CollectionTest.php | 2 +- .../Review/Product/CollectionTest.php | 2 +- .../testsuite/Magento/Reports/_files/orders.php | 2 +- .../Magento/Reports/_files/viewed_products.php | 2 +- .../Review/Block/Adminhtml/Edit/FormTest.php | 2 +- .../Review/Block/Adminhtml/Edit/Tab/FormTest.php | 2 +- .../Magento/Review/Block/Adminhtml/MainTest.php | 2 +- .../Magento/Review/Controller/ProductTest.php | 2 +- .../Model/ResourceModel/Rating/CollectionTest.php | 2 +- .../Review/Model/ResourceModel/RatingTest.php | 2 +- .../Review/Product/CollectionTest.php | 2 +- .../Model/ResourceModel/Review/ReviewTest.php | 2 +- .../Magento/Review/_files/customer_review.php | 2 +- .../Review/_files/customer_review_with_rating.php | 2 +- .../Magento/Review/_files/different_reviews.php | 2 +- .../testsuite/Magento/Review/_files/review_xss.php | 2 +- .../testsuite/Magento/Review/_files/reviews.php | 2 +- .../Magento/Rule/Model/Condition/AbstractTest.php | 2 +- .../Sales/Block/Adminhtml/Items/AbstractTest.php | 2 +- .../Adminhtml/Order/Create/Form/AbstractTest.php | 2 +- .../Adminhtml/Order/Create/Form/AccountTest.php | 2 +- .../Adminhtml/Order/Create/Form/AddressTest.php | 2 +- .../Block/Adminhtml/Order/Create/FormTest.php | 2 +- .../Order/Create/Giftmessage/FormTest.php | 2 +- .../Block/Adminhtml/Order/Create/HeaderTest.php | 2 +- .../Sales/Block/Adminhtml/Order/View/InfoTest.php | 2 +- .../Adminhtml/Report/Filter/Form/CouponTest.php | 2 +- .../Magento/Sales/Block/Order/CommentsTest.php | 2 +- .../Sales/Block/Order/Creditmemo/ItemsTest.php | 2 +- .../Sales/Block/Order/Invoice/ItemsTest.php | 2 +- .../Magento/Sales/Block/Order/ItemsTest.php | 2 +- .../Block/Order/PrintOrder/CreditmemoTest.php | 2 +- .../Sales/Block/Order/PrintOrder/InvoiceTest.php | 2 +- .../Magento/Sales/Block/Order/TotalsTest.php | 2 +- .../Controller/Adminhtml/Order/AddCommentTest.php | 2 +- .../Controller/Adminhtml/Order/AddressSaveTest.php | 2 +- .../Controller/Adminhtml/Order/AddressTest.php | 2 +- .../Adminhtml/Order/AuthorizationMock.php | 2 +- .../Controller/Adminhtml/Order/CancelTest.php | 2 +- .../Controller/Adminhtml/Order/CreateTest.php | 2 +- .../Controller/Adminhtml/Order/CreditmemoTest.php | 2 +- .../Sales/Controller/Adminhtml/Order/EmailTest.php | 2 +- .../Sales/Controller/Adminhtml/Order/HoldTest.php | 2 +- .../Adminhtml/Order/ReviewPaymentTest.php | 2 +- .../Adminhtml/Order/Stub/OrderCreateStub.php | 2 +- .../Controller/Adminhtml/Order/UnholdTest.php | 2 +- .../Sales/Controller/Adminhtml/Order/ViewTest.php | 2 +- .../Adminhtml/Transactions/FetchTest.php | 2 +- .../Sales/Model/AbstractCollectorPositionsTest.php | 2 +- .../Magento/Sales/Model/AdminOrder/CreateTest.php | 2 +- .../Magento/Sales/Model/Convert/OrderTest.php | 2 +- .../Sales/Model/CronJob/CleanExpiredOrdersTest.php | 2 +- .../Sales/Model/Order/Address/RendererTest.php | 2 +- .../Magento/Sales/Model/Order/AddressTest.php | 2 +- .../Order/Email/Sender/CreditmemoSenderTest.php | 2 +- .../Model/Order/Email/Sender/InvoiceSenderTest.php | 2 +- .../Model/Order/Email/Sender/OrderSenderTest.php | 2 +- .../Order/Email/Sender/ShipmentSenderTest.php | 2 +- .../Magento/Sales/Model/Order/InvoiceTest.php | 2 +- .../Sales/Model/Order/Payment/TransactionTest.php | 2 +- .../Magento/Sales/Model/Order/ShipmentTest.php | 2 +- .../Sales/Model/OrderIncrementIdCheckerTest.php | 2 +- .../Sales/Model/ResourceModel/Order/StatusTest.php | 2 +- .../Sales/Model/ResourceModel/OrderTest.php | 2 +- .../Report/Bestsellers/CollectionTest.php | 2 +- .../Report/Invoiced/Collection/InvoicedTest.php | 2 +- .../Report/Invoiced/Collection/OrderTest.php | 2 +- .../Report/Refunded/Collection/OrderTest.php | 2 +- .../Report/Refunded/Collection/RefundedTest.php | 2 +- .../Report/Shipping/Collection/OrderTest.php | 2 +- .../Report/Shipping/Collection/ShipmentTest.php | 2 +- .../Model/ResourceModel/Sale/CollectionTest.php | 2 +- .../Sales/Observer/Backend/CustomerQuoteTest.php | 2 +- .../testsuite/Magento/Sales/_files/address.php | 2 +- .../Magento/Sales/_files/address_data.php | 2 +- .../Sales/_files/assign_status_to_state.php | 2 +- .../testsuite/Magento/Sales/_files/creditmemo.php | 2 +- .../Magento/Sales/_files/creditmemo_for_get.php | 2 +- .../Sales/_files/creditmemo_for_get_rollback.php | 2 +- .../Magento/Sales/_files/creditmemo_rollback.php | 2 +- .../Magento/Sales/_files/creditmemo_with_list.php | 2 +- .../Sales/_files/creditmemo_with_list_rollback.php | 2 +- .../Magento/Sales/_files/default_rollback.php | 2 +- .../testsuite/Magento/Sales/_files/invoice.php | 2 +- .../Sales/_files/invoice_fixture_store_order.php | 2 +- .../Magento/Sales/_files/invoice_payflowpro.php | 2 +- .../Magento/Sales/_files/invoice_rollback.php | 2 +- .../testsuite/Magento/Sales/_files/order.php | 2 +- .../Magento/Sales/_files/order_alphanumeric_id.php | 2 +- .../Sales/_files/order_configurable_product.php | 2 +- .../_files/order_configurable_product_rollback.php | 2 +- .../Magento/Sales/_files/order_fixture_store.php | 2 +- .../Sales/_files/order_fixture_store_rollback.php | 2 +- .../testsuite/Magento/Sales/_files/order_info.php | 2 +- .../Magento/Sales/_files/order_item_list.php | 2 +- .../Sales/_files/order_item_list_rollback.php | 2 +- .../testsuite/Magento/Sales/_files/order_new.php | 2 +- .../Magento/Sales/_files/order_new_rollback.php | 2 +- .../Sales/_files/order_paid_with_payflowpro.php | 2 +- .../Magento/Sales/_files/order_pending_payment.php | 2 +- .../Magento/Sales/_files/order_rollback.php | 2 +- .../Magento/Sales/_files/order_shipping.php | 2 +- ...order_shipping_address_different_to_billing.php | 2 +- .../order_shipping_address_same_as_billing.php | 2 +- .../Magento/Sales/_files/order_with_customer.php | 2 +- .../_files/order_with_shipping_and_invoice.php | 2 +- .../order_with_shipping_and_invoice_rollback.php | 2 +- .../testsuite/Magento/Sales/_files/quote.php | 2 +- .../Magento/Sales/_files/quote_rollback.php | 2 +- .../Magento/Sales/_files/quote_with_bundle.php | 2 +- .../Sales/_files/quote_with_bundle_rollback.php | 2 +- .../Magento/Sales/_files/quote_with_customer.php | 2 +- .../Sales/_files/quote_with_customer_rollback.php | 2 +- .../Magento/Sales/_files/report_bestsellers.php | 2 +- .../Magento/Sales/_files/report_invoiced.php | 2 +- .../Magento/Sales/_files/report_refunded.php | 2 +- .../Magento/Sales/_files/report_shipping.php | 2 +- .../testsuite/Magento/Sales/_files/shipment.php | 2 +- .../Magento/Sales/_files/shipment_rollback.php | 2 +- .../Magento/Sales/_files/transactions.php | 2 +- .../Magento/Sales/_files/transactions_detailed.php | 2 +- .../_files/two_orders_for_one_of_two_customers.php | 2 +- .../_files/two_orders_for_two_diff_customers.php | 2 +- .../Adminhtml/Promo/Quote/Edit/Tab/LabelsTest.php | 2 +- .../Model/Quote/Address/Total/ShippingTest.php | 2 +- .../ResourceModel/Report/Rule/CreatedatTest.php | 2 +- .../Model/ResourceModel/Rule/CollectionTest.php | 2 +- .../Model/Rule/Action/Discount/CartFixedTest.php | 2 +- .../SalesRule/Model/Rule/Condition/ProductTest.php | 2 +- .../SalesRule/_files/cart_rule_40_percent_off.php | 2 +- .../SalesRule/_files/cart_rule_50_percent_off.php | 2 +- .../SalesRule/_files/cart_rule_free_shipping.php | 2 +- .../_files/cart_rule_free_shipping_rollback.php | 2 +- .../_files/coupon_cart_fixed_discount.php | 2 +- .../testsuite/Magento/SalesRule/_files/coupons.php | 2 +- .../Magento/SalesRule/_files/order_with_coupon.php | 2 +- .../Magento/SalesRule/_files/report_coupons.php | 2 +- .../rule_free_shipping_by_product_weight.php | 2 +- ...le_free_shipping_by_product_weight_rollback.php | 2 +- .../SalesRule/_files/rule_specific_date.php | 2 +- .../testsuite/Magento/SalesRule/_files/rules.php | 2 +- .../SalesRule/_files/rules_autogeneration.php | 2 +- .../_files/rules_autogeneration_rollback.php | 2 +- .../Magento/SalesRule/_files/rules_categories.php | 2 +- .../SalesRule/_files/rules_categories_rollback.php | 2 +- .../Magento/SalesRule/_files/rules_category.php | 2 +- .../SalesRule/_files/rules_category_rollback.php | 2 +- .../_files/rules_group_all_categories.php | 2 +- .../rules_group_all_categories_price_attr_set.php | 2 +- .../_files/rules_group_any_categories.php | 2 +- .../rules_group_any_categories_price_address.php | 2 +- .../rules_group_any_categories_price_attr_set.php | 2 +- ...les_group_any_categories_price_attr_set_any.php | 2 +- ...les_group_categories_price_sku_attr_set_any.php | 2 +- .../_files/rules_group_not_categories_sku_attr.php | 2 +- .../Adminhtml/System/Config/Source/EngineTest.php | 2 +- .../Model/ResourceModel/SynonymGroupTest.php | 2 +- .../Search/Model/SearchEngine/ConfigTest.php | 2 +- .../testsuite/Magento/Search/Model/SearchTest.php | 2 +- .../Magento/Search/Model/SynonymAnalyzerTest.php | 2 +- .../Search/Model/SynonymGroupRepositoryTest.php | 2 +- .../Magento/Search/Model/SynonymReaderTest.php | 2 +- .../Magento/Search/_files/search_engine.xml | 2 +- .../Magento/Search/_files/synonym_reader.php | 2 +- .../Search/_files/synonym_reader_rollback.php | 2 +- .../Controller/Adminhtml/Session/LogoutAllTest.php | 2 +- .../Security/Model/AdminSessionsManagerTest.php | 2 +- .../Security/Model/Plugin/AuthSessionTest.php | 2 +- .../AdminSessionInfo/CollectionTest.php | 2 +- .../Model/ResourceModel/AdminSessionInfoTest.php | 2 +- .../PasswordResetRequestEvent/CollectionTest.php | 2 +- .../Magento/Security/Model/SecurityManagerTest.php | 2 +- .../Magento/SendFriend/Block/SendTest.php | 2 +- .../DependenciesShowFrameworkCommandTest.php | 2 +- .../DependenciesShowModulesCircularCommandTest.php | 2 +- .../Command/DependenciesShowModulesCommandTest.php | 2 +- .../Command/I18nCollectPhrasesCommandTest.php | 2 +- .../Setup/Console/Command/I18nPackCommandTest.php | 2 +- .../Console/Command/_files/phrases/TestPhrases.php | 2 +- .../_files/root/app/code/Magento/A/Model/Foo.php | 2 +- .../_files/root/app/code/Magento/A/etc/module.xml | 2 +- .../root/app/code/Magento/A/registration.php | 2 +- .../_files/root/app/code/Magento/B/Model/Foo.php | 2 +- .../_files/root/app/code/Magento/B/etc/module.xml | 2 +- .../root/app/code/Magento/B/registration.php | 2 +- .../root/app/code/Magento/C/registration.php | 2 +- .../root/app/code/Magento/D/registration.php | 2 +- .../Fixtures/FixturesAsserts/ProductAssert.php | 2 +- .../Setup/Fixtures/_files/attributeSets.xml | 2 +- .../Magento/Setup/Fixtures/_files/small.xml | 2 +- .../Setup/Model/ConfigOptionsListCollectorTest.php | 2 +- .../Setup/Model/Cron/MultipleStreamOutputTest.php | 2 +- .../Setup/Model/ObjectManagerProviderTest.php | 2 +- .../Magento/Setup/Module/DataSetupTest.php | 2 +- .../Setup/Module/Dependency/CircularTest.php | 2 +- .../Module/Dependency/Parser/Composer/JsonTest.php | 2 +- .../Module/Dependency/Parser/Config/XmlTest.php | 2 +- .../Module/Dependency/Report/CircularTest.php | 2 +- .../Module/Dependency/Report/DependencyTest.php | 2 +- .../Module/Dependency/Report/FrameworkTest.php | 2 +- .../code/Magento/FirstModule/Helper/Helper.php | 2 +- .../code/Magento/FirstModule/Model/Model.php | 2 +- .../FirstModule/Model/WithoutDependencies.php | 2 +- .../_files/code/Magento/FirstModule/etc/module.xml | 2 +- .../FirstModule/view/frontend/template.phtml | 2 +- .../Setup/Module/Dependency/_files/module1.xml | 2 +- .../Setup/Module/Dependency/_files/module2.xml | 2 +- .../Setup/Module/I18n/Dictionary/GeneratorTest.php | 2 +- .../app/code/Magento/FirstModule/Helper/Helper.php | 2 +- .../app/code/Magento/FirstModule/Model/Model.php | 2 +- .../Magento/FirstModule/view/frontend/default.xml | 2 +- .../code/Magento/FirstModule/view/frontend/file.js | 2 +- .../FirstModule/view/frontend/template.phtml | 2 +- .../app/code/Magento/SecondModule/Model/Model.php | 2 +- .../design/adminhtml/default/backend/default.xml | 2 +- .../adminhtml/default/backend/template.phtml | 2 +- .../Dictionary/_files/source/lib/web/mage/file.js | 2 +- .../_files/source/lib/web/varien/file.js | 2 +- .../_files/source/not_magento_dir/Model.php | 2 +- .../_files/source/not_magento_dir/file.js | 2 +- .../_files/source/not_magento_dir/template.phtml | 2 +- .../Setup/Module/I18n/Pack/GeneratorTest.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/JsTest.php | 2 +- .../Adapter/Php/Tokenizer/PhraseCollectorTest.php | 2 +- .../Tokenizer/Translate/MethodCollectorTest.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/XmlTest.php | 2 +- .../Parser/Adapter/_files/xmlPhrasesForTest.xml | 2 +- .../testsuite/Magento/Shipping/Block/ItemsTest.php | 2 +- .../testsuite/Magento/Shipping/Helper/DataTest.php | 2 +- .../testsuite/Magento/Sitemap/Helper/DataTest.php | 2 +- .../Model/ResourceModel/Catalog/ProductTest.php | 2 +- .../Magento/Sitemap/_files/sitemap_products.php | 2 +- .../Sitemap/_files/sitemap_products_rollback.php | 2 +- .../Store/App/Request/PathInfoProcessorTest.php | 2 +- .../testsuite/Magento/Store/Block/SwitcherTest.php | 2 +- .../Store/Controller/Store/SwitchActionTest.php | 2 +- .../Magento/Store/Model/App/EmulationTest.php | 2 +- .../testsuite/Magento/Store/Model/DataSource.php | 2 +- .../testsuite/Magento/Store/Model/GroupTest.php | 2 +- .../Model/ResourceModel/Store/CollectionTest.php | 2 +- .../Store/Model/ResourceModel/StoreTest.php | 2 +- .../Store/Model/ResourceModel/WebsiteTest.php | 2 +- .../Magento/Store/Model/StoreCookieManagerTest.php | 2 +- .../testsuite/Magento/Store/Model/StoreTest.php | 2 +- .../testsuite/Magento/Store/Model/WebsiteTest.php | 2 +- .../Magento/Store/_files/core_fixturestore.php | 2 +- .../Store/_files/core_fixturestore_rollback.php | 2 +- .../_files/core_second_third_fixturestore.php | 2 +- .../fixture_store_with_catalogsearch_index.php | 2 +- ...ure_store_with_catalogsearch_index_rollback.php | 2 +- .../Magento/Store/_files/scope.config.fixture.php | 2 +- .../Magento/Store/_files/second_store.php | 2 +- .../Magento/Store/_files/second_store_rollback.php | 2 +- .../_files/second_website_with_two_stores.php | 2 +- .../second_website_with_two_stores_rollback.php | 2 +- .../testsuite/Magento/Store/_files/store.php | 2 +- .../Magento/Store/_files/store_rollback.php | 2 +- .../testsuite/Magento/Store/_files/website.php | 2 +- .../Magento/Store/_files/website_rollback.php | 2 +- .../Store/_files/websites_different_countries.php | 2 +- .../websites_different_countries_rollback.php | 2 +- .../testsuite/Magento/Swatches/Helper/DataTest.php | 2 +- .../Swatches/Model/SwatchAttributeCodesTest.php | 2 +- .../Magento/Swatches/_files/swatch_attribute.php | 2 +- .../Swatches/_files/swatch_attribute_rollback.php | 2 +- .../Magento/Tax/Block/Adminhtml/Rate/TitleTest.php | 2 +- .../Magento/Tax/Controller/Adminhtml/RateTest.php | 2 +- .../Magento/Tax/Controller/Adminhtml/TaxTest.php | 2 +- .../testsuite/Magento/Tax/Helper/DataTest.php | 2 +- .../Tax/Model/Calculation/RateRepositoryTest.php | 2 +- .../Magento/Tax/Model/CalculationTest.php | 2 +- .../testsuite/Magento/Tax/Model/ClassTest.php | 2 +- .../testsuite/Magento/Tax/Model/ConfigTest.php | 2 +- .../Magento/Tax/Model/Rate/SourceTest.php | 2 +- .../Calculation/Rule/CollectionTest.php | 2 +- .../Tax/Model/ResourceModel/CalculationTest.php | 2 +- .../Model/ResourceModel/Report/CollectionTest.php | 2 +- .../Tax/Model/Sales/Total/Quote/SetupUtil.php | 2 +- .../Tax/Model/Sales/Total/Quote/SubtotalTest.php | 2 +- .../Tax/Model/Sales/Total/Quote/TaxTest.php | 2 +- .../Magento/Tax/Model/TaxCalculationTest.php | 2 +- .../Magento/Tax/Model/TaxClass/ManagementTest.php | 2 +- .../Magento/Tax/Model/TaxClass/RepositoryTest.php | 2 +- .../Tax/Model/TaxClass/Source/CustomerTest.php | 2 +- .../Tax/Model/TaxClass/Source/ProductTest.php | 2 +- .../Tax/Model/TaxClass/Type/CustomerTest.php | 2 +- .../Magento/Tax/Model/TaxRateCollectionTest.php | 2 +- .../Magento/Tax/Model/TaxRateManagementTest.php | 2 +- .../Magento/Tax/Model/TaxRuleCollectionTest.php | 2 +- .../Magento/Tax/Model/TaxRuleFixtureFactory.php | 2 +- .../Magento/Tax/Model/TaxRuleRepositoryTest.php | 2 +- .../Magento/Tax/Pricing/AdjustmentTest.php | 2 +- .../Magento/Tax/_files/order_with_tax.php | 2 +- .../testsuite/Magento/Tax/_files/report_tax.php | 2 +- .../excluding_tax_apply_tax_after_discount.php | 2 +- ...g_tax_apply_tax_after_discount_discount_tax.php | 2 +- .../excluding_tax_apply_tax_before_discount.php | 2 +- .../scenarios/excluding_tax_multi_item_row.php | 2 +- .../scenarios/excluding_tax_multi_item_total.php | 2 +- .../scenarios/excluding_tax_multi_item_unit.php | 2 +- .../Tax/_files/scenarios/excluding_tax_row.php | 2 +- .../Tax/_files/scenarios/excluding_tax_total.php | 2 +- .../Tax/_files/scenarios/excluding_tax_unit.php | 2 +- .../including_tax_cross_border_trade_disabled.php | 2 +- .../including_tax_cross_border_trade_enabled.php | 2 +- .../Tax/_files/scenarios/including_tax_row.php | 2 +- .../Tax/_files/scenarios/including_tax_total.php | 2 +- .../Tax/_files/scenarios/including_tax_unit.php | 2 +- .../multi_tax_rule_total_calculate_subtotal_no.php | 2 +- ...multi_tax_rule_total_calculate_subtotal_yes.php | 2 +- ...tax_rule_two_row_calculate_subtotal_yes_row.php | 2 +- ...x_rule_two_row_calculate_subtotal_yes_total.php | 2 +- .../multi_tax_rule_unit_calculate_subtotal_no.php | 2 +- .../multi_tax_rule_unit_calculate_subtotal_yes.php | 2 +- .../Tax/_files/tax_calculation_data_aggregated.php | 2 +- .../testsuite/Magento/Tax/_files/tax_classes.php | 2 +- .../Block/Adminhtml/Rate/ImportExportTest.php | 2 +- .../Controller/Adminhtml/Rate/ExportPostTest.php | 2 +- .../Controller/Adminhtml/Rate/ImportExportTest.php | 2 +- .../Controller/Adminhtml/Rate/ImportPostTest.php | 2 +- .../Model/Rate/CsvImportHandlerTest.php | 2 +- .../Magento/Test/Integrity/DatabaseTest.php | 2 +- .../Magento/Test/Integrity/LayoutTest.php | 2 +- .../Test/Integrity/Magento/Payment/MethodsTest.php | 2 +- .../Integrity/Magento/Widget/SkinFilesTest.php | 2 +- .../Integrity/Magento/Widget/TemplateFilesTest.php | 2 +- .../Integrity/Modular/AbstractMergedConfigTest.php | 2 +- .../Test/Integrity/Modular/AclConfigFilesTest.php | 2 +- .../Integrity/Modular/BlockInstantiationTest.php | 2 +- .../Test/Integrity/Modular/CacheFilesTest.php | 2 +- .../Integrity/Modular/CarrierConfigFilesTest.php | 2 +- .../Integrity/Modular/CrontabConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/DiConfigFilesTest.php | 2 +- .../Modular/EavAttributesConfigFilesTest.php | 2 +- .../Integrity/Modular/EventConfigFilesTest.php | 2 +- .../Integrity/Modular/ExportConfigFilesTest.php | 2 +- .../Integrity/Modular/FieldsetConfigFilesTest.php | 2 +- .../Integrity/Modular/ImportConfigFilesTest.php | 2 +- .../Integrity/Modular/IndexerConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/LayoutFilesTest.php | 2 +- .../Magento/Catalog/AttributeConfigFilesTest.php | 2 +- .../Magento/Customer/AddressFormatsFilesTest.php | 2 +- .../Magento/Email/EmailTemplateConfigFilesTest.php | 2 +- .../Modular/Magento/Sales/PdfConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/MenuConfigFilesTest.php | 2 +- .../Integrity/Modular/MviewConfigFilesTest.php | 2 +- .../Integrity/Modular/PaymentConfigFilesTest.php | 2 +- .../Modular/ProductOptionsConfigFilesTest.php | 2 +- .../Modular/ProductTypesConfigFilesTest.php | 2 +- .../Integrity/Modular/ResourcesConfigFilesTest.php | 2 +- .../Integrity/Modular/RouteConfigFilesTest.php | 2 +- .../Integrity/Modular/SalesConfigFilesTest.php | 2 +- .../Integrity/Modular/SystemConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/TemplateFilesTest.php | 2 +- .../Integrity/Modular/ThemeConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/ViewConfigFilesTest.php | 2 +- .../Integrity/Modular/WidgetConfigFilesTest.php | 2 +- .../Integrity/Modular/_files/skip_blocks_ce.php | 2 +- .../Modular/_files/skip_template_blocks_ce.php | 2 +- .../Magento/Test/Integrity/StaticFilesTest.php | 2 +- .../Test/Integrity/Theme/TemplateFilesTest.php | 2 +- .../Magento/Test/Integrity/Theme/XmlFilesTest.php | 2 +- .../Test/Integrity/ViewFileReferenceTest.php | 2 +- .../TestFixture/Controller/Adminhtml/Noroute.php | 2 +- .../System/Design/Theme/Edit/Tab/GeneralTest.php | 2 +- .../Magento/Theme/Block/Html/BreadcrumbsTest.php | 2 +- .../Magento/Theme/Block/Html/FooterTest.php | 2 +- .../System/Design/ThemeControllerTest.php | 2 +- .../System/Design/_files/simple-js-file.js | 2 +- .../Magento/Theme/Model/Config/ValidatorTest.php | 2 +- .../Theme/Model/Design/Backend/ExceptionsTest.php | 2 +- .../testsuite/Magento/Theme/Model/DesignTest.php | 2 +- .../Theme/Model/Layout/Config/ReaderTest.php | 2 +- .../Magento/Theme/Model/Layout/ConfigTest.php | 2 +- .../Theme/Model/Layout/_files/page_layouts.xml | 2 +- .../Theme/Model/Layout/_files/page_layouts2.xml | 2 +- .../Model/ResourceModel/Theme/CollectionTest.php | 2 +- .../Magento/Theme/Model/Theme/CollectionTest.php | 2 +- .../Theme/Model/Theme/Domain/VirtualTest.php | 2 +- .../Magento/Theme/Model/Theme/FileTest.php | 2 +- .../Magento/Theme/Model/Theme/RegistrationTest.php | 2 +- .../Magento/Theme/Model/Theme/Source/ThemeTest.php | 2 +- .../Source/_files/design/frontend/a_d/theme.xml | 2 +- .../Source/_files/design/frontend/b_e/theme.xml | 2 +- .../design/frontend/magento_default/theme.xml | 2 +- .../_files/design/frontend/magento_g/theme.xml | 2 +- .../testsuite/Magento/Theme/Model/ThemeTest.php | 2 +- .../Magento/Theme/Model/View/DesignTest.php | 2 +- .../design/adminhtml/Vendor/test/registration.php | 2 +- .../_files/design/adminhtml/Vendor/test/theme.xml | 2 +- .../area_two/Vendor/theme_one/registration.php | 2 +- .../design/area_two/Vendor/theme_one/theme.xml | 2 +- .../design_area/Vendor/theme_one/registration.php | 2 +- .../design/design_area/Vendor/theme_one/theme.xml | 2 +- .../frontend/Magento/default/registration.php | 2 +- .../design/frontend/Magento/default/theme.xml | 2 +- .../Magento/default_iphone/registration.php | 2 +- .../frontend/Magento/default_iphone/theme.xml | 2 +- .../Test/cache_test_theme/registration.php | 2 +- .../frontend/Test/cache_test_theme/theme.xml | 2 +- .../Magento_Catalog/catalog_category_view.xml | 2 +- .../catalog_category_view_type_default.xml | 2 +- .../Magento_Catalog/catalog_product_view.xml | 2 +- .../catalog_product_view_type_simple.xml | 2 +- .../Magento_Catalog/templates/theme_template.phtml | 2 +- .../Magento_Cms/layout_test_handle_extra.xml | 2 +- .../Magento_Core/layout_test_handle_main.xml | 2 +- .../Magento_Core/layout_test_handle_sample.xml | 2 +- .../design/frontend/Test/default/etc/view.xml | 2 +- .../design/frontend/Test/default/registration.php | 2 +- .../_files/design/frontend/Test/default/theme.xml | 2 +- .../frontend/Test/default/web/css/styles.css | 2 +- .../design/frontend/Test/default/web/js/tabs.js | 2 +- .../frontend/Test/default/web/result_source.css | 2 +- .../Test/default/web/result_source_dev.css | 2 +- .../design/frontend/Test/default/web/source.less | 2 +- .../frontend/Test/publication/registration.php | 2 +- .../design/frontend/Test/publication/theme.xml | 2 +- .../frontend/Test/test_theme/registration.php | 2 +- .../design/frontend/Test/test_theme/theme.xml | 2 +- .../Fixture_Module/web/fixture_script.js | 2 +- .../frontend/Vendor/custom_theme/registration.php | 2 +- .../design/frontend/Vendor/custom_theme/theme.xml | 2 +- .../frontend/Vendor/default/access_violation.php | 2 +- .../frontend/Vendor/default/registration.php | 2 +- .../design/frontend/Vendor/default/theme.xml | 2 +- .../frontend/Vendor/default/web/css/base64.css | 2 +- .../Vendor/default/web/css/deep/recursive.css | 2 +- .../frontend/Vendor/default/web/css/exception.css | 2 +- .../frontend/Vendor/default/web/css/file.css | 2 +- .../frontend/Vendor/default/web/recursive.css | 2 +- .../design/frontend/Vendor/default/web/scripts.js | 2 +- .../_files/design/frontend/access_violation.php | 2 +- .../Magento/Theme/_files/design_change.php | 2 +- .../Theme/_files/design_change_rollback.php | 2 +- .../Theme/_files/design_change_timezone.php | 2 +- .../_files/design_change_timezone_rollback.php | 2 +- .../Magento/Translation/Controller/AjaxTest.php | 2 +- .../Magento/Translation/Model/InlineParserTest.php | 2 +- .../Magento/Translation/Model/StringTest.php | 2 +- .../local_config/local_config/custom/local.xml | 2 +- .../local_config/custom/prohibited.filename.xml | 2 +- .../_files/local_config/local_config/local.xml | 2 +- .../Model/_files/local_config/local_config/z.xml | 2 +- .../_files/local_config/no_local_config/a.xml | 2 +- .../_files/local_config/no_local_config/b.xml | 2 +- .../local_config/no_local_config/custom/local.xml | 2 +- .../Model/_files/locale/en_AU/config.xml | 2 +- .../Magento/Translation/_files/db_translate.php | 2 +- .../_files/db_translate_admin_store.php | 2 +- .../testsuite/Magento/Ups/Model/CarrierTest.php | 2 +- .../UrlRewrite/Block/Catalog/Category/EditTest.php | 2 +- .../UrlRewrite/Block/Catalog/Category/TreeTest.php | 2 +- .../UrlRewrite/Block/Catalog/Edit/FormTest.php | 2 +- .../UrlRewrite/Block/Catalog/Product/EditTest.php | 2 +- .../UrlRewrite/Block/Catalog/Product/GridTest.php | 2 +- .../UrlRewrite/Block/Cms/Page/Edit/FormTest.php | 2 +- .../Magento/UrlRewrite/Block/Cms/Page/EditTest.php | 2 +- .../Magento/UrlRewrite/Block/Cms/Page/GridTest.php | 2 +- .../Magento/UrlRewrite/Block/Edit/FormTest.php | 2 +- .../Magento/UrlRewrite/Block/EditTest.php | 2 +- .../UrlRewrite/Controller/UrlRewriteTest.php | 2 +- .../Magento/UrlRewrite/_files/url_rewrite.php | 2 +- .../Magento/User/Block/Role/Grid/UserTest.php | 2 +- .../Magento/User/Block/Role/Tab/EditTest.php | 2 +- .../Magento/User/Block/User/Edit/Tab/MainTest.php | 2 +- .../Magento/User/Controller/Adminhtml/AuthTest.php | 2 +- .../User/Controller/Adminhtml/Locks/GridTest.php | 2 +- .../User/Controller/Adminhtml/Locks/IndexTest.php | 2 +- .../Controller/Adminhtml/Locks/MassUnlockTest.php | 2 +- .../User/Controller/Adminhtml/User/DeleteTest.php | 2 +- .../Adminhtml/User/InvalidateTokenTest.php | 2 +- .../User/Controller/Adminhtml/User/RoleTest.php | 2 +- .../Magento/User/Controller/Adminhtml/UserTest.php | 2 +- .../testsuite/Magento/User/Helper/DataTest.php | 2 +- .../ResourceModel/Role/User/CollectionTest.php | 2 +- .../Magento/User/Model/ResourceModel/UserTest.php | 2 +- .../testsuite/Magento/User/Model/UserTest.php | 2 +- .../testsuite/Magento/User/_files/dummy_user.php | 2 +- .../testsuite/Magento/User/_files/locked_users.php | 2 +- .../Magento/User/_files/user_with_role.php | 2 +- .../Variable/Block/System/Variable/EditTest.php | 2 +- .../Controller/Adminhtml/System/VariableTest.php | 2 +- .../Magento/Variable/Model/Variable/ConfigTest.php | 2 +- .../Magento/Variable/Model/VariableTest.php | 2 +- .../testsuite/Magento/Variable/_files/variable.php | 2 +- .../Vault/Model/PaymentTokenRepositoryTest.php | 2 +- .../Vault/Model/ResourceModel/PaymentTokenTest.php | 2 +- .../testsuite/Magento/Vault/_files/customer.php | 2 +- .../Magento/Vault/_files/payment_tokens.php | 2 +- .../Magento/Version/Controller/Index/IndexTest.php | 2 +- .../Webapi/Controller/PathProcessorTest.php | 2 +- .../Magento/Webapi/Controller/SoapTest.php | 2 +- .../Magento/Webapi/Model/Config/ReaderTest.php | 2 +- .../Magento/Webapi/Model/Config/_files/webapi.php | 2 +- .../Magento/Webapi/Model/Config/_files/webapiA.xml | 2 +- .../Magento/Webapi/Model/Config/_files/webapiB.xml | 2 +- .../Magento/Webapi/Service/Entity/TestService.php | 2 +- .../Magento/Webapi/ServiceNameCollisionTest.php | 2 +- .../Magento/Webapi/_files/webapi_user.php | 2 +- .../Magento/Webapi/_files/webapi_user_rollback.php | 2 +- .../testsuite/Magento/Weee/Model/TaxTest.php | 2 +- .../Magento/Weee/_files/product_with_fpt.php | 2 +- .../Weee/_files/product_with_fpt_rollback.php | 2 +- .../Widget/Instance/Edit/Chooser/ContainerTest.php | 2 +- .../Edit/Chooser/DesignAbstractionTest.php | 2 +- .../Widget/Instance/Edit/Chooser/LayoutTest.php | 2 +- .../Chooser/_files/design-abstraction_select.html | 2 +- .../child_page_with_inherited_containers.xml | 2 +- ...ild_page_with_inherited_imported_containers.xml | 2 +- .../layout/child_page_with_own_containers.xml | 2 +- .../layout/child_page_without_containers.xml | 2 +- .../Chooser/_files/layout/customer_account.xml | 2 +- .../layout/non_page_handle_with_own_containers.xml | 2 +- .../Edit/Chooser/_files/layout/page_empty.xml | 2 +- .../layout/root_page_with_imported_containers.xml | 2 +- .../layout/root_page_with_own_containers.xml | 2 +- .../_files/layout/root_page_without_containers.xml | 2 +- .../layout/root_page_without_own_containers.xml | 2 +- .../Edit/Chooser/_files/page_types_select.html | 2 +- .../Widget/Instance/Edit/Tab/Main/LayoutTest.php | 2 +- .../Widget/Instance/Edit/Tab/MainTest.php | 2 +- .../Block/Adminhtml/Widget/Instance/EditTest.php | 2 +- .../Controller/Adminhtml/Widget/InstanceTest.php | 2 +- .../Widget/Controller/Adminhtml/WidgetTest.php | 2 +- .../Magento/Widget/Model/Config/DataTest.php | 2 +- .../Magento/Widget/Model/Config/ReaderTest.php | 2 +- .../Config/_files/catalog_new_products_list.xml | 2 +- .../Model/Config/_files/expectedGlobalArray.php | 2 +- .../Config/_files/expectedGlobalDesignArray.php | 2 +- .../Model/Config/_files/expectedMergedArray.php | 2 +- .../Model/Config/_files/orders_and_returns.xml | 2 +- .../_files/orders_and_returns_customized.xml | 2 +- .../Magento/Widget/Model/Layout/UpdateTest.php | 2 +- .../Model/ResourceModel/Layout/UpdateTest.php | 2 +- .../Magento/Widget/Model/Template/FilterTest.php | 2 +- .../Magento/Widget/Model/Widget/ConfigTest.php | 2 +- .../Magento/Widget/Model/Widget/InstanceTest.php | 2 +- .../testsuite/Magento/Widget/Model/WidgetTest.php | 2 +- .../design/adminhtml/magento_basic/theme.xml | 2 +- .../Magento/Widget/_files/layout_cache.php | 2 +- .../Magento/Widget/_files/layout_update.php | 2 +- .../Block/Customer/Wishlist/Item/ColumnTest.php | 2 +- .../Block/Customer/Wishlist/Item/OptionsTest.php | 2 +- .../Wishlist/Block/Customer/Wishlist/ItemsTest.php | 2 +- .../Magento/Wishlist/Block/Share/WishlistTest.php | 2 +- .../Magento/Wishlist/Controller/IndexTest.php | 2 +- .../Magento/Wishlist/Controller/SharedTest.php | 2 +- .../testsuite/Magento/Wishlist/Helper/DataTest.php | 2 +- .../testsuite/Magento/Wishlist/_files/wishlist.php | 2 +- .../Magento/Wishlist/_files/wishlist_shared.php | 2 +- .../wishlist_with_product_qty_increments.php | 2 +- .../js/JsTestDriver/framework/requirejs-util.js | 2 +- dev/tests/js/JsTestDriver/framework/stub.js | 2 +- dev/tests/js/JsTestDriver/jsTestDriver.php.dist | 2 +- dev/tests/js/JsTestDriver/jsTestDriverOrder.php | 2 +- dev/tests/js/JsTestDriver/run_js_tests.php | 2 +- .../testsuite/lib/ko/datepicker/datepicker.js | 2 +- .../testsuite/lib/ko/datepicker/index.html | 2 +- .../JsTestDriver/testsuite/lib/storage/index.html | 2 +- .../testsuite/lib/storage/test-storage.js | 2 +- .../JsTestDriver/testsuite/mage/_demo/index.html | 2 +- .../js/JsTestDriver/testsuite/mage/_demo/test.js | 2 +- .../testsuite/mage/accordion/accordion.js | 2 +- .../testsuite/mage/accordion/index.html | 2 +- .../testsuite/mage/button/button-test.js | 2 +- .../testsuite/mage/calendar/calendar-qunit.js | 2 +- .../testsuite/mage/calendar/calendar-test.js | 2 +- .../testsuite/mage/calendar/calendar.html | 2 +- .../testsuite/mage/calendar/date-range-test.js | 2 +- .../testsuite/mage/collapsible/content.html | 2 +- .../testsuite/mage/collapsible/index.html | 2 +- .../testsuite/mage/collapsible/test-collapsible.js | 2 +- .../JsTestDriver/testsuite/mage/decorate-test.js | 2 +- .../testsuite/mage/dropdown/index.html | 2 +- .../testsuite/mage/dropdown/test-dropdown.js | 2 +- .../mage/edit_trigger/edit-trigger-test.js | 2 +- .../JsTestDriver/testsuite/mage/form/form-test.js | 2 +- .../js/JsTestDriver/testsuite/mage/list/index.html | 2 +- .../testsuite/mage/list/jquery-list-test.js | 2 +- .../testsuite/mage/loader/jquery-loader-test.js | 2 +- .../testsuite/mage/loader/loader-test.js | 2 +- .../JsTestDriver/testsuite/mage/loader/loader.html | 2 +- .../js/JsTestDriver/testsuite/mage/mage-test.js | 2 +- .../js/JsTestDriver/testsuite/mage/menu/index.html | 2 +- .../JsTestDriver/testsuite/mage/menu/test-menu.js | 2 +- .../testsuite/mage/search/regular-search-test.js | 2 +- .../testsuite/mage/suggest/suggest-test.js | 2 +- .../testsuite/mage/suggest/tree-suggest-test.js | 2 +- .../js/JsTestDriver/testsuite/mage/tabs/index.html | 2 +- .../JsTestDriver/testsuite/mage/tabs/tabs-test.js | 2 +- .../js/JsTestDriver/testsuite/mage/tabs/tabs.js | 2 +- .../testsuite/mage/translate/translate-test.js | 2 +- .../mage/translate_inline/translate-inline-test.js | 2 +- .../translate-inline-vde-dialog-test.js | 2 +- .../translate-inline-vde-test.js | 2 +- .../testsuite/mage/validation/index.html | 2 +- .../testsuite/mage/validation/test-validation.js | 2 +- .../js/JsTestDriver/testsuite/mage/webapi-test.js | 2 +- .../JsTestDriver/testsuite/mage/zoom/zoom-test.js | 2 +- dev/tests/js/jasmine/assets/apply/components/fn.js | 2 +- dev/tests/js/jasmine/assets/apply/index.js | 2 +- .../js/jasmine/assets/apply/templates/node.html | 2 +- dev/tests/js/jasmine/assets/jsbuild/config.js | 2 +- dev/tests/js/jasmine/assets/jsbuild/external.js | 2 +- dev/tests/js/jasmine/assets/jsbuild/local.js | 2 +- dev/tests/js/jasmine/assets/script/index.js | 2 +- .../jasmine/assets/script/templates/selector.html | 2 +- .../jasmine/assets/script/templates/virtual.html | 2 +- dev/tests/js/jasmine/assets/text/config.js | 6 +++--- dev/tests/js/jasmine/assets/text/external.html | 2 +- dev/tests/js/jasmine/assets/text/local.html | 2 +- dev/tests/js/jasmine/assets/tools.js | 2 +- dev/tests/js/jasmine/require.conf.js | 4 ++-- dev/tests/js/jasmine/spec_runner/index.js | 2 +- dev/tests/js/jasmine/spec_runner/tasks/connect.js | 2 +- dev/tests/js/jasmine/spec_runner/tasks/jasmine.js | 2 +- dev/tests/js/jasmine/spec_runner/template.html | 2 +- .../view/payment/method-renderer/cc-form.test.js | 2 +- .../app/code/Magento/Msrp/frontend/js/msrp.test.js | 2 +- .../PageCache/frontend/js/page-cache.test.js | 2 +- .../code/Magento/Ui/base/js/core/layout.test.js | 2 +- .../code/Magento/Ui/base/js/form/adapter.test.js | 2 +- .../code/Magento/Ui/base/js/form/client.test.js | 2 +- .../Ui/base/js/form/components/area.test.js | 2 +- .../Ui/base/js/form/components/collection.test.js | 2 +- .../js/form/components/collection/item.test.js | 2 +- .../Ui/base/js/form/components/group.test.js | 2 +- .../Ui/base/js/form/components/html.test.js | 2 +- .../Magento/Ui/base/js/form/components/tab.test.js | 2 +- .../Ui/base/js/form/components/tab_group.test.js | 2 +- .../Ui/base/js/form/element/abstract.test.js | 2 +- .../Ui/base/js/form/element/boolean.test.js | 2 +- .../Magento/Ui/base/js/form/element/date.test.js | 2 +- .../Ui/base/js/form/element/file-uploader.test.js | 2 +- .../Ui/base/js/form/element/post-code.test.js | 2 +- .../Magento/Ui/base/js/form/element/region.test.js | 2 +- .../Magento/Ui/base/js/form/element/select.test.js | 2 +- .../Ui/base/js/form/element/textarea.test.js | 2 +- .../app/code/Magento/Ui/base/js/form/form.test.js | 2 +- .../code/Magento/Ui/base/js/form/provider.test.js | 2 +- .../code/Magento/Ui/base/js/form/ui-select.test.js | 2 +- .../Ui/base/js/grid/columns/actions.test.js | 2 +- .../Magento/Ui/base/js/grid/columns/column.test.js | 2 +- .../Magento/Ui/base/js/grid/columns/date.test.js | 2 +- .../Ui/base/js/grid/columns/multiselect.test.js | 2 +- .../Magento/Ui/base/js/grid/columns/select.test.js | 2 +- .../js/grid/controls/bookmarks/storage.test.js | 2 +- .../Ui/base/js/grid/controls/columns.test.js | 2 +- .../Magento/Ui/base/js/grid/data-storage.test.js | 2 +- .../Ui/base/js/grid/filters/filters.test.js | 2 +- .../Magento/Ui/base/js/grid/filters/range.test.js | 2 +- .../Magento/Ui/base/js/grid/paging/paging.test.js | 2 +- .../code/Magento/Ui/base/js/grid/resize.test.js | 2 +- .../Magento/Ui/base/js/grid/search/search.test.js | 2 +- .../Magento/Ui/base/js/grid/sticky/sticky.test.js | 2 +- .../Ui/base/js/grid/tree-massactions.test.js | 2 +- .../Magento/Ui/base/js/lib/component/links.test.js | 2 +- .../app/code/Magento/Ui/base/js/lib/events.test.js | 2 +- .../Ui/base/js/lib/ko/bind/datepicker.test.js | 2 +- .../Magento/Ui/base/js/lib/ko/bind/i18n.test.js | 2 +- .../Ui/base/js/lib/registry/registry.test.js | 2 +- .../code/Magento/Ui/base/js/modal/alert.test.js | 2 +- .../code/Magento/Ui/base/js/modal/confirm.test.js | 2 +- .../code/Magento/Ui/base/js/modal/modal.test.js | 2 +- .../code/Magento/Ui/base/js/modal/prompt.test.js | 2 +- dev/tests/js/jasmine/tests/lib/mage/apply.test.js | 2 +- .../lib/mage/requirejs/static-jsbuild.test.js | 2 +- .../tests/lib/mage/requirejs/static-text.test.js | 2 +- .../tests/lib/mage/requirejs/statistician.test.js | 2 +- .../js/jasmine/tests/lib/mage/scripts.test.js | 2 +- .../js/jasmine/tests/lib/mage/template.test.js | 2 +- .../js/jasmine/tests/lib/mage/validation.test.js | 2 +- .../Sniffs/Arrays/ShortArraySyntaxSniff.php | 2 +- .../Magento/Sniffs/Files/LineLengthSniff.php | 2 +- .../framework/Magento/Sniffs/Less/AvoidIdSniff.php | 2 +- .../Magento/Sniffs/Less/BracesFormattingSniff.php | 2 +- .../Magento/Sniffs/Less/ClassNamingSniff.php | 2 +- .../Magento/Sniffs/Less/ColonSpacingSniff.php | 2 +- .../Magento/Sniffs/Less/ColourDefinitionSniff.php | 2 +- .../Sniffs/Less/CombinatorIndentationSniff.php | 2 +- .../Magento/Sniffs/Less/CommentLevelsSniff.php | 2 +- .../Magento/Sniffs/Less/ImportantPropertySniff.php | 2 +- .../Magento/Sniffs/Less/IndentationSniff.php | 2 +- .../Sniffs/Less/PropertiesLineBreakSniff.php | 2 +- .../Magento/Sniffs/Less/PropertiesSortingSniff.php | 2 +- .../framework/Magento/Sniffs/Less/QuotesSniff.php | 2 +- .../Magento/Sniffs/Less/SelectorDelimiterSniff.php | 2 +- .../Magento/Sniffs/Less/SemicolonSpacingSniff.php | 2 +- .../Sniffs/Less/TokenizerSymbolsInterface.php | 2 +- .../Sniffs/Less/TypeSelectorConcatenationSniff.php | 2 +- .../Magento/Sniffs/Less/TypeSelectorsSniff.php | 2 +- .../Magento/Sniffs/Less/VariablesSniff.php | 2 +- .../Magento/Sniffs/Less/ZeroUnitsSniff.php | 2 +- .../Sniffs/MicroOptimizations/IsNullSniff.php | 2 +- .../NamingConventions/InterfaceNameSniff.php | 2 +- .../NamingConventions/ReservedWordsSniff.php | 2 +- .../Sniffs/Translation/ConstantUsageSniff.php | 2 +- .../Sniffs/Whitespace/EmptyLineMissedSniff.php | 2 +- .../Sniffs/Whitespace/MultipleEmptyLinesSniff.php | 2 +- .../CodingStandard/Tool/BlacklistInterface.php | 2 +- .../CodingStandard/Tool/CodeMessDetector.php | 2 +- .../CodingStandard/Tool/CodeSniffer.php | 2 +- .../Tool/CodeSniffer/LessWrapper.php | 2 +- .../CodingStandard/Tool/CodeSniffer/Wrapper.php | 2 +- .../CodingStandard/Tool/CopyPasteDetector.php | 2 +- .../CodingStandard/Tool/ExtensionInterface.php | 2 +- .../TestFramework/CodingStandard/ToolInterface.php | 2 +- .../Magento/TestFramework/Dependency/DbRule.php | 2 +- .../TestFramework/Dependency/LayoutRule.php | 2 +- .../Magento/TestFramework/Dependency/PhpRule.php | 2 +- .../TestFramework/Dependency/RuleInterface.php | 2 +- .../TestFramework/Inspection/AbstractCommand.php | 2 +- .../Magento/TestFramework/Inspection/Exception.php | 2 +- .../TestFramework/Inspection/JsHint/Command.php | 2 +- .../TestFramework/Inspection/WordsFinder.php | 4 ++-- .../TestFramework/Integrity/AbstractConfig.php | 2 +- .../TestFramework/Integrity/Library/Injectable.php | 2 +- .../PhpParser/DependenciesCollectorInterface.php | 2 +- .../Integrity/Library/PhpParser/ParserFactory.php | 2 +- .../Library/PhpParser/ParserInterface.php | 2 +- .../Integrity/Library/PhpParser/StaticCalls.php | 2 +- .../Integrity/Library/PhpParser/Throws.php | 2 +- .../Integrity/Library/PhpParser/Tokens.php | 2 +- .../Integrity/Library/PhpParser/Uses.php | 2 +- .../TestFramework/Integrity/PluginValidator.php | 2 +- .../AutogeneratedClassNotInConstructorFinder.php | 2 +- .../Magento/TestFramework/Utility/ChangedFiles.php | 2 +- .../TestFramework/Utility/ClassNameExtractor.php | 2 +- .../Magento/TestFramework/Utility/CodeCheck.php | 2 +- .../TestFramework/Utility/XssOutputValidator.php | 2 +- dev/tests/static/framework/Magento/ruleset.xml | 2 +- dev/tests/static/framework/autoload.php | 2 +- dev/tests/static/framework/bootstrap.php | 2 +- .../static/framework/tests/unit/phpunit.xml.dist | 2 +- .../Test/Integrity/Library/InjectableTest.php | 2 +- .../Library/PhpParser/ParserFactoryTest.php | 2 +- .../Library/PhpParser/StaticCallsTest.php | 2 +- .../Integrity/Library/PhpParser/ThrowsTest.php | 2 +- .../Integrity/Library/PhpParser/TokensTest.php | 2 +- .../Test/Integrity/Library/PhpParser/UsesTest.php | 2 +- .../CodingStandard/Tool/CodeMessDetectorTest.php | 2 +- .../Tool/CodeSniffer/WrapperTest.php | 2 +- .../CodingStandard/Tool/CodeSnifferTest.php | 2 +- .../TestFramework/Dependency/DbRuleTest.php | 2 +- .../TestFramework/Dependency/LayoutRuleTest.php | 2 +- .../TestFramework/Dependency/PhpRuleTest.php | 2 +- .../Dependency/_files/layout_handle.xml | 2 +- .../Dependency/_files/layout_handle_parent.xml | 2 +- .../Dependency/_files/layout_handle_update.xml | 2 +- .../Dependency/_files/layout_reference.xml | 2 +- .../Inspection/JsHint/CommandTest.php | 2 +- .../TestFramework/Inspection/WordsFinderTest.php | 2 +- .../Inspection/_files/broken_config.xml | 2 +- .../TestFramework/Inspection/_files/config.xml | 2 +- .../Inspection/_files/config_additional.xml | 2 +- .../Inspection/_files/empty_whitelist_path.xml | 2 +- .../Inspection/_files/empty_words_config.xml | 2 +- .../Inspection/_files/words_finder/buffy.php | 2 +- .../words_finder/interview_with_the_vampire.php | 2 +- .../_files/words_finder/self_tested_config.xml | 2 +- .../_files/words_finder/twilight/eclipse.php | 2 +- .../_files/words_finder/twilight/newmoon.php | 2 +- ...utogeneratedClassNotInConstructorFinderTest.php | 2 +- .../Magento/TestFramework/Utility/Bar.php | 2 +- .../Utility/ClassNameExtractorTest.php | 2 +- .../Magento/TestFramework/Utility/Foo.php | 2 +- .../TestFramework/Utility/PartialNamespace/Bar.php | 2 +- .../Utility/XssOutputValidatorTest.php | 2 +- .../TestFramework/Utility/_files/xss_safe.phtml | 2 +- .../TestFramework/Utility/_files/xss_unsafe.phtml | 2 +- dev/tests/static/get_github_changes.php | 2 +- dev/tests/static/phpunit-all.xml.dist | 2 +- dev/tests/static/phpunit.xml.dist | 2 +- .../App/Language/CircularDependencyTest.php | 2 +- .../Test/Integrity/App/Language/ConfigTest.php | 2 +- .../Integrity/App/Language/TranslationFiles.php | 2 +- .../App/Language/TranslationFilesTest.php | 2 +- .../App/Language/_files/known_invalid.xml | 2 +- .../Integrity/App/Language/_files/known_valid.xml | 2 +- .../Test/Integrity/CircularDependencyTest.php | 2 +- .../Magento/Test/Integrity/ClassesTest.php | 2 +- .../Magento/Test/Integrity/ComposerTest.php | 2 +- .../Magento/Test/Integrity/ConfigTest.php | 2 +- .../Magento/Test/Integrity/DependencyTest.php | 2 +- .../Magento/Test/Integrity/Di/CompilerTest.php | 2 +- .../Test/Integrity/ExceptionHierarchyTest.php | 2 +- .../Test/Integrity/HhvmCompatibilityTest.php | 2 +- .../Magento/Test/Integrity/Layout/BlocksTest.php | 2 +- .../Magento/Test/Integrity/Layout/HandlesTest.php | 2 +- .../Test/Integrity/Layout/ThemeHandlesTest.php | 2 +- .../Test/Integrity/Library/DependencyTest.php | 2 +- .../Integrity/Magento/Backend/SystemConfigTest.php | 2 +- .../Core/Model/Fieldset/FieldsetConfigTest.php | 2 +- .../Core/Model/Fieldset/_files/fieldset.xml | 2 +- .../Core/Model/Fieldset/_files/fieldset_file.xml | 2 +- .../Model/Fieldset/_files/invalid_fieldset.xml | 2 +- .../Framework/Api/ExtensibleInterfacesTest.php | 2 +- .../Magento/Framework/Search/RequestConfigTest.php | 2 +- .../Framework/Search/SearchEngineConfigTest.php | 2 +- .../Framework/Search/_files/request/invalid.xml | 2 +- .../Search/_files/request/invalid_partial.xml | 2 +- .../Framework/Search/_files/request/valid.xml | 2 +- .../Search/_files/request/valid_partial.xml | 2 +- .../Search/_files/search_engine/invalid.xml | 2 +- .../Search/_files/search_engine/valid.xml | 2 +- .../Test/Integrity/Magento/Indexer/ConfigTest.php | 2 +- .../Integrity/Magento/Indexer/_files/invalid.xml | 2 +- .../Integrity/Magento/Indexer/_files/valid.xml | 2 +- .../Magento/Indexer/_files/valid_partial.xml | 2 +- .../Magento/Payment/Config/ReferentialTest.php | 2 +- .../Integrity/Magento/Payment/Model/ConfigTest.php | 2 +- .../Payment/Model/_files/invalid_payment.xml | 2 +- .../Model/_files/invalid_payment_partial.xml | 2 +- .../Magento/Payment/Model/_files/payment.xml | 2 +- .../Payment/Model/_files/payment_partial.xml | 2 +- .../Integrity/Magento/Persistent/ConfigTest.php | 2 +- .../Persistent/_files/invalid_persistent.xml | 2 +- .../Magento/Persistent/_files/valid_persistent.xml | 2 +- .../Integrity/Magento/Webapi/Model/ConfigTest.php | 2 +- .../Magento/Webapi/Model/_files/invalid_webapi.xml | 2 +- .../Magento/Webapi/Model/_files/webapi.xml | 2 +- .../Integrity/Magento/Widget/WidgetConfigTest.php | 2 +- .../Magento/Widget/_files/invalid_widget.xml | 2 +- .../Integrity/Magento/Widget/_files/widget.xml | 2 +- .../Magento/Widget/_files/widget_file.xml | 2 +- .../Test/Integrity/ObserverImplementationTest.php | 2 +- .../Test/Integrity/Phrase/AbstractTestCase.php | 2 +- .../Test/Integrity/Phrase/ArgumentsTest.php | 2 +- .../Test/Integrity/Phrase/Legacy/SignatureTest.php | 2 +- .../Magento/Test/Integrity/Readme/ReadmeTest.php | 2 +- .../Magento/Test/Integrity/TestPlacementTest.php | 2 +- .../Magento/Test/Integrity/Xml/SchemaTest.php | 2 +- .../Integrity/_files/dependency_test/tables_ce.php | 2 +- .../Magento/Test/Js/Exemplar/JsHintTest.php | 2 +- .../testsuite/Magento/Test/Js/LiveCodeTest.php | 2 +- .../AutogeneratedClassNotInConstructorTest.php | 2 +- .../testsuite/Magento/Test/Legacy/ClassesTest.php | 2 +- .../testsuite/Magento/Test/Legacy/ConfigTest.php | 2 +- .../Magento/Test/Legacy/CopyrightTest.php | 2 +- .../Magento/Test/Legacy/EmailTemplateTest.php | 2 +- .../Magento/Test/Legacy/FilesystemTest.php | 2 +- .../Magento/Test/Legacy/InstallUpgradeTest.php | 2 +- .../testsuite/Magento/Test/Legacy/LayoutTest.php | 2 +- .../Magento/Test/Legacy/LibraryLocationTest.php | 2 +- .../testsuite/Magento/Test/Legacy/LicenseTest.php | 2 +- .../Magento/Core/Block/AbstractBlockTest.php | 2 +- .../Magento/Framework/Module/ModuleXMLTest.php | 2 +- .../Framework/ObjectManager/DiConfigTest.php | 2 +- .../Magento/Test/Legacy/Magento/Widget/XmlTest.php | 2 +- .../Magento/Test/Legacy/ModuleDBChangeTest.php | 2 +- .../Magento/Test/Legacy/ObsoleteAclTest.php | 2 +- .../Magento/Test/Legacy/ObsoleteCodeTest.php | 2 +- .../Magento/Test/Legacy/ObsoleteConnectionTest.php | 2 +- .../Magento/Test/Legacy/ObsoleteMenuTest.php | 2 +- .../Magento/Test/Legacy/ObsoleteResponseTest.php | 2 +- .../Legacy/ObsoleteSystemConfigurationTest.php | 2 +- .../Test/Legacy/ObsoleteThemeLocalXmlTest.php | 2 +- .../Magento/Test/Legacy/PhtmlTemplateTest.php | 2 +- .../Magento/Test/Legacy/RestrictedCodeTest.php | 2 +- .../testsuite/Magento/Test/Legacy/TableTest.php | 2 +- .../testsuite/Magento/Test/Legacy/WordsTest.php | 2 +- ...enerated_class_not_in_constructor_whitelist.php | 2 +- .../Test/Legacy/_files/blacklist/obsolete_mage.php | 2 +- .../_files/connection/blacklist/files_list.php | 2 +- .../connection/whitelist/refactored_modules.php | 2 +- .../Test/Legacy/_files/copyright/blacklist.php | 2 +- .../Test/Legacy/_files/obsolete_classes.php | 2 +- .../Test/Legacy/_files/obsolete_config_nodes.php | 2 +- .../Test/Legacy/_files/obsolete_constants.php | 2 +- .../Test/Legacy/_files/obsolete_methods.php | 2 +- .../Test/Legacy/_files/obsolete_namespaces.php | 2 +- .../Magento/Test/Legacy/_files/obsolete_paths.php | 2 +- .../Test/Legacy/_files/obsolete_properties.php | 2 +- .../_files/response/blacklist/files_list.php | 2 +- .../_files/response/obsolete_response_methods.php | 2 +- .../response/whitelist/refactored_modules.php | 2 +- .../Test/Legacy/_files/restricted_classes.php | 2 +- .../Magento/Test/Legacy/_files/words_ce.xml | 2 +- .../testsuite/Magento/Test/Less/LiveCodeTest.php | 2 +- .../Magento/Test/Less/_files/lesscs/ruleset.xml | 2 +- .../testsuite/Magento/Test/Php/LiveCodeTest.php | 2 +- .../Magento/Test/Php/XssPhtmlTemplateTest.php | 2 +- .../Magento/Test/Php/_files/phpcs/ruleset.xml | 2 +- .../Magento/Test/Php/_files/phpmd/ruleset.xml | 2 +- .../Tools/Composer/RootComposerMappingTest.php | 2 +- dev/tests/unit/framework/autoload.php | 2 +- dev/tests/unit/framework/bootstrap.php | 2 +- dev/tests/unit/phpunit.xml.dist | 2 +- .../Tools/Layout/processors/addItemRenderer.xsl | 2 +- .../Tools/Layout/processors/addToParentGroup.xsl | 2 +- .../Magento/Tools/Layout/processors/headBlocks.xsl | 2 +- .../Tools/Layout/processors/layoutArguments.xsl | 2 +- .../Layout/processors/layoutGridContainer.xsl | 2 +- .../Tools/Layout/processors/layoutHandles.xsl | 2 +- .../Tools/Layout/processors/layoutLabels.xsl | 2 +- .../Tools/Layout/processors/layoutReferences.xsl | 2 +- .../Tools/Layout/processors/layoutTranslate.xsl | 2 +- dev/tools/bootstrap.php | 2 +- dev/tools/grunt/assets/legacy-build/shim.js | 2 +- dev/tools/grunt/configs/clean.js | 2 +- dev/tools/grunt/configs/combo.js | 2 +- dev/tools/grunt/configs/eslint.js | 2 +- dev/tools/grunt/configs/exec.js | 2 +- dev/tools/grunt/configs/imagemin.js | 2 +- dev/tools/grunt/configs/jscs.js | 2 +- dev/tools/grunt/configs/less.js | 2 +- dev/tools/grunt/configs/path.js | 2 +- dev/tools/grunt/configs/replace.js | 4 ++-- dev/tools/grunt/configs/themes.js | 2 +- dev/tools/grunt/configs/usebanner.js | 4 ++-- dev/tools/grunt/configs/watch.js | 2 +- dev/tools/grunt/tasks/black-list-generator.js | 2 +- dev/tools/grunt/tasks/clean-black-list.js | 2 +- dev/tools/grunt/tasks/deploy.js | 2 +- dev/tools/grunt/tasks/mage-minify.js | 2 +- dev/tools/grunt/tasks/static.js | 2 +- dev/tools/grunt/tools/collect-validation-files.js | 4 ++-- dev/tools/grunt/tools/fs-tools.js | 2 +- dev/travis/before_install.sh | 2 +- dev/travis/before_script.sh | 2 +- index.php | 2 +- lib/internal/Magento/Framework/Acl.php | 2 +- lib/internal/Magento/Framework/Acl/AclResource.php | 2 +- .../Acl/AclResource/Config/Converter/Dom.php | 2 +- .../Acl/AclResource/Config/Reader/Filesystem.php | 2 +- .../Acl/AclResource/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Acl/AclResource/Provider.php | 2 +- .../Acl/AclResource/ProviderInterface.php | 2 +- .../Framework/Acl/AclResource/TreeBuilder.php | 2 +- .../Magento/Framework/Acl/AclResourceFactory.php | 2 +- lib/internal/Magento/Framework/Acl/Builder.php | 2 +- lib/internal/Magento/Framework/Acl/Cache.php | 2 +- .../Magento/Framework/Acl/CacheInterface.php | 2 +- .../Magento/Framework/Acl/Loader/DefaultLoader.php | 2 +- .../Framework/Acl/Loader/ResourceLoader.php | 2 +- .../Magento/Framework/Acl/LoaderInterface.php | 2 +- .../Magento/Framework/Acl/Role/Registry.php | 2 +- .../Magento/Framework/Acl/RootResource.php | 2 +- .../Unit/AclResource/Config/Converter/DomTest.php | 2 +- .../Converter/_files/converted_valid_acl.php | 2 +- .../Config/Converter/_files/valid_acl.xml | 2 +- .../Unit/AclResource/Config/SchemaLocatorTest.php | 2 +- .../Acl/Test/Unit/AclResource/Config/XsdTest.php | 2 +- .../Config/_files/invalidAclXmlArray.php | 2 +- .../Unit/AclResource/Config/_files/valid_acl.xml | 2 +- .../Acl/Test/Unit/AclResource/ProviderTest.php | 2 +- .../Acl/Test/Unit/AclResource/TreeBuilderTest.php | 2 +- .../Framework/Acl/Test/Unit/BuilderTest.php | 2 +- .../Magento/Framework/Acl/Test/Unit/CacheTest.php | 2 +- .../Framework/Acl/Test/Unit/Loader/DefaultTest.php | 2 +- .../Acl/Test/Unit/Loader/ResourceLoaderTest.php | 2 +- .../Acl/Test/Unit/ResourceFactoryTest.php | 2 +- .../Framework/Acl/Test/Unit/Role/RegistryTest.php | 2 +- .../Acl/Test/Unit/_files/resourceList.php | 2 +- .../Framework/Acl/Test/Unit/_files/result.php | 2 +- lib/internal/Magento/Framework/Acl/etc/acl.xsd | 2 +- lib/internal/Magento/Framework/AclFactory.php | 2 +- .../Framework/Api/AbstractExtensibleObject.php | 2 +- .../Framework/Api/AbstractServiceCollection.php | 2 +- .../Magento/Framework/Api/AbstractSimpleObject.php | 2 +- .../Framework/Api/AbstractSimpleObjectBuilder.php | 2 +- .../Magento/Framework/Api/ArrayObjectSearch.php | 2 +- .../Magento/Framework/Api/AttributeInterface.php | 2 +- .../Magento/Framework/Api/AttributeMetadata.php | 2 +- .../Api/AttributeTypeResolverInterface.php | 2 +- .../Magento/Framework/Api/AttributeValue.php | 2 +- .../Framework/Api/AttributeValueFactory.php | 2 +- .../Generator/ExtensionAttributesGenerator.php | 2 +- .../ExtensionAttributesInterfaceGenerator.php | 2 +- .../Framework/Api/Code/Generator/Mapper.php | 2 +- .../Framework/Api/Code/Generator/SearchResults.php | 2 +- .../Magento/Framework/Api/CriteriaInterface.php | 2 +- .../Api/CustomAttributesDataInterface.php | 2 +- .../Framework/Api/Data/ImageContentInterface.php | 2 +- .../Framework/Api/Data/VideoContentInterface.php | 2 +- .../Magento/Framework/Api/DataObjectHelper.php | 2 +- .../Framework/Api/DefaultMetadataService.php | 2 +- .../Framework/Api/ExtensibleDataInterface.php | 2 +- .../Api/ExtensibleDataObjectConverter.php | 2 +- .../Framework/Api/ExtensionAttribute/Config.php | 2 +- .../Api/ExtensionAttribute/Config/Converter.php | 2 +- .../Api/ExtensionAttribute/Config/Reader.php | 2 +- .../ExtensionAttribute/Config/SchemaLocator.php | 2 +- .../Framework/Api/ExtensionAttribute/JoinData.php | 2 +- .../Api/ExtensionAttribute/JoinDataInterface.php | 2 +- .../JoinDataInterfaceFactory.php | 2 +- .../Api/ExtensionAttribute/JoinProcessor.php | 2 +- .../Api/ExtensionAttribute/JoinProcessorHelper.php | 2 +- .../ExtensionAttribute/JoinProcessorInterface.php | 2 +- .../Framework/Api/ExtensionAttributesFactory.php | 2 +- .../Framework/Api/ExtensionAttributesInterface.php | 2 +- lib/internal/Magento/Framework/Api/Filter.php | 2 +- .../Magento/Framework/Api/FilterBuilder.php | 2 +- .../Magento/Framework/Api/ImageContent.php | 2 +- .../Framework/Api/ImageContentValidator.php | 2 +- .../Api/ImageContentValidatorInterface.php | 2 +- .../Magento/Framework/Api/ImageProcessor.php | 2 +- .../Framework/Api/ImageProcessorInterface.php | 2 +- .../Framework/Api/MetadataObjectInterface.php | 2 +- .../Framework/Api/MetadataServiceInterface.php | 2 +- .../Magento/Framework/Api/ObjectFactory.php | 2 +- .../Framework/Api/Search/AggregationInterface.php | 2 +- .../Api/Search/AggregationValueInterface.php | 2 +- .../Framework/Api/Search/BucketInterface.php | 2 +- .../Magento/Framework/Api/Search/Document.php | 2 +- .../Framework/Api/Search/DocumentFactory.php | 2 +- .../Framework/Api/Search/DocumentInterface.php | 2 +- .../Magento/Framework/Api/Search/FilterGroup.php | 2 +- .../Framework/Api/Search/FilterGroupBuilder.php | 2 +- .../Framework/Api/Search/ReportingInterface.php | 2 +- .../Framework/Api/Search/SearchCriteria.php | 2 +- .../Framework/Api/Search/SearchCriteriaBuilder.php | 2 +- .../Framework/Api/Search/SearchCriteriaFactory.php | 2 +- .../Api/Search/SearchCriteriaInterface.php | 2 +- .../Framework/Api/Search/SearchInterface.php | 2 +- .../Magento/Framework/Api/Search/SearchResult.php | 2 +- .../Framework/Api/Search/SearchResultFactory.php | 2 +- .../Framework/Api/Search/SearchResultInterface.php | 2 +- .../Magento/Framework/Api/SearchCriteria.php | 2 +- .../Framework/Api/SearchCriteriaBuilder.php | 2 +- .../Framework/Api/SearchCriteriaInterface.php | 2 +- .../Magento/Framework/Api/SearchResults.php | 2 +- .../Framework/Api/SearchResultsInterface.php | 2 +- .../Framework/Api/SimpleBuilderInterface.php | 2 +- .../Framework/Api/SimpleDataObjectConverter.php | 2 +- lib/internal/Magento/Framework/Api/SortOrder.php | 2 +- .../Magento/Framework/Api/SortOrderBuilder.php | 2 +- .../Test/Unit/Api/ImageContentValidatorTest.php | 2 +- .../Api/Test/Unit/Api/ImageProcessorTest.php | 2 +- .../Code/Generator/EntityChildTestAbstract.php | 2 +- .../Test/Unit/Code/Generator/ExtensibleSample.php | 2 +- .../Code/Generator/ExtensibleSampleInterface.php | 2 +- .../Generator/ExtensionAttributesGeneratorTest.php | 2 +- .../ExtensionAttributesInterfaceGeneratorTest.php | 2 +- .../Unit/Code/Generator/GenerateMapperTest.php | 2 +- .../Code/Generator/GenerateSearchResultsTest.php | 2 +- .../Api/Test/Unit/Code/Generator/Sample.php | 2 +- .../Api/Test/Unit/Data/AttributeValueTest.php | 2 +- .../Api/Test/Unit/DataObjectHelperTest.php | 2 +- .../Unit/ExtensibleDataObjectConverterTest.php | 2 +- .../ExtensionAttribute/Config/ConverterTest.php | 2 +- .../Unit/ExtensionAttribute/Config/ReaderTest.php | 2 +- .../Config/SchemaLocatorTest.php | 2 +- .../Unit/ExtensionAttribute/Config/XsdTest.php | 2 +- .../Config/_files/extension_attributes.xml | 2 +- .../extension_attributes_with_join_directives.xml | 2 +- .../Framework/Api/Test/Unit/SortOrderTest.php | 2 +- .../Api/Test/Unit/StubAbstractSimpleObject.php | 2 +- lib/internal/Magento/Framework/Api/Uploader.php | 2 +- .../Framework/Api/etc/extension_attributes.xsd | 2 +- .../Framework/App/Action/AbstractAction.php | 2 +- .../Magento/Framework/App/Action/Action.php | 2 +- .../Magento/Framework/App/Action/Context.php | 2 +- .../Magento/Framework/App/Action/Forward.php | 2 +- .../Magento/Framework/App/Action/Plugin/Design.php | 2 +- .../Magento/Framework/App/Action/Redirect.php | 2 +- .../Magento/Framework/App/ActionFactory.php | 2 +- lib/internal/Magento/Framework/App/ActionFlag.php | 2 +- .../Magento/Framework/App/ActionInterface.php | 2 +- lib/internal/Magento/Framework/App/Area.php | 2 +- .../App/Area/FrontNameResolverFactory.php | 2 +- .../App/Area/FrontNameResolverInterface.php | 2 +- .../Magento/Framework/App/AreaInterface.php | 2 +- lib/internal/Magento/Framework/App/AreaList.php | 2 +- .../Magento/Framework/App/AreaList/Proxy.php | 2 +- .../App/Arguments/ArgumentInterpreter.php | 2 +- .../App/Arguments/FileResolver/Primary.php | 2 +- .../Framework/App/Arguments/ValidationState.php | 2 +- lib/internal/Magento/Framework/App/Bootstrap.php | 2 +- lib/internal/Magento/Framework/App/Cache.php | 2 +- .../Framework/App/Cache/FlushCacheByTags.php | 2 +- .../Framework/App/Cache/Frontend/Factory.php | 2 +- .../Magento/Framework/App/Cache/Frontend/Pool.php | 2 +- .../Framework/App/Cache/InstanceFactory.php | 2 +- .../Magento/Framework/App/Cache/Manager.php | 2 +- lib/internal/Magento/Framework/App/Cache/Proxy.php | 2 +- lib/internal/Magento/Framework/App/Cache/State.php | 2 +- .../Magento/Framework/App/Cache/StateInterface.php | 2 +- .../Magento/Framework/App/Cache/Tag/Resolver.php | 2 +- .../Framework/App/Cache/Tag/Strategy/Dummy.php | 2 +- .../Framework/App/Cache/Tag/Strategy/Factory.php | 2 +- .../App/Cache/Tag/Strategy/Identifier.php | 2 +- .../Framework/App/Cache/Tag/StrategyInterface.php | 2 +- .../Framework/App/Cache/Type/AccessProxy.php | 2 +- .../Magento/Framework/App/Cache/Type/Block.php | 2 +- .../Framework/App/Cache/Type/Collection.php | 2 +- .../Magento/Framework/App/Cache/Type/Config.php | 2 +- .../Magento/Framework/App/Cache/Type/Dummy.php | 2 +- .../Framework/App/Cache/Type/FrontendPool.php | 2 +- .../Magento/Framework/App/Cache/Type/Layout.php | 2 +- .../Framework/App/Cache/Type/Reflection.php | 2 +- .../Magento/Framework/App/Cache/Type/Translate.php | 2 +- .../Magento/Framework/App/Cache/TypeList.php | 2 +- .../Framework/App/Cache/TypeListInterface.php | 2 +- .../Magento/Framework/App/CacheInterface.php | 2 +- lib/internal/Magento/Framework/App/Config.php | 2 +- lib/internal/Magento/Framework/App/Config/Base.php | 2 +- .../Magento/Framework/App/Config/BaseFactory.php | 2 +- .../Framework/App/Config/CommentInterface.php | 2 +- .../App/Config/ConfigResource/ConfigInterface.php | 2 +- .../App/Config/ConfigSourceAggregated.php | 2 +- .../Framework/App/Config/ConfigSourceInterface.php | 2 +- .../Framework/App/Config/ConfigTypeInterface.php | 2 +- lib/internal/Magento/Framework/App/Config/Data.php | 2 +- .../Framework/App/Config/Data/ProcessorFactory.php | 2 +- .../App/Config/Data/ProcessorInterface.php | 2 +- .../Magento/Framework/App/Config/DataFactory.php | 2 +- .../Magento/Framework/App/Config/DataInterface.php | 2 +- .../Magento/Framework/App/Config/Element.php | 2 +- .../Magento/Framework/App/Config/FileResolver.php | 2 +- .../Magento/Framework/App/Config/Initial.php | 2 +- .../Framework/App/Config/Initial/Converter.php | 2 +- .../Framework/App/Config/Initial/Reader.php | 2 +- .../Framework/App/Config/Initial/SchemaLocator.php | 2 +- .../Framework/App/Config/InitialConfigSource.php | 2 +- .../App/Config/MetadataConfigTypeProcessor.php | 2 +- .../Framework/App/Config/MetadataProcessor.php | 2 +- .../App/Config/MutableScopeConfigInterface.php | 2 +- .../App/Config/PostProcessorComposite.php | 2 +- .../Framework/App/Config/PreProcessorComposite.php | 2 +- .../App/Config/Reader/Source/SourceInterface.php | 2 +- .../App/Config/ReinitableConfigInterface.php | 2 +- .../Framework/App/Config/Scope/Converter.php | 2 +- .../Framework/App/Config/Scope/ReaderInterface.php | 2 +- .../App/Config/Scope/ReaderPoolInterface.php | 2 +- .../Framework/App/Config/ScopeCodeResolver.php | 2 +- .../Framework/App/Config/ScopeConfigInterface.php | 2 +- .../Magento/Framework/App/Config/ScopePool.php | 2 +- .../App/Config/Spi/PostProcessorInterface.php | 2 +- .../App/Config/Spi/PreProcessorInterface.php | 2 +- .../Framework/App/Config/Storage/Writer.php | 2 +- .../App/Config/Storage/WriterInterface.php | 2 +- .../Magento/Framework/App/Config/Value.php | 2 +- .../Magento/Framework/App/Config/ValueFactory.php | 2 +- .../Framework/App/Config/ValueInterface.php | 2 +- .../Magento/Framework/App/Console/Request.php | 2 +- .../Magento/Framework/App/Console/Response.php | 2 +- lib/internal/Magento/Framework/App/Cron.php | 2 +- .../Framework/App/DefaultPath/DefaultPath.php | 2 +- .../Magento/Framework/App/DefaultPathInterface.php | 2 +- .../Magento/Framework/App/DeploymentConfig.php | 2 +- .../Framework/App/DeploymentConfig/Reader.php | 2 +- .../Framework/App/DeploymentConfig/Writer.php | 2 +- .../DeploymentConfig/Writer/FormatterInterface.php | 2 +- .../App/DeploymentConfig/Writer/PhpFormatter.php | 2 +- .../Magento/Framework/App/DesignInterface.php | 2 +- .../Magento/Framework/App/DocRootLocator.php | 2 +- .../Magento/Framework/App/EnvironmentFactory.php | 2 +- .../Magento/Framework/App/EnvironmentInterface.php | 2 +- .../Magento/Framework/App/ErrorHandler.php | 2 +- .../Framework/App/Filesystem/DirectoryList.php | 2 +- .../Magento/Framework/App/FrontController.php | 2 +- .../Framework/App/FrontControllerInterface.php | 2 +- .../Framework/App/Helper/AbstractHelper.php | 2 +- .../Magento/Framework/App/Helper/Context.php | 2 +- lib/internal/Magento/Framework/App/Http.php | 2 +- .../Magento/Framework/App/Http/Context.php | 2 +- .../App/Interception/Cache/CompiledConfig.php | 2 +- .../Magento/Framework/App/Language/Config.php | 2 +- .../Framework/App/Language/ConfigFactory.php | 2 +- .../Magento/Framework/App/Language/Dictionary.php | 2 +- .../Magento/Framework/App/Language/package.xsd | 2 +- .../Magento/Framework/App/MaintenanceMode.php | 2 +- .../Magento/Framework/App/MutableScopeConfig.php | 2 +- .../Magento/Framework/App/ObjectManager.php | 2 +- .../Framework/App/ObjectManager/ConfigCache.php | 2 +- .../Framework/App/ObjectManager/ConfigLoader.php | 2 +- .../App/ObjectManager/ConfigLoader/Compiled.php | 2 +- .../Environment/AbstractEnvironment.php | 2 +- .../App/ObjectManager/Environment/Compiled.php | 2 +- .../App/ObjectManager/Environment/Developer.php | 2 +- .../Magento/Framework/App/ObjectManagerFactory.php | 2 +- .../Magento/Framework/App/PageCache/Cache.php | 2 +- .../Magento/Framework/App/PageCache/FormKey.php | 2 +- .../Magento/Framework/App/PageCache/Identifier.php | 2 +- .../Magento/Framework/App/PageCache/Kernel.php | 2 +- .../App/PageCache/NotCacheableInterface.php | 2 +- .../Magento/Framework/App/PageCache/Version.php | 2 +- .../Magento/Framework/App/ProductMetadata.php | 2 +- .../Framework/App/ProductMetadataInterface.php | 2 +- .../Magento/Framework/App/ReinitableConfig.php | 2 +- .../Framework/App/Request/DataPersistor.php | 2 +- .../App/Request/DataPersistorInterface.php | 2 +- .../Magento/Framework/App/Request/Http.php | 2 +- .../App/Request/PathInfoProcessorInterface.php | 2 +- .../Magento/Framework/App/RequestFactory.php | 2 +- .../Magento/Framework/App/RequestInterface.php | 2 +- .../Framework/App/RequestSafetyInterface.php | 2 +- .../Magento/Framework/App/ResourceConnection.php | 2 +- .../Framework/App/ResourceConnection/Config.php | 2 +- .../App/ResourceConnection/Config/Converter.php | 2 +- .../App/ResourceConnection/Config/Reader.php | 2 +- .../ResourceConnection/Config/SchemaLocator.php | 2 +- .../App/ResourceConnection/ConfigInterface.php | 2 +- .../ConnectionAdapterInterface.php | 2 +- .../App/ResourceConnection/ConnectionFactory.php | 2 +- .../App/ResourceConnection/SourceFactory.php | 2 +- .../ResourceConnection/SourceProviderInterface.php | 2 +- .../Framework/App/Response/FileInterface.php | 2 +- .../Framework/App/Response/HeaderManager.php | 2 +- .../HeaderProvider/AbstractHeaderProvider.php | 2 +- .../HeaderProvider/HeaderProviderInterface.php | 2 +- .../HeaderProvider/XContentTypeOptions.php | 2 +- .../App/Response/HeaderProvider/XFrameOptions.php | 2 +- .../App/Response/HeaderProvider/XssProtection.php | 2 +- .../Magento/Framework/App/Response/Http.php | 2 +- .../Framework/App/Response/Http/FileFactory.php | 2 +- .../Framework/App/Response/HttpInterface.php | 2 +- .../Framework/App/Response/RedirectInterface.php | 2 +- .../Magento/Framework/App/ResponseFactory.php | 2 +- .../Magento/Framework/App/ResponseInterface.php | 2 +- .../Magento/Framework/App/Route/Config.php | 2 +- .../Framework/App/Route/Config/Converter.php | 2 +- .../Magento/Framework/App/Route/Config/Reader.php | 2 +- .../Framework/App/Route/Config/SchemaLocator.php | 2 +- .../Framework/App/Route/ConfigInterface.php | 2 +- .../Framework/App/Route/ConfigInterface/Proxy.php | 2 +- .../Magento/Framework/App/Router/ActionList.php | 2 +- lib/internal/Magento/Framework/App/Router/Base.php | 2 +- .../Magento/Framework/App/Router/DefaultRouter.php | 2 +- .../Framework/App/Router/NoRouteHandler.php | 2 +- .../App/Router/NoRouteHandlerInterface.php | 2 +- .../Framework/App/Router/NoRouteHandlerList.php | 2 +- .../Framework/App/Router/PathConfigInterface.php | 2 +- .../Magento/Framework/App/RouterInterface.php | 2 +- lib/internal/Magento/Framework/App/RouterList.php | 2 +- .../Magento/Framework/App/RouterListInterface.php | 2 +- .../Framework/App/Rss/DataProviderInterface.php | 2 +- .../Framework/App/Rss/RssManagerInterface.php | 2 +- .../Magento/Framework/App/Rss/UrlBuilder.php | 2 +- .../Framework/App/Rss/UrlBuilderInterface.php | 2 +- .../Magento/Framework/App/Scope/Source.php | 2 +- .../App/ScopeFallbackResolverInterface.php | 2 +- .../Magento/Framework/App/ScopeInterface.php | 2 +- .../Framework/App/ScopeResolverInterface.php | 2 +- .../Magento/Framework/App/ScopeResolverPool.php | 2 +- .../Framework/App/ScopeTreeProviderInterface.php | 2 +- .../Framework/App/ScopeValidatorInterface.php | 2 +- lib/internal/Magento/Framework/App/SetupInfo.php | 2 +- lib/internal/Magento/Framework/App/Shell.php | 2 +- lib/internal/Magento/Framework/App/State.php | 2 +- .../Magento/Framework/App/State/CleanupFiles.php | 2 +- .../Magento/Framework/App/StaticResource.php | 2 +- .../Framework/App/TemplateTypesInterface.php | 2 +- .../Framework/App/Test/Unit/AclResourceTest.php | 2 +- .../App/Test/Unit/Action/AbstractActionTest.php | 2 +- .../Framework/App/Test/Unit/Action/ActionTest.php | 2 +- .../Framework/App/Test/Unit/Action/ForwardTest.php | 2 +- .../App/Test/Unit/Action/Plugin/DesignTest.php | 2 +- .../App/Test/Unit/Action/Stub/ActionStub.php | 2 +- .../Framework/App/Test/Unit/ActionFlagTest.php | 2 +- .../Framework/App/Test/Unit/AreaListTest.php | 2 +- .../Magento/Framework/App/Test/Unit/AreaTest.php | 2 +- .../Unit/Arguments/ArgumentInterpreterTest.php | 2 +- .../Unit/Arguments/FileResolver/PrimaryTest.php | 2 +- .../FileResolver/_files/app/etc/config.xml | 2 +- .../FileResolver/_files/app/etc/custom/config.xml | 2 +- .../FileResolver/_files/primary/app/etc/di.xml | 2 +- .../_files/primary/app/etc/some_config/di.xml | 2 +- .../Framework/App/Test/Unit/BootstrapTest.php | 2 +- .../App/Test/Unit/Cache/FlushCacheByTagsTest.php | 2 +- .../App/Test/Unit/Cache/Frontend/FactoryTest.php | 2 +- .../Frontend/FactoryTest/CacheDecoratorDummy.php | 2 +- .../App/Test/Unit/Cache/Frontend/PoolTest.php | 2 +- .../Framework/App/Test/Unit/Cache/ManagerTest.php | 2 +- .../Framework/App/Test/Unit/Cache/StateTest.php | 2 +- .../App/Test/Unit/Cache/Tag/ResolverTest.php | 2 +- .../App/Test/Unit/Cache/Tag/Strategy/DummyTest.php | 2 +- .../Test/Unit/Cache/Tag/Strategy/FactoryTest.php | 2 +- .../Unit/Cache/Tag/Strategy/IdentifierTest.php | 2 +- .../App/Test/Unit/Cache/Type/AccessProxyTest.php | 2 +- .../App/Test/Unit/Cache/Type/ConfigTest.php | 2 +- .../App/Test/Unit/Cache/Type/FrontendPoolTest.php | 2 +- .../App/Test/Unit/Cache/Type/GenericTest.php | 2 +- .../Framework/App/Test/Unit/Cache/TypeListTest.php | 2 +- .../Magento/Framework/App/Test/Unit/CacheTest.php | 2 +- .../App/Test/Unit/Config/BaseFactoryTest.php | 2 +- .../Unit/Config/ConfigSourceAggregatedTest.php | 2 +- .../Test/Unit/Config/Data/ProcessorFactoryTest.php | 2 +- .../App/Test/Unit/Config/DataFactoryTest.php | 2 +- .../Framework/App/Test/Unit/Config/DataTest.php | 2 +- .../Framework/App/Test/Unit/Config/ElementTest.php | 2 +- .../App/Test/Unit/Config/FileResolverTest.php | 2 +- .../App/Test/Unit/Config/Initial/ConverterTest.php | 2 +- .../App/Test/Unit/Config/Initial/ReaderTest.php | 2 +- .../Test/Unit/Config/Initial/SchemaLocatorTest.php | 2 +- .../App/Test/Unit/Config/Initial/XsdTest.php | 2 +- .../App/Test/Unit/Config/Initial/_files/config.xml | 2 +- .../App/Test/Unit/Config/Initial/_files/config.xsd | 2 +- .../Config/Initial/_files/converted_config.php | 2 +- .../Unit/Config/Initial/_files/initial_config1.xml | 2 +- .../Unit/Config/Initial/_files/initial_config2.xml | 2 +- .../Initial/_files/initial_config_merged.php | 2 +- .../Initial/_files/invalidConfigXmlArray.php | 2 +- .../Unit/Config/Initial/_files/invalid_config.xml | 2 +- .../Unit/Config/Initial/_files/valid_config.xml | 2 +- .../Test/Unit/Config/InitialConfigSourceTest.php | 2 +- .../Framework/App/Test/Unit/Config/InitialTest.php | 2 +- .../Config/MetadataConfigTypeProcessorTest.php | 2 +- .../App/Test/Unit/Config/MetadataProcessorTest.php | 2 +- .../Test/Unit/Config/PreProcessorCompositeTest.php | 2 +- .../App/Test/Unit/Config/Scope/ConverterTest.php | 2 +- .../App/Test/Unit/Config/ScopeCodeResolverTest.php | 2 +- .../App/Test/Unit/Config/ScopePoolTest.php | 2 +- .../App/Test/Unit/Config/Storage/WriterTest.php | 2 +- .../App/Test/Unit/Config/ValueFactoryTest.php | 2 +- .../Framework/App/Test/Unit/Config/ValueTest.php | 2 +- .../Framework/App/Test/Unit/Config/XsdTest.php | 2 +- .../App/Test/Unit/Config/_files/element.xml | 2 +- .../Unit/Config/_files/invalidRoutesXmlArray.php | 2 +- .../App/Test/Unit/Config/_files/valid_routes.xml | 2 +- .../Magento/Framework/App/Test/Unit/ConfigTest.php | 2 +- .../App/Test/Unit/Console/CommandListTest.php | 2 +- .../App/Test/Unit/Console/ResponseTest.php | 2 +- .../Magento/Framework/App/Test/Unit/CronTest.php | 2 +- .../Framework/App/Test/Unit/DefaultClass.php | 2 +- .../App/Test/Unit/DefaultPath/DefaultPathTest.php | 2 +- .../App/Test/Unit/DeploymentConfig/ReaderTest.php | 2 +- .../DeploymentConfig/Writer/PhpFormatterTest.php | 2 +- .../App/Test/Unit/DeploymentConfig/WriterTest.php | 2 +- .../Test/Unit/DeploymentConfig/_files/config.php | 2 +- .../Test/Unit/DeploymentConfig/_files/custom.php | 2 +- .../DeploymentConfig/_files/duplicateConfig.php | 2 +- .../App/Test/Unit/DeploymentConfig/_files/env.php | 2 +- .../Test/Unit/DeploymentConfig/_files/mergeOne.php | 2 +- .../Test/Unit/DeploymentConfig/_files/mergeTwo.php | 2 +- .../App/Test/Unit/DeploymentConfigTest.php | 2 +- .../Framework/App/Test/Unit/DocRootLocatorTest.php | 2 +- .../Framework/App/Test/Unit/ErrorHandlerTest.php | 2 +- .../App/Test/Unit/Filesystem/DirectoryListTest.php | 2 +- .../Magento/Framework/App/Test/Unit/FrontClass.php | 2 +- .../App/Test/Unit/FrontControllerTest.php | 2 +- .../Framework/App/Test/Unit/Http/ContextTest.php | 2 +- .../Magento/Framework/App/Test/Unit/HttpTest.php | 2 +- .../App/Test/Unit/Language/ConfigTest.php | 2 +- .../App/Test/Unit/Language/DictionaryTest.php | 2 +- .../App/Test/Unit/Language/_files/language.xml | 2 +- .../App/Test/Unit/MaintenanceModeTest.php | 2 +- .../Test/Unit/ObjectManager/ConfigCacheTest.php | 2 +- .../Test/Unit/ObjectManager/ConfigLoaderTest.php | 2 +- .../ObjectManager/Environment/CompiledTest.php | 2 +- .../ObjectManager/Environment/CompiledTesting.php | 2 +- .../ObjectManager/Environment/ConfigTesting.php | 2 +- .../ObjectManager/Environment/DeveloperTest.php | 2 +- .../App/Test/Unit/ObjectManager/FactoryStub.php | 2 +- .../App/Test/Unit/ObjectManagerFactoryTest.php | 2 +- .../App/Test/Unit/PageCache/FormKeyTest.php | 2 +- .../App/Test/Unit/PageCache/IdentifierTest.php | 2 +- .../App/Test/Unit/PageCache/KernelTest.php | 2 +- .../App/Test/Unit/PageCache/PageCacheTest.php | 2 +- .../App/Test/Unit/PageCache/VersionTest.php | 2 +- .../App/Test/Unit/ProductMetadataTest.php | 2 +- .../App/Test/Unit/ReinitableConfigTest.php | 2 +- .../Framework/App/Test/Unit/Request/HttpTest.php | 2 +- .../Framework/App/Test/Unit/RequestFactoryTest.php | 2 +- .../ResourceConnection/Config/ConverterTest.php | 2 +- .../Unit/ResourceConnection/Config/ReaderTest.php | 2 +- .../Config/SchemaLocatorTest.php | 2 +- .../Unit/ResourceConnection/Config/XsdTest.php | 2 +- .../Config/_files/invalidResourcesXmlArray.php | 2 +- .../ResourceConnection/Config/_files/resources.php | 2 +- .../ResourceConnection/Config/_files/resources.xml | 2 +- .../Config/_files/valid_resources.xml | 2 +- .../Test/Unit/ResourceConnection/ConfigTest.php | 2 +- .../ResourceConnection/ConnectionFactoryTest.php | 2 +- .../Response/HeaderProvider/XFrameOptionsTest.php | 2 +- .../Response/HeaderProvider/XssProtectionTest.php | 2 +- .../Test/Unit/Response/Http/FileFactoryTest.php | 2 +- .../Framework/App/Test/Unit/Response/HttpTest.php | 2 +- .../App/Test/Unit/ResponseFactoryTest.php | 2 +- .../App/Test/Unit/Route/Config/ConverterTest.php | 2 +- .../Test/Unit/Route/Config/SchemaLocatorTest.php | 2 +- .../App/Test/Unit/Route/Config/_files/routes.php | 2 +- .../App/Test/Unit/Route/Config/_files/routes.xml | 2 +- .../Test/Unit/Route/ConfigInterface/ProxyTest.php | 2 +- .../Framework/App/Test/Unit/Route/ConfigTest.php | 2 +- .../App/Test/Unit/Router/ActionListTest.php | 2 +- .../Framework/App/Test/Unit/Router/BaseTest.php | 2 +- .../App/Test/Unit/Router/DefaultRouterTest.php | 2 +- .../Test/Unit/Router/NoRouteHandlerListTest.php | 2 +- .../App/Test/Unit/Router/NoRouteHandlerTest.php | 2 +- .../Framework/App/Test/Unit/RouterListTest.php | 2 +- .../App/Test/Unit/ScopeResolverPoolTest.php | 2 +- .../Framework/App/Test/Unit/SetupInfoTest.php | 2 +- .../Magento/Framework/App/Test/Unit/ShellTest.php | 2 +- .../App/Test/Unit/State/CleanupFilesTest.php | 2 +- .../Magento/Framework/App/Test/Unit/StateTest.php | 2 +- .../Framework/App/Test/Unit/StaticResourceTest.php | 2 +- .../App/Test/Unit/Utility/AggregateInvokerTest.php | 2 +- .../Framework/App/Test/Unit/Utility/FilesTest.php | 2 +- .../Asset/MaterializationStrategy/CopyTest.php | 2 +- .../Asset/MaterializationStrategy/FactoryTest.php | 2 +- .../Asset/MaterializationStrategy/SymlinkTest.php | 2 +- .../App/Test/Unit/View/Asset/PublisherTest.php | 2 +- .../View/Deployment/Version/Storage/FileTest.php | 2 +- .../App/Test/Unit/View/Deployment/VersionTest.php | 2 +- .../Magento/Framework/App/Test/Unit/ViewTest.php | 2 +- .../Framework/App/Test/Unit/_files/app/etc/di.xml | 2 +- .../Framework/App/Test/Unit/_files/config.php | 2 +- .../App/Test/Unit/_files/other/local_developer.php | 2 +- .../Unit/_files/other/local_developer_merged.php | 2 +- .../Framework/App/Test/Unit/_files/pub/index.php | 2 +- .../Framework/App/Test/Unit/_files/setup/index.php | 2 +- .../Framework/App/Utility/AggregateInvoker.php | 2 +- .../Magento/Framework/App/Utility/Classes.php | 2 +- .../Magento/Framework/App/Utility/Files.php | 2 +- .../Framework/App/Utility/RegexIteratorFactory.php | 2 +- lib/internal/Magento/Framework/App/View.php | 2 +- .../View/Asset/MaterializationStrategy/Copy.php | 2 +- .../View/Asset/MaterializationStrategy/Factory.php | 2 +- .../MaterializationStrategy/StrategyInterface.php | 2 +- .../View/Asset/MaterializationStrategy/Symlink.php | 2 +- .../Magento/Framework/App/View/Asset/Publisher.php | 2 +- .../Framework/App/View/Deployment/Version.php | 2 +- .../App/View/Deployment/Version/Storage/File.php | 2 +- .../View/Deployment/Version/StorageInterface.php | 2 +- .../Magento/Framework/App/ViewInterface.php | 2 +- .../Magento/Framework/App/etc/resources.xsd | 2 +- lib/internal/Magento/Framework/App/etc/routes.xsd | 2 +- .../Magento/Framework/App/etc/routes_merged.xsd | 2 +- lib/internal/Magento/Framework/AppInterface.php | 2 +- lib/internal/Magento/Framework/Archive.php | 2 +- .../Magento/Framework/Archive/AbstractArchive.php | 2 +- .../Magento/Framework/Archive/ArchiveInterface.php | 2 +- lib/internal/Magento/Framework/Archive/Bz.php | 2 +- lib/internal/Magento/Framework/Archive/Gz.php | 2 +- .../Magento/Framework/Archive/Helper/File.php | 2 +- .../Magento/Framework/Archive/Helper/File/Bz.php | 2 +- .../Magento/Framework/Archive/Helper/File/Gz.php | 2 +- lib/internal/Magento/Framework/Archive/Tar.php | 2 +- .../Framework/Archive/Test/Unit/ZipTest.php | 2 +- lib/internal/Magento/Framework/Archive/Zip.php | 2 +- lib/internal/Magento/Framework/Authorization.php | 2 +- .../Magento/Framework/Authorization/Factory.php | 2 +- .../Magento/Framework/Authorization/Policy/Acl.php | 2 +- .../Authorization/Policy/DefaultPolicy.php | 2 +- .../Framework/Authorization/PolicyInterface.php | 2 +- .../RoleLocator/DefaultRoleLocator.php | 2 +- .../Authorization/RoleLocatorInterface.php | 2 +- .../Authorization/Test/Unit/Policy/AclTest.php | 2 +- .../Authorization/Test/Unit/Policy/DefaultTest.php | 2 +- .../Magento/Framework/AuthorizationInterface.php | 2 +- .../Framework/Autoload/AutoloaderInterface.php | 2 +- .../Framework/Autoload/AutoloaderRegistry.php | 2 +- .../Framework/Autoload/ClassLoaderWrapper.php | 2 +- .../Magento/Framework/Autoload/ClassMap.php | 2 +- .../Magento/Framework/Autoload/Populator.php | 2 +- .../Autoload/Test/Unit/ClassLoaderWrapperTest.php | 2 +- .../Framework/Autoload/Test/Unit/PopulatorTest.php | 2 +- .../Magento/Framework/Backup/AbstractBackup.php | 2 +- .../Magento/Framework/Backup/Archive/Tar.php | 2 +- .../Magento/Framework/Backup/BackupException.php | 2 +- .../Magento/Framework/Backup/BackupInterface.php | 2 +- lib/internal/Magento/Framework/Backup/Db.php | 2 +- .../Framework/Backup/Db/BackupDbInterface.php | 2 +- .../Magento/Framework/Backup/Db/BackupFactory.php | 2 +- .../Framework/Backup/Db/BackupInterface.php | 2 +- .../Backup/Exception/CantLoadSnapshot.php | 2 +- .../Backup/Exception/FtpConnectionFailed.php | 2 +- .../Backup/Exception/FtpValidationFailed.php | 2 +- .../Backup/Exception/NotEnoughFreeSpace.php | 2 +- .../Backup/Exception/NotEnoughPermissions.php | 2 +- lib/internal/Magento/Framework/Backup/Factory.php | 2 +- .../Magento/Framework/Backup/Filesystem.php | 2 +- .../Magento/Framework/Backup/Filesystem/Helper.php | 2 +- .../Framework/Backup/Filesystem/Iterator/File.php | 2 +- .../Backup/Filesystem/Iterator/Filter.php | 2 +- .../Filesystem/Rollback/AbstractRollback.php | 2 +- .../Framework/Backup/Filesystem/Rollback/Fs.php | 2 +- .../Framework/Backup/Filesystem/Rollback/Ftp.php | 2 +- lib/internal/Magento/Framework/Backup/Media.php | 2 +- lib/internal/Magento/Framework/Backup/Nomedia.php | 2 +- lib/internal/Magento/Framework/Backup/Snapshot.php | 2 +- .../Framework/Backup/Test/Unit/FactoryTest.php | 2 +- .../Backup/Test/Unit/Filesystem/Helper.php | 2 +- .../Backup/Test/Unit/Filesystem/Rollback/Fs.php | 2 +- .../Backup/Test/Unit/Filesystem/Rollback/Ftp.php | 2 +- .../Framework/Backup/Test/Unit/MediaTest.php | 2 +- .../Framework/Backup/Test/Unit/NomediaTest.php | 2 +- .../Framework/Backup/Test/Unit/SnapshotTest.php | 2 +- .../Framework/Backup/Test/Unit/_files/app_dirs.php | 2 +- .../Backup/Test/Unit/_files/app_dirs_rollback.php | 2 +- .../Framework/Backup/Test/Unit/_files/io.php | 2 +- .../Magento/Framework/Cache/Backend/Database.php | 2 +- .../Cache/Backend/Decorator/AbstractDecorator.php | 2 +- .../Cache/Backend/Decorator/Compression.php | 2 +- .../Framework/Cache/Backend/Eaccelerator.php | 2 +- .../Magento/Framework/Cache/Backend/Memcached.php | 2 +- .../Magento/Framework/Cache/Backend/MongoDb.php | 2 +- lib/internal/Magento/Framework/Cache/Config.php | 2 +- .../Magento/Framework/Cache/Config/Converter.php | 2 +- .../Magento/Framework/Cache/Config/Data.php | 2 +- .../Magento/Framework/Cache/Config/Reader.php | 2 +- .../Framework/Cache/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Cache/ConfigInterface.php | 2 +- lib/internal/Magento/Framework/Cache/Core.php | 2 +- .../Framework/Cache/Frontend/Adapter/Zend.php | 2 +- .../Framework/Cache/Frontend/Decorator/Bare.php | 2 +- .../Framework/Cache/Frontend/Decorator/Logger.php | 2 +- .../Cache/Frontend/Decorator/Profiler.php | 2 +- .../Cache/Frontend/Decorator/TagScope.php | 2 +- .../Magento/Framework/Cache/FrontendInterface.php | 2 +- .../Magento/Framework/Cache/InvalidateLogger.php | 2 +- .../Cache/Test/Unit/Backend/DatabaseTest.php | 2 +- .../Unit/Backend/Decorator/CompressionTest.php | 2 +- .../Backend/Decorator/DecoratorAbstractTest.php | 2 +- .../Cache/Test/Unit/Backend/MongoDbTest.php | 2 +- .../Test/Unit/Backend/_files/MongoBinData.txt | 2 +- .../Cache/Test/Unit/Config/ConverterTest.php | 2 +- .../Cache/Test/Unit/Config/SchemaLocatorTest.php | 2 +- .../Cache/Test/Unit/Config/_files/cache_config.php | 2 +- .../Cache/Test/Unit/Config/_files/cache_config.xml | 2 +- .../Framework/Cache/Test/Unit/ConfigTest.php | 2 +- .../Magento/Framework/Cache/Test/Unit/CoreTest.php | 2 +- .../Cache/Test/Unit/Frontend/Adapter/ZendTest.php | 2 +- .../Test/Unit/Frontend/Decorator/BareTest.php | 2 +- .../Test/Unit/Frontend/Decorator/ProfilerTest.php | 2 +- .../Test/Unit/Frontend/Decorator/TagScopeTest.php | 2 +- .../Cache/Test/Unit/InvalidateLoggerTest.php | 2 +- lib/internal/Magento/Framework/Cache/etc/cache.xsd | 2 +- .../Magento/Framework/Code/GeneratedFiles.php | 2 +- lib/internal/Magento/Framework/Code/Generator.php | 2 +- .../Framework/Code/Generator/Autoloader.php | 2 +- .../Framework/Code/Generator/ClassGenerator.php | 2 +- .../Code/Generator/CodeGeneratorInterface.php | 2 +- .../Framework/Code/Generator/DefinedClasses.php | 2 +- .../Framework/Code/Generator/EntityAbstract.php | 2 +- .../Code/Generator/InterfaceGenerator.php | 2 +- .../Code/Generator/InterfaceMethodGenerator.php | 2 +- .../Magento/Framework/Code/Generator/Io.php | 2 +- .../Framework/Code/Minifier/Adapter/Css/CSSmin.php | 2 +- .../Framework/Code/Minifier/Adapter/Js/JShrink.php | 2 +- .../Framework/Code/Minifier/AdapterInterface.php | 2 +- .../Magento/Framework/Code/NameBuilder.php | 2 +- .../Framework/Code/Reader/ArgumentsReader.php | 2 +- .../Magento/Framework/Code/Reader/ClassReader.php | 2 +- .../Framework/Code/Reader/ClassReaderInterface.php | 2 +- .../Code/Reader/SourceArgumentsReader.php | 2 +- .../Code/Test/Unit/GeneratedFilesTest.php | 2 +- .../Test/Unit/Generator/ClassGeneratorTest.php | 2 +- .../Test/Unit/Generator/DefinedClassesTest.php | 2 +- .../Test/Unit/Generator/EntityAbstractTest.php | 2 +- .../Test/Unit/Generator/InterfaceGeneratorTest.php | 2 +- .../Framework/Code/Test/Unit/Generator/IoTest.php | 2 +- .../Test/Unit/Generator/TestAsset/ParentClass.php | 2 +- .../Test/Unit/Generator/TestAsset/SourceClass.php | 2 +- .../Generator/TestAsset/TestGenerationClass.php | 2 +- .../Framework/Code/Test/Unit/GeneratorTest.php | 2 +- .../Test/Unit/Minifier/Adapter/Css/CssMinTest.php | 2 +- .../Test/Unit/Minifier/Adapter/Js/JShrinkTest.php | 2 +- .../Code/Test/Unit/Minifier/_files/js/original.js | 2 +- .../File/Validator/NotProtectedExtensionTest.php | 2 +- .../Framework/Code/Test/Unit/NameBuilderTest.php | 2 +- .../Code/Test/Unit/Reader/ArgumentsReaderTest.php | 2 +- .../Reader/_files/ClassesForArgumentsReader.php | 2 +- .../Test/Unit/Validator/ArgumentSequenceTest.php | 2 +- .../Validator/ConstructorArgumentTypesTest.php | 2 +- .../Unit/Validator/ConstructorIntegrityTest.php | 2 +- .../Test/Unit/Validator/ContextAggregationTest.php | 2 +- .../Test/Unit/Validator/TypeDuplicationTest.php | 2 +- .../_files/ClassesForArgumentSequence.php | 2 +- .../_files/ClassesForConstructorIntegrity.php | 2 +- .../_files/ClassesForContextAggregation.php | 2 +- .../Validator/_files/ClassesForTypeDuplication.php | 2 +- .../Framework/Code/Test/Unit/ValidatorTest.php | 2 +- .../Magento/SomeModule/Model/ElementFactory.php | 2 +- .../code/Magento/SomeModule/Model/Five/Test.php | 2 +- .../code/Magento/SomeModule/Model/Four/Test.php | 2 +- .../app/code/Magento/SomeModule/Model/One/Test.php | 2 +- .../app/code/Magento/SomeModule/Model/Proxy.php | 2 +- .../Magento/SomeModule/Model/SevenInterface.php | 2 +- .../app/code/Magento/SomeModule/Model/Six/Test.php | 2 +- .../code/Magento/SomeModule/Model/Three/Test.php | 2 +- .../app/code/Magento/SomeModule/Model/Two/Test.php | 2 +- lib/internal/Magento/Framework/Code/Validator.php | 2 +- .../Framework/Code/Validator/ArgumentSequence.php | 2 +- .../Code/Validator/ConstructorArgumentTypes.php | 2 +- .../Code/Validator/ConstructorIntegrity.php | 2 +- .../Code/Validator/ContextAggregation.php | 2 +- .../Framework/Code/Validator/TypeDuplication.php | 2 +- .../Magento/Framework/Code/ValidatorInterface.php | 2 +- .../Magento/Framework/Communication/Config.php | 2 +- .../Communication/Config/CompositeReader.php | 2 +- .../Framework/Communication/Config/Data.php | 2 +- .../Communication/Config/Reader/EnvReader.php | 2 +- .../Config/Reader/EnvReader/Validator.php | 2 +- .../Communication/Config/Reader/XmlReader.php | 2 +- .../Config/Reader/XmlReader/Converter.php | 2 +- .../Config/Reader/XmlReader/SchemaLocator.php | 2 +- .../Config/Reader/XmlReader/Validator.php | 2 +- .../Communication/Config/ReflectionGenerator.php | 2 +- .../Framework/Communication/Config/Validator.php | 2 +- .../Framework/Communication/ConfigInterface.php | 2 +- .../Framework/Communication/etc/communication.xsd | 2 +- .../Magento/Framework/Component/ComponentFile.php | 2 +- .../Framework/Component/ComponentRegistrar.php | 2 +- .../Component/ComponentRegistrarInterface.php | 2 +- .../Magento/Framework/Component/DirSearch.php | 2 +- .../Component/Test/Unit/ComponentFileTest.php | 2 +- .../Component/Test/Unit/ComponentRegistrarTest.php | 2 +- .../Component/Test/Unit/DirSearchTest.php | 2 +- .../Magento/Framework/Composer/BufferIoFactory.php | 2 +- .../Magento/Framework/Composer/ComposerFactory.php | 2 +- .../Framework/Composer/ComposerInformation.php | 2 +- .../Framework/Composer/ComposerJsonFinder.php | 2 +- .../Framework/Composer/DependencyChecker.php | 2 +- .../Framework/Composer/MagentoComponent.php | 2 +- .../Composer/MagentoComposerApplicationFactory.php | 2 +- lib/internal/Magento/Framework/Composer/Remove.php | 2 +- .../Composer/Test/Unit/ComposerFactoryTest.php | 2 +- .../Composer/Test/Unit/ComposerInformationTest.php | 2 +- .../Composer/Test/Unit/DependencyCheckerTest.php | 2 +- .../Magento/Framework/Config/AbstractXml.php | 2 +- .../Magento/Framework/Config/CacheInterface.php | 2 +- .../Magento/Framework/Config/Composer/Package.php | 2 +- .../Config/ConfigOptionsListConstants.php | 2 +- .../Magento/Framework/Config/Converter.php | 2 +- .../Magento/Framework/Config/Converter/Dom.php | 2 +- .../Framework/Config/Converter/Dom/Flat.php | 2 +- .../Framework/Config/ConverterInterface.php | 2 +- lib/internal/Magento/Framework/Config/Data.php | 2 +- .../Magento/Framework/Config/Data/ConfigData.php | 2 +- .../Magento/Framework/Config/Data/Scoped.php | 2 +- .../Magento/Framework/Config/DataInterface.php | 2 +- .../Framework/Config/DesignResolverInterface.php | 2 +- lib/internal/Magento/Framework/Config/Dom.php | 2 +- .../Framework/Config/Dom/ArrayNodeConfig.php | 2 +- .../Framework/Config/Dom/NodeMergingConfig.php | 2 +- .../Framework/Config/Dom/NodePathMatcher.php | 2 +- .../Magento/Framework/Config/Dom/UrnResolver.php | 2 +- .../Framework/Config/Dom/ValidationException.php | 2 +- .../Magento/Framework/Config/DomFactory.php | 2 +- .../Framework/Config/File/ConfigFilePool.php | 2 +- .../Magento/Framework/Config/FileIterator.php | 2 +- .../Framework/Config/FileIteratorFactory.php | 2 +- .../Magento/Framework/Config/FileResolver.php | 2 +- .../Framework/Config/FileResolverInterface.php | 2 +- .../Framework/Config/GenericSchemaLocator.php | 2 +- lib/internal/Magento/Framework/Config/Reader.php | 2 +- .../Magento/Framework/Config/Reader/Filesystem.php | 2 +- .../Magento/Framework/Config/ReaderInterface.php | 2 +- .../Magento/Framework/Config/ReaderPool.php | 2 +- .../Magento/Framework/Config/SchemaLocator.php | 2 +- .../Framework/Config/SchemaLocatorInterface.php | 2 +- lib/internal/Magento/Framework/Config/Scope.php | 2 +- .../Magento/Framework/Config/ScopeInterface.php | 2 +- .../Framework/Config/ScopeListInterface.php | 2 +- .../Config/Test/Unit/Composer/PackageTest.php | 2 +- .../Config/Test/Unit/Converter/Dom/FlatTest.php | 2 +- .../Config/Test/Unit/Converter/DomTest.php | 2 +- .../Config/Test/Unit/Data/ConfigDataTest.php | 2 +- .../Framework/Config/Test/Unit/Data/ScopedTest.php | 2 +- .../Framework/Config/Test/Unit/DataTest.php | 2 +- .../Config/Test/Unit/Dom/ArrayNodeConfigTest.php | 2 +- .../Config/Test/Unit/Dom/NodeMergingConfigTest.php | 2 +- .../Config/Test/Unit/Dom/NodePathMatcherTest.php | 2 +- .../Config/Test/Unit/Dom/UrnResolverTest.php | 2 +- .../Magento/Framework/Config/Test/Unit/DomTest.php | 2 +- .../Config/Test/Unit/File/ConfigFilePoolTest.php | 2 +- .../Config/Test/Unit/FileIteratorTest.php | 2 +- .../Config/Test/Unit/GenericSchemaLocatorTest.php | 2 +- .../Config/Test/Unit/Reader/FilesystemTest.php | 2 +- .../Framework/Config/Test/Unit/ReaderTest.php | 2 +- .../Framework/Config/Test/Unit/ScopeTest.php | 2 +- .../Framework/Config/Test/Unit/ThemeTest.php | 2 +- .../Config/Test/Unit/ValidationStateTest.php | 2 +- .../Framework/Config/Test/Unit/ViewFactoryTest.php | 2 +- .../Magento/Framework/Config/Test/Unit/XsdTest.php | 2 +- .../Unit/_files/area/default_default/theme.xml | 2 +- .../Test/Unit/_files/area/default_test/theme.xml | 2 +- .../Test/Unit/_files/area/default_test2/theme.xml | 2 +- .../Test/Unit/_files/area/test_default/theme.xml | 2 +- .../test_external_package_descendant/theme.xml | 2 +- .../Test/Unit/_files/converter/dom/attributes.php | 2 +- .../Test/Unit/_files/converter/dom/attributes.xml | 2 +- .../Test/Unit/_files/converter/dom/cdata.php | 2 +- .../Test/Unit/_files/converter/dom/cdata.xml | 2 +- .../Test/Unit/_files/converter/dom/flat/result.php | 2 +- .../Test/Unit/_files/converter/dom/flat/source.xml | 2 +- .../_files/converter/dom/flat/source_notuniq.xml | 2 +- .../converter/dom/flat/source_wrongarray.xml | 2 +- .../Test/Unit/_files/dom/ambiguous_merged.xml | 2 +- .../Test/Unit/_files/dom/ambiguous_new_one.xml | 2 +- .../Test/Unit/_files/dom/ambiguous_new_two.xml | 2 +- .../Config/Test/Unit/_files/dom/ambiguous_one.xml | 2 +- .../Config/Test/Unit/_files/dom/ambiguous_two.xml | 2 +- .../Config/Test/Unit/_files/dom/attributes.xml | 2 +- .../Test/Unit/_files/dom/attributes_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/attributes_new.xml | 2 +- .../Test/Unit/_files/dom/converter/cdata.php | 2 +- .../Test/Unit/_files/dom/converter/cdata.xml | 2 +- .../Unit/_files/dom/converter/no_attributes.php | 2 +- .../Unit/_files/dom/converter/no_attributes.xml | 2 +- .../Unit/_files/dom/converter/with_attributes.php | 2 +- .../Unit/_files/dom/converter/with_attributes.xml | 2 +- .../Framework/Config/Test/Unit/_files/dom/ids.xml | 2 +- .../Config/Test/Unit/_files/dom/ids_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/ids_new.xml | 2 +- .../Config/Test/Unit/_files/dom/namespaced.xml | 2 +- .../Test/Unit/_files/dom/namespaced_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/namespaced_new.xml | 2 +- .../Config/Test/Unit/_files/dom/no_ids.xml | 2 +- .../Config/Test/Unit/_files/dom/no_ids_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/no_ids_new.xml | 2 +- .../Config/Test/Unit/_files/dom/override_node.xml | 2 +- .../Test/Unit/_files/dom/override_node_merged.xml | 2 +- .../Test/Unit/_files/dom/override_node_new.xml | 2 +- .../Config/Test/Unit/_files/dom/recursive.xml | 2 +- .../Config/Test/Unit/_files/dom/recursive_deep.xml | 2 +- .../Test/Unit/_files/dom/recursive_deep_merged.xml | 2 +- .../Test/Unit/_files/dom/recursive_deep_new.xml | 2 +- .../Test/Unit/_files/dom/recursive_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/recursive_new.xml | 2 +- .../Config/Test/Unit/_files/dom/text_node.xml | 2 +- .../Test/Unit/_files/dom/text_node_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/text_node_new.xml | 2 +- .../Config/Test/Unit/_files/dom/types.xml | 2 +- .../Config/Test/Unit/_files/dom/types_merged.xml | 2 +- .../Config/Test/Unit/_files/dom/types_new.xml | 2 +- .../Config/Test/Unit/_files/reader/config.xml | 2 +- .../Config/Test/Unit/_files/reader/schema.xsd | 2 +- .../Framework/Config/Test/Unit/_files/sample.xsd | 2 +- .../Config/Test/Unit/_files/theme_invalid.xml | 2 +- .../Config/Test/Unit/_files/view_invalid.xml | 2 +- .../Framework/Config/Test/Unit/_files/view_one.xml | 2 +- .../Framework/Config/Test/Unit/_files/view_two.xml | 2 +- lib/internal/Magento/Framework/Config/Theme.php | 2 +- .../Framework/Config/ValidationStateInterface.php | 2 +- lib/internal/Magento/Framework/Config/View.php | 2 +- .../Magento/Framework/Config/ViewFactory.php | 2 +- .../Magento/Framework/Config/etc/theme.xsd | 2 +- lib/internal/Magento/Framework/Config/etc/view.xsd | 2 +- lib/internal/Magento/Framework/Console/Cli.php | 2 +- .../Magento/Framework/Console/CommandList.php | 2 +- .../Framework/Console/CommandListInterface.php | 2 +- .../Magento/Framework/Console/CommandLocator.php | 2 +- .../Console/GenerationDirectoryAccess.php | 2 +- .../Framework/Controller/AbstractResult.php | 2 +- .../Magento/Framework/Controller/Index/Index.php | 2 +- .../Magento/Framework/Controller/Noroute/Index.php | 2 +- .../Framework/Controller/Result/Forward.php | 2 +- .../Magento/Framework/Controller/Result/Json.php | 2 +- .../Framework/Controller/Result/JsonFactory.php | 2 +- .../Magento/Framework/Controller/Result/Raw.php | 2 +- .../Framework/Controller/Result/Redirect.php | 2 +- .../Controller/Result/RedirectFactory.php | 2 +- .../Magento/Framework/Controller/ResultFactory.php | 2 +- .../Framework/Controller/ResultInterface.php | 2 +- .../Framework/Controller/Router/Route/Factory.php | 2 +- .../Test/Unit/Controller/Index/IndexTest.php | 2 +- .../Test/Unit/Controller/NorouteTest.php | 2 +- .../Controller/Test/Unit/Result/ForwardTest.php | 2 +- .../Controller/Test/Unit/Result/JsonTest.php | 2 +- .../Controller/Test/Unit/Result/RawTest.php | 2 +- .../Test/Unit/Result/RedirectFactoryTest.php | 2 +- .../Controller/Test/Unit/Result/RedirectTest.php | 2 +- .../Test/Unit/Router/Route/FactoryTest.php | 2 +- .../Magento/Framework/Convert/ConvertArray.php | 2 +- .../Magento/Framework/Convert/DataObject.php | 2 +- .../Magento/Framework/Convert/DataSize.php | 2 +- lib/internal/Magento/Framework/Convert/Excel.php | 2 +- .../Magento/Framework/Convert/ExcelFactory.php | 2 +- .../Convert/Test/Unit/ConvertArrayTest.php | 2 +- .../Framework/Convert/Test/Unit/DataSizeTest.php | 2 +- .../Convert/Test/Unit/ExcelFactoryTest.php | 2 +- .../Framework/Convert/Test/Unit/ExcelTest.php | 2 +- .../Framework/Convert/Test/Unit/ObjectTest.php | 2 +- .../Framework/Convert/Test/Unit/XmlTest.php | 2 +- .../Framework/Convert/Test/Unit/_files/sample.xml | 2 +- lib/internal/Magento/Framework/Convert/Xml.php | 2 +- .../Magento/Framework/Crontab/CrontabManager.php | 2 +- .../Framework/Crontab/CrontabManagerInterface.php | 2 +- .../Magento/Framework/Crontab/TasksProvider.php | 2 +- .../Framework/Crontab/TasksProviderInterface.php | 2 +- .../Crontab/Test/Unit/CrontabManagerTest.php | 2 +- .../Crontab/Test/Unit/TasksProviderTest.php | 2 +- .../Css/PreProcessor/Adapter/Less/Processor.php | 2 +- .../Magento/Framework/Css/PreProcessor/Config.php | 2 +- .../Framework/Css/PreProcessor/ErrorHandler.php | 2 +- .../Css/PreProcessor/ErrorHandlerInterface.php | 2 +- .../Css/PreProcessor/File/Collector/Aggregated.php | 2 +- .../Css/PreProcessor/File/Collector/Library.php | 2 +- .../Css/PreProcessor/File/FileList/Collator.php | 2 +- .../Framework/Css/PreProcessor/File/Temporary.php | 2 +- .../FileGenerator/RelatedGenerator.php | 2 +- .../Css/PreProcessor/Instruction/Import.php | 2 +- .../Css/PreProcessor/Instruction/MagentoImport.php | 2 +- .../PreProcessor/Adapter/Less/ProcessorTest.php | 2 +- .../Unit/PreProcessor/Adapter/Less/_file/test.css | 2 +- .../Unit/PreProcessor/Adapter/Less/_file/test.less | 2 +- .../PreProcessor/File/Collector/AggregatedTest.php | 2 +- .../PreProcessor/File/Collector/LibraryTest.php | 2 +- .../PreProcessor/File/FileList/CollatorTest.php | 2 +- .../Unit/PreProcessor/Instruction/ImportTest.php | 2 +- .../PreProcessor/Instruction/MagentoImportTest.php | 2 +- .../Css/Test/Unit/PreProcessor/_files/invalid.less | 2 +- .../Css/Test/Unit/PreProcessor/_files/valid.less | 2 +- lib/internal/Magento/Framework/Currency.php | 2 +- lib/internal/Magento/Framework/CurrencyFactory.php | 2 +- .../Magento/Framework/CurrencyInterface.php | 2 +- .../Magento/Framework/DB/AbstractMapper.php | 2 +- .../Framework/DB/Adapter/AdapterInterface.php | 2 +- .../Magento/Framework/DB/Adapter/DdlCache.php | 2 +- .../Magento/Framework/DB/Adapter/Pdo/Mysql.php | 2 +- lib/internal/Magento/Framework/DB/Ddl/Sequence.php | 2 +- lib/internal/Magento/Framework/DB/Ddl/Table.php | 2 +- lib/internal/Magento/Framework/DB/Ddl/Trigger.php | 2 +- .../Magento/Framework/DB/Ddl/TriggerFactory.php | 2 +- .../Magento/Framework/DB/ExpressionConverter.php | 2 +- .../Magento/Framework/DB/GenericMapper.php | 2 +- lib/internal/Magento/Framework/DB/Helper.php | 2 +- .../Magento/Framework/DB/Helper/AbstractHelper.php | 2 +- .../Magento/Framework/DB/Helper/Mysql/Fulltext.php | 2 +- lib/internal/Magento/Framework/DB/Logger/File.php | 2 +- .../Magento/Framework/DB/Logger/LoggerAbstract.php | 2 +- lib/internal/Magento/Framework/DB/Logger/Quiet.php | 2 +- .../Magento/Framework/DB/LoggerInterface.php | 2 +- .../Magento/Framework/DB/MapperFactory.php | 2 +- .../Magento/Framework/DB/MapperInterface.php | 2 +- .../Magento/Framework/DB/Platform/Quote.php | 2 +- lib/internal/Magento/Framework/DB/Profiler.php | 2 +- lib/internal/Magento/Framework/DB/Query.php | 2 +- .../Magento/Framework/DB/Query/BatchIterator.php | 2 +- .../Framework/DB/Query/BatchIteratorFactory.php | 2 +- .../Framework/DB/Query/BatchIteratorInterface.php | 2 +- .../Framework/DB/Query/BatchRangeIterator.php | 2 +- .../Magento/Framework/DB/Query/Generator.php | 2 +- lib/internal/Magento/Framework/DB/QueryBuilder.php | 2 +- lib/internal/Magento/Framework/DB/QueryFactory.php | 2 +- .../Magento/Framework/DB/QueryInterface.php | 2 +- lib/internal/Magento/Framework/DB/Select.php | 2 +- .../Framework/DB/Select/ColumnsRenderer.php | 2 +- .../Framework/DB/Select/DistinctRenderer.php | 2 +- .../Framework/DB/Select/ForUpdateRenderer.php | 2 +- .../Magento/Framework/DB/Select/FromRenderer.php | 2 +- .../Magento/Framework/DB/Select/GroupRenderer.php | 2 +- .../Magento/Framework/DB/Select/HavingRenderer.php | 2 +- .../Magento/Framework/DB/Select/LimitRenderer.php | 2 +- .../Magento/Framework/DB/Select/OrderRenderer.php | 2 +- .../Framework/DB/Select/RendererInterface.php | 2 +- .../Magento/Framework/DB/Select/RendererProxy.php | 2 +- .../Magento/Framework/DB/Select/SelectRenderer.php | 2 +- .../Magento/Framework/DB/Select/UnionRenderer.php | 2 +- .../Magento/Framework/DB/Select/WhereRenderer.php | 2 +- .../Magento/Framework/DB/SelectFactory.php | 2 +- .../Framework/DB/Sequence/SequenceInterface.php | 2 +- .../Framework/DB/Sql/ColumnValueExpression.php | 2 +- .../Magento/Framework/DB/Sql/ConcatExpression.php | 2 +- .../Magento/Framework/DB/Sql/LimitExpression.php | 2 +- .../Magento/Framework/DB/Sql/LookupExpression.php | 2 +- .../Magento/Framework/DB/Sql/UnionExpression.php | 2 +- .../Magento/Framework/DB/Statement/Parameter.php | 2 +- .../Magento/Framework/DB/Statement/Pdo/Mysql.php | 2 +- lib/internal/Magento/Framework/DB/SubSelect.php | 2 +- .../Magento/Framework/DB/TemporaryTableService.php | 2 +- .../Framework/DB/Test/Unit/AbstractMapperTest.php | 2 +- .../DB/Test/Unit/Adapter/Pdo/MysqlTest.php | 2 +- .../Framework/DB/Test/Unit/Ddl/TriggerTest.php | 2 +- .../DB/Test/Unit/ExpressionConverterTest.php | 2 +- .../Framework/DB/Test/Unit/GenericMapperTest.php | 2 +- .../DB/Test/Unit/Helper/AbstractHelperTest.php | 2 +- .../DB/Test/Unit/Helper/Mysql/FulltextTest.php | 2 +- .../Framework/DB/Test/Unit/Logger/FileTest.php | 2 +- .../Framework/DB/Test/Unit/Platform/QuoteTest.php | 2 +- .../Framework/DB/Test/Unit/ProfilerTest.php | 2 +- .../Magento/Framework/DB/Test/Unit/QueryTest.php | 2 +- .../DB/Test/Unit/Select/ColumnsRendererTest.php | 2 +- .../DB/Test/Unit/Select/DistinctRendererTest.php | 2 +- .../DB/Test/Unit/Select/ForUpdateRendererTest.php | 2 +- .../DB/Test/Unit/Select/FromRendererTest.php | 2 +- .../DB/Test/Unit/Select/GroupRendererTest.php | 2 +- .../DB/Test/Unit/Select/HavingRendererTest.php | 2 +- .../DB/Test/Unit/Select/LimitRendererTest.php | 2 +- .../DB/Test/Unit/Select/OrderRendererTest.php | 2 +- .../DB/Test/Unit/Select/RendererProxyTest.php | 2 +- .../DB/Test/Unit/Select/SelectRendererTest.php | 2 +- .../DB/Test/Unit/Select/UnionRendererTest.php | 2 +- .../DB/Test/Unit/Select/WhereRendererTest.php | 2 +- .../Framework/DB/Test/Unit/SelectFactoryTest.php | 2 +- .../Magento/Framework/DB/Test/Unit/SelectTest.php | 2 +- .../DB/Test/Unit/Sql/LimitExpressionTest.php | 2 +- .../DB/Test/Unit/Sql/UnionExpressionTest.php | 2 +- .../DB/Test/Unit/TemporaryTableServiceTest.php | 2 +- .../Framework/DB/Test/Unit/Tree/NodeTest.php | 2 +- lib/internal/Magento/Framework/DB/Transaction.php | 2 +- lib/internal/Magento/Framework/DB/Tree.php | 2 +- lib/internal/Magento/Framework/DB/Tree/Node.php | 2 +- lib/internal/Magento/Framework/DB/Tree/NodeSet.php | 2 +- .../Magento/Framework/Data/AbstractCriteria.php | 2 +- .../Magento/Framework/Data/AbstractDataObject.php | 2 +- .../Data/AbstractSearchCriteriaBuilder.php | 2 +- .../Framework/Data/AbstractSearchResult.php | 2 +- .../Data/Argument/Interpreter/ArrayType.php | 2 +- .../Data/Argument/Interpreter/Boolean.php | 2 +- .../Data/Argument/Interpreter/Composite.php | 2 +- .../Data/Argument/Interpreter/Constant.php | 2 +- .../Data/Argument/Interpreter/DataObject.php | 2 +- .../Data/Argument/Interpreter/NullType.php | 2 +- .../Framework/Data/Argument/Interpreter/Number.php | 2 +- .../Data/Argument/Interpreter/StringUtils.php | 2 +- .../Data/Argument/InterpreterInterface.php | 2 +- lib/internal/Magento/Framework/Data/Collection.php | 2 +- .../Framework/Data/Collection/AbstractDb.php | 2 +- .../Data/Collection/Db/FetchStrategy/Cache.php | 2 +- .../Data/Collection/Db/FetchStrategy/Query.php | 2 +- .../Data/Collection/Db/FetchStrategyInterface.php | 2 +- .../Framework/Data/Collection/EntityFactory.php | 2 +- .../Data/Collection/EntityFactoryInterface.php | 2 +- .../Framework/Data/Collection/Filesystem.php | 2 +- .../Framework/Data/Collection/ModelFactory.php | 2 +- .../Data/CollectionDataSourceInterface.php | 2 +- lib/internal/Magento/Framework/Data/DataArray.php | 2 +- lib/internal/Magento/Framework/Data/Form.php | 2 +- .../Magento/Framework/Data/Form/AbstractForm.php | 2 +- .../Data/Form/Element/AbstractElement.php | 2 +- .../Magento/Framework/Data/Form/Element/Button.php | 2 +- .../Framework/Data/Form/Element/Checkbox.php | 2 +- .../Framework/Data/Form/Element/Checkboxes.php | 2 +- .../Framework/Data/Form/Element/Collection.php | 2 +- .../Data/Form/Element/CollectionFactory.php | 2 +- .../Magento/Framework/Data/Form/Element/Column.php | 2 +- .../Magento/Framework/Data/Form/Element/Date.php | 2 +- .../Data/Form/Element/Editablemultiselect.php | 2 +- .../Magento/Framework/Data/Form/Element/Editor.php | 2 +- .../Framework/Data/Form/Element/Factory.php | 2 +- .../Framework/Data/Form/Element/Fieldset.php | 2 +- .../Magento/Framework/Data/Form/Element/File.php | 2 +- .../Framework/Data/Form/Element/Gallery.php | 2 +- .../Magento/Framework/Data/Form/Element/Hidden.php | 2 +- .../Magento/Framework/Data/Form/Element/Image.php | 2 +- .../Framework/Data/Form/Element/Imagefile.php | 2 +- .../Magento/Framework/Data/Form/Element/Label.php | 2 +- .../Magento/Framework/Data/Form/Element/Link.php | 2 +- .../Framework/Data/Form/Element/Multiline.php | 2 +- .../Framework/Data/Form/Element/Multiselect.php | 2 +- .../Magento/Framework/Data/Form/Element/Note.php | 2 +- .../Framework/Data/Form/Element/Obscure.php | 2 +- .../Framework/Data/Form/Element/Password.php | 2 +- .../Magento/Framework/Data/Form/Element/Radio.php | 2 +- .../Magento/Framework/Data/Form/Element/Radios.php | 2 +- .../Form/Element/Renderer/RendererInterface.php | 2 +- .../Magento/Framework/Data/Form/Element/Reset.php | 2 +- .../Magento/Framework/Data/Form/Element/Select.php | 2 +- .../Magento/Framework/Data/Form/Element/Submit.php | 2 +- .../Magento/Framework/Data/Form/Element/Text.php | 2 +- .../Framework/Data/Form/Element/Textarea.php | 2 +- .../Magento/Framework/Data/Form/Element/Time.php | 2 +- .../Magento/Framework/Data/Form/ElementFactory.php | 2 +- .../Magento/Framework/Data/Form/Filter/Date.php | 2 +- .../Framework/Data/Form/Filter/Escapehtml.php | 2 +- .../Framework/Data/Form/Filter/FilterInterface.php | 2 +- .../Framework/Data/Form/Filter/Striptags.php | 2 +- .../Magento/Framework/Data/Form/FilterFactory.php | 2 +- .../Magento/Framework/Data/Form/FormKey.php | 2 +- .../Framework/Data/Form/FormKey/Validator.php | 2 +- .../Magento/Framework/Data/FormFactory.php | 2 +- lib/internal/Magento/Framework/Data/Graph.php | 2 +- .../Magento/Framework/Data/Helper/PostHelper.php | 2 +- .../Magento/Framework/Data/ObjectFactory.php | 2 +- .../Framework/Data/OptionSourceInterface.php | 2 +- lib/internal/Magento/Framework/Data/Schema.php | 2 +- .../Framework/Data/SearchResultInterface.php | 2 +- .../Framework/Data/SearchResultIterator.php | 2 +- .../Framework/Data/SearchResultIteratorFactory.php | 2 +- .../Framework/Data/SearchResultProcessor.php | 2 +- .../Data/SearchResultProcessorFactory.php | 2 +- .../Data/SearchResultProcessorInterface.php | 2 +- lib/internal/Magento/Framework/Data/Structure.php | 2 +- .../Data/Test/Unit/AbstractCriteriaTest.php | 2 +- .../Data/Test/Unit/AbstractDataObjectTest.php | 2 +- .../Data/Test/Unit/AbstractSearchResultTest.php | 2 +- .../Unit/Argument/Interpreter/ArrayTypeTest.php | 2 +- .../Test/Unit/Argument/Interpreter/BooleanTest.php | 2 +- .../Unit/Argument/Interpreter/CompositeTest.php | 2 +- .../Unit/Argument/Interpreter/ConstantTest.php | 2 +- .../Unit/Argument/Interpreter/NullTypeTest.php | 2 +- .../Test/Unit/Argument/Interpreter/NumberTest.php | 2 +- .../Framework/Data/Test/Unit/Argument/XsdTest.php | 2 +- .../Unit/Argument/_files/typesInvalidArray.php | 2 +- .../Test/Unit/Argument/_files/types_schema.xsd | 2 +- .../Data/Test/Unit/Argument/_files/types_valid.xml | 2 +- .../Unit/Collection/Db/FetchStrategy/CacheTest.php | 2 +- .../Unit/Collection/Db/FetchStrategy/QueryTest.php | 2 +- .../Data/Test/Unit/Collection/DbCollection.php | 2 +- .../Framework/Data/Test/Unit/Collection/DbTest.php | 2 +- .../Data/Test/Unit/Collection/FilesystemTest.php | 2 +- .../Framework/Data/Test/Unit/CollectionTest.php | 2 +- .../Framework/Data/Test/Unit/Criteria/Sample.php | 2 +- .../Data/Test/Unit/Form/AbstractFormTest.php | 2 +- .../Test/Unit/Form/Element/AbstractElementTest.php | 2 +- .../Data/Test/Unit/Form/Element/ButtonTest.php | 2 +- .../Data/Test/Unit/Form/Element/CheckboxTest.php | 2 +- .../Unit/Form/Element/CollectionFactoryTest.php | 2 +- .../Data/Test/Unit/Form/Element/ColumnTest.php | 2 +- .../Data/Test/Unit/Form/Element/DateTest.php | 2 +- .../Unit/Form/Element/EditablemultiselectTest.php | 2 +- .../Data/Test/Unit/Form/Element/EditorTest.php | 2 +- .../Data/Test/Unit/Form/Element/FactoryTest.php | 2 +- .../Data/Test/Unit/Form/Element/FileTest.php | 2 +- .../Data/Test/Unit/Form/Element/HiddenTest.php | 2 +- .../Data/Test/Unit/Form/Element/ImageTest.php | 2 +- .../Data/Test/Unit/Form/Element/ImagefileTest.php | 2 +- .../Data/Test/Unit/Form/Element/LabelTest.php | 2 +- .../Data/Test/Unit/Form/Element/LinkTest.php | 2 +- .../Data/Test/Unit/Form/Element/MultilineTest.php | 2 +- .../Test/Unit/Form/Element/MultiselectTest.php | 2 +- .../Data/Test/Unit/Form/Element/NoteTest.php | 2 +- .../Data/Test/Unit/Form/Element/ObscureTest.php | 2 +- .../Data/Test/Unit/Form/Element/PasswordTest.php | 2 +- .../Data/Test/Unit/Form/Element/RadioTest.php | 2 +- .../Data/Test/Unit/Form/Element/ResetTest.php | 2 +- .../Data/Test/Unit/Form/Element/SubmitTest.php | 2 +- .../Data/Test/Unit/Form/Element/TextTest.php | 2 +- .../Data/Test/Unit/Form/Element/TextareaTest.php | 2 +- .../Data/Test/Unit/Form/FilterFactoryTest.php | 2 +- .../Data/Test/Unit/Form/FormKey/ValidatorTest.php | 2 +- .../Framework/Data/Test/Unit/Form/FormKeyTest.php | 2 +- .../Framework/Data/Test/Unit/FormFactoryTest.php | 2 +- .../Magento/Framework/Data/Test/Unit/FormTest.php | 2 +- .../Magento/Framework/Data/Test/Unit/GraphTest.php | 2 +- .../Data/Test/Unit/Helper/PostHelperTest.php | 2 +- .../Data/Test/Unit/SearchCriteriaBuilderTest.php | 2 +- .../Data/Test/Unit/SearchResultProcessorTest.php | 2 +- .../Framework/Data/Test/Unit/StructureTest.php | 2 +- .../Framework/Data/Test/Unit/Stub/DataObject.php | 2 +- .../Data/Test/Unit/Stub/SearchCriteriaBuilder.php | 2 +- .../Framework/Data/Test/Unit/Stub/SearchResult.php | 2 +- .../Data/Test/Unit/Tree/Node/CollectionTest.php | 2 +- .../Magento/Framework/Data/Test/Unit/TreeTest.php | 2 +- lib/internal/Magento/Framework/Data/Tree.php | 2 +- lib/internal/Magento/Framework/Data/Tree/Db.php | 2 +- lib/internal/Magento/Framework/Data/Tree/Dbp.php | 2 +- lib/internal/Magento/Framework/Data/Tree/Node.php | 2 +- .../Framework/Data/Tree/Node/Collection.php | 2 +- .../Magento/Framework/Data/Tree/NodeFactory.php | 2 +- .../Magento/Framework/Data/TreeFactory.php | 2 +- .../Framework/Data/ValueSourceInterface.php | 2 +- .../Magento/Framework/Data/etc/argument/types.xsd | 2 +- lib/internal/Magento/Framework/DataObject.php | 2 +- .../Magento/Framework/DataObject/Cache.php | 2 +- lib/internal/Magento/Framework/DataObject/Copy.php | 2 +- .../Magento/Framework/DataObject/Copy/Config.php | 2 +- .../Framework/DataObject/Copy/Config/Converter.php | 2 +- .../Framework/DataObject/Copy/Config/Data.php | 2 +- .../DataObject/Copy/Config/Data/Proxy.php | 2 +- .../Framework/DataObject/Copy/Config/Reader.php | 2 +- .../DataObject/Copy/Config/SchemaLocator.php | 2 +- .../Magento/Framework/DataObject/Factory.php | 2 +- .../Framework/DataObject/IdentityInterface.php | 2 +- .../DataObject/KeyValueObjectInterface.php | 2 +- .../Magento/Framework/DataObject/Mapper.php | 2 +- .../Framework/DataObject/Test/Unit/CacheTest.php | 2 +- .../Test/Unit/Copy/Config/ConverterTest.php | 2 +- .../Test/Unit/Copy/Config/SchemaLocatorTest.php | 2 +- .../Test/Unit/Copy/Config/_files/fieldset.xml | 2 +- .../Unit/Copy/Config/_files/fieldset_config.php | 2 +- .../DataObject/Test/Unit/Copy/ConfigTest.php | 2 +- .../Framework/DataObject/Test/Unit/CopyTest.php | 2 +- .../Framework/DataObject/Test/Unit/MapperTest.php | 2 +- .../Magento/Framework/DataObject/etc/fieldset.xsd | 2 +- .../Framework/DataObject/etc/fieldset_file.xsd | 2 +- lib/internal/Magento/Framework/Debug.php | 2 +- .../Framework/DomDocument/DomDocumentFactory.php | 2 +- .../Magento/Framework/Encryption/Crypt.php | 2 +- .../Magento/Framework/Encryption/Encryptor.php | 2 +- .../Framework/Encryption/EncryptorInterface.php | 2 +- .../Framework/Encryption/Helper/Security.php | 2 +- .../Test/Unit/Crypt/_files/_cipher_info.php | 2 +- .../Test/Unit/Crypt/_files/_crypt_fixtures.php | 2 +- .../Framework/Encryption/Test/Unit/CryptTest.php | 2 +- .../Encryption/Test/Unit/EncryptorTest.php | 2 +- .../Encryption/Test/Unit/Helper/SecurityTest.php | 2 +- .../Encryption/Test/Unit/UrlCoderTest.php | 2 +- .../Magento/Framework/Encryption/UrlCoder.php | 2 +- .../EntityManager/AbstractModelHydrator.php | 2 +- .../Framework/EntityManager/CallbackHandler.php | 2 +- .../Framework/EntityManager/CompositeMapper.php | 2 +- .../EntityManager/CustomAttributesMapper.php | 2 +- .../Framework/EntityManager/Db/CreateRow.php | 2 +- .../Framework/EntityManager/Db/DeleteRow.php | 2 +- .../Magento/Framework/EntityManager/Db/ReadRow.php | 2 +- .../Framework/EntityManager/Db/UpdateRow.php | 2 +- .../Framework/EntityManager/EntityManager.php | 2 +- .../Framework/EntityManager/EntityMetadata.php | 2 +- .../EntityManager/EntityMetadataInterface.php | 2 +- .../Framework/EntityManager/EventManager.php | 2 +- .../Magento/Framework/EntityManager/Hydrator.php | 2 +- .../Framework/EntityManager/HydratorInterface.php | 2 +- .../Framework/EntityManager/HydratorPool.php | 2 +- .../Magento/Framework/EntityManager/Mapper.php | 2 +- .../Framework/EntityManager/MapperInterface.php | 2 +- .../Magento/Framework/EntityManager/MapperPool.php | 2 +- .../Framework/EntityManager/MetadataPool.php | 2 +- .../EntityManager/Observer/AfterEntityDelete.php | 2 +- .../EntityManager/Observer/AfterEntityLoad.php | 2 +- .../EntityManager/Observer/AfterEntitySave.php | 2 +- .../EntityManager/Observer/BeforeEntityDelete.php | 2 +- .../EntityManager/Observer/BeforeEntitySave.php | 2 +- .../EntityManager/Operation/AttributeInterface.php | 2 +- .../EntityManager/Operation/AttributePool.php | 2 +- .../EntityManager/Operation/CheckIfExists.php | 2 +- .../Operation/CheckIfExistsInterface.php | 2 +- .../Framework/EntityManager/Operation/Create.php | 2 +- .../Operation/Create/CreateAttributes.php | 2 +- .../Operation/Create/CreateExtensions.php | 2 +- .../EntityManager/Operation/Create/CreateMain.php | 2 +- .../EntityManager/Operation/CreateInterface.php | 2 +- .../Framework/EntityManager/Operation/Delete.php | 2 +- .../Operation/Delete/DeleteAttributes.php | 2 +- .../Operation/Delete/DeleteExtensions.php | 2 +- .../EntityManager/Operation/Delete/DeleteMain.php | 2 +- .../EntityManager/Operation/DeleteInterface.php | 2 +- .../EntityManager/Operation/ExtensionInterface.php | 2 +- .../EntityManager/Operation/ExtensionPool.php | 2 +- .../Framework/EntityManager/Operation/Read.php | 2 +- .../Operation/Read/ReadAttributes.php | 2 +- .../Operation/Read/ReadExtensions.php | 2 +- .../EntityManager/Operation/Read/ReadMain.php | 2 +- .../EntityManager/Operation/ReadInterface.php | 2 +- .../Framework/EntityManager/Operation/Update.php | 2 +- .../Operation/Update/UpdateAttributes.php | 2 +- .../Operation/Update/UpdateExtensions.php | 2 +- .../EntityManager/Operation/Update/UpdateMain.php | 2 +- .../EntityManager/Operation/UpdateInterface.php | 2 +- .../EntityManager/Operation/ValidatorPool.php | 2 +- .../Framework/EntityManager/OperationInterface.php | 2 +- .../Framework/EntityManager/OperationPool.php | 2 +- .../Framework/EntityManager/Sequence/Sequence.php | 2 +- .../EntityManager/Sequence/SequenceFactory.php | 2 +- .../EntityManager/Sequence/SequenceManager.php | 2 +- .../EntityManager/Sequence/SequenceRegistry.php | 2 +- .../Test/Unit/CustomAttributesMapperTest.php | 2 +- .../EntityManager/Test/Unit/Db/UpdateRowTest.php | 2 +- .../EntityManager/Test/Unit/MapperTest.php | 2 +- .../EntityManager/Test/Unit/TypeResolverTest.php | 2 +- .../Framework/EntityManager/TypeResolver.php | 2 +- lib/internal/Magento/Framework/EscapeHelper.php | 2 +- lib/internal/Magento/Framework/Escaper.php | 2 +- lib/internal/Magento/Framework/Event.php | 2 +- .../Magento/Framework/Event/Collection.php | 2 +- lib/internal/Magento/Framework/Event/Config.php | 2 +- .../Magento/Framework/Event/Config/Converter.php | 2 +- .../Magento/Framework/Event/Config/Data.php | 2 +- .../Magento/Framework/Event/Config/Reader.php | 2 +- .../Framework/Event/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Event/ConfigInterface.php | 2 +- .../Framework/Event/Invoker/InvokerDefault.php | 2 +- .../Magento/Framework/Event/InvokerInterface.php | 2 +- lib/internal/Magento/Framework/Event/Manager.php | 2 +- .../Magento/Framework/Event/ManagerInterface.php | 2 +- lib/internal/Magento/Framework/Event/Observer.php | 2 +- .../Framework/Event/Observer/Collection.php | 2 +- .../Magento/Framework/Event/Observer/Cron.php | 2 +- .../Magento/Framework/Event/Observer/Regex.php | 2 +- .../Magento/Framework/Event/ObserverFactory.php | 2 +- .../Magento/Framework/Event/ObserverInterface.php | 2 +- .../Framework/Event/Test/Unit/CollectionTest.php | 2 +- .../Event/Test/Unit/Config/ConverterTest.php | 2 +- .../Event/Test/Unit/Config/SchemaLocatorTest.php | 2 +- .../Framework/Event/Test/Unit/Config/XsdTest.php | 2 +- .../Event/Test/Unit/Config/_files/event_config.php | 2 +- .../Event/Test/Unit/Config/_files/event_config.xml | 2 +- .../Unit/Config/_files/event_invalid_config.xml | 2 +- .../Unit/Config/_files/invalidEventsXmlArray.php | 2 +- .../Event/Test/Unit/Config/_files/valid_events.xml | 2 +- .../Framework/Event/Test/Unit/ConfigTest.php | 2 +- .../Event/Test/Unit/Invoker/InvokerDefaultTest.php | 2 +- .../Event/Test/Unit/Invoker/ObserverExample.php | 2 +- .../Framework/Event/Test/Unit/ManagerStub.php | 2 +- .../Framework/Event/Test/Unit/ManagerTest.php | 2 +- .../Event/Test/Unit/Observer/CollectionTest.php | 2 +- .../Event/Test/Unit/Observer/CronTest.php | 2 +- .../Event/Test/Unit/Observer/RegexTest.php | 2 +- .../Event/Test/Unit/ObserverFactoryTest.php | 2 +- .../Framework/Event/Test/Unit/ObserverTest.php | 2 +- .../Event/Test/Unit/WrapperFactoryTest.php | 2 +- .../Magento/Framework/Event/WrapperFactory.php | 2 +- .../Magento/Framework/Event/etc/events.xsd | 2 +- lib/internal/Magento/Framework/EventFactory.php | 2 +- .../Exception/AbstractAggregateException.php | 2 +- .../Framework/Exception/AlreadyExistsException.php | 2 +- .../Exception/AuthenticationException.php | 2 +- .../Framework/Exception/AuthorizationException.php | 2 +- .../Exception/ConfigurationMismatchException.php | 2 +- .../Exception/CouldNotDeleteException.php | 2 +- .../Framework/Exception/CouldNotSaveException.php | 2 +- .../Magento/Framework/Exception/CronException.php | 2 +- .../Exception/EmailNotConfirmedException.php | 2 +- .../Framework/Exception/FileSystemException.php | 2 +- .../Magento/Framework/Exception/InputException.php | 2 +- .../Framework/Exception/IntegrationException.php | 2 +- .../Exception/InvalidEmailOrPasswordException.php | 2 +- .../Framework/Exception/LocalizedException.php | 2 +- .../Magento/Framework/Exception/MailException.php | 2 +- .../Framework/Exception/NoSuchEntityException.php | 2 +- .../Framework/Exception/NotFoundException.php | 2 +- .../Framework/Exception/PaymentException.php | 2 +- .../Exception/Plugin/AuthenticationException.php | 2 +- .../RemoteServiceUnavailableException.php | 2 +- .../Exception/SecurityViolationException.php | 2 +- .../Framework/Exception/SerializationException.php | 2 +- .../Framework/Exception/SessionException.php | 2 +- .../Framework/Exception/State/ExpiredException.php | 2 +- .../Framework/Exception/State/InitException.php | 2 +- .../Exception/State/InputMismatchException.php | 2 +- .../Exception/State/InvalidTransitionException.php | 2 +- .../Exception/State/UserLockedException.php | 2 +- .../Magento/Framework/Exception/StateException.php | 2 +- .../Test/Unit/AuthenticationExceptionTest.php | 2 +- .../Test/Unit/AuthorizationExceptionTest.php | 2 +- .../Test/Unit/EmailNotConfirmedExceptionTest.php | 2 +- .../Exception/Test/Unit/InputExceptionTest.php | 2 +- .../Exception/Test/Unit/LocalizedExceptionTest.php | 2 +- .../Test/Unit/NoSuchEntityExceptionTest.php | 2 +- .../Test/Unit/State/ExpiredExceptionTest.php | 2 +- .../Test/Unit/State/InputMismatchExceptionTest.php | 2 +- .../Unit/State/InvalidTransitionExceptionTest.php | 2 +- .../Exception/Test/Unit/StateExceptionTest.php | 2 +- .../Framework/Exception/ValidatorException.php | 2 +- lib/internal/Magento/Framework/File/Csv.php | 2 +- lib/internal/Magento/Framework/File/CsvMulty.php | 2 +- lib/internal/Magento/Framework/File/Mime.php | 2 +- lib/internal/Magento/Framework/File/Size.php | 2 +- .../Magento/Framework/File/Test/Unit/CsvTest.php | 2 +- .../Magento/Framework/File/Test/Unit/MimeTest.php | 2 +- .../File/Test/Unit/Transfer/Adapter/HttpTest.php | 2 +- .../Framework/File/Test/Unit/_files/javascript.js | 2 +- .../Framework/File/Transfer/Adapter/Http.php | 2 +- lib/internal/Magento/Framework/File/Uploader.php | 2 +- .../Magento/Framework/File/UploaderFactory.php | 2 +- lib/internal/Magento/Framework/Filesystem.php | 2 +- .../Framework/Filesystem/Directory/Read.php | 2 +- .../Framework/Filesystem/Directory/ReadFactory.php | 2 +- .../Filesystem/Directory/ReadInterface.php | 2 +- .../Framework/Filesystem/Directory/Write.php | 2 +- .../Filesystem/Directory/WriteFactory.php | 2 +- .../Filesystem/Directory/WriteInterface.php | 2 +- .../Magento/Framework/Filesystem/DirectoryList.php | 2 +- .../Magento/Framework/Filesystem/Driver/File.php | 2 +- .../Magento/Framework/Filesystem/Driver/Http.php | 2 +- .../Magento/Framework/Filesystem/Driver/Https.php | 2 +- .../Magento/Framework/Filesystem/Driver/Zlib.php | 2 +- .../Framework/Filesystem/DriverInterface.php | 2 +- .../Magento/Framework/Filesystem/DriverPool.php | 2 +- .../Magento/Framework/Filesystem/File/Read.php | 2 +- .../Framework/Filesystem/File/ReadFactory.php | 2 +- .../Framework/Filesystem/File/ReadInterface.php | 2 +- .../Magento/Framework/Filesystem/File/Write.php | 2 +- .../Framework/Filesystem/File/WriteFactory.php | 2 +- .../Framework/Filesystem/File/WriteInterface.php | 2 +- .../Magento/Framework/Filesystem/FileResolver.php | 2 +- .../Framework/Filesystem/Filter/ExcludeFilter.php | 2 +- lib/internal/Magento/Framework/Filesystem/Glob.php | 2 +- .../Magento/Framework/Filesystem/Io/AbstractIo.php | 2 +- .../Magento/Framework/Filesystem/Io/File.php | 2 +- .../Magento/Framework/Filesystem/Io/Ftp.php | 2 +- .../Framework/Filesystem/Io/IoInterface.php | 2 +- .../Magento/Framework/Filesystem/Io/Sftp.php | 2 +- .../Filesystem/Test/Unit/Directory/ReadTest.php | 2 +- .../Filesystem/Test/Unit/Directory/WriteTest.php | 2 +- .../Filesystem/Test/Unit/DirectoryListTest.php | 2 +- .../Filesystem/Test/Unit/Driver/FileTest.php | 2 +- .../Filesystem/Test/Unit/Driver/HttpTest.php | 2 +- .../Filesystem/Test/Unit/Driver/HttpsTest.php | 2 +- .../Filesystem/Test/Unit/DriverPoolTest.php | 2 +- .../Test/Unit/File/ExcludeFilterTest.php | 2 +- .../Filesystem/Test/Unit/File/ReadFactoryTest.php | 2 +- .../Filesystem/Test/Unit/File/ReadTest.php | 2 +- .../Filesystem/Test/Unit/File/WriteFactoryTest.php | 2 +- .../Filesystem/Test/Unit/File/WriteTest.php | 2 +- .../Filesystem/Test/Unit/FileResolverTest.php | 2 +- .../Filesystem/Test/Unit/_files/http_mock.php | 2 +- .../Magento/Framework/Filter/AbstractFactory.php | 2 +- .../Magento/Framework/Filter/ArrayFilter.php | 2 +- .../Magento/Framework/Filter/DataObject.php | 2 +- .../Magento/Framework/Filter/DataObject/Grid.php | 2 +- lib/internal/Magento/Framework/Filter/Decrypt.php | 2 +- lib/internal/Magento/Framework/Filter/Email.php | 2 +- lib/internal/Magento/Framework/Filter/Encrypt.php | 2 +- .../Framework/Filter/Encrypt/AdapterInterface.php | 2 +- .../Magento/Framework/Filter/Encrypt/Basic.php | 2 +- lib/internal/Magento/Framework/Filter/Factory.php | 2 +- .../Magento/Framework/Filter/FactoryInterface.php | 2 +- .../Magento/Framework/Filter/FilterManager.php | 2 +- .../Framework/Filter/FilterManager/Config.php | 2 +- .../Filter/FilterManager/ConfigInterface.php | 2 +- lib/internal/Magento/Framework/Filter/Input.php | 2 +- .../Framework/Filter/Input/MaliciousCode.php | 2 +- .../Framework/Filter/LocalizedToNormalized.php | 2 +- lib/internal/Magento/Framework/Filter/Money.php | 2 +- .../Magento/Framework/Filter/RemoveAccents.php | 2 +- .../Magento/Framework/Filter/RemoveTags.php | 2 +- .../Magento/Framework/Filter/SplitWords.php | 2 +- lib/internal/Magento/Framework/Filter/Sprintf.php | 2 +- .../Magento/Framework/Filter/StripTags.php | 2 +- lib/internal/Magento/Framework/Filter/Template.php | 2 +- .../Magento/Framework/Filter/Template/Simple.php | 2 +- .../Template/Tokenizer/AbstractTokenizer.php | 2 +- .../Filter/Template/Tokenizer/Parameter.php | 2 +- .../Filter/Template/Tokenizer/Variable.php | 2 +- .../Filter/Test/Unit/AbstractFactoryTest.php | 2 +- .../Framework/Filter/Test/Unit/ArrayFilterTest.php | 2 +- .../Filter/Test/Unit/DataObject/GridTest.php | 2 +- .../Filter/Test/Unit/FilterManager/ConfigTest.php | 2 +- .../Filter/Test/Unit/FilterManagerTest.php | 2 +- .../Filter/Test/Unit/Input/MaliciousCodeTest.php | 2 +- .../Framework/Filter/Test/Unit/InputTest.php | 2 +- .../Filter/Test/Unit/RemoveAccentsTest.php | 2 +- .../Framework/Filter/Test/Unit/RemoveTagsTest.php | 2 +- .../Framework/Filter/Test/Unit/SplitWordsTest.php | 2 +- .../Framework/Filter/Test/Unit/SprintfTest.php | 2 +- .../Framework/Filter/Test/Unit/StripTagsTest.php | 2 +- .../Filter/Test/Unit/Template/SimpleTest.php | 2 +- .../Test/Unit/Template/Tokenizer/ParameterTest.php | 2 +- .../Test/Unit/Template/Tokenizer/VariableTest.php | 2 +- .../Framework/Filter/Test/Unit/TemplateTest.php | 2 +- .../Framework/Filter/Test/Unit/TranslitTest.php | 2 +- .../Framework/Filter/Test/Unit/TranslitUrlTest.php | 2 +- .../Framework/Filter/Test/Unit/TruncateTest.php | 2 +- lib/internal/Magento/Framework/Filter/Translit.php | 2 +- .../Magento/Framework/Filter/TranslitUrl.php | 2 +- lib/internal/Magento/Framework/Filter/Truncate.php | 2 +- .../Magento/Framework/Filter/ZendFactory.php | 2 +- lib/internal/Magento/Framework/Flag.php | 2 +- .../Magento/Framework/Flag/FlagResource.php | 2 +- lib/internal/Magento/Framework/FlagFactory.php | 2 +- .../Magento/Framework/HTTP/Adapter/Curl.php | 2 +- .../Framework/HTTP/Adapter/FileTransferFactory.php | 2 +- .../Magento/Framework/HTTP/Authentication.php | 2 +- .../Magento/Framework/HTTP/Client/Curl.php | 2 +- .../Magento/Framework/HTTP/Client/Socket.php | 2 +- .../Magento/Framework/HTTP/ClientFactory.php | 2 +- .../Magento/Framework/HTTP/ClientInterface.php | 2 +- lib/internal/Magento/Framework/HTTP/Header.php | 2 +- .../HTTP/PhpEnvironment/RemoteAddress.php | 2 +- .../Framework/HTTP/PhpEnvironment/Request.php | 2 +- .../Framework/HTTP/PhpEnvironment/Response.php | 2 +- .../HTTP/PhpEnvironment/ServerAddress.php | 2 +- .../Framework/HTTP/Test/Unit/Adapter/CurlTest.php | 2 +- .../Test/Unit/Adapter/_files/curl_exec_mock.php | 2 +- .../HTTP/Test/Unit/AuthenticationTest.php | 2 +- .../Framework/HTTP/Test/Unit/HeaderTest.php | 2 +- .../Test/Unit/PhpEnvironment/RemoteAddressTest.php | 2 +- .../HTTP/Test/Unit/PhpEnvironment/RequestTest.php | 2 +- .../HTTP/Test/Unit/PhpEnvironment/ResponseTest.php | 2 +- .../Test/Unit/PhpEnvironment/ServerAddressTest.php | 2 +- lib/internal/Magento/Framework/HTTP/ZendClient.php | 2 +- lib/internal/Magento/Framework/Image.php | 2 +- .../Framework/Image/Adapter/AbstractAdapter.php | 2 +- .../Framework/Image/Adapter/AdapterInterface.php | 2 +- .../Magento/Framework/Image/Adapter/Config.php | 2 +- .../Framework/Image/Adapter/ConfigInterface.php | 2 +- .../Magento/Framework/Image/Adapter/Gd2.php | 2 +- .../Framework/Image/Adapter/ImageMagick.php | 2 +- .../Magento/Framework/Image/AdapterFactory.php | 2 +- lib/internal/Magento/Framework/Image/Factory.php | 2 +- .../Image/Test/Unit/Adapter/AbstractTest.php | 2 +- .../Framework/Image/Test/Unit/Adapter/Gd2Test.php | 2 +- .../Image/Test/Unit/Adapter/ImageMagickTest.php | 2 +- .../Test/Unit/Adapter/_files/global_php_mock.php | 2 +- .../Image/Test/Unit/AdapterFactoryTest.php | 2 +- .../Framework/Indexer/AbstractProcessor.php | 2 +- .../Magento/Framework/Indexer/Action/Base.php | 2 +- .../Magento/Framework/Indexer/Action/Dummy.php | 2 +- .../Magento/Framework/Indexer/Action/Entity.php | 2 +- .../Magento/Framework/Indexer/ActionFactory.php | 2 +- .../Magento/Framework/Indexer/ActionInterface.php | 2 +- .../Magento/Framework/Indexer/CacheContext.php | 2 +- .../Magento/Framework/Indexer/Config/Converter.php | 2 +- .../Magento/Framework/Indexer/Config/Reader.php | 2 +- .../Framework/Indexer/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Indexer/ConfigInterface.php | 2 +- .../Framework/Indexer/FieldsetInterface.php | 2 +- .../Magento/Framework/Indexer/FieldsetPool.php | 2 +- .../Magento/Framework/Indexer/FilterInterface.php | 2 +- .../Magento/Framework/Indexer/GridStructure.php | 2 +- .../Framework/Indexer/Handler/AttributeHandler.php | 2 +- .../Framework/Indexer/Handler/ConcatHandler.php | 2 +- .../Framework/Indexer/Handler/DefaultHandler.php | 2 +- .../Magento/Framework/Indexer/HandlerInterface.php | 2 +- .../Magento/Framework/Indexer/HandlerPool.php | 2 +- .../Magento/Framework/Indexer/IndexStructure.php | 2 +- .../Framework/Indexer/IndexStructureInterface.php | 2 +- .../Magento/Framework/Indexer/IndexerInterface.php | 2 +- .../Magento/Framework/Indexer/IndexerRegistry.php | 2 +- .../Framework/Indexer/SaveHandler/Batch.php | 2 +- .../Magento/Framework/Indexer/SaveHandler/Grid.php | 2 +- .../Indexer/SaveHandler/IndexerHandler.php | 2 +- .../Indexer/SaveHandler/IndexerInterface.php | 2 +- .../Framework/Indexer/SaveHandlerFactory.php | 2 +- .../Indexer/ScopeResolver/FlatScopeResolver.php | 2 +- .../Indexer/ScopeResolver/IndexScopeResolver.php | 2 +- .../Magento/Framework/Indexer/StateInterface.php | 2 +- .../Magento/Framework/Indexer/StructureFactory.php | 2 +- .../Magento/Framework/Indexer/Table/Strategy.php | 2 +- .../Framework/Indexer/Table/StrategyInterface.php | 2 +- .../Indexer/Test/Unit/ActionFactoryTest.php | 2 +- .../Framework/Indexer/Test/Unit/BatchTest.php | 2 +- .../Indexer/Test/Unit/Config/ConverterTest.php | 2 +- .../Indexer/Test/Unit/Config/ReaderTest.php | 2 +- .../Indexer/Test/Unit/Config/SchemaLocatorTest.php | 2 +- .../Indexer/Test/Unit/GridStructureTest.php | 2 +- .../Indexer/Test/Unit/IndexStructureTest.php | 2 +- .../Indexer/Test/Unit/IndexerRegistryTest.php | 2 +- .../Unit/ScopeResolver/IndexScopeResolverTest.php | 2 +- .../Framework/Indexer/Test/Unit/StrategyTest.php | 2 +- .../Framework/Indexer/Test/Unit/XsdTest.php | 2 +- .../Indexer/Test/Unit/_files/indexer_config.php | 2 +- .../Test/Unit/_files/indexer_merged_one.xml | 2 +- .../Test/Unit/_files/indexer_merged_two.xml | 2 +- .../Indexer/Test/Unit/_files/indexer_one.xml | 2 +- .../Indexer/Test/Unit/_files/indexer_three.xml | 2 +- .../Indexer/Test/Unit/_files/indexer_two.xml | 2 +- .../Test/Unit/_files/invalidIndexerXmlArray.php | 2 +- .../Indexer/Test/Unit/_files/valid_indexer.xml | 2 +- .../Magento/Framework/Indexer/etc/indexer.xsd | 2 +- .../Framework/Indexer/etc/indexer_merged.xsd | 2 +- .../Magento/Framework/Interception/Chain/Chain.php | 2 +- .../Framework/Interception/ChainInterface.php | 2 +- .../Interception/Code/Generator/Interceptor.php | 2 +- .../Interception/Code/InterfaceValidator.php | 2 +- .../Framework/Interception/Config/Config.php | 2 +- .../Framework/Interception/ConfigInterface.php | 2 +- .../Framework/Interception/Definition/Compiled.php | 2 +- .../Framework/Interception/Definition/Runtime.php | 2 +- .../Framework/Interception/DefinitionInterface.php | 2 +- .../Magento/Framework/Interception/Interceptor.php | 2 +- .../Interception/InterceptorInterface.php | 2 +- .../Interception/ObjectManager/Config/Compiled.php | 2 +- .../ObjectManager/Config/Developer.php | 2 +- .../Interception/ObjectManager/ConfigInterface.php | 2 +- .../Interception/PluginList/PluginList.php | 2 +- .../Framework/Interception/PluginListInterface.php | 2 +- .../Interception/Test/Unit/Chain/ChainTest.php | 2 +- .../Test/Unit/Code/Generator/InterceptorTest.php | 2 +- .../Test/Unit/Code/InterfaceValidatorTest.php | 2 +- .../Interception/Test/Unit/Config/ConfigTest.php | 2 +- .../Module/Model/InterfaceValidator/Item.php | 2 +- .../ItemPlugin/ExtraParameters.php | 2 +- .../ItemPlugin/IncompatibleArgumentsCount.php | 2 +- .../ItemPlugin/IncompatibleArgumentsType.php | 2 +- .../ItemPlugin/IncompatibleInterface.php | 2 +- .../ItemPlugin/IncorrectSubject.php | 2 +- .../ItemPlugin/InvalidProceed.php | 2 +- .../InterfaceValidator/ItemPlugin/ValidPlugin.php | 2 +- .../Model/InterfaceValidator/ItemWithArguments.php | 2 +- .../Test/Unit/Custom/Module/Model/Item.php | 2 +- .../Unit/Custom/Module/Model/Item/Enhanced.php | 2 +- .../Unit/Custom/Module/Model/ItemContainer.php | 2 +- .../Custom/Module/Model/ItemContainer/Enhanced.php | 2 +- .../Module/Model/ItemContainerPlugin/Simple.php | 2 +- .../Custom/Module/Model/ItemPlugin/Advanced.php | 2 +- .../Unit/Custom/Module/Model/ItemPlugin/Simple.php | 2 +- .../Unit/Custom/Module/Model/StartingBackslash.php | 2 +- .../Module/Model/StartingBackslash/Plugin.php | 2 +- .../Test/Unit/Definition/CompiledTest.php | 2 +- .../Unit/ObjectManager/Config/DeveloperTest.php | 2 +- .../Test/Unit/PluginList/PluginListTest.php | 2 +- .../Test/Unit/_files/reader_mock_map.php | 2 +- .../Magento/Framework/Intl/DateTimeFactory.php | 2 +- .../Framework/Intl/NumberFormatterFactory.php | 2 +- lib/internal/Magento/Framework/Json/Decoder.php | 2 +- .../Magento/Framework/Json/DecoderInterface.php | 2 +- lib/internal/Magento/Framework/Json/Encoder.php | 2 +- .../Magento/Framework/Json/EncoderInterface.php | 2 +- .../Magento/Framework/Json/Helper/Data.php | 2 +- .../Framework/Json/Test/Unit/Helper/DataTest.php | 2 +- .../Framework/Locale/Bundle/CurrencyBundle.php | 2 +- .../Magento/Framework/Locale/Bundle/DataBundle.php | 2 +- .../Framework/Locale/Bundle/LanguageBundle.php | 2 +- .../Framework/Locale/Bundle/RegionBundle.php | 2 +- .../Framework/Locale/Bundle/TimezoneBundle.php | 2 +- lib/internal/Magento/Framework/Locale/Config.php | 2 +- .../Magento/Framework/Locale/ConfigInterface.php | 2 +- lib/internal/Magento/Framework/Locale/Currency.php | 2 +- .../Magento/Framework/Locale/CurrencyInterface.php | 2 +- lib/internal/Magento/Framework/Locale/Format.php | 2 +- .../Magento/Framework/Locale/FormatInterface.php | 2 +- .../Magento/Framework/Locale/ListsInterface.php | 2 +- lib/internal/Magento/Framework/Locale/Resolver.php | 2 +- .../Magento/Framework/Locale/ResolverInterface.php | 2 +- .../Framework/Locale/Test/Unit/ConfigTest.php | 2 +- .../Framework/Locale/Test/Unit/CurrencyTest.php | 2 +- .../Locale/Test/Unit/TranslatedListsTest.php | 2 +- .../Magento/Framework/Locale/TranslatedLists.php | 2 +- .../Magento/Framework/Logger/Handler/Base.php | 2 +- .../Magento/Framework/Logger/Handler/Debug.php | 2 +- .../Magento/Framework/Logger/Handler/Exception.php | 2 +- .../Magento/Framework/Logger/Handler/System.php | 2 +- lib/internal/Magento/Framework/Logger/Monolog.php | 2 +- lib/internal/Magento/Framework/Mail/Message.php | 2 +- .../Magento/Framework/Mail/MessageInterface.php | 2 +- .../Framework/Mail/Template/ConfigInterface.php | 2 +- .../Magento/Framework/Mail/Template/Factory.php | 2 +- .../Framework/Mail/Template/FactoryInterface.php | 2 +- .../Mail/Template/SenderResolverInterface.php | 2 +- .../Framework/Mail/Template/TransportBuilder.php | 2 +- .../Magento/Framework/Mail/TemplateInterface.php | 2 +- .../Framework/Mail/Test/Unit/MessageTest.php | 2 +- .../Mail/Test/Unit/Template/FactoryTest.php | 2 +- .../Test/Unit/Template/TransportBuilderTest.php | 2 +- .../Framework/Mail/Test/Unit/TransportTest.php | 2 +- lib/internal/Magento/Framework/Mail/Transport.php | 2 +- .../Magento/Framework/Mail/TransportInterface.php | 2 +- .../Framework/Mail/TransportInterfaceFactory.php | 2 +- lib/internal/Magento/Framework/Math/Calculator.php | 2 +- lib/internal/Magento/Framework/Math/Division.php | 2 +- lib/internal/Magento/Framework/Math/Random.php | 2 +- .../Framework/Math/Test/Unit/CalculatorTest.php | 2 +- .../Framework/Math/Test/Unit/DivisionTest.php | 2 +- .../Framework/Math/Test/Unit/RandomTest.php | 2 +- .../Magento/Framework/Message/AbstractMessage.php | 2 +- .../Magento/Framework/Message/Collection.php | 2 +- .../Framework/Message/CollectionFactory.php | 2 +- lib/internal/Magento/Framework/Message/Error.php | 2 +- lib/internal/Magento/Framework/Message/Factory.php | 2 +- lib/internal/Magento/Framework/Message/Manager.php | 2 +- .../Magento/Framework/Message/ManagerInterface.php | 2 +- .../Magento/Framework/Message/MessageInterface.php | 2 +- lib/internal/Magento/Framework/Message/Notice.php | 2 +- .../Magento/Framework/Message/PhraseFactory.php | 2 +- lib/internal/Magento/Framework/Message/Session.php | 2 +- lib/internal/Magento/Framework/Message/Success.php | 2 +- .../Message/Test/Unit/AbstractMessageTest.php | 2 +- .../Framework/Message/Test/Unit/CollectionTest.php | 2 +- .../Framework/Message/Test/Unit/ErrorTest.php | 2 +- .../Framework/Message/Test/Unit/FactoryTest.php | 2 +- .../Framework/Message/Test/Unit/ManagerTest.php | 2 +- .../Framework/Message/Test/Unit/NoticeTest.php | 2 +- .../Framework/Message/Test/Unit/SuccessTest.php | 2 +- .../Framework/Message/Test/Unit/TestingMessage.php | 2 +- .../Framework/Message/Test/Unit/WarningTest.php | 2 +- lib/internal/Magento/Framework/Message/Warning.php | 2 +- .../Framework/Model/AbstractExtensibleModel.php | 2 +- .../Magento/Framework/Model/AbstractModel.php | 2 +- .../Model/ActionValidator/RemoveAction.php | 2 +- .../Model/ActionValidator/RemoveAction/Allowed.php | 2 +- .../Magento/Framework/Model/CallbackPool.php | 2 +- lib/internal/Magento/Framework/Model/Context.php | 2 +- .../Framework/Model/Entity/RepositoryFactory.php | 2 +- .../Magento/Framework/Model/Entity/Scope.php | 2 +- .../Framework/Model/Entity/ScopeFactory.php | 2 +- .../Framework/Model/Entity/ScopeInterface.php | 2 +- .../Model/Entity/ScopeProviderInterface.php | 2 +- .../Framework/Model/Entity/ScopeResolver.php | 2 +- .../Magento/Framework/Model/EntityRegistry.php | 2 +- .../Magento/Framework/Model/EntitySnapshot.php | 2 +- .../Model/EntitySnapshot/AttributeProvider.php | 2 +- .../EntitySnapshot/AttributeProviderInterface.php | 2 +- .../Framework/Model/Operation/ReadInterface.php | 2 +- .../Framework/Model/Operation/WriteInterface.php | 2 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../Model/ResourceModel/Db/AbstractDb.php | 2 +- .../Db/Collection/AbstractCollection.php | 2 +- .../Framework/Model/ResourceModel/Db/Context.php | 2 +- .../Model/ResourceModel/Db/CreateEntityRow.php | 2 +- .../Model/ResourceModel/Db/DeleteEntityRow.php | 2 +- .../ResourceModel/Db/ObjectRelationProcessor.php | 2 +- .../Db/ProcessEntityRelationInterface.php | 2 +- .../Framework/Model/ResourceModel/Db/Profiler.php | 2 +- .../Model/ResourceModel/Db/ReadEntityRow.php | 2 +- .../Model/ResourceModel/Db/Relation/ActionPool.php | 2 +- .../Model/ResourceModel/Db/TransactionManager.php | 2 +- .../Db/TransactionManagerInterface.php | 2 +- .../Model/ResourceModel/Db/UpdateEntityRow.php | 2 +- .../ResourceModel/Db/ValidateDataIntegrity.php | 2 +- .../ResourceModel/Db/VersionControl/AbstractDb.php | 2 +- .../ResourceModel/Db/VersionControl/Collection.php | 2 +- .../ResourceModel/Db/VersionControl/Metadata.php | 2 +- .../Db/VersionControl/RelationComposite.php | 2 +- .../Db/VersionControl/RelationInterface.php | 2 +- .../ResourceModel/Db/VersionControl/Snapshot.php | 2 +- .../Model/ResourceModel/Entity/AbstractEntity.php | 2 +- .../Framework/Model/ResourceModel/Entity/Table.php | 2 +- .../Framework/Model/ResourceModel/Iterator.php | 2 +- .../Model/ResourceModel/Type/AbstractType.php | 2 +- .../Framework/Model/ResourceModel/Type/Db.php | 2 +- .../ResourceModel/Type/Db/ConnectionFactory.php | 2 +- .../Type/Db/ConnectionFactoryInterface.php | 2 +- .../Model/ResourceModel/Type/Db/Pdo/Mysql.php | 2 +- .../Test/Unit/AbstractExtensibleModelTest.php | 2 +- .../Model/Test/Unit/AbstractModelTest.php | 2 +- .../Test/Unit/ActionValidator/RemoveActionTest.php | 2 +- .../Unit/EntitySnapshot/AttributeProviderTest.php | 2 +- .../Unit/ResourceModel/AbstractResourceStub.php | 2 +- .../Unit/ResourceModel/AbstractResourceTest.php | 2 +- .../Test/Unit/ResourceModel/Db/AbstractDbTest.php | 2 +- .../Db/Collection/AbstractCollectionTest.php | 2 +- .../Unit/ResourceModel/Db/CreateEntityRowTest.php | 2 +- .../Unit/ResourceModel/Db/DeleteEntityRowTest.php | 2 +- .../Unit/ResourceModel/Db/ReadEntityRowTest.php | 2 +- .../ResourceModel/Db/Relation/ActionPoolTest.php | 2 +- .../Unit/ResourceModel/Db/UpdateEntityRowTest.php | 2 +- .../Db/VersionControl/MetadataTest.php | 2 +- .../Db/VersionControl/RelationCompositeTest.php | 2 +- .../Db/VersionControl/SnapshotTest.php | 2 +- .../Type/Db/ConnectionFactoryTest.php | 2 +- .../Unit/ResourceModel/Type/Db/Pdo/MysqlTest.php | 2 +- .../Magento/Framework/Module/ConflictChecker.php | 2 +- .../Magento/Framework/Module/DbVersionInfo.php | 2 +- .../Framework/Module/Declaration/Converter/Dom.php | 2 +- .../Magento/Framework/Module/DependencyChecker.php | 2 +- lib/internal/Magento/Framework/Module/Dir.php | 2 +- .../Magento/Framework/Module/Dir/Reader.php | 2 +- .../Framework/Module/Dir/ReverseResolver.php | 2 +- .../Magento/Framework/Module/FullModuleList.php | 2 +- lib/internal/Magento/Framework/Module/Manager.php | 2 +- .../Magento/Framework/Module/ModuleList.php | 2 +- .../Magento/Framework/Module/ModuleList/Loader.php | 2 +- .../Framework/Module/ModuleListInterface.php | 2 +- .../Magento/Framework/Module/ModuleResource.php | 2 +- .../Magento/Framework/Module/Output/Config.php | 2 +- .../Framework/Module/Output/ConfigInterface.php | 2 +- .../Magento/Framework/Module/PackageInfo.php | 2 +- .../Framework/Module/PackageInfoFactory.php | 2 +- .../Framework/Module/Plugin/DbStatusValidator.php | 2 +- .../Magento/Framework/Module/ResourceInterface.php | 2 +- lib/internal/Magento/Framework/Module/Setup.php | 2 +- .../Magento/Framework/Module/Setup/Context.php | 2 +- .../Magento/Framework/Module/Setup/Migration.php | 2 +- .../Framework/Module/Setup/MigrationData.php | 2 +- .../Framework/Module/Setup/MigrationFactory.php | 2 +- lib/internal/Magento/Framework/Module/Status.php | 2 +- .../Module/Test/Unit/ConflictCheckerTest.php | 2 +- .../Module/Test/Unit/DbVersionInfoTest.php | 2 +- .../Test/Unit/Declaration/Converter/DomTest.php | 2 +- .../Converter/_files/converted_valid_module.php | 2 +- .../Declaration/Converter/_files/valid_module.xml | 2 +- .../Module/Test/Unit/DependencyCheckerTest.php | 2 +- .../Framework/Module/Test/Unit/Dir/ReaderTest.php | 2 +- .../Module/Test/Unit/Dir/ReverseResolverTest.php | 2 +- .../Magento/Framework/Module/Test/Unit/DirTest.php | 2 +- .../Module/Test/Unit/FullModuleListTest.php | 2 +- .../Framework/Module/Test/Unit/ManagerTest.php | 2 +- .../Module/Test/Unit/ModuleList/LoaderTest.php | 2 +- .../Framework/Module/Test/Unit/ModuleListTest.php | 2 +- .../Module/Test/Unit/PackageInfoFactoryTest.php | 2 +- .../Framework/Module/Test/Unit/PackageInfoTest.php | 2 +- .../Test/Unit/Plugin/DbStatusValidatorTest.php | 2 +- .../Module/Test/Unit/Setup/MigrationTest.php | 2 +- .../Unit/Setup/_files/data_content_plain_model.php | 2 +- .../Setup/_files/data_content_plain_pk_fields.php | 2 +- .../Setup/_files/data_content_plain_resource.php | 2 +- .../Unit/Setup/_files/data_content_serialized.php | 2 +- .../Test/Unit/Setup/_files/data_content_wiki.php | 2 +- .../Test/Unit/Setup/_files/data_content_xml.php | 2 +- .../Framework/Module/Test/Unit/SetupTest.php | 2 +- .../Framework/Module/Test/Unit/StatusTest.php | 2 +- .../Magento/Framework/Module/etc/module.xsd | 2 +- .../Magento/Framework/Mview/ActionFactory.php | 2 +- .../Magento/Framework/Mview/ActionInterface.php | 2 +- lib/internal/Magento/Framework/Mview/Config.php | 2 +- .../Magento/Framework/Mview/Config/Converter.php | 2 +- .../Magento/Framework/Mview/Config/Data.php | 2 +- .../Magento/Framework/Mview/Config/Data/Proxy.php | 2 +- .../Magento/Framework/Mview/Config/Reader.php | 2 +- .../Framework/Mview/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Mview/ConfigInterface.php | 2 +- lib/internal/Magento/Framework/Mview/Processor.php | 2 +- .../Magento/Framework/Mview/ProcessorInterface.php | 2 +- .../Mview/Test/Unit/ActionFactoryTest.php | 2 +- .../Mview/Test/Unit/Config/ConverterTest.php | 2 +- .../Mview/Test/Unit/Config/Data/ProxyTest.php | 2 +- .../Framework/Mview/Test/Unit/Config/DataTest.php | 2 +- .../Mview/Test/Unit/Config/ReaderTest.php | 2 +- .../Framework/Mview/Test/Unit/ConfigTest.php | 2 +- .../Framework/Mview/Test/Unit/ProcessorTest.php | 2 +- .../Mview/Test/Unit/View/ChangelogTest.php | 2 +- .../Mview/Test/Unit/View/CollectionTest.php | 2 +- .../Test/Unit/View/SubscriptionFactoryTest.php | 2 +- .../Mview/Test/Unit/View/SubscriptionTest.php | 2 +- .../Magento/Framework/Mview/Test/Unit/ViewTest.php | 2 +- .../Magento/Framework/Mview/Test/Unit/XsdTest.php | 2 +- .../Test/Unit/_files/invalidMviewXmlArray.php | 2 +- .../Mview/Test/Unit/_files/mview_config.php | 2 +- .../Mview/Test/Unit/_files/mview_merged_one.xml | 2 +- .../Mview/Test/Unit/_files/mview_merged_two.xml | 2 +- .../Framework/Mview/Test/Unit/_files/mview_one.xml | 2 +- .../Mview/Test/Unit/_files/mview_three.xml | 2 +- .../Framework/Mview/Test/Unit/_files/mview_two.xml | 2 +- .../Mview/Test/Unit/_files/valid_mview.xml | 2 +- lib/internal/Magento/Framework/Mview/View.php | 2 +- .../Framework/Mview/View/AbstractFactory.php | 2 +- .../Magento/Framework/Mview/View/Changelog.php | 2 +- .../Framework/Mview/View/ChangelogInterface.php | 2 +- .../View/ChangelogTableNotExistsException.php | 2 +- .../Magento/Framework/Mview/View/Collection.php | 2 +- .../Framework/Mview/View/CollectionFactory.php | 2 +- .../Framework/Mview/View/CollectionInterface.php | 2 +- .../Mview/View/State/CollectionFactory.php | 2 +- .../Mview/View/State/CollectionInterface.php | 2 +- .../Framework/Mview/View/StateInterface.php | 2 +- .../Magento/Framework/Mview/View/Subscription.php | 2 +- .../Framework/Mview/View/SubscriptionFactory.php | 2 +- .../Framework/Mview/View/SubscriptionInterface.php | 2 +- .../Magento/Framework/Mview/ViewInterface.php | 2 +- lib/internal/Magento/Framework/Mview/etc/mview.xsd | 2 +- .../Framework/Notification/MessageInterface.php | 2 +- .../Magento/Framework/Notification/MessageList.php | 2 +- .../Framework/Notification/NotifierInterface.php | 2 +- .../Framework/Notification/NotifierList.php | 2 +- .../Framework/Notification/NotifierPool.php | 2 +- .../Notification/Test/Unit/NotifierListTest.php | 2 +- .../Notification/Test/Unit/NotifierPoolTest.php | 2 +- .../Magento/Framework/Oauth/ConsumerInterface.php | 2 +- lib/internal/Magento/Framework/Oauth/Exception.php | 2 +- .../Magento/Framework/Oauth/Helper/Oauth.php | 2 +- .../Magento/Framework/Oauth/Helper/Request.php | 2 +- .../Framework/Oauth/NonceGeneratorInterface.php | 2 +- lib/internal/Magento/Framework/Oauth/Oauth.php | 2 +- .../Framework/Oauth/OauthInputException.php | 2 +- .../Magento/Framework/Oauth/OauthInterface.php | 2 +- .../Oauth/Test/Unit/Helper/RequestTest.php | 2 +- .../Oauth/Test/Unit/OauthInputExceptionTest.php | 2 +- .../Framework/Oauth/TokenProviderInterface.php | 2 +- .../ObjectManager/Code/Generator/Converter.php | 2 +- .../ObjectManager/Code/Generator/Factory.php | 2 +- .../ObjectManager/Code/Generator/Persistor.php | 2 +- .../ObjectManager/Code/Generator/Proxy.php | 2 +- .../ObjectManager/Code/Generator/Repository.php | 2 +- .../Framework/ObjectManager/Config/Config.php | 2 +- .../ObjectManager/Config/Mapper/ArgumentParser.php | 2 +- .../Framework/ObjectManager/Config/Mapper/Dom.php | 2 +- .../Framework/ObjectManager/Config/Reader/Dom.php | 2 +- .../ObjectManager/Config/Reader/DomFactory.php | 2 +- .../ObjectManager/Config/SchemaLocator.php | 2 +- .../ObjectManager/ConfigCacheInterface.php | 2 +- .../ObjectManager/ConfigLoaderInterface.php | 2 +- .../Framework/ObjectManager/ContextInterface.php | 2 +- .../ObjectManager/Definition/Compiled.php | 2 +- .../ObjectManager/Definition/Compiled/Binary.php | 2 +- .../Definition/Compiled/Serialized.php | 2 +- .../Framework/ObjectManager/Definition/Runtime.php | 2 +- .../Framework/ObjectManager/DefinitionFactory.php | 2 +- .../ObjectManager/DefinitionInterface.php | 2 +- .../ObjectManager/DynamicConfigInterface.php | 2 +- .../ObjectManager/Factory/Dynamic/Production.php | 2 +- .../Framework/ObjectManager/FactoryInterface.php | 2 +- .../Framework/ObjectManager/Helper/Composite.php | 2 +- .../ObjectManager/InterceptableValidator.php | 2 +- .../ObjectManager/NoninterceptableInterface.php | 2 +- .../Framework/ObjectManager/ObjectManager.php | 2 +- .../Profiler/Code/Generator/Logger.php | 2 +- .../ObjectManager/Profiler/FactoryDecorator.php | 2 +- .../Framework/ObjectManager/Profiler/Log.php | 2 +- .../Framework/ObjectManager/Profiler/Tree/Item.php | 2 +- .../Framework/ObjectManager/Relations/Compiled.php | 2 +- .../Framework/ObjectManager/Relations/Runtime.php | 2 +- .../Framework/ObjectManager/RelationsInterface.php | 2 +- .../Magento/Framework/ObjectManager/TMap.php | 2 +- .../Framework/ObjectManager/TMapFactory.php | 2 +- .../Test/Unit/Code/Generator/ConverterTest.php | 2 +- .../Test/Unit/Code/Generator/FactoryTest.php | 2 +- .../Unit/Code/Generator/GenerateRepositoryTest.php | 2 +- .../Test/Unit/Code/Generator/ProxyTest.php | 2 +- .../Test/Unit/Code/Generator/RepositoryTest.php | 2 +- .../Test/Unit/Code/Generator/_files/Sample.php | 2 +- .../Test/Unit/Config/CompiledTest.php | 2 +- .../ObjectManager/Test/Unit/Config/ConfigTest.php | 2 +- .../Test/Unit/Config/Mapper/ArgumentParserTest.php | 2 +- .../Test/Unit/Config/Mapper/DomTest.php | 2 +- .../Unit/Config/Mapper/_files/argument_parser.xml | 2 +- .../Mapper/_files/mapped_simple_di_config.php | 2 +- .../Unit/Config/Mapper/_files/simple_di_config.xml | 2 +- .../Test/Unit/Config/Reader/DomFactoryTest.php | 2 +- .../Test/Unit/Config/Reader/DomTest.php | 2 +- .../Unit/Config/Reader/_files/ConfigDomMock.php | 2 +- .../Test/Unit/Config/SchemaLocatorTest.php | 2 +- .../ObjectManager/Test/Unit/Config/XsdTest.php | 2 +- .../Unit/Config/_files/invalidConfigXmlArray.php | 2 +- .../Test/Unit/Config/_files/valid_config.xml | 2 +- .../Test/Unit/Definition/Compiled/BinaryTest.php | 2 +- .../Unit/Definition/Compiled/SerializedTest.php | 2 +- .../Test/Unit/Definition/CompiledTest.php | 2 +- .../Test/Unit/DefinitionFactoryTest.php | 2 +- .../Test/Unit/Factory/FactoryTest.php | 2 +- .../Test/Unit/Factory/Fixture/CircularOne.php | 2 +- .../Test/Unit/Factory/Fixture/CircularThree.php | 2 +- .../Test/Unit/Factory/Fixture/CircularTwo.php | 2 +- .../Fixture/Compiled/DependencySharedTesting.php | 2 +- .../Factory/Fixture/Compiled/DependencyTesting.php | 2 +- .../Fixture/Compiled/SimpleClassTesting.php | 2 +- .../Test/Unit/Factory/Fixture/OneScalar.php | 2 +- .../Test/Unit/Factory/Fixture/Polymorphous.php | 2 +- .../Test/Unit/Factory/Fixture/Two.php | 2 +- .../Test/Unit/Helper/CompositeTest.php | 2 +- .../Test/Unit/InterceptableValidatorTest.php | 2 +- .../ObjectManager/Test/Unit/ObjectManagerTest.php | 2 +- .../Test/Unit/Profiler/FactoryDecoratorTest.php | 2 +- .../Test/Unit/Relations/CompiledTest.php | 2 +- .../Test/Unit/Relations/RuntimeTest.php | 2 +- .../Framework/ObjectManager/Test/Unit/TMapTest.php | 2 +- .../Unit/_files/Aggregate/AggregateInterface.php | 2 +- .../Test/Unit/_files/Aggregate/AggregateParent.php | 2 +- .../Test/Unit/_files/Aggregate/Child.php | 2 +- .../Test/Unit/_files/Aggregate/WithOptional.php | 2 +- .../ObjectManager/Test/Unit/_files/Child.php | 2 +- .../ObjectManager/Test/Unit/_files/Child/A.php | 2 +- .../Test/Unit/_files/Child/Circular.php | 2 +- .../Test/Unit/_files/Child/Interceptor.php | 2 +- .../Test/Unit/_files/Child/Interceptor/A.php | 2 +- .../Test/Unit/_files/Child/Interceptor/B.php | 2 +- .../Test/Unit/_files/ChildInterface.php | 2 +- .../ObjectManager/Test/Unit/_files/DiInterface.php | 2 +- .../ObjectManager/Test/Unit/_files/DiParent.php | 2 +- .../ObjectManager/Test/Unit/_files/Proxy.php | 2 +- .../ObjectManager/Test/Unit/_files/TMap/TClass.php | 2 +- .../Test/Unit/_files/TMap/TInterface.php | 2 +- .../Test/Unit/_files/logger_classes.php | 2 +- .../Magento/Framework/ObjectManager/etc/config.xsd | 2 +- .../Magento/Framework/ObjectManagerInterface.php | 2 +- .../Magento/Framework/Option/ArrayInterface.php | 2 +- .../Magento/Framework/Option/ArrayPool.php | 2 +- lib/internal/Magento/Framework/OsInfo.php | 2 +- lib/internal/Magento/Framework/Parse/Zip.php | 2 +- lib/internal/Magento/Framework/Phrase.php | 2 +- .../Framework/Phrase/Renderer/Composite.php | 2 +- .../Magento/Framework/Phrase/Renderer/Inline.php | 2 +- .../Framework/Phrase/Renderer/Placeholder.php | 2 +- .../Framework/Phrase/Renderer/Translate.php | 2 +- .../Magento/Framework/Phrase/RendererInterface.php | 2 +- .../Phrase/Test/Unit/Renderer/CompositeTest.php | 2 +- .../Phrase/Test/Unit/Renderer/PlaceholderTest.php | 2 +- .../Phrase/Test/Unit/Renderer/TranslateTest.php | 2 +- .../Pricing/Adjustment/AdjustmentInterface.php | 2 +- .../Framework/Pricing/Adjustment/Calculator.php | 2 +- .../Pricing/Adjustment/CalculatorInterface.php | 2 +- .../Framework/Pricing/Adjustment/Collection.php | 2 +- .../Framework/Pricing/Adjustment/Factory.php | 2 +- .../Magento/Framework/Pricing/Adjustment/Pool.php | 2 +- .../Framework/Pricing/Amount/AmountFactory.php | 2 +- .../Framework/Pricing/Amount/AmountInterface.php | 2 +- .../Magento/Framework/Pricing/Amount/Base.php | 2 +- .../Magento/Framework/Pricing/Helper/Data.php | 2 +- .../Framework/Pricing/Price/AbstractPrice.php | 2 +- .../Pricing/Price/BasePriceProviderInterface.php | 2 +- .../Magento/Framework/Pricing/Price/Collection.php | 2 +- .../Magento/Framework/Pricing/Price/Factory.php | 2 +- .../Magento/Framework/Pricing/Price/Pool.php | 2 +- .../Framework/Pricing/Price/PriceInterface.php | 2 +- .../Magento/Framework/Pricing/PriceComposite.php | 2 +- .../Framework/Pricing/PriceCurrencyInterface.php | 2 +- .../Magento/Framework/Pricing/PriceInfo/Base.php | 2 +- .../Framework/Pricing/PriceInfo/Factory.php | 2 +- .../Framework/Pricing/PriceInfoInterface.php | 2 +- lib/internal/Magento/Framework/Pricing/Render.php | 2 +- .../Pricing/Render/AbstractAdjustment.php | 2 +- .../Pricing/Render/AdjustmentRenderInterface.php | 2 +- .../Magento/Framework/Pricing/Render/Amount.php | 2 +- .../Pricing/Render/AmountRenderInterface.php | 2 +- .../Magento/Framework/Pricing/Render/Layout.php | 2 +- .../Magento/Framework/Pricing/Render/PriceBox.php | 2 +- .../Pricing/Render/PriceBoxRenderInterface.php | 2 +- .../Framework/Pricing/Render/RendererPool.php | 2 +- .../Framework/Pricing/SaleableInterface.php | 2 +- .../Test/Unit/Adjustment/CalculatorTest.php | 2 +- .../Test/Unit/Adjustment/CollectionTest.php | 2 +- .../Pricing/Test/Unit/Adjustment/FactoryTest.php | 2 +- .../Pricing/Test/Unit/Adjustment/PoolTest.php | 2 +- .../Pricing/Test/Unit/Amount/AmountFactoryTest.php | 2 +- .../Pricing/Test/Unit/Amount/BaseTest.php | 2 +- .../Pricing/Test/Unit/Helper/DataTest.php | 2 +- .../Pricing/Test/Unit/Price/AbstractPriceTest.php | 2 +- .../Pricing/Test/Unit/Price/CollectionTest.php | 2 +- .../Pricing/Test/Unit/Price/FactoryTest.php | 2 +- .../Framework/Pricing/Test/Unit/Price/PoolTest.php | 2 +- .../Framework/Pricing/Test/Unit/Price/Stub.php | 2 +- .../Pricing/Test/Unit/PriceInfo/BaseTest.php | 2 +- .../Pricing/Test/Unit/PriceInfo/FactoryTest.php | 2 +- .../Test/Unit/Render/AbstractAdjustmentTest.php | 2 +- .../Pricing/Test/Unit/Render/AmountTest.php | 2 +- .../Pricing/Test/Unit/Render/LayoutTest.php | 2 +- .../Pricing/Test/Unit/Render/PriceBoxTest.php | 2 +- .../Pricing/Test/Unit/Render/RendererPoolTest.php | 2 +- .../Framework/Pricing/Test/Unit/RenderTest.php | 2 +- .../Process/PhpExecutableFinderFactory.php | 2 +- lib/internal/Magento/Framework/Profiler.php | 2 +- .../Magento/Framework/Profiler/Driver/Factory.php | 2 +- .../Magento/Framework/Profiler/Driver/Standard.php | 2 +- .../Profiler/Driver/Standard/AbstractOutput.php | 2 +- .../Profiler/Driver/Standard/Output/Csvfile.php | 2 +- .../Profiler/Driver/Standard/Output/Factory.php | 2 +- .../Profiler/Driver/Standard/Output/Firebug.php | 2 +- .../Profiler/Driver/Standard/Output/Html.php | 2 +- .../Profiler/Driver/Standard/OutputInterface.php | 2 +- .../Framework/Profiler/Driver/Standard/Stat.php | 2 +- .../Magento/Framework/Profiler/DriverInterface.php | 2 +- .../Profiler/Test/Unit/Driver/FactoryTest.php | 2 +- .../Unit/Driver/Standard/Output/CsvfileTest.php | 2 +- .../Unit/Driver/Standard/Output/FactoryTest.php | 2 +- .../Unit/Driver/Standard/Output/FirebugTest.php | 2 +- .../Unit/Driver/Standard/OutputAbstractTest.php | 2 +- .../Test/Unit/Driver/Standard/StatTest.php | 2 +- .../Profiler/Test/Unit/Driver/StandardTest.php | 2 +- .../Framework/Reflection/AttributeTypeResolver.php | 2 +- .../Reflection/CustomAttributesProcessor.php | 2 +- .../Framework/Reflection/DataObjectProcessor.php | 2 +- .../Reflection/ExtensionAttributesProcessor.php | 2 +- .../Magento/Framework/Reflection/FieldNamer.php | 2 +- .../Magento/Framework/Reflection/MethodsMap.php | 2 +- .../Magento/Framework/Reflection/NameFinder.php | 2 +- .../Test/Unit/AttributeTypeResolverTest.php | 2 +- .../Framework/Reflection/Test/Unit/DataObject.php | 2 +- .../Test/Unit/ExtensionAttributesObject.php | 2 +- .../Test/Unit/ExtensionAttributesProcessorTest.php | 2 +- .../Reflection/Test/Unit/FieldNamerTest.php | 2 +- .../Reflection/Test/Unit/MethodsMapTest.php | 2 +- .../Reflection/Test/Unit/NameFinderTest.php | 2 +- .../Reflection/Test/Unit/TypeCasterTest.php | 2 +- .../Reflection/Test/Unit/TypeProcessorTest.php | 2 +- .../Magento/Framework/Reflection/TypeCaster.php | 2 +- .../Magento/Framework/Reflection/TypeProcessor.php | 2 +- lib/internal/Magento/Framework/Registry.php | 2 +- .../Magento/Framework/RequireJs/Config.php | 2 +- .../RequireJs/Config/File/Collector/Aggregated.php | 2 +- .../Framework/RequireJs/Test/Unit/ConfigTest.php | 2 +- .../Framework/Search/AbstractKeyValuePair.php | 2 +- .../Adapter/Aggregation/AggregationResolver.php | 2 +- .../Aggregation/AggregationResolverInterface.php | 2 +- .../Framework/Search/Adapter/Mysql/Adapter.php | 2 +- .../Search/Adapter/Mysql/Aggregation/Builder.php | 2 +- .../Mysql/Aggregation/Builder/BucketInterface.php | 2 +- .../Mysql/Aggregation/Builder/Container.php | 2 +- .../Adapter/Mysql/Aggregation/Builder/Dynamic.php | 2 +- .../Adapter/Mysql/Aggregation/Builder/Metrics.php | 2 +- .../Adapter/Mysql/Aggregation/Builder/Range.php | 2 +- .../Adapter/Mysql/Aggregation/Builder/Term.php | 2 +- .../Mysql/Aggregation/DataProviderContainer.php | 2 +- .../Mysql/Aggregation/DataProviderInterface.php | 2 +- .../Search/Adapter/Mysql/Aggregation/Interval.php | 2 +- .../Search/Adapter/Mysql/AggregationFactory.php | 2 +- .../Search/Adapter/Mysql/ConditionManager.php | 2 +- .../Search/Adapter/Mysql/DocumentFactory.php | 2 +- .../Framework/Search/Adapter/Mysql/Field/Field.php | 2 +- .../Search/Adapter/Mysql/Field/FieldFactory.php | 2 +- .../Search/Adapter/Mysql/Field/FieldInterface.php | 2 +- .../Search/Adapter/Mysql/Field/Resolver.php | 2 +- .../Adapter/Mysql/Field/ResolverInterface.php | 2 +- .../Search/Adapter/Mysql/Filter/Builder.php | 2 +- .../Mysql/Filter/Builder/FilterInterface.php | 2 +- .../Search/Adapter/Mysql/Filter/Builder/Range.php | 2 +- .../Search/Adapter/Mysql/Filter/Builder/Term.php | 2 +- .../Adapter/Mysql/Filter/Builder/Wildcard.php | 2 +- .../Adapter/Mysql/Filter/BuilderInterface.php | 2 +- .../Search/Adapter/Mysql/Filter/Preprocessor.php | 2 +- .../Adapter/Mysql/Filter/PreprocessorInterface.php | 2 +- .../Search/Adapter/Mysql/IndexBuilderInterface.php | 2 +- .../Framework/Search/Adapter/Mysql/Mapper.php | 2 +- .../Search/Adapter/Mysql/Query/Builder/Match.php | 2 +- .../Adapter/Mysql/Query/Builder/QueryInterface.php | 2 +- .../Search/Adapter/Mysql/Query/MatchContainer.php | 2 +- .../Adapter/Mysql/Query/MatchContainerFactory.php | 2 +- .../Search/Adapter/Mysql/Query/QueryContainer.php | 2 +- .../Adapter/Mysql/Query/QueryContainerFactory.php | 2 +- .../Search/Adapter/Mysql/ResponseFactory.php | 2 +- .../Search/Adapter/Mysql/ScoreBuilder.php | 2 +- .../Search/Adapter/Mysql/ScoreBuilderFactory.php | 2 +- .../Search/Adapter/Mysql/TemporaryStorage.php | 2 +- .../Adapter/Mysql/TemporaryStorageFactory.php | 2 +- .../Framework/Search/Adapter/OptionsInterface.php | 2 +- .../Adapter/Preprocessor/PreprocessorInterface.php | 2 +- .../Magento/Framework/Search/AdapterInterface.php | 2 +- .../Magento/Framework/Search/Dynamic/Algorithm.php | 2 +- .../Dynamic/Algorithm/AlgorithmInterface.php | 2 +- .../Framework/Search/Dynamic/Algorithm/Auto.php | 2 +- .../Search/Dynamic/Algorithm/Improved.php | 2 +- .../Framework/Search/Dynamic/Algorithm/Manual.php | 2 +- .../Search/Dynamic/Algorithm/Repository.php | 2 +- .../Search/Dynamic/DataProviderFactory.php | 2 +- .../Search/Dynamic/DataProviderInterface.php | 2 +- .../Framework/Search/Dynamic/EntityStorage.php | 2 +- .../Search/Dynamic/EntityStorageFactory.php | 2 +- .../Framework/Search/Dynamic/IntervalFactory.php | 2 +- .../Framework/Search/Dynamic/IntervalInterface.php | 2 +- .../Magento/Framework/Search/EntityMetadata.php | 2 +- lib/internal/Magento/Framework/Search/Request.php | 2 +- .../Search/Request/Aggregation/DynamicBucket.php | 2 +- .../Search/Request/Aggregation/Metric.php | 2 +- .../Framework/Search/Request/Aggregation/Range.php | 2 +- .../Search/Request/Aggregation/RangeBucket.php | 2 +- .../Search/Request/Aggregation/Status.php | 2 +- .../Search/Request/Aggregation/StatusInterface.php | 2 +- .../Search/Request/Aggregation/TermBucket.php | 2 +- .../Magento/Framework/Search/Request/Binder.php | 2 +- .../Framework/Search/Request/BucketInterface.php | 2 +- .../Magento/Framework/Search/Request/Builder.php | 2 +- .../Magento/Framework/Search/Request/Cleaner.php | 2 +- .../Magento/Framework/Search/Request/Config.php | 2 +- .../Framework/Search/Request/Config/Converter.php | 2 +- .../Search/Request/Config/FilesystemReader.php | 2 +- .../Search/Request/Config/SchemaLocator.php | 2 +- .../Magento/Framework/Search/Request/Dimension.php | 2 +- .../Search/Request/EmptyRequestDataException.php | 2 +- .../Search/Request/Filter/BoolExpression.php | 2 +- .../Framework/Search/Request/Filter/Range.php | 2 +- .../Framework/Search/Request/Filter/Term.php | 2 +- .../Framework/Search/Request/Filter/Wildcard.php | 2 +- .../Framework/Search/Request/FilterInterface.php | 2 +- .../Search/Request/IndexScopeResolverInterface.php | 2 +- .../Magento/Framework/Search/Request/Mapper.php | 2 +- .../Request/NonExistingRequestNameException.php | 2 +- .../Search/Request/Query/BoolExpression.php | 2 +- .../Framework/Search/Request/Query/Filter.php | 2 +- .../Framework/Search/Request/Query/Match.php | 2 +- .../Framework/Search/Request/QueryInterface.php | 2 +- .../Magento/Framework/Search/RequestInterface.php | 2 +- .../Framework/Search/Response/Aggregation.php | 2 +- .../Search/Response/Aggregation/Value.php | 2 +- .../Magento/Framework/Search/Response/Bucket.php | 2 +- .../Framework/Search/Response/QueryResponse.php | 2 +- .../Magento/Framework/Search/ResponseInterface.php | 2 +- .../Search/SearchEngine/Config/Converter.php | 2 +- .../Search/SearchEngine/Config/Reader.php | 2 +- .../Search/SearchEngine/Config/SchemaLocator.php | 2 +- .../Search/SearchEngine/ConfigInterface.php | 2 +- .../Framework/Search/SearchEngineInterface.php | 2 +- .../Framework/Search/SearchResponseBuilder.php | 2 +- .../Aggregation/AggregationResolverTest.php | 2 +- .../Search/Test/Unit/Adapter/Mysql/AdapterTest.php | 2 +- .../Mysql/Aggregation/Builder/ContainerTest.php | 2 +- .../Mysql/Aggregation/Builder/MetricsTest.php | 2 +- .../Mysql/Aggregation/Builder/RangeTest.php | 2 +- .../Adapter/Mysql/Aggregation/Builder/TermTest.php | 2 +- .../Unit/Adapter/Mysql/Aggregation/BuilderTest.php | 2 +- .../Aggregation/DataProviderContainerTest.php | 2 +- .../Unit/Adapter/Mysql/ConditionManagerTest.php | 2 +- .../Adapter/Mysql/Filter/Builder/RangeTest.php | 2 +- .../Unit/Adapter/Mysql/Filter/Builder/TermTest.php | 2 +- .../Adapter/Mysql/Filter/Builder/WildcardTest.php | 2 +- .../Test/Unit/Adapter/Mysql/Filter/BuilderTest.php | 2 +- .../Search/Test/Unit/Adapter/Mysql/MapperTest.php | 2 +- .../Unit/Adapter/Mysql/Query/Builder/MatchTest.php | 2 +- .../Adapter/Mysql/Query/QueryContainerTest.php | 2 +- .../Unit/Adapter/Mysql/ResponseFactoryTest.php | 2 +- .../Test/Unit/Adapter/Mysql/ScoreBuilderTest.php | 2 +- .../Unit/Adapter/Mysql/TemporaryStorageTest.php | 2 +- .../Test/Unit/Dynamic/IntervalFactoryTest.php | 2 +- .../Test/Unit/Request/Aggregation/StatusTest.php | 2 +- .../Search/Test/Unit/Request/BinderTest.php | 2 +- .../Search/Test/Unit/Request/BuilderTest.php | 2 +- .../Search/Test/Unit/Request/CleanerTest.php | 2 +- .../Test/Unit/Request/Config/SchemaLocatorTest.php | 2 +- .../Search/Test/Unit/Request/MapperTest.php | 2 +- .../Search/Test/Unit/Response/AggregationTest.php | 2 +- .../Test/Unit/Response/QueryResponseTest.php | 2 +- .../Unit/SearchEngine/Config/ConverterTest.php | 2 +- .../Unit/SearchEngine/Config/SchemaLocatorTest.php | 2 +- .../Search/Test/Unit/SearchResponseBuilderTest.php | 2 +- .../Framework/Search/Test/Unit/SearchTest.php | 2 +- .../Search/Test/Unit/_files/search_engine.xml | 2 +- .../Magento/Framework/Search/etc/requests.xsd | 2 +- .../Magento/Framework/Search/etc/search_engine.xsd | 2 +- .../Framework/Search/etc/search_request.xsd | 2 +- .../Framework/Search/etc/search_request_merged.xsd | 2 +- lib/internal/Magento/Framework/Session/Config.php | 2 +- .../Framework/Session/Config/ConfigInterface.php | 2 +- .../Config/Validator/CookieDomainValidator.php | 2 +- .../Config/Validator/CookieLifetimeValidator.php | 2 +- .../Config/Validator/CookiePathValidator.php | 2 +- lib/internal/Magento/Framework/Session/Generic.php | 2 +- .../Magento/Framework/Session/SaveHandler.php | 2 +- .../Framework/Session/SaveHandler/DbTable.php | 2 +- .../Framework/Session/SaveHandler/Native.php | 2 +- .../Framework/Session/SaveHandler/Redis.php | 2 +- .../Framework/Session/SaveHandler/Redis/Config.php | 2 +- .../Framework/Session/SaveHandler/Redis/Logger.php | 2 +- .../Framework/Session/SaveHandlerFactory.php | 2 +- .../Framework/Session/SaveHandlerInterface.php | 2 +- .../Magento/Framework/Session/SessionManager.php | 2 +- .../Framework/Session/SessionManagerInterface.php | 2 +- .../Magento/Framework/Session/SidResolver.php | 2 +- .../Framework/Session/SidResolverInterface.php | 2 +- lib/internal/Magento/Framework/Session/Storage.php | 2 +- .../Magento/Framework/Session/StorageInterface.php | 2 +- .../Framework/Session/Test/Unit/ConfigTest.php | 2 +- .../Session/Test/Unit/SaveHandler/DbTableTest.php | 2 +- .../Test/Unit/SaveHandler/Redis/ConfigTest.php | 2 +- .../Test/Unit/SaveHandler/Redis/LoggerTest.php | 2 +- .../Session/Test/Unit/SaveHandlerFactoryTest.php | 2 +- .../Session/Test/Unit/SessionManagerTest.php | 2 +- .../Session/Test/Unit/_files/mock_ini_set.php | 2 +- .../Unit/_files/mock_session_regenerate_id.php | 2 +- .../Magento/Framework/Session/Validator.php | 2 +- .../Framework/Session/ValidatorInterface.php | 2 +- .../Framework/Setup/BackendFrontnameGenerator.php | 2 +- .../Magento/Framework/Setup/BackupRollback.php | 2 +- .../Framework/Setup/BackupRollbackFactory.php | 2 +- .../Framework/Setup/ConfigOptionsListInterface.php | 2 +- .../Magento/Framework/Setup/ConsoleLogger.php | 2 +- .../Magento/Framework/Setup/DataCacheInterface.php | 2 +- .../Magento/Framework/Setup/ExternalFKSetup.php | 2 +- .../Magento/Framework/Setup/FilePermissions.php | 2 +- .../Framework/Setup/InstallDataInterface.php | 2 +- .../Framework/Setup/InstallSchemaInterface.php | 2 +- lib/internal/Magento/Framework/Setup/Lists.php | 2 +- .../Magento/Framework/Setup/LoggerInterface.php | 2 +- .../Framework/Setup/ModuleContextInterface.php | 2 +- .../Framework/Setup/ModuleDataSetupInterface.php | 2 +- .../Setup/Option/AbstractConfigOption.php | 2 +- .../Framework/Setup/Option/FlagConfigOption.php | 2 +- .../Setup/Option/MultiSelectConfigOption.php | 2 +- .../Framework/Setup/Option/SelectConfigOption.php | 2 +- .../Framework/Setup/Option/TextConfigOption.php | 2 +- .../Magento/Framework/Setup/SampleData/Context.php | 2 +- .../Framework/Setup/SampleData/Executor.php | 2 +- .../Framework/Setup/SampleData/FixtureManager.php | 2 +- .../Setup/SampleData/InstallerInterface.php | 2 +- .../Magento/Framework/Setup/SampleData/State.php | 2 +- .../Framework/Setup/SampleData/StateInterface.php | 2 +- .../Framework/Setup/SchemaSetupInterface.php | 2 +- .../Magento/Framework/Setup/SetupInterface.php | 2 +- .../Test/Unit/BackendFrontnameGeneratorTest.php | 2 +- .../Setup/Test/Unit/BackupRollbackFactoryTest.php | 2 +- .../Setup/Test/Unit/BackupRollbackTest.php | 2 +- .../Setup/Test/Unit/ConsoleLoggerTest.php | 2 +- .../Setup/Test/Unit/FilePermissionsTest.php | 2 +- .../Framework/Setup/Test/Unit/ListsTest.php | 2 +- .../Test/Unit/Option/FlagConfigOptionTest.php | 2 +- .../Unit/Option/MultiSelectConfigOptionTest.php | 2 +- .../Test/Unit/Option/SelectConfigOptionTest.php | 2 +- .../Test/Unit/Option/TextConfigOptionTest.php | 2 +- .../Setup/Test/Unit/SampleData/StateTest.php | 2 +- .../Magento/Framework/Setup/UninstallInterface.php | 2 +- .../Framework/Setup/UpgradeDataInterface.php | 2 +- .../Framework/Setup/UpgradeSchemaInterface.php | 2 +- lib/internal/Magento/Framework/Shell.php | 2 +- .../Magento/Framework/Shell/CommandRenderer.php | 2 +- .../Framework/Shell/CommandRendererBackground.php | 2 +- .../Framework/Shell/CommandRendererInterface.php | 2 +- .../Magento/Framework/Shell/ComplexParameter.php | 2 +- lib/internal/Magento/Framework/Shell/Driver.php | 2 +- lib/internal/Magento/Framework/Shell/Response.php | 2 +- .../Test/Unit/CommandRendererBackgroundTest.php | 2 +- .../Shell/Test/Unit/CommandRendererTest.php | 2 +- .../Shell/Test/Unit/ComplexParameterTest.php | 2 +- lib/internal/Magento/Framework/ShellInterface.php | 2 +- .../Magento/Framework/Simplexml/Config.php | 2 +- .../Simplexml/Config/Cache/AbstractCache.php | 2 +- .../Framework/Simplexml/Config/Cache/File.php | 2 +- .../Magento/Framework/Simplexml/Element.php | 2 +- .../Test/Unit/Config/Cache/AbstractCacheTest.php | 2 +- .../Framework/Simplexml/Test/Unit/ConfigTest.php | 2 +- .../Framework/Simplexml/Test/Unit/ElementTest.php | 2 +- .../Framework/Simplexml/Test/Unit/_files/data.xml | 2 +- .../Simplexml/Test/Unit/_files/extend_data.xml | 2 +- .../Simplexml/Test/Unit/_files/mixed_data.xml | 2 +- .../Magento/Framework/Stdlib/ArrayManager.php | 2 +- .../Magento/Framework/Stdlib/ArrayUtils.php | 2 +- .../Magento/Framework/Stdlib/BooleanUtils.php | 2 +- .../Framework/Stdlib/Cookie/CookieMetadata.php | 2 +- .../Stdlib/Cookie/CookieMetadataFactory.php | 2 +- .../Stdlib/Cookie/CookieReaderInterface.php | 2 +- .../Framework/Stdlib/Cookie/CookieScope.php | 2 +- .../Stdlib/Cookie/CookieScopeInterface.php | 2 +- .../Cookie/CookieSizeLimitReachedException.php | 2 +- .../Stdlib/Cookie/FailureToSendException.php | 2 +- .../Framework/Stdlib/Cookie/PhpCookieManager.php | 2 +- .../Framework/Stdlib/Cookie/PhpCookieReader.php | 2 +- .../Stdlib/Cookie/PublicCookieMetadata.php | 2 +- .../Stdlib/Cookie/SensitiveCookieMetadata.php | 2 +- .../Framework/Stdlib/CookieManagerInterface.php | 2 +- lib/internal/Magento/Framework/Stdlib/DateTime.php | 2 +- .../Magento/Framework/Stdlib/DateTime/DateTime.php | 2 +- .../Stdlib/DateTime/DateTimeFormatter.php | 2 +- .../Stdlib/DateTime/DateTimeFormatterInterface.php | 2 +- .../Framework/Stdlib/DateTime/Filter/Date.php | 2 +- .../Framework/Stdlib/DateTime/Filter/DateTime.php | 2 +- .../Magento/Framework/Stdlib/DateTime/Timezone.php | 2 +- .../Stdlib/DateTime/Timezone/Validator.php | 2 +- .../Stdlib/DateTime/TimezoneInterface.php | 2 +- .../Magento/Framework/Stdlib/StringUtils.php | 2 +- .../Stdlib/Test/Unit/ArrayManagerTest.php | 2 +- .../Framework/Stdlib/Test/Unit/ArrayUtilsTest.php | 2 +- .../Stdlib/Test/Unit/BooleanUtilsTest.php | 2 +- .../Stdlib/Test/Unit/Cookie/CookieScopeTest.php | 2 +- .../Test/Unit/Cookie/PhpCookieManagerTest.php | 2 +- .../Test/Unit/Cookie/PublicCookieMetadataTest.php | 2 +- .../Unit/Cookie/SensitiveCookieMetadataTest.php | 2 +- .../Test/Unit/Cookie/_files/setcookie_mock.php | 2 +- .../Test/Unit/DateTime/DateTimeFormatterTest.php | 2 +- .../Stdlib/Test/Unit/DateTime/DateTimeTest.php | 2 +- .../Stdlib/Test/Unit/DateTime/Filter/DateTest.php | 2 +- .../Test/Unit/DateTime/Filter/DateTimeTest.php | 2 +- .../Test/Unit/DateTime/Timezone/ValidatorTest.php | 2 +- .../Stdlib/Test/Unit/DateTime/TimezoneTest.php | 2 +- .../Framework/Stdlib/Test/Unit/StringUtilsTest.php | 2 +- .../Stdlib/Test/Unit/_files/gmdate_mock.php | 2 +- lib/internal/Magento/Framework/System/Dirs.php | 2 +- lib/internal/Magento/Framework/System/Ftp.php | 2 +- .../Test/Unit/App/ResourceConnectionTest.php | 2 +- .../Framework/Test/Unit/App/Scope/SourceTest.php | 2 +- .../Magento/Framework/Test/Unit/ArchiveTest.php | 2 +- .../Framework/Test/Unit/AuthorizationTest.php | 2 +- .../Magento/Framework/Test/Unit/CurrencyTest.php | 2 +- .../Test/Unit/DB/Query/BatchIteratorTest.php | 2 +- .../Test/Unit/DB/Query/BatchRangeIteratorTest.php | 2 +- .../Framework/Test/Unit/DB/Query/GeneratorTest.php | 2 +- .../Magento/Framework/Test/Unit/EscaperTest.php | 2 +- .../Framework/Test/Unit/EventFactoryTest.php | 2 +- .../Magento/Framework/Test/Unit/EventTest.php | 2 +- .../Magento/Framework/Test/Unit/FilesystemTest.php | 2 +- .../Magento/Framework/Test/Unit/FlagTest.php | 2 +- .../Test/Unit/Message/PhraseFactoryTest.php | 2 +- .../Magento/Framework/Test/Unit/ObjectTest.php | 2 +- .../Magento/Framework/Test/Unit/PhraseTest.php | 2 +- .../Magento/Framework/Test/Unit/ProfilerTest.php | 2 +- .../Magento/Framework/Test/Unit/RegistryTest.php | 2 +- .../Magento/Framework/Test/Unit/ShellTest.php | 2 +- .../Test/Unit/Translate/Js/ConfigTest.php | 2 +- .../Magento/Framework/Test/Unit/TranslateTest.php | 2 +- .../Magento/Framework/Test/Unit/UrlTest.php | 2 +- .../Magento/Framework/Test/Unit/UtilTest.php | 2 +- .../Framework/Test/Unit/ValidatorFactoryTest.php | 2 +- .../Magento/Framework/Test/Unit/ValidatorTest.php | 2 +- .../Unit/View/Design/Theme/Label/OptionsTest.php | 2 +- .../ExtensionAttributesGeneratorTest.php | 2 +- .../ExtensionAttributesInterfaceGeneratorTest.php | 2 +- .../Test/Unit/Autoloader/FactoryGeneratorTest.php | 2 +- .../Test/Unit/Unit/Helper/ProxyTestingTest.php | 2 +- .../Unit/Unit/Matcher/MethodInvokedAtIndexTest.php | 2 +- .../Test/Unit/Unit/Utility/XsdValidatorTest.php | 2 +- .../Test/Unit/Unit/Utility/_files/invalid.xml | 2 +- .../Test/Unit/Unit/Utility/_files/valid.xml | 2 +- .../Test/Unit/Unit/Utility/_files/valid.xsd | 2 +- .../TestFramework/Unit/AbstractFactoryTestCase.php | 2 +- .../Autoloader/ExtensionAttributesGenerator.php | 2 +- .../ExtensionAttributesInterfaceGenerator.php | 2 +- .../Unit/Autoloader/FactoryGenerator.php | 2 +- .../Unit/Autoloader/GeneratedClassesAutoloader.php | 2 +- .../Unit/Autoloader/GeneratorInterface.php | 2 +- .../Framework/TestFramework/Unit/BaseTestCase.php | 2 +- .../TestFramework/Unit/Block/Adminhtml.php | 2 +- .../TestFramework/Unit/Helper/ObjectManager.php | 2 +- .../TestFramework/Unit/Helper/ProxyTesting.php | 2 +- .../Unit/Helper/SelectRendererTrait.php | 2 +- .../TestFramework/Unit/Listener/GarbageCleanup.php | 2 +- .../Unit/Listener/ReplaceObjectManager.php | 2 +- .../Unit/Matcher/MethodInvokedAtIndex.php | 2 +- .../Framework/TestFramework/Unit/Module/Config.php | 2 +- .../TestFramework/Unit/Utility/XsdValidator.php | 2 +- lib/internal/Magento/Framework/Translate.php | 2 +- .../Framework/Translate/AbstractAdapter.php | 2 +- .../Magento/Framework/Translate/Adapter.php | 2 +- .../Framework/Translate/AdapterInterface.php | 2 +- .../Magento/Framework/Translate/Inline.php | 2 +- .../Framework/Translate/Inline/ConfigInterface.php | 2 +- .../Framework/Translate/Inline/ParserFactory.php | 2 +- .../Framework/Translate/Inline/ParserInterface.php | 2 +- .../Framework/Translate/Inline/Provider.php | 2 +- .../Translate/Inline/ProviderInterface.php | 2 +- .../Magento/Framework/Translate/Inline/Proxy.php | 2 +- .../Magento/Framework/Translate/Inline/State.php | 2 +- .../Framework/Translate/Inline/StateInterface.php | 2 +- .../Framework/Translate/InlineInterface.php | 2 +- .../Magento/Framework/Translate/Js/Config.php | 2 +- .../Framework/Translate/Locale/Resolver/Plugin.php | 2 +- .../Framework/Translate/ResourceInterface.php | 2 +- .../Translate/Test/Unit/AdapterAbstractTest.php | 2 +- .../Framework/Translate/Test/Unit/AdapterTest.php | 2 +- .../Translate/Test/Unit/Inline/ProxyTest.php | 2 +- .../Translate/Test/Unit/Inline/StateTest.php | 2 +- .../Framework/Translate/Test/Unit/InlineTest.php | 2 +- .../Magento/Framework/TranslateInterface.php | 2 +- .../Framework/Unserialize/SecureUnserializer.php | 2 +- .../Test/Unit/SecureUnserializerTest.php | 2 +- .../Unserialize/Test/Unit/UnserializeTest.php | 2 +- .../Magento/Framework/Unserialize/Unserialize.php | 2 +- lib/internal/Magento/Framework/Url.php | 2 +- lib/internal/Magento/Framework/Url/Decoder.php | 2 +- .../Magento/Framework/Url/DecoderInterface.php | 2 +- lib/internal/Magento/Framework/Url/Encoder.php | 2 +- .../Magento/Framework/Url/EncoderInterface.php | 2 +- lib/internal/Magento/Framework/Url/Helper/Data.php | 2 +- lib/internal/Magento/Framework/Url/HostChecker.php | 2 +- .../Magento/Framework/Url/ModifierComposite.php | 2 +- .../Magento/Framework/Url/ModifierInterface.php | 2 +- .../Magento/Framework/Url/ParamEncoder.php | 2 +- .../Magento/Framework/Url/QueryParamsResolver.php | 2 +- .../Framework/Url/QueryParamsResolverInterface.php | 2 +- .../Url/RouteParamsPreprocessorComposite.php | 2 +- .../Url/RouteParamsPreprocessorInterface.php | 2 +- .../Magento/Framework/Url/RouteParamsResolver.php | 2 +- .../Framework/Url/RouteParamsResolverFactory.php | 2 +- .../Framework/Url/RouteParamsResolverInterface.php | 2 +- .../Magento/Framework/Url/ScopeInterface.php | 2 +- .../Magento/Framework/Url/ScopeResolver.php | 2 +- .../Framework/Url/ScopeResolverInterface.php | 2 +- .../Magento/Framework/Url/SecurityInfo.php | 2 +- .../Framework/Url/SecurityInfoInterface.php | 2 +- .../Framework/Url/Test/Unit/DecoderTest.php | 2 +- .../Framework/Url/Test/Unit/Helper/DataTest.php | 2 +- .../Url/Test/Unit/QueryParamsResolverTest.php | 2 +- .../Test/Unit/RouteParamsResolverFactoryTest.php | 2 +- .../Framework/Url/Test/Unit/ScopeResolverTest.php | 2 +- .../Framework/Url/Test/Unit/SecurityInfoTest.php | 2 +- .../Framework/Url/Test/Unit/ValidatorTest.php | 2 +- lib/internal/Magento/Framework/Url/Validator.php | 2 +- lib/internal/Magento/Framework/UrlFactory.php | 2 +- lib/internal/Magento/Framework/UrlInterface.php | 2 +- lib/internal/Magento/Framework/Util.php | 2 +- lib/internal/Magento/Framework/Validator.php | 2 +- .../Framework/Validator/AbstractValidator.php | 2 +- .../Framework/Validator/AllowedProtocols.php | 2 +- lib/internal/Magento/Framework/Validator/Alnum.php | 2 +- .../Magento/Framework/Validator/Builder.php | 2 +- .../Magento/Framework/Validator/Config.php | 2 +- .../Magento/Framework/Validator/Constraint.php | 2 +- .../Framework/Validator/Constraint/Option.php | 2 +- .../Validator/Constraint/Option/Callback.php | 2 +- .../Validator/Constraint/OptionInterface.php | 2 +- .../Framework/Validator/Constraint/Property.php | 2 +- .../Framework/Validator/ConstraintFactory.php | 2 +- .../Magento/Framework/Validator/Currency.php | 2 +- .../Magento/Framework/Validator/DataObject.php | 2 +- .../Magento/Framework/Validator/EmailAddress.php | 2 +- .../Framework/Validator/Entity/Properties.php | 2 +- .../Magento/Framework/Validator/Exception.php | 2 +- .../Magento/Framework/Validator/Factory.php | 2 +- .../Magento/Framework/Validator/File/Extension.php | 2 +- .../Magento/Framework/Validator/File/ImageSize.php | 2 +- .../Magento/Framework/Validator/File/IsImage.php | 2 +- .../Magento/Framework/Validator/File/Size.php | 2 +- .../Magento/Framework/Validator/FloatUtils.php | 2 +- .../Magento/Framework/Validator/IntUtils.php | 2 +- lib/internal/Magento/Framework/Validator/Ip.php | 2 +- .../Magento/Framework/Validator/Locale.php | 2 +- .../Magento/Framework/Validator/NotEmpty.php | 2 +- lib/internal/Magento/Framework/Validator/Regex.php | 2 +- .../Magento/Framework/Validator/StringLength.php | 2 +- .../Framework/Validator/Test/Unit/BuilderTest.php | 2 +- .../Framework/Validator/Test/Unit/ConfigTest.php | 2 +- .../Test/Unit/Constraint/Option/CallbackTest.php | 2 +- .../Validator/Test/Unit/Constraint/OptionTest.php | 2 +- .../Test/Unit/Constraint/PropertyTest.php | 2 +- .../Validator/Test/Unit/ConstraintTest.php | 2 +- .../Framework/Validator/Test/Unit/CurrencyTest.php | 2 +- .../Validator/Test/Unit/Entity/PropertiesTest.php | 2 +- .../Validator/Test/Unit/ExceptionTest.php | 2 +- .../Framework/Validator/Test/Unit/FactoryTest.php | 2 +- .../Framework/Validator/Test/Unit/LocaleTest.php | 2 +- .../Framework/Validator/Test/Unit/ObjectTest.php | 2 +- .../Validator/Test/Unit/StringLengthTest.php | 2 +- .../Framework/Validator/Test/Unit/Test/Alnum.php | 2 +- .../Validator/Test/Unit/Test/Callback.php | 2 +- .../Framework/Validator/Test/Unit/Test/IsInt.php | 2 +- .../Framework/Validator/Test/Unit/Test/IsTrue.php | 2 +- .../Validator/Test/Unit/Test/NotEmpty.php | 2 +- .../Validator/Test/Unit/Test/StringLength.php | 2 +- .../Framework/Validator/Test/Unit/TimezoneTest.php | 2 +- .../Validator/Test/Unit/ValidatorAbstractTest.php | 2 +- .../validation/negative/invalid_builder_class.xml | 2 +- .../negative/invalid_builder_instance.xml | 2 +- .../negative/invalid_child_for_option.xml | 2 +- .../validation/negative/invalid_constraint.xml | 2 +- .../negative/invalid_content_for_callback.xml | 2 +- .../negative/invalid_entity_callback.xml | 2 +- .../_files/validation/negative/invalid_method.xml | 2 +- .../negative/invalid_method_callback.xml | 2 +- .../negative/multiple_callback_in_argument.xml | 2 +- .../negative/no_class_for_constraint.xml | 2 +- .../_files/validation/negative/no_constraint.xml | 2 +- .../validation/negative/no_name_for_entity.xml | 2 +- .../validation/negative/no_name_for_group.xml | 2 +- .../validation/negative/no_name_for_rule.xml | 2 +- .../validation/negative/no_rule_for_reference.xml | 2 +- .../_files/validation/negative/not_unique_use.xml | 2 +- .../validation/positive/builder/validation.xml | 2 +- .../validation/positive/module_a/validation.xml | 2 +- .../validation/positive/module_b/validation.xml | 2 +- .../Magento/Framework/Validator/Timezone.php | 2 +- .../Framework/Validator/UniversalFactory.php | 2 +- .../Framework/Validator/ValidatorInterface.php | 2 +- .../Magento/Framework/Validator/etc/validation.xsd | 2 +- .../Magento/Framework/ValidatorFactory.php | 2 +- .../Framework/View/Asset/AssetInterface.php | 2 +- .../Magento/Framework/View/Asset/Bundle.php | 2 +- .../Magento/Framework/View/Asset/Bundle/Config.php | 2 +- .../View/Asset/Bundle/ConfigInterface.php | 2 +- .../Framework/View/Asset/Bundle/Manager.php | 2 +- .../Magento/Framework/View/Asset/Collection.php | 2 +- .../Magento/Framework/View/Asset/Config.php | 2 +- .../Framework/View/Asset/ConfigInterface.php | 2 +- .../View/Asset/ContentProcessorException.php | 2 +- .../View/Asset/ContentProcessorInterface.php | 2 +- .../Framework/View/Asset/ContextInterface.php | 2 +- lib/internal/Magento/Framework/View/Asset/File.php | 2 +- .../Magento/Framework/View/Asset/File/Context.php | 2 +- .../Framework/View/Asset/File/ContextFactory.php | 2 +- .../Framework/View/Asset/File/FallbackContext.php | 2 +- .../View/Asset/File/FallbackContextFactory.php | 2 +- .../View/Asset/File/NotFoundException.php | 2 +- .../Magento/Framework/View/Asset/FileFactory.php | 2 +- .../Framework/View/Asset/GroupedCollection.php | 2 +- .../Framework/View/Asset/LocalInterface.php | 2 +- .../Magento/Framework/View/Asset/LockerProcess.php | 2 +- .../View/Asset/LockerProcessInterface.php | 2 +- .../Magento/Framework/View/Asset/MergeService.php | 2 +- .../View/Asset/MergeStrategy/Checksum.php | 2 +- .../Framework/View/Asset/MergeStrategy/Direct.php | 2 +- .../View/Asset/MergeStrategy/FileExists.php | 2 +- .../View/Asset/MergeStrategyInterface.php | 2 +- .../Framework/View/Asset/MergeableInterface.php | 2 +- .../Magento/Framework/View/Asset/Merged.php | 2 +- .../Magento/Framework/View/Asset/Minification.php | 2 +- .../View/Asset/NotationResolver/Module.php | 2 +- .../View/Asset/NotationResolver/Variable.php | 2 +- .../View/Asset/PreProcessor/AlternativeSource.php | 2 +- .../AlternativeSource/AssetBuilder.php | 2 +- .../PreProcessor/AlternativeSourceInterface.php | 2 +- .../Framework/View/Asset/PreProcessor/Chain.php | 2 +- .../View/Asset/PreProcessor/ChainFactory.php | 2 +- .../Asset/PreProcessor/ChainFactoryInterface.php | 2 +- .../PreProcessor/FilenameResolverInterface.php | 2 +- .../View/Asset/PreProcessor/Helper/Sort.php | 2 +- .../Asset/PreProcessor/Helper/SortInterface.php | 2 +- .../PreProcessor/MinificationFilenameResolver.php | 2 +- .../Framework/View/Asset/PreProcessor/Minify.php | 2 +- .../View/Asset/PreProcessor/ModuleNotation.php | 2 +- .../View/Asset/PreProcessor/Passthrough.php | 2 +- .../Framework/View/Asset/PreProcessor/Pool.php | 2 +- .../View/Asset/PreProcessor/VariableNotation.php | 2 +- .../Framework/View/Asset/PreProcessorInterface.php | 2 +- .../Magento/Framework/View/Asset/PropertyGroup.php | 2 +- .../Framework/View/Asset/PropertyGroupFactory.php | 2 +- .../Magento/Framework/View/Asset/Remote.php | 2 +- .../Magento/Framework/View/Asset/RemoteFactory.php | 2 +- .../Magento/Framework/View/Asset/Repository.php | 2 +- .../Magento/Framework/View/Asset/Source.php | 2 +- .../View/Asset/SourceFileGeneratorInterface.php | 2 +- .../View/Asset/SourceFileGeneratorPool.php | 2 +- lib/internal/Magento/Framework/View/BlockPool.php | 2 +- lib/internal/Magento/Framework/View/Config.php | 2 +- .../Magento/Framework/View/ConfigInterface.php | 2 +- lib/internal/Magento/Framework/View/Context.php | 2 +- .../Magento/Framework/View/DataSourcePool.php | 2 +- .../View/Design/Fallback/Rule/Composite.php | 2 +- .../View/Design/Fallback/Rule/ModularSwitch.php | 2 +- .../Design/Fallback/Rule/ModularSwitchFactory.php | 2 +- .../Framework/View/Design/Fallback/Rule/Module.php | 2 +- .../View/Design/Fallback/Rule/ModuleFactory.php | 2 +- .../View/Design/Fallback/Rule/RuleInterface.php | 2 +- .../Framework/View/Design/Fallback/Rule/Simple.php | 2 +- .../View/Design/Fallback/Rule/SimpleFactory.php | 2 +- .../Framework/View/Design/Fallback/Rule/Theme.php | 2 +- .../View/Design/Fallback/Rule/ThemeFactory.php | 2 +- .../Framework/View/Design/Fallback/RulePool.php | 2 +- .../FileResolution/Fallback/EmailTemplateFile.php | 2 +- .../View/Design/FileResolution/Fallback/File.php | 2 +- .../Design/FileResolution/Fallback/LocaleFile.php | 2 +- .../Fallback/Resolver/Alternative.php | 2 +- .../Fallback/Resolver/Minification.php | 2 +- .../FileResolution/Fallback/Resolver/Simple.php | 2 +- .../FileResolution/Fallback/ResolverInterface.php | 2 +- .../Design/FileResolution/Fallback/StaticFile.php | 2 +- .../FileResolution/Fallback/TemplateFile.php | 2 +- .../Framework/View/Design/Theme/Customization.php | 2 +- .../Design/Theme/Customization/AbstractFile.php | 2 +- .../Design/Theme/Customization/ConfigInterface.php | 2 +- .../View/Design/Theme/Customization/File/Css.php | 2 +- .../View/Design/Theme/Customization/File/Js.php | 2 +- .../Theme/Customization/FileAssetInterface.php | 2 +- .../Design/Theme/Customization/FileInterface.php | 2 +- .../Theme/Customization/FileServiceFactory.php | 2 +- .../View/Design/Theme/Customization/Path.php | 2 +- .../View/Design/Theme/CustomizationInterface.php | 2 +- .../Framework/View/Design/Theme/Domain/Factory.php | 2 +- .../View/Design/Theme/Domain/PhysicalInterface.php | 2 +- .../View/Design/Theme/Domain/StagingInterface.php | 2 +- .../View/Design/Theme/Domain/VirtualInterface.php | 2 +- .../View/Design/Theme/File/CollectionInterface.php | 2 +- .../Framework/View/Design/Theme/FileFactory.php | 2 +- .../Framework/View/Design/Theme/FileInterface.php | 2 +- .../View/Design/Theme/FileProviderInterface.php | 2 +- .../View/Design/Theme/FlyweightFactory.php | 2 +- .../Magento/Framework/View/Design/Theme/Image.php | 2 +- .../View/Design/Theme/Image/PathInterface.php | 2 +- .../Framework/View/Design/Theme/Image/Uploader.php | 2 +- .../Framework/View/Design/Theme/ImageFactory.php | 2 +- .../Magento/Framework/View/Design/Theme/Label.php | 2 +- .../View/Design/Theme/Label/ListInterface.php | 2 +- .../Framework/View/Design/Theme/Label/Options.php | 2 +- .../Framework/View/Design/Theme/LabelFactory.php | 2 +- .../Framework/View/Design/Theme/ListInterface.php | 2 +- .../View/Design/Theme/ResolverInterface.php | 2 +- .../Framework/View/Design/Theme/ThemePackage.php | 2 +- .../View/Design/Theme/ThemePackageFactory.php | 2 +- .../View/Design/Theme/ThemePackageList.php | 2 +- .../View/Design/Theme/ThemeProviderInterface.php | 2 +- .../Framework/View/Design/Theme/Validator.php | 2 +- .../Magento/Framework/View/Design/ThemeFactory.php | 2 +- .../Framework/View/Design/ThemeInterface.php | 2 +- .../Magento/Framework/View/DesignExceptions.php | 2 +- .../Magento/Framework/View/DesignInterface.php | 2 +- .../Magento/Framework/View/DesignLoader.php | 2 +- .../Framework/View/Element/AbstractBlock.php | 2 +- .../Framework/View/Element/BlockFactory.php | 2 +- .../Framework/View/Element/BlockInterface.php | 2 +- .../Magento/Framework/View/Element/Context.php | 2 +- .../View/Element/ExceptionHandlerBlock.php | 2 +- .../View/Element/ExceptionHandlerBlockFactory.php | 2 +- .../Magento/Framework/View/Element/FormKey.php | 2 +- .../Framework/View/Element/Html/Calendar.php | 2 +- .../Magento/Framework/View/Element/Html/Date.php | 2 +- .../Magento/Framework/View/Element/Html/Link.php | 2 +- .../Framework/View/Element/Html/Link/Current.php | 2 +- .../Magento/Framework/View/Element/Html/Links.php | 2 +- .../Magento/Framework/View/Element/Html/Select.php | 2 +- .../Framework/View/Element/Js/Components.php | 2 +- .../Magento/Framework/View/Element/Js/Cookie.php | 2 +- .../Element/Message/InterpretationMediator.php | 2 +- .../Element/Message/InterpretationStrategy.php | 2 +- .../Message/InterpretationStrategyInterface.php | 2 +- .../Element/Message/MessageConfigurationsPool.php | 2 +- .../Element/Message/Renderer/BlockRenderer.php | 2 +- .../Message/Renderer/BlockRenderer/Template.php | 2 +- .../Element/Message/Renderer/EscapeRenderer.php | 2 +- .../Element/Message/Renderer/PoolInterface.php | 2 +- .../Element/Message/Renderer/RendererInterface.php | 2 +- .../Element/Message/Renderer/RenderersPool.php | 2 +- .../Magento/Framework/View/Element/Messages.php | 2 +- .../Magento/Framework/View/Element/Redirect.php | 2 +- .../Framework/View/Element/RendererInterface.php | 2 +- .../Framework/View/Element/RendererList.php | 2 +- .../Magento/Framework/View/Element/Template.php | 2 +- .../Framework/View/Element/Template/Context.php | 2 +- .../View/Element/Template/File/Resolver.php | 2 +- .../View/Element/Template/File/Validator.php | 2 +- .../Magento/Framework/View/Element/Text.php | 2 +- .../Framework/View/Element/Text/ListText.php | 2 +- .../Framework/View/Element/Text/TextList/Item.php | 2 +- .../Framework/View/Element/Text/TextList/Link.php | 2 +- .../Argument/Interpreter/ConfigurableObject.php | 2 +- .../Element/UiComponent/ArrayObjectFactory.php | 2 +- .../Element/UiComponent/BlockWrapperInterface.php | 2 +- .../View/Element/UiComponent/Config/Converter.php | 2 +- .../View/Element/UiComponent/Config/DomMerger.php | 2 +- .../UiComponent/Config/DomMergerInterface.php | 2 +- .../FileCollector/AggregatedFileCollector.php | 2 +- .../AggregatedFileCollectorFactory.php | 2 +- .../UiComponent/Config/FileCollectorInterface.php | 2 +- .../UiComponent/Config/ManagerInterface.php | 2 +- .../Config/Provider/Component/Definition.php | 2 +- .../UiComponent/Config/Provider/Template.php | 2 +- .../View/Element/UiComponent/Config/Reader.php | 2 +- .../Element/UiComponent/Config/ReaderFactory.php | 2 +- .../UiComponent/Config/UiReaderInterface.php | 2 +- .../Element/UiComponent/ContainerInterface.php | 2 +- .../ContentType/AbstractContentType.php | 2 +- .../UiComponent/ContentType/ContentTypeFactory.php | 2 +- .../ContentType/ContentTypeInterface.php | 2 +- .../View/Element/UiComponent/ContentType/Html.php | 2 +- .../View/Element/UiComponent/ContentType/Json.php | 2 +- .../View/Element/UiComponent/ContentType/Xml.php | 2 +- .../Framework/View/Element/UiComponent/Context.php | 2 +- .../View/Element/UiComponent/ContextFactory.php | 2 +- .../View/Element/UiComponent/ContextInterface.php | 2 +- .../UiComponent/Control/ActionPoolFactory.php | 2 +- .../UiComponent/Control/ActionPoolInterface.php | 2 +- .../UiComponent/Control/ButtonProviderFactory.php | 2 +- .../Control/ButtonProviderInterface.php | 2 +- .../UiComponent/Control/ControlInterface.php | 2 +- .../Element/UiComponent/Control/DummyButton.php | 2 +- .../UiComponent/DataProvider/CollectionFactory.php | 2 +- .../UiComponent/DataProvider/DataProvider.php | 2 +- .../DataProvider/DataProviderInterface.php | 2 +- .../Element/UiComponent/DataProvider/Document.php | 2 +- .../DataProvider/FilterApplierInterface.php | 2 +- .../UiComponent/DataProvider/FilterPool.php | 2 +- .../UiComponent/DataProvider/FulltextFilter.php | 2 +- .../UiComponent/DataProvider/RegularFilter.php | 2 +- .../Element/UiComponent/DataProvider/Reporting.php | 2 +- .../UiComponent/DataProvider/SearchResult.php | 2 +- .../Element/UiComponent/DataSourceInterface.php | 2 +- .../View/Element/UiComponent/JsConfigInterface.php | 2 +- .../View/Element/UiComponent/LayoutInterface.php | 2 +- .../View/Element/UiComponent/ObserverInterface.php | 2 +- .../View/Element/UiComponent/PoolInterface.php | 2 +- .../View/Element/UiComponent/Processor.php | 2 +- .../View/Element/UiComponent/SubjectInterface.php | 2 +- .../Framework/View/Element/UiComponentFactory.php | 2 +- .../View/Element/UiComponentInterface.php | 2 +- lib/internal/Magento/Framework/View/File.php | 2 +- .../Magento/Framework/View/File/Collector/Base.php | 2 +- .../File/Collector/Decorator/ModuleDependency.php | 2 +- .../View/File/Collector/Decorator/ModuleOutput.php | 2 +- .../View/File/Collector/Override/Base.php | 2 +- .../View/File/Collector/Override/ThemeModular.php | 2 +- .../Framework/View/File/Collector/Theme.php | 2 +- .../Framework/View/File/Collector/ThemeModular.php | 2 +- .../Framework/View/File/CollectorInterface.php | 2 +- .../Magento/Framework/View/File/Factory.php | 2 +- .../Magento/Framework/View/File/FileList.php | 2 +- .../View/File/FileList/CollateInterface.php | 2 +- .../Framework/View/File/FileList/Collator.php | 2 +- .../Framework/View/File/FileList/Factory.php | 2 +- lib/internal/Magento/Framework/View/FileSystem.php | 2 +- lib/internal/Magento/Framework/View/Helper/Js.php | 2 +- .../Magento/Framework/View/Helper/PathPattern.php | 2 +- lib/internal/Magento/Framework/View/Layout.php | 2 +- .../Layout/Argument/Interpreter/DataObject.php | 2 +- .../Argument/Interpreter/Decorator/Updater.php | 2 +- .../Layout/Argument/Interpreter/HelperMethod.php | 2 +- .../Layout/Argument/Interpreter/NamedParams.php | 2 +- .../View/Layout/Argument/Interpreter/Options.php | 2 +- .../Layout/Argument/Interpreter/Passthrough.php | 2 +- .../View/Layout/Argument/Interpreter/Url.php | 2 +- .../Framework/View/Layout/Argument/Parser.php | 2 +- .../View/Layout/Argument/UpdaterInterface.php | 2 +- .../Magento/Framework/View/Layout/Builder.php | 2 +- .../Framework/View/Layout/BuilderFactory.php | 2 +- .../Framework/View/Layout/BuilderInterface.php | 2 +- .../Framework/View/Layout/Data/Structure.php | 2 +- .../Magento/Framework/View/Layout/Element.php | 2 +- .../View/Layout/File/Collector/Aggregated.php | 2 +- .../Framework/View/Layout/Generator/Block.php | 2 +- .../Framework/View/Layout/Generator/Container.php | 2 +- .../Framework/View/Layout/Generator/Context.php | 2 +- .../View/Layout/Generator/ContextFactory.php | 2 +- .../Framework/View/Layout/Generator/Structure.php | 2 +- .../View/Layout/Generator/UiComponent.php | 2 +- .../Framework/View/Layout/GeneratorInterface.php | 2 +- .../Framework/View/Layout/GeneratorPool.php | 2 +- .../Magento/Framework/View/Layout/Generic.php | 2 +- .../Framework/View/Layout/PageType/Config.php | 2 +- .../View/Layout/PageType/Config/Converter.php | 2 +- .../View/Layout/PageType/Config/Reader.php | 2 +- .../View/Layout/PageType/Config/SchemaLocator.php | 2 +- .../Magento/Framework/View/Layout/Pool.php | 2 +- .../Framework/View/Layout/ProcessorFactory.php | 2 +- .../Framework/View/Layout/ProcessorInterface.php | 2 +- .../Magento/Framework/View/Layout/Proxy.php | 2 +- .../Magento/Framework/View/Layout/Reader/Block.php | 2 +- .../Framework/View/Layout/Reader/Container.php | 2 +- .../Framework/View/Layout/Reader/Context.php | 2 +- .../View/Layout/Reader/ContextFactory.php | 2 +- .../Magento/Framework/View/Layout/Reader/Move.php | 2 +- .../Framework/View/Layout/Reader/UiComponent.php | 2 +- .../Framework/View/Layout/ReaderFactory.php | 2 +- .../Framework/View/Layout/ReaderInterface.php | 2 +- .../Magento/Framework/View/Layout/ReaderPool.php | 2 +- .../Framework/View/Layout/ScheduledStructure.php | 2 +- .../View/Layout/ScheduledStructure/Helper.php | 2 +- .../Magento/Framework/View/Layout/etc/body.xsd | 2 +- .../Magento/Framework/View/Layout/etc/elements.xsd | 2 +- .../Magento/Framework/View/Layout/etc/head.xsd | 2 +- .../Magento/Framework/View/Layout/etc/html.xsd | 2 +- .../Framework/View/Layout/etc/layout_generic.xsd | 2 +- .../Framework/View/Layout/etc/layout_merged.xsd | 2 +- .../View/Layout/etc/page_configuration.xsd | 2 +- .../Framework/View/Layout/etc/page_layout.xsd | 2 +- .../Framework/View/Layout/etc/page_types.xsd | 2 +- .../Magento/Framework/View/LayoutFactory.php | 2 +- .../Magento/Framework/View/LayoutInterface.php | 2 +- .../Magento/Framework/View/Model/Layout/Merge.php | 2 +- .../Framework/View/Model/Layout/Translator.php | 2 +- .../View/Model/Layout/Update/Validator.php | 2 +- .../Model/PageLayout/Config/BuilderInterface.php | 2 +- .../Magento/Framework/View/Page/Builder.php | 2 +- .../Framework/View/Page/Config/Generator/Body.php | 2 +- .../Framework/View/Page/Config/Generator/Head.php | 2 +- .../Framework/View/Page/Config/Reader/Body.php | 2 +- .../Framework/View/Page/Config/Reader/Head.php | 2 +- .../Framework/View/Page/Config/Reader/Html.php | 2 +- .../Framework/View/Page/Config/Renderer.php | 2 +- .../Framework/View/Page/Config/RendererFactory.php | 2 +- .../View/Page/Config/RendererInterface.php | 2 +- .../Framework/View/Page/Config/Structure.php | 2 +- .../Magento/Framework/View/Page/ConfigFactory.php | 2 +- .../Framework/View/Page/FaviconInterface.php | 2 +- .../Magento/Framework/View/Page/Layout/Reader.php | 2 +- lib/internal/Magento/Framework/View/Page/Title.php | 2 +- .../Magento/Framework/View/PageLayout/Config.php | 2 +- .../View/PageLayout/File/Collector/Aggregated.php | 2 +- .../Framework/View/PageLayout/etc/layouts.xsd | 2 +- .../Framework/View/Render/RenderFactory.php | 2 +- .../Magento/Framework/View/RenderInterface.php | 2 +- .../Magento/Framework/View/Result/Layout.php | 2 +- .../Framework/View/Result/LayoutFactory.php | 2 +- .../Magento/Framework/View/Result/Page.php | 2 +- .../Magento/Framework/View/Result/PageFactory.php | 2 +- .../Framework/View/Template/Html/Minifier.php | 2 +- .../View/Template/Html/MinifierInterface.php | 2 +- .../Magento/Framework/View/TemplateEngine/Php.php | 2 +- .../Framework/View/TemplateEngine/Xhtml.php | 2 +- .../View/TemplateEngine/Xhtml/Compiler.php | 2 +- .../TemplateEngine/Xhtml/Compiler/Attribute.php | 2 +- .../Xhtml/Compiler/AttributeInterface.php | 2 +- .../View/TemplateEngine/Xhtml/Compiler/Cdata.php | 2 +- .../Xhtml/Compiler/CdataInterface.php | 2 +- .../View/TemplateEngine/Xhtml/Compiler/Comment.php | 2 +- .../Xhtml/Compiler/CommentInterface.php | 2 +- .../Xhtml/Compiler/Directive/CallableMethod.php | 2 +- .../Compiler/Directive/DirectiveInterface.php | 2 +- .../Xhtml/Compiler/Directive/Variable.php | 2 +- .../Xhtml/Compiler/Element/ElementInterface.php | 2 +- .../View/TemplateEngine/Xhtml/Compiler/Text.php | 2 +- .../Xhtml/Compiler/TextInterface.php | 2 +- .../View/TemplateEngine/Xhtml/CompilerFactory.php | 2 +- .../TemplateEngine/Xhtml/CompilerInterface.php | 2 +- .../View/TemplateEngine/Xhtml/ResultFactory.php | 2 +- .../View/TemplateEngine/Xhtml/ResultInterface.php | 2 +- .../View/TemplateEngine/Xhtml/Template.php | 2 +- .../View/TemplateEngine/Xhtml/TemplateFactory.php | 2 +- .../Framework/View/TemplateEngineFactory.php | 2 +- .../Framework/View/TemplateEngineInterface.php | 2 +- .../Magento/Framework/View/TemplateEnginePool.php | 2 +- .../View/Test/Unit/Asset/Bundle/ManagerTest.php | 2 +- .../Framework/View/Test/Unit/Asset/BundleTest.php | 2 +- .../View/Test/Unit/Asset/CollectionTest.php | 2 +- .../Framework/View/Test/Unit/Asset/ConfigTest.php | 2 +- .../Test/Unit/Asset/File/FallbackContextTest.php | 2 +- .../Framework/View/Test/Unit/Asset/FileTest.php | 2 +- .../View/Test/Unit/Asset/GroupedCollectionTest.php | 2 +- .../View/Test/Unit/Asset/LockerProcessTest.php | 2 +- .../View/Test/Unit/Asset/MergeServiceTest.php | 2 +- .../Test/Unit/Asset/MergeStrategy/ChecksumTest.php | 2 +- .../Test/Unit/Asset/MergeStrategy/DirectTest.php | 2 +- .../Unit/Asset/MergeStrategy/FileExistsTest.php | 2 +- .../Framework/View/Test/Unit/Asset/MergedTest.php | 2 +- .../View/Test/Unit/Asset/MinificationTest.php | 2 +- .../Unit/Asset/NotationResolver/ModuleTest.php | 2 +- .../Unit/Asset/NotationResolver/VariableTest.php | 2 +- .../Asset/PreProcessor/AlternativeSourceTest.php | 2 +- .../Test/Unit/Asset/PreProcessor/ChainTest.php | 2 +- .../Unit/Asset/PreProcessor/Helper/SortTest.php | 2 +- .../MinificationFilenameResolverTest.php | 2 +- .../Test/Unit/Asset/PreProcessor/MinifyTest.php | 2 +- .../View/Test/Unit/Asset/PreProcessor/PoolTest.php | 2 +- .../View/Test/Unit/Asset/PropertyGroupTest.php | 2 +- .../Framework/View/Test/Unit/Asset/RemoteTest.php | 2 +- .../View/Test/Unit/Asset/RepositoryTest.php | 2 +- .../Framework/View/Test/Unit/Asset/SourceTest.php | 2 +- .../Framework/View/Test/Unit/BlockPoolTest.php | 2 +- .../Framework/View/Test/Unit/ConfigTest.php | 2 +- .../Framework/View/Test/Unit/ContextTest.php | 2 +- .../View/Test/Unit/DataSourcePoolTest.php | 2 +- .../Unit/Design/Fallback/Rule/CompositeTest.php | 2 +- .../Design/Fallback/Rule/ModularSwitchTest.php | 2 +- .../Test/Unit/Design/Fallback/Rule/ModuleTest.php | 2 +- .../Test/Unit/Design/Fallback/Rule/SimpleTest.php | 2 +- .../Test/Unit/Design/Fallback/Rule/ThemeTest.php | 2 +- .../Test/Unit/Design/Fallback/RulePoolTest.php | 2 +- .../Design/FileResolution/Fallback/FileTest.php | 2 +- .../FileResolution/Fallback/LocaleFileTest.php | 2 +- .../Fallback/Resolver/AlternativeTest.php | 2 +- .../Fallback/Resolver/MinificationTest.php | 2 +- .../Fallback/Resolver/SimpleTest.php | 2 +- .../FileResolution/Fallback/StaticFileTest.php | 2 +- .../FileResolution/Fallback/TemplateFileTest.php | 2 +- .../Theme/Customization/AbstractFileTest.php | 2 +- .../Unit/Design/Theme/Customization/PathTest.php | 2 +- .../Test/Unit/Design/Theme/CustomizationTest.php | 2 +- .../Test/Unit/Design/Theme/Domain/FactoryTest.php | 2 +- .../Unit/Design/Theme/FlyweightFactoryTest.php | 2 +- .../Test/Unit/Design/Theme/Image/UploaderTest.php | 2 +- .../View/Test/Unit/Design/Theme/ImageTest.php | 2 +- .../View/Test/Unit/Design/Theme/LabelTest.php | 2 +- .../Unit/Design/Theme/ThemePackageListTest.php | 2 +- .../Test/Unit/Design/Theme/ThemePackageTest.php | 2 +- .../View/Test/Unit/DesignExceptionsTest.php | 2 +- .../Framework/View/Test/Unit/DesignLoaderTest.php | 2 +- .../View/Test/Unit/Element/AbstractBlockTest.php | 2 +- .../View/Test/Unit/Element/BlockFactoryTest.php | 2 +- .../View/Test/Unit/Element/FormKeyTest.php | 2 +- .../View/Test/Unit/Element/Html/CalendarTest.php | 2 +- .../Test/Unit/Element/Html/Link/CurrentTest.php | 2 +- .../View/Test/Unit/Element/Html/LinkTest.php | 2 +- .../View/Test/Unit/Element/Html/LinksTest.php | 2 +- .../View/Test/Unit/Element/Html/SelectTest.php | 2 +- .../View/Test/Unit/Element/Js/CookieTest.php | 2 +- .../Element/Message/InterpretationMediatorTest.php | 2 +- .../Element/Message/InterpretationStrategyTest.php | 2 +- .../Message/MessageConfigurationsPoolTest.php | 2 +- .../Renderer/BlockRenderer/TemplateTest.php | 2 +- .../Element/Message/Renderer/BlockRendererTest.php | 2 +- .../Message/Renderer/EscapeRendererTest.php | 2 +- .../Element/Message/Renderer/RenderersPoolTest.php | 2 +- .../View/Test/Unit/Element/MessagesTest.php | 2 +- .../View/Test/Unit/Element/RendererListTest.php | 2 +- .../Unit/Element/Template/File/ResolverTest.php | 2 +- .../Unit/Element/Template/File/ValidatorTest.php | 2 +- .../View/Test/Unit/Element/TemplateTest.php | 2 +- .../Test/Unit/Element/Text/TextList/ItemTest.php | 2 +- .../Test/Unit/Element/Text/TextList/LinkTest.php | 2 +- .../Framework/View/Test/Unit/Element/TextTest.php | 2 +- .../Test/Unit/Element/UiComponent/ContextTest.php | 2 +- .../UiComponent/Control/DummyButtonTest.php | 2 +- .../DataProvider/FulltextFilterTest.php | 2 +- .../Unit/Element/UiComponent/ProcessorTest.php | 2 +- .../View/Test/Unit/File/Collector/BaseTest.php | 2 +- .../Collector/Decorator/ModuleDependencyTest.php | 2 +- .../File/Collector/Decorator/ModuleOutputTest.php | 2 +- .../Test/Unit/File/Collector/Override/BaseTest.php | 2 +- .../File/Collector/Override/ThemeModularTest.php | 2 +- .../Test/Unit/File/Collector/ThemeModularTest.php | 2 +- .../View/Test/Unit/File/Collector/ThemeTest.php | 2 +- .../Framework/View/Test/Unit/File/FactoryTest.php | 2 +- .../View/Test/Unit/File/FileList/CollatorTest.php | 2 +- .../View/Test/Unit/File/FileList/FactoryTest.php | 2 +- .../Framework/View/Test/Unit/File/FileListTest.php | 2 +- .../Framework/View/Test/Unit/FileSystemTest.php | 2 +- .../Magento/Framework/View/Test/Unit/FileTest.php | 2 +- .../Framework/View/Test/Unit/Helper/JsTest.php | 2 +- .../View/Test/Unit/Helper/PathPatternTest.php | 2 +- .../Argument/Interpreter/Decorator/UpdaterTest.php | 2 +- .../Argument/Interpreter/HelperMethodTest.php | 2 +- .../Argument/Interpreter/NamedParamsTest.php | 2 +- .../Layout/Argument/Interpreter/ObjectTest.php | 2 +- .../Layout/Argument/Interpreter/OptionsTest.php | 2 +- .../Argument/Interpreter/PassthroughTest.php | 2 +- .../Unit/Layout/Argument/Interpreter/UrlTest.php | 2 +- .../View/Test/Unit/Layout/Argument/ParserTest.php | 2 +- .../Test/Unit/Layout/Argument/_files/arguments.xml | 2 +- .../View/Test/Unit/Layout/BuilderFactoryTest.php | 2 +- .../View/Test/Unit/Layout/BuilderTest.php | 2 +- .../View/Test/Unit/Layout/Data/StructureTest.php | 2 +- .../View/Test/Unit/Layout/ElementTest.php | 2 +- .../Unit/Layout/File/Collector/AggregateTest.php | 2 +- .../View/Test/Unit/Layout/Generator/BlockTest.php | 2 +- .../Test/Unit/Layout/Generator/ContainerTest.php | 2 +- .../Test/Unit/Layout/Generator/UiComponentTest.php | 2 +- .../View/Test/Unit/Layout/GeneratorPoolTest.php | 2 +- .../View/Test/Unit/Layout/Reader/BlockTest.php | 2 +- .../View/Test/Unit/Layout/Reader/ContainerTest.php | 2 +- .../View/Test/Unit/Layout/Reader/FactoryTest.php | 2 +- .../View/Test/Unit/Layout/Reader/MoveTest.php | 2 +- .../Test/Unit/Layout/Reader/UiComponentTest.php | 2 +- .../View/Test/Unit/Layout/ReaderPoolTest.php | 2 +- .../Unit/Layout/ScheduledStructure/HelperTest.php | 2 +- .../Test/Unit/Layout/ScheduledStructureTest.php | 2 +- .../Framework/View/Test/Unit/Layout/XsdTest.php | 2 +- .../View/Test/Unit/Layout/_files/action.xml | 2 +- .../View/Test/Unit/Layout/_files/arguments.xml | 2 +- .../_files/invalidLayoutArgumentsXmlArray.php | 2 +- .../Framework/View/Test/Unit/LayoutFactoryTest.php | 2 +- .../Framework/View/Test/Unit/LayoutTest.php | 2 +- .../View/Test/Unit/Model/Layout/TranslatorTest.php | 2 +- .../Unit/Model/Layout/Update/ValidatorTest.php | 2 +- .../Framework/View/Test/Unit/Page/BuilderTest.php | 2 +- .../Test/Unit/Page/Config/Generator/BodyTest.php | 2 +- .../Test/Unit/Page/Config/Generator/HeadTest.php | 2 +- .../View/Test/Unit/Page/Config/Reader/HeadTest.php | 2 +- .../View/Test/Unit/Page/Config/RendererTest.php | 2 +- .../View/Test/Unit/Page/Config/StructureTest.php | 2 +- .../Test/Unit/Page/Config/_files/template_body.xml | 2 +- .../Test/Unit/Page/Config/_files/template_head.xml | 2 +- .../Test/Unit/Page/Config/_files/template_html.xml | 2 +- .../Framework/View/Test/Unit/Page/ConfigTest.php | 2 +- .../View/Test/Unit/Page/Layout/ReaderTest.php | 2 +- .../Framework/View/Test/Unit/Page/TitleTest.php | 2 +- .../View/Test/Unit/PageLayout/ConfigTest.php | 2 +- .../Test/Unit/PageLayout/_files/layouts_one.xml | 2 +- .../Test/Unit/PageLayout/_files/layouts_two.xml | 2 +- .../View/Test/Unit/Render/RenderFactoryTest.php | 2 +- .../Framework/View/Test/Unit/Result/LayoutTest.php | 2 +- .../View/Test/Unit/Result/PageFactoryTest.php | 2 +- .../Framework/View/Test/Unit/Result/PageTest.php | 2 +- .../View/Test/Unit/Template/Html/MinifierTest.php | 6 +++--- .../View/Test/Unit/TemplateEngine/PhpTest.php | 2 +- .../Test/Unit/TemplateEngine/_files/simple.phtml | 2 +- .../View/Test/Unit/TemplateEngineFactoryTest.php | 2 +- .../View/Test/Unit/TemplateEnginePoolTest.php | 2 +- .../Framework/View/Test/Unit/Url/ConfigTest.php | 2 +- .../View/Test/Unit/Url/CssResolverTest.php | 2 +- .../Framework/View/Test/Unit/Url/_files/result.css | 2 +- .../View/Test/Unit/Url/_files/resultImport.css | 2 +- .../View/Test/Unit/Url/_files/resultNormalized.css | 2 +- .../Framework/View/Test/Unit/Url/_files/source.css | 2 +- .../View/Test/Unit/Url/_files/sourceImport.css | 2 +- lib/internal/Magento/Framework/View/Url/Config.php | 2 +- .../Magento/Framework/View/Url/ConfigInterface.php | 2 +- .../Magento/Framework/View/Url/CssResolver.php | 2 +- .../View/Xsd/Media/TypeDataExtractorInterface.php | 2 +- .../View/Xsd/Media/TypeDataExtractorPool.php | 2 +- .../Magento/Framework/Webapi/Authorization.php | 2 +- .../Webapi/CustomAttributeTypeLocatorInterface.php | 2 +- .../Magento/Framework/Webapi/ErrorProcessor.php | 2 +- .../Magento/Framework/Webapi/Exception.php | 2 +- lib/internal/Magento/Framework/Webapi/Request.php | 2 +- lib/internal/Magento/Framework/Webapi/Response.php | 2 +- .../Magento/Framework/Webapi/Rest/Request.php | 2 +- .../Webapi/Rest/Request/Deserializer/Json.php | 2 +- .../Webapi/Rest/Request/Deserializer/Xml.php | 2 +- .../Webapi/Rest/Request/DeserializerFactory.php | 2 +- .../Webapi/Rest/Request/DeserializerInterface.php | 2 +- .../Rest/Request/ParamOverriderInterface.php | 2 +- .../Magento/Framework/Webapi/Rest/Response.php | 2 +- .../Webapi/Rest/Response/FieldsFilter.php | 2 +- .../Webapi/Rest/Response/Renderer/Json.php | 2 +- .../Webapi/Rest/Response/Renderer/Xml.php | 2 +- .../Webapi/Rest/Response/RendererFactory.php | 2 +- .../Webapi/Rest/Response/RendererInterface.php | 2 +- .../Framework/Webapi/ServiceInputProcessor.php | 2 +- .../Framework/Webapi/ServiceOutputProcessor.php | 2 +- .../Webapi/ServicePayloadConverterInterface.php | 2 +- .../Framework/Webapi/Soap/ClientFactory.php | 2 +- .../Webapi/Test/Unit/ErrorProcessorTest.php | 2 +- .../Framework/Webapi/Test/Unit/RequestTest.php | 2 +- .../Framework/Webapi/Test/Unit/ResponseTest.php | 2 +- .../Unit/Rest/Request/Deserializer/JsonTest.php | 2 +- .../Unit/Rest/Request/Deserializer/XmlTest.php | 2 +- .../Unit/Rest/Request/DeserializerFactoryTest.php | 2 +- .../Webapi/Test/Unit/Rest/RequestTest.php | 2 +- .../Test/Unit/Rest/Response/FieldsFilterTest.php | 2 +- .../Test/Unit/Rest/Response/Renderer/JsonTest.php | 2 +- .../Test/Unit/Rest/Response/Renderer/XmlTest.php | 2 +- .../Unit/Rest/Response/RendererFactoryTest.php | 2 +- .../Webapi/Test/Unit/Rest/ResponseTest.php | 2 +- .../ServiceInputProcessor/AssociativeArray.php | 2 +- .../Test/Unit/ServiceInputProcessor/DataArray.php | 2 +- .../Test/Unit/ServiceInputProcessor/Nested.php | 2 +- .../ObjectWithCustomAttributes.php | 2 +- .../Test/Unit/ServiceInputProcessor/Simple.php | 2 +- .../Unit/ServiceInputProcessor/SimpleArray.php | 2 +- .../Unit/ServiceInputProcessor/TestService.php | 2 +- .../Webapi/Test/Unit/ServiceInputProcessorTest.php | 2 +- lib/internal/Magento/Framework/Xml/Generator.php | 2 +- lib/internal/Magento/Framework/Xml/Parser.php | 2 +- lib/internal/Magento/Framework/Xml/Security.php | 2 +- .../Magento/Framework/Xml/Test/Unit/ParserTest.php | 2 +- .../Framework/Xml/Test/Unit/SecurityTest.php | 2 +- .../Framework/Xml/Test/Unit/_files/data.xml | 2 +- .../XsltProcessor/XsltProcessorFactory.php | 2 +- lib/internal/Magento/Framework/registration.php | 2 +- lib/web/css/docs/actions-toolbar.html | 14 +++++++------- lib/web/css/docs/breadcrumbs.html | 14 +++++++------- lib/web/css/docs/buttons.html | 14 +++++++------- lib/web/css/docs/components.html | 14 +++++++------- lib/web/css/docs/docs.css | 2 +- lib/web/css/docs/docs.html | 14 +++++++------- lib/web/css/docs/dropdowns.html | 14 +++++++------- lib/web/css/docs/forms.html | 14 +++++++------- lib/web/css/docs/icons.html | 14 +++++++------- lib/web/css/docs/index.html | 2 +- lib/web/css/docs/layout.html | 14 +++++++------- lib/web/css/docs/lib.html | 2 +- lib/web/css/docs/loaders.html | 14 +++++++------- lib/web/css/docs/messages.html | 14 +++++++------- lib/web/css/docs/pages.html | 14 +++++++------- lib/web/css/docs/popups.html | 14 +++++++------- lib/web/css/docs/rating.html | 14 +++++++------- lib/web/css/docs/resets.html | 2 +- lib/web/css/docs/responsive.html | 14 +++++++------- lib/web/css/docs/sections.html | 14 +++++++------- lib/web/css/docs/source/_actions-toolbar.less | 2 +- lib/web/css/docs/source/_breadcrumbs.less | 2 +- lib/web/css/docs/source/_buttons.less | 2 +- lib/web/css/docs/source/_components.less | 2 +- lib/web/css/docs/source/_dropdowns.less | 2 +- lib/web/css/docs/source/_forms.less | 2 +- lib/web/css/docs/source/_icons.less | 2 +- lib/web/css/docs/source/_layout.less | 2 +- lib/web/css/docs/source/_lib.less | 2 +- lib/web/css/docs/source/_loaders.less | 2 +- lib/web/css/docs/source/_messages.less | 2 +- lib/web/css/docs/source/_pages.less | 2 +- lib/web/css/docs/source/_popups.less | 2 +- lib/web/css/docs/source/_rating.less | 2 +- lib/web/css/docs/source/_resets.less | 2 +- lib/web/css/docs/source/_responsive.less | 2 +- lib/web/css/docs/source/_sections.less | 2 +- lib/web/css/docs/source/_tables.less | 2 +- lib/web/css/docs/source/_tooltips.less | 2 +- lib/web/css/docs/source/_typography.less | 2 +- lib/web/css/docs/source/_utilities.less | 2 +- lib/web/css/docs/source/_variables.less | 2 +- lib/web/css/docs/source/docs.less | 2 +- lib/web/css/docs/source/js/dropdown.js | 2 +- lib/web/css/docs/tables.html | 14 +++++++------- lib/web/css/docs/tooltips.html | 14 +++++++------- lib/web/css/docs/typography.html | 14 +++++++------- lib/web/css/docs/utilities.html | 14 +++++++------- lib/web/css/docs/variables.html | 14 +++++++------- lib/web/css/source/_email-variables.less | 2 +- lib/web/css/source/_extend.less | 2 +- lib/web/css/source/_theme.less | 2 +- lib/web/css/source/_variables.less | 2 +- lib/web/css/source/_widgets.less | 2 +- lib/web/css/source/components/_modals.less | 2 +- lib/web/css/source/lib/_actions-toolbar.less | 2 +- lib/web/css/source/lib/_breadcrumbs.less | 2 +- lib/web/css/source/lib/_buttons.less | 2 +- lib/web/css/source/lib/_dropdowns.less | 2 +- lib/web/css/source/lib/_forms.less | 2 +- lib/web/css/source/lib/_grids.less | 2 +- lib/web/css/source/lib/_icons.less | 2 +- lib/web/css/source/lib/_layout.less | 2 +- lib/web/css/source/lib/_lib.less | 2 +- lib/web/css/source/lib/_loaders.less | 2 +- lib/web/css/source/lib/_messages.less | 2 +- lib/web/css/source/lib/_navigation.less | 2 +- lib/web/css/source/lib/_pages.less | 2 +- lib/web/css/source/lib/_popups.less | 2 +- lib/web/css/source/lib/_rating.less | 2 +- lib/web/css/source/lib/_resets.less | 2 +- lib/web/css/source/lib/_responsive.less | 2 +- lib/web/css/source/lib/_sections.less | 2 +- lib/web/css/source/lib/_tables.less | 2 +- lib/web/css/source/lib/_tooltips.less | 2 +- lib/web/css/source/lib/_typography.less | 2 +- lib/web/css/source/lib/_utilities.less | 2 +- lib/web/css/source/lib/_variables.less | 2 +- .../css/source/lib/variables/_actions-toolbar.less | 2 +- lib/web/css/source/lib/variables/_breadcrumbs.less | 2 +- lib/web/css/source/lib/variables/_buttons.less | 2 +- lib/web/css/source/lib/variables/_colors.less | 2 +- lib/web/css/source/lib/variables/_components.less | 2 +- lib/web/css/source/lib/variables/_dropdowns.less | 2 +- lib/web/css/source/lib/variables/_email.less | 2 +- lib/web/css/source/lib/variables/_forms.less | 2 +- lib/web/css/source/lib/variables/_icons.less | 2 +- lib/web/css/source/lib/variables/_layout.less | 2 +- lib/web/css/source/lib/variables/_loaders.less | 2 +- lib/web/css/source/lib/variables/_messages.less | 2 +- lib/web/css/source/lib/variables/_navigation.less | 2 +- lib/web/css/source/lib/variables/_pages.less | 2 +- lib/web/css/source/lib/variables/_popups.less | 2 +- lib/web/css/source/lib/variables/_rating.less | 2 +- lib/web/css/source/lib/variables/_responsive.less | 2 +- lib/web/css/source/lib/variables/_sections.less | 2 +- lib/web/css/source/lib/variables/_structure.less | 2 +- lib/web/css/source/lib/variables/_tables.less | 2 +- lib/web/css/source/lib/variables/_tooltips.less | 2 +- lib/web/css/source/lib/variables/_typography.less | 2 +- lib/web/extjs/defaults.js | 2 +- lib/web/less/config.less.js | 2 +- lib/web/mage/accordion.js | 2 +- lib/web/mage/adminhtml/accordion.js | 2 +- lib/web/mage/adminhtml/backup.js | 2 +- lib/web/mage/adminhtml/browser.js | 2 +- lib/web/mage/adminhtml/events.js | 2 +- lib/web/mage/adminhtml/form.js | 2 +- lib/web/mage/adminhtml/globals.js | 2 +- lib/web/mage/adminhtml/grid.js | 2 +- lib/web/mage/adminhtml/tools.js | 2 +- lib/web/mage/adminhtml/varienLoader.js | 2 +- .../adminhtml/wysiwyg/tiny_mce/html5-schema.js | 2 +- .../plugins/magentovariable/editor_plugin.js | 2 +- .../plugins/magentowidget/editor_plugin.js | 2 +- lib/web/mage/adminhtml/wysiwyg/tiny_mce/setup.js | 2 +- .../themes/advanced/skins/default/content.css | 2 +- .../themes/advanced/skins/default/dialog.css | 2 +- lib/web/mage/adminhtml/wysiwyg/widget.js | 2 +- lib/web/mage/app/config.js | 2 +- lib/web/mage/apply/main.js | 2 +- lib/web/mage/apply/scripts.js | 2 +- lib/web/mage/backend/action-link.js | 2 +- lib/web/mage/backend/bootstrap.js | 2 +- lib/web/mage/backend/button.js | 2 +- lib/web/mage/backend/editablemultiselect.js | 2 +- lib/web/mage/backend/floating-header.js | 2 +- lib/web/mage/backend/form.js | 2 +- lib/web/mage/backend/jstree-mixin.js | 2 +- lib/web/mage/backend/menu.js | 2 +- lib/web/mage/backend/notification.js | 2 +- lib/web/mage/backend/suggest.js | 2 +- lib/web/mage/backend/tabs.js | 2 +- lib/web/mage/backend/tree-suggest.js | 2 +- lib/web/mage/backend/validation.js | 2 +- lib/web/mage/bootstrap.js | 2 +- lib/web/mage/calendar.css | 2 +- lib/web/mage/calendar.js | 2 +- lib/web/mage/captcha.js | 2 +- lib/web/mage/collapsible.js | 2 +- lib/web/mage/common.js | 2 +- lib/web/mage/cookies.js | 2 +- lib/web/mage/dataPost.js | 2 +- lib/web/mage/decorate.js | 2 +- lib/web/mage/deletable-item.js | 2 +- lib/web/mage/dialog.js | 2 +- lib/web/mage/dropdown.js | 2 +- lib/web/mage/dropdown_old.js | 2 +- lib/web/mage/dropdowns.js | 2 +- lib/web/mage/edit-trigger.js | 2 +- lib/web/mage/fieldset-controls.js | 2 +- lib/web/mage/gallery/gallery.html | 2 +- lib/web/mage/gallery/gallery.js | 2 +- lib/web/mage/gallery/gallery.less | 2 +- lib/web/mage/gallery/module/_extends.less | 2 +- lib/web/mage/gallery/module/_focus.less | 2 +- lib/web/mage/gallery/module/_fullscreen.less | 2 +- lib/web/mage/gallery/module/_mixins.less | 2 +- lib/web/mage/gallery/module/_variables.less | 2 +- lib/web/mage/ie-class-fixer.js | 2 +- lib/web/mage/item-table.js | 2 +- lib/web/mage/layout.js | 2 +- lib/web/mage/list.js | 2 +- lib/web/mage/loader.js | 2 +- lib/web/mage/loader_old.js | 2 +- lib/web/mage/mage.js | 2 +- lib/web/mage/menu.js | 2 +- lib/web/mage/popup-window.js | 2 +- lib/web/mage/redirect-url.js | 2 +- lib/web/mage/requirejs/mixins.js | 2 +- lib/web/mage/requirejs/resolver.js | 2 +- lib/web/mage/requirejs/static.js | 2 +- lib/web/mage/requirejs/text.js | 2 +- lib/web/mage/smart-keyboard-handler.js | 2 +- lib/web/mage/sticky.js | 2 +- lib/web/mage/storage.js | 2 +- lib/web/mage/tabs.js | 2 +- lib/web/mage/template.js | 2 +- lib/web/mage/terms.js | 2 +- lib/web/mage/toggle.js | 2 +- lib/web/mage/tooltip.js | 2 +- lib/web/mage/translate-inline-vde.css | 2 +- lib/web/mage/translate-inline-vde.js | 2 +- lib/web/mage/translate-inline.css | 2 +- lib/web/mage/translate-inline.js | 2 +- lib/web/mage/translate.js | 2 +- lib/web/mage/url.js | 2 +- lib/web/mage/utils/arrays.js | 2 +- lib/web/mage/utils/compare.js | 2 +- lib/web/mage/utils/main.js | 2 +- lib/web/mage/utils/misc.js | 2 +- lib/web/mage/utils/objects.js | 2 +- lib/web/mage/utils/strings.js | 2 +- lib/web/mage/utils/template.js | 2 +- lib/web/mage/utils/wrapper.js | 2 +- lib/web/mage/validation.js | 2 +- lib/web/mage/validation/url.js | 2 +- lib/web/mage/validation/validation.js | 2 +- lib/web/mage/view/composite.js | 2 +- lib/web/mage/webapi.js | 2 +- lib/web/mage/zoom.js | 2 +- lib/web/magnifier/magnifier.js | 2 +- lib/web/magnifier/magnify.js | 2 +- lib/web/varien/form.js | 2 +- lib/web/varien/js.js | 2 +- php.ini.sample | 2 +- phpserver/router.php | 2 +- pub/cron.php | 2 +- pub/errors/404.php | 2 +- pub/errors/503.php | 2 +- pub/errors/default/404.phtml | 2 +- pub/errors/default/503.phtml | 2 +- pub/errors/default/css/styles.css | 2 +- pub/errors/default/nocache.phtml | 2 +- pub/errors/default/page.phtml | 2 +- pub/errors/default/report.phtml | 2 +- pub/errors/design.xml | 2 +- pub/errors/local.xml.sample | 2 +- pub/errors/noCache.php | 2 +- pub/errors/processor.php | 2 +- pub/errors/processorFactory.php | 2 +- pub/errors/report.php | 2 +- pub/get.php | 2 +- pub/index.php | 2 +- pub/static.php | 2 +- setup/config/application.config.php | 2 +- setup/config/autoload/global.php | 2 +- setup/config/di.config.php | 2 +- setup/config/languages.config.php | 2 +- setup/config/marketplace.config.php | 2 +- setup/config/module.config.php | 2 +- setup/config/router.config.php | 2 +- setup/config/states.disable.config.php | 2 +- setup/config/states.enable.config.php | 2 +- setup/config/states.extensionManager.config.php | 2 +- setup/config/states.home.config.php | 2 +- setup/config/states.install.config.php | 2 +- setup/config/states.uninstall.config.php | 2 +- setup/config/states.update.config.php | 2 +- setup/config/states.upgrade.config.php | 2 +- setup/index.php | 2 +- setup/performance-toolkit/config/attributeSets.xml | 2 +- .../performance-toolkit/config/customerConfig.xml | 2 +- setup/performance-toolkit/config/description.xml | 2 +- setup/performance-toolkit/config/di.xml | 2 +- setup/performance-toolkit/config/searchConfig.xml | 2 +- setup/performance-toolkit/config/searchTerms.xml | 2 +- .../config/searchTermsLarge.xml | 2 +- .../config/shortDescription.xml | 2 +- setup/pub/magento/setup/add-database.js | 2 +- setup/pub/magento/setup/app.js | 2 +- setup/pub/magento/setup/auth-dialog.js | 2 +- setup/pub/magento/setup/complete-backup.js | 2 +- setup/pub/magento/setup/component-grid.js | 2 +- setup/pub/magento/setup/create-admin-account.js | 2 +- setup/pub/magento/setup/create-backup.js | 2 +- setup/pub/magento/setup/customize-your-store.js | 2 +- setup/pub/magento/setup/data-option.js | 2 +- setup/pub/magento/setup/home.js | 2 +- setup/pub/magento/setup/install-extension-grid.js | 2 +- setup/pub/magento/setup/install.js | 2 +- setup/pub/magento/setup/landing.js | 2 +- setup/pub/magento/setup/main.js | 2 +- setup/pub/magento/setup/marketplace-credentials.js | 2 +- setup/pub/magento/setup/readiness-check.js | 2 +- setup/pub/magento/setup/select-version.js | 2 +- setup/pub/magento/setup/start-updater.js | 2 +- setup/pub/magento/setup/success.js | 2 +- setup/pub/magento/setup/system-config.js | 2 +- setup/pub/magento/setup/updater-success.js | 2 +- setup/pub/magento/setup/web-configuration.js | 2 +- setup/pub/styles/setup.css | 2 +- .../Command/AbstractDependenciesCommand.php | 2 +- .../Console/Command/AbstractMaintenanceCommand.php | 2 +- .../Console/Command/AbstractModuleCommand.php | 2 +- .../Command/AbstractModuleManageCommand.php | 2 +- .../Setup/Console/Command/AbstractSetupCommand.php | 2 +- .../Console/Command/AdminUserCreateCommand.php | 2 +- .../Setup/Console/Command/BackupCommand.php | 2 +- .../Setup/Console/Command/ConfigSetCommand.php | 2 +- .../Setup/Console/Command/CronRunCommand.php | 2 +- .../Setup/Console/Command/DbDataUpgradeCommand.php | 2 +- .../Console/Command/DbSchemaUpgradeCommand.php | 2 +- .../Setup/Console/Command/DbStatusCommand.php | 2 +- .../Command/DependenciesShowFrameworkCommand.php | 2 +- .../DependenciesShowModulesCircularCommand.php | 2 +- .../Command/DependenciesShowModulesCommand.php | 2 +- .../Command/Deploy/StaticContentCommand.php | 2 +- .../Console/Command/DeployStaticContentCommand.php | 2 +- .../Setup/Console/Command/DiCompileCommand.php | 2 +- .../Console/Command/GenerateFixturesCommand.php | 2 +- .../Console/Command/I18nCollectPhrasesCommand.php | 2 +- .../Setup/Console/Command/I18nPackCommand.php | 2 +- .../Setup/Console/Command/InfoAdminUriCommand.php | 2 +- .../Console/Command/InfoBackupsListCommand.php | 2 +- .../Console/Command/InfoCurrencyListCommand.php | 2 +- .../Console/Command/InfoLanguageListCommand.php | 2 +- .../Console/Command/InfoTimezoneListCommand.php | 2 +- .../Setup/Console/Command/InstallCommand.php | 2 +- .../Command/InstallStoreConfigurationCommand.php | 2 +- .../Console/Command/MaintenanceAllowIpsCommand.php | 2 +- .../Console/Command/MaintenanceDisableCommand.php | 2 +- .../Console/Command/MaintenanceEnableCommand.php | 2 +- .../Console/Command/MaintenanceStatusCommand.php | 2 +- .../Setup/Console/Command/ModuleDisableCommand.php | 2 +- .../Setup/Console/Command/ModuleEnableCommand.php | 2 +- .../Setup/Console/Command/ModuleStatusCommand.php | 2 +- .../Console/Command/ModuleUninstallCommand.php | 2 +- .../Setup/Console/Command/RollbackCommand.php | 2 +- .../Setup/Console/Command/UninstallCommand.php | 2 +- .../Setup/Console/Command/UpgradeCommand.php | 2 +- setup/src/Magento/Setup/Console/CommandList.php | 2 +- .../Magento/Setup/Console/CompilerPreparation.php | 2 +- setup/src/Magento/Setup/Controller/AddDatabase.php | 2 +- .../Magento/Setup/Controller/BackupActionItems.php | 2 +- .../Magento/Setup/Controller/CompleteBackup.php | 2 +- .../src/Magento/Setup/Controller/ComponentGrid.php | 2 +- .../Setup/Controller/CreateAdminAccount.php | 2 +- .../src/Magento/Setup/Controller/CreateBackup.php | 2 +- .../Setup/Controller/CustomizeYourStore.php | 2 +- setup/src/Magento/Setup/Controller/DataOption.php | 2 +- .../src/Magento/Setup/Controller/DatabaseCheck.php | 2 +- .../Magento/Setup/Controller/DependencyCheck.php | 2 +- setup/src/Magento/Setup/Controller/Environment.php | 2 +- setup/src/Magento/Setup/Controller/Home.php | 2 +- setup/src/Magento/Setup/Controller/Index.php | 2 +- setup/src/Magento/Setup/Controller/Install.php | 2 +- .../Setup/Controller/InstallExtensionGrid.php | 2 +- .../Magento/Setup/Controller/LandingInstaller.php | 2 +- .../Magento/Setup/Controller/LandingUpdater.php | 2 +- setup/src/Magento/Setup/Controller/License.php | 2 +- setup/src/Magento/Setup/Controller/Maintenance.php | 2 +- setup/src/Magento/Setup/Controller/Marketplace.php | 2 +- .../Setup/Controller/MarketplaceCredentials.php | 2 +- setup/src/Magento/Setup/Controller/Modules.php | 2 +- setup/src/Magento/Setup/Controller/Navigation.php | 2 +- .../Setup/Controller/OtherComponentsGrid.php | 2 +- .../Setup/Controller/ReadinessCheckInstaller.php | 2 +- .../Setup/Controller/ReadinessCheckUpdater.php | 2 +- .../Setup/Controller/ResponseTypeInterface.php | 2 +- .../src/Magento/Setup/Controller/SelectVersion.php | 2 +- setup/src/Magento/Setup/Controller/Session.php | 2 +- .../src/Magento/Setup/Controller/StartUpdater.php | 2 +- setup/src/Magento/Setup/Controller/Success.php | 2 +- .../src/Magento/Setup/Controller/SystemConfig.php | 2 +- .../Magento/Setup/Controller/UpdaterSuccess.php | 2 +- .../Setup/Controller/ValidateAdminCredentials.php | 2 +- .../Magento/Setup/Controller/WebConfiguration.php | 2 +- setup/src/Magento/Setup/Exception.php | 2 +- .../Fixtures/AttributeSet/AttributeSetFixture.php | 2 +- .../Setup/Fixtures/AttributeSetsFixture.php | 2 +- .../Setup/Fixtures/BundleProductsFixture.php | 2 +- .../Setup/Fixtures/CatalogPriceRulesFixture.php | 2 +- .../Magento/Setup/Fixtures/CategoriesFixture.php | 2 +- .../Magento/Setup/Fixtures/CategoryResolver.php | 2 +- .../Setup/Fixtures/CustomerGroupsFixture.php | 2 +- .../Magento/Setup/Fixtures/CustomersFixture.php | 2 +- setup/src/Magento/Setup/Fixtures/Fixture.php | 2 +- setup/src/Magento/Setup/Fixtures/FixtureConfig.php | 2 +- setup/src/Magento/Setup/Fixtures/ImagesFixture.php | 2 +- .../Fixtures/ImagesGenerator/ImagesGenerator.php | 2 +- setup/src/Magento/Setup/Fixtures/PriceProvider.php | 2 +- .../Setup/Fixtures/ProductsAmountProvider.php | 2 +- .../Setup/Fixtures/SimpleProductsFixture.php | 2 +- .../src/Magento/Setup/Fixtures/TaxRatesFixture.php | 2 +- .../Setup/Model/Address/AddressDataGenerator.php | 2 +- setup/src/Magento/Setup/Model/AdminAccount.php | 2 +- .../Magento/Setup/Model/AdminAccountFactory.php | 2 +- setup/src/Magento/Setup/Model/BasePackageInfo.php | 2 +- setup/src/Magento/Setup/Model/BatchInsert.php | 2 +- setup/src/Magento/Setup/Model/Bootstrap.php | 2 +- .../src/Magento/Setup/Model/Complex/Generator.php | 2 +- setup/src/Magento/Setup/Model/Complex/Pattern.php | 2 +- setup/src/Magento/Setup/Model/ConfigGenerator.php | 2 +- setup/src/Magento/Setup/Model/ConfigModel.php | 2 +- .../src/Magento/Setup/Model/ConfigOptionsList.php | 2 +- .../Setup/Model/ConfigOptionsListCollector.php | 2 +- setup/src/Magento/Setup/Model/Cron/AbstractJob.php | 2 +- .../Setup/Model/Cron/Helper/ModuleUninstall.php | 2 +- .../Setup/Model/Cron/Helper/ThemeUninstall.php | 2 +- .../Setup/Model/Cron/JobComponentUninstall.php | 2 +- .../src/Magento/Setup/Model/Cron/JobDbRollback.php | 2 +- setup/src/Magento/Setup/Model/Cron/JobFactory.php | 2 +- setup/src/Magento/Setup/Model/Cron/JobModule.php | 2 +- setup/src/Magento/Setup/Model/Cron/JobSetCache.php | 2 +- .../Setup/Model/Cron/JobSetMaintenanceMode.php | 2 +- .../Setup/Model/Cron/JobStaticRegenerate.php | 2 +- setup/src/Magento/Setup/Model/Cron/JobUpgrade.php | 2 +- .../Setup/Model/Cron/MultipleStreamOutput.php | 2 +- setup/src/Magento/Setup/Model/Cron/Queue.php | 2 +- .../src/Magento/Setup/Model/Cron/Queue/Reader.php | 2 +- .../src/Magento/Setup/Model/Cron/Queue/Writer.php | 2 +- .../Magento/Setup/Model/Cron/ReadinessCheck.php | 2 +- .../Setup/Model/Cron/SetupLoggerFactory.php | 2 +- .../Setup/Model/Cron/SetupStreamHandler.php | 2 +- setup/src/Magento/Setup/Model/Cron/Status.php | 2 +- .../Setup/Model/CronScriptReadinessCheck.php | 2 +- .../Setup/Model/Customer/CustomerDataGenerator.php | 2 +- .../Customer/CustomerDataGeneratorFactory.php | 2 +- setup/src/Magento/Setup/Model/DataGenerator.php | 2 +- .../Setup/Model/DateTime/DateTimeProvider.php | 2 +- .../Setup/Model/DateTime/TimeZoneProvider.php | 2 +- .../Setup/Model/DefaultDescriptionGenerator.php | 2 +- .../Setup/Model/DependencyReadinessCheck.php | 2 +- .../Model/Description/DescriptionGenerator.php | 2 +- .../Description/DescriptionParagraphGenerator.php | 2 +- .../Description/DescriptionSentenceGenerator.php | 2 +- .../Setup/Model/Description/Mixin/BoldMixin.php | 2 +- .../Setup/Model/Description/Mixin/BrakeMixin.php | 2 +- .../Mixin/DescriptionMixinInterface.php | 2 +- .../Setup/Model/Description/Mixin/HeaderMixin.php | 2 +- .../Mixin/Helper/RandomWordSelector.php | 2 +- .../Model/Description/Mixin/Helper/WordWrapper.php | 2 +- .../Setup/Model/Description/Mixin/ItalicMixin.php | 2 +- .../Setup/Model/Description/Mixin/MixinFactory.php | 2 +- .../Model/Description/Mixin/ParagraphMixin.php | 2 +- .../Setup/Model/Description/Mixin/SpanMixin.php | 2 +- .../Setup/Model/Description/MixinManager.php | 2 +- .../Setup/Model/DescriptionGeneratorInterface.php | 2 +- setup/src/Magento/Setup/Model/Dictionary.php | 2 +- .../FixtureGenerator/BundleProductGenerator.php | 2 +- .../BundleProductTemplateGenerator.php | 2 +- .../ConfigurableProductGenerator.php | 2 +- .../ConfigurableProductTemplateGenerator.php | 2 +- .../Model/FixtureGenerator/CustomerGenerator.php | 2 +- .../FixtureGenerator/CustomerTemplateGenerator.php | 2 +- .../Model/FixtureGenerator/EntityGenerator.php | 2 +- .../Model/FixtureGenerator/ProductGenerator.php | 2 +- .../ProductTemplateGeneratorFactory.php | 2 +- .../SimpleProductTemplateGenerator.php | 2 +- .../Setup/Model/FixtureGenerator/SqlCollector.php | 2 +- .../TemplateEntityGeneratorInterface.php | 2 +- setup/src/Magento/Setup/Model/Generator.php | 2 +- setup/src/Magento/Setup/Model/Grid/Extension.php | 2 +- setup/src/Magento/Setup/Model/Grid/Module.php | 2 +- setup/src/Magento/Setup/Model/Grid/TypeMapper.php | 2 +- setup/src/Magento/Setup/Model/Installer.php | 2 +- .../src/Magento/Setup/Model/Installer/Progress.php | 2 +- .../Setup/Model/Installer/ProgressFactory.php | 2 +- setup/src/Magento/Setup/Model/InstallerFactory.php | 2 +- setup/src/Magento/Setup/Model/License.php | 2 +- setup/src/Magento/Setup/Model/ModuleContext.php | 2 +- .../Setup/Model/ModuleRegistryUninstaller.php | 2 +- setup/src/Magento/Setup/Model/ModuleStatus.php | 2 +- .../Magento/Setup/Model/ModuleStatusFactory.php | 2 +- .../src/Magento/Setup/Model/ModuleUninstaller.php | 2 +- setup/src/Magento/Setup/Model/Navigation.php | 2 +- .../Magento/Setup/Model/ObjectManagerProvider.php | 2 +- setup/src/Magento/Setup/Model/PackagesAuth.php | 2 +- setup/src/Magento/Setup/Model/PackagesData.php | 2 +- setup/src/Magento/Setup/Model/PayloadValidator.php | 2 +- setup/src/Magento/Setup/Model/PhpInformation.php | 2 +- .../src/Magento/Setup/Model/PhpReadinessCheck.php | 2 +- .../Magento/Setup/Model/RequestDataConverter.php | 2 +- .../Setup/Model/SearchTermDescriptionGenerator.php | 2 +- .../SearchTermDescriptionGeneratorFactory.php | 2 +- .../src/Magento/Setup/Model/SearchTermManager.php | 2 +- .../Setup/Model/StoreConfigurationDataMapper.php | 2 +- setup/src/Magento/Setup/Model/SystemPackage.php | 2 +- .../Setup/Model/ThemeDependencyCheckerFactory.php | 2 +- .../src/Magento/Setup/Model/UninstallCollector.php | 2 +- .../Setup/Model/UninstallDependencyCheck.php | 2 +- setup/src/Magento/Setup/Model/Updater.php | 2 +- .../src/Magento/Setup/Model/UpdaterTaskCreator.php | 2 +- setup/src/Magento/Setup/Model/WebLogger.php | 2 +- setup/src/Magento/Setup/Module.php | 2 +- .../src/Magento/Setup/Module/ConnectionFactory.php | 2 +- setup/src/Magento/Setup/Module/DataSetup.php | 2 +- .../src/Magento/Setup/Module/DataSetupFactory.php | 2 +- .../Magento/Setup/Module/Dependency/Circular.php | 2 +- .../Setup/Module/Dependency/Parser/Code.php | 2 +- .../Module/Dependency/Parser/Composer/Json.php | 2 +- .../Setup/Module/Dependency/Parser/Config/Xml.php | 2 +- .../Setup/Module/Dependency/ParserInterface.php | 2 +- .../Dependency/Report/Builder/AbstractBuilder.php | 2 +- .../Module/Dependency/Report/BuilderInterface.php | 2 +- .../Module/Dependency/Report/Circular/Builder.php | 2 +- .../Dependency/Report/Circular/Data/Chain.php | 2 +- .../Dependency/Report/Circular/Data/Config.php | 2 +- .../Dependency/Report/Circular/Data/Module.php | 2 +- .../Module/Dependency/Report/Circular/Writer.php | 2 +- .../Report/Data/Config/AbstractConfig.php | 2 +- .../Dependency/Report/Data/ConfigInterface.php | 2 +- .../Dependency/Report/Dependency/Builder.php | 2 +- .../Dependency/Report/Dependency/Data/Config.php | 2 +- .../Report/Dependency/Data/Dependency.php | 2 +- .../Dependency/Report/Dependency/Data/Module.php | 2 +- .../Module/Dependency/Report/Dependency/Writer.php | 2 +- .../Module/Dependency/Report/Framework/Builder.php | 2 +- .../Dependency/Report/Framework/Data/Config.php | 2 +- .../Report/Framework/Data/Dependency.php | 2 +- .../Dependency/Report/Framework/Data/Module.php | 2 +- .../Module/Dependency/Report/Framework/Writer.php | 2 +- .../Report/Writer/Csv/AbstractWriter.php | 2 +- .../Module/Dependency/Report/WriterInterface.php | 2 +- .../Setup/Module/Dependency/ServiceLocator.php | 2 +- .../Magento/Setup/Module/Di/App/Task/Manager.php | 2 +- .../Task/Operation/ApplicationCodeGenerator.php | 2 +- .../Setup/Module/Di/App/Task/Operation/Area.php | 2 +- .../Module/Di/App/Task/Operation/Interception.php | 2 +- .../Di/App/Task/Operation/InterceptionCache.php | 2 +- .../Di/App/Task/Operation/ProxyGenerator.php | 2 +- .../Di/App/Task/Operation/RepositoryGenerator.php | 2 +- .../Operation/ServiceDataAttributesGenerator.php | 2 +- .../Module/Di/App/Task/OperationException.php | 2 +- .../Setup/Module/Di/App/Task/OperationFactory.php | 2 +- .../Module/Di/App/Task/OperationInterface.php | 2 +- .../src/Magento/Setup/Module/Di/Code/Generator.php | 2 +- .../Generator/InterceptionConfigurationBuilder.php | 2 +- .../Setup/Module/Di/Code/Generator/Interceptor.php | 2 +- .../Setup/Module/Di/Code/Generator/PluginList.php | 2 +- .../Setup/Module/Di/Code/GeneratorFactory.php | 2 +- .../Module/Di/Code/Reader/ClassReaderDecorator.php | 2 +- .../Setup/Module/Di/Code/Reader/ClassesScanner.php | 2 +- .../Di/Code/Reader/ClassesScannerInterface.php | 2 +- .../Setup/Module/Di/Code/Reader/Decorator/Area.php | 2 +- .../Module/Di/Code/Reader/Decorator/Directory.php | 2 +- .../Di/Code/Reader/Decorator/Interceptions.php | 2 +- .../Setup/Module/Di/Code/Reader/FileScanner.php | 2 +- .../Magento/Setup/Module/Di/Code/Reader/Type.php | 2 +- .../Setup/Module/Di/Code/Scanner/ArrayScanner.php | 2 +- .../Module/Di/Code/Scanner/CompositeScanner.php | 2 +- .../Di/Code/Scanner/ConfigurationScanner.php | 2 +- .../Module/Di/Code/Scanner/DirectoryScanner.php | 2 +- .../Code/Scanner/InheritanceInterceptorScanner.php | 2 +- .../Code/Scanner/InterceptedInstancesScanner.php | 2 +- .../Setup/Module/Di/Code/Scanner/PhpScanner.php | 2 +- .../Setup/Module/Di/Code/Scanner/PluginScanner.php | 2 +- .../Module/Di/Code/Scanner/RepositoryScanner.php | 2 +- .../Module/Di/Code/Scanner/ScannerInterface.php | 2 +- .../Code/Scanner/ServiceDataAttributesScanner.php | 2 +- .../Di/Code/Scanner/XmlInterceptorScanner.php | 2 +- .../Setup/Module/Di/Code/Scanner/XmlScanner.php | 2 +- .../Setup/Module/Di/Compiler/ArgumentsResolver.php | 2 +- .../Di/Compiler/ArgumentsResolverFactory.php | 2 +- .../Config/Chain/ArgumentsSerialization.php | 2 +- .../Di/Compiler/Config/Chain/BackslashTrim.php | 2 +- .../Config/Chain/InterceptorSubstitution.php | 2 +- .../Compiler/Config/Chain/PreferencesResolving.php | 2 +- .../Di/Compiler/Config/ModificationChain.php | 2 +- .../Di/Compiler/Config/ModificationInterface.php | 2 +- .../Setup/Module/Di/Compiler/Config/Reader.php | 2 +- .../Di/Compiler/Config/Writer/Filesystem.php | 2 +- .../Module/Di/Compiler/Config/WriterInterface.php | 2 +- .../Module/Di/Compiler/ConstructorArgument.php | 2 +- .../Magento/Setup/Module/Di/Compiler/Log/Log.php | 2 +- .../Module/Di/Compiler/Log/Writer/Console.php | 2 +- .../Setup/Module/Di/Definition/Collection.php | 2 +- setup/src/Magento/Setup/Module/I18n/Context.php | 2 +- setup/src/Magento/Setup/Module/I18n/Dictionary.php | 2 +- .../Setup/Module/I18n/Dictionary/Generator.php | 2 +- .../I18n/Dictionary/Loader/File/AbstractFile.php | 2 +- .../Module/I18n/Dictionary/Loader/File/Csv.php | 2 +- .../I18n/Dictionary/Loader/FileInterface.php | 2 +- .../Module/I18n/Dictionary/Options/Resolver.php | 2 +- .../I18n/Dictionary/Options/ResolverFactory.php | 2 +- .../I18n/Dictionary/Options/ResolverInterface.php | 2 +- .../Setup/Module/I18n/Dictionary/Phrase.php | 2 +- .../Setup/Module/I18n/Dictionary/Writer/Csv.php | 2 +- .../Module/I18n/Dictionary/Writer/Csv/Stdo.php | 2 +- .../Module/I18n/Dictionary/WriterInterface.php | 2 +- setup/src/Magento/Setup/Module/I18n/Factory.php | 2 +- .../Magento/Setup/Module/I18n/FilesCollector.php | 2 +- setup/src/Magento/Setup/Module/I18n/Locale.php | 2 +- .../Magento/Setup/Module/I18n/Pack/Generator.php | 2 +- .../Module/I18n/Pack/Writer/File/AbstractFile.php | 2 +- .../Setup/Module/I18n/Pack/Writer/File/Csv.php | 2 +- .../Setup/Module/I18n/Pack/WriterInterface.php | 2 +- .../Setup/Module/I18n/Parser/AbstractParser.php | 2 +- .../Module/I18n/Parser/Adapter/AbstractAdapter.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/Html.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/Js.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/Php.php | 2 +- .../Module/I18n/Parser/Adapter/Php/Tokenizer.php | 2 +- .../Adapter/Php/Tokenizer/PhraseCollector.php | 2 +- .../I18n/Parser/Adapter/Php/Tokenizer/Token.php | 2 +- .../Php/Tokenizer/Translate/MethodCollector.php | 2 +- .../Setup/Module/I18n/Parser/Adapter/Xml.php | 2 +- .../Setup/Module/I18n/Parser/AdapterInterface.php | 2 +- .../Setup/Module/I18n/Parser/Contextual.php | 2 +- .../Magento/Setup/Module/I18n/Parser/Parser.php | 2 +- .../Magento/Setup/Module/I18n/ParserInterface.php | 2 +- .../Magento/Setup/Module/I18n/ServiceLocator.php | 2 +- setup/src/Magento/Setup/Module/ResourceFactory.php | 2 +- setup/src/Magento/Setup/Module/Setup.php | 2 +- .../Magento/Setup/Module/Setup/ResourceConfig.php | 2 +- .../src/Magento/Setup/Module/Setup/SetupCache.php | 2 +- setup/src/Magento/Setup/Module/SetupFactory.php | 2 +- .../Setup/Mvc/Bootstrap/InitParamListener.php | 2 +- .../Setup/Mvc/View/Http/InjectTemplateListener.php | 2 +- .../Console/Command/AdminUserCreateCommandTest.php | 2 +- .../Unit/Console/Command/BackupCommandTest.php | 2 +- .../Unit/Console/Command/ConfigSetCommandTest.php | 2 +- .../Unit/Console/Command/CronRunCommandTest.php | 2 +- .../Console/Command/DbDataUpgradeCommandTest.php | 2 +- .../Console/Command/DbSchemaUpgradeCommandTest.php | 2 +- .../Unit/Console/Command/DbStatusCommandTest.php | 2 +- .../Unit/Console/Command/DiCompileCommandTest.php | 2 +- .../Command/GenerateFixturesCommandTest.php | 2 +- .../Console/Command/InfoAdminUriCommandTest.php | 2 +- .../Console/Command/InfoBackupsListCommandTest.php | 2 +- .../Command/InfoCurrencyListCommandTest.php | 2 +- .../Command/InfoLanguageListCommandTest.php | 2 +- .../Command/InfoTimezoneListCommandTest.php | 2 +- .../Unit/Console/Command/InstallCommandTest.php | 2 +- .../InstallStoreConfigurationCommandTest.php | 2 +- .../Command/MaintenanceAllowIpsCommandTest.php | 2 +- .../Command/MaintenanceDisableCommandTest.php | 2 +- .../Command/MaintenanceEnableCommandTest.php | 2 +- .../Command/MaintenanceStatusCommandTest.php | 2 +- .../Command/ModuleEnableDisableCommandTest.php | 2 +- .../Console/Command/ModuleStatusCommandTest.php | 2 +- .../Console/Command/ModuleUninstallCommandTest.php | 2 +- .../Unit/Console/Command/RollbackCommandTest.php | 2 +- .../Unit/Console/Command/UninstallCommandTest.php | 2 +- .../Unit/Console/Command/UpgradeCommandTest.php | 2 +- .../Setup/Test/Unit/Console/CommandListTest.php | 2 +- .../Test/Unit/Console/CompilerPreparationTest.php | 2 +- .../Setup/Test/Unit/Controller/AddDatabaseTest.php | 2 +- .../Test/Unit/Controller/BackupActionItemsTest.php | 2 +- .../Test/Unit/Controller/CompleteBackupTest.php | 2 +- .../Test/Unit/Controller/ComponentGridTest.php | 2 +- .../Unit/Controller/CreateAdminAccountTest.php | 2 +- .../Test/Unit/Controller/CreateBackupTest.php | 2 +- .../Unit/Controller/CustomizeYourStoreTest.php | 2 +- .../Setup/Test/Unit/Controller/DataOptionTest.php | 2 +- .../Setup/Test/Unit/Controller/EnvironmentTest.php | 2 +- .../Setup/Test/Unit/Controller/IndexTest.php | 2 +- .../Unit/Controller/InstallExtensionGridTest.php | 2 +- .../Setup/Test/Unit/Controller/InstallTest.php | 2 +- .../Test/Unit/Controller/LandingInstallerTest.php | 2 +- .../Test/Unit/Controller/LandingUpdaterTest.php | 2 +- .../Setup/Test/Unit/Controller/LicenseTest.php | 2 +- .../Setup/Test/Unit/Controller/MaintenanceTest.php | 2 +- .../Setup/Test/Unit/Controller/MarketplaceTest.php | 2 +- .../Setup/Test/Unit/Controller/ModulesTest.php | 2 +- .../Setup/Test/Unit/Controller/NavigationTest.php | 2 +- .../Unit/Controller/OtherComponentsGridTest.php | 2 +- .../Controller/ReadinessCheckInstallerTest.php | 2 +- .../Unit/Controller/ReadinessCheckUpdaterTest.php | 2 +- .../Test/Unit/Controller/SelectVersionTest.php | 2 +- .../Setup/Test/Unit/Controller/SessionTest.php | 2 +- .../Test/Unit/Controller/StartUpdaterTest.php | 2 +- .../Setup/Test/Unit/Controller/SuccessTest.php | 2 +- .../Test/Unit/Controller/SystemConfigTest.php | 2 +- .../Test/Unit/Controller/UpdaterSuccessTest.php | 2 +- .../Test/Unit/Controller/WebConfigurationTest.php | 2 +- .../AttributeSet/AttributeSetFixtureTest.php | 2 +- .../Unit/Fixtures/AttributeSet/PatternTest.php | 2 +- .../Unit/Fixtures/CatalogPriceRulesFixtureTest.php | 2 +- .../Setup/Test/Unit/Fixtures/FixtureConfigTest.php | 2 +- .../Setup/Test/Unit/Fixtures/OrdersFixtureTest.php | 2 +- .../Test/Unit/Fixtures/TaxRatesFixtureTest.php | 2 +- .../Model/Address/AddressDataGeneratorTest.php | 2 +- .../Test/Unit/Model/AdminAccountFactoryTest.php | 2 +- .../Setup/Test/Unit/Model/AdminAccountTest.php | 2 +- .../Setup/Test/Unit/Model/BasePackageInfoTest.php | 2 +- .../Unit/Model/Complex/ComplexGeneratorTest.php | 2 +- .../Setup/Test/Unit/Model/Complex/PatternTest.php | 2 +- .../Setup/Test/Unit/Model/ConfigGeneratorTest.php | 2 +- .../Setup/Test/Unit/Model/ConfigModelTest.php | 2 +- .../Test/Unit/Model/ConfigOptionsListTest.php | 2 +- .../Unit/Model/Cron/Helper/ModuleUninstallTest.php | 2 +- .../Unit/Model/Cron/Helper/ThemeUninstallTest.php | 2 +- .../Unit/Model/Cron/JobComponentUninstallTest.php | 2 +- .../Test/Unit/Model/Cron/JobDbRollbackTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/JobFactoryTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/JobModuleTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/JobSetCacheTest.php | 2 +- .../Unit/Model/Cron/JobSetMaintenanceModeTest.php | 2 +- .../Unit/Model/Cron/JobStaticRegenerateTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/JobUpgradeTest.php | 2 +- .../Test/Unit/Model/Cron/Queue/ReaderTest.php | 2 +- .../Test/Unit/Model/Cron/Queue/WriterTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/QueueTest.php | 2 +- .../Test/Unit/Model/Cron/ReadinessCheckTest.php | 2 +- .../Setup/Test/Unit/Model/Cron/StatusTest.php | 2 +- .../Unit/Model/CronScriptReadinessCheckTest.php | 2 +- .../Model/Customer/CustomerDataGeneratorTest.php | 2 +- .../Setup/Test/Unit/Model/DataGeneratorTest.php | 2 +- .../Unit/Model/DateTime/DateTimeProviderTest.php | 2 +- .../Unit/Model/DateTime/TimeZoneProviderTest.php | 2 +- .../Unit/Model/DependencyReadinessCheckTest.php | 2 +- .../Model/Description/DescriptionGeneratorTest.php | 2 +- .../DescriptionParagraphGeneratorTest.php | 2 +- .../DescriptionSentenceGeneratorTest.php | 2 +- .../Unit/Model/Description/Mixin/BoldMixinTest.php | 2 +- .../Model/Description/Mixin/BrakeMixinTest.php | 2 +- .../Model/Description/Mixin/HeaderMixinTest.php | 2 +- .../Mixin/Helper/RandomWordSelectorTest.php | 2 +- .../Description/Mixin/Helper/WordWrapperTest.php | 2 +- .../Model/Description/Mixin/ItalicMixinTest.php | 2 +- .../Model/Description/Mixin/ParagraphMixinTest.php | 2 +- .../Unit/Model/Description/Mixin/SpanMixinTest.php | 2 +- .../Unit/Model/Description/MixinManagerTest.php | 2 +- .../Setup/Test/Unit/Model/DictionaryTest.php | 2 +- .../Model/FixtureGenerator/SqlCollectorTest.php | 2 +- .../Setup/Test/Unit/Model/GeneratorTest.php | 2 +- .../Setup/Test/Unit/Model/Grid/ExtensionTest.php | 2 +- .../Setup/Test/Unit/Model/Grid/ModuleTest.php | 2 +- .../Setup/Test/Unit/Model/Grid/TypeMapperTest.php | 2 +- .../Unit/Model/Installer/ProgressFactoryTest.php | 2 +- .../Test/Unit/Model/Installer/ProgressTest.php | 2 +- .../Setup/Test/Unit/Model/InstallerFactoryTest.php | 2 +- .../Setup/Test/Unit/Model/InstallerTest.php | 2 +- .../Magento/Setup/Test/Unit/Model/LicenseTest.php | 2 +- .../Setup/Test/Unit/Model/ModuleContextTest.php | 2 +- .../Unit/Model/ModuleRegistryUninstallerTest.php | 2 +- .../Test/Unit/Model/ModuleStatusFactoryTest.php | 2 +- .../Setup/Test/Unit/Model/ModuleStatusTest.php | 2 +- .../Test/Unit/Model/ModuleUninstallerTest.php | 2 +- .../Setup/Test/Unit/Model/NavigationTest.php | 2 +- .../Test/Unit/Model/ObjectManagerProviderTest.php | 2 +- .../Setup/Test/Unit/Model/PackagesAuthTest.php | 2 +- .../Setup/Test/Unit/Model/PackagesDataTest.php | 2 +- .../Setup/Test/Unit/Model/PayloadValidatorTest.php | 2 +- .../Setup/Test/Unit/Model/PhpInformationTest.php | 2 +- .../Test/Unit/Model/PhpReadinessCheckTest.php | 2 +- .../Model/SearchTermDescriptionGeneratorTest.php | 2 +- .../Test/Unit/Model/SearchTermManagerTest.php | 2 +- .../Model/StoreConfigurationDataMapperTest.php | 2 +- .../Setup/Test/Unit/Model/SystemPackageTest.php | 2 +- .../Model/ThemeDependencyCheckerFactoryTest.php | 2 +- .../Test/Unit/Model/UninstallCollectorTest.php | 2 +- .../Unit/Model/UninstallDependencyCheckTest.php | 2 +- .../Test/Unit/Model/UpdaterTaskCreatorTest.php | 2 +- .../Magento/Setup/Test/Unit/Model/UpdaterTest.php | 2 +- .../Setup/Test/Unit/Model/WebLoggerTest.php | 2 +- .../Setup/Test/Unit/Module/ConfigGeneratorTest.php | 2 +- .../Test/Unit/Module/ConnectionFactoryTest.php | 2 +- .../Test/Unit/Module/DataSetupFactoryTest.php | 2 +- .../Unit/Module/Dependency/Parser/CodeTest.php | 2 +- .../Module/Dependency/Parser/Composer/JsonTest.php | 2 +- .../Module/Dependency/Parser/Config/XmlTest.php | 2 +- .../Report/Builder/AbstractBuilderTest.php | 2 +- .../Dependency/Report/Circular/Data/ChainTest.php | 2 +- .../Dependency/Report/Circular/Data/ConfigTest.php | 2 +- .../Dependency/Report/Circular/Data/ModuleTest.php | 2 +- .../Report/Data/Config/AbstractConfigTest.php | 2 +- .../Report/Dependency/Data/ConfigTest.php | 2 +- .../Report/Dependency/Data/DependencyTest.php | 2 +- .../Report/Dependency/Data/ModuleTest.php | 2 +- .../Dependency/Report/Framework/BuilderTest.php | 2 +- .../Report/Framework/Data/ConfigTest.php | 2 +- .../Report/Framework/Data/DependencyTest.php | 2 +- .../Report/Framework/Data/ModuleTest.php | 2 +- .../Report/Writer/Csv/AbstractWriterTest.php | 2 +- .../Di/App/Task/ApplicationCodeGeneratorTest.php | 2 +- .../Test/Unit/Module/Di/App/Task/AreaTest.php | 2 +- .../Module/Di/App/Task/InterceptionCacheTest.php | 2 +- .../Module/Di/App/Task/OperationFactoryTest.php | 2 +- .../Unit/Module/Di/App/Task/ProxyGeneratorTest.php | 2 +- .../Module/Di/App/Task/RepositoryGeneratorTest.php | 2 +- .../Task/ServiceDataAttributesGeneratorTest.php | 2 +- .../InterceptionConfigurationBuilderTest.php | 2 +- .../Di/Code/Reader/ClassReaderDecoratorTest.php | 2 +- .../Module/Di/Code/Reader/ClassesScannerTest.php | 2 +- .../Di/Code/Reader/InstancesNamesList/AreaTest.php | 2 +- .../Reader/InstancesNamesList/DirectoryTest.php | 2 +- .../InstancesNamesList/InterceptionsTest.php | 2 +- .../Module/Di/Code/Scanner/ArrayScannerTest.php | 2 +- .../Di/Code/Scanner/CompositeScannerTest.php | 2 +- .../Di/Code/Scanner/ConfigurationScannerTest.php | 2 +- .../Di/Code/Scanner/DirectoryScannerTest.php | 2 +- .../Unit/Module/Di/Code/Scanner/PhpScannerTest.php | 2 +- .../Module/Di/Code/Scanner/PluginScannerTest.php | 2 +- .../Scanner/ServiceDataAttributesScannerTest.php | 2 +- .../Di/Code/Scanner/XmlInterceptorScannerTest.php | 2 +- .../Unit/Module/Di/Code/Scanner/XmlScannerTest.php | 2 +- .../Module/Di/Compiler/ArgumentsResolverTest.php | 2 +- .../Config/Chain/ArgumentsSerializationTest.php | 2 +- .../Di/Compiler/Config/Chain/BackslashTrimTest.php | 2 +- .../Config/Chain/InterceptorSubstitutionTest.php | 2 +- .../Config/Chain/PreferencesResolvingTest.php | 2 +- .../Di/Compiler/Config/ModificationChainTest.php | 2 +- .../Unit/Module/Di/Compiler/Config/ReaderTest.php | 2 +- .../Module/Di/Compiler/ConstructorArgumentTest.php | 2 +- .../Unit/Module/Di/Definition/CollectionTest.php | 2 +- .../Test/Unit/Module/Di/_files/additional.php | 2 +- .../Test/Unit/Module/Di/_files/app/bootstrap.php | 2 +- .../_files/app/code/Magento/SomeModule/Element.php | 2 +- .../app/code/Magento/SomeModule/ElementFactory.php | 2 +- .../app/code/Magento/SomeModule/Helper/Test.php | 2 +- .../code/Magento/SomeModule/Model/DoubleColon.php | 2 +- .../app/code/Magento/SomeModule/Model/Test.php | 2 +- .../Magento/SomeModule/etc/adminhtml/system.xml | 2 +- .../_files/app/code/Magento/SomeModule/etc/di.xml | 2 +- .../SomeModule/etc/source/PhpExt.php/content | 2 +- .../Magento/SomeModule/view/frontend/default.xml | 2 +- .../design/adminhtml/default/backend/layout.xml | 2 +- .../Unit/Module/Di/_files/app/etc/additional.xml | 2 +- .../Test/Unit/Module/Di/_files/app/etc/config.xml | 2 +- .../Unit/Module/Di/_files/app/etc/di/config.xml | 2 +- .../Unit/Module/Di/_files/extension_attributes.xml | 2 +- .../Setup/Test/Unit/Module/I18n/ContextTest.php | 2 +- .../Unit/Module/I18n/Dictionary/GeneratorTest.php | 2 +- .../Dictionary/Loader/File/AbstractFileTest.php | 2 +- .../Dictionary/Options/ResolverFactoryTest.php | 2 +- .../I18n/Dictionary/Options/ResolverTest.php | 2 +- .../Unit/Module/I18n/Dictionary/PhraseTest.php | 2 +- .../Module/I18n/Dictionary/Writer/Csv/StdoTest.php | 2 +- .../Unit/Module/I18n/Dictionary/Writer/CsvTest.php | 2 +- .../Setup/Test/Unit/Module/I18n/DictionaryTest.php | 2 +- .../Setup/Test/Unit/Module/I18n/FactoryTest.php | 2 +- .../Test/Unit/Module/I18n/FilesCollectorTest.php | 2 +- .../Setup/Test/Unit/Module/I18n/LocaleTest.php | 2 +- .../Test/Unit/Module/I18n/Pack/GeneratorTest.php | 2 +- .../I18n/Pack/Writer/File/AbstractFileTest.php | 2 +- .../Unit/Module/I18n/Pack/Writer/File/CsvTest.php | 2 +- .../Module/I18n/Pack/Writer/File/_files/ioMock.php | 2 +- .../Unit/Module/I18n/Parser/AbstractParserTest.php | 2 +- .../I18n/Parser/Adapter/AbstractAdapterTest.php | 2 +- .../Unit/Module/I18n/Parser/Adapter/HtmlTest.php | 2 +- .../Unit/Module/I18n/Parser/Adapter/JsTest.php | 2 +- .../Adapter/Php/Tokenizer/PhraseCollectorTest.php | 2 +- .../Parser/Adapter/Php/Tokenizer/TokenTest.php | 2 +- .../I18n/Parser/Adapter/Php/TokenizerTest.php | 2 +- .../Unit/Module/I18n/Parser/Adapter/PhpTest.php | 2 +- .../Unit/Module/I18n/Parser/Adapter/XmlTest.php | 2 +- .../Module/I18n/Parser/Adapter/_files/default.xml | 2 +- .../Module/I18n/Parser/Adapter/_files/email.html | 2 +- .../Unit/Module/I18n/Parser/Adapter/_files/file.js | 2 +- .../Test/Unit/Module/I18n/Parser/ParserTest.php | 2 +- .../Module/I18n/_files/files_collector/default.xml | 2 +- .../Module/I18n/_files/files_collector/file.js | 2 +- .../Setup/Test/Unit/Module/ResourceFactoryTest.php | 2 +- .../Test/Unit/Module/Setup/ResourceConfigTest.php | 2 +- .../Test/Unit/Module/Setup/SetupCacheTest.php | 2 +- .../Setup/Test/Unit/Module/SetupFactoryTest.php | 2 +- .../Magento/Setup/Test/Unit/Module/SetupTest.php | 2 +- .../Unit/Mvc/Bootstrap/InitParamListenerTest.php | 2 +- .../Setup/Test/Unit/Validator/DbValidatorTest.php | 2 +- .../Setup/Test/Unit/Validator/IpValidatorTest.php | 2 +- .../Setup/Validator/AdminCredentialsValidator.php | 2 +- setup/src/Magento/Setup/Validator/DbValidator.php | 2 +- setup/src/Magento/Setup/Validator/IpValidator.php | 2 +- setup/view/error/401.phtml | 2 +- setup/view/error/404.phtml | 2 +- setup/view/error/index.phtml | 2 +- setup/view/layout/layout.phtml | 2 +- setup/view/magento/setup/add-database.phtml | 2 +- .../magento/setup/complete-backup/progress.phtml | 2 +- setup/view/magento/setup/component-grid.phtml | 2 +- .../view/magento/setup/create-admin-account.phtml | 2 +- setup/view/magento/setup/create-backup.phtml | 2 +- .../view/magento/setup/customize-your-store.phtml | 2 +- setup/view/magento/setup/data-option.phtml | 2 +- setup/view/magento/setup/home.phtml | 2 +- setup/view/magento/setup/index.phtml | 2 +- .../magento/setup/install-extension-grid.phtml | 2 +- setup/view/magento/setup/install.phtml | 2 +- setup/view/magento/setup/landing.phtml | 2 +- setup/view/magento/setup/license.phtml | 2 +- .../magento/setup/marketplace-credentials.phtml | 2 +- .../view/magento/setup/navigation/header-bar.phtml | 2 +- setup/view/magento/setup/navigation/menu.phtml | 2 +- .../view/magento/setup/navigation/side-menu.phtml | 2 +- setup/view/magento/setup/popupauth.phtml | 2 +- setup/view/magento/setup/readiness-check.phtml | 2 +- .../magento/setup/readiness-check/progress.phtml | 2 +- setup/view/magento/setup/select-version.phtml | 2 +- setup/view/magento/setup/start-updater.phtml | 2 +- setup/view/magento/setup/success.phtml | 2 +- setup/view/magento/setup/system-config.phtml | 2 +- setup/view/magento/setup/updater-success.phtml | 2 +- setup/view/magento/setup/web-configuration.phtml | 2 +- setup/view/styles/lib/variables/_buttons.less | 2 +- setup/view/styles/lib/variables/_colors.less | 2 +- setup/view/styles/lib/variables/_typography.less | 2 +- 23470 files changed, 23616 insertions(+), 23614 deletions(-) diff --git a/.php_cs b/.php_cs index 4bd705bb09a2f..28d1ff0d3a5e9 100644 --- a/.php_cs +++ b/.php_cs @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/AdminNotification/etc/adminhtml/di.xml b/app/code/Magento/AdminNotification/etc/adminhtml/di.xml index 1be5f99616cc3..7eb1588baeb51 100644 --- a/app/code/Magento/AdminNotification/etc/adminhtml/di.xml +++ b/app/code/Magento/AdminNotification/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/adminhtml/events.xml b/app/code/Magento/AdminNotification/etc/adminhtml/events.xml index 9c897af0a2f94..e019bc47be509 100644 --- a/app/code/Magento/AdminNotification/etc/adminhtml/events.xml +++ b/app/code/Magento/AdminNotification/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/adminhtml/menu.xml b/app/code/Magento/AdminNotification/etc/adminhtml/menu.xml index 47c6644b9f369..fbed5c0960b73 100644 --- a/app/code/Magento/AdminNotification/etc/adminhtml/menu.xml +++ b/app/code/Magento/AdminNotification/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/adminhtml/routes.xml b/app/code/Magento/AdminNotification/etc/adminhtml/routes.xml index a710049993270..a8bff21b42a9f 100644 --- a/app/code/Magento/AdminNotification/etc/adminhtml/routes.xml +++ b/app/code/Magento/AdminNotification/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/adminhtml/system.xml b/app/code/Magento/AdminNotification/etc/adminhtml/system.xml index ab0cff5f897c1..71f25741ca851 100644 --- a/app/code/Magento/AdminNotification/etc/adminhtml/system.xml +++ b/app/code/Magento/AdminNotification/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/config.xml b/app/code/Magento/AdminNotification/etc/config.xml index f23962e0565f0..fd423cc554499 100644 --- a/app/code/Magento/AdminNotification/etc/config.xml +++ b/app/code/Magento/AdminNotification/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/di.xml b/app/code/Magento/AdminNotification/etc/di.xml index 03e415dd3714e..e0b0cbd6bfffa 100644 --- a/app/code/Magento/AdminNotification/etc/di.xml +++ b/app/code/Magento/AdminNotification/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/etc/module.xml b/app/code/Magento/AdminNotification/etc/module.xml index 8fdfc713293d3..8a792ee8453ce 100644 --- a/app/code/Magento/AdminNotification/etc/module.xml +++ b/app/code/Magento/AdminNotification/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/registration.php b/app/code/Magento/AdminNotification/registration.php index 9bd6a540462f7..b0e1c4ef1aa44 100644 --- a/app/code/Magento/AdminNotification/registration.php +++ b/app/code/Magento/AdminNotification/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_index.xml b/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_index.xml index 1083e32f3c942..112052830e38f 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_index.xml +++ b/app/code/Magento/AdminNotification/view/adminhtml/layout/adminhtml_notification_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml index 836399135228a..4e07391cae96c 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml +++ b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdminNotification/view/adminhtml/requirejs-config.js b/app/code/Magento/AdminNotification/view/adminhtml/requirejs-config.js index c866e796e0ade..9b29b3402c402 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/AdminNotification/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml index 5e0e23246764a..c6b8bda208410 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/notification/window.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/AdvancedPricingImportExport/etc/di.xml b/app/code/Magento/AdvancedPricingImportExport/etc/di.xml index 15e505282dd94..631e351e76b41 100644 --- a/app/code/Magento/AdvancedPricingImportExport/etc/di.xml +++ b/app/code/Magento/AdvancedPricingImportExport/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdvancedPricingImportExport/etc/export.xml b/app/code/Magento/AdvancedPricingImportExport/etc/export.xml index da176e7bd73e1..ca2408420daa2 100644 --- a/app/code/Magento/AdvancedPricingImportExport/etc/export.xml +++ b/app/code/Magento/AdvancedPricingImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdvancedPricingImportExport/etc/import.xml b/app/code/Magento/AdvancedPricingImportExport/etc/import.xml index 80c8873aad387..eb6e5c5f666c2 100644 --- a/app/code/Magento/AdvancedPricingImportExport/etc/import.xml +++ b/app/code/Magento/AdvancedPricingImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdvancedPricingImportExport/etc/module.xml b/app/code/Magento/AdvancedPricingImportExport/etc/module.xml index f9ad9f34b2ad6..ac4b8dafd0183 100644 --- a/app/code/Magento/AdvancedPricingImportExport/etc/module.xml +++ b/app/code/Magento/AdvancedPricingImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/AdvancedPricingImportExport/registration.php b/app/code/Magento/AdvancedPricingImportExport/registration.php index a9477f3a9a1fb..bd00e7cf7d5ae 100644 --- a/app/code/Magento/AdvancedPricingImportExport/registration.php +++ b/app/code/Magento/AdvancedPricingImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Authorization/etc/module.xml b/app/code/Magento/Authorization/etc/module.xml index f27253870499d..357e36d937e50 100644 --- a/app/code/Magento/Authorization/etc/module.xml +++ b/app/code/Magento/Authorization/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorization/registration.php b/app/code/Magento/Authorization/registration.php index f35b17a4d6710..1b7855f81ce35 100644 --- a/app/code/Magento/Authorization/registration.php +++ b/app/code/Magento/Authorization/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Authorizenet/etc/adminhtml/events.xml b/app/code/Magento/Authorizenet/etc/adminhtml/events.xml index 8114b8c8312cc..085598d3fa95c 100644 --- a/app/code/Magento/Authorizenet/etc/adminhtml/events.xml +++ b/app/code/Magento/Authorizenet/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/adminhtml/routes.xml b/app/code/Magento/Authorizenet/etc/adminhtml/routes.xml index 028e1a8500d07..00bb0475766f9 100644 --- a/app/code/Magento/Authorizenet/etc/adminhtml/routes.xml +++ b/app/code/Magento/Authorizenet/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml index 3d4cde185dcd1..1319fa102d0d8 100644 --- a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml +++ b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/config.xml b/app/code/Magento/Authorizenet/etc/config.xml index f5b053003f1f2..eacf77cda1e77 100644 --- a/app/code/Magento/Authorizenet/etc/config.xml +++ b/app/code/Magento/Authorizenet/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/di.xml b/app/code/Magento/Authorizenet/etc/di.xml index 3bd70f25a3bf9..b25db520022a2 100644 --- a/app/code/Magento/Authorizenet/etc/di.xml +++ b/app/code/Magento/Authorizenet/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/frontend/di.xml b/app/code/Magento/Authorizenet/etc/frontend/di.xml index 8dcf8ed700dcb..a0e5d907b15aa 100644 --- a/app/code/Magento/Authorizenet/etc/frontend/di.xml +++ b/app/code/Magento/Authorizenet/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/frontend/events.xml b/app/code/Magento/Authorizenet/etc/frontend/events.xml index 2c6e3f12a9196..9910dc4776fbe 100644 --- a/app/code/Magento/Authorizenet/etc/frontend/events.xml +++ b/app/code/Magento/Authorizenet/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/frontend/page_types.xml b/app/code/Magento/Authorizenet/etc/frontend/page_types.xml index be4692b135955..56bfca71231cd 100644 --- a/app/code/Magento/Authorizenet/etc/frontend/page_types.xml +++ b/app/code/Magento/Authorizenet/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/frontend/routes.xml b/app/code/Magento/Authorizenet/etc/frontend/routes.xml index 1bdcff9f1efe1..e570f24f66c9c 100644 --- a/app/code/Magento/Authorizenet/etc/frontend/routes.xml +++ b/app/code/Magento/Authorizenet/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/frontend/sections.xml b/app/code/Magento/Authorizenet/etc/frontend/sections.xml index 977a4b14e3e14..1239398b06a10 100644 --- a/app/code/Magento/Authorizenet/etc/frontend/sections.xml +++ b/app/code/Magento/Authorizenet/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/etc/module.xml b/app/code/Magento/Authorizenet/etc/module.xml index 91d93e56e0cad..6d05f14d21318 100644 --- a/app/code/Magento/Authorizenet/etc/module.xml +++ b/app/code/Magento/Authorizenet/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/registration.php b/app/code/Magento/Authorizenet/registration.php index ad98beafa744d..1ad96fcf28049 100644 --- a/app/code/Magento/Authorizenet/registration.php +++ b/app/code/Magento/Authorizenet/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_index.xml b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_index.xml index 851cbf398750d..b675e49d72618 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_index.xml +++ b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml index ec5ce845b8521..ae14700836667 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml +++ b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_view.xml index 7470afcfdb7d0..57aeffce62c27 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/Authorizenet/view/adminhtml/layout/sales_order_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/iframe.phtml b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/iframe.phtml index 2b95af46a6b47..8bfeede4059c2 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/iframe.phtml +++ b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/iframe.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_redirect.xml b/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_redirect.xml index 1eedd5e26a3ed..2486b7af30964 100644 --- a/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_redirect.xml +++ b/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_redirect.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_response.xml b/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_response.xml index 1eedd5e26a3ed..2486b7af30964 100644 --- a/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_response.xml +++ b/app/code/Magento/Authorizenet/view/frontend/layout/authorizenet_directpost_payment_response.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Authorizenet/view/frontend/layout/checkout_index_index.xml index 1025207fec1d5..a61e503fedc64 100644 --- a/app/code/Magento/Authorizenet/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Authorizenet/view/frontend/layout/checkout_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Authorizenet/view/frontend/requirejs-config.js b/app/code/Magento/Authorizenet/view/frontend/requirejs-config.js index 26c0e732303d0..8edc38dce6f60 100644 --- a/app/code/Magento/Authorizenet/view/frontend/requirejs-config.js +++ b/app/code/Magento/Authorizenet/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/authorizenet.js b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/authorizenet.js index 6f7f94eab63fc..c8293cf35582d 100644 --- a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/authorizenet.js +++ b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/authorizenet.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js index a40f3e9276712..3e43121f72720 100644 --- a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js +++ b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define( diff --git a/app/code/Magento/Authorizenet/view/frontend/web/template/payment/authorizenet-directpost.html b/app/code/Magento/Authorizenet/view/frontend/web/template/payment/authorizenet-directpost.html index 2de6cad54d267..e12096b8173f7 100644 --- a/app/code/Magento/Authorizenet/view/frontend/web/template/payment/authorizenet-directpost.html +++ b/app/code/Magento/Authorizenet/view/frontend/web/template/payment/authorizenet-directpost.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/App/AbstractAction.php b/app/code/Magento/Backend/App/AbstractAction.php index 95045e0946831..ba90bc0c3e210 100644 --- a/app/code/Magento/Backend/App/AbstractAction.php +++ b/app/code/Magento/Backend/App/AbstractAction.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/Test/Unit/Model/Menu/Config/_files/valid_menu.xml b/app/code/Magento/Backend/Test/Unit/Model/Menu/Config/_files/valid_menu.xml index d60f5a0cd37da..6a169ea126a68 100644 --- a/app/code/Magento/Backend/Test/Unit/Model/Menu/Config/_files/valid_menu.xml +++ b/app/code/Magento/Backend/Test/Unit/Model/Menu/Config/_files/valid_menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php b/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php index 7b25a07e51aba..8a7d3ba9f74d6 100644 --- a/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php +++ b/app/code/Magento/Backend/Test/Unit/Model/Menu/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/Test/Unit/Model/_files/menu_merged.xml b/app/code/Magento/Backend/Test/Unit/Model/_files/menu_merged.xml index e7ac5aec547d2..5f290e635df31 100644 --- a/app/code/Magento/Backend/Test/Unit/Model/_files/menu_merged.xml +++ b/app/code/Magento/Backend/Test/Unit/Model/_files/menu_merged.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/Test/Unit/Setup/ConfigOptionsListTest.php b/app/code/Magento/Backend/Test/Unit/Setup/ConfigOptionsListTest.php index 89a87de6f12f5..210b4de137172 100644 --- a/app/code/Magento/Backend/Test/Unit/Setup/ConfigOptionsListTest.php +++ b/app/code/Magento/Backend/Test/Unit/Setup/ConfigOptionsListTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/etc/adminhtml/di.xml b/app/code/Magento/Backend/etc/adminhtml/di.xml index c38c284f3c560..eff6262a63da6 100644 --- a/app/code/Magento/Backend/etc/adminhtml/di.xml +++ b/app/code/Magento/Backend/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/adminhtml/menu.xml b/app/code/Magento/Backend/etc/adminhtml/menu.xml index d7d57b7953c77..b6f62310c179e 100644 --- a/app/code/Magento/Backend/etc/adminhtml/menu.xml +++ b/app/code/Magento/Backend/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/adminhtml/routes.xml b/app/code/Magento/Backend/etc/adminhtml/routes.xml index 2f3857c91c5c0..0a870f4fdf4fb 100644 --- a/app/code/Magento/Backend/etc/adminhtml/routes.xml +++ b/app/code/Magento/Backend/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index 813a097ea6bf3..c038c58369c00 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/config.xml b/app/code/Magento/Backend/etc/config.xml index ee10f5f4c1683..0f4a3e5153cda 100644 --- a/app/code/Magento/Backend/etc/config.xml +++ b/app/code/Magento/Backend/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/crontab.xml b/app/code/Magento/Backend/etc/crontab.xml index 4f6450a7226ae..e555fbdcb394e 100644 --- a/app/code/Magento/Backend/etc/crontab.xml +++ b/app/code/Magento/Backend/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/di.xml b/app/code/Magento/Backend/etc/di.xml index 2ed8a77bbac43..a6da91f2c9b85 100644 --- a/app/code/Magento/Backend/etc/di.xml +++ b/app/code/Magento/Backend/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/menu.xsd b/app/code/Magento/Backend/etc/menu.xsd index 5c5ad89bd89c1..08edb5bb30c75 100644 --- a/app/code/Magento/Backend/etc/menu.xsd +++ b/app/code/Magento/Backend/etc/menu.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/module.xml b/app/code/Magento/Backend/etc/module.xml index b7f188e78d34e..57e00489391f2 100644 --- a/app/code/Magento/Backend/etc/module.xml +++ b/app/code/Magento/Backend/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/etc/webapi.xml b/app/code/Magento/Backend/etc/webapi.xml index 14d4dccc78cbe..7f9da7fe66dc5 100644 --- a/app/code/Magento/Backend/etc/webapi.xml +++ b/app/code/Magento/Backend/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/registration.php b/app/code/Magento/Backend/registration.php index fac71f545151f..6d5b33f9b463d 100644 --- a/app/code/Magento/Backend/registration.php +++ b/app/code/Magento/Backend/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml index bb7370b3317a4..f4c04e937a00b 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_auth_login.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_block.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_block.xml index 6374f0d31b6bb..de94f28687c3b 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_block.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_index.xml index 77ba8f6f39824..ab5ddc414b51f 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_index.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_cache_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersmost.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersmost.xml index 31b3ff2c44bc1..5d82942b2c38c 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersmost.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersmost.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersnewest.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersnewest.xml index ce4e20140eb54..53afc1e89e387 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersnewest.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_customersnewest.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml index b353b81aa1b7c..803eb1dbe903b 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_productsviewed.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_productsviewed.xml index 4621d83dc6753..a3ee3ec9bf06a 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_productsviewed.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_productsviewed.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_denied.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_denied.xml index fac9407cc3298..27f2d021212c7 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_denied.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_denied.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_noroute.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_noroute.xml index 598bdf490e8a5..b22f429fceca4 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_noroute.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_noroute.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_account_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_account_index.xml index dfc27d5e6b5e0..6eb3642ad99b0 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_account_index.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_account_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_edit.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_edit.xml index 91469c51e06c9..52fe538a2edcb 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_edit.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid.xml index bda7f3883adce..314b39ad63108 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid_block.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid_block.xml index a39aee9813286..52d88ce717043 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid_block.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_grid_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_index.xml index 7412c983cff8b..70e4bd94e6a15 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_index.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_design_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_grid_block.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_grid_block.xml index 0521a87831663..8dcb6e07b3c4e 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_grid_block.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_grid_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_index.xml b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_index.xml index 2abd830f5fa37..7fdfe4044a3da 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_index.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/adminhtml_system_store_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/default.xml b/app/code/Magento/Backend/view/adminhtml/layout/default.xml index 1ab7ef1e6cf60..7cfe8bc748482 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/default.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/editor.xml b/app/code/Magento/Backend/view/adminhtml/layout/editor.xml index 2c34667c0502e..a1b32a3b2243b 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/editor.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/editor.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/empty.xml b/app/code/Magento/Backend/view/adminhtml/layout/empty.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/empty.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/empty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/formkey.xml b/app/code/Magento/Backend/view/adminhtml/layout/formkey.xml index 6ba9743703ed4..4ced64395b424 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/formkey.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/formkey.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/overlay_popup.xml b/app/code/Magento/Backend/view/adminhtml/layout/overlay_popup.xml index 8a48fcca66c0e..93cb1dc01aa19 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/overlay_popup.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/overlay_popup.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/layout/popup.xml b/app/code/Magento/Backend/view/adminhtml/layout/popup.xml index dd65940af81e5..b09a87e035ee4 100644 --- a/app/code/Magento/Backend/view/adminhtml/layout/popup.xml +++ b/app/code/Magento/Backend/view/adminhtml/layout/popup.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/requirejs-config.js b/app/code/Magento/Backend/view/adminhtml/requirejs-config.js index 2703ea79738b7..3419b18af05cd 100644 --- a/app/code/Magento/Backend/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/Backend/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*eslint no-unused-vars: 0*/ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/access_denied.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/access_denied.phtml index 32910c9978d2d..c91cf9b079854 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/admin/access_denied.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/access_denied.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml index 372e426dc9d00..c829a2f01fa9c 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/login.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml b/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml index e95b063599daa..833570254095a 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/admin/overlay_popup.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml b/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml index aeac3fd33248c..2152fd5fc44d2 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml index b4e7c2d7f50a8..b45a2ae6cb1c1 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/page/notices.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/system/design/index.phtml b/app/code/Magento/Backend/view/adminhtml/templates/system/design/index.phtml index 2cdb9f451a86f..bb3f69ead1c2d 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/system/design/index.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/system/design/index.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/accordion.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/accordion.phtml index 060ee67e9a7b2..d59617a8693eb 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/accordion.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/accordion.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_listing.xml b/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_listing.xml index c299f217c8df7..26acbad9dee88 100644 --- a/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_listing.xml +++ b/app/code/Magento/Backend/view/adminhtml/ui_component/design_config_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/web/js/bootstrap/editor.js b/app/code/Magento/Backend/view/adminhtml/web/js/bootstrap/editor.js index de003bb3b8d08..2a119a1d9883e 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/js/bootstrap/editor.js +++ b/app/code/Magento/Backend/view/adminhtml/web/js/bootstrap/editor.js @@ -1,6 +1,6 @@ /** * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ require([ diff --git a/app/code/Magento/Backend/view/adminhtml/web/js/media-uploader.js b/app/code/Magento/Backend/view/adminhtml/web/js/media-uploader.js index fe7c8dd7cb800..b1d99487fa843 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/js/media-uploader.js +++ b/app/code/Magento/Backend/view/adminhtml/web/js/media-uploader.js @@ -1,6 +1,6 @@ /** * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global byteConvert*/ diff --git a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/cells/action-delete.html b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/cells/action-delete.html index d58d3e8990e64..3003096970759 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/cells/action-delete.html +++ b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/cells/action-delete.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html index 3de4b65aa2a5f..40a275ed6a98e 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html +++ b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backend/view/adminhtml/web/template/form/element/helper/fallback-reset-link.html b/app/code/Magento/Backend/view/adminhtml/web/template/form/element/helper/fallback-reset-link.html index f788dbb6fbe20..97fe7e2bd9269 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/template/form/element/helper/fallback-reset-link.html +++ b/app/code/Magento/Backend/view/adminhtml/web/template/form/element/helper/fallback-reset-link.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backup/Block/Adminhtml/Backup.php b/app/code/Magento/Backup/Block/Adminhtml/Backup.php index 4d4624caa3b24..7e8cad886b4a3 100644 --- a/app/code/Magento/Backup/Block/Adminhtml/Backup.php +++ b/app/code/Magento/Backup/Block/Adminhtml/Backup.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backup/etc/adminhtml/menu.xml b/app/code/Magento/Backup/etc/adminhtml/menu.xml index 32c2936697fac..27991e57b8485 100644 --- a/app/code/Magento/Backup/etc/adminhtml/menu.xml +++ b/app/code/Magento/Backup/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/etc/adminhtml/routes.xml b/app/code/Magento/Backup/etc/adminhtml/routes.xml index 232c0ca0f9d6a..f24ff67ecff65 100644 --- a/app/code/Magento/Backup/etc/adminhtml/routes.xml +++ b/app/code/Magento/Backup/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/etc/adminhtml/system.xml b/app/code/Magento/Backup/etc/adminhtml/system.xml index 325395826df15..4028452d04439 100644 --- a/app/code/Magento/Backup/etc/adminhtml/system.xml +++ b/app/code/Magento/Backup/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/etc/crontab.xml b/app/code/Magento/Backup/etc/crontab.xml index 150751eb94a1f..59694ccdd9802 100644 --- a/app/code/Magento/Backup/etc/crontab.xml +++ b/app/code/Magento/Backup/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/etc/di.xml b/app/code/Magento/Backup/etc/di.xml index fc9c5bb2ff025..6b1359a3ea40b 100644 --- a/app/code/Magento/Backup/etc/di.xml +++ b/app/code/Magento/Backup/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/etc/module.xml b/app/code/Magento/Backup/etc/module.xml index 9f4fe8da7ac1d..667ec9d8a7461 100644 --- a/app/code/Magento/Backup/etc/module.xml +++ b/app/code/Magento/Backup/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/registration.php b/app/code/Magento/Backup/registration.php index d429ad8208552..042ec939dcf5b 100644 --- a/app/code/Magento/Backup/registration.php +++ b/app/code/Magento/Backup/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backup/view/adminhtml/layout/backup_index_grid.xml b/app/code/Magento/Backup/view/adminhtml/layout/backup_index_grid.xml index 03b4aa4a7f4ad..5631a53737ef6 100644 --- a/app/code/Magento/Backup/view/adminhtml/layout/backup_index_grid.xml +++ b/app/code/Magento/Backup/view/adminhtml/layout/backup_index_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/view/adminhtml/layout/backup_index_index.xml b/app/code/Magento/Backup/view/adminhtml/layout/backup_index_index.xml index 242534d006e37..bdfa8b6bee899 100644 --- a/app/code/Magento/Backup/view/adminhtml/layout/backup_index_index.xml +++ b/app/code/Magento/Backup/view/adminhtml/layout/backup_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index dc4ce1d52438d..d5836ae0d36fe 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/list.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/list.phtml index ace0931b60428..0625c917b8daf 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/list.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/list.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/etc/adminhtml/di.xml b/app/code/Magento/Braintree/etc/adminhtml/di.xml index d590066b1fbf2..90fc927ed4f80 100644 --- a/app/code/Magento/Braintree/etc/adminhtml/di.xml +++ b/app/code/Magento/Braintree/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/adminhtml/menu.xml b/app/code/Magento/Braintree/etc/adminhtml/menu.xml index 43d12aa0bb995..590d5b3dce008 100644 --- a/app/code/Magento/Braintree/etc/adminhtml/menu.xml +++ b/app/code/Magento/Braintree/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/adminhtml/routes.xml b/app/code/Magento/Braintree/etc/adminhtml/routes.xml index 0991aef948541..5349d540598ce 100644 --- a/app/code/Magento/Braintree/etc/adminhtml/routes.xml +++ b/app/code/Magento/Braintree/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/adminhtml/system.xml b/app/code/Magento/Braintree/etc/adminhtml/system.xml index 4c7f46268548d..473848f0fae18 100644 --- a/app/code/Magento/Braintree/etc/adminhtml/system.xml +++ b/app/code/Magento/Braintree/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/config.xml b/app/code/Magento/Braintree/etc/config.xml index eaa233da109ce..e9aaa75cd92a3 100644 --- a/app/code/Magento/Braintree/etc/config.xml +++ b/app/code/Magento/Braintree/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/di.xml b/app/code/Magento/Braintree/etc/di.xml index b5a986d3162a5..a4f9167b06df8 100644 --- a/app/code/Magento/Braintree/etc/di.xml +++ b/app/code/Magento/Braintree/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/events.xml b/app/code/Magento/Braintree/etc/events.xml index 2bf95bdbad178..a87d518a85a36 100644 --- a/app/code/Magento/Braintree/etc/events.xml +++ b/app/code/Magento/Braintree/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/frontend/di.xml b/app/code/Magento/Braintree/etc/frontend/di.xml index 781f985b4b3a8..1983bb1f20e62 100644 --- a/app/code/Magento/Braintree/etc/frontend/di.xml +++ b/app/code/Magento/Braintree/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/frontend/events.xml b/app/code/Magento/Braintree/etc/frontend/events.xml index e1bff1a20b238..77bc1a45e65ee 100644 --- a/app/code/Magento/Braintree/etc/frontend/events.xml +++ b/app/code/Magento/Braintree/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/frontend/routes.xml b/app/code/Magento/Braintree/etc/frontend/routes.xml index ad8b484ca30d6..5dbe389ac84f8 100644 --- a/app/code/Magento/Braintree/etc/frontend/routes.xml +++ b/app/code/Magento/Braintree/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/frontend/sections.xml b/app/code/Magento/Braintree/etc/frontend/sections.xml index add86f4cdb5cc..e44fb38aaef4b 100644 --- a/app/code/Magento/Braintree/etc/frontend/sections.xml +++ b/app/code/Magento/Braintree/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/etc/module.xml b/app/code/Magento/Braintree/etc/module.xml index 56f0fa6108783..8364d0e94028b 100644 --- a/app/code/Magento/Braintree/etc/module.xml +++ b/app/code/Magento/Braintree/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/registration.php b/app/code/Magento/Braintree/registration.php index d56ac32c07c96..11fddbcea6036 100644 --- a/app/code/Magento/Braintree/registration.php +++ b/app/code/Magento/Braintree/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/layout/braintree_report_index.xml b/app/code/Magento/Braintree/view/adminhtml/layout/braintree_report_index.xml index 396f86b903fd5..fef51cff62fc5 100644 --- a/app/code/Magento/Braintree/view/adminhtml/layout/braintree_report_index.xml +++ b/app/code/Magento/Braintree/view/adminhtml/layout/braintree_report_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_index.xml b/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_index.xml index b5ce1fc9c6792..5394f0b7370a6 100644 --- a/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_index.xml +++ b/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml b/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml index 0cfa34cf020c1..ca1b1980d0365 100644 --- a/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml +++ b/app/code/Magento/Braintree/view/adminhtml/layout/sales_order_create_load_block_billing_method.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/templates/form/cc.phtml b/app/code/Magento/Braintree/view/adminhtml/templates/form/cc.phtml index 50076da1a851f..b039d4287a2e8 100644 --- a/app/code/Magento/Braintree/view/adminhtml/templates/form/cc.phtml +++ b/app/code/Magento/Braintree/view/adminhtml/templates/form/cc.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/web/js/braintree.js b/app/code/Magento/Braintree/view/adminhtml/web/js/braintree.js index af0fac558d89f..5e1e85e6a3c48 100644 --- a/app/code/Magento/Braintree/view/adminhtml/web/js/braintree.js +++ b/app/code/Magento/Braintree/view/adminhtml/web/js/braintree.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/Braintree/view/adminhtml/web/js/grid/filters/status.html b/app/code/Magento/Braintree/view/adminhtml/web/js/grid/filters/status.html index f69cbcc619846..63fa308beee48 100644 --- a/app/code/Magento/Braintree/view/adminhtml/web/js/grid/filters/status.html +++ b/app/code/Magento/Braintree/view/adminhtml/web/js/grid/filters/status.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/view/adminhtml/web/js/grid/provider.js b/app/code/Magento/Braintree/view/adminhtml/web/js/grid/provider.js index 8b1380f6029be..373b01d5eaa7e 100644 --- a/app/code/Magento/Braintree/view/adminhtml/web/js/grid/provider.js +++ b/app/code/Magento/Braintree/view/adminhtml/web/js/grid/provider.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Braintree/view/adminhtml/web/js/vault.js b/app/code/Magento/Braintree/view/adminhtml/web/js/vault.js index 47decbb18bdbe..a1a1c81d27c3d 100644 --- a/app/code/Magento/Braintree/view/adminhtml/web/js/vault.js +++ b/app/code/Magento/Braintree/view/adminhtml/web/js/vault.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/Braintree/view/adminhtml/web/styles.css b/app/code/Magento/Braintree/view/adminhtml/web/styles.css index 19a4f794fb428..3c9daaaee72f7 100644 --- a/app/code/Magento/Braintree/view/adminhtml/web/styles.css +++ b/app/code/Magento/Braintree/view/adminhtml/web/styles.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Braintree/view/base/web/js/validator.js b/app/code/Magento/Braintree/view/base/web/js/validator.js index 931774aaffa2d..3ed678cfb7eac 100644 --- a/app/code/Magento/Braintree/view/base/web/js/validator.js +++ b/app/code/Magento/Braintree/view/base/web/js/validator.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/Braintree/view/frontend/layout/braintree_paypal_review.xml b/app/code/Magento/Braintree/view/frontend/layout/braintree_paypal_review.xml index a5125861a048f..ce1c866f1cb6e 100644 --- a/app/code/Magento/Braintree/view/frontend/layout/braintree_paypal_review.xml +++ b/app/code/Magento/Braintree/view/frontend/layout/braintree_paypal_review.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Braintree/view/frontend/layout/checkout_index_index.xml index 872cb7d51ce1f..ab294f8e797b7 100644 --- a/app/code/Magento/Braintree/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Braintree/view/frontend/layout/checkout_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/frontend/layout/vault_cards_listaction.xml b/app/code/Magento/Braintree/view/frontend/layout/vault_cards_listaction.xml index 1ab68abf1976d..f94eafa0f6f76 100644 --- a/app/code/Magento/Braintree/view/frontend/layout/vault_cards_listaction.xml +++ b/app/code/Magento/Braintree/view/frontend/layout/vault_cards_listaction.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Braintree/view/frontend/requirejs-config.js b/app/code/Magento/Braintree/view/frontend/requirejs-config.js index e12a4dd87043e..8b347d799007a 100644 --- a/app/code/Magento/Braintree/view/frontend/requirejs-config.js +++ b/app/code/Magento/Braintree/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Braintree/view/frontend/templates/paypal/button.phtml b/app/code/Magento/Braintree/view/frontend/templates/paypal/button.phtml index 5fc4bf83cab28..a244833051082 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/paypal/button.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/paypal/button.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal.html b/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal.html index 8df52975917b9..ae1df2a195d35 100644 --- a/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal.html +++ b/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal/vault.html b/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal/vault.html index 28cd3ebb2f2d1..b9402da02cc8a 100644 --- a/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal/vault.html +++ b/app/code/Magento/Braintree/view/frontend/web/template/payment/paypal/vault.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/Api/Data/BundleOptionInterface.php b/app/code/Magento/Bundle/Api/Data/BundleOptionInterface.php index 5ef6c2971b18b..f8051bb7895e4 100644 --- a/app/code/Magento/Bundle/Api/Data/BundleOptionInterface.php +++ b/app/code/Magento/Bundle/Api/Data/BundleOptionInterface.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/etc/adminhtml/events.xml b/app/code/Magento/Bundle/etc/adminhtml/events.xml index cd8af005694ea..ff0fa5d58dc23 100644 --- a/app/code/Magento/Bundle/etc/adminhtml/events.xml +++ b/app/code/Magento/Bundle/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/adminhtml/routes.xml b/app/code/Magento/Bundle/etc/adminhtml/routes.xml index d2e7c9c3b20f9..926190c8a1f85 100644 --- a/app/code/Magento/Bundle/etc/adminhtml/routes.xml +++ b/app/code/Magento/Bundle/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/catalog_attributes.xml b/app/code/Magento/Bundle/etc/catalog_attributes.xml index 8c45aaab6c46f..5a96484ca1014 100644 --- a/app/code/Magento/Bundle/etc/catalog_attributes.xml +++ b/app/code/Magento/Bundle/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/config.xml b/app/code/Magento/Bundle/etc/config.xml index 0016210cd149d..152f04e251c35 100644 --- a/app/code/Magento/Bundle/etc/config.xml +++ b/app/code/Magento/Bundle/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/di.xml b/app/code/Magento/Bundle/etc/di.xml index 2899ce28d0400..d3cb063ce0d03 100644 --- a/app/code/Magento/Bundle/etc/di.xml +++ b/app/code/Magento/Bundle/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/extension_attributes.xml b/app/code/Magento/Bundle/etc/extension_attributes.xml index d23dfc71b39fc..a8bd6e1872cd0 100644 --- a/app/code/Magento/Bundle/etc/extension_attributes.xml +++ b/app/code/Magento/Bundle/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/frontend/di.xml b/app/code/Magento/Bundle/etc/frontend/di.xml index 084f681df7e03..54f6d3b4b0f42 100644 --- a/app/code/Magento/Bundle/etc/frontend/di.xml +++ b/app/code/Magento/Bundle/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/frontend/events.xml b/app/code/Magento/Bundle/etc/frontend/events.xml index d08cdb4bcc997..d4505c8a5337e 100644 --- a/app/code/Magento/Bundle/etc/frontend/events.xml +++ b/app/code/Magento/Bundle/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/module.xml b/app/code/Magento/Bundle/etc/module.xml index 77b78dcc43284..86085d8301142 100644 --- a/app/code/Magento/Bundle/etc/module.xml +++ b/app/code/Magento/Bundle/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/pdf.xml b/app/code/Magento/Bundle/etc/pdf.xml index 912aa1426efa1..24f46afb5b9ba 100644 --- a/app/code/Magento/Bundle/etc/pdf.xml +++ b/app/code/Magento/Bundle/etc/pdf.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/product_types.xml b/app/code/Magento/Bundle/etc/product_types.xml index 6168189a3b4e3..75c2e5970e440 100644 --- a/app/code/Magento/Bundle/etc/product_types.xml +++ b/app/code/Magento/Bundle/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/sales.xml b/app/code/Magento/Bundle/etc/sales.xml index 3094eb6bfecfa..4d632b3a5b3ab 100644 --- a/app/code/Magento/Bundle/etc/sales.xml +++ b/app/code/Magento/Bundle/etc/sales.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/webapi.xml b/app/code/Magento/Bundle/etc/webapi.xml index 69124309687a3..79aa530ef38a3 100644 --- a/app/code/Magento/Bundle/etc/webapi.xml +++ b/app/code/Magento/Bundle/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/webapi_rest/di.xml b/app/code/Magento/Bundle/etc/webapi_rest/di.xml index 084f681df7e03..54f6d3b4b0f42 100644 --- a/app/code/Magento/Bundle/etc/webapi_rest/di.xml +++ b/app/code/Magento/Bundle/etc/webapi_rest/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/etc/webapi_soap/di.xml b/app/code/Magento/Bundle/etc/webapi_soap/di.xml index 084f681df7e03..54f6d3b4b0f42 100644 --- a/app/code/Magento/Bundle/etc/webapi_soap/di.xml +++ b/app/code/Magento/Bundle/etc/webapi_soap/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/registration.php b/app/code/Magento/Bundle/registration.php index 53f3657ae0519..3a3dacddd5079 100644 --- a/app/code/Magento/Bundle/registration.php +++ b/app/code/Magento/Bundle/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/adminhtml_order_shipment_view.xml b/app/code/Magento/Bundle/view/adminhtml/layout/adminhtml_order_shipment_view.xml index 6b97971a0ee51..163fc2b7b20f4 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/adminhtml_order_shipment_view.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/adminhtml_order_shipment_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_bundle.xml b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_bundle.xml index d0fdb184355d7..46bc496e67a9e 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_bundle.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_bundle.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_new.xml index a496ea7538923..34f47b745b8e9 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_view_type_bundle.xml b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_view_type_bundle.xml index 15374cb987d36..ad7b4d4a45843 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_view_type_bundle.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/catalog_product_view_type_bundle.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/customer_index_wishlist.xml b/app/code/Magento/Bundle/view/adminhtml/layout/customer_index_wishlist.xml index 7e37070109921..2b53db52b797a 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/customer_index_wishlist.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/customer_index_wishlist.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_new.xml index 99fdab5a7e9f4..b75d2c5345897 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_new.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml index 99fdab5a7e9f4..b75d2c5345897 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_view.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_view.xml index 323aba1d186e6..d8fff02a12cba 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_view.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_creditmemo_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_new.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_new.xml index b03ce7a9cb451..47fb17196268a 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_new.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_updateqty.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_updateqty.xml index b03ce7a9cb451..47fb17196268a 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_updateqty.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_view.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_view.xml index 34c3470cf06a7..3a38ec4003e1a 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_view.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_invoice_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_view.xml index 62f0305194fa9..f3ce4b214b599 100644 --- a/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/Bundle/view/adminhtml/layout/sales_order_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/catalog/product/edit/tab/attributes/extend.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/catalog/product/edit/tab/attributes/extend.phtml index 84e87afd48180..46f1e155c89a6 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/catalog/product/edit/tab/attributes/extend.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/catalog/product/edit/tab/attributes/extend.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml index 41923c4826432..f5340c1cbdde6 100644 --- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml +++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/css/bundle-product.css b/app/code/Magento/Bundle/view/adminhtml/web/css/bundle-product.css index d5aed8a7d652e..15a15d3d6249c 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/css/bundle-product.css +++ b/app/code/Magento/Bundle/view/adminhtml/web/css/bundle-product.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js index 53b08e43614a0..6ce0c1be59adc 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-type-handler.js b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-type-handler.js index 7f4a57cb530da..c65ff76c8db94 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-type-handler.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-type-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true expr:true*/ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-checkbox.js b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-checkbox.js index 9c2432bade43f..aedb6c44ac751 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-checkbox.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-checkbox.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-input-type.js b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-input-type.js index cee0489cc901a..6705d568705f9 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-input-type.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-input-type.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-option-qty.js b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-option-qty.js index 7b5734c7451ea..40e72dc4361af 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-option-qty.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/components/bundle-option-qty.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml b/app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml index 5f7d22ba2650b..40419ebfa91e1 100644 --- a/app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml +++ b/app/code/Magento/Bundle/view/base/layout/catalog_product_prices.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/base/templates/product/price/final_price.phtml b/app/code/Magento/Bundle/view/base/templates/product/price/final_price.phtml index efd75677d3061..095e14e1513a7 100644 --- a/app/code/Magento/Bundle/view/base/templates/product/price/final_price.phtml +++ b/app/code/Magento/Bundle/view/base/templates/product/price/final_price.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml index fedd29f952b02..6bd2fcb77443f 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/catalog_product_view_type_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml index adb1b2911983b..fb0efe0cd9edf 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_configure_type_bundle.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml index 9abf0a4018980..5137782656269 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review_item_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review_item_renderers.xml index ddede2340995b..dce5945e3221d 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review_item_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_onepage_review_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/default.xml b/app/code/Magento/Bundle/view/frontend/layout/default.xml index cb14616af5980..092aab97fb71c 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/default.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_creditmemo_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_creditmemo_renderers.xml index 991011db9fa08..ddd85d3b9f846 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_creditmemo_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_invoice_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_invoice_renderers.xml index 0e32c9fd9e816..f5fee7a6ccd1d 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_invoice_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_renderers.xml index 927214fbcc174..46471b57ce142 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_shipment_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_shipment_renderers.xml index 7463caa738083..846d5286eed0e 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_shipment_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_email_order_shipment_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_creditmemo_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_creditmemo_renderers.xml index c94b4957d267b..ab8bc480c08af 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_creditmemo_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_invoice_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_invoice_renderers.xml index d07959385bd9f..a89da856cd52a 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_invoice_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_item_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_item_renderers.xml index fb26de5bc2fdd..125007b2c4ba7 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_item_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_creditmemo_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_creditmemo_renderers.xml index 8c328c87a5c65..20c2dfa05b73b 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_creditmemo_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_invoice_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_invoice_renderers.xml index 57e39795df7da..513912eff5d3e 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_invoice_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_renderers.xml index 510168ac55e8a..34216f4e8eb7b 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_shipment_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_shipment_renderers.xml index f46b6260f3bd8..11b78d15c44a6 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_shipment_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_print_shipment_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/layout/sales_order_shipment_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/sales_order_shipment_renderers.xml index 536953423a3f2..f861b34032147 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/sales_order_shipment_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/sales_order_shipment_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Bundle/view/frontend/requirejs-config.js b/app/code/Magento/Bundle/view/frontend/requirejs-config.js index 51ab4cab6bb2c..753c9cf89251d 100644 --- a/app/code/Magento/Bundle/view/frontend/requirejs-config.js +++ b/app/code/Magento/Bundle/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/backbutton.phtml b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/backbutton.phtml index 86cd52b6dc6fd..8ab61e349b69c 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/backbutton.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/backbutton.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/customize.phtml b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/customize.phtml index e3538ebd6caea..559ca5dc820a9 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/customize.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/customize.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/summary.phtml b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/summary.phtml index 0fc7e6f9c8f06..4278095b4cdb4 100644 --- a/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/summary.phtml +++ b/app/code/Magento/Bundle/view/frontend/templates/catalog/product/view/summary.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/BundleImportExport/etc/export.xml b/app/code/Magento/BundleImportExport/etc/export.xml index c7fd951bfab53..dcbd9521027c0 100644 --- a/app/code/Magento/BundleImportExport/etc/export.xml +++ b/app/code/Magento/BundleImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/BundleImportExport/etc/import.xml b/app/code/Magento/BundleImportExport/etc/import.xml index 8daa5296a8c39..4b0761db4d3ba 100644 --- a/app/code/Magento/BundleImportExport/etc/import.xml +++ b/app/code/Magento/BundleImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/BundleImportExport/etc/module.xml b/app/code/Magento/BundleImportExport/etc/module.xml index 64f2c06b3c770..e324145cabcca 100644 --- a/app/code/Magento/BundleImportExport/etc/module.xml +++ b/app/code/Magento/BundleImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/BundleImportExport/registration.php b/app/code/Magento/BundleImportExport/registration.php index b4f80e749f130..368032565e588 100644 --- a/app/code/Magento/BundleImportExport/registration.php +++ b/app/code/Magento/BundleImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CacheInvalidate/etc/module.xml b/app/code/Magento/CacheInvalidate/etc/module.xml index b3277477fb62d..dda90ba8b38ab 100644 --- a/app/code/Magento/CacheInvalidate/etc/module.xml +++ b/app/code/Magento/CacheInvalidate/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CacheInvalidate/registration.php b/app/code/Magento/CacheInvalidate/registration.php index 00ddee3f6776b..2484edf8e215d 100644 --- a/app/code/Magento/CacheInvalidate/registration.php +++ b/app/code/Magento/CacheInvalidate/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Captcha/etc/adminhtml/events.xml b/app/code/Magento/Captcha/etc/adminhtml/events.xml index 7fcadbfd8f2ff..e9de9bc1888f8 100644 --- a/app/code/Magento/Captcha/etc/adminhtml/events.xml +++ b/app/code/Magento/Captcha/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/adminhtml/routes.xml b/app/code/Magento/Captcha/etc/adminhtml/routes.xml index 6b6b6717c489a..4d48e6334f298 100644 --- a/app/code/Magento/Captcha/etc/adminhtml/routes.xml +++ b/app/code/Magento/Captcha/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/adminhtml/system.xml b/app/code/Magento/Captcha/etc/adminhtml/system.xml index 88f0ae27f91c7..a05430989418d 100644 --- a/app/code/Magento/Captcha/etc/adminhtml/system.xml +++ b/app/code/Magento/Captcha/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/config.xml b/app/code/Magento/Captcha/etc/config.xml index d969626d73144..f754bdbe60ea3 100644 --- a/app/code/Magento/Captcha/etc/config.xml +++ b/app/code/Magento/Captcha/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/crontab.xml b/app/code/Magento/Captcha/etc/crontab.xml index d3d6e30e1a03a..09909ffbc9743 100644 --- a/app/code/Magento/Captcha/etc/crontab.xml +++ b/app/code/Magento/Captcha/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/crontab/di.xml b/app/code/Magento/Captcha/etc/crontab/di.xml index f3086b469842b..4a8616059787d 100644 --- a/app/code/Magento/Captcha/etc/crontab/di.xml +++ b/app/code/Magento/Captcha/etc/crontab/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/di.xml b/app/code/Magento/Captcha/etc/di.xml index db624420ba647..28964152809f7 100644 --- a/app/code/Magento/Captcha/etc/di.xml +++ b/app/code/Magento/Captcha/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/events.xml b/app/code/Magento/Captcha/etc/events.xml index 4223c4a2a3256..e3ddd19de2d12 100644 --- a/app/code/Magento/Captcha/etc/events.xml +++ b/app/code/Magento/Captcha/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/frontend/di.xml b/app/code/Magento/Captcha/etc/frontend/di.xml index 209f9beb71a04..225e62c8e8203 100644 --- a/app/code/Magento/Captcha/etc/frontend/di.xml +++ b/app/code/Magento/Captcha/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/frontend/events.xml b/app/code/Magento/Captcha/etc/frontend/events.xml index dfa0d1b428557..2f318d305f68f 100644 --- a/app/code/Magento/Captcha/etc/frontend/events.xml +++ b/app/code/Magento/Captcha/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/frontend/routes.xml b/app/code/Magento/Captcha/etc/frontend/routes.xml index d4bbe64821a91..895f18feecb4c 100644 --- a/app/code/Magento/Captcha/etc/frontend/routes.xml +++ b/app/code/Magento/Captcha/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/etc/module.xml b/app/code/Magento/Captcha/etc/module.xml index 698604928afb6..03ab6dbee3991 100644 --- a/app/code/Magento/Captcha/etc/module.xml +++ b/app/code/Magento/Captcha/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/registration.php b/app/code/Magento/Captcha/registration.php index 488ac412a8926..1413bc36ff180 100644 --- a/app/code/Magento/Captcha/registration.php +++ b/app/code/Magento/Captcha/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Captcha/view/adminhtml/layout/adminhtml_auth_login.xml b/app/code/Magento/Captcha/view/adminhtml/layout/adminhtml_auth_login.xml index 8c093257f1790..f9ac960dcfa97 100644 --- a/app/code/Magento/Captcha/view/adminhtml/layout/adminhtml_auth_login.xml +++ b/app/code/Magento/Captcha/view/adminhtml/layout/adminhtml_auth_login.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml b/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml index ffffcc4196bb1..8f3c6bf55a857 100644 --- a/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml +++ b/app/code/Magento/Captcha/view/adminhtml/templates/default.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/contact_index_index.xml b/app/code/Magento/Captcha/view/frontend/layout/contact_index_index.xml index 1460d8fac6974..df6de5b162c26 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/contact_index_index.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/contact_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml index cd72cc5857b83..1ba5debf29692 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_create.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_edit.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_edit.xml index 9700e88006f10..826e288920d25 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_edit.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml index 1f25fa040b591..cbaabf6332d86 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_forgotpassword.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml b/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml index 3a24e44fd1afe..50d99cf638f53 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/customer_account_login.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/layout/default.xml b/app/code/Magento/Captcha/view/frontend/layout/default.xml index 43a770c54c0ca..5015d6b021cd9 100644 --- a/app/code/Magento/Captcha/view/frontend/layout/default.xml +++ b/app/code/Magento/Captcha/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Captcha/view/frontend/requirejs-config.js b/app/code/Magento/Captcha/view/frontend/requirejs-config.js index ff1d9f1acc7b1..3b322711f8b1f 100644 --- a/app/code/Magento/Captcha/view/frontend/requirejs-config.js +++ b/app/code/Magento/Captcha/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Captcha/view/frontend/templates/default.phtml b/app/code/Magento/Captcha/view/frontend/templates/default.phtml index d8e11113d7707..f2058e959242d 100644 --- a/app/code/Magento/Captcha/view/frontend/templates/default.phtml +++ b/app/code/Magento/Captcha/view/frontend/templates/default.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/Api/AttributeSetFinderInterface.php b/app/code/Magento/Catalog/Api/AttributeSetFinderInterface.php index c7df36623ff83..41b569b7d0684 100644 --- a/app/code/Magento/Catalog/Api/AttributeSetFinderInterface.php +++ b/app/code/Magento/Catalog/Api/AttributeSetFinderInterface.php @@ -1,7 +1,7 @@ - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\Product\Attribute; diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Management.php b/app/code/Magento/Catalog/Model/Product/Attribute/Management.php index 4529b61147402..d49f9dc31457a 100644 --- a/app/code/Magento/Catalog/Model/Product/Attribute/Management.php +++ b/app/code/Magento/Catalog/Model/Product/Attribute/Management.php @@ -1,7 +1,7 @@ - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\Product\Attribute; diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Repository.php b/app/code/Magento/Catalog/Model/Product/Attribute/Repository.php index b7d592263163a..2e8b32910f361 100644 --- a/app/code/Magento/Catalog/Model/Product/Attribute/Repository.php +++ b/app/code/Magento/Catalog/Model/Product/Attribute/Repository.php @@ -1,7 +1,7 @@ ['test_attribute'], 'group_two' => ['attribute_one', 'attribute_two']]; diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_merged.xml b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_merged.xml index 813e9d64af710..c3c52fe89df83 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_merged.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_merged.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_one.xml b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_one.xml index 3fe4cc449c51d..26ad172c65dbd 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_one.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_one.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_two.xml b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_two.xml index 718895e7117fb..6990a2e110f9e 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_two.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/_files/attributes_config_two.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/ConfigTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/ConfigTest.php index 7f469b6dc1eb5..483d21c5078db 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Attribute/ConfigTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Attribute/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductOptions/Config/_files/product_options_valid.xml b/app/code/Magento/Catalog/Test/Unit/Model/ProductOptions/Config/_files/product_options_valid.xml index 5f418c4b177ad..9bb8ffd5decad 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductOptions/Config/_files/product_options_valid.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductOptions/Config/_files/product_options_valid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductRepositoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ProductRepositoryTest.php index ce031f5819a7d..85d9a48132e50 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductRepositoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductRepositoryTest.php @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types.xml b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types.xml index dc5284d1e5405..0538e81178154 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types_merged.xml b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types_merged.xml index 724203272620b..7edbc399a9476 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types_merged.xml +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/_files/valid_product_types_merged.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/ConfigTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/ConfigTest.php index 0c5d7e98095bb..584d034d03719 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/ConfigTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/Test/Unit/Observer/MenuCategoryDataTest.php b/app/code/Magento/Catalog/Test/Unit/Observer/MenuCategoryDataTest.php index 23ea2bc891748..5580cd0c90517 100644 --- a/app/code/Magento/Catalog/Test/Unit/Observer/MenuCategoryDataTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Observer/MenuCategoryDataTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/etc/adminhtml/di.xml b/app/code/Magento/Catalog/etc/adminhtml/di.xml index 5bc29d75f4186..eab6efa31f786 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/di.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/adminhtml/events.xml b/app/code/Magento/Catalog/etc/adminhtml/events.xml index 034204feff5c9..f4fd7fc30398c 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/events.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/adminhtml/menu.xml b/app/code/Magento/Catalog/etc/adminhtml/menu.xml index ee0d1ec5c4117..363829adf4795 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/menu.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/adminhtml/routes.xml b/app/code/Magento/Catalog/etc/adminhtml/routes.xml index 5deeddb3bb4bd..9015ef28b1a11 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/routes.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/adminhtml/system.xml b/app/code/Magento/Catalog/etc/adminhtml/system.xml index c5a1b3686fbe5..f91d12b0b2a3c 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/system.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/catalog_attributes.xml b/app/code/Magento/Catalog/etc/catalog_attributes.xml index 650652aa94555..4d9a2db084e39 100644 --- a/app/code/Magento/Catalog/etc/catalog_attributes.xml +++ b/app/code/Magento/Catalog/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/catalog_attributes.xsd b/app/code/Magento/Catalog/etc/catalog_attributes.xsd index d95d5a17c258e..91d6e19896ff8 100644 --- a/app/code/Magento/Catalog/etc/catalog_attributes.xsd +++ b/app/code/Magento/Catalog/etc/catalog_attributes.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/config.xml b/app/code/Magento/Catalog/etc/config.xml index 4a8a523e0d55c..188824a0a5245 100644 --- a/app/code/Magento/Catalog/etc/config.xml +++ b/app/code/Magento/Catalog/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/crontab.xml b/app/code/Magento/Catalog/etc/crontab.xml index d69ac8f319b5e..c3a8106544357 100644 --- a/app/code/Magento/Catalog/etc/crontab.xml +++ b/app/code/Magento/Catalog/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/di.xml b/app/code/Magento/Catalog/etc/di.xml index f2f92c6af7484..8ed8da543f365 100644 --- a/app/code/Magento/Catalog/etc/di.xml +++ b/app/code/Magento/Catalog/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/eav_attributes.xml b/app/code/Magento/Catalog/etc/eav_attributes.xml index 005402937232f..4d373b540c9fd 100644 --- a/app/code/Magento/Catalog/etc/eav_attributes.xml +++ b/app/code/Magento/Catalog/etc/eav_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/events.xml b/app/code/Magento/Catalog/etc/events.xml index 3aa218aac1bdb..8a986a17a6b72 100644 --- a/app/code/Magento/Catalog/etc/events.xml +++ b/app/code/Magento/Catalog/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/extension_attributes.xml b/app/code/Magento/Catalog/etc/extension_attributes.xml index ca35211f82553..a8bd78fb68b9d 100644 --- a/app/code/Magento/Catalog/etc/extension_attributes.xml +++ b/app/code/Magento/Catalog/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/frontend/di.xml b/app/code/Magento/Catalog/etc/frontend/di.xml index ca1e1e244f49c..6b79af7dbce2d 100644 --- a/app/code/Magento/Catalog/etc/frontend/di.xml +++ b/app/code/Magento/Catalog/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/frontend/events.xml b/app/code/Magento/Catalog/etc/frontend/events.xml index dd225750f73be..63d5f5d3de7ae 100644 --- a/app/code/Magento/Catalog/etc/frontend/events.xml +++ b/app/code/Magento/Catalog/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/frontend/page_types.xml b/app/code/Magento/Catalog/etc/frontend/page_types.xml index 8f929046afeef..daff27951921c 100644 --- a/app/code/Magento/Catalog/etc/frontend/page_types.xml +++ b/app/code/Magento/Catalog/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/frontend/routes.xml b/app/code/Magento/Catalog/etc/frontend/routes.xml index d4d52559673d6..5b7aa8293d937 100644 --- a/app/code/Magento/Catalog/etc/frontend/routes.xml +++ b/app/code/Magento/Catalog/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/frontend/sections.xml b/app/code/Magento/Catalog/etc/frontend/sections.xml index 0bc9c63494b33..7e2c1d1166d1d 100644 --- a/app/code/Magento/Catalog/etc/frontend/sections.xml +++ b/app/code/Magento/Catalog/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/indexer.xml b/app/code/Magento/Catalog/etc/indexer.xml index 5c2ca91e525d9..08ad108119b4a 100644 --- a/app/code/Magento/Catalog/etc/indexer.xml +++ b/app/code/Magento/Catalog/etc/indexer.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/module.xml b/app/code/Magento/Catalog/etc/module.xml index 571176694547a..013afe8f2c2bf 100644 --- a/app/code/Magento/Catalog/etc/module.xml +++ b/app/code/Magento/Catalog/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/mview.xml b/app/code/Magento/Catalog/etc/mview.xml index 4600bb7fad370..4213faf9307b5 100644 --- a/app/code/Magento/Catalog/etc/mview.xml +++ b/app/code/Magento/Catalog/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_options.xml b/app/code/Magento/Catalog/etc/product_options.xml index 43bf4865cb49e..09c5ffde5957d 100644 --- a/app/code/Magento/Catalog/etc/product_options.xml +++ b/app/code/Magento/Catalog/etc/product_options.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_options.xsd b/app/code/Magento/Catalog/etc/product_options.xsd index 18b5934c1410f..9ca354f6eed93 100644 --- a/app/code/Magento/Catalog/etc/product_options.xsd +++ b/app/code/Magento/Catalog/etc/product_options.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_options_merged.xsd b/app/code/Magento/Catalog/etc/product_options_merged.xsd index 7b9e6fa2650ec..9dd95e3c4bd1d 100644 --- a/app/code/Magento/Catalog/etc/product_options_merged.xsd +++ b/app/code/Magento/Catalog/etc/product_options_merged.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_types.xml b/app/code/Magento/Catalog/etc/product_types.xml index 513f0905b13ce..fe4922ab8fa1f 100644 --- a/app/code/Magento/Catalog/etc/product_types.xml +++ b/app/code/Magento/Catalog/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_types.xsd b/app/code/Magento/Catalog/etc/product_types.xsd index 06999fbeddc7a..b25168f20e93e 100644 --- a/app/code/Magento/Catalog/etc/product_types.xsd +++ b/app/code/Magento/Catalog/etc/product_types.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_types_base.xsd b/app/code/Magento/Catalog/etc/product_types_base.xsd index eddd7a6845488..da0e0847f0744 100644 --- a/app/code/Magento/Catalog/etc/product_types_base.xsd +++ b/app/code/Magento/Catalog/etc/product_types_base.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/product_types_merged.xsd b/app/code/Magento/Catalog/etc/product_types_merged.xsd index 1b1d92c163989..62a149f84570d 100644 --- a/app/code/Magento/Catalog/etc/product_types_merged.xsd +++ b/app/code/Magento/Catalog/etc/product_types_merged.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/view.xml b/app/code/Magento/Catalog/etc/view.xml index 8c7500d9c1374..910a3be8055da 100644 --- a/app/code/Magento/Catalog/etc/view.xml +++ b/app/code/Magento/Catalog/etc/view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/webapi.xml b/app/code/Magento/Catalog/etc/webapi.xml index de66084cb50ef..fd5d4d0db1b34 100644 --- a/app/code/Magento/Catalog/etc/webapi.xml +++ b/app/code/Magento/Catalog/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/webapi_rest/di.xml b/app/code/Magento/Catalog/etc/webapi_rest/di.xml index 67e74dfbfd44e..1d2b013f2035d 100644 --- a/app/code/Magento/Catalog/etc/webapi_rest/di.xml +++ b/app/code/Magento/Catalog/etc/webapi_rest/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/webapi_soap/di.xml b/app/code/Magento/Catalog/etc/webapi_soap/di.xml index cb5273e4aeac5..98a8ef4de8408 100644 --- a/app/code/Magento/Catalog/etc/webapi_soap/di.xml +++ b/app/code/Magento/Catalog/etc/webapi_soap/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/etc/widget.xml b/app/code/Magento/Catalog/etc/widget.xml index f54d4af816c09..153eeedda1d03 100644 --- a/app/code/Magento/Catalog/etc/widget.xml +++ b/app/code/Magento/Catalog/etc/widget.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/registration.php b/app/code/Magento/Catalog/registration.php index fada27f08c173..94fe0b1115ce2 100644 --- a/app/code/Magento/Catalog/registration.php +++ b/app/code/Magento/Catalog/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml index 30add348f7d2b..6cf41439bf600 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml index ec97c79610237..21bc2d3c9cd54 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_add.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_add.xml index d9c70ae487903..8653cbb39343e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_add.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_add.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_create.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_create.xml index 02734a674189e..bb103272e5132 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_create.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_create.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml index 799c50dfc4756..65ef48cd751d1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_category_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_action_attribute_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_action_attribute_edit.xml index 3a073f75eef12..37c2453a2d380 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_action_attribute_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_action_attribute_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertspricegrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertspricegrid.xml index 0cd56d138149e..a65603e513bdb 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertspricegrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertspricegrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertsstockgrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertsstockgrid.xml index d098da96d3e52..fb63d4e96e657 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertsstockgrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_alertsstockgrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit.xml index ddf02a7cdb9c2..c3328455be8ab 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_form.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_form.xml index 8f4780d34b17d..1a20c77199913 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_popup.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_popup.xml index a19d29a98720e..a46f6e5b0e8b4 100755 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_popup.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_attribute_edit_popup.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_change_attribute_set.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_change_attribute_set.xml index 422cf537c3081..794ea397d0829 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_change_attribute_set.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_change_attribute_set.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssell.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssell.xml index 9c1280a2500df..4a27158be5f7c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssell.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssell.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssellgrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssellgrid.xml index 96c66485f2132..b5efecf0d03c2 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssellgrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_crosssellgrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_customoptions.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_customoptions.xml index 39781cc8adcf0..02f9f32cc91f1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_customoptions.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_customoptions.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml index 3375f5b8233f5..1c574a1e918e9 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_form.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_form.xml index 194c745e6a65a..af1238cb791d7 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_grid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_grid.xml index e214ccad3dc21..b42a78dfbe302 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_grid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml index bad6a5d165535..c503196cc8647 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml index cb993bc892eac..f43f0c321e280 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_options.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_options.xml index 7d88ff2a04384..9c4fd4d0d7506 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_options.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_options.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_optionsimportgrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_optionsimportgrid.xml index 7f6f62943bbea..b167b3292cb6c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_optionsimportgrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_optionsimportgrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_related.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_related.xml index 6b688eeec2084..1340d40ef4f9f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_related.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_related.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_relatedgrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_relatedgrid.xml index 4a306dd725b91..1ae83419ae646 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_relatedgrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_relatedgrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_reload.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_reload.xml index 422cf537c3081..794ea397d0829 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_reload.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_reload.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_block.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_block.xml index bbbc1e21669e1..22e16cac8cef2 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_block.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml index bd8c2cd3550f3..a55c7590df9af 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_index.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_index.xml index b25eecbbc2502..b97ca4a3cbc98 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_index.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsell.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsell.xml index ce0b1521d82e6..a9770ed3c182e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsell.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsell.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsellgrid.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsellgrid.xml index 83c19659b5135..a4acf572caeb5 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsellgrid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_upsellgrid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/requirejs-config.js b/app/code/Magento/Catalog/view/adminhtml/requirejs-config.js index 848d1f1da908c..5ffc587f65bec 100644 --- a/app/code/Magento/Catalog/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/Catalog/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/checkboxes/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/checkboxes/tree.phtml index eaeed5b12ebaf..4cb96a1f840f7 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/checkboxes/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/checkboxes/tree.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/add.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/add.phtml index cf40ee6d78af6..099bd2cae6c5e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/add.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/add.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/main.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/main.phtml index 2cdb9f451a86f..bb3f69ead1c2d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/main.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/toolbar/main.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/date.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/date.phtml index 6eed355cc3b83..8f75f37104346 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/date.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/date.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/file.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/file.phtml index cb60254d4d8c7..538541136e910 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/file.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/composite/fieldset/options/type/file.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml index 464e10d6da15c..eb934a5a25fba 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/crosssell_product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/crosssell_product_listing.xml index 25eb8092ab40d..1cdfbe6439b30 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/crosssell_product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/crosssell_product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/design_config_form.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/design_config_form.xml index bf0fd9e33d2e1..942f0e62bc18b 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/design_config_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/design_config_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/new_category_form.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/new_category_form.xml index a0307886770c6..2773e9ffa3abe 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/new_category_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/new_category_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attribute_add_form.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attribute_add_form.xml index ab5ab6e288e13..afdcdce3356ed 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attribute_add_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attribute_add_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attributes_grid.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attributes_grid.xml index 24243f35bc958..852cd9207d27b 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attributes_grid.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_attributes_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_custom_options_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_custom_options_listing.xml index beef5bfe6c314..7ee82e8804298 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_custom_options_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_custom_options_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_form.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_form.xml index b99e01147c00d..b3db96293da88 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index 5220c962ad0f5..25e6ac9714949 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/related_product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/related_product_listing.xml index 7801b4169a7e2..1f3f42f5c9d26 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/related_product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/related_product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/upsell_product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/upsell_product_listing.xml index 2cca1d18b46f5..eedf965e1a14e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/upsell_product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/upsell_product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/apply-to-type-switcher.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/apply-to-type-switcher.js index 13543ade8f726..a5ca9eb1eab0b 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/apply-to-type-switcher.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/apply-to-type-switcher.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ 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 4ba2d110ffb34..ae2ef17d2b0a4 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 @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global alert:true*/ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/assign-products.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/assign-products.js index 1da9c2c379c37..829c04c13106d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/assign-products.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/assign-products.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ 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 66eb039790f28..05e94bed9ab1f 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 @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js index 9f413832537e2..50934ef273c89 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js index 78f48b0bafabb..57ba9c01854b2 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product.js index b751e75947ecc..34eb6bd40ef0d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ require([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/attribute/unique-validate.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/attribute/unique-validate.js index 2af880f4d04c5..034085df6cbb3 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/attribute/unique-validate.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/attribute/unique-validate.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ 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 0f45dda8043d0..d315f94f4b6fd 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 @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/type-events.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/type-events.js index 9de0ff75fa843..d836974d8574d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/type-events.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/type-events.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/file-type-field.js b/app/code/Magento/Catalog/view/adminhtml/web/component/file-type-field.js index bed32eb574695..72bf80a02fdac 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/file-type-field.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/file-type-field.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/image-size-field.js b/app/code/Magento/Catalog/view/adminhtml/web/component/image-size-field.js index cbb16b397f9e6..c89acc1d7f2cc 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/image-size-field.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/image-size-field.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/select-type-grid.js b/app/code/Magento/Catalog/view/adminhtml/web/component/select-type-grid.js index 57d35424268b8..6262e4d5e5f5f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/select-type-grid.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/select-type-grid.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-container.js b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-container.js index b3ef035402c3e..977b7e2e48185 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-container.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-container.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-input.js b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-input.js index d520758d456a5..46eb6ddb3bf79 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-input.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-input.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-select.js b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-select.js index 6b61b5e49c97a..0c3190434a09d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-select.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/static-type-select.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/component/text-type-field.js b/app/code/Magento/Catalog/view/adminhtml/web/component/text-type-field.js index 72d97b7aebcd9..2b829e5293f46 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/component/text-type-field.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/component/text-type-field.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/bundle-proxy-button.js b/app/code/Magento/Catalog/view/adminhtml/web/js/bundle-proxy-button.js index 42543656f210b..f260c5066223f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/bundle-proxy-button.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/bundle-proxy-button.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/category-tree.js b/app/code/Magento/Catalog/view/adminhtml/web/js/category-tree.js index 5453b760e2f31..e2d7b230fd480 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/category-tree.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/category-tree.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attribute-set-select.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attribute-set-select.js index baefa1ae2e4b5..82bb539a5cc5c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attribute-set-select.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attribute-set-select.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-fieldset.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-fieldset.js index 1e363ef2a1a0f..3b16c6ab1e2a0 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-fieldset.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-fieldset.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-grid-paging.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-grid-paging.js index 641dfaf295150..cac54a913da59 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-grid-paging.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-grid-paging.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-insert-listing.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-insert-listing.js index 10be9f2ffc907..ef47716434d7c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-insert-listing.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/attributes-insert-listing.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/checkbox.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/checkbox.js index b371efca26f64..866cadd6afbad 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/checkbox.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/checkbox.js @@ -1,4 +1,4 @@ -/* Copyright © 2013-2017 Magento, Inc. All rights reserved. +/* Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-hide-select.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-hide-select.js index 4bf54406e3598..313270caa9954 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-hide-select.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-hide-select.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/input.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/input.js index 1961bc5fde625..f845b827feb34 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/input.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/input.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/select.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/select.js index 2dc21fc11cf55..d5b8dc8aaedfa 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/select.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/select.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/strategy.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/strategy.js index e8b276c171ca4..617332ed1c82f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/strategy.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/strategy.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define(function () { diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/yesno.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/yesno.js index 7362acbe63eb2..da113dbf825a2 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/yesno.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/disable-on-option/yesno.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/dynamic-rows-import-custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/dynamic-rows-import-custom-options.js index 87c7a49db19d1..999dd0880b110 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/dynamic-rows-import-custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/dynamic-rows-import-custom-options.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js index a6c71e7d4b660..b8109129436df 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/input-handle-required.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/input-handle-required.js index c342e961fa9e2..73fc159d682a8 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/input-handle-required.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/input-handle-required.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/messages.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/messages.js index 7e3696ba24bf8..a942ac3a7c573 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/messages.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/messages.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/multiselect-handle-required.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/multiselect-handle-required.js index b7146137c6bb3..c48c0472b8961 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/multiselect-handle-required.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/multiselect-handle-required.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-form.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-form.js index 360349f8c61e5..6702b94b119de 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-form.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-form.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-insert-form.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-insert-form.js index f3624de9cbd0f..fea7195adcf85 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-insert-form.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-attribute-insert-form.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-category.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-category.js index 7a16067b37291..adf6b976d704d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-category.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/new-category.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/product-status.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/product-status.js index 3e3c811584973..5851e8af46644 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/product-status.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/product-status.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-handle-required.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-handle-required.js index 08ed325c82a78..7f978f9a4f36e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-handle-required.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-handle-required.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-to-checkbox.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-to-checkbox.js index 281ef42a9e533..6180ac3051adb 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-to-checkbox.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/select-to-checkbox.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/url-key-handle-changes.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/url-key-handle-changes.js index b12f73c17125a..0d3b0b83760ea 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/url-key-handle-changes.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/url-key-handle-changes.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/date.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/date.js index ecdb3a66006b7..6f46d2911dd29 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/date.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/date.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/fieldset.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/fieldset.js index 581153832d3a5..2d61b67ae7c74 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/fieldset.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/fieldset.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/input.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/input.js index bd832632f7513..3fb5ec34717d7 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/input.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/input.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/select.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/select.js index 05453dc19bff8..0030874c1c81e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/select.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/select.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/strategy.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/strategy.js index 2e59efeab1b58..61f2a1f000b44 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/strategy.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/strategy.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define(function () { diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/textarea.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/textarea.js index 7446174982a21..0bda5142ea472 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/textarea.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/textarea.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/yesno.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/yesno.js index 9f8a9e43dacc5..dfa087eddec7c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/yesno.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/visible-on-option/yesno.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options-type.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options-type.js index 878e8e1429680..b46d09a7323b1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options-type.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options-type.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index 0611c4fae9233..66ed079745150 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true*/ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/edit-tree.js b/app/code/Magento/Catalog/view/adminhtml/web/js/edit-tree.js index 7420595078071..41aba13623578 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/edit-tree.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/edit-tree.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/action-delete.js b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/action-delete.js index 1ecfddac7abb8..97f978de47b60 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/action-delete.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/action-delete.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/checkbox.js b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/checkbox.js index 57d45551d180b..0c2eea53bfbad 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/checkbox.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/checkbox.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/input.js b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/input.js index 84be3a4f8783b..51ffeaea0fc0c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/input.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/form/element/input.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js index e20d3f3e0c5b1..169d89d3b766d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ 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 75d768dae7bb6..5239eb207efca 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/options.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ 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 2cfde92d6a762..e0a93ef666938 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 @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint jquery:true*/ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/product/weight-handler.js b/app/code/Magento/Catalog/view/adminhtml/web/js/product/weight-handler.js index a2ae5b794f601..7628b376abe3f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/product/weight-handler.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/product/weight-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/attributes/grid/paging.html b/app/code/Magento/Catalog/view/adminhtml/web/template/attributes/grid/paging.html index bf03ffb1049e7..0797843cbf226 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/attributes/grid/paging.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/attributes/grid/paging.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/checkbox.html b/app/code/Magento/Catalog/view/adminhtml/web/template/checkbox.html index 7a2c8e42364df..8510168f4ab30 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/checkbox.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/checkbox.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/action-delete.html b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/action-delete.html index 3a516ad41358f..5d6bb0ae1498f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/action-delete.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/action-delete.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-service.html b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-service.html index ad83bc144615e..c8c2bf5e2b22a 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-service.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-service.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-type-service.html b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-type-service.html index 3c3cbbde2ab39..0a5f7d946670d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-type-service.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/helper/custom-option-type-service.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/input.html b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/input.html index 560bc90ea6d19..a3aad4284d8d8 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/input.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/form/element/input.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/image-preview.html b/app/code/Magento/Catalog/view/adminhtml/web/template/image-preview.html index cb741f5288d28..eac68139eecaa 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/template/image-preview.html +++ b/app/code/Magento/Catalog/view/adminhtml/web/template/image-preview.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml b/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml index b47a6a3e69d86..28bf58bfff5c2 100644 --- a/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml +++ b/app/code/Magento/Catalog/view/base/layout/catalog_product_prices.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/base/layout/default.xml b/app/code/Magento/Catalog/view/base/layout/default.xml index 776dbc4b646ef..9b6d27744bcc9 100644 --- a/app/code/Magento/Catalog/view/base/layout/default.xml +++ b/app/code/Magento/Catalog/view/base/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/base/layout/empty.xml b/app/code/Magento/Catalog/view/base/layout/empty.xml index 776dbc4b646ef..9b6d27744bcc9 100644 --- a/app/code/Magento/Catalog/view/base/layout/empty.xml +++ b/app/code/Magento/Catalog/view/base/layout/empty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/base/templates/js/components.phtml b/app/code/Magento/Catalog/view/base/templates/js/components.phtml index bdcb2e9bf7747..e71938935b8f3 100644 --- a/app/code/Magento/Catalog/view/base/templates/js/components.phtml +++ b/app/code/Magento/Catalog/view/base/templates/js/components.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default.xml index d6788f3d4eed6..b5116f6784522 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default_without_children.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default_without_children.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default_without_children.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_category_view_type_default_without_children.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_compare_index.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_compare_index.xml index c6f02a8acb155..181aa0fd92202 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_compare_index.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_compare_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_gallery.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_gallery.xml index 7e39fd35d6cde..f1a96d0220ef0 100755 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_gallery.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_gallery.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_opengraph.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_opengraph.xml index 661ec52df3dcd..2d8b0a502bb10 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_opengraph.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_opengraph.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml index dbb13639831c1..b4d155487b189 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_simple.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_simple.xml index 6703d18deac37..94783b254f8d7 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_simple.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_virtual.xml b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_virtual.xml index dd93e8064e60c..b2fe3e1b5cdd9 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_virtual.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/catalog_product_view_type_virtual.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml index ee16e638b64cb..81d720d60ee3e 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/layout/default.xml b/app/code/Magento/Catalog/view/frontend/layout/default.xml index f267c2a5ae634..1e52f04820e2d 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/default.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Catalog/view/frontend/requirejs-config.js b/app/code/Magento/Catalog/view/frontend/requirejs-config.js index 790c25ee6dce2..9c0d36b417546 100644 --- a/app/code/Magento/Catalog/view/frontend/requirejs-config.js +++ b/app/code/Magento/Catalog/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Catalog/view/frontend/templates/category/cms.phtml b/app/code/Magento/Catalog/view/frontend/templates/category/cms.phtml index 818456d2272f6..992af539aaf05 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/category/cms.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/category/cms.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml index c3280c563fe58..6c64b3949f8ce 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/image_with_borders.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml index 177b45ee679e6..5c8ca18fc5bc3 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/options/wrapper/bottom.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/options/wrapper/bottom.phtml index 08642bc792586..871c29a09ff65 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/options/wrapper/bottom.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/options/wrapper/bottom.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/price_clone.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/price_clone.phtml index 8c7376ea1cead..45e5aa9b18e97 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/price_clone.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/price_clone.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Catalog/view/frontend/web/template/product/image_with_borders.html b/app/code/Magento/Catalog/view/frontend/web/template/product/image_with_borders.html index 88886989b19aa..d59237c190f71 100644 --- a/app/code/Magento/Catalog/view/frontend/web/template/product/image_with_borders.html +++ b/app/code/Magento/Catalog/view/frontend/web/template/product/image_with_borders.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogImportExport/Model/Export/Product.php b/app/code/Magento/CatalogImportExport/Model/Export/Product.php index b3f266728e952..4fdfaf9581420 100644 --- a/app/code/Magento/CatalogImportExport/Model/Export/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Export/Product.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogImportExport/etc/di.xml b/app/code/Magento/CatalogImportExport/etc/di.xml index dca2159fbdc66..1155de1455243 100644 --- a/app/code/Magento/CatalogImportExport/etc/di.xml +++ b/app/code/Magento/CatalogImportExport/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogImportExport/etc/export.xml b/app/code/Magento/CatalogImportExport/etc/export.xml index 824b7defdaee6..3325ff1d38a06 100644 --- a/app/code/Magento/CatalogImportExport/etc/export.xml +++ b/app/code/Magento/CatalogImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogImportExport/etc/import.xml b/app/code/Magento/CatalogImportExport/etc/import.xml index e4ff1c2825654..522b478752f01 100644 --- a/app/code/Magento/CatalogImportExport/etc/import.xml +++ b/app/code/Magento/CatalogImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogImportExport/etc/module.xml b/app/code/Magento/CatalogImportExport/etc/module.xml index c63a6dd52918f..517ffc0fa393d 100644 --- a/app/code/Magento/CatalogImportExport/etc/module.xml +++ b/app/code/Magento/CatalogImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogImportExport/registration.php b/app/code/Magento/CatalogImportExport/registration.php index 5b1c90ca644a6..4726011242428 100644 --- a/app/code/Magento/CatalogImportExport/registration.php +++ b/app/code/Magento/CatalogImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogInventory/etc/adminhtml/di.xml b/app/code/Magento/CatalogInventory/etc/adminhtml/di.xml index 9356f15cd7f86..803a6dae492a0 100644 --- a/app/code/Magento/CatalogInventory/etc/adminhtml/di.xml +++ b/app/code/Magento/CatalogInventory/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/adminhtml/system.xml b/app/code/Magento/CatalogInventory/etc/adminhtml/system.xml index c403bb3c627e1..b9332575c96f7 100644 --- a/app/code/Magento/CatalogInventory/etc/adminhtml/system.xml +++ b/app/code/Magento/CatalogInventory/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/config.xml b/app/code/Magento/CatalogInventory/etc/config.xml index b4da95f48293c..976b3f4cad510 100644 --- a/app/code/Magento/CatalogInventory/etc/config.xml +++ b/app/code/Magento/CatalogInventory/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/di.xml b/app/code/Magento/CatalogInventory/etc/di.xml index 9e970cef7d052..3290919a51bc7 100644 --- a/app/code/Magento/CatalogInventory/etc/di.xml +++ b/app/code/Magento/CatalogInventory/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/extension_attributes.xml b/app/code/Magento/CatalogInventory/etc/extension_attributes.xml index 43495ebf2e644..2e30788604908 100644 --- a/app/code/Magento/CatalogInventory/etc/extension_attributes.xml +++ b/app/code/Magento/CatalogInventory/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/frontend/di.xml b/app/code/Magento/CatalogInventory/etc/frontend/di.xml index 66591baa41660..83f0810fb17d7 100644 --- a/app/code/Magento/CatalogInventory/etc/frontend/di.xml +++ b/app/code/Magento/CatalogInventory/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/indexer.xml b/app/code/Magento/CatalogInventory/etc/indexer.xml index e3fc5e845c4c3..725477f64908f 100644 --- a/app/code/Magento/CatalogInventory/etc/indexer.xml +++ b/app/code/Magento/CatalogInventory/etc/indexer.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/module.xml b/app/code/Magento/CatalogInventory/etc/module.xml index 6d86fa559848e..9981b4f63e4e4 100644 --- a/app/code/Magento/CatalogInventory/etc/module.xml +++ b/app/code/Magento/CatalogInventory/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/mview.xml b/app/code/Magento/CatalogInventory/etc/mview.xml index 3dd8419d7e3c8..b172d3e852823 100644 --- a/app/code/Magento/CatalogInventory/etc/mview.xml +++ b/app/code/Magento/CatalogInventory/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/product_types.xml b/app/code/Magento/CatalogInventory/etc/product_types.xml index 206a4969b3fd2..9c4653b1bde9e 100644 --- a/app/code/Magento/CatalogInventory/etc/product_types.xml +++ b/app/code/Magento/CatalogInventory/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/etc/webapi.xml b/app/code/Magento/CatalogInventory/etc/webapi.xml index 09753ed6d7ca0..c172b9c971500 100644 --- a/app/code/Magento/CatalogInventory/etc/webapi.xml +++ b/app/code/Magento/CatalogInventory/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/registration.php b/app/code/Magento/CatalogInventory/registration.php index c39a8159f90b8..d15deab6429d7 100644 --- a/app/code/Magento/CatalogInventory/registration.php +++ b/app/code/Magento/CatalogInventory/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml index 51587e0732830..af982697f532e 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/qty-validator-changer.js b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/qty-validator-changer.js index 3123784e64e71..75d684137a28b 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/qty-validator-changer.js +++ b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/qty-validator-changer.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-min-sale-qty.js b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-min-sale-qty.js index 9bce6ced3141e..4ac1d5ed2d294 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-min-sale-qty.js +++ b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-min-sale-qty.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-settings.js b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-settings.js index 877f2b44b4f9a..76a2882852e0f 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-settings.js +++ b/app/code/Magento/CatalogInventory/view/adminhtml/web/js/components/use-config-settings.js @@ -1,9 +1,9 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view.xml index e6e9e8b30988b..1ebeed3846b0d 100644 --- a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_simple.xml b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_simple.xml index bfd59283750be..2ed24b071095e 100644 --- a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_simple.xml +++ b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_virtual.xml b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_virtual.xml index c83b8b6fc47e7..9943fee84b5cf 100644 --- a/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_virtual.xml +++ b/app/code/Magento/CatalogInventory/view/frontend/layout/catalog_product_view_type_virtual.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogInventory/view/frontend/templates/qtyincrements.phtml b/app/code/Magento/CatalogInventory/view/frontend/templates/qtyincrements.phtml index 544b82ccd06cf..b8edebb82bbe9 100644 --- a/app/code/Magento/CatalogInventory/view/frontend/templates/qtyincrements.phtml +++ b/app/code/Magento/CatalogInventory/view/frontend/templates/qtyincrements.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogRule/etc/adminhtml/di.xml b/app/code/Magento/CatalogRule/etc/adminhtml/di.xml index a993ed0ca485a..0951546561a2e 100644 --- a/app/code/Magento/CatalogRule/etc/adminhtml/di.xml +++ b/app/code/Magento/CatalogRule/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/adminhtml/events.xml b/app/code/Magento/CatalogRule/etc/adminhtml/events.xml index afab20010a4b2..bc8f439c1f07e 100644 --- a/app/code/Magento/CatalogRule/etc/adminhtml/events.xml +++ b/app/code/Magento/CatalogRule/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/adminhtml/menu.xml b/app/code/Magento/CatalogRule/etc/adminhtml/menu.xml index e47fa911f5a6e..f342261a92b4f 100644 --- a/app/code/Magento/CatalogRule/etc/adminhtml/menu.xml +++ b/app/code/Magento/CatalogRule/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/adminhtml/routes.xml b/app/code/Magento/CatalogRule/etc/adminhtml/routes.xml index 8eb519e847511..48a22e9aa926a 100644 --- a/app/code/Magento/CatalogRule/etc/adminhtml/routes.xml +++ b/app/code/Magento/CatalogRule/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/crontab.xml b/app/code/Magento/CatalogRule/etc/crontab.xml index 0f0102057447e..d202b02ff83be 100644 --- a/app/code/Magento/CatalogRule/etc/crontab.xml +++ b/app/code/Magento/CatalogRule/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/crontab/events.xml b/app/code/Magento/CatalogRule/etc/crontab/events.xml index e82f4c8b1a393..1de5d5001be5f 100644 --- a/app/code/Magento/CatalogRule/etc/crontab/events.xml +++ b/app/code/Magento/CatalogRule/etc/crontab/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/di.xml b/app/code/Magento/CatalogRule/etc/di.xml index 6783fd6d69bc2..4b368b1cef89a 100644 --- a/app/code/Magento/CatalogRule/etc/di.xml +++ b/app/code/Magento/CatalogRule/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/events.xml b/app/code/Magento/CatalogRule/etc/events.xml index 54d4ba74370a9..ade6957d46df9 100644 --- a/app/code/Magento/CatalogRule/etc/events.xml +++ b/app/code/Magento/CatalogRule/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/frontend/events.xml b/app/code/Magento/CatalogRule/etc/frontend/events.xml index 7ec1d35dfbe97..0d0a1fef5354f 100644 --- a/app/code/Magento/CatalogRule/etc/frontend/events.xml +++ b/app/code/Magento/CatalogRule/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/indexer.xml b/app/code/Magento/CatalogRule/etc/indexer.xml index bae3bdf98efb7..08ed456457bfe 100644 --- a/app/code/Magento/CatalogRule/etc/indexer.xml +++ b/app/code/Magento/CatalogRule/etc/indexer.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/module.xml b/app/code/Magento/CatalogRule/etc/module.xml index 6a864895ffec7..a1e6c04913a9f 100644 --- a/app/code/Magento/CatalogRule/etc/module.xml +++ b/app/code/Magento/CatalogRule/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/mview.xml b/app/code/Magento/CatalogRule/etc/mview.xml index 58015fc69863c..0fc3be87057be 100644 --- a/app/code/Magento/CatalogRule/etc/mview.xml +++ b/app/code/Magento/CatalogRule/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/webapi_rest/di.xml b/app/code/Magento/CatalogRule/etc/webapi_rest/di.xml index 7ca6491d59d76..066a32e7e14dd 100644 --- a/app/code/Magento/CatalogRule/etc/webapi_rest/di.xml +++ b/app/code/Magento/CatalogRule/etc/webapi_rest/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/webapi_rest/events.xml b/app/code/Magento/CatalogRule/etc/webapi_rest/events.xml index 7ec1d35dfbe97..0d0a1fef5354f 100644 --- a/app/code/Magento/CatalogRule/etc/webapi_rest/events.xml +++ b/app/code/Magento/CatalogRule/etc/webapi_rest/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml b/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml index 7ec1d35dfbe97..0d0a1fef5354f 100644 --- a/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml +++ b/app/code/Magento/CatalogRule/etc/webapi_soap/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/registration.php b/app/code/Magento/CatalogRule/registration.php index 3322ca97134fa..c657d6f7394be 100644 --- a/app/code/Magento/CatalogRule/registration.php +++ b/app/code/Magento/CatalogRule/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_edit.xml b/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_edit.xml index 77bcd7de41e9a..505557b8950b2 100644 --- a/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_edit.xml +++ b/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_index.xml b/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_index.xml index e781a870f1c5d..5718845d14770 100644 --- a/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_index.xml +++ b/app/code/Magento/CatalogRule/view/adminhtml/layout/catalog_rule_promo_catalog_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRule/view/adminhtml/templates/promo/fieldset.phtml b/app/code/Magento/CatalogRule/view/adminhtml/templates/promo/fieldset.phtml index 0c13825d16798..0f8144dd4629e 100644 --- a/app/code/Magento/CatalogRule/view/adminhtml/templates/promo/fieldset.phtml +++ b/app/code/Magento/CatalogRule/view/adminhtml/templates/promo/fieldset.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogRuleConfigurable/Plugin/CatalogRule/Model/ConfigurableProductsProvider.php b/app/code/Magento/CatalogRuleConfigurable/Plugin/CatalogRule/Model/ConfigurableProductsProvider.php index c4b8d5f275f68..5e8706be18666 100644 --- a/app/code/Magento/CatalogRuleConfigurable/Plugin/CatalogRule/Model/ConfigurableProductsProvider.php +++ b/app/code/Magento/CatalogRuleConfigurable/Plugin/CatalogRule/Model/ConfigurableProductsProvider.php @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRuleConfigurable/etc/crontab/di.xml b/app/code/Magento/CatalogRuleConfigurable/etc/crontab/di.xml index ef226c965c57b..fb7479021a7b6 100644 --- a/app/code/Magento/CatalogRuleConfigurable/etc/crontab/di.xml +++ b/app/code/Magento/CatalogRuleConfigurable/etc/crontab/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRuleConfigurable/etc/di.xml b/app/code/Magento/CatalogRuleConfigurable/etc/di.xml index 8807b657f1c05..19805ebbeb5d3 100644 --- a/app/code/Magento/CatalogRuleConfigurable/etc/di.xml +++ b/app/code/Magento/CatalogRuleConfigurable/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRuleConfigurable/etc/module.xml b/app/code/Magento/CatalogRuleConfigurable/etc/module.xml index c329a1fbe46ee..3552af8ceb337 100644 --- a/app/code/Magento/CatalogRuleConfigurable/etc/module.xml +++ b/app/code/Magento/CatalogRuleConfigurable/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogRuleConfigurable/registration.php b/app/code/Magento/CatalogRuleConfigurable/registration.php index 578434d65237b..95cd5b79e5721 100644 --- a/app/code/Magento/CatalogRuleConfigurable/registration.php +++ b/app/code/Magento/CatalogRuleConfigurable/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogSearch/etc/adminhtml/di.xml b/app/code/Magento/CatalogSearch/etc/adminhtml/di.xml index 1f87e8de6eb65..d28b1d90dc06f 100644 --- a/app/code/Magento/CatalogSearch/etc/adminhtml/di.xml +++ b/app/code/Magento/CatalogSearch/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml b/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml index ab0ddab0a7cf6..0eeb6ab33871e 100644 --- a/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml +++ b/app/code/Magento/CatalogSearch/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/catalog_attributes.xml b/app/code/Magento/CatalogSearch/etc/catalog_attributes.xml index c13caa8bbf2f0..7b19da16f3397 100644 --- a/app/code/Magento/CatalogSearch/etc/catalog_attributes.xml +++ b/app/code/Magento/CatalogSearch/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/config.xml b/app/code/Magento/CatalogSearch/etc/config.xml index d9f709f501f2e..d5ff194813b9c 100644 --- a/app/code/Magento/CatalogSearch/etc/config.xml +++ b/app/code/Magento/CatalogSearch/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/di.xml b/app/code/Magento/CatalogSearch/etc/di.xml index 25993adf3530c..2ef0be8601064 100644 --- a/app/code/Magento/CatalogSearch/etc/di.xml +++ b/app/code/Magento/CatalogSearch/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/events.xml b/app/code/Magento/CatalogSearch/etc/events.xml index 68d32ad26fb7e..322b7ab990bb5 100644 --- a/app/code/Magento/CatalogSearch/etc/events.xml +++ b/app/code/Magento/CatalogSearch/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/frontend/di.xml b/app/code/Magento/CatalogSearch/etc/frontend/di.xml index 69e8823e7bdef..6e21db38fab26 100644 --- a/app/code/Magento/CatalogSearch/etc/frontend/di.xml +++ b/app/code/Magento/CatalogSearch/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml b/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml index 7f05e212df860..8a29ff1bf6d73 100644 --- a/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml +++ b/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/frontend/routes.xml b/app/code/Magento/CatalogSearch/etc/frontend/routes.xml index e0bcffc439c25..536d00a093cc6 100644 --- a/app/code/Magento/CatalogSearch/etc/frontend/routes.xml +++ b/app/code/Magento/CatalogSearch/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/indexer.xml b/app/code/Magento/CatalogSearch/etc/indexer.xml index 796db4aecc118..9726f5372311d 100644 --- a/app/code/Magento/CatalogSearch/etc/indexer.xml +++ b/app/code/Magento/CatalogSearch/etc/indexer.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/module.xml b/app/code/Magento/CatalogSearch/etc/module.xml index 53ee3fca13af2..fd31faa083926 100644 --- a/app/code/Magento/CatalogSearch/etc/module.xml +++ b/app/code/Magento/CatalogSearch/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/mview.xml b/app/code/Magento/CatalogSearch/etc/mview.xml index ef5d6b453aac3..e5580d86d1ef8 100644 --- a/app/code/Magento/CatalogSearch/etc/mview.xml +++ b/app/code/Magento/CatalogSearch/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/etc/search_request.xml b/app/code/Magento/CatalogSearch/etc/search_request.xml index 84817ab37f36b..d7bfb2e6b4a5c 100644 --- a/app/code/Magento/CatalogSearch/etc/search_request.xml +++ b/app/code/Magento/CatalogSearch/etc/search_request.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/registration.php b/app/code/Magento/CatalogSearch/registration.php index 357bda4629222..37fc42c5ab92c 100644 --- a/app/code/Magento/CatalogSearch/registration.php +++ b/app/code/Magento/CatalogSearch/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_index.xml b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_index.xml index 337ec41d8f92e..79d14f26ff2a4 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_index.xml +++ b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_result.xml b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_result.xml index 56f652ec31af0..91041cf68aca7 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_result.xml +++ b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_advanced_result.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_result_index.xml b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_result_index.xml index fe4feb0bfaf0d..95ee44aa14f1e 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_result_index.xml +++ b/app/code/Magento/CatalogSearch/view/frontend/layout/catalogsearch_result_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml b/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml index 566910b76d499..5b29921d850b0 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml +++ b/app/code/Magento/CatalogSearch/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogSearch/view/frontend/requirejs-config.js b/app/code/Magento/CatalogSearch/view/frontend/requirejs-config.js index c2a3e552a7299..97a1734be7253 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/requirejs-config.js +++ b/app/code/Magento/CatalogSearch/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml b/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml index ffa83a8717b2d..a6564f7cd2fec 100644 --- a/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml +++ b/app/code/Magento/CatalogSearch/view/frontend/templates/advanced/form.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/events.xml b/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/events.xml index a977b24d7c69b..9c4a8aaf41231 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/events.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/system.xml b/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/system.xml index 8b5a72b18ff1b..4aa2e7f40c7c0 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/system.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/catalog_attributes.xml b/app/code/Magento/CatalogUrlRewrite/etc/catalog_attributes.xml index 5d2dbcb0d90d6..26e3d3da0eb3b 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/catalog_attributes.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/di.xml b/app/code/Magento/CatalogUrlRewrite/etc/di.xml index 7f0fc718083ec..2d421417bfdc0 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/di.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/eav_attributes.xml b/app/code/Magento/CatalogUrlRewrite/etc/eav_attributes.xml index aaedd2e5bb1a7..a51c3c8cfe046 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/eav_attributes.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/eav_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/events.xml b/app/code/Magento/CatalogUrlRewrite/etc/events.xml index 60c8d1045d836..cc558fe81f16d 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/events.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/etc/module.xml b/app/code/Magento/CatalogUrlRewrite/etc/module.xml index d2bfee12a6eda..65d6e5c748d98 100644 --- a/app/code/Magento/CatalogUrlRewrite/etc/module.xml +++ b/app/code/Magento/CatalogUrlRewrite/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogUrlRewrite/registration.php b/app/code/Magento/CatalogUrlRewrite/registration.php index 8dc5ed7f29d11..7d3cca119a659 100644 --- a/app/code/Magento/CatalogUrlRewrite/registration.php +++ b/app/code/Magento/CatalogUrlRewrite/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogWidget/Block/Product/ProductsList.php b/app/code/Magento/CatalogWidget/Block/Product/ProductsList.php index d8be81b99d1d9..e5a64cf833022 100644 --- a/app/code/Magento/CatalogWidget/Block/Product/ProductsList.php +++ b/app/code/Magento/CatalogWidget/Block/Product/ProductsList.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CatalogWidget/etc/module.xml b/app/code/Magento/CatalogWidget/etc/module.xml index a335a9a3d4a07..8954f11f954f7 100644 --- a/app/code/Magento/CatalogWidget/etc/module.xml +++ b/app/code/Magento/CatalogWidget/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogWidget/etc/widget.xml b/app/code/Magento/CatalogWidget/etc/widget.xml index c08d3e4da9c6a..3d54c314c6622 100644 --- a/app/code/Magento/CatalogWidget/etc/widget.xml +++ b/app/code/Magento/CatalogWidget/etc/widget.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CatalogWidget/registration.php b/app/code/Magento/CatalogWidget/registration.php index 5a08e70aab0c4..556da60268baf 100644 --- a/app/code/Magento/CatalogWidget/registration.php +++ b/app/code/Magento/CatalogWidget/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/etc/config.xml b/app/code/Magento/Checkout/etc/config.xml index dcc63a978e0a3..3c24c38ecf85b 100644 --- a/app/code/Magento/Checkout/etc/config.xml +++ b/app/code/Magento/Checkout/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/di.xml b/app/code/Magento/Checkout/etc/di.xml index 5e769e4748be1..7650ca4eccdc1 100644 --- a/app/code/Magento/Checkout/etc/di.xml +++ b/app/code/Magento/Checkout/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/email_templates.xml b/app/code/Magento/Checkout/etc/email_templates.xml index 2fb2f1ca37992..976a93c50f48a 100644 --- a/app/code/Magento/Checkout/etc/email_templates.xml +++ b/app/code/Magento/Checkout/etc/email_templates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/events.xml b/app/code/Magento/Checkout/etc/events.xml index 8c657c5d8b09e..dd2897f5db6eb 100644 --- a/app/code/Magento/Checkout/etc/events.xml +++ b/app/code/Magento/Checkout/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/fieldset.xml b/app/code/Magento/Checkout/etc/fieldset.xml index 44bcdc9367c51..3b545101f023f 100644 --- a/app/code/Magento/Checkout/etc/fieldset.xml +++ b/app/code/Magento/Checkout/etc/fieldset.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/frontend/di.xml b/app/code/Magento/Checkout/etc/frontend/di.xml index 40385740a6130..49cd31bd0d92a 100644 --- a/app/code/Magento/Checkout/etc/frontend/di.xml +++ b/app/code/Magento/Checkout/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/frontend/events.xml b/app/code/Magento/Checkout/etc/frontend/events.xml index dce51690514b4..901b652201db1 100644 --- a/app/code/Magento/Checkout/etc/frontend/events.xml +++ b/app/code/Magento/Checkout/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/frontend/page_types.xml b/app/code/Magento/Checkout/etc/frontend/page_types.xml index 25200529e6d74..bd06cbfb702a3 100644 --- a/app/code/Magento/Checkout/etc/frontend/page_types.xml +++ b/app/code/Magento/Checkout/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/frontend/routes.xml b/app/code/Magento/Checkout/etc/frontend/routes.xml index 3d50251a2247e..565c2e5ed9ab8 100644 --- a/app/code/Magento/Checkout/etc/frontend/routes.xml +++ b/app/code/Magento/Checkout/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/frontend/sections.xml b/app/code/Magento/Checkout/etc/frontend/sections.xml index b0fd4d9e38a81..35733a6119a25 100644 --- a/app/code/Magento/Checkout/etc/frontend/sections.xml +++ b/app/code/Magento/Checkout/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/module.xml b/app/code/Magento/Checkout/etc/module.xml index 3357b79479b95..219ca87337fc9 100644 --- a/app/code/Magento/Checkout/etc/module.xml +++ b/app/code/Magento/Checkout/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/etc/webapi.xml b/app/code/Magento/Checkout/etc/webapi.xml index 8c2c1f3820d4c..7b435db200f19 100644 --- a/app/code/Magento/Checkout/etc/webapi.xml +++ b/app/code/Magento/Checkout/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/registration.php b/app/code/Magento/Checkout/registration.php index 915fa033ac1cb..00613601741e9 100644 --- a/app/code/Magento/Checkout/registration.php +++ b/app/code/Magento/Checkout/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/catalog_category_view.xml b/app/code/Magento/Checkout/view/frontend/layout/catalog_category_view.xml index 4bfe51a17fa48..0f692e8a279c2 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/catalog_category_view.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/catalog_category_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/Checkout/view/frontend/layout/catalog_product_view.xml index 4bfe51a17fa48..0f692e8a279c2 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/catalog_product_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml index 57b32c26a7619..061c0715e52b9 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure_type_simple.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure_type_simple.xml index b4250c802711b..39e1e1f75e898 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure_type_simple.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_configure_type_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml index 6e5a8fb0f1017..1b7102856d50d 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml index 69fc24be97757..9268f8a18d174 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml index 622841071c2c3..e3796b7ff65c2 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_price_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_renderers.xml index b48123cec8bc0..1b9bad3d81c65 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_total_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_total_renderers.xml index 169d29099f81d..eca071a677082 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_total_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_sidebar_total_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml index c2f8eeda0431e..0b5147eb45d29 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_item_price_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_item_price_renderers.xml index 39cb66575990f..43c2962d5569f 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_item_price_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_item_price_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_failure.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_failure.xml index 6a5b33ce6cec2..1766647270e32 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_failure.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_failure.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review_item_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review_item_renderers.xml index f3a4dfb080e62..8f262a718052e 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review_item_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_review_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml index b0af16ef1454a..542355cead4e4 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_onepage_success.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/layout/default.xml b/app/code/Magento/Checkout/view/frontend/layout/default.xml index fe26adbe3c7cf..26942e5d611fa 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/default.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/page_layout/checkout.xml b/app/code/Magento/Checkout/view/frontend/page_layout/checkout.xml index 8b3b73a639429..87a8c7a151d99 100644 --- a/app/code/Magento/Checkout/view/frontend/page_layout/checkout.xml +++ b/app/code/Magento/Checkout/view/frontend/page_layout/checkout.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Checkout/view/frontend/requirejs-config.js b/app/code/Magento/Checkout/view/frontend/requirejs-config.js index 68e95b48e8d05..1f552b779539c 100644 --- a/app/code/Magento/Checkout/view/frontend/requirejs-config.js +++ b/app/code/Magento/Checkout/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Checkout/view/frontend/templates/button.phtml b/app/code/Magento/Checkout/view/frontend/templates/button.phtml index ae8d8e95076f4..77147395a7791 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/button.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/button.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/additional/info.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/additional/info.phtml index 44f8d1a3889f8..cb92e62f1f0c8 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/additional/info.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/additional/info.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/templates/item/price/row.phtml b/app/code/Magento/Checkout/view/frontend/templates/item/price/row.phtml index cbbd571a3fd96..5901e32305622 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/item/price/row.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/item/price/row.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/billing-address.html b/app/code/Magento/Checkout/view/frontend/web/template/billing-address.html index 6f13f3379b07c..5f735fbb4daa9 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/billing-address.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/billing-address.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/details.html b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/details.html index 1ad0ab32ac2f1..8d11978afcdfc 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/details.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/details.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/form.html b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/form.html index 7b9c5d286cb62..7b7a1d03bb014 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/form.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/form.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/list.html b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/list.html index 1869b514d02f9..be89b1e5d0eb4 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/billing-address/list.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/billing-address/list.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-estimation.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-estimation.html index 186b932b4e2b2..982aa6a88d09b 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-estimation.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-estimation.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html index fb0182228c21e..d317d1606811a 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals.html index a6549d19c9146..ab8d6a8f1364e 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/grand-total.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/grand-total.html index 6ff15eca9a95e..b6872c3047ee3 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/grand-total.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/grand-total.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/shipping.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/shipping.html index 31394da7d9d21..3d53cd2a74523 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/shipping.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/shipping.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/subtotal.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/subtotal.html index ba908bf0ec18e..307a94ea3a5a0 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/subtotal.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/totals/subtotal.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/estimation.html b/app/code/Magento/Checkout/view/frontend/web/template/estimation.html index c360a40d7ef8c..06b249ce9b6fa 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/estimation.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/estimation.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/form/element/email.html b/app/code/Magento/Checkout/view/frontend/web/template/form/element/email.html index f67970754b70b..0d4e9444d07f0 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/form/element/email.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/form/element/email.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/minicart/content.html b/app/code/Magento/Checkout/view/frontend/web/template/minicart/content.html index 487ea923a8a44..2cd0348c3c93a 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/minicart/content.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/minicart/content.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/default.html b/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/default.html index cf91774a38af4..9580e463ca5f1 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/default.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/default.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/price.html b/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/price.html index c54426e901463..7c6bc97481355 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/price.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/minicart/item/price.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal.html b/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal.html index d2b4566ebc673..b8e9ca09e632b 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal/totals.html b/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal/totals.html index ac31e20b8a885..c89dc173dd2f2 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal/totals.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/minicart/subtotal/totals.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/onepage.html b/app/code/Magento/Checkout/view/frontend/web/template/onepage.html index 8ec57b6b17cd8..b8e1332bd3f2f 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/onepage.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/onepage.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/payment-methods/list.html b/app/code/Magento/Checkout/view/frontend/web/template/payment-methods/list.html index f64223cafe1e1..b7be5efee383e 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/payment-methods/list.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/payment-methods/list.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/payment.html b/app/code/Magento/Checkout/view/frontend/web/template/payment.html index 62e9ad0ec13fb..a3e1a0f7aca90 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/payment.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/payment.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/payment/before-place-order.html b/app/code/Magento/Checkout/view/frontend/web/template/payment/before-place-order.html index 2a617a7bea54c..764693ab8f86c 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/payment/before-place-order.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/payment/before-place-order.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/payment/generic-title.html b/app/code/Magento/Checkout/view/frontend/web/template/payment/generic-title.html index 4a049082f00f4..4c2cd0fb1c695 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/payment/generic-title.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/payment/generic-title.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/progress-bar.html b/app/code/Magento/Checkout/view/frontend/web/template/progress-bar.html index 9359986671986..a4d56379124d7 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/progress-bar.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/progress-bar.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/registration.html b/app/code/Magento/Checkout/view/frontend/web/template/registration.html index e58a09f478f16..256fc1968abfc 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/registration.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/registration.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/review/actions.html b/app/code/Magento/Checkout/view/frontend/web/template/review/actions.html index ed05c3954e35a..91b8b0c890b7d 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/review/actions.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/review/actions.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/review/actions/default.html b/app/code/Magento/Checkout/view/frontend/web/template/review/actions/default.html index 859c0e49c86bf..e295d1511d5fb 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/review/actions/default.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/review/actions/default.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/address-renderer/default.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/address-renderer/default.html index 2e0317c6e0fc6..97b7bd2287372 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/address-renderer/default.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/address-renderer/default.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/form.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/form.html index 89f26bee1da73..2afd01a809324 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/form.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/form.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/list.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/list.html index d631229a33fce..41ba182949a53 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/list.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-address/list.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information.html index b32e96641f30c..686409d9d085b 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/address-renderer/default.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/address-renderer/default.html index 847092de08a9c..46223a1e8c3b6 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/address-renderer/default.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/address-renderer/default.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/list.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/list.html index f421e1052f675..9e4f60fd52079 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/list.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping-information/list.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/shipping.html b/app/code/Magento/Checkout/view/frontend/web/template/shipping.html index e5df23515afb8..def73c7294db1 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/shipping.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/shipping.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/sidebar.html b/app/code/Magento/Checkout/view/frontend/web/template/sidebar.html index 751e2c461dcaa..c7c1b7791cc90 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/sidebar.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/sidebar.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary.html b/app/code/Magento/Checkout/view/frontend/web/template/summary.html index c9a4ab81ed514..5f313f0249a1f 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/cart-items.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/cart-items.html index 60d88653924c0..5fcbc5c63e5de 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/cart-items.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/cart-items.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/grand-total.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/grand-total.html index 1f0c08616c11a..0e7e4f96b6c80 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/grand-total.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/grand-total.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details.html index 5436e82f9db2b..daa37cbe2dc89 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/subtotal.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/subtotal.html index c99d2f05445b1..6a5ecca31a958 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/subtotal.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/subtotal.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/thumbnail.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/thumbnail.html index a9ed49da52599..981541e7251e7 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/thumbnail.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/item/details/thumbnail.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/shipping.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/shipping.html index 187328360087f..af46420b959ff 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/shipping.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/shipping.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/subtotal.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/subtotal.html index dcfd270e80b36..f0bcbae3803ea 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/subtotal.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/subtotal.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Checkout/view/frontend/web/template/summary/totals.html b/app/code/Magento/Checkout/view/frontend/web/template/summary/totals.html index 627bd6e827fd2..6352d04a38ea6 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/summary/totals.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/summary/totals.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CheckoutAgreements/Api/CheckoutAgreementsRepositoryInterface.php b/app/code/Magento/CheckoutAgreements/Api/CheckoutAgreementsRepositoryInterface.php index 2e60aec29f0a1..ea4756bc10e98 100644 --- a/app/code/Magento/CheckoutAgreements/Api/CheckoutAgreementsRepositoryInterface.php +++ b/app/code/Magento/CheckoutAgreements/Api/CheckoutAgreementsRepositoryInterface.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/adminhtml/menu.xml b/app/code/Magento/CheckoutAgreements/etc/adminhtml/menu.xml index c6cece231c3aa..f6cd385c9f2b0 100644 --- a/app/code/Magento/CheckoutAgreements/etc/adminhtml/menu.xml +++ b/app/code/Magento/CheckoutAgreements/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/adminhtml/routes.xml b/app/code/Magento/CheckoutAgreements/etc/adminhtml/routes.xml index c047706860c0e..1249ea44b991e 100644 --- a/app/code/Magento/CheckoutAgreements/etc/adminhtml/routes.xml +++ b/app/code/Magento/CheckoutAgreements/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/adminhtml/system.xml b/app/code/Magento/CheckoutAgreements/etc/adminhtml/system.xml index bfb813ea4c269..64ffb2b5dc21a 100644 --- a/app/code/Magento/CheckoutAgreements/etc/adminhtml/system.xml +++ b/app/code/Magento/CheckoutAgreements/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/di.xml b/app/code/Magento/CheckoutAgreements/etc/di.xml index 4d80a4776a8c5..0f5af01a19e42 100644 --- a/app/code/Magento/CheckoutAgreements/etc/di.xml +++ b/app/code/Magento/CheckoutAgreements/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/extension_attributes.xml b/app/code/Magento/CheckoutAgreements/etc/extension_attributes.xml index 3b6d490e04ebc..8547b2067d059 100644 --- a/app/code/Magento/CheckoutAgreements/etc/extension_attributes.xml +++ b/app/code/Magento/CheckoutAgreements/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/frontend/di.xml b/app/code/Magento/CheckoutAgreements/etc/frontend/di.xml index f33eced3401d4..9a81c15458a0d 100644 --- a/app/code/Magento/CheckoutAgreements/etc/frontend/di.xml +++ b/app/code/Magento/CheckoutAgreements/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/module.xml b/app/code/Magento/CheckoutAgreements/etc/module.xml index 797102ee1dc78..4773b108dd434 100644 --- a/app/code/Magento/CheckoutAgreements/etc/module.xml +++ b/app/code/Magento/CheckoutAgreements/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/etc/webapi.xml b/app/code/Magento/CheckoutAgreements/etc/webapi.xml index 41267e2d75fed..5a39f9760c62c 100644 --- a/app/code/Magento/CheckoutAgreements/etc/webapi.xml +++ b/app/code/Magento/CheckoutAgreements/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/registration.php b/app/code/Magento/CheckoutAgreements/registration.php index b81f45461d83f..af65d4257a848 100644 --- a/app/code/Magento/CheckoutAgreements/registration.php +++ b/app/code/Magento/CheckoutAgreements/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CheckoutAgreements/view/frontend/layout/multishipping_checkout_overview.xml b/app/code/Magento/CheckoutAgreements/view/frontend/layout/multishipping_checkout_overview.xml index 6cd283c7f392c..22f40490d038b 100644 --- a/app/code/Magento/CheckoutAgreements/view/frontend/layout/multishipping_checkout_overview.xml +++ b/app/code/Magento/CheckoutAgreements/view/frontend/layout/multishipping_checkout_overview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CheckoutAgreements/view/frontend/requirejs-config.js b/app/code/Magento/CheckoutAgreements/view/frontend/requirejs-config.js index 4a20149774d3b..15f92c180a02d 100644 --- a/app/code/Magento/CheckoutAgreements/view/frontend/requirejs-config.js +++ b/app/code/Magento/CheckoutAgreements/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ diff --git a/app/code/Magento/CheckoutAgreements/view/frontend/templates/additional_agreements.phtml b/app/code/Magento/CheckoutAgreements/view/frontend/templates/additional_agreements.phtml index 20840500a246f..0ce68afedfa7d 100644 --- a/app/code/Magento/CheckoutAgreements/view/frontend/templates/additional_agreements.phtml +++ b/app/code/Magento/CheckoutAgreements/view/frontend/templates/additional_agreements.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/Api/BlockRepositoryInterface.php b/app/code/Magento/Cms/Api/BlockRepositoryInterface.php index 64ff3c1c8f036..3f7e3e85336a3 100644 --- a/app/code/Magento/Cms/Api/BlockRepositoryInterface.php +++ b/app/code/Magento/Cms/Api/BlockRepositoryInterface.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/etc/adminhtml/di.xml b/app/code/Magento/Cms/etc/adminhtml/di.xml index f35fd13c10f3c..8a1a4b24258d7 100644 --- a/app/code/Magento/Cms/etc/adminhtml/di.xml +++ b/app/code/Magento/Cms/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/adminhtml/menu.xml b/app/code/Magento/Cms/etc/adminhtml/menu.xml index c29d127650ecf..4b275bbcbf9f1 100644 --- a/app/code/Magento/Cms/etc/adminhtml/menu.xml +++ b/app/code/Magento/Cms/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/adminhtml/routes.xml b/app/code/Magento/Cms/etc/adminhtml/routes.xml index 401010f25f889..b4dfbd661ba26 100644 --- a/app/code/Magento/Cms/etc/adminhtml/routes.xml +++ b/app/code/Magento/Cms/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/adminhtml/system.xml b/app/code/Magento/Cms/etc/adminhtml/system.xml index f460ca83637df..d06e5fcc34914 100644 --- a/app/code/Magento/Cms/etc/adminhtml/system.xml +++ b/app/code/Magento/Cms/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/config.xml b/app/code/Magento/Cms/etc/config.xml index 80b635771b373..529ef7e8ff413 100644 --- a/app/code/Magento/Cms/etc/config.xml +++ b/app/code/Magento/Cms/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/di.xml b/app/code/Magento/Cms/etc/di.xml index beef3c9d9f8d0..b543c54536438 100644 --- a/app/code/Magento/Cms/etc/di.xml +++ b/app/code/Magento/Cms/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/events.xml b/app/code/Magento/Cms/etc/events.xml index 698d655a25b26..d6b9ad4ee0248 100644 --- a/app/code/Magento/Cms/etc/events.xml +++ b/app/code/Magento/Cms/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/frontend/di.xml b/app/code/Magento/Cms/etc/frontend/di.xml index 8e01e229f3fa9..c345778f65eab 100644 --- a/app/code/Magento/Cms/etc/frontend/di.xml +++ b/app/code/Magento/Cms/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/frontend/events.xml b/app/code/Magento/Cms/etc/frontend/events.xml index 20049ba2e3c1e..20fbe327f7e1c 100644 --- a/app/code/Magento/Cms/etc/frontend/events.xml +++ b/app/code/Magento/Cms/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/frontend/page_types.xml b/app/code/Magento/Cms/etc/frontend/page_types.xml index 07c15f1788ef1..2022f65c4825b 100644 --- a/app/code/Magento/Cms/etc/frontend/page_types.xml +++ b/app/code/Magento/Cms/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/frontend/routes.xml b/app/code/Magento/Cms/etc/frontend/routes.xml index 07703696500e2..f195f31cdb010 100644 --- a/app/code/Magento/Cms/etc/frontend/routes.xml +++ b/app/code/Magento/Cms/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/module.xml b/app/code/Magento/Cms/etc/module.xml index 6ade3050020b4..268a6cce15ab8 100644 --- a/app/code/Magento/Cms/etc/module.xml +++ b/app/code/Magento/Cms/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/mview.xml b/app/code/Magento/Cms/etc/mview.xml index c61128dd1bf1a..1de97280d751d 100644 --- a/app/code/Magento/Cms/etc/mview.xml +++ b/app/code/Magento/Cms/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/webapi.xml b/app/code/Magento/Cms/etc/webapi.xml index e1f25900a933c..5b66d0e3ed879 100644 --- a/app/code/Magento/Cms/etc/webapi.xml +++ b/app/code/Magento/Cms/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/etc/widget.xml b/app/code/Magento/Cms/etc/widget.xml index 1cecd91df6163..204614a460fd0 100644 --- a/app/code/Magento/Cms/etc/widget.xml +++ b/app/code/Magento/Cms/etc/widget.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/registration.php b/app/code/Magento/Cms/registration.php index 926e792c92ac1..67de03649220a 100644 --- a/app/code/Magento/Cms/registration.php +++ b/app/code/Magento/Cms/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_block_index.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_block_index.xml index 7008d92109ab9..d22eaf504e703 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_block_index.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_block_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_block_new.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_block_new.xml index 10ad53bb55820..b0e34747d656c 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_block_new.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_block_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_edit.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_edit.xml index c2b8f136baee3..1065456fd790d 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_edit.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_index.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_index.xml index 1bd5368d7cb6f..bf78b1cd49448 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_index.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_new.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_new.xml index b5befcb1019ed..69b7b9582d42d 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_page_new.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_page_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_contents.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_contents.xml index a8139b1ac8482..d21d33692d3b9 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_contents.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_contents.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_index.xml b/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_index.xml index 3c1689556590d..94921eeb9ca4b 100644 --- a/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_index.xml +++ b/app/code/Magento/Cms/view/adminhtml/layout/cms_wysiwyg_images_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/requirejs-config.js b/app/code/Magento/Cms/view/adminhtml/requirejs-config.js index 733f2e4217422..a867bebf7bf1d 100644 --- a/app/code/Magento/Cms/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/Cms/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml index c283dd418dced..9d2e620a0b9ce 100644 --- a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml +++ b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index e15ac7cd2deb9..26a4a599278ae 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_form.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_form.xml index a5dcdc06f82fc..409c35ac9ed69 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_form.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 2fa39bc883d82..b2853481cf94b 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/adminhtml/web/js/folder-tree.js b/app/code/Magento/Cms/view/adminhtml/web/js/folder-tree.js index a72db4db80242..811679ebda2ad 100644 --- a/app/code/Magento/Cms/view/adminhtml/web/js/folder-tree.js +++ b/app/code/Magento/Cms/view/adminhtml/web/js/folder-tree.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultindex.xml b/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultindex.xml index ec68cb946b3ad..5dc45ba1222cb 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultindex.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultindex.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultnoroute.xml b/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultnoroute.xml index 39607b840044b..b7c117b9f1c77 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultnoroute.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_index_defaultnoroute.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_index_index.xml b/app/code/Magento/Cms/view/frontend/layout/cms_index_index.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_index_index.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_index_nocookies.xml b/app/code/Magento/Cms/view/frontend/layout/cms_index_nocookies.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_index_nocookies.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_index_nocookies.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_index_noroute.xml b/app/code/Magento/Cms/view/frontend/layout/cms_index_noroute.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_index_noroute.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_index_noroute.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/cms_page_view.xml b/app/code/Magento/Cms/view/frontend/layout/cms_page_view.xml index 9b49cd29a5ade..5356159c4f831 100644 --- a/app/code/Magento/Cms/view/frontend/layout/cms_page_view.xml +++ b/app/code/Magento/Cms/view/frontend/layout/cms_page_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/default.xml b/app/code/Magento/Cms/view/frontend/layout/default.xml index d6e411815703b..7061f04cd09f0 100644 --- a/app/code/Magento/Cms/view/frontend/layout/default.xml +++ b/app/code/Magento/Cms/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/layout/print.xml b/app/code/Magento/Cms/view/frontend/layout/print.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Cms/view/frontend/layout/print.xml +++ b/app/code/Magento/Cms/view/frontend/layout/print.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cms/view/frontend/templates/content.phtml b/app/code/Magento/Cms/view/frontend/templates/content.phtml index 377ae06b03633..c4bfb7cfef46d 100644 --- a/app/code/Magento/Cms/view/frontend/templates/content.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/content.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/frontend/templates/default/no-route.phtml b/app/code/Magento/Cms/view/frontend/templates/default/no-route.phtml index 2013ef4ca6720..1268efaa15cf6 100644 --- a/app/code/Magento/Cms/view/frontend/templates/default/no-route.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/default/no-route.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/frontend/templates/meta.phtml b/app/code/Magento/Cms/view/frontend/templates/meta.phtml index d213ffab513ff..2979e72e07353 100644 --- a/app/code/Magento/Cms/view/frontend/templates/meta.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/meta.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml b/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml index 80b20e4da3527..8336e0a29c1be 100644 --- a/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/widget/link/link_inline.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cms/view/frontend/templates/widget/static_block/default.phtml b/app/code/Magento/Cms/view/frontend/templates/widget/static_block/default.phtml index 73e0404aa7144..5f47184f8bf95 100644 --- a/app/code/Magento/Cms/view/frontend/templates/widget/static_block/default.phtml +++ b/app/code/Magento/Cms/view/frontend/templates/widget/static_block/default.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CmsUrlRewrite/Model/CmsPageUrlPathGenerator.php b/app/code/Magento/CmsUrlRewrite/Model/CmsPageUrlPathGenerator.php index 6bdd6a912dc5e..5cf621781664d 100644 --- a/app/code/Magento/CmsUrlRewrite/Model/CmsPageUrlPathGenerator.php +++ b/app/code/Magento/CmsUrlRewrite/Model/CmsPageUrlPathGenerator.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CmsUrlRewrite/etc/events.xml b/app/code/Magento/CmsUrlRewrite/etc/events.xml index fef365af721a7..782454f325180 100644 --- a/app/code/Magento/CmsUrlRewrite/etc/events.xml +++ b/app/code/Magento/CmsUrlRewrite/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CmsUrlRewrite/etc/module.xml b/app/code/Magento/CmsUrlRewrite/etc/module.xml index 5d29e1201841e..bce3dce2a40e0 100644 --- a/app/code/Magento/CmsUrlRewrite/etc/module.xml +++ b/app/code/Magento/CmsUrlRewrite/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CmsUrlRewrite/registration.php b/app/code/Magento/CmsUrlRewrite/registration.php index 94f20986c3a66..495d6ae500b14 100644 --- a/app/code/Magento/CmsUrlRewrite/registration.php +++ b/app/code/Magento/CmsUrlRewrite/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/ConfigTest.php b/app/code/Magento/Config/Test/Unit/Model/ConfigTest.php index 343542b777d9d..44932f8380c9c 100644 --- a/app/code/Magento/Config/Test/Unit/Model/ConfigTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/acl_1.xml b/app/code/Magento/Config/Test/Unit/Model/_files/acl_1.xml index 7a64451132077..9a95b3c4aa3d0 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/acl_1.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/acl_1.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/acl_2.xml b/app/code/Magento/Config/Test/Unit/Model/_files/acl_2.xml index 25ffd2e232bb7..8bc78121bfca6 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/acl_2.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/acl_2.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/acl_merged.xml b/app/code/Magento/Config/Test/Unit/Model/_files/acl_merged.xml index 4f64fcfd1978a..411bbeecb628c 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/acl_merged.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/acl_merged.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/converted_config.php b/app/code/Magento/Config/Test/Unit/Model/_files/converted_config.php index c0cacb8e08317..7c0f65e72d88c 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/converted_config.php +++ b/app/code/Magento/Config/Test/Unit/Model/_files/converted_config.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/menu_2.xml b/app/code/Magento/Config/Test/Unit/Model/_files/menu_2.xml index be40b39845cde..1fb9bafa6d83e 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/menu_2.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/menu_2.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_1.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_1.xml index f457f5561ad73..3cb4fff80f887 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_1.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_1.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_2.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_2.xml index c532d3b784fe9..8e6027e1421ea 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_2.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_2.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_1.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_1.xml index 742773c27730b..7501e77e855af 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_1.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_1.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_2.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_2.xml index 51dd03e0b00df..6ed935245fed4 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_2.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_config_options_2.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_1.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_1.xml index aafdd903b9cc3..89b573bba7c23 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_1.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_1.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_2.xml b/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_2.xml index a343a1ab45396..efa6283f7dfa3 100644 --- a/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_2.xml +++ b/app/code/Magento/Config/Test/Unit/Model/_files/system_unknown_attribute_2.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/acl.xml b/app/code/Magento/Config/etc/acl.xml index 14a29ff3bae41..3c6d3faa4242f 100644 --- a/app/code/Magento/Config/etc/acl.xml +++ b/app/code/Magento/Config/etc/acl.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/adminhtml/di.xml b/app/code/Magento/Config/etc/adminhtml/di.xml index 672693b9a400b..dc208c5f86fdf 100644 --- a/app/code/Magento/Config/etc/adminhtml/di.xml +++ b/app/code/Magento/Config/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/adminhtml/events.xml b/app/code/Magento/Config/etc/adminhtml/events.xml index dcaa2961f9ca0..5f8bf1e576471 100644 --- a/app/code/Magento/Config/etc/adminhtml/events.xml +++ b/app/code/Magento/Config/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/adminhtml/menu.xml b/app/code/Magento/Config/etc/adminhtml/menu.xml index 62083660f411b..103e7ebe43ed4 100644 --- a/app/code/Magento/Config/etc/adminhtml/menu.xml +++ b/app/code/Magento/Config/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/adminhtml/routes.xml b/app/code/Magento/Config/etc/adminhtml/routes.xml index b96cbba088a85..38709e06ea0e1 100644 --- a/app/code/Magento/Config/etc/adminhtml/routes.xml +++ b/app/code/Magento/Config/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/di.xml b/app/code/Magento/Config/etc/di.xml index 32fbfb5b331b9..7172b2cc31564 100644 --- a/app/code/Magento/Config/etc/di.xml +++ b/app/code/Magento/Config/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/module.xml b/app/code/Magento/Config/etc/module.xml index 41b35ad1bf9eb..b64cbe2b72623 100644 --- a/app/code/Magento/Config/etc/module.xml +++ b/app/code/Magento/Config/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/system.xsd b/app/code/Magento/Config/etc/system.xsd index 8579d14a9cf31..5ddf844223b9d 100644 --- a/app/code/Magento/Config/etc/system.xsd +++ b/app/code/Magento/Config/etc/system.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/system_file.xsd b/app/code/Magento/Config/etc/system_file.xsd index 0914312c76362..cc8a1ad867e22 100644 --- a/app/code/Magento/Config/etc/system_file.xsd +++ b/app/code/Magento/Config/etc/system_file.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/etc/system_include.xsd b/app/code/Magento/Config/etc/system_include.xsd index 563448c25078a..0eec723d8691f 100644 --- a/app/code/Magento/Config/etc/system_include.xsd +++ b/app/code/Magento/Config/etc/system_include.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Config/registration.php b/app/code/Magento/Config/registration.php index 29c42cd42e789..eec4e4dc24835 100644 --- a/app/code/Magento/Config/registration.php +++ b/app/code/Magento/Config/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Config/view/adminhtml/templates/page/system/config/robots/reset.phtml b/app/code/Magento/Config/view/adminhtml/templates/page/system/config/robots/reset.phtml index 09f136cac36a4..65d11bb2af9c3 100644 --- a/app/code/Magento/Config/view/adminhtml/templates/page/system/config/robots/reset.phtml +++ b/app/code/Magento/Config/view/adminhtml/templates/page/system/config/robots/reset.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableImportExport/etc/export.xml b/app/code/Magento/ConfigurableImportExport/etc/export.xml index 7579f1ed01b5d..fcc01c53a19e1 100644 --- a/app/code/Magento/ConfigurableImportExport/etc/export.xml +++ b/app/code/Magento/ConfigurableImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableImportExport/etc/import.xml b/app/code/Magento/ConfigurableImportExport/etc/import.xml index 6be1a1deef9a4..3b96f489987fe 100644 --- a/app/code/Magento/ConfigurableImportExport/etc/import.xml +++ b/app/code/Magento/ConfigurableImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableImportExport/etc/module.xml b/app/code/Magento/ConfigurableImportExport/etc/module.xml index 8aa43f90dc401..83a4fc4e1a793 100644 --- a/app/code/Magento/ConfigurableImportExport/etc/module.xml +++ b/app/code/Magento/ConfigurableImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableImportExport/registration.php b/app/code/Magento/ConfigurableImportExport/registration.php index dfece572c23e8..3eaa6453a8c62 100644 --- a/app/code/Magento/ConfigurableImportExport/registration.php +++ b/app/code/Magento/ConfigurableImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/adminhtml/events.xml b/app/code/Magento/ConfigurableProduct/etc/adminhtml/events.xml index 70fb2a15438d5..a78e6171654a2 100644 --- a/app/code/Magento/ConfigurableProduct/etc/adminhtml/events.xml +++ b/app/code/Magento/ConfigurableProduct/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/adminhtml/routes.xml b/app/code/Magento/ConfigurableProduct/etc/adminhtml/routes.xml index 4fe6563978362..2f0208d36a532 100644 --- a/app/code/Magento/ConfigurableProduct/etc/adminhtml/routes.xml +++ b/app/code/Magento/ConfigurableProduct/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/adminhtml/system.xml b/app/code/Magento/ConfigurableProduct/etc/adminhtml/system.xml index 494b09d031c56..ba52b51d6b077 100644 --- a/app/code/Magento/ConfigurableProduct/etc/adminhtml/system.xml +++ b/app/code/Magento/ConfigurableProduct/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/config.xml b/app/code/Magento/ConfigurableProduct/etc/config.xml index 98b1658bc52c4..6b803abc1260e 100644 --- a/app/code/Magento/ConfigurableProduct/etc/config.xml +++ b/app/code/Magento/ConfigurableProduct/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/di.xml b/app/code/Magento/ConfigurableProduct/etc/di.xml index 351d5aed3bcba..b4ced618ee21d 100644 --- a/app/code/Magento/ConfigurableProduct/etc/di.xml +++ b/app/code/Magento/ConfigurableProduct/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/extension_attributes.xml b/app/code/Magento/ConfigurableProduct/etc/extension_attributes.xml index 45cb1e66dc8b7..c8565ab36132f 100644 --- a/app/code/Magento/ConfigurableProduct/etc/extension_attributes.xml +++ b/app/code/Magento/ConfigurableProduct/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/frontend/di.xml b/app/code/Magento/ConfigurableProduct/etc/frontend/di.xml index aa2dec7eb78ec..99ab8ee9050c2 100644 --- a/app/code/Magento/ConfigurableProduct/etc/frontend/di.xml +++ b/app/code/Magento/ConfigurableProduct/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/module.xml b/app/code/Magento/ConfigurableProduct/etc/module.xml index dd4830158a606..9cf13ed73f882 100644 --- a/app/code/Magento/ConfigurableProduct/etc/module.xml +++ b/app/code/Magento/ConfigurableProduct/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/product_types.xml b/app/code/Magento/ConfigurableProduct/etc/product_types.xml index 201da50fa47fa..dff5e7b1841a1 100644 --- a/app/code/Magento/ConfigurableProduct/etc/product_types.xml +++ b/app/code/Magento/ConfigurableProduct/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/sales.xml b/app/code/Magento/ConfigurableProduct/etc/sales.xml index 8e56542a28ae2..21d734fcbf0d7 100644 --- a/app/code/Magento/ConfigurableProduct/etc/sales.xml +++ b/app/code/Magento/ConfigurableProduct/etc/sales.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/etc/webapi.xml b/app/code/Magento/ConfigurableProduct/etc/webapi.xml index 13a647f70c359..5e3dd805732a5 100644 --- a/app/code/Magento/ConfigurableProduct/etc/webapi.xml +++ b/app/code/Magento/ConfigurableProduct/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/registration.php b/app/code/Magento/ConfigurableProduct/registration.php index 9cd8c621920f6..8fa7719783267 100644 --- a/app/code/Magento/ConfigurableProduct/registration.php +++ b/app/code/Magento/ConfigurableProduct/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_associated_grid.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_associated_grid.xml index 769300a80c820..2b9bf442d232f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_associated_grid.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_associated_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml index 16c1c38f4d42b..816a2fcd63059 100755 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_attribute_edit_product_tab_variations_popup.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_configurable.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_configurable.xml index b4d18dc122080..248799275aff5 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_configurable.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_configurable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_downloadable.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_downloadable.xml index 566bcc861857d..b1efe5f47a0e3 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_downloadable.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_downloadable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_new.xml index 11fe045901aac..0cc9066ea0fa0 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_set_edit.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_set_edit.xml index db940ea4f5790..ba39a74be256d 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_set_edit.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_set_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_simple.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_simple.xml index 566bcc861857d..b1efe5f47a0e3 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_simple.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_superconfig_config.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_superconfig_config.xml index 6b39e64b95d4c..f9508d3fac193 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_superconfig_config.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_superconfig_config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_view_type_configurable.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_view_type_configurable.xml index 457539b1279e4..c41e9baa93f4b 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_view_type_configurable.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_view_type_configurable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_virtual.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_virtual.xml index 566bcc861857d..b1efe5f47a0e3 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_virtual.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_virtual.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_wizard.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_wizard.xml index 8db28bde0a0cb..f6c472b209b6c 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_wizard.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/layout/catalog_product_wizard.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml index c37400baef7a4..12eb2c15981ee 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index d5ff6fb9d6549..7252bfa0794d3 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml index 86ff3cbd46033..e31b7f8b6ac82 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_form.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_form.xml index a928988a29cd9..6dbad86ccae81 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_form.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/css/configurable-product.css b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/css/configurable-product.css index 30d75898e79bc..9957a4a9ea115 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/css/configurable-product.css +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/css/configurable-product.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/associated-product-insert-listing.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/associated-product-insert-listing.js index 98461addf4c4f..2a8f4263bc412 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/associated-product-insert-listing.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/associated-product-insert-listing.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/container-configurable-handler.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/container-configurable-handler.js index e3834bc3464c1..0829ac8582f54 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/container-configurable-handler.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/container-configurable-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-price-type.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-price-type.js index 99a495a509179..b502f986c5af4 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-price-type.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-price-type.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-warning.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-warning.js index 210361945c541..ed267ee87fda6 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-warning.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/custom-options-warning.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js index 7f02df57d48e5..64d94b762487c 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/file-uploader.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/file-uploader.js index a90d977da6056..2767779bfe976 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/file-uploader.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/file-uploader.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/modal-configurable.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/modal-configurable.js index b0dfe14fe9d6b..61dfe04a90f7e 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/modal-configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/modal-configurable.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable-type-handler.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable-type-handler.js index 857dd8cfa38e8..b3a86229c830a 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable-type-handler.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable-type-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable.js index df3b1638f61d1..c157ecbfe0bc1 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/configurable.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /**************************** CONFIGURABLE PRODUCT **************************/ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/options/price-type-handler.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/options/price-type-handler.js index cd354741bb061..19391ed6baca4 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/options/price-type-handler.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/options/price-type-handler.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /* diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/paging/sizes.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/paging/sizes.js index 386c486cea7b7..a8b8f95f6536f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/paging/sizes.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/paging/sizes.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js index ce2fd9ac5ea80..16f1a2dd6f5f3 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js @@ -1,6 +1,6 @@ // jscs:disable requireDotNotation /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/attributes_values.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/attributes_values.js index c3c4bc2336a1b..86fe08aa45d7f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/attributes_values.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/attributes_values.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ // jscs:disable jsDoc 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 ae4a51fb3b0bd..2b99eef5d7de9 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 @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/select_attributes.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/select_attributes.js index 18a1b30c051ce..30a8d88174e12 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/select_attributes.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/select_attributes.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ // jscs:disable jsDoc diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/summary.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/summary.js index 1d504cda1738b..e5596ff34ad95 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/summary.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/summary.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ // jscs:disable jsDoc diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js index 8e814628d5108..3b1e15bc3b9d6 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js @@ -1,6 +1,6 @@ // jscs:disable requireDotNotation /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ // jscs:disable jsDoc diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/product/product.css b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/product/product.css index 69b45d7fc6552..3b7ae099e4362 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/product/product.css +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/product/product.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/actions-list.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/actions-list.html index 290491a938b05..946d9bd430737 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/actions-list.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/actions-list.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-html.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-html.html index bb6b3556734fe..b014e32793035 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-html.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-html.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-status.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-status.html index 4006a8937d2df..199ff6924a4ec 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-status.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/cell-status.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/file-uploader.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/file-uploader.html index 8bdb919d138a9..e54f19878bb8d 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/file-uploader.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/components/file-uploader.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html index 4ef980d98bed8..ff247c14bf52b 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/template/variations/steps/summary-grid.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/base/layout/catalog_product_prices.xml b/app/code/Magento/ConfigurableProduct/view/base/layout/catalog_product_prices.xml index 0ae2972fd36aa..992491b13a725 100644 --- a/app/code/Magento/ConfigurableProduct/view/base/layout/catalog_product_prices.xml +++ b/app/code/Magento/ConfigurableProduct/view/base/layout/catalog_product_prices.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/base/templates/product/price/final_price.phtml b/app/code/Magento/ConfigurableProduct/view/base/templates/product/price/final_price.phtml index 213cf21c3522a..551fd5305c442 100644 --- a/app/code/Magento/ConfigurableProduct/view/base/templates/product/price/final_price.phtml +++ b/app/code/Magento/ConfigurableProduct/view/base/templates/product/price/final_price.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml index 302e246502433..01ddc5b0e5425 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/catalog_product_view_type_configurable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_configure_type_configurable.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_configure_type_configurable.xml index 84ee21b4b3c73..07336b6b59e1b 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_configure_type_configurable.xml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_configure_type_configurable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml index 9577f947a7a48..d3e1d7d89c957 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml index e861caa27aa2d..57cc1055db25f 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js b/app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js index 58b294fe7face..c25096121be5d 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/templates/js/components.phtml b/app/code/Magento/ConfigurableProduct/view/frontend/templates/js/components.phtml index bdcb2e9bf7747..e71938935b8f3 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/templates/js/components.phtml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/templates/js/components.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Contact/etc/adminhtml/system.xml b/app/code/Magento/Contact/etc/adminhtml/system.xml index 6d39846019a36..b5974e4d42e84 100644 --- a/app/code/Magento/Contact/etc/adminhtml/system.xml +++ b/app/code/Magento/Contact/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/config.xml b/app/code/Magento/Contact/etc/config.xml index 3a3e3460585b9..1ece010aefc67 100644 --- a/app/code/Magento/Contact/etc/config.xml +++ b/app/code/Magento/Contact/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/di.xml b/app/code/Magento/Contact/etc/di.xml index 0800e42b0ec0c..316e31f055773 100644 --- a/app/code/Magento/Contact/etc/di.xml +++ b/app/code/Magento/Contact/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/email_templates.xml b/app/code/Magento/Contact/etc/email_templates.xml index be2cf76d5911b..8ae3b643f43c8 100644 --- a/app/code/Magento/Contact/etc/email_templates.xml +++ b/app/code/Magento/Contact/etc/email_templates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/frontend/di.xml b/app/code/Magento/Contact/etc/frontend/di.xml index b520c9f0e865d..a84adeec28012 100644 --- a/app/code/Magento/Contact/etc/frontend/di.xml +++ b/app/code/Magento/Contact/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/frontend/page_types.xml b/app/code/Magento/Contact/etc/frontend/page_types.xml index a6f630d892114..58db29819b9d5 100644 --- a/app/code/Magento/Contact/etc/frontend/page_types.xml +++ b/app/code/Magento/Contact/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/frontend/routes.xml b/app/code/Magento/Contact/etc/frontend/routes.xml index ba548c605b71b..132d31e6258f5 100644 --- a/app/code/Magento/Contact/etc/frontend/routes.xml +++ b/app/code/Magento/Contact/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/etc/module.xml b/app/code/Magento/Contact/etc/module.xml index ea6c3d05c692c..ec91859ee2c8d 100644 --- a/app/code/Magento/Contact/etc/module.xml +++ b/app/code/Magento/Contact/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/registration.php b/app/code/Magento/Contact/registration.php index 6d3f8dc31a95d..9de87c2f24ed1 100644 --- a/app/code/Magento/Contact/registration.php +++ b/app/code/Magento/Contact/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Contact/view/frontend/layout/contact_index_index.xml b/app/code/Magento/Contact/view/frontend/layout/contact_index_index.xml index 740647609b195..078c1a4ff5621 100644 --- a/app/code/Magento/Contact/view/frontend/layout/contact_index_index.xml +++ b/app/code/Magento/Contact/view/frontend/layout/contact_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/view/frontend/layout/default.xml b/app/code/Magento/Contact/view/frontend/layout/default.xml index a97cf0ddc64e0..d236ac0e67f9d 100644 --- a/app/code/Magento/Contact/view/frontend/layout/default.xml +++ b/app/code/Magento/Contact/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Contact/view/frontend/templates/form.phtml b/app/code/Magento/Contact/view/frontend/templates/form.phtml index 2ed9adc8aed2f..6319a38e2c8a3 100644 --- a/app/code/Magento/Contact/view/frontend/templates/form.phtml +++ b/app/code/Magento/Contact/view/frontend/templates/form.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cookie/etc/config.xml b/app/code/Magento/Cookie/etc/config.xml index 4266c755f7737..710274195ac85 100644 --- a/app/code/Magento/Cookie/etc/config.xml +++ b/app/code/Magento/Cookie/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cookie/etc/di.xml b/app/code/Magento/Cookie/etc/di.xml index 73e5dacb9b2fe..8b53209f51916 100644 --- a/app/code/Magento/Cookie/etc/di.xml +++ b/app/code/Magento/Cookie/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cookie/etc/frontend/routes.xml b/app/code/Magento/Cookie/etc/frontend/routes.xml index ca903f9d58e5b..d9ccb9c48c09d 100644 --- a/app/code/Magento/Cookie/etc/frontend/routes.xml +++ b/app/code/Magento/Cookie/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cookie/etc/module.xml b/app/code/Magento/Cookie/etc/module.xml index 75b6e7bad6df0..35c5a52f42ec7 100644 --- a/app/code/Magento/Cookie/etc/module.xml +++ b/app/code/Magento/Cookie/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cookie/registration.php b/app/code/Magento/Cookie/registration.php index 696427c020dc3..d8e32043e8508 100644 --- a/app/code/Magento/Cookie/registration.php +++ b/app/code/Magento/Cookie/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cookie/view/frontend/requirejs-config.js b/app/code/Magento/Cookie/view/frontend/requirejs-config.js index 680ca42ebd11d..f469a04d061c1 100644 --- a/app/code/Magento/Cookie/view/frontend/requirejs-config.js +++ b/app/code/Magento/Cookie/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml b/app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml index 21c280a384f4a..01719ece092b4 100644 --- a/app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml +++ b/app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cookie/view/frontend/web/js/notices.js b/app/code/Magento/Cookie/view/frontend/web/js/notices.js index 0b526ca5c27e3..efbd86fdfd6f3 100644 --- a/app/code/Magento/Cookie/view/frontend/web/js/notices.js +++ b/app/code/Magento/Cookie/view/frontend/web/js/notices.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true jquery:true*/ diff --git a/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js b/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js index ca8861cc68533..e9f2cffee5191 100644 --- a/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js +++ b/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint evil:true browser:true jquery:true */ diff --git a/app/code/Magento/Cron/Console/Command/CronCommand.php b/app/code/Magento/Cron/Console/Command/CronCommand.php index 21ff041a8d5a4..6a9686c514e39 100644 --- a/app/code/Magento/Cron/Console/Command/CronCommand.php +++ b/app/code/Magento/Cron/Console/Command/CronCommand.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_duplicates.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_duplicates.xml index 1512aafb9abb2..5e62ca47aaf2a 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_duplicates.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_duplicates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_node_typo.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_node_typo.xml index 17e6850474e79..894c488577c9a 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_node_typo.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_node_typo.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_instance.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_instance.xml index 1b7f2a2f70daf..df2722b3cb330 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_instance.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_instance.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_method.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_method.xml index 1c0654811d4cd..6cca67d9b7519 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_method.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_method.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_name.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_name.xml index 8bf7f63b97979..459825966de74 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_name.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_invalid_without_name.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid.xml index 79c4da8a7837e..984cc46e29be5 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid_without_schedule.xml b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid_without_schedule.xml index 4e255306e503c..93c512d5c7591 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid_without_schedule.xml +++ b/app/code/Magento/Cron/Test/Unit/Model/Config/_files/crontab_valid_without_schedule.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/Test/Unit/Model/ConfigTest.php b/app/code/Magento/Cron/Test/Unit/Model/ConfigTest.php index 51787e30e86ef..2f9ab490af8e3 100644 --- a/app/code/Magento/Cron/Test/Unit/Model/ConfigTest.php +++ b/app/code/Magento/Cron/Test/Unit/Model/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Cron/etc/cron_groups.xml b/app/code/Magento/Cron/etc/cron_groups.xml index 28a3475f49d1f..a01426eab723e 100644 --- a/app/code/Magento/Cron/etc/cron_groups.xml +++ b/app/code/Magento/Cron/etc/cron_groups.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/etc/cron_groups.xsd b/app/code/Magento/Cron/etc/cron_groups.xsd index 15074997589de..7edba02063405 100644 --- a/app/code/Magento/Cron/etc/cron_groups.xsd +++ b/app/code/Magento/Cron/etc/cron_groups.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/etc/crontab.xsd b/app/code/Magento/Cron/etc/crontab.xsd index 68279da5aec84..8614cf32fb8c4 100644 --- a/app/code/Magento/Cron/etc/crontab.xsd +++ b/app/code/Magento/Cron/etc/crontab.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/etc/crontab/events.xml b/app/code/Magento/Cron/etc/crontab/events.xml index 9de72ebb03eb5..de6b8914384f0 100644 --- a/app/code/Magento/Cron/etc/crontab/events.xml +++ b/app/code/Magento/Cron/etc/crontab/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/etc/di.xml b/app/code/Magento/Cron/etc/di.xml index d571fa263116c..e27dd5e0a2107 100644 --- a/app/code/Magento/Cron/etc/di.xml +++ b/app/code/Magento/Cron/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/etc/module.xml b/app/code/Magento/Cron/etc/module.xml index 288aa6fbec23e..ce31b046500f7 100644 --- a/app/code/Magento/Cron/etc/module.xml +++ b/app/code/Magento/Cron/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Cron/registration.php b/app/code/Magento/Cron/registration.php index 227c716af1862..d767c1e15429c 100644 --- a/app/code/Magento/Cron/registration.php +++ b/app/code/Magento/Cron/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CurrencySymbol/etc/adminhtml/menu.xml b/app/code/Magento/CurrencySymbol/etc/adminhtml/menu.xml index 5dbf49d2c1cf3..edb4019646c56 100644 --- a/app/code/Magento/CurrencySymbol/etc/adminhtml/menu.xml +++ b/app/code/Magento/CurrencySymbol/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/etc/adminhtml/routes.xml b/app/code/Magento/CurrencySymbol/etc/adminhtml/routes.xml index 31353a45c2859..5e7a7b502e62e 100644 --- a/app/code/Magento/CurrencySymbol/etc/adminhtml/routes.xml +++ b/app/code/Magento/CurrencySymbol/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/etc/di.xml b/app/code/Magento/CurrencySymbol/etc/di.xml index cbce50306bc45..d7cd3d55588c3 100644 --- a/app/code/Magento/CurrencySymbol/etc/di.xml +++ b/app/code/Magento/CurrencySymbol/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/etc/events.xml b/app/code/Magento/CurrencySymbol/etc/events.xml index aff0fea744c43..bcda5aa658e86 100644 --- a/app/code/Magento/CurrencySymbol/etc/events.xml +++ b/app/code/Magento/CurrencySymbol/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/etc/module.xml b/app/code/Magento/CurrencySymbol/etc/module.xml index cbda20acdad82..08c70d948f5fc 100644 --- a/app/code/Magento/CurrencySymbol/etc/module.xml +++ b/app/code/Magento/CurrencySymbol/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/registration.php b/app/code/Magento/CurrencySymbol/registration.php index ab086a95e2d6c..733fc041f3c45 100644 --- a/app/code/Magento/CurrencySymbol/registration.php +++ b/app/code/Magento/CurrencySymbol/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CurrencySymbol/view/adminhtml/layout/adminhtml_system_currencysymbol_index.xml b/app/code/Magento/CurrencySymbol/view/adminhtml/layout/adminhtml_system_currencysymbol_index.xml index bf7126f432cf9..7a06ee8fced95 100644 --- a/app/code/Magento/CurrencySymbol/view/adminhtml/layout/adminhtml_system_currencysymbol_index.xml +++ b/app/code/Magento/CurrencySymbol/view/adminhtml/layout/adminhtml_system_currencysymbol_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CurrencySymbol/view/adminhtml/templates/grid.phtml b/app/code/Magento/CurrencySymbol/view/adminhtml/templates/grid.phtml index e55b46eb93d25..58d41da965d65 100644 --- a/app/code/Magento/CurrencySymbol/view/adminhtml/templates/grid.phtml +++ b/app/code/Magento/CurrencySymbol/view/adminhtml/templates/grid.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/Test/Unit/Helper/AddressTest.php b/app/code/Magento/Customer/Test/Unit/Helper/AddressTest.php index 4349794d041fc..739c58f90548a 100644 --- a/app/code/Magento/Customer/Test/Unit/Helper/AddressTest.php +++ b/app/code/Magento/Customer/Test/Unit/Helper/AddressTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_one.xml b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_one.xml index fe42eff100fde..f3d139e55a8cf 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_one.xml +++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_one.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_two.xml b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_two.xml index 0b46b5291ec14..980cbf4e1c50f 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_two.xml +++ b/app/code/Magento/Customer/Test/Unit/Model/Address/Config/_files/formats_two.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/Test/Unit/Model/Address/ConfigTest.php b/app/code/Magento/Customer/Test/Unit/Model/Address/ConfigTest.php index 0f73e340c4862..72a28b604ec21 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/Address/ConfigTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/Address/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/etc/address_formats.xml b/app/code/Magento/Customer/etc/address_formats.xml index c4d74375c32d3..d7f3688d092d3 100644 --- a/app/code/Magento/Customer/etc/address_formats.xml +++ b/app/code/Magento/Customer/etc/address_formats.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/address_formats.xsd b/app/code/Magento/Customer/etc/address_formats.xsd index 14d0ad4598054..c786755d039d5 100644 --- a/app/code/Magento/Customer/etc/address_formats.xsd +++ b/app/code/Magento/Customer/etc/address_formats.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/adminhtml/di.xml b/app/code/Magento/Customer/etc/adminhtml/di.xml index cf2254307a9ed..575fd639fa539 100644 --- a/app/code/Magento/Customer/etc/adminhtml/di.xml +++ b/app/code/Magento/Customer/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/adminhtml/menu.xml b/app/code/Magento/Customer/etc/adminhtml/menu.xml index 133d16a014a59..7a1b62b37d395 100644 --- a/app/code/Magento/Customer/etc/adminhtml/menu.xml +++ b/app/code/Magento/Customer/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/adminhtml/routes.xml b/app/code/Magento/Customer/etc/adminhtml/routes.xml index 4c68008dd1437..aa5c5384c47d5 100644 --- a/app/code/Magento/Customer/etc/adminhtml/routes.xml +++ b/app/code/Magento/Customer/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/adminhtml/system.xml b/app/code/Magento/Customer/etc/adminhtml/system.xml index 7257e03daff04..a48c6c20cba0d 100644 --- a/app/code/Magento/Customer/etc/adminhtml/system.xml +++ b/app/code/Magento/Customer/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/cache.xml b/app/code/Magento/Customer/etc/cache.xml index 553f1f6535d52..49b82a47fbb61 100644 --- a/app/code/Magento/Customer/etc/cache.xml +++ b/app/code/Magento/Customer/etc/cache.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/config.xml b/app/code/Magento/Customer/etc/config.xml index f891cd284e086..dbd7e16e19cea 100644 --- a/app/code/Magento/Customer/etc/config.xml +++ b/app/code/Magento/Customer/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/crontab.xml b/app/code/Magento/Customer/etc/crontab.xml index eda64cf2eca93..a0cabcc4d3f16 100644 --- a/app/code/Magento/Customer/etc/crontab.xml +++ b/app/code/Magento/Customer/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/di.xml b/app/code/Magento/Customer/etc/di.xml index 5b33328bb176d..d9b27940ad724 100644 --- a/app/code/Magento/Customer/etc/di.xml +++ b/app/code/Magento/Customer/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/email_templates.xml b/app/code/Magento/Customer/etc/email_templates.xml index 23fa73056b4c2..b3857905cc797 100644 --- a/app/code/Magento/Customer/etc/email_templates.xml +++ b/app/code/Magento/Customer/etc/email_templates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/events.xml b/app/code/Magento/Customer/etc/events.xml index 0e65ddca44924..66c9a3813892c 100644 --- a/app/code/Magento/Customer/etc/events.xml +++ b/app/code/Magento/Customer/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/fieldset.xml b/app/code/Magento/Customer/etc/fieldset.xml index b219305e3b9fa..f89b653981520 100644 --- a/app/code/Magento/Customer/etc/fieldset.xml +++ b/app/code/Magento/Customer/etc/fieldset.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/frontend/di.xml b/app/code/Magento/Customer/etc/frontend/di.xml index 4562acb00fe5b..a3acfde857fb7 100644 --- a/app/code/Magento/Customer/etc/frontend/di.xml +++ b/app/code/Magento/Customer/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/frontend/events.xml b/app/code/Magento/Customer/etc/frontend/events.xml index 75cc5f7c929dc..582d926e0bb20 100644 --- a/app/code/Magento/Customer/etc/frontend/events.xml +++ b/app/code/Magento/Customer/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/frontend/page_types.xml b/app/code/Magento/Customer/etc/frontend/page_types.xml index 77a0fb520bbd3..2c0feeac532a1 100644 --- a/app/code/Magento/Customer/etc/frontend/page_types.xml +++ b/app/code/Magento/Customer/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/frontend/routes.xml b/app/code/Magento/Customer/etc/frontend/routes.xml index eb91d26288ab4..915206c1ff8d0 100644 --- a/app/code/Magento/Customer/etc/frontend/routes.xml +++ b/app/code/Magento/Customer/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/frontend/sections.xml b/app/code/Magento/Customer/etc/frontend/sections.xml index 877be8e0266ee..a4fa8ccee09ff 100644 --- a/app/code/Magento/Customer/etc/frontend/sections.xml +++ b/app/code/Magento/Customer/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/indexer.xml b/app/code/Magento/Customer/etc/indexer.xml index 0d3c8cb5b9bc2..5940002a9d3bf 100644 --- a/app/code/Magento/Customer/etc/indexer.xml +++ b/app/code/Magento/Customer/etc/indexer.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/module.xml b/app/code/Magento/Customer/etc/module.xml index d513fb67bc660..57bb09bc5648e 100644 --- a/app/code/Magento/Customer/etc/module.xml +++ b/app/code/Magento/Customer/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/mview.xml b/app/code/Magento/Customer/etc/mview.xml index ebeaac0114158..944d97242e7e7 100644 --- a/app/code/Magento/Customer/etc/mview.xml +++ b/app/code/Magento/Customer/etc/mview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/sections.xsd b/app/code/Magento/Customer/etc/sections.xsd index f2be0302db725..a1a503428fe1d 100644 --- a/app/code/Magento/Customer/etc/sections.xsd +++ b/app/code/Magento/Customer/etc/sections.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/validation.xml b/app/code/Magento/Customer/etc/validation.xml index d06164942c7d4..85d657dff266a 100644 --- a/app/code/Magento/Customer/etc/validation.xml +++ b/app/code/Magento/Customer/etc/validation.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/webapi.xml b/app/code/Magento/Customer/etc/webapi.xml index 81b0e9ac6a673..969d4e52e69aa 100644 --- a/app/code/Magento/Customer/etc/webapi.xml +++ b/app/code/Magento/Customer/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/webapi_rest/di.xml b/app/code/Magento/Customer/etc/webapi_rest/di.xml index a9d21aea930d3..f2457963a5f3d 100644 --- a/app/code/Magento/Customer/etc/webapi_rest/di.xml +++ b/app/code/Magento/Customer/etc/webapi_rest/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/etc/webapi_soap/di.xml b/app/code/Magento/Customer/etc/webapi_soap/di.xml index 61cdd928de4f4..646ba98b4c5d8 100644 --- a/app/code/Magento/Customer/etc/webapi_soap/di.xml +++ b/app/code/Magento/Customer/etc/webapi_soap/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/registration.php b/app/code/Magento/Customer/registration.php index 4c1e81d195b19..4247d38fd9eb1 100644 --- a/app/code/Magento/Customer/registration.php +++ b/app/code/Magento/Customer/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_cart.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_cart.xml index 1cb5d82323760..828ada5dc6996 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_cart.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_cart.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_carts.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_carts.xml index 3fa611ebd6e88..2b8059489137a 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_carts.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_carts.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml index dfa8379891ad2..06eb929124bb8 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_index.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_index.xml index c6f3c3e2ead71..673601f61dbfe 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_index.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_newsletter.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_newsletter.xml index 10b4a31f5d963..92ed88499328b 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_newsletter.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_newsletter.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_orders.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_orders.xml index e99d0a053eb0d..178cccd58efcc 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_orders.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_orders.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_productreviews.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_productreviews.xml index 671ef7ec0e7cc..dfbfcac04ac67 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_productreviews.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_productreviews.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewcart.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewcart.xml index cc5d9e0da8225..69b8a32622313 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewcart.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewcart.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewwishlist.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewwishlist.xml index 8cd4ec724e3e3..6551657b04d16 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewwishlist.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_index_viewwishlist.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/layout/customer_online_index.xml b/app/code/Magento/Customer/view/adminhtml/layout/customer_online_index.xml index 1ae4259bc75fe..160a46f834588 100644 --- a/app/code/Magento/Customer/view/adminhtml/layout/customer_online_index.xml +++ b/app/code/Magento/Customer/view/adminhtml/layout/customer_online_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/requirejs-config.js b/app/code/Magento/Customer/view/adminhtml/requirejs-config.js index 589ece5b14104..33925a2d49c51 100644 --- a/app/code/Magento/Customer/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/Customer/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Customer/view/adminhtml/templates/edit/js.phtml b/app/code/Magento/Customer/view/adminhtml/templates/edit/js.phtml index 49cc0c8c7395a..143b4be507af9 100644 --- a/app/code/Magento/Customer/view/adminhtml/templates/edit/js.phtml +++ b/app/code/Magento/Customer/view/adminhtml/templates/edit/js.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml index ff5291afff4e5..d09407617a533 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/adminhtml/web/edit/post-wrapper.js b/app/code/Magento/Customer/view/adminhtml/web/edit/post-wrapper.js index 9b368adcbe665..76b060015c5ff 100644 --- a/app/code/Magento/Customer/view/adminhtml/web/edit/post-wrapper.js +++ b/app/code/Magento/Customer/view/adminhtml/web/edit/post-wrapper.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js b/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js index 7242dc945178d..5598aa86b6983 100644 --- a/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js +++ b/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ diff --git a/app/code/Magento/Customer/view/adminhtml/web/js/bootstrap/customer-post-action.js b/app/code/Magento/Customer/view/adminhtml/web/js/bootstrap/customer-post-action.js index 661c4e3d471c3..e350baaa6e384 100644 --- a/app/code/Magento/Customer/view/adminhtml/web/js/bootstrap/customer-post-action.js +++ b/app/code/Magento/Customer/view/adminhtml/web/js/bootstrap/customer-post-action.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml index cd4e554ec01f6..8807d7817e163 100644 --- a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml +++ b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/account_new.html b/app/code/Magento/Customer/view/frontend/email/account_new.html index dac8e1ce57505..6a60aee863eb4 100644 --- a/app/code/Magento/Customer/view/frontend/email/account_new.html +++ b/app/code/Magento/Customer/view/frontend/email/account_new.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/account_new_confirmation.html b/app/code/Magento/Customer/view/frontend/email/account_new_confirmation.html index 5432956e8f03f..010087ace2d42 100644 --- a/app/code/Magento/Customer/view/frontend/email/account_new_confirmation.html +++ b/app/code/Magento/Customer/view/frontend/email/account_new_confirmation.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/account_new_confirmed.html b/app/code/Magento/Customer/view/frontend/email/account_new_confirmed.html index b50c944c18b46..931851b28ac21 100644 --- a/app/code/Magento/Customer/view/frontend/email/account_new_confirmed.html +++ b/app/code/Magento/Customer/view/frontend/email/account_new_confirmed.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/account_new_no_password.html b/app/code/Magento/Customer/view/frontend/email/account_new_no_password.html index 1c5371bd4868b..26e417d7da5a7 100644 --- a/app/code/Magento/Customer/view/frontend/email/account_new_no_password.html +++ b/app/code/Magento/Customer/view/frontend/email/account_new_no_password.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/change_email.html b/app/code/Magento/Customer/view/frontend/email/change_email.html index 09d1537e1cc07..f343433fe35e2 100644 --- a/app/code/Magento/Customer/view/frontend/email/change_email.html +++ b/app/code/Magento/Customer/view/frontend/email/change_email.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/change_email_and_password.html b/app/code/Magento/Customer/view/frontend/email/change_email_and_password.html index 23280b2822b48..0876e75beacad 100644 --- a/app/code/Magento/Customer/view/frontend/email/change_email_and_password.html +++ b/app/code/Magento/Customer/view/frontend/email/change_email_and_password.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/password_new.html b/app/code/Magento/Customer/view/frontend/email/password_new.html index f5c2d87128300..1d2468374c6f3 100644 --- a/app/code/Magento/Customer/view/frontend/email/password_new.html +++ b/app/code/Magento/Customer/view/frontend/email/password_new.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/password_reset.html b/app/code/Magento/Customer/view/frontend/email/password_reset.html index a255e2f99e575..bfa5330cbf5b0 100644 --- a/app/code/Magento/Customer/view/frontend/email/password_reset.html +++ b/app/code/Magento/Customer/view/frontend/email/password_reset.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/email/password_reset_confirmation.html b/app/code/Magento/Customer/view/frontend/email/password_reset_confirmation.html index efdd89bbec720..6c17762a88227 100644 --- a/app/code/Magento/Customer/view/frontend/email/password_reset_confirmation.html +++ b/app/code/Magento/Customer/view/frontend/email/password_reset_confirmation.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account.xml index 4024331be0cbc..3f0a51b2c579e 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_confirmation.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_confirmation.xml index c2d7dc01dbbea..e9c0d9cf149e9 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_confirmation.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_confirmation.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml index 8a42132dd01fd..c7d8ec75d51b8 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_create.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml index 878fd56999045..4fdfdc8bbeae5 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_createpassword.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml index 452d98821105f..21ef979faff4a 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml index a39f15c201c65..91ecc04c9e779 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_forgotpassword.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml index e3fb14923ff5e..1c9a142fda351 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml index e7c157acb1bfb..c0151ef073bcd 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_login.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_account_logoutsuccess.xml b/app/code/Magento/Customer/view/frontend/layout/customer_account_logoutsuccess.xml index d76363eaffb05..c67af1d2a51cd 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_account_logoutsuccess.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_account_logoutsuccess.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml b/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml index 67ab9768157e5..159670a4d09bc 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_address_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml b/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml index 42f7b5ea38a69..a19865e521d7c 100644 --- a/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml +++ b/app/code/Magento/Customer/view/frontend/layout/customer_address_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/layout/default.xml b/app/code/Magento/Customer/view/frontend/layout/default.xml index 4a476f3d7b10d..986c8fb2955fe 100644 --- a/app/code/Magento/Customer/view/frontend/layout/default.xml +++ b/app/code/Magento/Customer/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Customer/view/frontend/requirejs-config.js b/app/code/Magento/Customer/view/frontend/requirejs-config.js index 4ff5a81cc5d92..eb7e4e4e5b30a 100644 --- a/app/code/Magento/Customer/view/frontend/requirejs-config.js +++ b/app/code/Magento/Customer/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Customer/view/frontend/templates/account/authentication-popup.phtml b/app/code/Magento/Customer/view/frontend/templates/account/authentication-popup.phtml index f482ba48123cf..2ee5795ef477c 100644 --- a/app/code/Magento/Customer/view/frontend/templates/account/authentication-popup.phtml +++ b/app/code/Magento/Customer/view/frontend/templates/account/authentication-popup.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php index 17cb0b8dff0f0..2fc5a1d3bfbef 100644 --- a/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php +++ b/app/code/Magento/CustomerImportExport/Controller/Adminhtml/Index/ExportCsv.php @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/etc/config.xml b/app/code/Magento/CustomerImportExport/etc/config.xml index 8240c00223600..54b9650c0b765 100644 --- a/app/code/Magento/CustomerImportExport/etc/config.xml +++ b/app/code/Magento/CustomerImportExport/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/etc/export.xml b/app/code/Magento/CustomerImportExport/etc/export.xml index cf226c50ef681..4d0d407bcf203 100644 --- a/app/code/Magento/CustomerImportExport/etc/export.xml +++ b/app/code/Magento/CustomerImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/etc/import.xml b/app/code/Magento/CustomerImportExport/etc/import.xml index 316947ffaf028..d70bc66d58ca0 100644 --- a/app/code/Magento/CustomerImportExport/etc/import.xml +++ b/app/code/Magento/CustomerImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/etc/module.xml b/app/code/Magento/CustomerImportExport/etc/module.xml index a2bb69023d2f5..865b2e991418d 100644 --- a/app/code/Magento/CustomerImportExport/etc/module.xml +++ b/app/code/Magento/CustomerImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/registration.php b/app/code/Magento/CustomerImportExport/registration.php index 9aac304811a85..12616dc5bc3c5 100644 --- a/app/code/Magento/CustomerImportExport/registration.php +++ b/app/code/Magento/CustomerImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_import_export_index_exportxml.xml b/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_import_export_index_exportxml.xml index 581c23c802683..9fb4684de235e 100644 --- a/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_import_export_index_exportxml.xml +++ b/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_import_export_index_exportxml.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_index_grid_block.xml b/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_index_grid_block.xml index 39f50e92aeafc..cf32a93ee58b7 100644 --- a/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_index_grid_block.xml +++ b/app/code/Magento/CustomerImportExport/view/adminhtml/layout/customer_index_grid_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Deploy/Console/Command/App/ApplicationDumpCommand.php b/app/code/Magento/Deploy/Console/Command/App/ApplicationDumpCommand.php index b63357be6bf8a..98371ae8ddfdb 100644 --- a/app/code/Magento/Deploy/Console/Command/App/ApplicationDumpCommand.php +++ b/app/code/Magento/Deploy/Console/Command/App/ApplicationDumpCommand.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Deploy/etc/module.xml b/app/code/Magento/Deploy/etc/module.xml index 9197c17ef0931..a61f9e1546e05 100644 --- a/app/code/Magento/Deploy/etc/module.xml +++ b/app/code/Magento/Deploy/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Deploy/registration.php b/app/code/Magento/Deploy/registration.php index eda7bc5ea47a5..b43fc503f8939 100644 --- a/app/code/Magento/Deploy/registration.php +++ b/app/code/Magento/Deploy/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Developer/Test/Unit/Helper/DataTest.php b/app/code/Magento/Developer/Test/Unit/Helper/DataTest.php index 5146a54b91931..8f263401e5764 100644 --- a/app/code/Magento/Developer/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/Developer/Test/Unit/Helper/DataTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Developer/etc/adminhtml/system.xml b/app/code/Magento/Developer/etc/adminhtml/system.xml index 6e3916afac3c8..1cd7238a95da1 100644 --- a/app/code/Magento/Developer/etc/adminhtml/system.xml +++ b/app/code/Magento/Developer/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Developer/etc/config.xml b/app/code/Magento/Developer/etc/config.xml index 4bdd425bca51f..c4475a8cf64e3 100644 --- a/app/code/Magento/Developer/etc/config.xml +++ b/app/code/Magento/Developer/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Developer/etc/di.xml b/app/code/Magento/Developer/etc/di.xml index df907125d733b..aa9bfe6667995 100644 --- a/app/code/Magento/Developer/etc/di.xml +++ b/app/code/Magento/Developer/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Developer/etc/frontend/di.xml b/app/code/Magento/Developer/etc/frontend/di.xml index 6d526d8d02fc5..4c65510388eb3 100644 --- a/app/code/Magento/Developer/etc/frontend/di.xml +++ b/app/code/Magento/Developer/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Developer/etc/module.xml b/app/code/Magento/Developer/etc/module.xml index cc609870d3c76..9f08676626f9f 100644 --- a/app/code/Magento/Developer/etc/module.xml +++ b/app/code/Magento/Developer/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Developer/registration.php b/app/code/Magento/Developer/registration.php index 5b0bab4b1d463..20bba13959284 100644 --- a/app/code/Magento/Developer/registration.php +++ b/app/code/Magento/Developer/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Dhl/Test/Unit/Model/_files/rates_request_data_dhl.php b/app/code/Magento/Dhl/Test/Unit/Model/_files/rates_request_data_dhl.php index cbe3cf6b9f59b..411974835c61e 100644 --- a/app/code/Magento/Dhl/Test/Unit/Model/_files/rates_request_data_dhl.php +++ b/app/code/Magento/Dhl/Test/Unit/Model/_files/rates_request_data_dhl.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Dhl/Test/Unit/Model/_files/success_dhl_response_rates.xml b/app/code/Magento/Dhl/Test/Unit/Model/_files/success_dhl_response_rates.xml index 1f8635a8b97a1..b529e86ef154c 100644 --- a/app/code/Magento/Dhl/Test/Unit/Model/_files/success_dhl_response_rates.xml +++ b/app/code/Magento/Dhl/Test/Unit/Model/_files/success_dhl_response_rates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/etc/adminhtml/system.xml b/app/code/Magento/Dhl/etc/adminhtml/system.xml index dbbfe2a9ff415..c0f7e209ad61b 100644 --- a/app/code/Magento/Dhl/etc/adminhtml/system.xml +++ b/app/code/Magento/Dhl/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/etc/config.xml b/app/code/Magento/Dhl/etc/config.xml index 416c6ab271e0b..79addefb34a16 100644 --- a/app/code/Magento/Dhl/etc/config.xml +++ b/app/code/Magento/Dhl/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/etc/countries.xml b/app/code/Magento/Dhl/etc/countries.xml index 1b795fe8aad0b..48837dbefb576 100644 --- a/app/code/Magento/Dhl/etc/countries.xml +++ b/app/code/Magento/Dhl/etc/countries.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/etc/di.xml b/app/code/Magento/Dhl/etc/di.xml index 901d45b212f40..3865b080e06fb 100644 --- a/app/code/Magento/Dhl/etc/di.xml +++ b/app/code/Magento/Dhl/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/etc/module.xml b/app/code/Magento/Dhl/etc/module.xml index 9e3feb6517b5a..4723b14763a12 100644 --- a/app/code/Magento/Dhl/etc/module.xml +++ b/app/code/Magento/Dhl/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/registration.php b/app/code/Magento/Dhl/registration.php index 0463140f1263a..b8bd65cf09669 100644 --- a/app/code/Magento/Dhl/registration.php +++ b/app/code/Magento/Dhl/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Dhl/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Dhl/view/frontend/layout/checkout_index_index.xml index 5fc507914bce9..96630fbd03ce7 100644 --- a/app/code/Magento/Dhl/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Dhl/view/frontend/layout/checkout_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validation-rules.js b/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validation-rules.js index 6752f87f5272e..c1c1eacb63b95 100644 --- a/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validation-rules.js +++ b/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validation-rules.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global define*/ diff --git a/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validator.js b/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validator.js index f193cb77b8875..79fed7c343284 100644 --- a/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validator.js +++ b/app/code/Magento/Dhl/view/frontend/web/js/model/shipping-rates-validator.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global define*/ diff --git a/app/code/Magento/Dhl/view/frontend/web/js/view/shipping-rates-validation.js b/app/code/Magento/Dhl/view/frontend/web/js/view/shipping-rates-validation.js index 3133ba351541b..104a831268b60 100644 --- a/app/code/Magento/Dhl/view/frontend/web/js/view/shipping-rates-validation.js +++ b/app/code/Magento/Dhl/view/frontend/web/js/view/shipping-rates-validation.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/Directory/Api/CountryInformationAcquirerInterface.php b/app/code/Magento/Directory/Api/CountryInformationAcquirerInterface.php index b8790fad2d23d..512f53dac3779 100644 --- a/app/code/Magento/Directory/Api/CountryInformationAcquirerInterface.php +++ b/app/code/Magento/Directory/Api/CountryInformationAcquirerInterface.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Directory/etc/adminhtml/di.xml b/app/code/Magento/Directory/etc/adminhtml/di.xml index 8f85798987b5f..0b1175b0cd94c 100644 --- a/app/code/Magento/Directory/etc/adminhtml/di.xml +++ b/app/code/Magento/Directory/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/adminhtml/routes.xml b/app/code/Magento/Directory/etc/adminhtml/routes.xml index 301b06c4c75d2..2fab3eb387963 100644 --- a/app/code/Magento/Directory/etc/adminhtml/routes.xml +++ b/app/code/Magento/Directory/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/adminhtml/system.xml b/app/code/Magento/Directory/etc/adminhtml/system.xml index 6232ddfdd287d..f13aff608d19e 100644 --- a/app/code/Magento/Directory/etc/adminhtml/system.xml +++ b/app/code/Magento/Directory/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/config.xml b/app/code/Magento/Directory/etc/config.xml index b434865e00cfb..fa4e9d64d10d8 100644 --- a/app/code/Magento/Directory/etc/config.xml +++ b/app/code/Magento/Directory/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/crontab.xml b/app/code/Magento/Directory/etc/crontab.xml index 825fb3e37f1eb..d6868ff6aa0d6 100644 --- a/app/code/Magento/Directory/etc/crontab.xml +++ b/app/code/Magento/Directory/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/di.xml b/app/code/Magento/Directory/etc/di.xml index 82e08bc8ec037..100dcba278552 100644 --- a/app/code/Magento/Directory/etc/di.xml +++ b/app/code/Magento/Directory/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/email_templates.xml b/app/code/Magento/Directory/etc/email_templates.xml index 65567fd7c3a6c..5dac75b7a040f 100644 --- a/app/code/Magento/Directory/etc/email_templates.xml +++ b/app/code/Magento/Directory/etc/email_templates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/frontend/routes.xml b/app/code/Magento/Directory/etc/frontend/routes.xml index 303a7ab360a1d..b5ecbe1fe435f 100644 --- a/app/code/Magento/Directory/etc/frontend/routes.xml +++ b/app/code/Magento/Directory/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/frontend/sections.xml b/app/code/Magento/Directory/etc/frontend/sections.xml index 6f61593787460..a2bc5696abf08 100644 --- a/app/code/Magento/Directory/etc/frontend/sections.xml +++ b/app/code/Magento/Directory/etc/frontend/sections.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/module.xml b/app/code/Magento/Directory/etc/module.xml index 9d464d2788464..f4a673789f64d 100644 --- a/app/code/Magento/Directory/etc/module.xml +++ b/app/code/Magento/Directory/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/webapi.xml b/app/code/Magento/Directory/etc/webapi.xml index 1edd1191134c1..71cc3c24a1587 100644 --- a/app/code/Magento/Directory/etc/webapi.xml +++ b/app/code/Magento/Directory/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/zip_codes.xml b/app/code/Magento/Directory/etc/zip_codes.xml index 385ee58eb1f67..18e13ca5bb48b 100644 --- a/app/code/Magento/Directory/etc/zip_codes.xml +++ b/app/code/Magento/Directory/etc/zip_codes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/etc/zip_codes.xsd b/app/code/Magento/Directory/etc/zip_codes.xsd index 399f997acc4d0..3400c1f37048d 100644 --- a/app/code/Magento/Directory/etc/zip_codes.xsd +++ b/app/code/Magento/Directory/etc/zip_codes.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/registration.php b/app/code/Magento/Directory/registration.php index 58b24c70bdbf1..c4ae7a50bf393 100644 --- a/app/code/Magento/Directory/registration.php +++ b/app/code/Magento/Directory/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Directory/view/adminhtml/templates/js/optional_zip_countries.phtml b/app/code/Magento/Directory/view/adminhtml/templates/js/optional_zip_countries.phtml index ce5b89f5f2b0b..fba5b653615e0 100644 --- a/app/code/Magento/Directory/view/adminhtml/templates/js/optional_zip_countries.phtml +++ b/app/code/Magento/Directory/view/adminhtml/templates/js/optional_zip_countries.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_index.xml b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_index.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_index.xml +++ b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_result.xml b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_result.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_result.xml +++ b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_advanced_result.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_result_index.xml b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_result_index.xml index e01b48cc71b11..6b97ebabce5b7 100644 --- a/app/code/Magento/Directory/view/frontend/layout/catalogsearch_result_index.xml +++ b/app/code/Magento/Directory/view/frontend/layout/catalogsearch_result_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/view/frontend/layout/default.xml b/app/code/Magento/Directory/view/frontend/layout/default.xml index 979fcd6e3d139..ad1e7fbf642c4 100644 --- a/app/code/Magento/Directory/view/frontend/layout/default.xml +++ b/app/code/Magento/Directory/view/frontend/layout/default.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Directory/view/frontend/templates/currency.phtml b/app/code/Magento/Directory/view/frontend/templates/currency.phtml index 125b635cde275..9a80fccdb19c2 100644 --- a/app/code/Magento/Directory/view/frontend/templates/currency.phtml +++ b/app/code/Magento/Directory/view/frontend/templates/currency.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Downloadable/etc/adminhtml/di.xml b/app/code/Magento/Downloadable/etc/adminhtml/di.xml index d6af2661df0f3..022aa45bb56a2 100644 --- a/app/code/Magento/Downloadable/etc/adminhtml/di.xml +++ b/app/code/Magento/Downloadable/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/adminhtml/menu.xml b/app/code/Magento/Downloadable/etc/adminhtml/menu.xml index 55359b3045521..b9d88e763579d 100644 --- a/app/code/Magento/Downloadable/etc/adminhtml/menu.xml +++ b/app/code/Magento/Downloadable/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/adminhtml/routes.xml b/app/code/Magento/Downloadable/etc/adminhtml/routes.xml index a3fca45339548..950559be60fe7 100644 --- a/app/code/Magento/Downloadable/etc/adminhtml/routes.xml +++ b/app/code/Magento/Downloadable/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/adminhtml/system.xml b/app/code/Magento/Downloadable/etc/adminhtml/system.xml index a8f8315360339..2f0e40e8eb5ba 100644 --- a/app/code/Magento/Downloadable/etc/adminhtml/system.xml +++ b/app/code/Magento/Downloadable/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/catalog_attributes.xml b/app/code/Magento/Downloadable/etc/catalog_attributes.xml index 081f9e8764b7f..5cdda5bb69cc5 100644 --- a/app/code/Magento/Downloadable/etc/catalog_attributes.xml +++ b/app/code/Magento/Downloadable/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/config.xml b/app/code/Magento/Downloadable/etc/config.xml index 9582cea6da007..578ff1e008660 100644 --- a/app/code/Magento/Downloadable/etc/config.xml +++ b/app/code/Magento/Downloadable/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/di.xml b/app/code/Magento/Downloadable/etc/di.xml index 84b6de602acaa..4db0c6398781d 100644 --- a/app/code/Magento/Downloadable/etc/di.xml +++ b/app/code/Magento/Downloadable/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/events.xml b/app/code/Magento/Downloadable/etc/events.xml index da7cc5b5c9150..e4f03ff238d4a 100644 --- a/app/code/Magento/Downloadable/etc/events.xml +++ b/app/code/Magento/Downloadable/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/extension_attributes.xml b/app/code/Magento/Downloadable/etc/extension_attributes.xml index c1d5f9e37c47e..c9970c0d8ec34 100644 --- a/app/code/Magento/Downloadable/etc/extension_attributes.xml +++ b/app/code/Magento/Downloadable/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/fieldset.xml b/app/code/Magento/Downloadable/etc/fieldset.xml index dfc475f4b27c2..607312701c5ad 100644 --- a/app/code/Magento/Downloadable/etc/fieldset.xml +++ b/app/code/Magento/Downloadable/etc/fieldset.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/frontend/di.xml b/app/code/Magento/Downloadable/etc/frontend/di.xml index 7920c2a5cf48b..0ab964a02601f 100644 --- a/app/code/Magento/Downloadable/etc/frontend/di.xml +++ b/app/code/Magento/Downloadable/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/frontend/events.xml b/app/code/Magento/Downloadable/etc/frontend/events.xml index 3c024793a3744..f2511c3ac23d2 100644 --- a/app/code/Magento/Downloadable/etc/frontend/events.xml +++ b/app/code/Magento/Downloadable/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/frontend/page_types.xml b/app/code/Magento/Downloadable/etc/frontend/page_types.xml index aabe2d70a3e41..31fa25e19e345 100644 --- a/app/code/Magento/Downloadable/etc/frontend/page_types.xml +++ b/app/code/Magento/Downloadable/etc/frontend/page_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/frontend/routes.xml b/app/code/Magento/Downloadable/etc/frontend/routes.xml index 0f5d7a974982d..f04a7beee16bf 100644 --- a/app/code/Magento/Downloadable/etc/frontend/routes.xml +++ b/app/code/Magento/Downloadable/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/module.xml b/app/code/Magento/Downloadable/etc/module.xml index 580822fe957a1..4e18acb5e0180 100644 --- a/app/code/Magento/Downloadable/etc/module.xml +++ b/app/code/Magento/Downloadable/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/pdf.xml b/app/code/Magento/Downloadable/etc/pdf.xml index efc0e038a892e..0be773c548202 100644 --- a/app/code/Magento/Downloadable/etc/pdf.xml +++ b/app/code/Magento/Downloadable/etc/pdf.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/product_types.xml b/app/code/Magento/Downloadable/etc/product_types.xml index 08e02028965c0..e462b3459232c 100644 --- a/app/code/Magento/Downloadable/etc/product_types.xml +++ b/app/code/Magento/Downloadable/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/sales.xml b/app/code/Magento/Downloadable/etc/sales.xml index 2a10842dd3319..fdb4f5d471c0d 100644 --- a/app/code/Magento/Downloadable/etc/sales.xml +++ b/app/code/Magento/Downloadable/etc/sales.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/webapi.xml b/app/code/Magento/Downloadable/etc/webapi.xml index 773b31ab2be66..baac682ee8c21 100644 --- a/app/code/Magento/Downloadable/etc/webapi.xml +++ b/app/code/Magento/Downloadable/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/webapi_rest/di.xml b/app/code/Magento/Downloadable/etc/webapi_rest/di.xml index 6e1c41b1c9606..306f56fae7924 100644 --- a/app/code/Magento/Downloadable/etc/webapi_rest/di.xml +++ b/app/code/Magento/Downloadable/etc/webapi_rest/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/etc/webapi_soap/di.xml b/app/code/Magento/Downloadable/etc/webapi_soap/di.xml index 6e1c41b1c9606..306f56fae7924 100644 --- a/app/code/Magento/Downloadable/etc/webapi_soap/di.xml +++ b/app/code/Magento/Downloadable/etc/webapi_soap/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/registration.php b/app/code/Magento/Downloadable/registration.php index 516a177e10c1c..b91e72a6904af 100644 --- a/app/code/Magento/Downloadable/registration.php +++ b/app/code/Magento/Downloadable/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_simple.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_simple.xml index 5866d21ff46d7..843f9b4025649 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_simple.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_simple.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_view_type_downloadable.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_view_type_downloadable.xml index 823b83c7cdf33..4989bf8293b4d 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_view_type_downloadable.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_view_type_downloadable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_virtual.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_virtual.xml index 5866d21ff46d7..843f9b4025649 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_virtual.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/catalog_product_virtual.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/customer_index_wishlist.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/customer_index_wishlist.xml index 1355e7a0c8562..7c9dd8d5429cc 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/customer_index_wishlist.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/customer_index_wishlist.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/downloadable_items.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/downloadable_items.xml index 5a8056106444f..958e922334db7 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/downloadable_items.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/downloadable_items.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_new.xml index 50c7e06227afb..74dad7f0f8218 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_new.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml index 50c7e06227afb..74dad7f0f8218 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_view.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_view.xml index d06b80071892e..0a6c12d424682 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_view.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_creditmemo_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_new.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_new.xml index 9b3c2af9d0ff4..68a5bb76e1d3c 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_new.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_updateqty.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_updateqty.xml index 9b3c2af9d0ff4..68a5bb76e1d3c 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_updateqty.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_view.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_view.xml index dfbbe17392e2e..6de1514f86dfd 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_view.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_invoice_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_view.xml index d2e7658639935..0cc545f397726 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/Downloadable/view/adminhtml/layout/sales_order_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/composite/fieldset/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/composite/fieldset/downloadable.phtml index ff66ccd5dc73b..604f1cde88e96 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/composite/fieldset/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/composite/fieldset/downloadable.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_configure_type_downloadable.xml b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_configure_type_downloadable.xml index 6d0c8b366f853..8855f3873f0e1 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_configure_type_downloadable.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_configure_type_downloadable.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml index 4840c49e24c5a..7aeab211add94 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_review_item_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_review_item_renderers.xml index 104ba3cba6ab0..a067c9b77d1e8 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_review_item_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_review_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_success.xml b/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_success.xml index 8307b3f4630cb..36438b3c16822 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_success.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/checkout_onepage_success.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/customer_account.xml b/app/code/Magento/Downloadable/view/frontend/layout/customer_account.xml index 69cca93e72b54..5ea0c36fdee2e 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/customer_account.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/customer_account.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/downloadable_customer_products.xml b/app/code/Magento/Downloadable/view/frontend/layout/downloadable_customer_products.xml index b548547224aa3..ab1af854ce277 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/downloadable_customer_products.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/downloadable_customer_products.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/multishipping_checkout_success.xml b/app/code/Magento/Downloadable/view/frontend/layout/multishipping_checkout_success.xml index 62080117ae55e..79cef29a4d836 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/multishipping_checkout_success.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/multishipping_checkout_success.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_creditmemo_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_creditmemo_renderers.xml index b7519ba763a27..f3af8bf33da51 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_creditmemo_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_invoice_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_invoice_renderers.xml index 8fd23a49cd90f..79413d3e35cf5 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_invoice_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_renderers.xml index e3d68ac505ff0..1bf4c3acf22e4 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_email_order_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_creditmemo_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_creditmemo_renderers.xml index b08ad83799117..ee3256e338afb 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_creditmemo_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_invoice_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_invoice_renderers.xml index 243dd2124f406..de95e2ab6ecec 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_invoice_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_item_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_item_renderers.xml index ca8af720a7c16..46c504408b60e 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_item_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_creditmemo_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_creditmemo_renderers.xml index 82ce1a00df1ed..8a1ed04d2a525 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_creditmemo_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_invoice_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_invoice_renderers.xml index 565567d0835da..d582dc22e0bb5 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_invoice_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_renderers.xml index 7053a0643a36e..a78651772a6c2 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/sales_order_print_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Downloadable/view/frontend/requirejs-config.js b/app/code/Magento/Downloadable/view/frontend/requirejs-config.js index 1a27eb7d5ff79..59d0558decd16 100644 --- a/app/code/Magento/Downloadable/view/frontend/requirejs-config.js +++ b/app/code/Magento/Downloadable/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/links.phtml b/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/links.phtml index e8f8d2d93f2f8..8aba9b6490cf4 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/links.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/links.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/DownloadableImportExport/etc/module.xml b/app/code/Magento/DownloadableImportExport/etc/module.xml index be3e7a67690eb..c59a8a2f6f14f 100644 --- a/app/code/Magento/DownloadableImportExport/etc/module.xml +++ b/app/code/Magento/DownloadableImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/DownloadableImportExport/registration.php b/app/code/Magento/DownloadableImportExport/registration.php index e94d3ff9b415a..e47ad1ad42fa7 100644 --- a/app/code/Magento/DownloadableImportExport/registration.php +++ b/app/code/Magento/DownloadableImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Config/_files/invalidEavAttributeXmlArray.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Config/_files/invalidEavAttributeXmlArray.php index 7a78f5d3319b2..9a0815ad819b4 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Config/_files/invalidEavAttributeXmlArray.php +++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/Config/_files/invalidEavAttributeXmlArray.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Eav/etc/config.xml b/app/code/Magento/Eav/etc/config.xml index 2271c370266ad..b77b78a2abd09 100644 --- a/app/code/Magento/Eav/etc/config.xml +++ b/app/code/Magento/Eav/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/di.xml b/app/code/Magento/Eav/etc/di.xml index 570b71fc5a8e8..df50cdef1dd0e 100644 --- a/app/code/Magento/Eav/etc/di.xml +++ b/app/code/Magento/Eav/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/eav_attributes.xsd b/app/code/Magento/Eav/etc/eav_attributes.xsd index 578838d8da2e6..143811a9a03b7 100644 --- a/app/code/Magento/Eav/etc/eav_attributes.xsd +++ b/app/code/Magento/Eav/etc/eav_attributes.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/extension_attributes.xml b/app/code/Magento/Eav/etc/extension_attributes.xml index d2cf83bd8aee3..abc57b9990f0a 100644 --- a/app/code/Magento/Eav/etc/extension_attributes.xml +++ b/app/code/Magento/Eav/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/module.xml b/app/code/Magento/Eav/etc/module.xml index 2de67ac46b1dd..c5b79ba6056e0 100644 --- a/app/code/Magento/Eav/etc/module.xml +++ b/app/code/Magento/Eav/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/validation.xml b/app/code/Magento/Eav/etc/validation.xml index 4afe79aac155a..0150886864987 100644 --- a/app/code/Magento/Eav/etc/validation.xml +++ b/app/code/Magento/Eav/etc/validation.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/etc/webapi.xml b/app/code/Magento/Eav/etc/webapi.xml index 2c84241ac9d07..39743db8fe0d9 100644 --- a/app/code/Magento/Eav/etc/webapi.xml +++ b/app/code/Magento/Eav/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Eav/registration.php b/app/code/Magento/Eav/registration.php index ce31dcc9e679b..f3fa59a2a05b4 100644 --- a/app/code/Magento/Eav/registration.php +++ b/app/code/Magento/Eav/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/Fixture/ModuleTwo/etc/email_templates_two.xml b/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/Fixture/ModuleTwo/etc/email_templates_two.xml index 8b698fb496f14..7229e6dfdd10c 100644 --- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/Fixture/ModuleTwo/etc/email_templates_two.xml +++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/Fixture/ModuleTwo/etc/email_templates_two.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/email_templates_merged.php b/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/email_templates_merged.php index 9ca1a4395cec5..5f790862bc2b0 100644 --- a/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/email_templates_merged.php +++ b/app/code/Magento/Email/Test/Unit/Model/Template/Config/_files/email_templates_merged.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Email/Test/Unit/Model/Template/ConfigTest.php b/app/code/Magento/Email/Test/Unit/Model/Template/ConfigTest.php index f2d5da5a29ac4..b471f04aeb58e 100644 --- a/app/code/Magento/Email/Test/Unit/Model/Template/ConfigTest.php +++ b/app/code/Magento/Email/Test/Unit/Model/Template/ConfigTest.php @@ -1,6 +1,6 @@ [ 'templateType' => 'text', - 'templateText' => '', + 'templateText' => '', 'parsedTemplateText' => '', 'expectedTemplateSubject' => null, 'expectedOrigTemplateVariables' => null, @@ -311,7 +311,7 @@ public function loadDefaultDataProvider() ], 'copyright in HTML Removed' => [ 'templateType' => 'html', - 'templateText' => '', + 'templateText' => '', 'parsedTemplateText' => '', 'expectedTemplateSubject' => null, 'expectedOrigTemplateVariables' => null, diff --git a/app/code/Magento/Email/etc/acl.xml b/app/code/Magento/Email/etc/acl.xml index 9d70af504cb79..829139eb20b4f 100644 --- a/app/code/Magento/Email/etc/acl.xml +++ b/app/code/Magento/Email/etc/acl.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/adminhtml/di.xml b/app/code/Magento/Email/etc/adminhtml/di.xml index d276e099a3cdb..056bf81371b31 100644 --- a/app/code/Magento/Email/etc/adminhtml/di.xml +++ b/app/code/Magento/Email/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/adminhtml/menu.xml b/app/code/Magento/Email/etc/adminhtml/menu.xml index 74392027f8be7..8c4ae4ef6ea7c 100644 --- a/app/code/Magento/Email/etc/adminhtml/menu.xml +++ b/app/code/Magento/Email/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/adminhtml/routes.xml b/app/code/Magento/Email/etc/adminhtml/routes.xml index ca44e51bdb419..ce109aaa5b9cb 100644 --- a/app/code/Magento/Email/etc/adminhtml/routes.xml +++ b/app/code/Magento/Email/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/config.xml b/app/code/Magento/Email/etc/config.xml index ac1b27f737f8d..0731fc79c15f7 100644 --- a/app/code/Magento/Email/etc/config.xml +++ b/app/code/Magento/Email/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/di.xml b/app/code/Magento/Email/etc/di.xml index a5784d75cbff6..f28c8b8915f28 100644 --- a/app/code/Magento/Email/etc/di.xml +++ b/app/code/Magento/Email/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/email_templates.xml b/app/code/Magento/Email/etc/email_templates.xml index db40f8a4ea31b..5eaf1d24327b8 100644 --- a/app/code/Magento/Email/etc/email_templates.xml +++ b/app/code/Magento/Email/etc/email_templates.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/email_templates.xsd b/app/code/Magento/Email/etc/email_templates.xsd index 0d0040804e324..6b90d2ba0ede9 100644 --- a/app/code/Magento/Email/etc/email_templates.xsd +++ b/app/code/Magento/Email/etc/email_templates.xsd @@ -3,7 +3,7 @@ /** * Format of merged email templates configuration * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ --> diff --git a/app/code/Magento/Email/etc/frontend/di.xml b/app/code/Magento/Email/etc/frontend/di.xml index c3a5c47605156..6199537f00c9c 100644 --- a/app/code/Magento/Email/etc/frontend/di.xml +++ b/app/code/Magento/Email/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/etc/module.xml b/app/code/Magento/Email/etc/module.xml index 1e8317ca19e2e..96d5e2e63f9ac 100644 --- a/app/code/Magento/Email/etc/module.xml +++ b/app/code/Magento/Email/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/registration.php b/app/code/Magento/Email/registration.php index 0a8cf96b09cc4..e81f2e8b0bbdf 100644 --- a/app/code/Magento/Email/registration.php +++ b/app/code/Magento/Email/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_grid_block.xml b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_grid_block.xml index 5a5cd07e99c66..edb49e8633df4 100644 --- a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_grid_block.xml +++ b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_grid_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_index.xml b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_index.xml index 66638e24af575..b6291499e0384 100644 --- a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_index.xml +++ b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml index 47bdaf01809f0..b291771571591 100644 --- a/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml +++ b/app/code/Magento/Email/view/adminhtml/layout/adminhtml_email_template_preview.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml index d91d085b7d784..fd7f491f13832 100644 --- a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Email/view/frontend/email/footer.html b/app/code/Magento/Email/view/frontend/email/footer.html index e877e29bda5ab..40e18372252bc 100644 --- a/app/code/Magento/Email/view/frontend/email/footer.html +++ b/app/code/Magento/Email/view/frontend/email/footer.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Email/view/frontend/email/header.html b/app/code/Magento/Email/view/frontend/email/header.html index c86cbab461f71..a6895f629b641 100644 --- a/app/code/Magento/Email/view/frontend/email/header.html +++ b/app/code/Magento/Email/view/frontend/email/header.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/EncryptionKey/Block/Adminhtml/Crypt/Key/Edit.php b/app/code/Magento/EncryptionKey/Block/Adminhtml/Crypt/Key/Edit.php index 3386dd95d604e..0dc858a2b5ebc 100644 --- a/app/code/Magento/EncryptionKey/Block/Adminhtml/Crypt/Key/Edit.php +++ b/app/code/Magento/EncryptionKey/Block/Adminhtml/Crypt/Key/Edit.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/EncryptionKey/etc/adminhtml/menu.xml b/app/code/Magento/EncryptionKey/etc/adminhtml/menu.xml index 71a0ff5470158..324fb3acd8714 100644 --- a/app/code/Magento/EncryptionKey/etc/adminhtml/menu.xml +++ b/app/code/Magento/EncryptionKey/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/EncryptionKey/etc/adminhtml/routes.xml b/app/code/Magento/EncryptionKey/etc/adminhtml/routes.xml index 89ee76a7e3b81..78a0548104aca 100644 --- a/app/code/Magento/EncryptionKey/etc/adminhtml/routes.xml +++ b/app/code/Magento/EncryptionKey/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/EncryptionKey/etc/config.xml b/app/code/Magento/EncryptionKey/etc/config.xml index 25a789115d997..f8097fc137e99 100644 --- a/app/code/Magento/EncryptionKey/etc/config.xml +++ b/app/code/Magento/EncryptionKey/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/EncryptionKey/etc/module.xml b/app/code/Magento/EncryptionKey/etc/module.xml index 5c4d2a35219aa..48ab3e51ba03d 100644 --- a/app/code/Magento/EncryptionKey/etc/module.xml +++ b/app/code/Magento/EncryptionKey/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/EncryptionKey/registration.php b/app/code/Magento/EncryptionKey/registration.php index bcb8f627b4bca..1c37c8b78a5b6 100644 --- a/app/code/Magento/EncryptionKey/registration.php +++ b/app/code/Magento/EncryptionKey/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Fedex/Model/Carrier.php b/app/code/Magento/Fedex/Model/Carrier.php index 1d2f7d773c76f..29c1a61ff39f4 100644 --- a/app/code/Magento/Fedex/Model/Carrier.php +++ b/app/code/Magento/Fedex/Model/Carrier.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Fedex/etc/config.xml b/app/code/Magento/Fedex/etc/config.xml index 0e7a178fe504b..1d9defb62efe4 100644 --- a/app/code/Magento/Fedex/etc/config.xml +++ b/app/code/Magento/Fedex/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Fedex/etc/di.xml b/app/code/Magento/Fedex/etc/di.xml index e03931a35472d..4fc4428475e21 100644 --- a/app/code/Magento/Fedex/etc/di.xml +++ b/app/code/Magento/Fedex/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Fedex/etc/module.xml b/app/code/Magento/Fedex/etc/module.xml index f435c72c601b9..8e7afc1c5075d 100644 --- a/app/code/Magento/Fedex/etc/module.xml +++ b/app/code/Magento/Fedex/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Fedex/registration.php b/app/code/Magento/Fedex/registration.php index 4cfeeb8940d67..df2848f32ace6 100644 --- a/app/code/Magento/Fedex/registration.php +++ b/app/code/Magento/Fedex/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Fedex/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Fedex/view/frontend/layout/checkout_index_index.xml index f5ab9ee82e0bd..0b7162325c289 100644 --- a/app/code/Magento/Fedex/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Fedex/view/frontend/layout/checkout_index_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validation-rules.js b/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validation-rules.js index 6752f87f5272e..c1c1eacb63b95 100644 --- a/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validation-rules.js +++ b/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validation-rules.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global define*/ diff --git a/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validator.js b/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validator.js index 18c88cccbd024..3e64e6664beb9 100644 --- a/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validator.js +++ b/app/code/Magento/Fedex/view/frontend/web/js/model/shipping-rates-validator.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*global define*/ diff --git a/app/code/Magento/Fedex/view/frontend/web/js/view/shipping-rates-validation.js b/app/code/Magento/Fedex/view/frontend/web/js/view/shipping-rates-validation.js index 906c23040e747..53e8670d0f85d 100644 --- a/app/code/Magento/Fedex/view/frontend/web/js/view/shipping-rates-validation.js +++ b/app/code/Magento/Fedex/view/frontend/web/js/view/shipping-rates-validation.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*browser:true*/ diff --git a/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php index 08c373973ba41..3b2e3cb425433 100644 --- a/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php +++ b/app/code/Magento/GiftMessage/Api/CartRepositoryInterface.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/etc/adminhtml/events.xml b/app/code/Magento/GiftMessage/etc/adminhtml/events.xml index 6ac8eb1411e0b..409bedbc31ff4 100644 --- a/app/code/Magento/GiftMessage/etc/adminhtml/events.xml +++ b/app/code/Magento/GiftMessage/etc/adminhtml/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/adminhtml/system.xml b/app/code/Magento/GiftMessage/etc/adminhtml/system.xml index b8e28717c426e..6779ea6f28174 100644 --- a/app/code/Magento/GiftMessage/etc/adminhtml/system.xml +++ b/app/code/Magento/GiftMessage/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/catalog_attributes.xml b/app/code/Magento/GiftMessage/etc/catalog_attributes.xml index 20596c9b6466a..e43419b91d821 100644 --- a/app/code/Magento/GiftMessage/etc/catalog_attributes.xml +++ b/app/code/Magento/GiftMessage/etc/catalog_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/config.xml b/app/code/Magento/GiftMessage/etc/config.xml index fd78b91ee0d64..4323d02c1d504 100644 --- a/app/code/Magento/GiftMessage/etc/config.xml +++ b/app/code/Magento/GiftMessage/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/di.xml b/app/code/Magento/GiftMessage/etc/di.xml index 7486b32099b5a..1d03849d978b8 100644 --- a/app/code/Magento/GiftMessage/etc/di.xml +++ b/app/code/Magento/GiftMessage/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/extension_attributes.xml b/app/code/Magento/GiftMessage/etc/extension_attributes.xml index 8ca36ce1507e1..fb982b1002c4d 100644 --- a/app/code/Magento/GiftMessage/etc/extension_attributes.xml +++ b/app/code/Magento/GiftMessage/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/fieldset.xml b/app/code/Magento/GiftMessage/etc/fieldset.xml index 99c6da99ecf37..8cf58115ed296 100644 --- a/app/code/Magento/GiftMessage/etc/fieldset.xml +++ b/app/code/Magento/GiftMessage/etc/fieldset.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/frontend/di.xml b/app/code/Magento/GiftMessage/etc/frontend/di.xml index cb7365b794787..1566c51ee9df3 100644 --- a/app/code/Magento/GiftMessage/etc/frontend/di.xml +++ b/app/code/Magento/GiftMessage/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/frontend/events.xml b/app/code/Magento/GiftMessage/etc/frontend/events.xml index fd7c77dc499e2..3af69730838ad 100644 --- a/app/code/Magento/GiftMessage/etc/frontend/events.xml +++ b/app/code/Magento/GiftMessage/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/frontend/routes.xml b/app/code/Magento/GiftMessage/etc/frontend/routes.xml index f1454b3a4265d..95f63c5bc8e7c 100644 --- a/app/code/Magento/GiftMessage/etc/frontend/routes.xml +++ b/app/code/Magento/GiftMessage/etc/frontend/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/module.xml b/app/code/Magento/GiftMessage/etc/module.xml index b2deceb6b6d04..bb4ea1dbc2ee6 100644 --- a/app/code/Magento/GiftMessage/etc/module.xml +++ b/app/code/Magento/GiftMessage/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/webapi.xml b/app/code/Magento/GiftMessage/etc/webapi.xml index aee7d4443259d..370be3c070fc8 100644 --- a/app/code/Magento/GiftMessage/etc/webapi.xml +++ b/app/code/Magento/GiftMessage/etc/webapi.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/etc/webapi_rest/events.xml b/app/code/Magento/GiftMessage/etc/webapi_rest/events.xml index ce2e2ac39d9d4..2411221ded375 100644 --- a/app/code/Magento/GiftMessage/etc/webapi_rest/events.xml +++ b/app/code/Magento/GiftMessage/etc/webapi_rest/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/registration.php b/app/code/Magento/GiftMessage/registration.php index 49add57ba473d..2a453ea0365f6 100644 --- a/app/code/Magento/GiftMessage/registration.php +++ b/app/code/Magento/GiftMessage/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_data.xml b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_data.xml index b705fa78a060f..3ac5ead86bc9b 100644 --- a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_data.xml +++ b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_data.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_items.xml b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_items.xml index b705fa78a060f..3ac5ead86bc9b 100644 --- a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_items.xml +++ b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_create_load_block_items.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml index dc3de7bf9178f..e9b40a57a0075 100644 --- a/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/GiftMessage/view/adminhtml/layout/sales_order_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/view/adminhtml/templates/giftoptionsform.phtml b/app/code/Magento/GiftMessage/view/adminhtml/templates/giftoptionsform.phtml index 9e8fbf1c5b69d..8aa2494d130a9 100644 --- a/app/code/Magento/GiftMessage/view/adminhtml/templates/giftoptionsform.phtml +++ b/app/code/Magento/GiftMessage/view/adminhtml/templates/giftoptionsform.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml index ac5e728a828b8..9aadef9bf8254 100644 --- a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GiftMessage/view/frontend/requirejs-config.js b/app/code/Magento/GiftMessage/view/frontend/requirejs-config.js index b59db70335d05..db33efeba1a94 100644 --- a/app/code/Magento/GiftMessage/view/frontend/requirejs-config.js +++ b/app/code/Magento/GiftMessage/view/frontend/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml index 230515897d220..d89c5b60c0d07 100644 --- a/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml +++ b/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml index 095a97d6630e4..02917045aa23c 100644 --- a/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml +++ b/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html index a4cde23d6d060..86ce16382acc0 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html +++ b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html index dc7f50107d2f2..590f1ba77556a 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html +++ b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleAdwords/Block/Code.php b/app/code/Magento/GoogleAdwords/Block/Code.php index 84ba572a50302..6be66a3972c25 100644 --- a/app/code/Magento/GoogleAdwords/Block/Code.php +++ b/app/code/Magento/GoogleAdwords/Block/Code.php @@ -2,7 +2,7 @@ /** * Google AdWords Code block * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Block; diff --git a/app/code/Magento/GoogleAdwords/Helper/Data.php b/app/code/Magento/GoogleAdwords/Helper/Data.php index 900447e2da3d5..eded25981df62 100644 --- a/app/code/Magento/GoogleAdwords/Helper/Data.php +++ b/app/code/Magento/GoogleAdwords/Helper/Data.php @@ -2,7 +2,7 @@ /** * Google AdWords Data Helper * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Helper; diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php index a3b8c31157b61..cb4f8747b8595 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php @@ -2,7 +2,7 @@ /** * Google AdWords Conversion Abstract Backend model * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Config\Backend; diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/Color.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/Color.php index 5a133a098879a..cf0425633f012 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/Color.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/Color.php @@ -2,7 +2,7 @@ /** * Google AdWords Color Backend model * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Config\Backend; diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/ConversionId.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/ConversionId.php index 3e3d3190999f6..50b867f7d9cd0 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/ConversionId.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/ConversionId.php @@ -2,7 +2,7 @@ /** * Google AdWords Conversion Id Backend model * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Config\Backend; diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php b/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php index 01e2bebeeff3a..ee394a6787a90 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Source/Language.php @@ -2,7 +2,7 @@ /** * Google AdWords language source * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Config\Source; diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Source/ValueType.php b/app/code/Magento/GoogleAdwords/Model/Config/Source/ValueType.php index 35dd325af3a64..274f5b508b53b 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Source/ValueType.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Source/ValueType.php @@ -2,7 +2,7 @@ /** * Google AdWords conversation value type source * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Config\Source; diff --git a/app/code/Magento/GoogleAdwords/Model/Filter/UppercaseTitle.php b/app/code/Magento/GoogleAdwords/Model/Filter/UppercaseTitle.php index d984abd2de550..e78c8d866ee8f 100644 --- a/app/code/Magento/GoogleAdwords/Model/Filter/UppercaseTitle.php +++ b/app/code/Magento/GoogleAdwords/Model/Filter/UppercaseTitle.php @@ -2,7 +2,7 @@ /** * Filter to uppercase the first character of each word in a string * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Model\Filter; diff --git a/app/code/Magento/GoogleAdwords/Model/Validator/Factory.php b/app/code/Magento/GoogleAdwords/Model/Validator/Factory.php index 6f9e08e202c71..2fd07b267cbe7 100644 --- a/app/code/Magento/GoogleAdwords/Model/Validator/Factory.php +++ b/app/code/Magento/GoogleAdwords/Model/Validator/Factory.php @@ -2,7 +2,7 @@ /** * Google AdWords Validator Factory * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. * @SuppressWarnings(PHPMD.LongVariable) */ diff --git a/app/code/Magento/GoogleAdwords/Observer/SetConversionValueObserver.php b/app/code/Magento/GoogleAdwords/Observer/SetConversionValueObserver.php index 2c62a670c342a..61481a09a868e 100644 --- a/app/code/Magento/GoogleAdwords/Observer/SetConversionValueObserver.php +++ b/app/code/Magento/GoogleAdwords/Observer/SetConversionValueObserver.php @@ -2,7 +2,7 @@ /** * Google AdWords module observer * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Observer; diff --git a/app/code/Magento/GoogleAdwords/Test/Unit/Helper/DataTest.php b/app/code/Magento/GoogleAdwords/Test/Unit/Helper/DataTest.php index 77f24e19ef0e8..5403b76d859d0 100644 --- a/app/code/Magento/GoogleAdwords/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/GoogleAdwords/Test/Unit/Helper/DataTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleAdwords/etc/config.xml b/app/code/Magento/GoogleAdwords/etc/config.xml index 33278c81226c8..2c6427513b53b 100644 --- a/app/code/Magento/GoogleAdwords/etc/config.xml +++ b/app/code/Magento/GoogleAdwords/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAdwords/etc/di.xml b/app/code/Magento/GoogleAdwords/etc/di.xml index 8e6bfa9f58324..5f9de4fc39b21 100644 --- a/app/code/Magento/GoogleAdwords/etc/di.xml +++ b/app/code/Magento/GoogleAdwords/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAdwords/etc/frontend/events.xml b/app/code/Magento/GoogleAdwords/etc/frontend/events.xml index ee30ac6cc0998..dc05c5a10278a 100644 --- a/app/code/Magento/GoogleAdwords/etc/frontend/events.xml +++ b/app/code/Magento/GoogleAdwords/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAdwords/etc/module.xml b/app/code/Magento/GoogleAdwords/etc/module.xml index c0549848ea442..ee582ec6304c6 100644 --- a/app/code/Magento/GoogleAdwords/etc/module.xml +++ b/app/code/Magento/GoogleAdwords/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAdwords/registration.php b/app/code/Magento/GoogleAdwords/registration.php index 816ca597014aa..4c5da842051dc 100644 --- a/app/code/Magento/GoogleAdwords/registration.php +++ b/app/code/Magento/GoogleAdwords/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleAdwords/view/frontend/templates/code.phtml b/app/code/Magento/GoogleAdwords/view/frontend/templates/code.phtml index 27717a2fade96..ee713ec6a956d 100644 --- a/app/code/Magento/GoogleAdwords/view/frontend/templates/code.phtml +++ b/app/code/Magento/GoogleAdwords/view/frontend/templates/code.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml b/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml index 1238ab525e1a4..6564ddb10dde0 100644 --- a/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml +++ b/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAnalytics/etc/di.xml b/app/code/Magento/GoogleAnalytics/etc/di.xml index 9865bf935e489..69e2573fbaafe 100644 --- a/app/code/Magento/GoogleAnalytics/etc/di.xml +++ b/app/code/Magento/GoogleAnalytics/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAnalytics/etc/frontend/events.xml b/app/code/Magento/GoogleAnalytics/etc/frontend/events.xml index bf2d3695ef11a..ae63fb5f3afdd 100644 --- a/app/code/Magento/GoogleAnalytics/etc/frontend/events.xml +++ b/app/code/Magento/GoogleAnalytics/etc/frontend/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAnalytics/etc/module.xml b/app/code/Magento/GoogleAnalytics/etc/module.xml index 2f19cf9e03294..bd401c26f391a 100644 --- a/app/code/Magento/GoogleAnalytics/etc/module.xml +++ b/app/code/Magento/GoogleAnalytics/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleAnalytics/registration.php b/app/code/Magento/GoogleAnalytics/registration.php index 778faafb34ef3..1b2ea07c4bee7 100644 --- a/app/code/Magento/GoogleAnalytics/registration.php +++ b/app/code/Magento/GoogleAnalytics/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleAnalytics/view/frontend/templates/ga.phtml b/app/code/Magento/GoogleAnalytics/view/frontend/templates/ga.phtml index 52a7f186a19bd..9d0ded79f9458 100644 --- a/app/code/Magento/GoogleAnalytics/view/frontend/templates/ga.phtml +++ b/app/code/Magento/GoogleAnalytics/view/frontend/templates/ga.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleOptimizer/etc/adminhtml/system.xml b/app/code/Magento/GoogleOptimizer/etc/adminhtml/system.xml index ff58c7a6467a2..f0c703b7693c7 100644 --- a/app/code/Magento/GoogleOptimizer/etc/adminhtml/system.xml +++ b/app/code/Magento/GoogleOptimizer/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/etc/config.xml b/app/code/Magento/GoogleOptimizer/etc/config.xml index fd0cf59f56861..28aa1f921c589 100644 --- a/app/code/Magento/GoogleOptimizer/etc/config.xml +++ b/app/code/Magento/GoogleOptimizer/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/etc/events.xml b/app/code/Magento/GoogleOptimizer/etc/events.xml index d637f28fe47d1..ee50a6ff1f5e8 100644 --- a/app/code/Magento/GoogleOptimizer/etc/events.xml +++ b/app/code/Magento/GoogleOptimizer/etc/events.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/etc/module.xml b/app/code/Magento/GoogleOptimizer/etc/module.xml index 1c5f5c124a912..25d7462587cb6 100644 --- a/app/code/Magento/GoogleOptimizer/etc/module.xml +++ b/app/code/Magento/GoogleOptimizer/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/registration.php b/app/code/Magento/GoogleOptimizer/registration.php index 1d648a2983e2a..c13241b034bf3 100644 --- a/app/code/Magento/GoogleOptimizer/registration.php +++ b/app/code/Magento/GoogleOptimizer/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/adminhtml/layout/cms_page_edit.xml b/app/code/Magento/GoogleOptimizer/view/adminhtml/layout/cms_page_edit.xml index d2c8863956d3e..ef1410a7e89bb 100644 --- a/app/code/Magento/GoogleOptimizer/view/adminhtml/layout/cms_page_edit.xml +++ b/app/code/Magento/GoogleOptimizer/view/adminhtml/layout/cms_page_edit.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/category_form.xml b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/category_form.xml index 1387e4a2e6783..17210d138689d 100644 --- a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/category_form.xml +++ b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/category_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/cms_page_form.xml b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/cms_page_form.xml index 235b216d8fb67..4af4152eff65c 100644 --- a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/cms_page_form.xml +++ b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/cms_page_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/new_category_form.xml b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/new_category_form.xml index 264dabcc861ca..368fc666477bf 100644 --- a/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/new_category_form.xml +++ b/app/code/Magento/GoogleOptimizer/view/adminhtml/ui_component/new_category_form.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_category_view.xml b/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_category_view.xml index f2d1a03d1fd7c..c1fe0432f30c1 100644 --- a/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_category_view.xml +++ b/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_category_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_product_view.xml index 50a5e534cb536..bc96f18b7df3d 100644 --- a/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/GoogleOptimizer/view/frontend/layout/catalog_product_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GoogleOptimizer/view/frontend/layout/cms_page_view.xml b/app/code/Magento/GoogleOptimizer/view/frontend/layout/cms_page_view.xml index f2c032e7bed02..2a90c337fa4c2 100644 --- a/app/code/Magento/GoogleOptimizer/view/frontend/layout/cms_page_view.xml +++ b/app/code/Magento/GoogleOptimizer/view/frontend/layout/cms_page_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedImportExport/Model/Export/Product/Type/Grouped.php b/app/code/Magento/GroupedImportExport/Model/Export/Product/Type/Grouped.php index 3e7b4a3976938..fc7b7c22a26a8 100644 --- a/app/code/Magento/GroupedImportExport/Model/Export/Product/Type/Grouped.php +++ b/app/code/Magento/GroupedImportExport/Model/Export/Product/Type/Grouped.php @@ -2,7 +2,7 @@ /** * Export entity of grouped product type * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GroupedImportExport\Model\Export\Product\Type; diff --git a/app/code/Magento/GroupedImportExport/Model/Export/RowCustomizer.php b/app/code/Magento/GroupedImportExport/Model/Export/RowCustomizer.php index dff2663dea913..f29ceb951db39 100644 --- a/app/code/Magento/GroupedImportExport/Model/Export/RowCustomizer.php +++ b/app/code/Magento/GroupedImportExport/Model/Export/RowCustomizer.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GroupedImportExport/etc/export.xml b/app/code/Magento/GroupedImportExport/etc/export.xml index 5271ad58bbbd5..ae32aa73be503 100644 --- a/app/code/Magento/GroupedImportExport/etc/export.xml +++ b/app/code/Magento/GroupedImportExport/etc/export.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedImportExport/etc/import.xml b/app/code/Magento/GroupedImportExport/etc/import.xml index d82507f622b9b..c1285a9b66a4e 100644 --- a/app/code/Magento/GroupedImportExport/etc/import.xml +++ b/app/code/Magento/GroupedImportExport/etc/import.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedImportExport/etc/module.xml b/app/code/Magento/GroupedImportExport/etc/module.xml index 1051080c6c0bb..a0518abc4660e 100644 --- a/app/code/Magento/GroupedImportExport/etc/module.xml +++ b/app/code/Magento/GroupedImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedImportExport/registration.php b/app/code/Magento/GroupedImportExport/registration.php index 1f5d2158a51ae..9adbc84f61b73 100644 --- a/app/code/Magento/GroupedImportExport/registration.php +++ b/app/code/Magento/GroupedImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GroupedProduct/etc/adminhtml/routes.xml b/app/code/Magento/GroupedProduct/etc/adminhtml/routes.xml index b56a47161b0cb..2610f01ad2a8f 100644 --- a/app/code/Magento/GroupedProduct/etc/adminhtml/routes.xml +++ b/app/code/Magento/GroupedProduct/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/adminhtml/system.xml b/app/code/Magento/GroupedProduct/etc/adminhtml/system.xml index c295f7abf44ce..bbb2054abb14f 100644 --- a/app/code/Magento/GroupedProduct/etc/adminhtml/system.xml +++ b/app/code/Magento/GroupedProduct/etc/adminhtml/system.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/config.xml b/app/code/Magento/GroupedProduct/etc/config.xml index 6f33654ca8ac7..c803862e3e159 100644 --- a/app/code/Magento/GroupedProduct/etc/config.xml +++ b/app/code/Magento/GroupedProduct/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/di.xml b/app/code/Magento/GroupedProduct/etc/di.xml index 788052d07fca5..f3d5192cf0767 100644 --- a/app/code/Magento/GroupedProduct/etc/di.xml +++ b/app/code/Magento/GroupedProduct/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/extension_attributes.xml b/app/code/Magento/GroupedProduct/etc/extension_attributes.xml index dec84c4c27a98..14ff9821025c4 100644 --- a/app/code/Magento/GroupedProduct/etc/extension_attributes.xml +++ b/app/code/Magento/GroupedProduct/etc/extension_attributes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/frontend/di.xml b/app/code/Magento/GroupedProduct/etc/frontend/di.xml index a6ad9efbb0eb3..755d53f46bfdd 100644 --- a/app/code/Magento/GroupedProduct/etc/frontend/di.xml +++ b/app/code/Magento/GroupedProduct/etc/frontend/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/module.xml b/app/code/Magento/GroupedProduct/etc/module.xml index 2294ea45aab55..b5aa60db102a2 100644 --- a/app/code/Magento/GroupedProduct/etc/module.xml +++ b/app/code/Magento/GroupedProduct/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/pdf.xml b/app/code/Magento/GroupedProduct/etc/pdf.xml index 24f0ff29518c5..8a7021e72ea84 100644 --- a/app/code/Magento/GroupedProduct/etc/pdf.xml +++ b/app/code/Magento/GroupedProduct/etc/pdf.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/product_types.xml b/app/code/Magento/GroupedProduct/etc/product_types.xml index 3b4f7b7fbeb79..8f41611353a32 100644 --- a/app/code/Magento/GroupedProduct/etc/product_types.xml +++ b/app/code/Magento/GroupedProduct/etc/product_types.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/etc/sales.xml b/app/code/Magento/GroupedProduct/etc/sales.xml index 16b18b4415d9f..a09989cb9aab5 100644 --- a/app/code/Magento/GroupedProduct/etc/sales.xml +++ b/app/code/Magento/GroupedProduct/etc/sales.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/registration.php b/app/code/Magento/GroupedProduct/registration.php index c0e1e34bc2824..481f3e85877bf 100644 --- a/app/code/Magento/GroupedProduct/registration.php +++ b/app/code/Magento/GroupedProduct/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_new.xml index 6647ba4365458..b264471d278be 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_view_type_grouped.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_view_type_grouped.xml index d8bcde7f55d30..3e7afc68eff62 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_view_type_grouped.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/catalog_product_view_type_grouped.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_edit_popup.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_edit_popup.xml index 6e8587a805a33..6d8752ab0c53b 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_edit_popup.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_edit_popup.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_popup_grid.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_popup_grid.xml index ab3c4204c4ab4..d8e344771860c 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_popup_grid.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/groupedproduct_popup_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_new.xml index dc9a19e91ed76..5acb7bae4e8f5 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_new.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml index dc9a19e91ed76..5acb7bae4e8f5 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_view.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_view.xml index 9ed2f6976c78e..5692195850ca2 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_view.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_creditmemo_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_new.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_new.xml index dc9a19e91ed76..5acb7bae4e8f5 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_new.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_new.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_updateqty.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_updateqty.xml index dc9a19e91ed76..5acb7bae4e8f5 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_updateqty.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_updateqty.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_view.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_view.xml index d40b0405bcf82..0947a4523bafc 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_view.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_invoice_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_view.xml index dc9a19e91ed76..5acb7bae4e8f5 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_view.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/layout/sales_order_view.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/requirejs-config.js b/app/code/Magento/GroupedProduct/view/adminhtml/requirejs-config.js index 7fdb1fe9c9250..f8881837c6d44 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/requirejs-config.js +++ b/app/code/Magento/GroupedProduct/view/adminhtml/requirejs-config.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml b/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml index 96c918e8ff8e6..7a1ed56634336 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/ui_component/grouped_product_listing.xml b/app/code/Magento/GroupedProduct/view/adminhtml/ui_component/grouped_product_listing.xml index b29cc9c97d38d..9a50c71c2c4f7 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/ui_component/grouped_product_listing.xml +++ b/app/code/Magento/GroupedProduct/view/adminhtml/ui_component/grouped_product_listing.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/web/css/grouped-product.css b/app/code/Magento/GroupedProduct/view/adminhtml/web/css/grouped-product.css index df86b3bc44be1..3d723387d23b0 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/web/css/grouped-product.css +++ b/app/code/Magento/GroupedProduct/view/adminhtml/web/css/grouped-product.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js index d8841f2118f15..c7d37ec0876b2 100644 --- a/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js +++ b/app/code/Magento/GroupedProduct/view/adminhtml/web/js/grouped-product.js @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /*jshint browser:true */ diff --git a/app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml b/app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml index d13e6611a935c..29a8c2c685a89 100644 --- a/app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml +++ b/app/code/Magento/GroupedProduct/view/base/layout/catalog_product_prices.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/base/templates/product/price/final_price.phtml b/app/code/Magento/GroupedProduct/view/base/templates/product/price/final_price.phtml index bce8f36f12f7d..0f7d60fe3a9f2 100644 --- a/app/code/Magento/GroupedProduct/view/base/templates/product/price/final_price.phtml +++ b/app/code/Magento/GroupedProduct/view/base/templates/product/price/final_price.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_view_type_grouped.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_view_type_grouped.xml index ef17f6f2ebaa4..8f851cc7806fb 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_view_type_grouped.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/catalog_product_view_type_grouped.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml index 2d6dc79b7643e..958f73c6c1576 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml index b713558b10633..dabddb4f4d851 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_onepage_review_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_creditmemo_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_creditmemo_renderers.xml index 13952d3bc7c00..1cd91018be9e7 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_creditmemo_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_invoice_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_invoice_renderers.xml index ca6e286e30f69..21cd7dd0173a1 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_invoice_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_renderers.xml index 9f2166f345e0b..e8f56212470a0 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_email_order_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_guest_invoice.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_guest_invoice.xml index 495268bb8e5d9..c451fe6baca30 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_guest_invoice.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_guest_invoice.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_creditmemo_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_creditmemo_renderers.xml index 30eebc159fdb3..72da33456f1ec 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_creditmemo_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_invoice_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_invoice_renderers.xml index 495268bb8e5d9..c451fe6baca30 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_invoice_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_item_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_item_renderers.xml index c51e36c80b86a..339ba3629b955 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_item_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_item_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_creditmemo_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_creditmemo_renderers.xml index e0a9fca4a41a9..2d0a482c02d10 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_creditmemo_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_creditmemo_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_invoice_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_invoice_renderers.xml index fb76469b4eaaf..ffa26e8d1ecca 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_invoice_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_invoice_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_renderers.xml index bbf433f80e406..0d48958e4784c 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/sales_order_print_renderers.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/GroupedProduct/view/frontend/templates/product/view/type/default.phtml b/app/code/Magento/GroupedProduct/view/frontend/templates/product/view/type/default.phtml index 054fcb95038e0..2416878ca2d59 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/templates/product/view/type/default.phtml +++ b/app/code/Magento/GroupedProduct/view/frontend/templates/product/view/type/default.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_merged_valid.xml b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_merged_valid.xml index b1cf370e1c5dd..60ea865b5ec20 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_merged_valid.xml +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_merged_valid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_valid.xml b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_valid.xml index c59fb52f05704..a25b1900e2210 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_valid.xml +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/export_valid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/invalidExportMergedXmlArray.php b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/invalidExportMergedXmlArray.php index 66121ce773b75..cca31412bbf52 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/invalidExportMergedXmlArray.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Export/Config/_files/invalidExportMergedXmlArray.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/invalidImportMergedXmlArray.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/invalidImportMergedXmlArray.php index 35c8a8e854712..d9361aa46bb80 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/invalidImportMergedXmlArray.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/invalidImportMergedXmlArray.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/valid_import_merged.xml b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/valid_import_merged.xml index f6ea8ddaa7025..ead1e877b639a 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/valid_import_merged.xml +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Config/_files/valid_import_merged.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ConfigTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ConfigTest.php index 1d872223453c6..4a60e272db4f2 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/ConfigTest.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/ConfigTest.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/etc/adminhtml/menu.xml b/app/code/Magento/ImportExport/etc/adminhtml/menu.xml index 32f33227952b3..7680ae80fc7b6 100644 --- a/app/code/Magento/ImportExport/etc/adminhtml/menu.xml +++ b/app/code/Magento/ImportExport/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/adminhtml/routes.xml b/app/code/Magento/ImportExport/etc/adminhtml/routes.xml index 22448a8609aa0..37af6d61ec37b 100644 --- a/app/code/Magento/ImportExport/etc/adminhtml/routes.xml +++ b/app/code/Magento/ImportExport/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/config.xml b/app/code/Magento/ImportExport/etc/config.xml index 7a7fe0e10e9b6..7aee9bdd2fd6d 100644 --- a/app/code/Magento/ImportExport/etc/config.xml +++ b/app/code/Magento/ImportExport/etc/config.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/di.xml b/app/code/Magento/ImportExport/etc/di.xml index 4c357782d80c3..47acf7a356d93 100644 --- a/app/code/Magento/ImportExport/etc/di.xml +++ b/app/code/Magento/ImportExport/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/export.xsd b/app/code/Magento/ImportExport/etc/export.xsd index e6d69809d55b9..30068c8a8e6fd 100644 --- a/app/code/Magento/ImportExport/etc/export.xsd +++ b/app/code/Magento/ImportExport/etc/export.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/export_merged.xsd b/app/code/Magento/ImportExport/etc/export_merged.xsd index 352c78ee76038..9c483e2e6f7d3 100644 --- a/app/code/Magento/ImportExport/etc/export_merged.xsd +++ b/app/code/Magento/ImportExport/etc/export_merged.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/import.xsd b/app/code/Magento/ImportExport/etc/import.xsd index 4aac9792ce741..9abd43c665606 100644 --- a/app/code/Magento/ImportExport/etc/import.xsd +++ b/app/code/Magento/ImportExport/etc/import.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/import_merged.xsd b/app/code/Magento/ImportExport/etc/import_merged.xsd index 898a835c7b2d7..ff14b2a514e03 100644 --- a/app/code/Magento/ImportExport/etc/import_merged.xsd +++ b/app/code/Magento/ImportExport/etc/import_merged.xsd @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/etc/module.xml b/app/code/Magento/ImportExport/etc/module.xml index 0b7b0329c39c3..1ade855bc3a8d 100644 --- a/app/code/Magento/ImportExport/etc/module.xml +++ b/app/code/Magento/ImportExport/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/registration.php b/app/code/Magento/ImportExport/registration.php index e879d8fe8217c..7a8bf9770934a 100644 --- a/app/code/Magento/ImportExport/registration.php +++ b/app/code/Magento/ImportExport/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_export_index.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_export_index.xml index f81887fe53896..6848650979306 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_export_index.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_export_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_grid_block.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_grid_block.xml index 3e8e26d45635e..7af022b8f2e53 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_grid_block.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_grid_block.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_index.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_index.xml index 70ec84dd18638..1a6865580ccc2 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_index.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_history_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_busy.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_busy.xml index 96923815d4001..32a204d847580 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_busy.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_busy.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_index.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_index.xml index e6485407fce68..14b0f25817e96 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_index.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_index.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_start.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_start.xml index 0c03442c8ad20..d1f38e07e9774 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_start.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_start.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_validate.xml b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_validate.xml index 0c03442c8ad20..d1f38e07e9774 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_validate.xml +++ b/app/code/Magento/ImportExport/view/adminhtml/layout/adminhtml_import_validate.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml index ad186e1c78a6f..f0dac75598344 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/busy.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/after.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/after.phtml index 2b036ffb11360..6ba9024bb72a2 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/after.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/after.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/filter/after.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/filter/after.phtml index 365ad1a22587a..704b88b0c0f69 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/filter/after.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/filter/after.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml index 513d32073b97c..31e0e7bb361ed 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/after.phtml @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/ImportExport/view/adminhtml/web/css/importexport.css b/app/code/Magento/ImportExport/view/adminhtml/web/css/importexport.css index 6d08f0be2b94a..ac42b2bda609d 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/web/css/importexport.css +++ b/app/code/Magento/ImportExport/view/adminhtml/web/css/importexport.css @@ -1,5 +1,5 @@ /** - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ .import-error-wrapper { diff --git a/app/code/Magento/Indexer/App/Indexer.php b/app/code/Magento/Indexer/App/Indexer.php index 827d7393bed37..89f153ee9aa47 100644 --- a/app/code/Magento/Indexer/App/Indexer.php +++ b/app/code/Magento/Indexer/App/Indexer.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Indexer/etc/adminhtml/di.xml b/app/code/Magento/Indexer/etc/adminhtml/di.xml index 76b8f8b841120..5d40b7eb20e92 100644 --- a/app/code/Magento/Indexer/etc/adminhtml/di.xml +++ b/app/code/Magento/Indexer/etc/adminhtml/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/adminhtml/menu.xml b/app/code/Magento/Indexer/etc/adminhtml/menu.xml index 432a0cf1a9d0e..e8cae034b8a8f 100644 --- a/app/code/Magento/Indexer/etc/adminhtml/menu.xml +++ b/app/code/Magento/Indexer/etc/adminhtml/menu.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/adminhtml/routes.xml b/app/code/Magento/Indexer/etc/adminhtml/routes.xml index ceccb8d0917c6..c1d3a7c692b95 100644 --- a/app/code/Magento/Indexer/etc/adminhtml/routes.xml +++ b/app/code/Magento/Indexer/etc/adminhtml/routes.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/cron_groups.xml b/app/code/Magento/Indexer/etc/cron_groups.xml index b8d7399dec832..7afabee1949c0 100644 --- a/app/code/Magento/Indexer/etc/cron_groups.xml +++ b/app/code/Magento/Indexer/etc/cron_groups.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/crontab.xml b/app/code/Magento/Indexer/etc/crontab.xml index b3a701c1dd651..2984f47912f45 100644 --- a/app/code/Magento/Indexer/etc/crontab.xml +++ b/app/code/Magento/Indexer/etc/crontab.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/di.xml b/app/code/Magento/Indexer/etc/di.xml index 1d3f125406f7d..9240531e990c6 100644 --- a/app/code/Magento/Indexer/etc/di.xml +++ b/app/code/Magento/Indexer/etc/di.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/etc/module.xml b/app/code/Magento/Indexer/etc/module.xml index a2beac159902b..c5f0d6d04b474 100644 --- a/app/code/Magento/Indexer/etc/module.xml +++ b/app/code/Magento/Indexer/etc/module.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Indexer/registration.php b/app/code/Magento/Indexer/registration.php index ac23ea0b4e6b3..bb23cc243f77d 100644 --- a/app/code/Magento/Indexer/registration.php +++ b/app/code/Magento/Indexer/registration.php @@ -1,6 +1,6 @@ diff --git a/app/code/Magento/Indexer/view/adminhtml/layout/indexer_indexer_list_grid.xml b/app/code/Magento/Indexer/view/adminhtml/layout/indexer_indexer_list_grid.xml index 87a88add07d18..52d624cbc9075 100644 --- a/app/code/Magento/Indexer/view/adminhtml/layout/indexer_indexer_list_grid.xml +++ b/app/code/Magento/Indexer/view/adminhtml/layout/indexer_indexer_list_grid.xml @@ -1,7 +1,7 @@ diff --git a/app/code/Magento/Integration/Api/AdminTokenServiceInterface.php b/app/code/Magento/Integration/Api/AdminTokenServiceInterface.php index e7368e74f4e92..3b7bcd755f00b 100644 --- a/app/code/Magento/Integration/Api/AdminTokenServiceInterface.php +++ b/app/code/Magento/Integration/Api/AdminTokenServiceInterface.php @@ -1,6 +1,6 @@ tag with "edit" action for the integration grid. * - * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Integration\Block\Adminhtml\Widget\Grid\Column\Renderer\Button; diff --git a/app/code/Magento/Integration/Block/Adminhtml/Widget/Grid/Column/Renderer/Button/Edit.php b/app/code/Magento/Integration/Block/Adminhtml/Widget/Grid/Column/Renderer/Button/Edit.php index 81ed706a5785a..90d6301517270 100644 --- a/app/code/Magento/Integration/Block/Adminhtml/Widget/Grid/Column/Renderer/Button/Edit.php +++ b/app/code/Magento/Integration/Block/Adminhtml/Widget/Grid/Column/Renderer/Button/Edit.php @@ -2,7 +2,7 @@ /** * Render HTML

      Actions toolbar

      Actions toolbar is a set of actions on a page, form and so on that includes primary and/or secondary actions. diff --git a/lib/web/css/docs/breadcrumbs.html b/lib/web/css/docs/breadcrumbs.html index 94543dd9f15db..b4ba9da58fa64 100644 --- a/lib/web/css/docs/breadcrumbs.html +++ b/lib/web/css/docs/breadcrumbs.html @@ -1,10 +1,10 @@ - - + + breadcrumbs | Magento UI Library

      // // -// +// // // // @@ -361,7 +361,7 @@ footer.footer { // # Layout width // -// The .lib-layout-width() mixin is used to set default page width of the element the mixin is applyed to. It can be used to set width for the whole page wrapper or for the page elements individualy like header, footer, and so on. +// The .lib-layout-width() mixin is used to set default page width of the element the mixin is applied to. It can be used to set width for the whole page wrapper or for the page elements individualy like header, footer, and so on. // # Layout width variables // diff --git a/lib/web/css/docs/source/_typography.less b/lib/web/css/docs/source/_typography.less index 2ecdda6ea2558..f490a0517af0c 100644 --- a/lib/web/css/docs/source/_typography.less +++ b/lib/web/css/docs/source/_typography.less @@ -3,7 +3,7 @@ // * See COPYING.txt for license details. // */ -// # Typogrphy +// # Typography // // Magento UI library provides mixins for typography styling. To configure typography, global variables from **_variables.less** file are used. // @@ -979,7 +979,7 @@ // # Text hide // -// The .lib-text-hide() mixin hides a text of the element the mixin is applyed to. +// The .lib-text-hide() mixin hides a text of the element the mixin is applied to. // // ```html //

      From a1f1a0fc38edfe5ba134b64bd26ca2cf50cf91d1 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Thu, 10 May 2018 16:50:50 +0200 Subject: [PATCH 423/555] Add concrete type hints for product and category resources --- app/code/Magento/Catalog/Model/Category.php | 15 +++++++++++++++ app/code/Magento/Catalog/Model/Product.php | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/app/code/Magento/Catalog/Model/Category.php b/app/code/Magento/Catalog/Model/Category.php index 19e566195e45d..46ea76b4090b9 100644 --- a/app/code/Magento/Catalog/Model/Category.php +++ b/app/code/Magento/Catalog/Model/Category.php @@ -114,6 +114,11 @@ class Category extends \Magento\Catalog\Model\AbstractModel implements */ protected $_url; + /** + * @var ResourceModel\Category + */ + protected $_resource; + /** * URL rewrite model * @@ -327,6 +332,16 @@ protected function getCustomAttributesCodes() return $this->customAttributesCodes; } + /** + * @throws \Magento\Framework\Exception\LocalizedException + * @return \Magento\Catalog\Model\ResourceModel\Category + * @deprecated because resource models should be used directly + */ + protected function _getResource() + { + return parent::_getResource(); + } + /** * Get flat resource model flag * diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php index 268bed36af1ad..1e7fefddf5e87 100644 --- a/app/code/Magento/Catalog/Model/Product.php +++ b/app/code/Magento/Catalog/Model/Product.php @@ -117,6 +117,11 @@ class Product extends \Magento\Catalog\Model\AbstractModel implements */ protected $_urlModel = null; + /** + * @var ResourceModel\Product + */ + protected $_resource; + /** * @var string */ @@ -469,6 +474,18 @@ protected function _construct() $this->_init('Magento\Catalog\Model\ResourceModel\Product'); } + /** + * Get resource instance + * + * @throws \Magento\Framework\Exception\LocalizedException + * @return \Magento\Catalog\Model\ResourceModel\Product + * @deprecated because resource models should be used directly + */ + protected function _getResource() + { + return parent::_getResource(); + } + /** * {@inheritdoc} */ From 28d4897457d8f82ffa83303d8e960bc58bf0fe43 Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Thu, 10 May 2018 23:25:02 +0300 Subject: [PATCH 424/555] [Backport] Fix typo in input type variable name --- app/code/Magento/CatalogSearch/Block/Advanced/Form.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/CatalogSearch/Block/Advanced/Form.php b/app/code/Magento/CatalogSearch/Block/Advanced/Form.php index baa4f75d185a6..d205c5d937a3d 100644 --- a/app/code/Magento/CatalogSearch/Block/Advanced/Form.php +++ b/app/code/Magento/CatalogSearch/Block/Advanced/Form.php @@ -197,16 +197,16 @@ public function getCurrency($attribute) public function getAttributeInputType($attribute) { $dataType = $attribute->getBackend()->getType(); - $imputType = $attribute->getFrontend()->getInputType(); - if ($imputType == 'select' || $imputType == 'multiselect') { + $inputType = $attribute->getFrontend()->getInputType(); + if ($inputType == 'select' || $inputType == 'multiselect') { return 'select'; } - if ($imputType == 'boolean') { + if ($inputType == 'boolean') { return 'yesno'; } - if ($imputType == 'price') { + if ($inputType == 'price') { return 'price'; } From d2a4c73c358d15804ae4c0cf7bb2ce3a369fd8a7 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Fri, 11 May 2018 17:01:17 +0200 Subject: [PATCH 425/555] Fix typo in doc for updateSpecificCoupons --- app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php index 5068f53f23bc9..3907261cad1b9 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php @@ -106,7 +106,7 @@ public function exists($code) } /** - * Update auto generated Specific Coupon if it's rule changed + * Update auto generated Specific Coupon if its rule changed * * @param \Magento\SalesRule\Model\Rule $rule * @return $this From f4ae0e32abc1de2cfc5db23260df0e82ee68f75a Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Fri, 11 May 2018 17:33:39 +0200 Subject: [PATCH 426/555] Default schedule config for sitemap_generate job added --- app/code/Magento/Sitemap/Model/Observer.php | 2 ++ app/code/Magento/Sitemap/etc/config.xml | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/app/code/Magento/Sitemap/Model/Observer.php b/app/code/Magento/Sitemap/Model/Observer.php index 154538851516a..f7076feaa0635 100644 --- a/app/code/Magento/Sitemap/Model/Observer.php +++ b/app/code/Magento/Sitemap/Model/Observer.php @@ -19,6 +19,8 @@ class Observer /** * Cronjob expression configuration + * + * @deprecated Use \Magento\Cron\Model\Config\Backend\Sitemap::CRON_STRING_PATH instead. */ const XML_PATH_CRON_EXPR = 'crontab/default/jobs/generate_sitemaps/schedule/cron_expr'; diff --git a/app/code/Magento/Sitemap/etc/config.xml b/app/code/Magento/Sitemap/etc/config.xml index 73468baadcb90..6f14ff728ac4f 100644 --- a/app/code/Magento/Sitemap/etc/config.xml +++ b/app/code/Magento/Sitemap/etc/config.xml @@ -42,5 +42,16 @@ + + + + + + 0 0 * * * + + + + + From 4d4630db03dcdde32177354ce45edb503281dc7b Mon Sep 17 00:00:00 2001 From: Kaushik Chavda Date: Sat, 12 May 2018 17:03:49 +0530 Subject: [PATCH 427/555] Swatches module file was missing in 2.1 --- app/code/Magento/Swatches/etc/acl.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 app/code/Magento/Swatches/etc/acl.xml diff --git a/app/code/Magento/Swatches/etc/acl.xml b/app/code/Magento/Swatches/etc/acl.xml new file mode 100755 index 0000000000000..f7b2c325079fe --- /dev/null +++ b/app/code/Magento/Swatches/etc/acl.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + From e1f416f63ea8e7b4d2e4812be06b20f2c15b2aa7 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov Date: Sat, 12 May 2018 15:54:42 +0300 Subject: [PATCH 428/555] magento/magento2#15101 --- .../View/Element/UiComponent/DataProvider/FulltextFilter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php index f683e248aec91..9d91afaf6ec91 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php @@ -67,7 +67,7 @@ function ($column) use ($alias) { * @param string $value * @return string */ - private function escapeAgainstValue(string $value): string + private function escapeAgainstValue(string $value) { return preg_replace('/([+\-><\(\)~*\"@]+)/', ' ', $value); } From 0be4d958bee35efdbeecaea6748936009ebae770 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov Date: Sat, 12 May 2018 15:55:07 +0300 Subject: [PATCH 429/555] magento/magento2#15101 --- .../View/Element/UiComponent/DataProvider/FulltextFilter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php index 9d91afaf6ec91..7de5d0065d268 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php @@ -67,7 +67,7 @@ function ($column) use ($alias) { * @param string $value * @return string */ - private function escapeAgainstValue(string $value) + private function escapeAgainstValue($value) { return preg_replace('/([+\-><\(\)~*\"@]+)/', ' ', $value); } From c5bfca6ecf3cfce560f271d335ead6ca0929d3b0 Mon Sep 17 00:00:00 2001 From: Pieter Hoste Date: Sat, 12 May 2018 15:56:12 +0200 Subject: [PATCH 430/555] Fixed format of purchase date in order grid again. --- .../Sales/view/adminhtml/ui_component/sales_order_grid.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index 69adf252a9b1d..fbb9d028c4f04 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -187,7 +187,6 @@ date Purchase Date desc - MMM dd, YYYY, H:mm:ss A From d6248a2568d296fb24dcbcc906c83db42255ce16 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 13 May 2018 17:31:30 +0200 Subject: [PATCH 431/555] Corrected params in comment block --- .../OfflineShipping/Block/Adminhtml/Form/Field/Export.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/OfflineShipping/Block/Adminhtml/Form/Field/Export.php b/app/code/Magento/OfflineShipping/Block/Adminhtml/Form/Field/Export.php index cb20cc3139d55..48d6c298aa355 100644 --- a/app/code/Magento/OfflineShipping/Block/Adminhtml/Form/Field/Export.php +++ b/app/code/Magento/OfflineShipping/Block/Adminhtml/Form/Field/Export.php @@ -21,7 +21,7 @@ class Export extends \Magento\Framework\Data\Form\Element\AbstractElement * @param \Magento\Framework\Data\Form\Element\Factory $factoryElement * @param \Magento\Framework\Data\Form\Element\CollectionFactory $factoryCollection * @param \Magento\Framework\Escaper $escaper - * @param \Magento\Backend\Helper\Data $helper + * @param \Magento\Backend\Model\UrlInterface $backendUrl * @param array $data */ public function __construct( From 236e1a746fcb19407d78ea9550d8e1ff004f6a8f Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Sun, 13 May 2018 19:49:47 +0300 Subject: [PATCH 432/555] [Backport] Removed unused class declaration and code --- app/code/Magento/Review/view/frontend/templates/redirect.phtml | 3 --- app/code/Magento/Version/Controller/Index/Index.php | 1 - 2 files changed, 4 deletions(-) diff --git a/app/code/Magento/Review/view/frontend/templates/redirect.phtml b/app/code/Magento/Review/view/frontend/templates/redirect.phtml index fc74cadacb319..2fdb5e90a9c18 100644 --- a/app/code/Magento/Review/view/frontend/templates/redirect.phtml +++ b/app/code/Magento/Review/view/frontend/templates/redirect.phtml @@ -8,9 +8,6 @@ ?> getProduct()->getProductUrl()}#info-product_reviews"); exit; ?> diff --git a/app/code/Magento/Version/Controller/Index/Index.php b/app/code/Magento/Version/Controller/Index/Index.php index 4314676c479f9..6e2c094e448c4 100644 --- a/app/code/Magento/Version/Controller/Index/Index.php +++ b/app/code/Magento/Version/Controller/Index/Index.php @@ -9,7 +9,6 @@ use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context; use Magento\Framework\App\ProductMetadataInterface; -use Magento\Framework\Exception\StateException; /** * Magento Version controller From c224ad068186e3398ec7f048352f19f648fdbb58 Mon Sep 17 00:00:00 2001 From: Danny Verkade Date: Thu, 3 May 2018 20:26:06 +0200 Subject: [PATCH 433/555] Fix for displaying a negative price for a custom option. Currently a negative price is displayed as +- 5.00 for instance. By changing the template to check of the value is actually positive a negative value will be displayed as - 5.00 and a positive value will be displayed as + 5.00 --- app/code/Magento/Catalog/view/base/web/js/price-options.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/base/web/js/price-options.js b/app/code/Magento/Catalog/view/base/web/js/price-options.js index cbd8ab95618c1..d66c9593c806c 100644 --- a/app/code/Magento/Catalog/view/base/web/js/price-options.js +++ b/app/code/Magento/Catalog/view/base/web/js/price-options.js @@ -19,8 +19,10 @@ define([ optionConfig: {}, optionHandlers: {}, optionTemplate: '<%= data.label %>' + - '<% if (data.finalPrice.value) { %>' + + '<% if (data.finalPrice.value > 0) { %>' + ' +<%- data.finalPrice.formatted %>' + + '<% } else if (data.finalPrice.value < 0) { %>' + + ' <%- data.finalPrice.formatted %>' + '<% } %>', controlContainer: 'dd' }; From 07dae799939753fdceef2e9c0c90565b13a16b53 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 15 May 2018 15:10:56 +0200 Subject: [PATCH 434/555] Translate action Label --- .../adminhtml/templates/system/config/form/field/array.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Config/view/adminhtml/templates/system/config/form/field/array.phtml b/app/code/Magento/Config/view/adminhtml/templates/system/config/form/field/array.phtml index 0c2045cbe5232..6ba13ad68e6ca 100644 --- a/app/code/Magento/Config/view/adminhtml/templates/system/config/form/field/array.phtml +++ b/app/code/Magento/Config/view/adminhtml/templates/system/config/form/field/array.phtml @@ -21,7 +21,7 @@ $_colspan = $block->isAddAfter() ? 2 : 1; getColumns() as $columnName => $column): ?>

      - + From b75179297c8a47d882500734bef231c8a10835b3 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 15 May 2018 15:23:13 +0200 Subject: [PATCH 435/555] Fixed datepicker problem when using non en-US locale. --- lib/web/mage/utils/misc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web/mage/utils/misc.js b/lib/web/mage/utils/misc.js index 708c1b46079d6..a229412b38396 100644 --- a/lib/web/mage/utils/misc.js +++ b/lib/web/mage/utils/misc.js @@ -245,7 +245,7 @@ define([ convertToMomentFormat: function (format) { var newFormat; - newFormat = format.replace(/yy|y/gi, 'YYYY'); // replace the year + newFormat = format.replace(/yyyy|yy|y/, 'YYYY'); // replace the year newFormat = newFormat.replace(/dd|d/g, 'DD'); // replace the day return newFormat; From 999441026773178bb6b8b7aa422c5828cc78164c Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Tue, 15 May 2018 20:47:02 +0300 Subject: [PATCH 436/555] Fix typo in design rule hint message --- .../Backend/view/adminhtml/web/template/dynamic-rows/grid.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html index 40a275ed6a98e..0b785aa9984aa 100644 --- a/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html +++ b/app/code/Magento/Backend/view/adminhtml/web/template/dynamic-rows/grid.html @@ -85,7 +85,7 @@
      + translate="'Search strings are either normal strings or regular expressions (PCRE). They are matched in the same order as entered.'">
      : From 0c2e4961bb9f8532e400720370a3cfdce982fe99 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Tue, 15 May 2018 21:20:58 +0300 Subject: [PATCH 437/555] Add missing translations in Magento_UI --- app/code/Magento/Ui/i18n/en_US.csv | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/code/Magento/Ui/i18n/en_US.csv b/app/code/Magento/Ui/i18n/en_US.csv index f7f5b845ef8b6..109bebf1c836a 100644 --- a/app/code/Magento/Ui/i18n/en_US.csv +++ b/app/code/Magento/Ui/i18n/en_US.csv @@ -109,3 +109,25 @@ Ok,Ok Action,Action CSV,CSV "Excel XML","Excel XML" +"Please select one of the options above.","Please select one of the options above." +"Please select a file.","Please select a file." +"Please select one of the options.","Please select one of the options." +"Please enter a value less than or equal to %s.","Please enter a value less than or equal to %s." +"Please enter a value greater than or equal to %s.","Please enter a value greater than or equal to %s." +"Card type does not match credit card number.","Card type does not match credit card number." +"Credit card number does not match credit card type.","Credit card number does not match credit card type." +"Incorrect credit card expiration date.","Incorrect credit card expiration date." +"Please enter less or equal than %1 symbols.","Please enter less or equal than %1 symbols." +"Please enter more or equal than %1 symbols.","Please enter more or equal than %1 symbols." +"Please enter a valid value from list","Please enter a valid value from list" +"Please enter valid SKU key.","Please enter valid SKU key." +"Please enter a valid number.","Please enter a valid number." +"Admin is a required field in the each row.","Admin is a required field in the each row." +"Please fix this field.","Please fix this field." +"Please enter a valid date (ISO).","Please enter a valid date (ISO)." +"Please enter only digits.","Please enter only digits." +"Please enter the same value again.","Please enter the same value again." +"Please enter no more than {0} characters.","Please enter no more than {0} characters." +"Please enter at least {0} characters.","Please enter at least {0} characters." +"Please enter a value between {0} and {1} characters long.","Please enter a value between {0} and {1} characters long." +"Please enter a value between {0} and {1}.","Please enter a value between {0} and {1}." From d41e2c535be3805b9fbc209dfde3459cd7ce3b0b Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Tue, 15 May 2018 21:34:43 +0300 Subject: [PATCH 438/555] Fixed double space typo --- app/code/Magento/Paypal/i18n/en_US.csv | 2 +- .../templates/system/config/payflowlink/advanced.phtml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Paypal/i18n/en_US.csv b/app/code/Magento/Paypal/i18n/en_US.csv index 56ec49f4eb0d4..4686c4a9004f3 100644 --- a/app/code/Magento/Paypal/i18n/en_US.csv +++ b/app/code/Magento/Paypal/i18n/en_US.csv @@ -348,7 +348,7 @@ expires,expires here,here " to learn more."," to learn more." "Important: ","Important: " -"To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website.","To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website." +"To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website.","To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website." "Once you log into your PayPal Advanced account, navigate to the Service Settings - Hosted Checkout Pages - Set Up menu and set the options described below","Once you log into your PayPal Advanced account, navigate to the Service Settings - Hosted Checkout Pages - Set Up menu and set the options described below" "To use PayPal Payflow Link, you must configure your PayPal Payflow Link account on the PayPal website.","To use PayPal Payflow Link, you must configure your PayPal Payflow Link account on the PayPal website." "Once you log into your PayPal Payflow Link account, navigate to the Service Settings - Hosted Checkout Pages - Set Up menu and set the options described below","Once you log into your PayPal Payflow Link account, navigate to the Service Settings - Hosted Checkout Pages - Set Up menu and set the options described below" diff --git a/app/code/Magento/Paypal/view/adminhtml/templates/system/config/payflowlink/advanced.phtml b/app/code/Magento/Paypal/view/adminhtml/templates/system/config/payflowlink/advanced.phtml index 6442ce7c81921..00f9b5e969634 100644 --- a/app/code/Magento/Paypal/view/adminhtml/templates/system/config/payflowlink/advanced.phtml +++ b/app/code/Magento/Paypal/view/adminhtml/templates/system/config/payflowlink/advanced.phtml @@ -12,7 +12,7 @@

      escapeHtml(__('Important: ')); ?> - escapeHtml(__('To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website.')); ?> + escapeHtml(__('To use PayPal Payments Advanced, you must configure your PayPal Payments Advanced account on the PayPal website.')); ?> escapeHtml(__('Once you log into your PayPal Advanced account, navigate to the Service Settings - Hosted Checkout Pages - Set Up menu and set the options described below')); ?>

        From 76c44636eb03efe7b9230cebdc9a86c0d23b327d Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Tue, 15 May 2018 22:50:35 +0300 Subject: [PATCH 439/555] Changed constructor typo in Javascript class --- .../Magento/Ui/view/base/web/js/lib/core/class.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/class.js b/app/code/Magento/Ui/view/base/web/js/lib/core/class.js index aae3ca31bf803..5bfa87e650271 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/class.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/class.js @@ -27,12 +27,12 @@ define([ * Creates constructor function which allows * initialization without usage of a 'new' operator. * - * @param {Object} protoProps - Prototypal propeties of a new consturctor. - * @param {Function} consturctor - * @returns {Function} Created consturctor. + * @param {Object} protoProps - Prototypal properties of a new constructor. + * @param {Function} constructor + * @returns {Function} Created constructor. */ - function createConstructor(protoProps, consturctor) { - var UiClass = consturctor; + function createConstructor(protoProps, constructor) { + var UiClass = constructor; if (!UiClass) { @@ -61,7 +61,7 @@ define([ Class = createConstructor({ /** - * Entry point to the initialization of consturctors' instance. + * Entry point to the initialization of constructors' instance. * * @param {Object} [options={}] * @returns {Class} Chainable. From 59806705d83290d119de4cf77c0a6fd833156722 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Tue, 15 May 2018 23:14:06 +0300 Subject: [PATCH 440/555] Fixed php notice when invalid ui_component config is used --- .../Magento/Framework/ObjectManager/Factory/AbstractFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php index b26a4339a9f52..1445ba4d36d7a 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php @@ -127,12 +127,12 @@ protected function createObject($type, $args) protected function resolveArgument(&$argument, $paramType, $paramDefault, $paramName, $requestedType) { if ($paramType && $argument !== $paramDefault && !is_object($argument)) { - $argumentType = $argument['instance']; if (!isset($argument['instance']) || $argument !== (array)$argument) { throw new \UnexpectedValueException( 'Invalid parameter configuration provided for $' . $paramName . ' argument of ' . $requestedType ); } + $argumentType = $argument['instance']; if (isset($argument['shared'])) { $isShared = $argument['shared']; From 3d3f9227af16373e08775108d5e6c5c3e7204582 Mon Sep 17 00:00:00 2001 From: Yuriy Tkachenko Date: Wed, 16 May 2018 06:32:39 +0300 Subject: [PATCH 441/555] Remove unused namespace from ui export --- app/code/Magento/Ui/Model/Export/ConvertToCsv.php | 3 +-- app/code/Magento/Ui/Model/Export/ConvertToXml.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Ui/Model/Export/ConvertToCsv.php b/app/code/Magento/Ui/Model/Export/ConvertToCsv.php index 9eba829982533..e8136c7520054 100644 --- a/app/code/Magento/Ui/Model/Export/ConvertToCsv.php +++ b/app/code/Magento/Ui/Model/Export/ConvertToCsv.php @@ -8,7 +8,6 @@ use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filesystem; -use Magento\Framework\Filesystem\Directory\WriteInterface; use Magento\Ui\Component\MassAction\Filter; /** @@ -17,7 +16,7 @@ class ConvertToCsv { /** - * @var WriteInterface + * @var DirectoryList */ protected $directory; diff --git a/app/code/Magento/Ui/Model/Export/ConvertToXml.php b/app/code/Magento/Ui/Model/Export/ConvertToXml.php index 58c3419e95312..8f06193740cfc 100644 --- a/app/code/Magento/Ui/Model/Export/ConvertToXml.php +++ b/app/code/Magento/Ui/Model/Export/ConvertToXml.php @@ -12,7 +12,6 @@ use Magento\Framework\Convert\ExcelFactory; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filesystem; -use Magento\Framework\Filesystem\Directory\WriteInterface; use Magento\Ui\Component\MassAction\Filter; /** @@ -21,7 +20,7 @@ class ConvertToXml { /** - * @var WriteInterface + * @var DirectoryList */ protected $directory; From bf18e7a5b5d8cf7c81e308d25049209b8e0efb90 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Thu, 17 May 2018 22:17:06 +0300 Subject: [PATCH 442/555] Fix typo in database column comment --- app/code/Magento/Catalog/Setup/InstallSchema.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Setup/InstallSchema.php b/app/code/Magento/Catalog/Setup/InstallSchema.php index d82f595600ce2..2307e848f00b4 100644 --- a/app/code/Magento/Catalog/Setup/InstallSchema.php +++ b/app/code/Magento/Catalog/Setup/InstallSchema.php @@ -674,7 +674,7 @@ public function install(SchemaSetupInterface $setup, ModuleContextInterface $con \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT, null, ['unsigned' => true, 'nullable' => false, 'default' => '0'], - 'Attriute Set ID' + 'Attribute Set ID' ) ->addColumn( 'parent_id', From a5e014a5a5576dabb042acbf15410844993800e7 Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Fri, 18 May 2018 08:34:52 +0300 Subject: [PATCH 443/555] [Backport] Fix typos in variable names --- .../_files/notifications.php | 28 +++++++++---------- .../Framework/Mview/View/ChangelogTest.php | 4 +-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/AdminNotification/_files/notifications.php b/dev/tests/integration/testsuite/Magento/AdminNotification/_files/notifications.php index 8aaca8b0c8536..9a1819ad62218 100644 --- a/dev/tests/integration/testsuite/Magento/AdminNotification/_files/notifications.php +++ b/dev/tests/integration/testsuite/Magento/AdminNotification/_files/notifications.php @@ -4,34 +4,34 @@ * See COPYING.txt for license details. */ $om = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity( +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity( \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL )->setTitle( 'Unread Critical 1' )->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity(\Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR) +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity(\Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR) ->setTitle('Unread Major 1') ->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity( +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity( \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL )->setTitle( 'Unread Critical 2' )->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity( +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity( \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL )->setTitle( 'Unread Critical 3' )->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity( +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity( \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL )->setTitle( 'Read Critical 1' @@ -39,13 +39,13 @@ 1 )->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity(\Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR) +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity(\Magento\Framework\Notification\MessageInterface::SEVERITY_MAJOR) ->setTitle('Unread Major 2') ->save(); -$mesasge = $om->create('Magento\AdminNotification\Model\Inbox'); -$mesasge->setSeverity( +$message = $om->create('Magento\AdminNotification\Model\Inbox'); +$message->setSeverity( \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL )->setTitle( 'Removed Critical 1' diff --git a/dev/tests/integration/testsuite/Magento/Framework/Mview/View/ChangelogTest.php b/dev/tests/integration/testsuite/Magento/Framework/Mview/View/ChangelogTest.php index 8af3c8cfe1b7a..73b4d6a637ce5 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Mview/View/ChangelogTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Mview/View/ChangelogTest.php @@ -126,14 +126,14 @@ public function testGetList() $this->assertEquals(0, $this->model->getVersion()); //the same that a table is empty $changelogName = $this->resource->getTableName($this->model->getName()); - $testChengelogData = [ + $testChangelogData = [ ['version_id' => 1, 'entity_id' => 1], ['version_id' => 2, 'entity_id' => 1], ['version_id' => 3, 'entity_id' => 2], ['version_id' => 4, 'entity_id' => 3], ['version_id' => 5, 'entity_id' => 1], ]; - foreach ($testChengelogData as $data) { + foreach ($testChangelogData as $data) { $this->connection->insert($changelogName, $data); } $this->assertEquals(5, $this->model->getVersion()); From ee90e5406a6a15bb71c142cf3cb89ac0da5cdf01 Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Fri, 18 May 2018 08:53:41 +0300 Subject: [PATCH 444/555] [Backport] Fix typos in PHPDocs and comments --- .../Magento/Mtf/Client/Element/SimplifiedselectElement.php | 2 +- .../lib/Magento/Mtf/Client/Element/SwitcherElement.php | 2 +- .../Adminhtml/Product/Edit/Section/Attributes/Search.php | 2 +- .../Test/Constraint/AssertProductAttributeIsHtmlAllowed.php | 2 +- .../app/Magento/Catalog/Test/Fixture/Product/TierPrice.php | 2 +- .../app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php | 2 +- .../AssertBillingAddressSameAsShippingCheckbox.php | 2 +- .../Test/Constraint/AssertProductTierPriceOnProductPage.php | 2 +- .../Customer/Test/TestCase/AbstractApplyVatIdTest.php | 2 +- .../TestCase/ReAuthorizeTokensIntegrationEntityTest.php | 2 +- .../Adminhtml/Order/Create/CustomerActivities/Sidebar.php | 2 +- .../Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php | 2 +- .../Test/TestCase/CreateCustomOrderStatusEntityTest.php | 2 +- .../Constraint/AssertCartPriceRuleSuccessDeleteMessage.php | 2 +- .../tests/app/Magento/Theme/Test/Block/Html/Footer.php | 2 +- .../tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php | 2 +- .../tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php | 2 +- .../app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php | 4 ++-- .../Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php | 2 +- .../Widget/Test/Constraint/AssertWidgetCmsPageLink.php | 2 +- .../framework/Magento/TestFramework/Db/AbstractDb.php | 2 +- .../framework/Magento/TestFramework/Db/Mysql.php | 2 +- .../Magento/TestFramework/TestCase/AbstractConfigFiles.php | 2 +- .../testsuite/Magento/Catalog/Model/Product/TypeTest.php | 6 +++--- .../_files/product_export_with_product_links_data.php | 2 +- .../Magento/Framework/Data/Form/Element/FieldsetTest.php | 2 +- .../Magento/Search/Model/SearchEngine/ConfigTest.php | 2 +- .../static/framework/Magento/Sniffs/Less/ZeroUnitsSniff.php | 2 +- lib/internal/Magento/Framework/App/DeploymentConfig.php | 2 +- 29 files changed, 32 insertions(+), 32 deletions(-) diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php index c9f37e9c18945..3aa7010377fb4 100644 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php +++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SimplifiedselectElement.php @@ -21,7 +21,7 @@ class SimplifiedselectElement extends SelectElement protected $optionGroupValue = ".//*[@data-title='%s' or contains(normalize-space(.), %s)]"; /** - * Select value in ropdown which has option groups. + * Select value in dropdown which has option groups. * * @param string $value * @return void diff --git a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php index 6dce3d12a1fbe..36a203bb057e1 100644 --- a/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php +++ b/dev/tests/functional/lib/Magento/Mtf/Client/Element/SwitcherElement.php @@ -22,7 +22,7 @@ class SwitcherElement extends SimpleElement protected $parentContainer = 'parent::div[@data-role="switcher"]'; /** - * XPath selector for label text on swticher element. + * XPath selector for label text on switcher element. * * @var string */ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php index d17b06456c831..7b5bcf8060e2d 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Section/Attributes/Search.php @@ -37,7 +37,7 @@ class Search extends SuggestElement protected $actionToggle = '.action-toggle'; /** - * Saerch result dropdown. + * Search result dropdown. * * @var string */ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php index f1999498b96df..47a4ab7be3313 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertProductAttributeIsHtmlAllowed.php @@ -23,7 +23,7 @@ class AssertProductAttributeIsHtmlAllowed extends AbstractConstraint /** * Check whether html tags are using in attribute value. - * Checked tag structure atttribute_default_value

        + * Checked tag structure attribute_default_value

        * * @param InjectableFixture $product * @param CatalogProductAttribute $attribute diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php index 6ed4bbf4f5edb..1678e7a8dde02 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/TierPrice.php @@ -41,7 +41,7 @@ class TierPrice extends DataSource private $fixtureFactory; /** - * Rought fixture field data. + * Rough fixture field data. * * @var array */ diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php index 2bd71dbf4f8a6..57fe2bb59154f 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Fixture/Product/WebsiteIds.php @@ -37,7 +37,7 @@ class WebsiteIds extends DataSource private $fixtureFactory; /** - * Rought fixture field data. + * Rough fixture field data. * * @var array */ diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php index 3e889c058ee84..9a042ab13f048 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Constraint/AssertBillingAddressSameAsShippingCheckbox.php @@ -37,7 +37,7 @@ public function processAssert(CheckoutOnepage $checkoutOnepage, $billingCheckbox } /** - * Returns a string representation of successfull assertion. + * Returns a string representation of successful assertion. * * @return string */ diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php index e7fd0d73878e3..1b9a1f305f778 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertProductTierPriceOnProductPage.php @@ -10,7 +10,7 @@ use Magento\ConfigurableProduct\Test\Block\Product\View\ConfigurableOptions; /** - * Open created configurble product on frontend and choose variation with tier price. + * Open created configurable product on frontend and choose variation with tier price. */ class AssertProductTierPriceOnProductPage extends AssertProductPage { diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php index ac90ef43c915c..6ea4545594716 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/AbstractApplyVatIdTest.php @@ -76,7 +76,7 @@ public function __prepare(FixtureFactory $fixtureFactory) } /** - * Prepare VAT ID confguration. + * Prepare VAT ID configuration. * * @param ConfigData $vatConfig * @param string $customerGroup diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php index d94f5810c9865..e8417ba400ec5 100644 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Integration/Test/TestCase/ReAuthorizeTokensIntegrationEntityTest.php @@ -52,7 +52,7 @@ class ReAuthorizeTokensIntegrationEntityTest extends Injectable * * @param FixtureFactory $fixtureFactory * @param IntegrationIndex $integrationIndex - * @retun void + * @return void */ public function __inject(IntegrationIndex $integrationIndex, FixtureFactory $fixtureFactory) { diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php index 3cc8d07da393e..8e31f21ca3b89 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Create/CustomerActivities/Sidebar.php @@ -29,7 +29,7 @@ abstract class Sidebar extends Block protected $addToOrderProductName = './/tr/td[.="%s"]'; /** - * Add productz to order. + * Add products to order. * * @param array $products * @return void diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php index 2dc482b368424..da99481f43c70 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CancelCreatedOrderTest.php @@ -22,7 +22,7 @@ * 2. Sales > Orders. * 3. Open the created order. * 4. Do cancel Order. - * 5. Perform all assetions. + * 5. Perform all assertions. * * @group Order_Management_(CS) * @ZephyrId MAGETWO-28191 diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php index 18a3206db86e4..017597eeab94f 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateCustomOrderStatusEntityTest.php @@ -31,7 +31,7 @@ class CreateCustomOrderStatusEntityTest extends Injectable /* end tags */ /** - * Order staus page. + * Order status page. * * @var OrderStatusIndex */ diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php index 472218205cb4f..381de91030a61 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Constraint/AssertCartPriceRuleSuccessDeleteMessage.php @@ -10,7 +10,7 @@ use Magento\Mtf\Constraint\AbstractConstraint; /** - * Assert sales rule delte message. + * Assert sales rule delete message. */ class AssertCartPriceRuleSuccessDeleteMessage extends AbstractConstraint { diff --git a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php index 0bcf20b38801e..30842af0b020d 100644 --- a/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php +++ b/dev/tests/functional/tests/app/Magento/Theme/Test/Block/Html/Footer.php @@ -120,7 +120,7 @@ public function selectStoreGroup(Store $store) } /** - * Check if correspondent "Store" is present in "Store" swither or not. + * Check if correspondent "Store" is present in "Store" switcher or not. * * @param Store $store * @return bool 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 78b1c40c3b0a0..e4d5dd8618ade 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 @@ -339,7 +339,7 @@ public function selectMassAction($massActionSelection) } /** - * Peform action using the dropdown above the grid. + * Perform action using the dropdown above the grid. * * @param array|string $action [array -> key = value from first select; value => value from subselect] * @return void diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php index 605a5a114083e..01e2011fc750e 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php @@ -131,7 +131,7 @@ public function setAlertText($text) } /** - * Wait until modal window will disapper. + * Wait until modal window will disappear. * * @return void */ diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php index 21b258ea05732..b9321c54585ff 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/TestCase/GridFullTextSearchTest.php @@ -19,8 +19,8 @@ * Steps: * 1. Navigate to backend. * 2. Go to grid page - * 3. Perfrom full text search - * 5. Perform Asserts + * 3. Perform full text search + * 4. Perform Asserts * * @group Ui_(CS) * @ZephyrId MAGETWO-41330 diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php index 114709becde6f..988229d308250 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Block/Adminhtml/Catalog/Edit/UrlRewriteForm.php @@ -39,7 +39,7 @@ protected function prepareData(FixtureInterface $fixture) * * @param array $data * @param SimpleElement $context - * @retun void + * @return void */ protected function fillFields(array $data, SimpleElement $context) { diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php index 7c4b05526fe66..52dfc910e1292 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php @@ -12,7 +12,7 @@ use Magento\Mtf\Constraint\AbstractConstraint; /** - * Check that created widget displayed on frontent on Home page and on Advanced Search and + * Check that created widget displayed on frontend on Home page and on Advanced Search and * after click on widget link on frontend system redirects you to cms page. */ class AssertWidgetCmsPageLink extends AbstractConstraint diff --git a/dev/tests/integration/framework/Magento/TestFramework/Db/AbstractDb.php b/dev/tests/integration/framework/Magento/TestFramework/Db/AbstractDb.php index 949d17ffb5f66..a15bdec6157a3 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Db/AbstractDb.php +++ b/dev/tests/integration/framework/Magento/TestFramework/Db/AbstractDb.php @@ -84,7 +84,7 @@ abstract public function cleanup(); abstract protected function getSetupDbDumpFilename(); /** - * Is dump esxists + * Is dump exists * * @return bool */ diff --git a/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php b/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php index d84511db358c7..a986d6a5a4abf 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php +++ b/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php @@ -70,7 +70,7 @@ protected function getSetupDbDumpFilename() } /** - * Is dump esxists + * Is dump exists * * @return bool */ diff --git a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php index 77dbe90c4573a..d4ab07aa94677 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php +++ b/dev/tests/integration/framework/Magento/TestFramework/TestCase/AbstractConfigFiles.php @@ -47,7 +47,7 @@ public function setUp() 'Magento\Framework\App\Arguments\FileResolver\Primary' )->disableOriginalConstructor()->getMock(); - /* Enable Validation regardles of MAGE_MODE */ + /* Enable Validation regardless of MAGE_MODE */ $validateStateMock = $this->getMockBuilder( 'Magento\Framework\Config\ValidationStateInterface' )->disableOriginalConstructor()->getMock(); diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/TypeTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/TypeTest.php index 516f67b234d4b..4b0d60ca3d8c6 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/TypeTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/TypeTest.php @@ -20,7 +20,7 @@ protected function setUp() } /** - * @param sring|null $typeId + * @param string|null $typeId * @param string $expectedClass * @dataProvider factoryDataProvider */ @@ -52,7 +52,7 @@ public function factoryDataProvider() } /** - * @param sring|null $typeId + * @param string|null $typeId * @dataProvider factoryReturnsSingletonDataProvider */ public function testFactoryReturnsSingleton($typeId) @@ -82,7 +82,7 @@ public function factoryReturnsSingletonDataProvider() } /** - * @param sring|null $typeId + * @param string|null $typeId * @param string $expectedClass * @dataProvider priceFactoryDataProvider */ diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/_files/product_export_with_product_links_data.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/_files/product_export_with_product_links_data.php index 040acf3b431a0..10ba3d30fab3b 100644 --- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/_files/product_export_with_product_links_data.php +++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/_files/product_export_with_product_links_data.php @@ -7,7 +7,7 @@ require dirname(dirname(__DIR__)) . '/Catalog/_files/category.php'; /** Create fixture store */ require dirname(dirname(__DIR__)) . '/Store/_files/second_store.php'; -/** Create product with mulselect attribute */ +/** Create product with multiselect attribute */ require dirname(dirname(__DIR__)) . '/Catalog/_files/products_with_multiselect_attribute.php'; $productModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Catalog\Model\Product'); diff --git a/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/FieldsetTest.php b/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/FieldsetTest.php index fc26b7b520abf..2f93cabbdd501 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/FieldsetTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Data/Form/Element/FieldsetTest.php @@ -246,7 +246,7 @@ public function getSubFieldsetDataProvider() $fieldsetField = $textField; $fieldsetField[1] = 'fieldset'; $advancedFieldsetFld = $fieldsetField; - // set isAdvenced flag + // set isAdvanced flag $advancedFieldsetFld[4] = true; $result = [[[$fieldsetField, $textField, $advancedFieldsetFld], 1]]; return $result; diff --git a/dev/tests/integration/testsuite/Magento/Search/Model/SearchEngine/ConfigTest.php b/dev/tests/integration/testsuite/Magento/Search/Model/SearchEngine/ConfigTest.php index a1561bac90a22..2036a02766321 100644 --- a/dev/tests/integration/testsuite/Magento/Search/Model/SearchEngine/ConfigTest.php +++ b/dev/tests/integration/testsuite/Magento/Search/Model/SearchEngine/ConfigTest.php @@ -17,7 +17,7 @@ protected function setUp() $xmlPath = __DIR__ . '/../../_files/search_engine.xml'; $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - // Clear out the clache + // Clear out the cache $cacheManager = $objectManager->create('Magento\Framework\App\Cache\Manager'); /** @var \Magento\Framework\App\Cache\Manager $cacheManager */ $cacheManager->clean($cacheManager->getAvailableTypes()); diff --git a/dev/tests/static/framework/Magento/Sniffs/Less/ZeroUnitsSniff.php b/dev/tests/static/framework/Magento/Sniffs/Less/ZeroUnitsSniff.php index ec47f338e4731..d838af96f656f 100644 --- a/dev/tests/static/framework/Magento/Sniffs/Less/ZeroUnitsSniff.php +++ b/dev/tests/static/framework/Magento/Sniffs/Less/ZeroUnitsSniff.php @@ -25,7 +25,7 @@ class ZeroUnitsSniff implements PHP_CodeSniffer_Sniff const CSS_PROPERTY_UNIT_REM = 'rem'; /** - * List of available CSS Propery units + * List of available CSS Property units * * @var array */ diff --git a/lib/internal/Magento/Framework/App/DeploymentConfig.php b/lib/internal/Magento/Framework/App/DeploymentConfig.php index 0eebc1ca40a34..66c7ad00df1a7 100644 --- a/lib/internal/Magento/Framework/App/DeploymentConfig.php +++ b/lib/internal/Magento/Framework/App/DeploymentConfig.php @@ -115,7 +115,7 @@ public function resetData() } /** - * Check if data from deploy files is avaiable + * Check if data from deploy files is available * * @return bool */ From 3c2a747f75b6a496db8b686ec127c255f5acb483 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Fri, 18 May 2018 10:57:51 +0300 Subject: [PATCH 445/555] Fix copyright --- .../Magento/Framework/ObjectManager/Factory/AbstractFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php index 1445ba4d36d7a..a2dbae8c57e5c 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php +++ b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php @@ -1,6 +1,6 @@ Date: Fri, 18 May 2018 14:55:34 +0200 Subject: [PATCH 446/555] Eliminate usage of "else" statements. Code improvements --- .../Backend/Block/Widget/Grid/Column/Filter/Radio.php | 3 +-- .../Block/Widget/Grid/Massaction/AbstractMassaction.php | 6 ++---- .../Backend/Block/Widget/Grid/Massaction/Extended.php | 6 ++---- .../Magento/Backend/Controller/Adminhtml/Auth/Login.php | 3 +-- .../Backend/Controller/Adminhtml/System/Account/Save.php | 3 +-- .../Test/Unit/Model/Report/BraintreeTransactionStub.php | 5 ++--- .../Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php | 6 ++---- .../Block/Catalog/Product/View/Type/Bundle/Option.php | 3 +-- .../Magento/Bundle/Block/Sales/Order/Items/Renderer.php | 6 ++---- app/code/Magento/Bundle/Model/Plugin/PriceBackend.php | 3 +-- app/code/Magento/Bundle/Model/Product/Type.php | 3 +-- .../Bundle/Model/Sales/Order/Pdf/Items/AbstractItems.php | 6 ++---- app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php | 3 +-- .../Magento/Bundle/Pricing/Price/BundleSelectionPrice.php | 3 +-- app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php | 3 +-- 15 files changed, 21 insertions(+), 41 deletions(-) diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Radio.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Radio.php index 2cbe264c5f396..479a2b6b20293 100644 --- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Radio.php +++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Radio.php @@ -31,8 +31,7 @@ public function getCondition() { if ($this->getValue()) { return $this->getColumn()->getValue(); - } else { - return [['neq' => $this->getColumn()->getValue()], ['is' => new \Zend_Db_Expr('NULL')]]; } + return [['neq' => $this->getColumn()->getValue()], ['is' => new \Zend_Db_Expr('NULL')]]; } } diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Massaction/AbstractMassaction.php b/app/code/Magento/Backend/Block/Widget/Grid/Massaction/AbstractMassaction.php index 9ff5b4cab1953..d40e77f7f0580 100644 --- a/app/code/Magento/Backend/Block/Widget/Grid/Massaction/AbstractMassaction.php +++ b/app/code/Magento/Backend/Block/Widget/Grid/Massaction/AbstractMassaction.php @@ -205,9 +205,8 @@ public function getSelectedJson() if ($selected = $this->getRequest()->getParam($this->getFormFieldNameInternal())) { $selected = explode(',', $selected); return join(',', $selected); - } else { - return ''; } + return ''; } /** @@ -220,9 +219,8 @@ public function getSelected() if ($selected = $this->getRequest()->getParam($this->getFormFieldNameInternal())) { $selected = explode(',', $selected); return $selected; - } else { - return []; } + return []; } /** diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Massaction/Extended.php b/app/code/Magento/Backend/Block/Widget/Grid/Massaction/Extended.php index e4590410fc1e5..378368d9b92df 100644 --- a/app/code/Magento/Backend/Block/Widget/Grid/Massaction/Extended.php +++ b/app/code/Magento/Backend/Block/Widget/Grid/Massaction/Extended.php @@ -215,9 +215,8 @@ public function getSelectedJson() if ($selected = $this->getRequest()->getParam($this->getFormFieldNameInternal())) { $selected = explode(',', $selected); return join(',', $selected); - } else { - return ''; } + return ''; } /** @@ -230,9 +229,8 @@ public function getSelected() if ($selected = $this->getRequest()->getParam($this->getFormFieldNameInternal())) { $selected = explode(',', $selected); return $selected; - } else { - return []; } + return []; } /** diff --git a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php index 8b934e6760f63..588f3d1a8b827 100644 --- a/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php +++ b/app/code/Magento/Backend/Controller/Adminhtml/Auth/Login.php @@ -46,9 +46,8 @@ public function execute() // redirect according to rewrite rule if ($requestUrl != $backendUrl) { return $this->getRedirect($backendUrl); - } else { - return $this->resultPageFactory->create(); } + return $this->resultPageFactory->create(); } /** 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 3ff6ab635e2bc..ac73d3629083a 100644 --- a/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php +++ b/app/code/Magento/Backend/Controller/Adminhtml/System/Account/Save.php @@ -29,9 +29,8 @@ private function getSecurityCookie() { if (!($this->securityCookie instanceof SecurityCookie)) { return \Magento\Framework\App\ObjectManager::getInstance()->get(SecurityCookie::class); - } else { - return $this->securityCookie; } + return $this->securityCookie; } /** diff --git a/app/code/Magento/Braintree/Test/Unit/Model/Report/BraintreeTransactionStub.php b/app/code/Magento/Braintree/Test/Unit/Model/Report/BraintreeTransactionStub.php index 5c28b94ac9811..372415d3530c0 100644 --- a/app/code/Magento/Braintree/Test/Unit/Model/Report/BraintreeTransactionStub.php +++ b/app/code/Magento/Braintree/Test/Unit/Model/Report/BraintreeTransactionStub.php @@ -34,10 +34,9 @@ public function __get($name) { if (array_key_exists($name, $this->_attributes)) { return $this->_attributes[$name]; - } else { - trigger_error('Undefined property on ' . get_class($this) . ': ' . $name, E_USER_NOTICE); - return null; } + trigger_error('Undefined property on ' . get_class($this) . ': ' . $name, E_USER_NOTICE); + return null; } /** diff --git a/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php b/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php index e8efb593c441b..218814de99078 100644 --- a/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php +++ b/app/code/Magento/Bundle/Block/Adminhtml/Sales/Order/Items/Renderer.php @@ -62,9 +62,8 @@ public function getChildren($item) if (isset($itemsArray[$item->getOrderItem()->getId()])) { return $itemsArray[$item->getOrderItem()->getId()]; - } else { - return null; } + return null; } /** @@ -186,9 +185,8 @@ public function getOrderItem() { if ($this->getItem() instanceof \Magento\Sales\Model\Order\Item) { return $this->getItem(); - } else { - return $this->getItem()->getOrderItem(); } + return $this->getItem()->getOrderItem(); } /** diff --git a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php index d7f6f34b79b2f..b2ec246427afe 100644 --- a/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php +++ b/app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php @@ -174,9 +174,8 @@ public function isSelected($selection) return in_array($selection->getSelectionId(), $selectedOptions); } elseif ($selectedOptions == 'None') { return false; - } else { - return $selection->getIsDefault() && $selection->isSaleable(); } + return $selection->getIsDefault() && $selection->isSaleable(); } /** diff --git a/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php b/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php index 144115bee48d7..7932e41ef8d7e 100644 --- a/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php +++ b/app/code/Magento/Bundle/Block/Sales/Order/Items/Renderer.php @@ -114,9 +114,8 @@ public function getValueHtml($item) if ($attributes = $this->getSelectionAttributes($item)) { return sprintf('%d', $attributes['qty']) . ' x ' . $this->escapeHtml($item->getName()) . " " . $this->getOrder()->formatPrice($attributes['price']); - } else { - return $this->escapeHtml($item->getName()); } + return $this->escapeHtml($item->getName()); } /** @@ -151,9 +150,8 @@ public function getChildren($item) if (isset($itemsArray[$item->getOrderItem()->getId()])) { return $itemsArray[$item->getOrderItem()->getId()]; - } else { - return null; } + return null; } /** diff --git a/app/code/Magento/Bundle/Model/Plugin/PriceBackend.php b/app/code/Magento/Bundle/Model/Plugin/PriceBackend.php index f3c0548f76e5d..1914d5b5146c3 100644 --- a/app/code/Magento/Bundle/Model/Plugin/PriceBackend.php +++ b/app/code/Magento/Bundle/Model/Plugin/PriceBackend.php @@ -29,8 +29,7 @@ public function aroundValidate( && $object->getPriceType() == \Magento\Bundle\Model\Product\Price::PRICE_TYPE_DYNAMIC ) { return true; - } else { - return $proceed($object); } + return $proceed($object); } } diff --git a/app/code/Magento/Bundle/Model/Product/Type.php b/app/code/Magento/Bundle/Model/Product/Type.php index 58a0418ec3ebd..affabcb7be4f3 100644 --- a/app/code/Magento/Bundle/Model/Product/Type.php +++ b/app/code/Magento/Bundle/Model/Product/Type.php @@ -948,9 +948,8 @@ public function shakeSelections($firstItem, $secondItem) ]; if ($aPosition == $bPosition) { return 0; - } else { - return $aPosition < $bPosition ? -1 : 1; } + return $aPosition < $bPosition ? -1 : 1; } /** diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/AbstractItems.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/AbstractItems.php index dd126b874745d..6741f62fad884 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/AbstractItems.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/AbstractItems.php @@ -44,9 +44,8 @@ public function getChildren($item) if (isset($itemsArray[$item->getOrderItem()->getId()])) { return $itemsArray[$item->getOrderItem()->getId()]; - } else { - return null; } + return null; } /** @@ -196,9 +195,8 @@ public function getOrderItem() { if ($this->getItem() instanceof \Magento\Sales\Model\Order\Item) { return $this->getItem(); - } else { - return $this->getItem()->getOrderItem(); } + return $this->getItem()->getOrderItem(); } /** diff --git a/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php b/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php index 52d7f3a652f82..6d8b2105e9cf0 100644 --- a/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php +++ b/app/code/Magento/Bundle/Pricing/Adjustment/Calculator.php @@ -267,9 +267,8 @@ public function calculateBundleAmount($basePriceValue, $bundleProduct, $selectio { if ($bundleProduct->getPriceType() == Price::PRICE_TYPE_FIXED) { return $this->calculateFixedBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude); - } else { - return $this->calculateDynamicBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude); } + return $this->calculateDynamicBundleAmount($basePriceValue, $bundleProduct, $selectionPriceList, $exclude); } /** diff --git a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php index cdfe31358cc15..60245bef722c6 100644 --- a/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php +++ b/app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php @@ -163,8 +163,7 @@ public function getProduct() { if ($this->bundleProduct->getPriceType() == Price::PRICE_TYPE_DYNAMIC) { return parent::getProduct(); - } else { - return $this->bundleProduct; } + return $this->bundleProduct; } } diff --git a/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php b/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php index df63c9c03cbf6..4f2f35b076d82 100644 --- a/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php +++ b/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php @@ -124,9 +124,8 @@ public function getValue() $this->priceInfo ->getPrice(BundleDiscountPrice::PRICE_CODE) ->calculateDiscount($configuredOptionsAmount); - } else { - return parent::getValue(); } + return parent::getValue(); } /** From 02fc8c4a234c950ad780d13db2195bb462fe3d25 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Fri, 18 May 2018 15:50:18 +0200 Subject: [PATCH 447/555] Allow to configure min and max dates for date picker component --- lib/internal/Magento/Framework/Data/Form/Element/Date.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Date.php b/lib/internal/Magento/Framework/Data/Form/Element/Date.php index ef85876521d23..c4661c92e8c49 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Date.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Date.php @@ -167,6 +167,8 @@ public function getElementHtml() 'buttonImage' => $this->getImage(), 'buttonText' => 'Select Date', 'disabled' => $this->getDisabled(), + 'minDate' => $this->getMinDate(), + 'maxDate' => $this->getMaxDate(), ], ] ) From 1b2d726c6bc007e3d41852d891b5ca8a72a83c58 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Fri, 18 May 2018 16:44:29 +0200 Subject: [PATCH 448/555] Fixed readme minor typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc6bb678b23cb..aa83b880ca38d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Open Source Helpers](https://www.codetriage.com/magento/magento2/badges/users.svg)](https://www.codetriage.com/magento/magento2) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/magento/magento2?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)

        Welcome

        -Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a cutting edge, feature-rich eCommerce solution that gets results. +Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a cutting-edge, feature-rich eCommerce solution that gets results. The installation instructions that used to be here are now published on our GitHub site. Use the information on this page to get started or go directly to the guide. From d5694d3842cf4f2f58f2c4f1c327cbd4974c163f Mon Sep 17 00:00:00 2001 From: Sviatoslav Mankivskyi Date: Fri, 18 May 2018 13:46:26 -0500 Subject: [PATCH 449/555] MAGETWO-91894: Backport Static Test Fixes in CE --- .../testsuite/Magento/Test/Less/_files/whitelist/common.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Less/_files/whitelist/common.txt b/dev/tests/static/testsuite/Magento/Test/Less/_files/whitelist/common.txt index 4e4fbefd7871d..b956b972bc5a3 100644 --- a/dev/tests/static/testsuite/Magento/Test/Less/_files/whitelist/common.txt +++ b/dev/tests/static/testsuite/Magento/Test/Less/_files/whitelist/common.txt @@ -1,2 +1,2 @@ -theme * / -library * / \ No newline at end of file +# Format: or simply +* * / \ No newline at end of file From 11c90810c625dff047cddd2f7f57cb8af8fc5eed Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sat, 19 May 2018 13:04:20 +0300 Subject: [PATCH 450/555] Alignment Array assignment --- app/code/Magento/Store/Setup/InstallSchema.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Store/Setup/InstallSchema.php b/app/code/Magento/Store/Setup/InstallSchema.php index 5f04bc07ce66c..d1048c95919f6 100644 --- a/app/code/Magento/Store/Setup/InstallSchema.php +++ b/app/code/Magento/Store/Setup/InstallSchema.php @@ -270,7 +270,13 @@ public function install(SchemaSetupInterface $setup, ModuleContextInterface $con */ $connection->insertForce( $installer->getTable('store_group'), - ['group_id' => 0, 'website_id' => 0, 'name' => 'Default', 'root_category_id' => 0, 'default_store_id' => 0] + [ + 'group_id' => 0, + 'website_id' => 0, + 'name' => 'Default', + 'root_category_id' => 0, + 'default_store_id' => 0 + ] ); $connection->insertForce( $installer->getTable('store_group'), From 27e74b97261ec4c6e6a494b3d30d7b46ce6cfec8 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sat, 19 May 2018 14:56:15 +0300 Subject: [PATCH 451/555] Fix typo in securityCheckers array --- app/code/Magento/Security/etc/adminhtml/di.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Security/etc/adminhtml/di.xml b/app/code/Magento/Security/etc/adminhtml/di.xml index c1188c2d405cf..79477e9443097 100644 --- a/app/code/Magento/Security/etc/adminhtml/di.xml +++ b/app/code/Magento/Security/etc/adminhtml/di.xml @@ -24,7 +24,7 @@ Magento\Security\Model\SecurityChecker\Frequency - Magento\Security\Model\SecurityChecker\Quantity + Magento\Security\Model\SecurityChecker\Quantity From e74bea128e7dcd48945dba24568f705050de4c8c Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sat, 19 May 2018 15:05:41 +0300 Subject: [PATCH 452/555] Typo in SSL port number --- pub/errors/processor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pub/errors/processor.php b/pub/errors/processor.php index ee947320e0569..231c13dcfe0c4 100644 --- a/pub/errors/processor.php +++ b/pub/errors/processor.php @@ -256,7 +256,7 @@ public function getHostUrl() $isSecure = (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] != 'off'); $url = ($isSecure ? 'https://' : 'http://') . $host; - if (!empty($_SERVER['SERVER_PORT']) && !in_array($_SERVER['SERVER_PORT'], [80, 433]) + if (!empty($_SERVER['SERVER_PORT']) && !in_array($_SERVER['SERVER_PORT'], [80, 443]) && !preg_match('/.*?\:[0-9]+$/', $url) ) { $url .= ':' . $_SERVER['SERVER_PORT']; From d8fd4ee6797a22e6ddb6c9f7183786da89e0d933 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sat, 19 May 2018 15:51:07 +0300 Subject: [PATCH 453/555] Fix incorrect phpdoc return type --- .../Model/ResourceModel/Collection/AbstractCollection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php b/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php index d329ca6f51572..1791a4e0ef371 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php @@ -137,7 +137,7 @@ public function getDefaultStoreId() * * @param string $table * @param array|int $attributeIds - * @return \Magento\Eav\Model\Entity\Collection\AbstractCollection + * @return \Magento\Framework\Db\Select */ protected function _getLoadAttributesSelect($table, $attributeIds = []) { From 2a547a2381b0253ff513bfff2581c212841b8965 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sat, 19 May 2018 18:33:06 +0300 Subject: [PATCH 454/555] Unused variable removed --- lib/web/css/source/lib/variables/_typography.less | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/web/css/source/lib/variables/_typography.less b/lib/web/css/source/lib/variables/_typography.less index aae7997478545..bf88990fe05c8 100644 --- a/lib/web/css/source/lib/variables/_typography.less +++ b/lib/web/css/source/lib/variables/_typography.less @@ -12,7 +12,6 @@ // --------------------------------------------- // Path -@font-path: "../../fonts/"; @icons__font-path: "@{baseDir}fonts/Blank-Theme-Icons/Blank-Theme-Icons"; // Names From 5e6d1b2f3829e58e767a4f3fbcc4beecc6c8ae82 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov Date: Sun, 20 May 2018 08:39:45 +0300 Subject: [PATCH 455/555] Fix typos in PHPDocs and comments --- .../Model/ResourceModel/Collection/AbstractCollection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php b/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php index 1791a4e0ef371..188167b7c609f 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Collection/AbstractCollection.php @@ -137,7 +137,7 @@ public function getDefaultStoreId() * * @param string $table * @param array|int $attributeIds - * @return \Magento\Framework\Db\Select + * @return \Magento\Framework\DB\Select */ protected function _getLoadAttributesSelect($table, $attributeIds = []) { From 37235814fafa230472df4da891405cbaa1530c7f Mon Sep 17 00:00:00 2001 From: Igor Vitol Date: Tue, 8 May 2018 14:01:47 +0300 Subject: [PATCH 456/555] Add 'const' type support to layout arguments --- app/code/Magento/Ui/etc/di.xml | 1 + .../Magento/Framework/View/Layout/etc/layout_merged.xsd | 6 ++++++ .../Framework/View/Layout/etc/page_configuration.xsd | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/app/code/Magento/Ui/etc/di.xml b/app/code/Magento/Ui/etc/di.xml index bb29515777576..3b9803b72e26d 100644 --- a/app/code/Magento/Ui/etc/di.xml +++ b/app/code/Magento/Ui/etc/di.xml @@ -197,6 +197,7 @@ + Magento\Framework\Data\Argument\Interpreter\Constant configurableObjectArgumentInterpreterProxy configurableObjectArgumentInterpreterProxy arrayArgumentInterpreterProxy diff --git a/lib/internal/Magento/Framework/View/Layout/etc/layout_merged.xsd b/lib/internal/Magento/Framework/View/Layout/etc/layout_merged.xsd index 8ecc51f3010b8..92332b76345c9 100644 --- a/lib/internal/Magento/Framework/View/Layout/etc/layout_merged.xsd +++ b/lib/internal/Magento/Framework/View/Layout/etc/layout_merged.xsd @@ -62,4 +62,10 @@ + + + + + + diff --git a/lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd b/lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd index 397b71fe70825..09ad246b3a64d 100644 --- a/lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd +++ b/lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd @@ -32,4 +32,10 @@ + + + + + + From 3c89d4541f9cb1ead751dc8289c16492f0c0e4f0 Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Sun, 20 May 2018 23:03:26 +0300 Subject: [PATCH 457/555] [Backport] Remove non-existing argument --- app/code/Magento/Translation/Block/Html/Head/Config.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/code/Magento/Translation/Block/Html/Head/Config.php b/app/code/Magento/Translation/Block/Html/Head/Config.php index 4001929191072..1a1f2d6942cdf 100644 --- a/app/code/Magento/Translation/Block/Html/Head/Config.php +++ b/app/code/Magento/Translation/Block/Html/Head/Config.php @@ -31,7 +31,6 @@ class Config extends \Magento\Framework\View\Element\AbstractBlock /** * @param \Magento\Framework\View\Element\Context $context - * @param RequireJsConfig $config * @param \Magento\Framework\View\Page\Config $pageConfig * @param \Magento\Translation\Model\FileManager $fileManager * @param Inline $inline From 2c31e4d89ca1e3af89e224cbd355f50861d7b615 Mon Sep 17 00:00:00 2001 From: NamrataChangani Date: Fri, 18 May 2018 14:30:35 +0530 Subject: [PATCH 458/555] Fixed typo mistake in function comment --- app/code/Magento/Theme/Model/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Theme/Model/Config.php b/app/code/Magento/Theme/Model/Config.php index 57efe43db3d7c..bbf9677afdcb2 100644 --- a/app/code/Magento/Theme/Model/Config.php +++ b/app/code/Magento/Theme/Model/Config.php @@ -124,7 +124,7 @@ protected function _getAssignedScopesCollection($scope, $configPath) } /** - * Unassign given theme from stores that were unchecked + * Unassigned given theme from stores that were unchecked * * @param string $themeId * @param array $stores From 32c4a337aa4613731c9776e713b075621d23f8ae Mon Sep 17 00:00:00 2001 From: NamrataChangani Date: Fri, 18 May 2018 16:21:11 +0530 Subject: [PATCH 459/555] Removed extra added space in function comment and fixed typo mistakes. --- app/code/Magento/Paypal/Model/Api/Nvp.php | 6 +++--- .../blank/Magento_ProductVideo/web/css/source/_module.less | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Paypal/Model/Api/Nvp.php b/app/code/Magento/Paypal/Model/Api/Nvp.php index b4417a33ffc46..dcc450a29fd47 100644 --- a/app/code/Magento/Paypal/Model/Api/Nvp.php +++ b/app/code/Magento/Paypal/Model/Api/Nvp.php @@ -1027,7 +1027,7 @@ public function callGetPalDetails() } /** - * Set Customer BillingA greement call + * Set Customer BillingAgreement call * * @return void * @link https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_SetCustomerBillingAgreement @@ -1418,7 +1418,7 @@ protected function _deformatNVP($nvpstr) $nvpstr = strpos($nvpstr, "\r\n\r\n") !== false ? substr($nvpstr, strpos($nvpstr, "\r\n\r\n") + 4) : $nvpstr; while (strlen($nvpstr)) { - //postion of Key + //position of Key $keypos = strpos($nvpstr, '='); //position of value $valuepos = strpos($nvpstr, '&') ? strpos($nvpstr, '&') : strlen($nvpstr); @@ -1426,7 +1426,7 @@ protected function _deformatNVP($nvpstr) /*getting the Key and Value values and storing in a Associative Array*/ $keyval = substr($nvpstr, $intial, $keypos); $valval = substr($nvpstr, $keypos + 1, $valuepos - $keypos - 1); - //decoding the respose + //decoding the response $nvpArray[urldecode($keyval)] = urldecode($valval); $nvpstr = substr($nvpstr, $valuepos + 1, strlen($nvpstr)); } 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 f2fae8eca9177..f7ab944cc1953 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 @@ -91,8 +91,8 @@ // @TODO UI: check possibility to use .media-width() mixin @media only screen -and (min-device-width: 320px) -and (max-device-width: 780px) +and (min-device-width: @screen__xxs) +and (max-device-width: @screen__m) and (orientation: landscape) { .product-video { height: 100%; From c13e1fd2daeaf0538eac92a30c3d673e8c9ad5c2 Mon Sep 17 00:00:00 2001 From: Namrata <37930646+NamrataChangani@users.noreply.github.com> Date: Fri, 18 May 2018 16:34:59 +0530 Subject: [PATCH 460/555] Revert back file changes --- .../blank/Magento_ProductVideo/web/css/source/_module.less | 4 ++-- 1 file changed, 2 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 f7ab944cc1953..f2fae8eca9177 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 @@ -91,8 +91,8 @@ // @TODO UI: check possibility to use .media-width() mixin @media only screen -and (min-device-width: @screen__xxs) -and (max-device-width: @screen__m) +and (min-device-width: 320px) +and (max-device-width: 780px) and (orientation: landscape) { .product-video { height: 100%; From 07e3a8fe9f1e8237fe18e56bbb7907a130e27803 Mon Sep 17 00:00:00 2001 From: NamrataChangani Date: Fri, 18 May 2018 17:26:18 +0530 Subject: [PATCH 461/555] Revert back file changes. --- app/code/Magento/Theme/Model/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Theme/Model/Config.php b/app/code/Magento/Theme/Model/Config.php index bbf9677afdcb2..57efe43db3d7c 100644 --- a/app/code/Magento/Theme/Model/Config.php +++ b/app/code/Magento/Theme/Model/Config.php @@ -124,7 +124,7 @@ protected function _getAssignedScopesCollection($scope, $configPath) } /** - * Unassigned given theme from stores that were unchecked + * Unassign given theme from stores that were unchecked * * @param string $themeId * @param array $stores From e8087c5569b32d193801f63fa2c9fd02f10c6a29 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Mon, 21 May 2018 14:39:22 +0200 Subject: [PATCH 462/555] Fix to allow use decimals less then 1 in subproducts qty --- lib/web/mage/validation/validation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web/mage/validation/validation.js b/lib/web/mage/validation/validation.js index 448df0c71aed6..349a01269e4fa 100644 --- a/lib/web/mage/validation/validation.js +++ b/lib/web/mage/validation/validation.js @@ -25,7 +25,7 @@ var val = $(e).val(); if (val && val.length > 0) { result = true; - var valInt = parseInt(val, 10) || 0; + var valInt = parseFloat(val) || 0; if (valInt >= 0) { total += valInt; } else { From 47dc21025f5045b0f4f18b9c6ff4e69022bfe259 Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Mon, 21 May 2018 21:50:55 +0300 Subject: [PATCH 463/555] Fixed typo in MagentoUi abstract.js --- app/code/Magento/Ui/view/base/web/js/form/element/abstract.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js index c07135b1f246a..a7f2fdbd7d090 100755 --- a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js @@ -205,7 +205,7 @@ define([ }, /** - * Sets 'value' as 'hidden' propertie's value, triggers 'toggle' event, + * Sets 'value' as 'hidden' property's value, triggers 'toggle' event, * sets instance's hidden identifier in params storage based on * 'value'. * From ec092def9dce169493d1f70741d32d66747a3df5 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 22 May 2018 17:58:19 +0200 Subject: [PATCH 464/555] Removed redundant else statement --- .../Model/Import/Product/Type/Configurable.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php index 38cca1bee6a6a..e895a739b1736 100644 --- a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php @@ -246,9 +246,8 @@ protected function _getSuperAttributeId($productId, $attributeId) { if (isset($this->_productSuperAttrs["{$productId}_{$attributeId}"])) { return $this->_productSuperAttrs["{$productId}_{$attributeId}"]; - } else { - return null; } + return null; } /** From d2a3b1c575fd4dad54e4df99d4ea07303f8f323a Mon Sep 17 00:00:00 2001 From: Yogesh Suhagiya Date: Sat, 19 May 2018 11:47:42 +0530 Subject: [PATCH 465/555] Added language translation for message string --- .../Controller/Adminhtml/System/Message/ListAction.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 68de06c1c22bd..6c9578a703987 100644 --- a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php +++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php @@ -61,8 +61,10 @@ public function execute() if (empty($result)) { $result[] = [ 'severity' => (string)\Magento\Framework\Notification\MessageInterface::SEVERITY_NOTICE, - 'text' => 'You have viewed and resolved all recent system notices. ' - . 'Please refresh the web page to clear the notice alert.', + 'text' => __( + 'You have viewed and resolved all recent system notices. ' + . 'Please refresh the web page to clear the notice alert.' + ) ]; } $this->getResponse()->representJson($this->jsonHelper->jsonEncode($result)); From 9d01d76afb05699c596063a1526341e3be05e17c Mon Sep 17 00:00:00 2001 From: Yogesh Suhagiya Date: Sat, 19 May 2018 12:49:56 +0530 Subject: [PATCH 466/555] Format the code --- .../Controller/Adminhtml/System/Message/ListAction.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 6c9578a703987..f74a2907b318f 100644 --- a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php +++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php @@ -61,10 +61,10 @@ public function execute() if (empty($result)) { $result[] = [ 'severity' => (string)\Magento\Framework\Notification\MessageInterface::SEVERITY_NOTICE, - 'text' => __( - 'You have viewed and resolved all recent system notices. ' - . 'Please refresh the web page to clear the notice alert.' - ) + 'text' => __( + 'You have viewed and resolved all recent system notices. ' + . 'Please refresh the web page to clear the notice alert.' + ) ]; } $this->getResponse()->representJson($this->jsonHelper->jsonEncode($result)); From 8efc333d8f595ece59cb12f00db204a652c1b101 Mon Sep 17 00:00:00 2001 From: Yogesh Suhagiya Date: Sun, 20 May 2018 09:14:03 +0530 Subject: [PATCH 467/555] Added language translation key --- app/code/Magento/AdminNotification/i18n/en_US.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/app/code/Magento/AdminNotification/i18n/en_US.csv b/app/code/Magento/AdminNotification/i18n/en_US.csv index 7b55e96976cad..bc157298a021a 100644 --- a/app/code/Magento/AdminNotification/i18n/en_US.csv +++ b/app/code/Magento/AdminNotification/i18n/en_US.csv @@ -49,3 +49,4 @@ Severity,Severity "Date Added","Date Added" Message,Message Actions,Actions +"You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert.","You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert." \ No newline at end of file From 002a7c09b18db57027fecebceebeb41743f85c88 Mon Sep 17 00:00:00 2001 From: Yogesh Suhagiya Date: Sun, 20 May 2018 09:15:52 +0530 Subject: [PATCH 468/555] Added language translation key --- app/code/Magento/AdminNotification/i18n/en_US.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/AdminNotification/i18n/en_US.csv b/app/code/Magento/AdminNotification/i18n/en_US.csv index bc157298a021a..8f780efa6c184 100644 --- a/app/code/Magento/AdminNotification/i18n/en_US.csv +++ b/app/code/Magento/AdminNotification/i18n/en_US.csv @@ -49,4 +49,4 @@ Severity,Severity "Date Added","Date Added" Message,Message Actions,Actions -"You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert.","You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert." \ No newline at end of file +"You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert.","You have viewed and resolved all recent system notices. Please refresh the web page to clear the notice alert." From 3d05e6b5361d28877ac97e7dfd264b8b5ccf6482 Mon Sep 17 00:00:00 2001 From: Jeroen Date: Tue, 8 May 2018 17:32:50 +0200 Subject: [PATCH 469/555] Don't recalculate tax for every price on category page --- app/code/Magento/Tax/Model/Config.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Tax/Model/Config.php b/app/code/Magento/Tax/Model/Config.php index 713b34c16d1f2..64f5b44803848 100644 --- a/app/code/Magento/Tax/Model/Config.php +++ b/app/code/Magento/Tax/Model/Config.php @@ -831,12 +831,12 @@ public function getInfoUrl($store = null) * If it necessary will be returned conversion type (minus or plus) * * @param null|int|string|Store $store - * @return bool + * @return bool|int * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function needPriceConversion($store = null) { - $res = false; + $res = 0; $priceIncludesTax = $this->priceIncludesTax($store) || $this->getNeedUseShippingExcludeTax(); if ($priceIncludesTax) { switch ($this->getPriceDisplayType($store)) { @@ -844,7 +844,7 @@ public function needPriceConversion($store = null) case self::DISPLAY_TYPE_BOTH: return self::PRICE_CONVERSION_MINUS; case self::DISPLAY_TYPE_INCLUDING_TAX: - $res = true; + $res = false; break; default: break; From e47349a35df1c2c2380b4e3eca66c3b4937d859c Mon Sep 17 00:00:00 2001 From: vgelani Date: Sat, 19 May 2018 16:35:58 +0530 Subject: [PATCH 470/555] Fixed Purchased Order Form button should visible properly --- .../web/css/source/module/checkout/_payments.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less index 3136056d9426d..70d62c5cde7e6 100644 --- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less +++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less @@ -58,6 +58,11 @@ } } } + .form-purchase-order { + #po_number { + margin-bottom: 20px; + } + } } .payment-method-title { From c5d2d7701615d1cd9e749ed0c6f45759a4dcd3de Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Mon, 21 May 2018 16:29:33 +0200 Subject: [PATCH 471/555] Minor styles nesting fix --- .../web/css/source/module/checkout/_payments.less | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less index 70d62c5cde7e6..dfe9125149a3b 100644 --- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less +++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_payments.less @@ -58,10 +58,9 @@ } } } - .form-purchase-order { - #po_number { - margin-bottom: 20px; - } + + #po_number { + margin-bottom: 20px; } } From c599fe56897fa6f5f4d39eeba8d7f865bfaabb76 Mon Sep 17 00:00:00 2001 From: vgelani Date: Sun, 20 May 2018 23:25:25 -0700 Subject: [PATCH 472/555] Fixed set template syntax issue --- app/code/Magento/Backend/Block/Dashboard.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Graph.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Grid.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Sales.php | 2 +- app/code/Magento/Backend/Block/Dashboard/Totals.php | 2 +- app/code/Magento/Backend/Block/Page/Copyright.php | 2 +- app/code/Magento/Backend/Block/Page/Footer.php | 2 +- app/code/Magento/Backend/Block/Page/Header.php | 2 +- .../Backend/Block/Store/Switcher/Form/Renderer/Fieldset.php | 2 +- .../Block/Store/Switcher/Form/Renderer/Fieldset/Element.php | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/Backend/Block/Dashboard.php b/app/code/Magento/Backend/Block/Dashboard.php index c8bfb9fdf3110..86dcbe2a625fe 100644 --- a/app/code/Magento/Backend/Block/Dashboard.php +++ b/app/code/Magento/Backend/Block/Dashboard.php @@ -18,7 +18,7 @@ class Dashboard extends \Magento\Backend\Block\Template /** * @var string */ - protected $_template = 'dashboard/index.phtml'; + protected $_template = 'Magento_Backend::dashboard/index.phtml'; /** * @return void diff --git a/app/code/Magento/Backend/Block/Dashboard/Graph.php b/app/code/Magento/Backend/Block/Dashboard/Graph.php index 301dffbdc4987..8e238ccab44cb 100644 --- a/app/code/Magento/Backend/Block/Dashboard/Graph.php +++ b/app/code/Magento/Backend/Block/Dashboard/Graph.php @@ -90,7 +90,7 @@ class Graph extends \Magento\Backend\Block\Dashboard\AbstractDashboard /** * @var string */ - protected $_template = 'dashboard/graph.phtml'; + protected $_template = 'Magento_Backend::dashboard/graph.phtml'; /** * Adminhtml dashboard data diff --git a/app/code/Magento/Backend/Block/Dashboard/Grid.php b/app/code/Magento/Backend/Block/Dashboard/Grid.php index ac28dcd390ee6..ef812382c4b03 100644 --- a/app/code/Magento/Backend/Block/Dashboard/Grid.php +++ b/app/code/Magento/Backend/Block/Dashboard/Grid.php @@ -15,7 +15,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid\Extended /** * @var string */ - protected $_template = 'dashboard/grid.phtml'; + protected $_template = 'Magento_Backend::dashboard/grid.phtml'; /** * Setting default for every grid on dashboard diff --git a/app/code/Magento/Backend/Block/Dashboard/Sales.php b/app/code/Magento/Backend/Block/Dashboard/Sales.php index c82d402d12ec6..891247a385cdf 100644 --- a/app/code/Magento/Backend/Block/Dashboard/Sales.php +++ b/app/code/Magento/Backend/Block/Dashboard/Sales.php @@ -16,7 +16,7 @@ class Sales extends \Magento\Backend\Block\Dashboard\Bar /** * @var string */ - protected $_template = 'dashboard/salebar.phtml'; + protected $_template = 'Magento_Backend::dashboard/salebar.phtml'; /** * @var \Magento\Framework\Module\Manager diff --git a/app/code/Magento/Backend/Block/Dashboard/Totals.php b/app/code/Magento/Backend/Block/Dashboard/Totals.php index 2f07a88dcccbe..cf383c1e82d03 100644 --- a/app/code/Magento/Backend/Block/Dashboard/Totals.php +++ b/app/code/Magento/Backend/Block/Dashboard/Totals.php @@ -17,7 +17,7 @@ class Totals extends \Magento\Backend\Block\Dashboard\Bar /** * @var string */ - protected $_template = 'dashboard/totalbar.phtml'; + protected $_template = 'Magento_Backend::dashboard/totalbar.phtml'; /** * @var \Magento\Framework\Module\Manager diff --git a/app/code/Magento/Backend/Block/Page/Copyright.php b/app/code/Magento/Backend/Block/Page/Copyright.php index afb3859de450d..613d00e95dc29 100644 --- a/app/code/Magento/Backend/Block/Page/Copyright.php +++ b/app/code/Magento/Backend/Block/Page/Copyright.php @@ -15,5 +15,5 @@ class Copyright extends \Magento\Backend\Block\Template * * @var string */ - protected $_template = 'page/copyright.phtml'; + protected $_template = 'Magento_Backend::page/copyright.phtml'; } diff --git a/app/code/Magento/Backend/Block/Page/Footer.php b/app/code/Magento/Backend/Block/Page/Footer.php index 6f6c9750ca15e..3448113ac2060 100644 --- a/app/code/Magento/Backend/Block/Page/Footer.php +++ b/app/code/Magento/Backend/Block/Page/Footer.php @@ -15,7 +15,7 @@ class Footer extends \Magento\Backend\Block\Template /** * @var string */ - protected $_template = 'page/footer.phtml'; + protected $_template = 'Magento_Backend::page/footer.phtml'; /** * @var \Magento\Framework\App\ProductMetadataInterface diff --git a/app/code/Magento/Backend/Block/Page/Header.php b/app/code/Magento/Backend/Block/Page/Header.php index 3dc781dab581d..4e1918f4465d9 100644 --- a/app/code/Magento/Backend/Block/Page/Header.php +++ b/app/code/Magento/Backend/Block/Page/Header.php @@ -18,7 +18,7 @@ class Header extends \Magento\Backend\Block\Template /** * @var string */ - protected $_template = 'page/header.phtml'; + protected $_template = 'Magento_Backend::page/header.phtml'; /** * Backend data diff --git a/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset.php b/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset.php index 6c5d160ee7652..46ce129f5018a 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset.php +++ b/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset.php @@ -23,7 +23,7 @@ class Fieldset extends \Magento\Backend\Block\Template implements \Magento\Frame /** * @var string */ - protected $_template = 'store/switcher/form/renderer/fieldset.phtml'; + protected $_template = 'Magento_Backend::store/switcher/form/renderer/fieldset.phtml'; /** * Retrieve an element diff --git a/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset/Element.php b/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset/Element.php index d3c0195fe98b4..a3f896b6ce70c 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset/Element.php +++ b/app/code/Magento/Backend/Block/Store/Switcher/Form/Renderer/Fieldset/Element.php @@ -21,7 +21,7 @@ class Element extends \Magento\Backend\Block\Widget\Form\Renderer\Fieldset\Eleme /** * @var string */ - protected $_template = 'store/switcher/form/renderer/fieldset/element.phtml'; + protected $_template = 'Magento_Backend::store/switcher/form/renderer/fieldset/element.phtml'; /** * Retrieve an element From fe61969894a1515a0e5088411112befe5ca71fe0 Mon Sep 17 00:00:00 2001 From: Anshu Mishra Date: Tue, 22 May 2018 19:34:50 +0530 Subject: [PATCH 473/555] typo correction --- .../Magento/Catalog/Model/ResourceModel/Product/Collection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php index 406bd595401ca..886466c3ffd09 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php @@ -1535,7 +1535,7 @@ protected function getEntityPkName(\Magento\Eav\Model\Entity\AbstractEntity $ent } /** - * Add requere tax percent flag for product collection + * Add require tax percent flag for product collection * * @return $this */ From 4e3a7fed9e851d92df05c1efb5a28888f038bdb6 Mon Sep 17 00:00:00 2001 From: vgelani Date: Tue, 22 May 2018 10:57:29 +0530 Subject: [PATCH 474/555] Updated font-size variable and standardize #ToDo UI --- .../backend/web/app/setup/styles/less/lib/_buttons.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less index d337514224b87..ec7509cba6dda 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less @@ -99,8 +99,8 @@ background-color: transparent; border: none; color: @link__color; - font-family: @btn__base__font-size; - font-size: 1.5rem; // ToDo UI: Check font-size and standardize + font-family: @font-family__base; + font-size: @base__font-size; &:hover, &:active, From d2f5f02b5ca12eb72c850a5bee6e812ef45fa50c Mon Sep 17 00:00:00 2001 From: vgelani Date: Tue, 22 May 2018 10:27:46 +0530 Subject: [PATCH 475/555] Moved css from media #TODO --- .../Magento_Theme/web/css/source/_module.less | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less index 3a421197ac7cb..8532659885187 100644 --- a/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_Theme/web/css/source/_module.less @@ -62,17 +62,16 @@ // Common // _____________________________________________ -& when (@media-common = true) { - body { +.page-wrapper { + .ie9 & { .lib-css(background-color, @page__background-color); + min-height: 0; } +} - // ToDo UI: move it directly to .page-wrapper (now it doesn't appear in mediaquery cuz of size of css) - .page-wrapper { - .ie9 & { - .lib-css(background-color, @page__background-color); - min-height: 0; - } +& when (@media-common = true) { + body { + .lib-css(background-color, @page__background-color); } // From e021b3974167c2c7bbffe952a4aa33e706755537 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov Date: Fri, 25 May 2018 16:38:19 +0300 Subject: [PATCH 476/555] ENGCOM-1685: [backport 2.1] Category\Collection::joinUrlRewrite should use the store set on the collection #13756 --- .../ResourceModel/Category/CollectionTest.php | 65 ++++++++++++++++++ .../_files/category_multiple_stores.php | 66 +++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php new file mode 100644 index 0000000000000..716b5fa75d113 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php @@ -0,0 +1,65 @@ +collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + \Magento\Catalog\Model\ResourceModel\Category\Collection::class + ); + } + + protected function setDown() + { + /* Refresh stores memory cache after store deletion */ + \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + \Magento\Store\Model\StoreManagerInterface::class + )->reinitStores(); + } + + /** + * @magentoAppIsolation enabled + * @magentoDbIsolation enabled + * @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php + */ + public function testJoinUrlRewriteOnDefault() + { + $categories = $this->collection->joinUrlRewrite()->addPathFilter('1/2/3'); + $this->assertCount(1, $categories); + /** @var $category \Magento\Catalog\Model\Category */ + $category = $categories->getFirstItem(); + $this->assertStringEndsWith('category.html', $category->getUrl()); + } + + /** + * @magentoAppIsolation enabled + * @magentoDbIsolation enabled + * @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php + */ + public function testJoinUrlRewriteNotOnDefaultStore() + { + $store = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create(\Magento\Store\Model\Store::class); + $storeId = $store->load('second_category_store', 'code')->getId(); + $categories = $this->collection->setStoreId($storeId)->joinUrlRewrite()->addPathFilter('1/2/3'); + $this->assertCount(1, $categories); + /** @var $category \Magento\Catalog\Model\Category */ + $category = $categories->getFirstItem(); + $this->assertStringEndsWith('category-3-on-2.html', $category->getUrl()); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php new file mode 100644 index 0000000000000..90bf630000e72 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php @@ -0,0 +1,66 @@ +create( + \Magento\Catalog\Model\CategoryFactory::class +); +/** @var \Magento\Catalog\Model\CategoryRepository $repository */ +$repository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + \Magento\Catalog\Model\CategoryRepository::class +); +/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */ +$storeManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + \Magento\Store\Model\StoreManagerInterface::class +); +/** @var \Magento\Store\Model\Store $store */ +$store = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Store\Model\Store::class); +if (!$store->load('second_category_store', 'code')->getId()) { + $websiteId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + \Magento\Store\Model\StoreManagerInterface::class + )->getWebsite()->getId(); + $groupId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + \Magento\Store\Model\StoreManagerInterface::class + )->getWebsite()->getDefaultGroupId(); + + $store->setCode( + 'second_category_store' + )->setWebsiteId( + $websiteId + )->setGroupId( + $groupId + )->setName( + 'Fixture Store' + )->setSortOrder( + 10 + )->setIsActive( + 1 + ); + $store->save(); +} + +/* Refresh stores memory cache */ +\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( + \Magento\Store\Model\StoreManagerInterface::class +)->reinitStores(); + +/** @var \Magento\Catalog\Model\Category $newCategory */ +$newCategory = $factory->create(); +$newCategory + ->setName('Category') + ->setParentId(2) + ->setLevel(2) + ->setPath('1/2/3') + ->setAvailableSortBy('name') + ->setDefaultSortBy('name') + ->setIsActive(true) + ->setPosition(1); +$repository->save($newCategory); +$currentStoreId = $storeManager->getStore()->getId(); +$storeManager->setCurrentStore($storeManager->getStore($store->getId())); +$newCategory->setUrlKey('category-3-on-2'); +$repository->save($newCategory); +$storeManager->setCurrentStore($storeManager->getStore($currentStoreId)); From bddb976d9a13da3a2c40301e31791469a0e62669 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Fri, 25 May 2018 16:36:57 +0200 Subject: [PATCH 477/555] Add resetting of triggerRecollection flag --- app/code/Magento/Quote/Model/Quote.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Quote/Model/Quote.php b/app/code/Magento/Quote/Model/Quote.php index 9b2ac61ef0989..5e5c356583b16 100644 --- a/app/code/Magento/Quote/Model/Quote.php +++ b/app/code/Magento/Quote/Model/Quote.php @@ -2363,13 +2363,17 @@ public function merge(Quote $quote) * Trigger collect totals after loading, if required * * @return $this + * @throws \Exception */ protected function _afterLoad() { // collect totals and save me, if required if (1 == $this->getData('trigger_recollect')) { - $this->collectTotals()->save(); + $this->collectTotals() + ->setTriggerRecollect(0) + ->save(); } + return parent::_afterLoad(); } From 485fd4858240cdcaf834e57a3e3cc081a836f08e Mon Sep 17 00:00:00 2001 From: vitaliyboyko Date: Sun, 27 May 2018 16:21:20 +0300 Subject: [PATCH 478/555] Fix typos in Multishipping and User module --- .../Multishipping/Block/Checkout/AbstractMultishipping.php | 2 +- app/code/Magento/Multishipping/Block/Checkout/Shipping.php | 2 +- app/code/Magento/User/Model/Backend/Config/ObserverConfig.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Multishipping/Block/Checkout/AbstractMultishipping.php b/app/code/Magento/Multishipping/Block/Checkout/AbstractMultishipping.php index 0de66ccd505a4..d3c17a8d7c8de 100644 --- a/app/code/Magento/Multishipping/Block/Checkout/AbstractMultishipping.php +++ b/app/code/Magento/Multishipping/Block/Checkout/AbstractMultishipping.php @@ -5,7 +5,7 @@ */ /** - * Mustishipping checkout base abstract block + * Multishipping checkout base abstract block * * @author Magento Core Team */ diff --git a/app/code/Magento/Multishipping/Block/Checkout/Shipping.php b/app/code/Magento/Multishipping/Block/Checkout/Shipping.php index c254c9c8e9981..4041e7da7bdd8 100644 --- a/app/code/Magento/Multishipping/Block/Checkout/Shipping.php +++ b/app/code/Magento/Multishipping/Block/Checkout/Shipping.php @@ -9,7 +9,7 @@ use Magento\Quote\Model\Quote\Address; /** - * Mustishipping checkout shipping + * Multishipping checkout shipping * * @author Magento Core Team */ diff --git a/app/code/Magento/User/Model/Backend/Config/ObserverConfig.php b/app/code/Magento/User/Model/Backend/Config/ObserverConfig.php index 29c4cc14ed674..e807749b11c32 100644 --- a/app/code/Magento/User/Model/Backend/Config/ObserverConfig.php +++ b/app/code/Magento/User/Model/Backend/Config/ObserverConfig.php @@ -72,7 +72,7 @@ public function getAdminPasswordLifetime() } /** - * Get admin maxiumum security failures from config + * Get admin maximum security failures from config * * @return int */ From 7c65f0a9a5bcebe15caaf5d594e5852888da4776 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 29 May 2018 10:12:02 +0200 Subject: [PATCH 479/555] Correct function return statement --- app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php | 2 +- app/code/Magento/Security/Model/AdminSessionInfo.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php index 2b788d36acb0c..d58c8220813ef 100644 --- a/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php +++ b/app/code/Magento/SalesRule/Controller/Adminhtml/Promo/Quote.php @@ -74,7 +74,7 @@ protected function _initRule() /** * Initiate action * - * @return this + * @return $this */ protected function _initAction() { diff --git a/app/code/Magento/Security/Model/AdminSessionInfo.php b/app/code/Magento/Security/Model/AdminSessionInfo.php index 2da74ce7689b2..2a66aaad80cf7 100644 --- a/app/code/Magento/Security/Model/AdminSessionInfo.php +++ b/app/code/Magento/Security/Model/AdminSessionInfo.php @@ -154,7 +154,7 @@ public function isOtherSessionsTerminated() * Setter for isOtherSessionsTerminated * * @param bool $isOtherSessionsTerminated - * @return this + * @return $this */ public function setIsOtherSessionsTerminated($isOtherSessionsTerminated) { From 371bb07a2abd33aaddd43428595e4d6b2ebf2885 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 29 May 2018 17:16:29 +0200 Subject: [PATCH 480/555] DocBloc typo fixes --- app/code/Magento/Config/Block/System/Config/Form.php | 2 +- .../Model/Import/Product/Type/Configurable.php | 2 +- app/code/Magento/Customer/Model/Session.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Config/Block/System/Config/Form.php b/app/code/Magento/Config/Block/System/Config/Form.php index 7498ae8fbc267..5d31e2ed91115 100644 --- a/app/code/Magento/Config/Block/System/Config/Form.php +++ b/app/code/Magento/Config/Block/System/Config/Form.php @@ -684,7 +684,7 @@ protected function _getAdditionalElementTypes() } /** - * Temporary moved those $this->getRequest()->getParam('blabla') from the code accross this block + * Temporary moved those $this->getRequest()->getParam('blabla') from the code across this block * to getBlala() methods to be later set from controller with setters */ diff --git a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php index e895a739b1736..2aac25ef1be63 100644 --- a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php @@ -604,7 +604,7 @@ protected function _insertData() } /** - * Get new supper attribute id. + * Get new super attribute id. * * @return int */ diff --git a/app/code/Magento/Customer/Model/Session.php b/app/code/Magento/Customer/Model/Session.php index adff23cea698e..d951cad90558d 100644 --- a/app/code/Magento/Customer/Model/Session.php +++ b/app/code/Magento/Customer/Model/Session.php @@ -552,7 +552,7 @@ public function setAfterAuthUrl($url) } /** - * Reset core session hosts after reseting session ID + * Reset core session hosts after resetting session ID * * @return $this */ From 77aee0e2d8c9a52515ab67deb9d0a609886f52d9 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets Date: Wed, 30 May 2018 16:44:16 +0300 Subject: [PATCH 481/555] [backport 2.1] Category\Collection::joinUrlRewrite should use the store set on the collection #13756 - fix integration test --- .../Catalog/Model/ResourceModel/Category/CollectionTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php index 716b5fa75d113..a81a2e2684b5a 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Category/CollectionTest.php @@ -60,6 +60,6 @@ public function testJoinUrlRewriteNotOnDefaultStore() $this->assertCount(1, $categories); /** @var $category \Magento\Catalog\Model\Category */ $category = $categories->getFirstItem(); - $this->assertStringEndsWith('category-3-on-2.html', $category->getUrl()); + $this->assertContains('category-3-on-2', $category->getUrl()); } } From b9e3fd46aae094290eb9a431b54875756158a1a9 Mon Sep 17 00:00:00 2001 From: Yogesh Suhagiya Date: Mon, 26 Mar 2018 13:16:28 +0530 Subject: [PATCH 482/555] Removed comma(,) from translate attribute --- app/code/Magento/Sales/etc/adminhtml/system.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Sales/etc/adminhtml/system.xml b/app/code/Magento/Sales/etc/adminhtml/system.xml index 8f004d9ad5968..6261353332cef 100644 --- a/app/code/Magento/Sales/etc/adminhtml/system.xml +++ b/app/code/Magento/Sales/etc/adminhtml/system.xml @@ -106,7 +106,7 @@ We'll use the default error above if you leave this empty. - + @@ -114,7 +114,7 @@ Improves dashboard performance but provides non-realtime data. - + From ab64a2c39358c6f37d27206a16272cc176a33abe Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Thu, 31 May 2018 09:51:00 +0300 Subject: [PATCH 483/555] Fix incorrect type hinting in PHPDocs --- app/code/Magento/Sales/Model/Order/Shipment/Item.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Item.php b/app/code/Magento/Sales/Model/Order/Shipment/Item.php index e2ba72a870c33..64a1562da8739 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment/Item.php +++ b/app/code/Magento/Sales/Model/Order/Shipment/Item.php @@ -146,8 +146,7 @@ public function getOrderItem() * Declare qty * * @param float $qty - * @return \Magento\Sales\Model\Order\Invoice\Item - * @throws \Magento\Framework\Exception\LocalizedException + * @return $this */ public function setQty($qty) { @@ -159,7 +158,6 @@ public function setQty($qty) * Applying qty to order item * * @return $this - * @throws \Magento\Framework\Exception\LocalizedException */ public function register() { From f98290da8eb9f540e66a7de9d7009da580e7c65d Mon Sep 17 00:00:00 2001 From: vgelani Date: Mon, 28 May 2018 11:32:28 +0530 Subject: [PATCH 484/555] Fixed typo error --- app/code/Magento/Config/Block/System/Config/Form.php | 2 +- .../Model/Import/Product/Type/Configurable.php | 2 +- app/code/Magento/Customer/Model/Session.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Config/Block/System/Config/Form.php b/app/code/Magento/Config/Block/System/Config/Form.php index 7498ae8fbc267..5d31e2ed91115 100644 --- a/app/code/Magento/Config/Block/System/Config/Form.php +++ b/app/code/Magento/Config/Block/System/Config/Form.php @@ -684,7 +684,7 @@ protected function _getAdditionalElementTypes() } /** - * Temporary moved those $this->getRequest()->getParam('blabla') from the code accross this block + * Temporary moved those $this->getRequest()->getParam('blabla') from the code across this block * to getBlala() methods to be later set from controller with setters */ diff --git a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php index e895a739b1736..2aac25ef1be63 100644 --- a/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php @@ -604,7 +604,7 @@ protected function _insertData() } /** - * Get new supper attribute id. + * Get new super attribute id. * * @return int */ diff --git a/app/code/Magento/Customer/Model/Session.php b/app/code/Magento/Customer/Model/Session.php index adff23cea698e..d951cad90558d 100644 --- a/app/code/Magento/Customer/Model/Session.php +++ b/app/code/Magento/Customer/Model/Session.php @@ -552,7 +552,7 @@ public function setAfterAuthUrl($url) } /** - * Reset core session hosts after reseting session ID + * Reset core session hosts after resetting session ID * * @return $this */ From c29d6741836d60dcb5cc458a6ec5cd7cf5f0889b Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Fri, 1 Jun 2018 09:39:55 +0300 Subject: [PATCH 485/555] Remove the redundant code, add field comment translation --- app/code/Magento/Sales/etc/adminhtml/system.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Sales/etc/adminhtml/system.xml b/app/code/Magento/Sales/etc/adminhtml/system.xml index 6261353332cef..9d6d11d56c81f 100644 --- a/app/code/Magento/Sales/etc/adminhtml/system.xml +++ b/app/code/Magento/Sales/etc/adminhtml/system.xml @@ -106,15 +106,15 @@ We'll use the default error above if you leave this empty. - + - + Magento\Config\Model\Config\Source\Yesno Improves dashboard performance but provides non-realtime data. - + From c633d16c15d1676d4604421d096917f863832601 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Wed, 30 May 2018 16:34:16 +0530 Subject: [PATCH 486/555] set correct annotation --- lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php | 4 ++-- .../Magento/Framework/Stdlib/DateTime/TimezoneInterface.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index 68a97c9fde482..c7512c4041b5f 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -245,8 +245,8 @@ public function isScopeDateInInterval($scope, $dateFrom = null, $dateTo = null) * @param string|\DateTimeInterface $date * @param int $dateType * @param int $timeType - * @param null $locale - * @param null $timezone + * @param string|null $locale + * @param string|null $timezone * @param string|null $pattern * @return string */ diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php index 539715003e16d..381e7faf8c084 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php @@ -125,8 +125,8 @@ public function isScopeDateInInterval($scope, $dateFrom = null, $dateTo = null); * @param string|\DateTimeInterface $date * @param int $dateType * @param int $timeType - * @param null $locale - * @param null $timezone + * @param string|null $locale + * @param string|null $timezone * @param string|null $pattern * @return string */ From 5575523512807ede0d93bb86bde30b792a5cc882 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Sat, 19 May 2018 12:41:34 +0530 Subject: [PATCH 487/555] #12820 - Wrong annotation in _toOptionArray - magento/framework/Data/Collection/AbstractDb.php --- lib/internal/Magento/Framework/Data/Collection/AbstractDb.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php b/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php index 7b21cde1d5cb1..792252938ab49 100644 --- a/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php +++ b/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php @@ -627,7 +627,7 @@ public function fetchItem() /** * Overridden to use _idFieldName by default. * - * @param null $valueField + * @param string|null $valueField * @param string $labelField * @param array $additional * @return array From b4171a10cfa38cee850551cc62042d3ae9beb7bf Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Sat, 2 Jun 2018 23:53:52 +0300 Subject: [PATCH 488/555] Add missing property, fixed incorrect proprty type, add missing throws to PHPDocs --- app/code/Magento/Ui/Model/Export/ConvertToCsv.php | 10 +++++++++- app/code/Magento/Ui/Model/Export/ConvertToXml.php | 12 +++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Ui/Model/Export/ConvertToCsv.php b/app/code/Magento/Ui/Model/Export/ConvertToCsv.php index e8136c7520054..40b10749db21e 100644 --- a/app/code/Magento/Ui/Model/Export/ConvertToCsv.php +++ b/app/code/Magento/Ui/Model/Export/ConvertToCsv.php @@ -6,8 +6,10 @@ namespace Magento\Ui\Model\Export; use Magento\Framework\App\Filesystem\DirectoryList; +use Magento\Framework\Exception\FileSystemException; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filesystem; +use Magento\Framework\Filesystem\Directory\WriteInterface; use Magento\Ui\Component\MassAction\Filter; /** @@ -16,7 +18,7 @@ class ConvertToCsv { /** - * @var DirectoryList + * @var WriteInterface */ protected $directory; @@ -30,11 +32,17 @@ class ConvertToCsv */ protected $pageSize = null; + /** + * @var Filter + */ + protected $filter; + /** * @param Filesystem $filesystem * @param Filter $filter * @param MetadataProvider $metadataProvider * @param int $pageSize + * @throws FileSystemException */ public function __construct( Filesystem $filesystem, diff --git a/app/code/Magento/Ui/Model/Export/ConvertToXml.php b/app/code/Magento/Ui/Model/Export/ConvertToXml.php index 8f06193740cfc..2132256729a0f 100644 --- a/app/code/Magento/Ui/Model/Export/ConvertToXml.php +++ b/app/code/Magento/Ui/Model/Export/ConvertToXml.php @@ -10,8 +10,10 @@ use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Convert\Excel; use Magento\Framework\Convert\ExcelFactory; +use Magento\Framework\Exception\FileSystemException; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Filesystem; +use Magento\Framework\Filesystem\Directory\WriteInterface; use Magento\Ui\Component\MassAction\Filter; /** @@ -20,7 +22,7 @@ class ConvertToXml { /** - * @var DirectoryList + * @var WriteInterface */ protected $directory; @@ -49,12 +51,18 @@ class ConvertToXml */ protected $fields; + /** + * @var Filter + */ + protected $filter; + /** * @param Filesystem $filesystem * @param Filter $filter * @param MetadataProvider $metadataProvider * @param ExcelFactory $excelFactory * @param SearchResultIteratorFactory $iteratorFactory + * @throws FileSystemException */ public function __construct( Filesystem $filesystem, @@ -87,6 +95,7 @@ protected function getOptions() * Returns DB fields list * * @return array + * @throws LocalizedException */ protected function getFields() { @@ -102,6 +111,7 @@ protected function getFields() * * @param DocumentInterface $document * @return array + * @throws LocalizedException */ public function getRowData(DocumentInterface $document) { From 97d6047acb87e4b8617ecf12598d4bd8ea6f596a Mon Sep 17 00:00:00 2001 From: Dmytro Cheshun Date: Sun, 3 Jun 2018 10:16:06 +0300 Subject: [PATCH 489/555] Fix HTML syntax in report.phtml error template --- pub/errors/default/report.phtml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pub/errors/default/report.phtml b/pub/errors/default/report.phtml index 8a567b69ebce2..0988054fea035 100644 --- a/pub/errors/default/report.phtml +++ b/pub/errors/default/report.phtml @@ -35,25 +35,25 @@
      -
      +
      +
      x %2 px.', '', diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml index 46d15e3fcc31d..27a0924316405 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml @@ -183,6 +183,7 @@ false false false + true ui/form/field category diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js b/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js index a6c71e7d4b660..d299fc8378d6d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/components/import-handler.js @@ -141,6 +141,7 @@ define([ // strip tags tmpElement = document.createElement('div'); + str = str.replace(/(<([^>]+)>)/ig, ''); tmpElement.innerHTML = str; str = tmpElement.textContent || tmpElement.innerText || ''; diff --git a/app/code/Magento/Checkout/Block/Cart/Shipping.php b/app/code/Magento/Checkout/Block/Cart/Shipping.php index a7f808b9ccb5e..6b9ab477d1dff 100644 --- a/app/code/Magento/Checkout/Block/Cart/Shipping.php +++ b/app/code/Magento/Checkout/Block/Cart/Shipping.php @@ -64,7 +64,7 @@ public function getJsLayout() foreach ($this->layoutProcessors as $processor) { $this->jsLayout = $processor->process($this->jsLayout); } - return \Zend_Json::encode($this->jsLayout); + return json_encode($this->jsLayout, JSON_HEX_TAG); } /** diff --git a/app/code/Magento/Checkout/Block/Cart/Totals.php b/app/code/Magento/Checkout/Block/Cart/Totals.php index 2059c2ef9e302..c1d5b8d6181bf 100644 --- a/app/code/Magento/Checkout/Block/Cart/Totals.php +++ b/app/code/Magento/Checkout/Block/Cart/Totals.php @@ -66,7 +66,7 @@ public function getJsLayout() foreach ($this->layoutProcessors as $processor) { $this->jsLayout = $processor->process($this->jsLayout); } - return parent::getJsLayout(); + return json_encode($this->jsLayout, JSON_HEX_TAG); } /** diff --git a/app/code/Magento/Checkout/Block/Onepage.php b/app/code/Magento/Checkout/Block/Onepage.php index 15e913d9338d0..4caa788f74cb1 100644 --- a/app/code/Magento/Checkout/Block/Onepage.php +++ b/app/code/Magento/Checkout/Block/Onepage.php @@ -66,7 +66,7 @@ public function getJsLayout() foreach ($this->layoutProcessors as $processor) { $this->jsLayout = $processor->process($this->jsLayout); } - return \Zend_Json::encode($this->jsLayout); + return json_encode($this->jsLayout, JSON_HEX_TAG); } /** diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml index 0087d6abd421d..1cc18185cf7d1 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml @@ -90,7 +90,7 @@ $canApplyMsrp = $helper->isShowBeforeOrderConfirm($product) && $helper->isMinima
      "@example.com', + 'sender_email' => '""@example.com', + ], + [ + 'sender' => '"<script>alert(document.domain)</script>"@example.com', + 'sender_email' => '"<script>alert(document.domain)</script>"@example.com', + ], + ], + ]; + } +} diff --git a/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml b/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml index 119a64c5ae080..0edb4996d6307 100644 --- a/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml +++ b/app/code/Magento/Reports/view/adminhtml/templates/grid.phtml @@ -31,7 +31,7 @@ $numColumns = sizeof($block->getColumns()); type="text" id="getSuffixId('period_date_from') ?>" name="report_from" - value="getFilter('report_from') ?>"> + value="escapeHtml($block->getFilter('report_from')) ?>"> @@ -44,7 +44,7 @@ $numColumns = sizeof($block->getColumns()); type="text" id="getSuffixId('period_date_to') ?>" name="report_to" - value="getFilter('report_to') ?>"/> + value="escapeHtml($block->getFilter('report_to')) ?>"/> diff --git a/app/code/Magento/Review/view/adminhtml/web/js/rating.js b/app/code/Magento/Review/view/adminhtml/web/js/rating.js index 5525a8c517b37..e1d81397e2c40 100644 --- a/app/code/Magento/Review/view/adminhtml/web/js/rating.js +++ b/app/code/Magento/Review/view/adminhtml/web/js/rating.js @@ -23,7 +23,7 @@ define([ _bind: function() { this._labels.on({ click: $.proxy(function(e) { - $('[id="' + $(e.currentTarget).attr('for') + '"]').prop('checked', true); + $(e.currentTarget).prev().prop('checked', true); this._updateRating(); }, this), diff --git a/app/code/Magento/Shipping/Model/Info.php b/app/code/Magento/Shipping/Model/Info.php index 13b2c183d8c90..39300690a6328 100644 --- a/app/code/Magento/Shipping/Model/Info.php +++ b/app/code/Magento/Shipping/Model/Info.php @@ -116,7 +116,7 @@ protected function _initOrder() /** @var \Magento\Sales\Model\Order $order */ $order = $this->_orderFactory->create()->load($this->getOrderId()); - if (!$order->getId() || $this->getProtectCode() != $order->getProtectCode()) { + if (!$order->getId() || $this->getProtectCode() !== $order->getProtectCode()) { return false; } @@ -132,7 +132,7 @@ protected function _initShipment() { /* @var $model Shipment */ $ship = $this->shipmentRepository->get($this->getShipId()); - if (!$ship->getEntityId() || $this->getProtectCode() != $ship->getProtectCode()) { + if (!$ship->getEntityId() || $this->getProtectCode() !== $ship->getProtectCode()) { return false; } @@ -197,7 +197,7 @@ public function getTrackingInfoByTrackId() { /** @var \Magento\Shipping\Model\Order\Track $track */ $track = $this->_trackFactory->create()->load($this->getTrackId()); - if ($track->getId() && $this->getProtectCode() == $track->getProtectCode()) { + if ($track->getId() && $this->getProtectCode() === $track->getProtectCode()) { $this->_trackingInfo = [[$track->getNumberDetail()]]; } return $this->_trackingInfo; diff --git a/app/code/Magento/Shipping/Test/Unit/Model/InfoTest.php b/app/code/Magento/Shipping/Test/Unit/Model/InfoTest.php new file mode 100644 index 0000000000000..d9a3ca3393eee --- /dev/null +++ b/app/code/Magento/Shipping/Test/Unit/Model/InfoTest.php @@ -0,0 +1,300 @@ +helper = $this->getMockBuilder(\Magento\Shipping\Helper\Data::class) + ->disableOriginalConstructor() + ->getMock(); + $this->orderFactory = $this->getMockBuilder(\Magento\Sales\Model\OrderFactory::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->shipmentRepository = $this->getMockBuilder(\Magento\Sales\Api\ShipmentRepositoryInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $this->trackFactory = $this->getMockBuilder(\Magento\Shipping\Model\Order\TrackFactory::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->trackCollectionFactory = $this->getMockBuilder(CollectionFactory::class) + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $objectManagerHelper = new ObjectManager($this); + $this->info = $objectManagerHelper->getObject( + Info::class, + [ + 'shippingData' => $this->helper, + 'orderFactory' => $this->orderFactory, + 'shipmentRepository' => $this->shipmentRepository, + 'trackFactory' => $this->trackFactory, + 'trackCollectionFactory' => $this->trackCollectionFactory, + ] + ); + } + + public function testLoadByHashWithOrderId() + { + $hash = strtr(base64_encode('order_id:1:protected_code'), '+/=', '-_,'); + $decodedHash = [ + 'key' => 'order_id', + 'id' => 1, + 'hash' => 'protected_code', + ]; + $shipmentId = 1; + $shipmentIncrementId = 3; + $trackDetails = 'track_details'; + + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $shipmentCollection = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\Shipment\Collection::class) + ->disableOriginalConstructor() + ->setMethods(['getIterator']) + ->getMock(); + $order = $this->getMockBuilder(\Magento\Sales\Model\Order::class) + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'getProtectCode', 'getShipmentsCollection']) + ->getMock(); + $order->expects($this->atLeastOnce())->method('load')->with($decodedHash['id'])->willReturnSelf(); + $order->expects($this->atLeastOnce())->method('getId')->willReturn($decodedHash['id']); + $order->expects($this->atLeastOnce())->method('getProtectCode')->willReturn($decodedHash['hash']); + $order->expects($this->atLeastOnce())->method('getShipmentsCollection')->willReturn($shipmentCollection); + + $shipment = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment::class) + ->disableOriginalConstructor() + ->setMethods(['getIncrementId', 'getId']) + ->getMock(); + $shipment->expects($this->atLeastOnce())->method('getIncrementId')->willReturn($shipmentIncrementId); + $shipment->expects($this->atLeastOnce())->method('getId')->willReturn($shipmentId); + + $shipmentCollection->expects($this->any())->method('getIterator')->willReturn(new \ArrayIterator([$shipment])); + $this->orderFactory->expects($this->atLeastOnce())->method('create')->willReturn($order); + $track = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment\Track::class) + ->disableOriginalConstructor() + ->setMethods(['setShipment', 'getNumberDetail']) + ->getMock(); + $track->expects($this->atLeastOnce())->method('setShipment')->with($shipment)->willReturnSelf(); + $track->expects($this->atLeastOnce())->method('getNumberDetail')->willReturn($trackDetails); + $trackCollection = $this->getMockBuilder(\Magento\Shipping\Model\ResourceModel\Order\Track\Collection::class) + ->disableOriginalConstructor() + ->setMethods(['getIterator', 'setShipmentFilter']) + ->getMock(); + $trackCollection->expects($this->atLeastOnce()) + ->method('setShipmentFilter') + ->with($shipmentId) + ->willReturnSelf(); + $trackCollection->expects($this->atLeastOnce()) + ->method('getIterator') + ->willReturn(new \ArrayIterator([$track])); + $this->trackCollectionFactory->expects($this->atLeastOnce())->method('create')->willReturn($trackCollection); + + $this->info->loadByHash($hash); + $this->assertEquals([$shipmentIncrementId => [$trackDetails]], $this->info->getTrackingInfo()); + } + + public function testLoadByHashWithOrderIdWrongCode() + { + $hash = strtr(base64_encode('order_id:1:0'), '+/=', '-_,'); + $decodedHash = [ + 'key' => 'order_id', + 'id' => 1, + 'hash' => '0', + ]; + + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $order = $this->getMockBuilder(\Magento\Sales\Model\Order::class) + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'getProtectCode', 'getShipmentsCollection']) + ->getMock(); + $order->expects($this->atLeastOnce())->method('load')->with($decodedHash['id'])->willReturnSelf(); + $order->expects($this->atLeastOnce())->method('getId')->willReturn($decodedHash['id']); + $order->expects($this->atLeastOnce())->method('getProtectCode')->willReturn('0e123123123'); + $this->orderFactory->expects($this->atLeastOnce())->method('create')->willReturn($order); + $this->info->loadByHash($hash); + $this->assertEmpty($this->info->getTrackingInfo()); + } + + public function testLoadByHashWithShipmentId() + { + $hash = strtr(base64_encode('ship_id:1:protected_code'), '+/=', '-_,'); + $decodedHash = [ + 'key' => 'ship_id', + 'id' => 1, + 'hash' => 'protected_code', + ]; + $shipmentIncrementId = 3; + $trackDetails = 'track_details'; + + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $shipment = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment::class) + ->disableOriginalConstructor() + ->setMethods(['getEntityId', 'getProtectCode', 'getIncrementId', 'getId']) + ->getMock(); + $shipment->expects($this->atLeastOnce())->method('getIncrementId')->willReturn($shipmentIncrementId); + $shipment->expects($this->atLeastOnce())->method('getId')->willReturn($decodedHash['id']); + $shipment->expects($this->atLeastOnce())->method('getEntityId')->willReturn(3); + $shipment->expects($this->atLeastOnce())->method('getProtectCode')->willReturn($decodedHash['hash']); + $this->shipmentRepository->expects($this->atLeastOnce()) + ->method('get') + ->with($decodedHash['id']) + ->willReturn($shipment); + $track = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment\Track::class) + ->disableOriginalConstructor() + ->setMethods(['setShipment', 'getNumberDetail']) + ->getMock(); + $track->expects($this->atLeastOnce())->method('setShipment')->with($shipment)->willReturnSelf(); + $track->expects($this->atLeastOnce())->method('getNumberDetail')->willReturn($trackDetails); + $trackCollection = $this->getMockBuilder(\Magento\Shipping\Model\ResourceModel\Order\Track\Collection::class) + ->disableOriginalConstructor() + ->setMethods(['getIterator', 'setShipmentFilter']) + ->getMock(); + $trackCollection->expects($this->atLeastOnce()) + ->method('setShipmentFilter') + ->with($decodedHash['id']) + ->willReturnSelf(); + $trackCollection->expects($this->atLeastOnce()) + ->method('getIterator') + ->willReturn(new \ArrayIterator([$track])); + $this->trackCollectionFactory->expects($this->atLeastOnce())->method('create')->willReturn($trackCollection); + + $this->info->loadByHash($hash); + $this->assertEquals([$shipmentIncrementId => [$trackDetails]], $this->info->getTrackingInfo()); + } + + public function testLoadByHashWithShipmentIdWrongCode() + { + $hash = strtr(base64_encode('ship_id:1:0'), '+/=', '-_,'); + $decodedHash = [ + 'key' => 'ship_id', + 'id' => 1, + 'hash' => '0', + ]; + + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $shipment = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment::class) + ->disableOriginalConstructor() + ->setMethods(['getEntityId', 'getProtectCode', 'getIncrementId', 'getId']) + ->getMock(); + $shipment->expects($this->atLeastOnce())->method('getEntityId')->willReturn(3); + $shipment->expects($this->atLeastOnce())->method('getProtectCode')->willReturn('0e123123123'); + $this->shipmentRepository->expects($this->atLeastOnce()) + ->method('get') + ->with($decodedHash['id']) + ->willReturn($shipment); + + $this->info->loadByHash($hash); + $this->assertEmpty($this->info->getTrackingInfo()); + } + + public function testLoadByHashWithTrackId() + { + $hash = base64_encode('hash'); + $decodedHash = [ + 'key' => 'track_id', + 'id' => 1, + 'hash' => 'protected_code', + ]; + $trackDetails = 'track_details'; + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $track = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment\Track::class) + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'getProtectCode', 'getNumberDetail']) + ->getMock(); + $track->expects($this->atLeastOnce())->method('load')->with($decodedHash['id'])->willReturnSelf(); + $track->expects($this->atLeastOnce())->method('getId')->willReturn($decodedHash['id']); + $track->expects($this->atLeastOnce())->method('getProtectCode')->willReturn($decodedHash['hash']); + $track->expects($this->atLeastOnce())->method('getNumberDetail')->willReturn($trackDetails); + $this->trackFactory->expects($this->atLeastOnce())->method('create')->willReturn($track); + + $this->info->loadByHash($hash); + $this->assertEquals([[$trackDetails]], $this->info->getTrackingInfo()); + } + + public function testLoadByHashWithWrongCode() + { + $hash = base64_encode('hash'); + $decodedHash = [ + 'key' => 'track_id', + 'id' => 1, + 'hash' => 'protected_code', + ]; + $this->helper->expects($this->atLeastOnce()) + ->method('decodeTrackingHash') + ->with($hash) + ->willReturn($decodedHash); + $track = $this->getMockBuilder(\Magento\Sales\Model\Order\Shipment\Track::class) + ->disableOriginalConstructor() + ->setMethods(['load', 'getId', 'getProtectCode', 'getNumberDetail']) + ->getMock(); + $track->expects($this->atLeastOnce())->method('load')->with($decodedHash['id'])->willReturnSelf(); + $track->expects($this->atLeastOnce())->method('getId')->willReturn($decodedHash['id']); + $track->expects($this->atLeastOnce())->method('getProtectCode')->willReturn('0e123123123'); + $this->trackFactory->expects($this->atLeastOnce())->method('create')->willReturn($track); + + $this->info->loadByHash($hash); + $this->assertEmpty($this->info->getTrackingInfo()); + } +} diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml index cf49ecab9bb7a..ded3ae7bf8b02 100644 --- a/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml +++ b/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml @@ -6,70 +6,78 @@ // @codingStandardsIgnoreFile +/** + * @var \Magento\Shipping\Block\Adminhtml\View\Form $block + */ +$order = $block->getShipment()->getOrder(); ?> -getShipment()->getOrder() ?> -getChildHtml('order_info') ?> +getChildHtml('order_info'); ?>
      - + escapeHtml(__('Payment & Shipping Method')); ?>
      - + escapeHtml(__('Payment Information')); ?>
      -
      getChildHtml('order_payment') ?>
      -
      getOrderCurrencyCode()) ?>
      +
      getChildHtml('order_payment'); ?>
      +
      + escapeHtml(__('The order was placed using %1.', $order->getOrderCurrencyCode())); ?> +
      - + escapeHtml(__('Shipping and Tracking Information')); ?>
      getShipment()->getTracksCollection()->count()): ?>

      - + + escapeHtml(__('Track this shipment')); ?>

      - escapeHtml($_order->getShippingDescription()) ?> + escapeHtml($order->getShippingDescription()) ?>
      - : + escapeHtml(__('Total Shipping Charges')); ?>: - helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?> - displayShippingPriceInclTax($_order); ?> + helper(\Magento\Tax\Helper\Data::class)->displayShippingPriceIncludingTax()): ?> + displayShippingPriceInclTax($order); ?> - displayPriceAttribute('shipping_amount', false, ' '); ?> + displayPriceAttribute('shipping_amount', false, ' '); ?> - displayShippingPriceInclTax($_order); ?> + displayShippingPriceInclTax($order); ?> - - helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?> - ( ) + + helper(\Magento\Tax\Helper\Data::class)->displayShippingBothPrices() && $incl != $excl): ?> + (escapeHtml(__('Incl. Tax')); ?> )
      - canCreateShippingLabel()): ?>

      - getCreateLabelButton()?> + canCreateShippingLabel()): ?> + getCreateLabelButton(); ?> + getShipment()->getShippingLabel()): ?> - getPrintLabelButton() ?> + getPrintLabelButton(); ?> getShipment()->getPackages()): ?> - getShowPackagesButton() ?> + getShowPackagesButton(); ?>

      - - getChildHtml('shipment_tracking') ?> + getChildHtml('shipment_tracking'); ?> - getChildHtml('shipment_packaging') ?> + getChildHtml('shipment_packaging'); ?> ', + '<' . $quote . ' + ' . $quote . '/script>', + $result + ); + $result = str_replace( + ' From e9fb5424be28dd330884dd251748cf0328c98e28 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov Date: Sat, 17 Mar 2018 11:08:26 +0200 Subject: [PATCH 338/555] MAGETWO-86331: Issues #10559 - Extend swatch using mixins (M2.1) #12928 --- .../view/frontend/templates/product/listing/renderer.phtml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Swatches/view/frontend/templates/product/listing/renderer.phtml b/app/code/Magento/Swatches/view/frontend/templates/product/listing/renderer.phtml index e6cf5ea4053a7..5dcf7717a006b 100644 --- a/app/code/Magento/Swatches/view/frontend/templates/product/listing/renderer.phtml +++ b/app/code/Magento/Swatches/view/frontend/templates/product/listing/renderer.phtml @@ -4,7 +4,9 @@ * See COPYING.txt for license details. */ ?> -
      +
      - - - From b3a7d7f1b52cf880f0c82eafb5a3b64b6c88fdea Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 29 Apr 2018 13:34:14 +0200 Subject: [PATCH 397/555] Temporary variable removed --- .../Magento/Catalog/Controller/Adminhtml/Category/Save.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php index 8555503bfa79d..384022f558dce 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php @@ -123,8 +123,7 @@ public function execute() return $resultRedirect->setPath('catalog/*/', ['_current' => true, 'id' => null]); } - $data['general'] = $this->getRequest()->getPostValue(); - $categoryPostData = $data['general']; + $categoryPostData = $this->getRequest()->getPostValue(); $isNewCategory = !isset($categoryPostData['entity_id']); $categoryPostData = $this->stringToBoolConverting($categoryPostData); From 5c5859566074a7e0be2fb7fbb7b326cd0f90d937 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 29 Apr 2018 14:00:13 +0200 Subject: [PATCH 398/555] Fixed issue: prices aren't readable when using custom price symbol --- .../module/components/_currency-addon.less | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_currency-addon.less b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_currency-addon.less index 0c33b8d3b8a02..65f8afbce0df0 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_currency-addon.less +++ b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_currency-addon.less @@ -18,10 +18,29 @@ .currency-addon { position: relative; + border: 1px solid #adadad; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + display: inline-flex; + flex-flow: row nowrap; + width: 100%; .admin__control-text { - border-width: 1px 1px 1px 0; - padding-left: @currency-addon-symbol__width + .2; + appearence: none; + -webkit-flex-grow: 1; + flex-grow: 1; + -ms-flex-order: 1; + -webkit-order: 1; + order: 1; + -webkit-flex-shrink: 1; + flex-shrink: 1; + background-color: transparent; + border-color: transparent; + box-shadow: none; + vertical-align: top; &:focus { + .currency-symbol { @@ -30,18 +49,29 @@ } } + label.error { + position: absolute; + left: 0; + top: 33px; + } + .currency-symbol { border: solid @currency-addon-symbol__border-color; - border-width: 0 0 0 1px; + border-width: 0; box-sizing: border-box; color: @currency-addon-symbol__color; height: @currency-addon-symbol__height; - left: 0; padding: 7px 0 0 @indent__xs; - position: absolute; - top: 0; transition: @smooth__border-color; - width: @currency-addon-symbol__width; + position: static; + -webkit-flex-basis: auto; + flex-basis: auto; + -webkit-flex-grow: 0; + flex-grow: 0; + -webkit-flex-shrink: 0; + flex-shrink: 0; + z-index: 1; + order: 0; } ._error & { From 4bb9d270b7d8b383a69f2e2101fd0111c24b19f7 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 29 Apr 2018 16:27:23 +0200 Subject: [PATCH 399/555] Pass parameter for export button url --- .../sales_order_view_creditmemo_grid.xml | 10 +++++++- .../sales_order_view_invoice_grid.xml | 10 +++++++- .../sales_order_view_shipment_grid.xml | 10 +++++++- .../Magento/Ui/Component/ExportButton.php | 25 ++++++++++++++++++- 4 files changed, 51 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index ccb1faae5e8a8..dddf7aaf10dba 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -34,7 +34,15 @@ - + + + + + * + + + + diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index 559254387875c..befd2dc99010a 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -34,7 +34,15 @@ - + + + + + * + + + + diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 12cdd55a5f9fe..83924bd076211 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -34,7 +34,15 @@ - + + + + + * + + + + diff --git a/app/code/Magento/Ui/Component/ExportButton.php b/app/code/Magento/Ui/Component/ExportButton.php index 9d5f125839003..284362a119bad 100644 --- a/app/code/Magento/Ui/Component/ExportButton.php +++ b/app/code/Magento/Ui/Component/ExportButton.php @@ -54,11 +54,13 @@ public function getComponentName() */ public function prepare() { + $context = $this->getContext(); $config = $this->getData('config'); if (isset($config['options'])) { $options = []; foreach ($config['options'] as $option) { - $option['url'] = $this->urlBuilder->getUrl($option['url']); + $additionalParams = $this->getAdditionalParams($config, $context); + $option['url'] = $this->urlBuilder->getUrl($option['url'], $additionalParams); $options[] = $option; } $config['options'] = $options; @@ -66,4 +68,25 @@ public function prepare() } parent::prepare(); } + + /** + * Get export button additional parameters + * + * @param array $config + * @param ContextInterface $context + * @return array + */ + protected function getAdditionalParams($config, $context) + { + $additionalParams = []; + if (isset($config['additionalParams'])) { + foreach ($config['additionalParams'] as $paramName => $paramValue) { + if ('*' == $paramValue) { + $paramValue = $context->getRequestParam($paramName); + } + $additionalParams[$paramName] = $paramValue; + } + } + return $additionalParams; + } } From 838f08fee38592e3604ecbe01de7a4531d7321ed Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Mon, 30 Apr 2018 10:29:03 +0200 Subject: [PATCH 400/555] Switch updatecart qty input validators to dynamic instead of hardcoded value --- .../frontend/templates/cart/item/configure/updatecart.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/configure/updatecart.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/configure/updatecart.phtml index a402f0f9d99b7..ddbc32d9012e4 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/item/configure/updatecart.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/configure/updatecart.phtml @@ -19,7 +19,7 @@
      + class="input-text qty" data-validate="escapeHtml(json_encode($block->getQuantityValidators())) ?>"/>
      From 67268ca4395a577a3d7d1ae17fdc455691fef325 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Mon, 30 Apr 2018 10:49:35 +0200 Subject: [PATCH 401/555] Changed method scope --- app/code/Magento/Ui/Component/ExportButton.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/Component/ExportButton.php b/app/code/Magento/Ui/Component/ExportButton.php index 284362a119bad..20cc6623c847c 100644 --- a/app/code/Magento/Ui/Component/ExportButton.php +++ b/app/code/Magento/Ui/Component/ExportButton.php @@ -76,7 +76,7 @@ public function prepare() * @param ContextInterface $context * @return array */ - protected function getAdditionalParams($config, $context) + private function getAdditionalParams($config, $context) { $additionalParams = []; if (isset($config['additionalParams'])) { From 57ffdf47405aba1a51f08d9919347ce08fc1feeb Mon Sep 17 00:00:00 2001 From: mage2-team Date: Mon, 30 Apr 2018 05:17:33 -0700 Subject: [PATCH 402/555] MAGETWO-88697: Magento 2.1.13 Publication (build 2.1.13.013) --- .../Magento/AdminNotification/composer.json | 2 +- .../AdvancedPricingImportExport/composer.json | 2 +- app/code/Magento/Authorization/composer.json | 2 +- app/code/Magento/Authorizenet/composer.json | 2 +- app/code/Magento/Backend/composer.json | 2 +- app/code/Magento/Backup/composer.json | 2 +- app/code/Magento/Braintree/composer.json | 2 +- app/code/Magento/Bundle/composer.json | 2 +- .../Magento/BundleImportExport/composer.json | 2 +- .../Magento/CacheInvalidate/composer.json | 2 +- app/code/Magento/Captcha/composer.json | 2 +- app/code/Magento/Catalog/composer.json | 2 +- .../Magento/CatalogImportExport/composer.json | 2 +- .../Magento/CatalogInventory/composer.json | 2 +- app/code/Magento/CatalogRule/composer.json | 2 +- .../CatalogRuleConfigurable/composer.json | 2 +- app/code/Magento/CatalogSearch/composer.json | 2 +- .../Magento/CatalogUrlRewrite/composer.json | 2 +- app/code/Magento/CatalogWidget/composer.json | 2 +- app/code/Magento/Checkout/composer.json | 2 +- .../Magento/CheckoutAgreements/composer.json | 2 +- app/code/Magento/Cms/composer.json | 2 +- app/code/Magento/CmsUrlRewrite/composer.json | 2 +- app/code/Magento/Config/composer.json | 2 +- .../ConfigurableImportExport/composer.json | 2 +- .../Magento/ConfigurableProduct/composer.json | 2 +- app/code/Magento/Contact/composer.json | 2 +- app/code/Magento/Cookie/composer.json | 2 +- app/code/Magento/Cron/composer.json | 2 +- app/code/Magento/CurrencySymbol/composer.json | 2 +- app/code/Magento/Customer/composer.json | 2 +- .../CustomerImportExport/composer.json | 2 +- app/code/Magento/Deploy/composer.json | 2 +- app/code/Magento/Developer/composer.json | 2 +- app/code/Magento/Dhl/composer.json | 2 +- app/code/Magento/Directory/composer.json | 2 +- app/code/Magento/Downloadable/composer.json | 2 +- .../DownloadableImportExport/composer.json | 2 +- app/code/Magento/Eav/composer.json | 2 +- app/code/Magento/Email/composer.json | 2 +- app/code/Magento/EncryptionKey/composer.json | 2 +- app/code/Magento/Fedex/composer.json | 2 +- app/code/Magento/GiftMessage/composer.json | 2 +- app/code/Magento/GoogleAdwords/composer.json | 2 +- .../Magento/GoogleAnalytics/composer.json | 2 +- .../Magento/GoogleOptimizer/composer.json | 2 +- .../Magento/GroupedImportExport/composer.json | 2 +- app/code/Magento/GroupedProduct/composer.json | 2 +- app/code/Magento/ImportExport/composer.json | 2 +- app/code/Magento/Indexer/composer.json | 2 +- app/code/Magento/Integration/composer.json | 2 +- .../Magento/LayeredNavigation/composer.json | 2 +- app/code/Magento/Marketplace/composer.json | 2 +- app/code/Magento/MediaStorage/composer.json | 2 +- app/code/Magento/Msrp/composer.json | 2 +- app/code/Magento/Multishipping/composer.json | 2 +- .../Magento/NewRelicReporting/composer.json | 2 +- app/code/Magento/Newsletter/composer.json | 2 +- .../Magento/OfflinePayments/composer.json | 2 +- .../Magento/OfflineShipping/composer.json | 2 +- app/code/Magento/PageCache/composer.json | 2 +- app/code/Magento/Payment/composer.json | 2 +- app/code/Magento/Paypal/composer.json | 2 +- app/code/Magento/Persistent/composer.json | 2 +- app/code/Magento/ProductAlert/composer.json | 2 +- app/code/Magento/ProductVideo/composer.json | 2 +- app/code/Magento/Quote/composer.json | 2 +- app/code/Magento/Reports/composer.json | 2 +- app/code/Magento/RequireJs/composer.json | 2 +- app/code/Magento/Review/composer.json | 2 +- app/code/Magento/Robots/composer.json | 2 +- app/code/Magento/Rss/composer.json | 2 +- app/code/Magento/Rule/composer.json | 2 +- app/code/Magento/Sales/composer.json | 2 +- app/code/Magento/SalesInventory/composer.json | 2 +- app/code/Magento/SalesRule/composer.json | 2 +- app/code/Magento/SalesSequence/composer.json | 2 +- app/code/Magento/SampleData/composer.json | 2 +- app/code/Magento/Search/composer.json | 2 +- app/code/Magento/Security/composer.json | 2 +- app/code/Magento/SendFriend/composer.json | 2 +- app/code/Magento/Shipping/composer.json | 2 +- app/code/Magento/Sitemap/composer.json | 2 +- app/code/Magento/Store/composer.json | 2 +- app/code/Magento/Swagger/composer.json | 2 +- app/code/Magento/Swatches/composer.json | 2 +- .../SwatchesLayeredNavigation/composer.json | 2 +- app/code/Magento/Tax/composer.json | 2 +- .../Magento/TaxImportExport/composer.json | 2 +- app/code/Magento/Theme/composer.json | 2 +- app/code/Magento/Translation/composer.json | 2 +- app/code/Magento/Ui/composer.json | 2 +- app/code/Magento/Ups/composer.json | 2 +- app/code/Magento/UrlRewrite/composer.json | 2 +- app/code/Magento/User/composer.json | 2 +- app/code/Magento/Usps/composer.json | 2 +- app/code/Magento/Variable/composer.json | 2 +- app/code/Magento/Vault/composer.json | 2 +- app/code/Magento/Version/composer.json | 2 +- app/code/Magento/Webapi/composer.json | 2 +- app/code/Magento/WebapiSecurity/composer.json | 2 +- app/code/Magento/Weee/composer.json | 2 +- app/code/Magento/Widget/composer.json | 2 +- app/code/Magento/Wishlist/composer.json | 2 +- .../adminhtml/Magento/backend/composer.json | 2 +- .../frontend/Magento/blank/composer.json | 2 +- .../frontend/Magento/luma/composer.json | 2 +- app/i18n/Magento/de_DE/composer.json | 2 +- app/i18n/Magento/en_US/composer.json | 2 +- app/i18n/Magento/es_ES/composer.json | 2 +- app/i18n/Magento/fr_FR/composer.json | 2 +- app/i18n/Magento/nl_NL/composer.json | 2 +- app/i18n/Magento/pt_BR/composer.json | 2 +- app/i18n/Magento/zh_Hans_CN/composer.json | 2 +- composer.json | 232 +++++++++--------- composer.lock | 229 +++++++++-------- lib/internal/Magento/Framework/composer.json | 2 +- 117 files changed, 345 insertions(+), 346 deletions(-) diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json index cc0f1d9c5abbb..ca1ca07d44a50 100644 --- a/app/code/Magento/AdminNotification/composer.json +++ b/app/code/Magento/AdminNotification/composer.json @@ -10,7 +10,7 @@ "lib-libxml": "*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/AdvancedPricingImportExport/composer.json b/app/code/Magento/AdvancedPricingImportExport/composer.json index b52a4b8c3e532..19d3a4e96f82f 100644 --- a/app/code/Magento/AdvancedPricingImportExport/composer.json +++ b/app/code/Magento/AdvancedPricingImportExport/composer.json @@ -13,7 +13,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json index 0d50099d2e79f..5a19aeabb8b9b 100644 --- a/app/code/Magento/Authorization/composer.json +++ b/app/code/Magento/Authorization/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Authorizenet/composer.json b/app/code/Magento/Authorizenet/composer.json index 27c012020c1e6..d127e7527e21c 100644 --- a/app/code/Magento/Authorizenet/composer.json +++ b/app/code/Magento/Authorizenet/composer.json @@ -13,7 +13,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "proprietary" ], diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json index 2bd19145e94f5..ffbe1007d3a35 100644 --- a/app/code/Magento/Backend/composer.json +++ b/app/code/Magento/Backend/composer.json @@ -22,7 +22,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json index e0fd45697cca9..626899580e441 100644 --- a/app/code/Magento/Backup/composer.json +++ b/app/code/Magento/Backup/composer.json @@ -9,7 +9,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Braintree/composer.json b/app/code/Magento/Braintree/composer.json index f74b5d22c776a..107a29730a8f4 100644 --- a/app/code/Magento/Braintree/composer.json +++ b/app/code/Magento/Braintree/composer.json @@ -24,7 +24,7 @@ "magento/module-checkout-agreements": "100.1.*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "proprietary" ], diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json index 474275f00c069..66111e373a162 100644 --- a/app/code/Magento/Bundle/composer.json +++ b/app/code/Magento/Bundle/composer.json @@ -25,7 +25,7 @@ "magento/module-bundle-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/BundleImportExport/composer.json b/app/code/Magento/BundleImportExport/composer.json index 7ef6c6cd48f6b..3c6c318fccee6 100644 --- a/app/code/Magento/BundleImportExport/composer.json +++ b/app/code/Magento/BundleImportExport/composer.json @@ -11,7 +11,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CacheInvalidate/composer.json b/app/code/Magento/CacheInvalidate/composer.json index 01bbd0d8d97bd..c5051eed283ef 100644 --- a/app/code/Magento/CacheInvalidate/composer.json +++ b/app/code/Magento/CacheInvalidate/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json index 63f6b9c84279b..8216b31defa51 100644 --- a/app/code/Magento/Captcha/composer.json +++ b/app/code/Magento/Captcha/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json index c28a3855cbea4..5f0f089030160 100644 --- a/app/code/Magento/Catalog/composer.json +++ b/app/code/Magento/Catalog/composer.json @@ -33,7 +33,7 @@ "magento/module-catalog-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "101.0.12", + "version": "101.0.13", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json index 59412887bfaaf..920bf0941cd47 100644 --- a/app/code/Magento/CatalogImportExport/composer.json +++ b/app/code/Magento/CatalogImportExport/composer.json @@ -16,7 +16,7 @@ "ext-ctype": "*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json index 536d9a0b7ebc0..61ace08b645ec 100644 --- a/app/code/Magento/CatalogInventory/composer.json +++ b/app/code/Magento/CatalogInventory/composer.json @@ -13,7 +13,7 @@ "magento/module-ui": "100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json index b9d25a29e7f65..8c33932e08cdb 100644 --- a/app/code/Magento/CatalogRule/composer.json +++ b/app/code/Magento/CatalogRule/composer.json @@ -17,7 +17,7 @@ "magento/module-catalog-rule-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogRuleConfigurable/composer.json b/app/code/Magento/CatalogRuleConfigurable/composer.json index 2f01e9617e449..db6548145966d 100644 --- a/app/code/Magento/CatalogRuleConfigurable/composer.json +++ b/app/code/Magento/CatalogRuleConfigurable/composer.json @@ -14,7 +14,7 @@ "magento/module-catalog-rule": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json index 0990dc8b01349..281db72dfcd16 100644 --- a/app/code/Magento/CatalogSearch/composer.json +++ b/app/code/Magento/CatalogSearch/composer.json @@ -15,7 +15,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json index 5bbccfc4b77ae..c0abedfa012cc 100644 --- a/app/code/Magento/CatalogUrlRewrite/composer.json +++ b/app/code/Magento/CatalogUrlRewrite/composer.json @@ -14,7 +14,7 @@ "magento/module-ui": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CatalogWidget/composer.json b/app/code/Magento/CatalogWidget/composer.json index 734be1c11523e..29c38a350fe3b 100644 --- a/app/code/Magento/CatalogWidget/composer.json +++ b/app/code/Magento/CatalogWidget/composer.json @@ -14,7 +14,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json index 43f752fdd6869..041e9c4aa50bd 100644 --- a/app/code/Magento/Checkout/composer.json +++ b/app/code/Magento/Checkout/composer.json @@ -26,7 +26,7 @@ "magento/module-cookie": "100.1.*" }, "type": "magento2-module", - "version": "100.1.11", + "version": "100.1.12", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json index 82032daa092e8..0306f6b14e64e 100644 --- a/app/code/Magento/CheckoutAgreements/composer.json +++ b/app/code/Magento/CheckoutAgreements/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json index 649971c4a01fd..c9f2365548fbd 100644 --- a/app/code/Magento/Cms/composer.json +++ b/app/code/Magento/Cms/composer.json @@ -18,7 +18,7 @@ "magento/module-cms-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "101.0.10", + "version": "101.0.11", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json index b3a85874a3faf..fdc0a52cac714 100644 --- a/app/code/Magento/CmsUrlRewrite/composer.json +++ b/app/code/Magento/CmsUrlRewrite/composer.json @@ -9,7 +9,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Config/composer.json b/app/code/Magento/Config/composer.json index 238e0c80a38ce..c996a6d97d47a 100644 --- a/app/code/Magento/Config/composer.json +++ b/app/code/Magento/Config/composer.json @@ -15,7 +15,7 @@ "magento/module-deploy": "100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json index 542981da181fd..d4c32b905ed11 100644 --- a/app/code/Magento/ConfigurableImportExport/composer.json +++ b/app/code/Magento/ConfigurableImportExport/composer.json @@ -11,7 +11,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json index 8319b63075fe3..1e771034969d3 100644 --- a/app/code/Magento/ConfigurableProduct/composer.json +++ b/app/code/Magento/ConfigurableProduct/composer.json @@ -23,7 +23,7 @@ "magento/module-product-links-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.12", + "version": "100.1.13", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json index 401451d1f3977..628681ee2912a 100644 --- a/app/code/Magento/Contact/composer.json +++ b/app/code/Magento/Contact/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cookie/composer.json b/app/code/Magento/Cookie/composer.json index 0af97399a3e3e..3e8e4706324f6 100644 --- a/app/code/Magento/Cookie/composer.json +++ b/app/code/Magento/Cookie/composer.json @@ -10,7 +10,7 @@ "magento/module-backend": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json index e6a3d74dd06d3..72ea22c1abf56 100644 --- a/app/code/Magento/Cron/composer.json +++ b/app/code/Magento/Cron/composer.json @@ -10,7 +10,7 @@ "magento/module-config": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json index b49a56e4baa8b..29d3ce3a25392 100644 --- a/app/code/Magento/CurrencySymbol/composer.json +++ b/app/code/Magento/CurrencySymbol/composer.json @@ -11,7 +11,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json index ab91be082f482..53c8c633bcdbb 100644 --- a/app/code/Magento/Customer/composer.json +++ b/app/code/Magento/Customer/composer.json @@ -29,7 +29,7 @@ "magento/module-customer-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.11", + "version": "100.1.12", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json index b19596bb92aee..d6da01b001618 100644 --- a/app/code/Magento/CustomerImportExport/composer.json +++ b/app/code/Magento/CustomerImportExport/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Deploy/composer.json b/app/code/Magento/Deploy/composer.json index 1455f39aaa94a..0e1fe6851b695 100644 --- a/app/code/Magento/Deploy/composer.json +++ b/app/code/Magento/Deploy/composer.json @@ -9,7 +9,7 @@ "magento/module-user": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Developer/composer.json b/app/code/Magento/Developer/composer.json index 3f074b0f08667..2db8b7b844917 100644 --- a/app/code/Magento/Developer/composer.json +++ b/app/code/Magento/Developer/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json index c636c41f0c479..b1d801abd94ad 100644 --- a/app/code/Magento/Dhl/composer.json +++ b/app/code/Magento/Dhl/composer.json @@ -19,7 +19,7 @@ "magento/module-checkout": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json index 814bd48cc2e42..10c2b48d747dd 100644 --- a/app/code/Magento/Directory/composer.json +++ b/app/code/Magento/Directory/composer.json @@ -10,7 +10,7 @@ "lib-libxml": "*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json index 3c69445bcc4db..3642dc98d5965 100644 --- a/app/code/Magento/Downloadable/composer.json +++ b/app/code/Magento/Downloadable/composer.json @@ -25,7 +25,7 @@ "magento/module-downloadable-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/DownloadableImportExport/composer.json b/app/code/Magento/DownloadableImportExport/composer.json index 137b6e3db6fc8..b321bb764b984 100644 --- a/app/code/Magento/DownloadableImportExport/composer.json +++ b/app/code/Magento/DownloadableImportExport/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json index a5ce865abd11c..1b6b54ea7d921 100644 --- a/app/code/Magento/Eav/composer.json +++ b/app/code/Magento/Eav/composer.json @@ -11,7 +11,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.9", + "version": "100.1.10", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json index 268e870410687..8d72c33304f52 100644 --- a/app/code/Magento/Email/composer.json +++ b/app/code/Magento/Email/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/EncryptionKey/composer.json b/app/code/Magento/EncryptionKey/composer.json index 18430a9dc6cd2..347da260d4b1e 100644 --- a/app/code/Magento/EncryptionKey/composer.json +++ b/app/code/Magento/EncryptionKey/composer.json @@ -8,7 +8,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "proprietary" ], diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json index fa05ec535e762..ddb7a4acacdf4 100644 --- a/app/code/Magento/Fedex/composer.json +++ b/app/code/Magento/Fedex/composer.json @@ -15,7 +15,7 @@ "lib-libxml": "*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json index a5e64bf0510f5..e4f6a8034c244 100644 --- a/app/code/Magento/GiftMessage/composer.json +++ b/app/code/Magento/GiftMessage/composer.json @@ -17,7 +17,7 @@ "magento/module-multishipping": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json index 978bfec048d72..46bf25e507c67 100644 --- a/app/code/Magento/GoogleAdwords/composer.json +++ b/app/code/Magento/GoogleAdwords/composer.json @@ -8,7 +8,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json index 19a92b342f749..d43d38a6bf3e6 100644 --- a/app/code/Magento/GoogleAnalytics/composer.json +++ b/app/code/Magento/GoogleAnalytics/composer.json @@ -9,7 +9,7 @@ "magento/module-cookie": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json index 4b239d8b0d841..1a7ba2ae079f9 100644 --- a/app/code/Magento/GoogleOptimizer/composer.json +++ b/app/code/Magento/GoogleOptimizer/composer.json @@ -12,7 +12,7 @@ "magento/module-ui": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json index ffff3da95ee29..4a1ea82244444 100644 --- a/app/code/Magento/GroupedImportExport/composer.json +++ b/app/code/Magento/GroupedImportExport/composer.json @@ -11,7 +11,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json index de98bc401b0bc..62c09e6074357 100644 --- a/app/code/Magento/GroupedProduct/composer.json +++ b/app/code/Magento/GroupedProduct/composer.json @@ -21,7 +21,7 @@ "magento/module-grouped-product-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json index 4f3b3a04a287c..fb91b9fba1742 100644 --- a/app/code/Magento/ImportExport/composer.json +++ b/app/code/Magento/ImportExport/composer.json @@ -11,7 +11,7 @@ "ext-ctype": "*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json index ccd49b04facbf..3a19601a31133 100644 --- a/app/code/Magento/Indexer/composer.json +++ b/app/code/Magento/Indexer/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json index d99534f1b4d72..c2902815f2958 100644 --- a/app/code/Magento/Integration/composer.json +++ b/app/code/Magento/Integration/composer.json @@ -12,7 +12,7 @@ "magento/module-authorization": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json index 276adcb7c9dd0..78d84bd51e7ea 100644 --- a/app/code/Magento/LayeredNavigation/composer.json +++ b/app/code/Magento/LayeredNavigation/composer.json @@ -8,7 +8,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Marketplace/composer.json b/app/code/Magento/Marketplace/composer.json index 11fd465e177b9..deac1cc4780cc 100644 --- a/app/code/Magento/Marketplace/composer.json +++ b/app/code/Magento/Marketplace/composer.json @@ -7,7 +7,7 @@ "magento/module-backend": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/MediaStorage/composer.json b/app/code/Magento/MediaStorage/composer.json index 628387436f522..22f07e1747e00 100644 --- a/app/code/Magento/MediaStorage/composer.json +++ b/app/code/Magento/MediaStorage/composer.json @@ -9,7 +9,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Msrp/composer.json b/app/code/Magento/Msrp/composer.json index 96196da0f11a8..0c9d39da67e8d 100644 --- a/app/code/Magento/Msrp/composer.json +++ b/app/code/Magento/Msrp/composer.json @@ -16,7 +16,7 @@ "magento/module-msrp-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json index cf3abc07a83f8..1183e5e44600d 100644 --- a/app/code/Magento/Multishipping/composer.json +++ b/app/code/Magento/Multishipping/composer.json @@ -14,7 +14,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/NewRelicReporting/composer.json b/app/code/Magento/NewRelicReporting/composer.json index 9440dfae7b988..2d3d3649dfd42 100644 --- a/app/code/Magento/NewRelicReporting/composer.json +++ b/app/code/Magento/NewRelicReporting/composer.json @@ -13,7 +13,7 @@ "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json index 733568f17916b..c3b6feb158d96 100644 --- a/app/code/Magento/Newsletter/composer.json +++ b/app/code/Magento/Newsletter/composer.json @@ -15,7 +15,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json index 404e6e9619285..11ee83313d760 100644 --- a/app/code/Magento/OfflinePayments/composer.json +++ b/app/code/Magento/OfflinePayments/composer.json @@ -8,7 +8,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json index 419e57aaa44ff..be2187077d3dc 100644 --- a/app/code/Magento/OfflineShipping/composer.json +++ b/app/code/Magento/OfflineShipping/composer.json @@ -19,7 +19,7 @@ "magento/module-offline-shipping-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json index 7d789cc753f82..fcf7c90a9a6e8 100644 --- a/app/code/Magento/PageCache/composer.json +++ b/app/code/Magento/PageCache/composer.json @@ -9,7 +9,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json index 81e7dc53d56de..8adac0125dffc 100644 --- a/app/code/Magento/Payment/composer.json +++ b/app/code/Magento/Payment/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Paypal/composer.json b/app/code/Magento/Paypal/composer.json index b389927471723..a183129b7d867 100644 --- a/app/code/Magento/Paypal/composer.json +++ b/app/code/Magento/Paypal/composer.json @@ -25,7 +25,7 @@ "magento/module-checkout-agreements": "100.1.*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "proprietary" ], diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json index 1293dce77941f..57a27aa97a61c 100644 --- a/app/code/Magento/Persistent/composer.json +++ b/app/code/Magento/Persistent/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json index 1e54998731794..979e006419218 100644 --- a/app/code/Magento/ProductAlert/composer.json +++ b/app/code/Magento/ProductAlert/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/ProductVideo/composer.json b/app/code/Magento/ProductVideo/composer.json index b99745ddc0dff..933e5497d9013 100644 --- a/app/code/Magento/ProductVideo/composer.json +++ b/app/code/Magento/ProductVideo/composer.json @@ -15,7 +15,7 @@ "magento/module-customer": "100.1.*" }, "type": "magento2-module", - "version": "100.1.8", + "version": "100.1.9", "license": [ "proprietary" ], diff --git a/app/code/Magento/Quote/composer.json b/app/code/Magento/Quote/composer.json index 1f4931b5a34f6..6849f34d9aa94 100644 --- a/app/code/Magento/Quote/composer.json +++ b/app/code/Magento/Quote/composer.json @@ -20,7 +20,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json index 176c972ad45ba..968d201d577dc 100644 --- a/app/code/Magento/Reports/composer.json +++ b/app/code/Magento/Reports/composer.json @@ -22,7 +22,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json index 4f0d3028a3b60..3c05a8bf63982 100644 --- a/app/code/Magento/RequireJs/composer.json +++ b/app/code/Magento/RequireJs/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json index cd7114721bf40..4bb76ead4a548 100644 --- a/app/code/Magento/Review/composer.json +++ b/app/code/Magento/Review/composer.json @@ -18,7 +18,7 @@ "magento/module-review-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Robots/composer.json b/app/code/Magento/Robots/composer.json index 218a59138d998..a23211c6fa5d3 100644 --- a/app/code/Magento/Robots/composer.json +++ b/app/code/Magento/Robots/composer.json @@ -10,7 +10,7 @@ "magento/module-theme": "100.1.*" }, "type": "magento2-module", - "version": "100.1.0", + "version": "100.1.1", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json index 2202ad5ceabfd..dec7ee02e5196 100644 --- a/app/code/Magento/Rss/composer.json +++ b/app/code/Magento/Rss/composer.json @@ -9,7 +9,7 @@ "magento/module-customer": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json index 5744235ab0bd8..18b3ac2ee98d9 100644 --- a/app/code/Magento/Rule/composer.json +++ b/app/code/Magento/Rule/composer.json @@ -11,7 +11,7 @@ "lib-libxml": "*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json index 4e54681e1525f..d39a344ce9ca3 100644 --- a/app/code/Magento/Sales/composer.json +++ b/app/code/Magento/Sales/composer.json @@ -32,7 +32,7 @@ "magento/module-sales-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.10", + "version": "100.1.11", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SalesInventory/composer.json b/app/code/Magento/SalesInventory/composer.json index 783382f0d4af6..1efbde227d20c 100644 --- a/app/code/Magento/SalesInventory/composer.json +++ b/app/code/Magento/SalesInventory/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SalesRule/composer.json b/app/code/Magento/SalesRule/composer.json index 77bca4537aeaf..ce3923b8c648c 100644 --- a/app/code/Magento/SalesRule/composer.json +++ b/app/code/Magento/SalesRule/composer.json @@ -25,7 +25,7 @@ "magento/module-sales-rule-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SalesSequence/composer.json b/app/code/Magento/SalesSequence/composer.json index 32397fa0399c3..c51e9704c051a 100644 --- a/app/code/Magento/SalesSequence/composer.json +++ b/app/code/Magento/SalesSequence/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SampleData/composer.json b/app/code/Magento/SampleData/composer.json index 99d41c91d09ef..07f6d6e7cd3e6 100644 --- a/app/code/Magento/SampleData/composer.json +++ b/app/code/Magento/SampleData/composer.json @@ -9,7 +9,7 @@ "magento/sample-data-media": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Search/composer.json b/app/code/Magento/Search/composer.json index c8ffd9323e561..d3fd9854b5f1a 100644 --- a/app/code/Magento/Search/composer.json +++ b/app/code/Magento/Search/composer.json @@ -11,7 +11,7 @@ "magento/module-ui": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Security/composer.json b/app/code/Magento/Security/composer.json index 0bd8008b96689..a20481d091c6e 100644 --- a/app/code/Magento/Security/composer.json +++ b/app/code/Magento/Security/composer.json @@ -11,7 +11,7 @@ "magento/module-customer": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/SendFriend/composer.json b/app/code/Magento/SendFriend/composer.json index afda90dea6059..523ee5de43b42 100644 --- a/app/code/Magento/SendFriend/composer.json +++ b/app/code/Magento/SendFriend/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Shipping/composer.json b/app/code/Magento/Shipping/composer.json index 7bedac5d38778..58c58ab4f5555 100644 --- a/app/code/Magento/Shipping/composer.json +++ b/app/code/Magento/Shipping/composer.json @@ -24,7 +24,7 @@ "magento/module-ups": "100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Sitemap/composer.json b/app/code/Magento/Sitemap/composer.json index 0342f5ba00965..4f5ff36017ba5 100644 --- a/app/code/Magento/Sitemap/composer.json +++ b/app/code/Magento/Sitemap/composer.json @@ -14,7 +14,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json index c830c6c071c52..d14fbc6d9ae57 100644 --- a/app/code/Magento/Store/composer.json +++ b/app/code/Magento/Store/composer.json @@ -14,7 +14,7 @@ "magento/module-deploy": "100.1.*" }, "type": "magento2-module", - "version": "100.1.9", + "version": "100.1.10", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Swagger/composer.json b/app/code/Magento/Swagger/composer.json index eef7a23fe1806..770261260acda 100644 --- a/app/code/Magento/Swagger/composer.json +++ b/app/code/Magento/Swagger/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Swatches/composer.json b/app/code/Magento/Swatches/composer.json index d4514b4c13144..648f61329ade3 100644 --- a/app/code/Magento/Swatches/composer.json +++ b/app/code/Magento/Swatches/composer.json @@ -19,7 +19,7 @@ "magento/module-swatches-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.10", + "version": "100.1.11", "license": [ "proprietary" ], diff --git a/app/code/Magento/SwatchesLayeredNavigation/composer.json b/app/code/Magento/SwatchesLayeredNavigation/composer.json index 11dd456885353..99823150e378d 100644 --- a/app/code/Magento/SwatchesLayeredNavigation/composer.json +++ b/app/code/Magento/SwatchesLayeredNavigation/composer.json @@ -7,7 +7,7 @@ "magento/magento-composer-installer": "*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Tax/composer.json b/app/code/Magento/Tax/composer.json index 75e91ef3e2cac..67a656e47e083 100644 --- a/app/code/Magento/Tax/composer.json +++ b/app/code/Magento/Tax/composer.json @@ -22,7 +22,7 @@ "magento/module-tax-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/TaxImportExport/composer.json b/app/code/Magento/TaxImportExport/composer.json index 184b545ec06b0..21f645b3dc3ab 100644 --- a/app/code/Magento/TaxImportExport/composer.json +++ b/app/code/Magento/TaxImportExport/composer.json @@ -10,7 +10,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json index 61a8e728e2236..a3cfa4cbe9b4a 100644 --- a/app/code/Magento/Theme/composer.json +++ b/app/code/Magento/Theme/composer.json @@ -21,7 +21,7 @@ "magento/module-theme-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.9", + "version": "100.1.10", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Translation/composer.json b/app/code/Magento/Translation/composer.json index b776021b248cd..936a6e9dfef88 100644 --- a/app/code/Magento/Translation/composer.json +++ b/app/code/Magento/Translation/composer.json @@ -13,7 +13,7 @@ "magento/module-deploy": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Ui/composer.json b/app/code/Magento/Ui/composer.json index 403269f894136..c9bc0aa0d64ee 100644 --- a/app/code/Magento/Ui/composer.json +++ b/app/code/Magento/Ui/composer.json @@ -10,7 +10,7 @@ "magento/module-user": "100.1.*" }, "type": "magento2-module", - "version": "100.1.10", + "version": "100.1.11", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Ups/composer.json b/app/code/Magento/Ups/composer.json index 4ce3e2e20cc12..8f81ad73aa08c 100644 --- a/app/code/Magento/Ups/composer.json +++ b/app/code/Magento/Ups/composer.json @@ -13,7 +13,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/UrlRewrite/composer.json b/app/code/Magento/UrlRewrite/composer.json index 639d60653e293..af0be1814df91 100644 --- a/app/code/Magento/UrlRewrite/composer.json +++ b/app/code/Magento/UrlRewrite/composer.json @@ -12,7 +12,7 @@ "magento/module-cms-url-rewrite": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json index 7d207ffbaf86d..e7e39cea332f0 100644 --- a/app/code/Magento/User/composer.json +++ b/app/code/Magento/User/composer.json @@ -12,7 +12,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.4", + "version": "100.1.5", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json index e79d6c05b0d31..09fa8ed8b7445 100644 --- a/app/code/Magento/Usps/composer.json +++ b/app/code/Magento/Usps/composer.json @@ -15,7 +15,7 @@ "lib-libxml": "*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Variable/composer.json b/app/code/Magento/Variable/composer.json index 3cd7db9f5fa9b..fa5318c980c71 100644 --- a/app/code/Magento/Variable/composer.json +++ b/app/code/Magento/Variable/composer.json @@ -9,7 +9,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Vault/composer.json b/app/code/Magento/Vault/composer.json index 3618ffda9f043..ad4be58226e51 100644 --- a/app/code/Magento/Vault/composer.json +++ b/app/code/Magento/Vault/composer.json @@ -13,7 +13,7 @@ "magento/module-theme": "100.1.*" }, "type": "magento2-module", - "version": "100.2.2", + "version": "100.2.3", "license": [ "proprietary" ], diff --git a/app/code/Magento/Version/composer.json b/app/code/Magento/Version/composer.json index bed6c5367eb80..00fa9a97d4b2c 100644 --- a/app/code/Magento/Version/composer.json +++ b/app/code/Magento/Version/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Webapi/composer.json b/app/code/Magento/Webapi/composer.json index b4726720cb731..f935fd12cee64 100644 --- a/app/code/Magento/Webapi/composer.json +++ b/app/code/Magento/Webapi/composer.json @@ -14,7 +14,7 @@ "magento/module-customer": "100.1.*" }, "type": "magento2-module", - "version": "100.1.5", + "version": "100.1.6", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/WebapiSecurity/composer.json b/app/code/Magento/WebapiSecurity/composer.json index a937fd11b9eb2..e99e5626b9246 100644 --- a/app/code/Magento/WebapiSecurity/composer.json +++ b/app/code/Magento/WebapiSecurity/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Weee/composer.json b/app/code/Magento/Weee/composer.json index 5e0b95168269f..24e694f1108fe 100644 --- a/app/code/Magento/Weee/composer.json +++ b/app/code/Magento/Weee/composer.json @@ -18,7 +18,7 @@ "magento/module-ui": "100.1.*" }, "type": "magento2-module", - "version": "100.1.2", + "version": "100.1.3", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Widget/composer.json b/app/code/Magento/Widget/composer.json index 307cb6007d6da..54bcddc835670 100644 --- a/app/code/Magento/Widget/composer.json +++ b/app/code/Magento/Widget/composer.json @@ -16,7 +16,7 @@ "magento/module-widget-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.6", + "version": "100.1.7", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/code/Magento/Wishlist/composer.json b/app/code/Magento/Wishlist/composer.json index 1c0cade018a4e..4bf6895b01b79 100644 --- a/app/code/Magento/Wishlist/composer.json +++ b/app/code/Magento/Wishlist/composer.json @@ -24,7 +24,7 @@ "magento/module-wishlist-sample-data": "Sample Data version:100.1.*" }, "type": "magento2-module", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/adminhtml/Magento/backend/composer.json b/app/design/adminhtml/Magento/backend/composer.json index d92f18488f3b9..943ed7a3de9dc 100644 --- a/app/design/adminhtml/Magento/backend/composer.json +++ b/app/design/adminhtml/Magento/backend/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-theme", - "version": "100.1.3", + "version": "100.1.4", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/frontend/Magento/blank/composer.json b/app/design/frontend/Magento/blank/composer.json index a9b0f41c244ae..57dac63f88f9e 100644 --- a/app/design/frontend/Magento/blank/composer.json +++ b/app/design/frontend/Magento/blank/composer.json @@ -6,7 +6,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-theme", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/design/frontend/Magento/luma/composer.json b/app/design/frontend/Magento/luma/composer.json index c384fca399c73..689a3b69ec652 100644 --- a/app/design/frontend/Magento/luma/composer.json +++ b/app/design/frontend/Magento/luma/composer.json @@ -7,7 +7,7 @@ "magento/framework": "100.1.*" }, "type": "magento2-theme", - "version": "100.1.7", + "version": "100.1.8", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/de_DE/composer.json b/app/i18n/Magento/de_DE/composer.json index 69754a3d36275..87fc7768723ef 100644 --- a/app/i18n/Magento/de_DE/composer.json +++ b/app/i18n/Magento/de_DE/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-de_de", "description": "German (Germany) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/en_US/composer.json b/app/i18n/Magento/en_US/composer.json index e6a0dce3ca405..07a53bd955369 100644 --- a/app/i18n/Magento/en_US/composer.json +++ b/app/i18n/Magento/en_US/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-en_us", "description": "English (United States) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/es_ES/composer.json b/app/i18n/Magento/es_ES/composer.json index 0d4730969311c..b8864fdee92d2 100644 --- a/app/i18n/Magento/es_ES/composer.json +++ b/app/i18n/Magento/es_ES/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-es_es", "description": "Spanish (Spain) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/fr_FR/composer.json b/app/i18n/Magento/fr_FR/composer.json index 2f9b6693bc356..92e7b98e3f2b4 100644 --- a/app/i18n/Magento/fr_FR/composer.json +++ b/app/i18n/Magento/fr_FR/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-fr_fr", "description": "French (France) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/nl_NL/composer.json b/app/i18n/Magento/nl_NL/composer.json index bb7ae85ee1231..d3ee1f1b0f10b 100644 --- a/app/i18n/Magento/nl_NL/composer.json +++ b/app/i18n/Magento/nl_NL/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-nl_nl", "description": "Dutch (Netherlands) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/pt_BR/composer.json b/app/i18n/Magento/pt_BR/composer.json index 8e5615bcb80ca..a786aade7d7d3 100644 --- a/app/i18n/Magento/pt_BR/composer.json +++ b/app/i18n/Magento/pt_BR/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-pt_br", "description": "Portuguese (Brazil) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/app/i18n/Magento/zh_Hans_CN/composer.json b/app/i18n/Magento/zh_Hans_CN/composer.json index 6072102fb3b35..b277e6c1bea08 100644 --- a/app/i18n/Magento/zh_Hans_CN/composer.json +++ b/app/i18n/Magento/zh_Hans_CN/composer.json @@ -1,7 +1,7 @@ { "name": "magento/language-zh_hans_cn", "description": "Chinese (China) language", - "version": "100.1.1", + "version": "100.1.2", "license": [ "OSL-3.0", "AFL-3.0" diff --git a/composer.json b/composer.json index 2a0175e3464f0..fb1d8c17f5902 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "magento/magento2ce", "description": "Magento 2 (Community Edition)", "type": "project", - "version": "2.1.13-dev", + "version": "2.1.13", "license": [ "OSL-3.0", "AFL-3.0" @@ -76,121 +76,121 @@ "sebastian/phpcpd": "2.0.0" }, "replace": { - "magento/module-marketplace": "100.1.2", - "magento/module-admin-notification": "100.1.3", - "magento/module-advanced-pricing-import-export": "100.1.3", - "magento/module-authorization": "100.1.2", - "magento/module-authorizenet": "100.1.6", - "magento/module-backend": "100.1.7", - "magento/module-backup": "100.1.5", - "magento/module-braintree": "100.1.8", - "magento/module-bundle": "100.1.6", - "magento/module-bundle-import-export": "100.1.4", - "magento/module-cache-invalidate": "100.1.3", - "magento/module-captcha": "100.1.3", - "magento/module-catalog": "101.0.12", - "magento/module-catalog-import-export": "100.1.8", - "magento/module-catalog-inventory": "100.1.7", - "magento/module-catalog-rule": "100.1.5", - "magento/module-catalog-rule-configurable": "100.1.3", - "magento/module-catalog-search": "100.1.8", - "magento/module-catalog-url-rewrite": "100.1.5", - "magento/module-catalog-widget": "100.1.4", - "magento/module-checkout": "100.1.11", - "magento/module-checkout-agreements": "100.1.3", - "magento/module-cms": "101.0.10", - "magento/module-cms-url-rewrite": "100.1.3", - "magento/module-config": "100.1.7", - "magento/module-configurable-import-export": "100.1.3", - "magento/module-configurable-product": "100.1.12", - "magento/module-contact": "100.1.3", - "magento/module-cookie": "100.1.3", - "magento/module-cron": "100.1.4", - "magento/module-currency-symbol": "100.1.3", - "magento/module-customer": "100.1.11", - "magento/module-customer-import-export": "100.1.5", - "magento/module-deploy": "100.1.6", - "magento/module-developer": "100.1.3", - "magento/module-dhl": "100.1.3", - "magento/module-directory": "100.1.5", - "magento/module-downloadable": "100.1.5", - "magento/module-downloadable-import-export": "100.1.2", - "magento/module-eav": "100.1.9", - "magento/module-email": "100.1.6", - "magento/module-encryption-key": "100.1.2", - "magento/module-fedex": "100.1.4", - "magento/module-gift-message": "100.1.4", - "magento/module-google-adwords": "100.1.2", - "magento/module-google-analytics": "100.1.2", - "magento/module-google-optimizer": "100.1.2", - "magento/module-grouped-import-export": "100.1.2", - "magento/module-grouped-product": "100.1.4", - "magento/module-import-export": "100.1.7", - "magento/module-indexer": "100.1.5", - "magento/module-integration": "100.1.6", - "magento/module-layered-navigation": "100.1.2", - "magento/module-media-storage": "100.1.3", - "magento/module-msrp": "100.1.3", - "magento/module-multishipping": "100.1.3", - "magento/module-new-relic-reporting": "100.1.3", - "magento/module-newsletter": "100.1.6", - "magento/module-offline-payments": "100.1.2", - "magento/module-offline-shipping": "100.1.4", - "magento/module-page-cache": "100.1.5", - "magento/module-payment": "100.1.8", - "magento/module-paypal": "100.1.8", - "magento/module-persistent": "100.1.4", - "magento/module-product-alert": "100.1.3", - "magento/module-product-video": "100.1.8", - "magento/module-quote": "100.1.7", - "magento/module-reports": "100.1.7", - "magento/module-require-js": "100.1.3", - "magento/module-review": "100.1.6", - "magento/module-robots": "100.1.0", - "magento/module-rss": "100.1.3", - "magento/module-rule": "100.1.7", - "magento/module-sales": "100.1.10", - "magento/module-sales-rule": "100.1.6", - "magento/module-sales-inventory": "100.1.1", - "magento/module-sales-sequence": "100.1.3", - "magento/module-sample-data": "100.1.4", - "magento/module-search": "100.1.4", - "magento/module-security": "100.1.3", - "magento/module-send-friend": "100.1.2", - "magento/module-shipping": "100.1.6", - "magento/module-sitemap": "100.1.5", - "magento/module-store": "100.1.9", - "magento/module-swagger": "100.1.2", - "magento/module-swatches": "100.1.10", - "magento/module-swatches-layered-navigation": "100.1.2", - "magento/module-tax": "100.1.4", - "magento/module-tax-import-export": "100.1.2", - "magento/module-theme": "100.1.9", - "magento/module-translation": "100.1.4", - "magento/module-ui": "100.1.10", - "magento/module-ups": "100.1.4", - "magento/module-url-rewrite": "100.1.4", - "magento/module-user": "100.1.4", - "magento/module-usps": "100.1.5", - "magento/module-variable": "100.1.3", - "magento/module-vault": "100.2.2", - "magento/module-version": "100.1.2", - "magento/module-webapi": "100.1.5", - "magento/module-webapi-security": "100.1.2", - "magento/module-weee": "100.1.2", - "magento/module-widget": "100.1.6", - "magento/module-wishlist": "100.1.7", - "magento/theme-adminhtml-backend": "100.1.3", - "magento/theme-frontend-blank": "100.1.7", - "magento/theme-frontend-luma": "100.1.7", - "magento/language-de_de": "100.1.1", - "magento/language-en_us": "100.1.1", - "magento/language-es_es": "100.1.1", - "magento/language-fr_fr": "100.1.1", - "magento/language-nl_nl": "100.1.1", - "magento/language-pt_br": "100.1.1", - "magento/language-zh_hans_cn": "100.1.1", - "magento/framework": "100.1.12", + "magento/module-marketplace": "100.1.3", + "magento/module-admin-notification": "100.1.4", + "magento/module-advanced-pricing-import-export": "100.1.4", + "magento/module-authorization": "100.1.3", + "magento/module-authorizenet": "100.1.7", + "magento/module-backend": "100.1.8", + "magento/module-backup": "100.1.6", + "magento/module-braintree": "100.1.9", + "magento/module-bundle": "100.1.7", + "magento/module-bundle-import-export": "100.1.5", + "magento/module-cache-invalidate": "100.1.4", + "magento/module-captcha": "100.1.4", + "magento/module-catalog": "101.0.13", + "magento/module-catalog-import-export": "100.1.9", + "magento/module-catalog-inventory": "100.1.8", + "magento/module-catalog-rule": "100.1.6", + "magento/module-catalog-rule-configurable": "100.1.4", + "magento/module-catalog-search": "100.1.9", + "magento/module-catalog-url-rewrite": "100.1.6", + "magento/module-catalog-widget": "100.1.5", + "magento/module-checkout": "100.1.12", + "magento/module-checkout-agreements": "100.1.4", + "magento/module-cms": "101.0.11", + "magento/module-cms-url-rewrite": "100.1.4", + "magento/module-config": "100.1.8", + "magento/module-configurable-import-export": "100.1.4", + "magento/module-configurable-product": "100.1.13", + "magento/module-contact": "100.1.4", + "magento/module-cookie": "100.1.4", + "magento/module-cron": "100.1.5", + "magento/module-currency-symbol": "100.1.4", + "magento/module-customer": "100.1.12", + "magento/module-customer-import-export": "100.1.6", + "magento/module-deploy": "100.1.7", + "magento/module-developer": "100.1.4", + "magento/module-dhl": "100.1.4", + "magento/module-directory": "100.1.6", + "magento/module-downloadable": "100.1.6", + "magento/module-downloadable-import-export": "100.1.3", + "magento/module-eav": "100.1.10", + "magento/module-email": "100.1.7", + "magento/module-encryption-key": "100.1.3", + "magento/module-fedex": "100.1.5", + "magento/module-gift-message": "100.1.5", + "magento/module-google-adwords": "100.1.3", + "magento/module-google-analytics": "100.1.3", + "magento/module-google-optimizer": "100.1.3", + "magento/module-grouped-import-export": "100.1.3", + "magento/module-grouped-product": "100.1.5", + "magento/module-import-export": "100.1.8", + "magento/module-indexer": "100.1.6", + "magento/module-integration": "100.1.7", + "magento/module-layered-navigation": "100.1.3", + "magento/module-media-storage": "100.1.4", + "magento/module-msrp": "100.1.4", + "magento/module-multishipping": "100.1.4", + "magento/module-new-relic-reporting": "100.1.4", + "magento/module-newsletter": "100.1.7", + "magento/module-offline-payments": "100.1.3", + "magento/module-offline-shipping": "100.1.5", + "magento/module-page-cache": "100.1.6", + "magento/module-payment": "100.1.9", + "magento/module-paypal": "100.1.9", + "magento/module-persistent": "100.1.5", + "magento/module-product-alert": "100.1.4", + "magento/module-product-video": "100.1.9", + "magento/module-quote": "100.1.8", + "magento/module-reports": "100.1.8", + "magento/module-require-js": "100.1.4", + "magento/module-review": "100.1.7", + "magento/module-robots": "100.1.1", + "magento/module-rss": "100.1.4", + "magento/module-rule": "100.1.8", + "magento/module-sales": "100.1.11", + "magento/module-sales-rule": "100.1.7", + "magento/module-sales-inventory": "100.1.2", + "magento/module-sales-sequence": "100.1.4", + "magento/module-sample-data": "100.1.5", + "magento/module-search": "100.1.5", + "magento/module-security": "100.1.4", + "magento/module-send-friend": "100.1.3", + "magento/module-shipping": "100.1.7", + "magento/module-sitemap": "100.1.6", + "magento/module-store": "100.1.10", + "magento/module-swagger": "100.1.3", + "magento/module-swatches": "100.1.11", + "magento/module-swatches-layered-navigation": "100.1.3", + "magento/module-tax": "100.1.5", + "magento/module-tax-import-export": "100.1.3", + "magento/module-theme": "100.1.10", + "magento/module-translation": "100.1.5", + "magento/module-ui": "100.1.11", + "magento/module-ups": "100.1.5", + "magento/module-url-rewrite": "100.1.5", + "magento/module-user": "100.1.5", + "magento/module-usps": "100.1.6", + "magento/module-variable": "100.1.4", + "magento/module-vault": "100.2.3", + "magento/module-version": "100.1.3", + "magento/module-webapi": "100.1.6", + "magento/module-webapi-security": "100.1.3", + "magento/module-weee": "100.1.3", + "magento/module-widget": "100.1.7", + "magento/module-wishlist": "100.1.8", + "magento/theme-adminhtml-backend": "100.1.4", + "magento/theme-frontend-blank": "100.1.8", + "magento/theme-frontend-luma": "100.1.8", + "magento/language-de_de": "100.1.2", + "magento/language-en_us": "100.1.2", + "magento/language-es_es": "100.1.2", + "magento/language-fr_fr": "100.1.2", + "magento/language-nl_nl": "100.1.2", + "magento/language-pt_br": "100.1.2", + "magento/language-zh_hans_cn": "100.1.2", + "magento/framework": "100.1.13", "trentrichardson/jquery-timepicker-addon": "1.4.3", "components/jquery": "1.11.0", "blueimp/jquery-file-upload": "5.6.14", diff --git a/composer.lock b/composer.lock index 201a096bee7be..91a27ed40ebc1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "e464539aa55c7a8134e5484c982effda", - "content-hash": "24e3a52cb33495583ba541bd65bdcfff", + "content-hash": "b065907147841e378c6696e652fbff3d", "packages": [ { "name": "braintree/braintree_php", @@ -52,7 +51,7 @@ } ], "description": "Braintree PHP Client Library", - "time": "2015-11-19 19:14:47" + "time": "2015-11-19T19:14:47+00:00" }, { "name": "colinmollenhour/cache-backend-file", @@ -88,7 +87,7 @@ ], "description": "The stock Zend_Cache_Backend_File backend has extremely poor performance for cleaning by tags making it become unusable as the number of cached items increases. This backend makes many changes resulting in a huge performance boost, especially for tag cleaning.", "homepage": "https://github.com/colinmollenhour/Cm_Cache_Backend_File", - "time": "2016-05-02 16:24:47" + "time": "2016-05-02T16:24:47+00:00" }, { "name": "colinmollenhour/cache-backend-redis", @@ -96,12 +95,12 @@ "source": { "type": "git", "url": "https://github.com/colinmollenhour/Cm_Cache_Backend_Redis.git", - "reference": "6319714bb3a4fe699c5db0edb887f5e8fe40a6dc" + "reference": "155f4dc20240aae06dd5cb8747475f37974d053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/colinmollenhour/Cm_Cache_Backend_Redis/zipball/6319714bb3a4fe699c5db0edb887f5e8fe40a6dc", - "reference": "6319714bb3a4fe699c5db0edb887f5e8fe40a6dc", + "url": "https://api.github.com/repos/colinmollenhour/Cm_Cache_Backend_Redis/zipball/155f4dc20240aae06dd5cb8747475f37974d053a", + "reference": "155f4dc20240aae06dd5cb8747475f37974d053a", "shasum": "" }, "require": { @@ -124,7 +123,7 @@ ], "description": "Zend_Cache backend using Redis with full support for tags.", "homepage": "https://github.com/colinmollenhour/Cm_Cache_Backend_Redis", - "time": "2016-05-02 16:23:36" + "time": "2016-05-02T16:23:36+00:00" }, { "name": "colinmollenhour/credis", @@ -164,7 +163,7 @@ ], "description": "Credis is a lightweight interface to the Redis key-value store which wraps the phpredis library when available for better performance.", "homepage": "https://github.com/colinmollenhour/credis", - "time": "2017-07-05 15:32:38" + "time": "2017-07-05T15:32:38+00:00" }, { "name": "colinmollenhour/php-redis-session-abstract", @@ -201,7 +200,7 @@ ], "description": "A Redis-based session handler with optimistic locking", "homepage": "https://github.com/colinmollenhour/php-redis-session-abstract", - "time": "2017-03-22 16:13:03" + "time": "2017-03-22T16:13:03+00:00" }, { "name": "composer/composer", @@ -276,7 +275,7 @@ "dependency", "package" ], - "time": "2016-03-03 15:15:10" + "time": "2016-03-03T15:15:10+00:00" }, { "name": "composer/semver", @@ -338,7 +337,7 @@ "validation", "versioning" ], - "time": "2016-08-30 16:08:34" + "time": "2016-08-30T16:08:34+00:00" }, { "name": "composer/spdx-licenses", @@ -399,7 +398,7 @@ "spdx", "validator" ], - "time": "2018-01-31 13:17:27" + "time": "2018-01-31T13:17:27+00:00" }, { "name": "justinrainbow/json-schema", @@ -465,7 +464,7 @@ "json", "schema" ], - "time": "2016-01-25 15:43:01" + "time": "2016-01-25T15:43:01+00:00" }, { "name": "league/climate", @@ -514,7 +513,7 @@ "php", "terminal" ], - "time": "2015-01-18 14:31:58" + "time": "2015-01-18T14:31:58+00:00" }, { "name": "magento/composer", @@ -550,7 +549,7 @@ "AFL-3.0" ], "description": "Magento composer library helps to instantiate Composer application and run composer commands.", - "time": "2016-03-08 20:50:51" + "time": "2016-03-08T20:50:51+00:00" }, { "name": "magento/magento-composer-installer", @@ -629,7 +628,7 @@ "composer-installer", "magento" ], - "time": "2017-12-29 16:45:24" + "time": "2017-12-29T16:45:24+00:00" }, { "name": "magento/zendframework1", @@ -676,7 +675,7 @@ "ZF1", "framework" ], - "time": "2017-02-27 21:19:07" + "time": "2017-02-27T21:19:07+00:00" }, { "name": "monolog/monolog", @@ -752,7 +751,7 @@ "logging", "psr-3" ], - "time": "2015-08-09 17:44:44" + "time": "2015-08-09T17:44:44+00:00" }, { "name": "oyejorge/less.php", @@ -814,7 +813,7 @@ "php", "stylesheet" ], - "time": "2017-03-28 22:19:25" + "time": "2017-03-28T22:19:25+00:00" }, { "name": "pelago/emogrifier", @@ -870,20 +869,20 @@ ], "description": "Converts CSS styles into inline style attributes in your HTML code", "homepage": "http://www.pelagodesign.com/sidecar/emogrifier/", - "time": "2015-05-15 11:37:51" + "time": "2015-05-15T11:37:51+00:00" }, { "name": "phpseclib/phpseclib", - "version": "2.0.10", + "version": "2.0.11", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4" + "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d305b780829ea4252ed9400b3f5937c2c99b51d4", - "reference": "d305b780829ea4252ed9400b3f5937c2c99b51d4", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/7053f06f91b3de78e143d430e55a8f7889efc08b", + "reference": "7053f06f91b3de78e143d430e55a8f7889efc08b", "shasum": "" }, "require": { @@ -962,7 +961,7 @@ "x.509", "x509" ], - "time": "2018-02-19 04:29:13" + "time": "2018-04-15T16:55:05+00:00" }, { "name": "psr/log", @@ -1009,7 +1008,7 @@ "psr", "psr-3" ], - "time": "2016-10-10 12:19:37" + "time": "2016-10-10T12:19:37+00:00" }, { "name": "seld/cli-prompt", @@ -1057,7 +1056,7 @@ "input", "prompt" ], - "time": "2017-03-18 11:32:45" + "time": "2017-03-18T11:32:45+00:00" }, { "name": "seld/jsonlint", @@ -1106,7 +1105,7 @@ "parser", "validator" ], - "time": "2018-01-24 12:46:19" + "time": "2018-01-24T12:46:19+00:00" }, { "name": "seld/phar-utils", @@ -1150,7 +1149,7 @@ "keywords": [ "phra" ], - "time": "2015-10-13 18:44:15" + "time": "2015-10-13T18:44:15+00:00" }, { "name": "sjparkinson/static-review", @@ -1204,7 +1203,7 @@ ], "description": "An extendable framework for version control hooks.", "abandoned": "phpro/grumphp", - "time": "2014-09-22 08:40:36" + "time": "2014-09-22T08:40:36+00:00" }, { "name": "symfony/console", @@ -1262,20 +1261,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2015-07-26 09:08:40" + "time": "2015-07-26T09:08:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.34", + "version": "v2.8.39", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d64be24fc1eba62f9daace8a8918f797fc8e87cc" + "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d64be24fc1eba62f9daace8a8918f797fc8e87cc", - "reference": "d64be24fc1eba62f9daace8a8918f797fc8e87cc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", + "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", "shasum": "" }, "require": { @@ -1322,20 +1321,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-01-03 07:36:31" + "time": "2018-04-06T07:35:03+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.4", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e078773ad6354af38169faf31c21df0f18ace03d" + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af38169faf31c21df0f18ace03d", - "reference": "e078773ad6354af38169faf31c21df0f18ace03d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", "shasum": "" }, "require": { @@ -1371,20 +1370,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" + "time": "2018-02-22T10:48:49+00:00" }, { "name": "symfony/finder", - "version": "v3.4.4", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f" + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f", + "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433", + "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433", "shasum": "" }, "require": { @@ -1420,20 +1419,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" + "time": "2018-04-04T05:07:11+00:00" }, { "name": "symfony/process", - "version": "v2.8.34", + "version": "v2.8.39", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "905efe90024caa75a2fc93f54e14b26f2a099d96" + "reference": "ee2c91470ff262b1a00aec27875d38594aa87629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/905efe90024caa75a2fc93f54e14b26f2a099d96", - "reference": "905efe90024caa75a2fc93f54e14b26f2a099d96", + "url": "https://api.github.com/repos/symfony/process/zipball/ee2c91470ff262b1a00aec27875d38594aa87629", + "reference": "ee2c91470ff262b1a00aec27875d38594aa87629", "shasum": "" }, "require": { @@ -1469,7 +1468,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-01-29 08:54:45" + "time": "2018-04-03T05:20:27+00:00" }, { "name": "tedivm/jshrink", @@ -1515,7 +1514,7 @@ "javascript", "minifier" ], - "time": "2014-11-11 03:54:14" + "time": "2014-11-11T03:54:14+00:00" }, { "name": "tubalmartin/cssmin", @@ -1559,7 +1558,7 @@ "minify", "yui" ], - "time": "2014-09-22 08:08:50" + "time": "2014-09-22T08:08:50+00:00" }, { "name": "zendframework/zend-code", @@ -1612,7 +1611,7 @@ "code", "zf2" ], - "time": "2015-05-11 16:17:05" + "time": "2015-05-11T16:17:05+00:00" }, { "name": "zendframework/zend-config", @@ -1669,7 +1668,7 @@ "config", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-console", @@ -1719,7 +1718,7 @@ "console", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-crypt", @@ -1771,7 +1770,7 @@ "crypt", "zf2" ], - "time": "2015-11-23 16:33:27" + "time": "2015-11-23T16:33:27+00:00" }, { "name": "zendframework/zend-di", @@ -1822,7 +1821,7 @@ "di", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-escaper", @@ -1867,7 +1866,7 @@ "escaper", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-eventmanager", @@ -1913,7 +1912,7 @@ "eventmanager", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-filter", @@ -1969,7 +1968,7 @@ "filter", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-form", @@ -2040,7 +2039,7 @@ "form", "zf2" ], - "time": "2015-09-09 19:11:05" + "time": "2015-09-09T19:11:05+00:00" }, { "name": "zendframework/zend-http", @@ -2091,7 +2090,7 @@ "http", "zf2" ], - "time": "2015-09-14 16:11:20" + "time": "2015-09-14T16:11:20+00:00" }, { "name": "zendframework/zend-i18n", @@ -2155,7 +2154,7 @@ "i18n", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-inputfilter", @@ -2206,7 +2205,7 @@ "inputfilter", "zf2" ], - "time": "2015-09-09 15:44:54" + "time": "2015-09-09T15:44:54+00:00" }, { "name": "zendframework/zend-json", @@ -2260,7 +2259,7 @@ "json", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-loader", @@ -2305,7 +2304,7 @@ "loader", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-log", @@ -2367,7 +2366,7 @@ "logging", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-math", @@ -2418,7 +2417,7 @@ "math", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-modulemanager", @@ -2476,7 +2475,7 @@ "modulemanager", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-mvc", @@ -2564,7 +2563,7 @@ "mvc", "zf2" ], - "time": "2015-09-14 16:32:50" + "time": "2015-09-14T16:32:50+00:00" }, { "name": "zendframework/zend-serializer", @@ -2617,7 +2616,7 @@ "serializer", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-server", @@ -2664,7 +2663,7 @@ "server", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-servicemanager", @@ -2714,7 +2713,7 @@ "servicemanager", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-soap", @@ -2766,7 +2765,7 @@ "soap", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-stdlib", @@ -2821,7 +2820,7 @@ "stdlib", "zf2" ], - "time": "2015-07-21 13:55:46" + "time": "2015-07-21T13:55:46+00:00" }, { "name": "zendframework/zend-text", @@ -2868,7 +2867,7 @@ "text", "zf2" ], - "time": "2015-05-07 14:55:31" + "time": "2015-05-07T14:55:31+00:00" }, { "name": "zendframework/zend-uri", @@ -2916,7 +2915,7 @@ "uri", "zf2" ], - "time": "2015-09-14 16:17:10" + "time": "2015-09-14T16:17:10+00:00" }, { "name": "zendframework/zend-validator", @@ -2981,7 +2980,7 @@ "validator", "zf2" ], - "time": "2015-09-08 21:04:17" + "time": "2015-09-08T21:04:17+00:00" }, { "name": "zendframework/zend-view", @@ -3058,7 +3057,7 @@ "view", "zf2" ], - "time": "2015-06-16 15:22:37" + "time": "2015-06-16T15:22:37+00:00" } ], "packages-dev": [ @@ -3114,7 +3113,7 @@ "constructor", "instantiate" ], - "time": "2015-06-14 21:17:01" + "time": "2015-06-14T21:17:01+00:00" }, { "name": "fabpot/php-cs-fixer", @@ -3173,7 +3172,7 @@ ], "description": "A tool to automatically fix PHP code style", "abandoned": "friendsofphp/php-cs-fixer", - "time": "2017-09-11 14:11:16" + "time": "2017-09-11T14:11:16+00:00" }, { "name": "lusitanian/oauth", @@ -3240,7 +3239,7 @@ "oauth", "security" ], - "time": "2015-10-07 00:20:04" + "time": "2015-10-07T00:20:04+00:00" }, { "name": "pdepend/pdepend", @@ -3280,7 +3279,7 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2017-01-10 13:45:16" + "time": "2017-01-10T13:45:16+00:00" }, { "name": "phpmd/phpmd", @@ -3345,7 +3344,7 @@ "phpmd", "pmd" ], - "time": "2016-11-23 20:33:32" + "time": "2016-11-23T20:33:32+00:00" }, { "name": "phpunit/php-code-coverage", @@ -3407,7 +3406,7 @@ "testing", "xunit" ], - "time": "2015-10-06 15:47:00" + "time": "2015-10-06T15:47:00+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3452,7 +3451,7 @@ "filesystem", "iterator" ], - "time": "2013-10-10 15:34:57" + "time": "2013-10-10T15:34:57+00:00" }, { "name": "phpunit/php-text-template", @@ -3493,7 +3492,7 @@ "keywords": [ "template" ], - "time": "2015-06-21 13:50:34" + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", @@ -3542,7 +3541,7 @@ "keywords": [ "timer" ], - "time": "2017-02-26 11:10:40" + "time": "2017-02-26T11:10:40+00:00" }, { "name": "phpunit/php-token-stream", @@ -3591,7 +3590,7 @@ "keywords": [ "tokenizer" ], - "time": "2017-12-04 08:55:13" + "time": "2017-12-04T08:55:13+00:00" }, { "name": "phpunit/phpunit", @@ -3665,7 +3664,7 @@ "testing", "xunit" ], - "time": "2014-05-02 07:13:40" + "time": "2014-05-02T07:13:40+00:00" }, { "name": "phpunit/phpunit-mock-objects", @@ -3721,7 +3720,7 @@ "mock", "xunit" ], - "time": "2015-10-02 06:51:40" + "time": "2015-10-02T06:51:40+00:00" }, { "name": "sebastian/comparator", @@ -3785,7 +3784,7 @@ "compare", "equality" ], - "time": "2017-01-29 09:50:25" + "time": "2017-01-29T09:50:25+00:00" }, { "name": "sebastian/diff", @@ -3837,7 +3836,7 @@ "keywords": [ "diff" ], - "time": "2017-05-22 07:24:03" + "time": "2017-05-22T07:24:03+00:00" }, { "name": "sebastian/environment", @@ -3887,7 +3886,7 @@ "environment", "hhvm" ], - "time": "2016-08-18 05:49:44" + "time": "2016-08-18T05:49:44+00:00" }, { "name": "sebastian/exporter", @@ -3954,7 +3953,7 @@ "export", "exporter" ], - "time": "2016-06-17 09:04:28" + "time": "2016-06-17T09:04:28+00:00" }, { "name": "sebastian/finder-facade", @@ -3993,7 +3992,7 @@ ], "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2017-11-18 17:31:49" + "time": "2017-11-18T17:31:49+00:00" }, { "name": "sebastian/phpcpd", @@ -4044,7 +4043,7 @@ ], "description": "Copy/Paste Detector (CPD) for PHP code.", "homepage": "https://github.com/sebastianbergmann/phpcpd", - "time": "2013-11-08 09:05:42" + "time": "2013-11-08T09:05:42+00:00" }, { "name": "sebastian/recursion-context", @@ -4097,7 +4096,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-10-03 07:41:43" + "time": "2016-10-03T07:41:43+00:00" }, { "name": "sebastian/version", @@ -4132,7 +4131,7 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21 13:59:46" + "time": "2015-06-21T13:59:46+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -4207,7 +4206,7 @@ "phpcs", "standards" ], - "time": "2014-05-01 03:07:07" + "time": "2014-05-01T03:07:07+00:00" }, { "name": "symfony/config", @@ -4263,7 +4262,7 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2017-04-12 14:13:17" + "time": "2017-04-12T14:13:17+00:00" }, { "name": "symfony/dependency-injection", @@ -4323,20 +4322,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-01-28 00:04:57" + "time": "2017-01-28T00:04:57+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.4.4", + "version": "v3.4.8", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "c865551df7c17e63fc1f09f763db04387f91ae4d" + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/c865551df7c17e63fc1f09f763db04387f91ae4d", - "reference": "c865551df7c17e63fc1f09f763db04387f91ae4d", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/eb17cfa072cab26537ac37e9c4ece6c0361369af", + "reference": "eb17cfa072cab26537ac37e9c4ece6c0361369af", "shasum": "" }, "require": { @@ -4372,20 +4371,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2018-01-03 07:37:34" + "time": "2018-02-17T14:55:25+00:00" }, { "name": "symfony/yaml", - "version": "v2.8.34", + "version": "v2.8.39", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "be720fcfae4614df204190d57795351059946a77" + "reference": "d20bd2bdee063863e426297af41eda45ccad6f7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/be720fcfae4614df204190d57795351059946a77", - "reference": "be720fcfae4614df204190d57795351059946a77", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d20bd2bdee063863e426297af41eda45ccad6f7e", + "reference": "d20bd2bdee063863e426297af41eda45ccad6f7e", "shasum": "" }, "require": { @@ -4421,7 +4420,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-01-03 07:36:31" + "time": "2018-04-08T07:53:13+00:00" }, { "name": "theseer/fdomdocument", @@ -4461,7 +4460,7 @@ ], "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", "homepage": "https://github.com/theseer/fDOMDocument", - "time": "2017-06-30 11:53:12" + "time": "2017-06-30T11:53:12+00:00" } ], "aliases": [], diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json index 09b631dc6b0eb..a42ec4231f2d7 100644 --- a/lib/internal/Magento/Framework/composer.json +++ b/lib/internal/Magento/Framework/composer.json @@ -2,7 +2,7 @@ "name": "magento/framework", "description": "N/A", "type": "magento2-library", - "version": "100.1.12", + "version": "100.1.13", "license": [ "OSL-3.0", "AFL-3.0" From 9c5517aa6ba95dc8070555a390105faf41c404c7 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Mon, 30 Apr 2018 14:36:58 +0200 Subject: [PATCH 403/555] Active argument removed --- .../adminhtml/ui_component/sales_order_view_creditmemo_grid.xml | 2 +- .../adminhtml/ui_component/sales_order_view_invoice_grid.xml | 2 +- .../adminhtml/ui_component/sales_order_view_shipment_grid.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index dddf7aaf10dba..e3c6e680da1f2 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -38,7 +38,7 @@ - * + * diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index befd2dc99010a..5663bca048995 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -38,7 +38,7 @@ - * + * diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 83924bd076211..006318b00221b 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -38,7 +38,7 @@ - * + * From db28e02f088393d328f0d8d4ccf39fe9ed10ab74 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 1 May 2018 15:16:42 +0200 Subject: [PATCH 404/555] Observer name typo fix --- app/code/Magento/Customer/etc/events.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/etc/events.xml b/app/code/Magento/Customer/etc/events.xml index 66c9a3813892c..d841d8faa9c38 100644 --- a/app/code/Magento/Customer/etc/events.xml +++ b/app/code/Magento/Customer/etc/events.xml @@ -10,7 +10,7 @@ - + From 51f2f076a8fddbeb7b29914a1994236c29bdc369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20Ferraz?= Date: Wed, 2 May 2018 11:50:54 +0100 Subject: [PATCH 405/555] ISSUE-14663 : Preserve user group id when using /V1/customers/:customerId --- .../Model/ResourceModel/CustomerRepository.php | 7 +++++++ .../ResourceModel/CustomerRepositoryTest.php | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Customer/Model/ResourceModel/CustomerRepository.php b/app/code/Magento/Customer/Model/ResourceModel/CustomerRepository.php index d037f866ffaca..5e41c3555ac91 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/CustomerRepository.php +++ b/app/code/Magento/Customer/Model/ResourceModel/CustomerRepository.php @@ -186,6 +186,13 @@ public function save(\Magento\Customer\Api\Data\CustomerInterface $customer, $pa $customerModel->setRpTokenCreatedAt(null); } + // Set group id to current stored id if no group id passed. + if (!($prevCustomerData === null) && $prevCustomerData->getGroupId() && $customer->getGroupId() === null) { + $customerModel->setGroupId( + $prevCustomerData->getGroupId() + ); + } + $this->setDefaultBilling($customerArr, $prevCustomerDataArr, $customerModel); $this->setDefaultShipping($customerArr, $prevCustomerDataArr, $customerModel); diff --git a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/CustomerRepositoryTest.php b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/CustomerRepositoryTest.php index 0178d2d9c86b6..f7dc06450a7e0 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/CustomerRepositoryTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/CustomerRepositoryTest.php @@ -160,7 +160,7 @@ protected function setUp() false ); $this->customer = $this->getMockBuilder(\Magento\Customer\Api\Data\CustomerInterface::class) - ->setMethods(['__toArray']) + ->setMethods(['__toArray', 'setGroupId']) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->model = new \Magento\Customer\Model\ResourceModel\CustomerRepository( @@ -187,6 +187,7 @@ public function testSave() { $customerId = 1; $storeId = 2; + $groupId = 1; $region = $this->getMockForAbstractClass(\Magento\Customer\Api\Data\RegionInterface::class, [], '', false); $address = $this->getMockForAbstractClass( @@ -222,6 +223,7 @@ public function testSave() [ 'getId', 'setId', + 'setGroupId', 'setStoreId', 'getStoreId', 'getAttributeSetId', @@ -254,7 +256,8 @@ public function testSave() 'getEmail', 'getWebsiteId', 'getAddresses', - 'setAddresses' + 'setAddresses', + 'getGroupId' ] ); $customerSecureData = $this->getMock( @@ -289,6 +292,17 @@ public function testSave() ->method('setCustomerId') ->with($customerId) ->willReturnSelf(); + + $this->customer->expects($this->exactly(2)) + ->method('getGroupId') + ->willReturn($groupId); + $customerAttributesMetaData->expects($this->once()) + ->method('getGroupId') + ->willReturn(null); + $customerModel->expects($this->once()) + ->method('setGroupId') + ->with($groupId); + $address->expects($this->once()) ->method('getRegion') ->willReturn($region); From 91857b0c6537c17d3e97fbc6c84e25c41e9b1feb Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Wed, 2 May 2018 17:28:07 +0200 Subject: [PATCH 406/555] Fix faulty admin spinner animation --- .../Magento/backend/web/css/source/variables/_spinner.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_spinner.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_spinner.less index 09baf498cbcf4..60b84b1f467fe 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/variables/_spinner.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_spinner.less @@ -26,4 +26,4 @@ @spinner-rotate-step: 45; // One step in degree -@spinner-delay: .9; +@spinner-delay: .9s; From fef7ae6aef98d1c2636461df74c51d8e6db59154 Mon Sep 17 00:00:00 2001 From: Sviatoslav Mankivskyi Date: Thu, 3 May 2018 14:31:08 -0500 Subject: [PATCH 407/555] DEVOPS-2174: Fix integration tests --- .../Magento/Customer/Model/GroupManagementTest.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php index 28b210f8c42c2..4e6509633b914 100644 --- a/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php +++ b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php @@ -42,16 +42,13 @@ public function testGetDefaultGroupWithStoreId($testGroup, $storeId) } /** - * @magentoDataFixture Magento/Store/_files/core_second_third_fixturestore.php + * @magentoDataFixture Magento/Store/_files/core_fixturestore.php */ public function testGetDefaultGroupWithNonDefaultStoreId() { - $this->objectManager->removeSharedInstance('Magento\TestFramework\App\Config'); - $this->objectManager->removeSharedInstance('Magento\Framework\App\Config\ScopeConfigInterface'); - /** @var \Magento\Store\Model\StoreManagerInterface $storeManager */ $storeManager = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface'); - $nonDefaultStore = $storeManager->getStore('secondstore'); + $nonDefaultStore = $storeManager->getStore('fixturestore'); $nonDefaultStoreId = $nonDefaultStore->getId(); /** @var \Magento\Framework\App\MutableScopeConfig $scopeConfig */ $scopeConfig = $this->objectManager->get('Magento\Framework\App\MutableScopeConfig'); @@ -59,7 +56,7 @@ public function testGetDefaultGroupWithNonDefaultStoreId() \Magento\Customer\Model\GroupManagement::XML_PATH_DEFAULT_ID, 2, ScopeInterface::SCOPE_STORE, - 'secondstore' + 'fixturestore' ); $testGroup = ['id' => 2, 'code' => 'Wholesale', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer']; $this->assertDefaultGroupMatches($testGroup, $nonDefaultStoreId); From 938091d56ec15e7bcd0a1a2ecd85b5c0bc10968d Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Sun, 6 May 2018 22:46:00 +0300 Subject: [PATCH 408/555] Minicart should require dropdownDialog --- .../Magento/Checkout/view/frontend/web/js/view/minicart.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 0886dc2b2becb..49997e8b41e17 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 @@ -10,7 +10,8 @@ define([ 'ko', 'underscore', 'sidebar', - 'mage/translate' + 'mage/translate', + 'mage/dropdown' ], function (Component, customerData, $, ko, _) { 'use strict'; From 9a95dae80232792eb5298b240f86b342c70a7341 Mon Sep 17 00:00:00 2001 From: gwharton Date: Mon, 7 May 2018 18:30:28 +0100 Subject: [PATCH 409/555] Correct missing commits for #10210 Add missing commits for \app\code\Magento\Sales\Model\Order\Email\Sender\OrderSender.php --- .../Sales/Model/Order/Email/Sender/OrderSender.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Sales/Model/Order/Email/Sender/OrderSender.php b/app/code/Magento/Sales/Model/Order/Email/Sender/OrderSender.php index 0d78947cd523e..df674a93794c1 100644 --- a/app/code/Magento/Sales/Model/Order/Email/Sender/OrderSender.php +++ b/app/code/Magento/Sales/Model/Order/Email/Sender/OrderSender.php @@ -13,6 +13,7 @@ use Magento\Sales\Model\ResourceModel\Order as OrderResource; use Magento\Sales\Model\Order\Address\Renderer; use Magento\Framework\Event\ManagerInterface; +use Magento\Framework\DataObject; /** * Class OrderSender @@ -127,14 +128,17 @@ protected function prepareTemplate(Order $order) 'formattedShippingAddress' => $this->getFormattedShippingAddress($order), 'formattedBillingAddress' => $this->getFormattedBillingAddress($order), ]; - $transport = new \Magento\Framework\DataObject($transport); + $transportObject = new DataObject($transport); + /** + * Event argument `transport` is @deprecated. Use `transportObject` instead. + */ $this->eventManager->dispatch( 'email_order_set_template_vars_before', - ['sender' => $this, 'transport' => $transport] + ['sender' => $this, 'transport' => $transportObject->getData(), 'transportObject' => $transportObject] ); - $this->templateContainer->setTemplateVars($transport->getData()); + $this->templateContainer->setTemplateVars($transportObject->getData()); parent::prepareTemplate($order); } From a7e8b71095890e0f0ebd1ac400c76f5d4f9aaa5c Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Tue, 8 May 2018 17:12:04 +0200 Subject: [PATCH 410/555] Add statement to 'beforeSave' method to allow app:config:import --- .../Model/Adminhtml/System/Config/CountryCreditCard.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/code/Magento/Braintree/Model/Adminhtml/System/Config/CountryCreditCard.php b/app/code/Magento/Braintree/Model/Adminhtml/System/Config/CountryCreditCard.php index 2474df84380e1..a9aa1a42d2489 100644 --- a/app/code/Magento/Braintree/Model/Adminhtml/System/Config/CountryCreditCard.php +++ b/app/code/Magento/Braintree/Model/Adminhtml/System/Config/CountryCreditCard.php @@ -56,6 +56,13 @@ public function __construct( public function beforeSave() { $value = $this->getValue(); + if (!is_array($value)) { + try { + $value = unserialize($value); + } catch (\InvalidArgumentException $e) { + $value = []; + } + } $result = []; foreach ($value as $data) { if (empty($data['country_id']) || empty($data['cc_types'])) { From 78a2e51ab57f399fdc2076d5b9017420255243d9 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Wed, 9 May 2018 10:02:44 +0200 Subject: [PATCH 411/555] =?UTF-8?q?JSCS=20fix:=20empty=20line=20above=20?= =?UTF-8?q?=E2=80=98return=E2=80=99=20is=20required?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/web/mage/requirejs/resolver.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/web/mage/requirejs/resolver.js b/lib/web/mage/requirejs/resolver.js index f3d4b79216adb..5088206dd31d9 100644 --- a/lib/web/mage/requirejs/resolver.js +++ b/lib/web/mage/requirejs/resolver.js @@ -27,6 +27,16 @@ define([ return !!_.findWhere(callbacks, callback); } + /** + * Checks if provided module is rejected during load. + * + * @param {Object} module - Module to be checked. + * @return {Boolean} + */ + function isRejected(module) { + return registry[module.id] && registry[module.id].error; + } + /** * Checks if provided module has unresolved dependencies. * @@ -34,7 +44,11 @@ define([ * @returns {Boolean} */ function isPending(module) { - return !!module.depCount; + if (!module.depCount) { + return false; + } + + return module.depCount > _.filter(module.depMaps, isRejected).length; } /** From 7104b91ddfa33de303362322a551ca1553feb902 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Wed, 9 May 2018 10:28:55 +0200 Subject: [PATCH 412/555] Changed return type of addToCartPostParams to array --- app/code/Magento/Catalog/Block/Product/ListProduct.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index c828074e24674..386fcf8eff9b2 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -340,7 +340,7 @@ public function getIdentities() * Get post parameters * * @param \Magento\Catalog\Model\Product $product - * @return string + * @return array */ public function getAddToCartPostParams(\Magento\Catalog\Model\Product $product) { From 0799789a0f53e055ed02d2ea3afc9745b00ebf4e Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Wed, 9 May 2018 10:37:19 +0200 Subject: [PATCH 413/555] Duplicate Order Confirmation Emails for PayPal Express checkout order --- app/code/Magento/Paypal/Model/Express/Checkout.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Paypal/Model/Express/Checkout.php b/app/code/Magento/Paypal/Model/Express/Checkout.php index 59360f4b0745b..b3dd1af692045 100644 --- a/app/code/Magento/Paypal/Model/Express/Checkout.php +++ b/app/code/Magento/Paypal/Model/Express/Checkout.php @@ -816,7 +816,9 @@ public function place($token, $shippingMethodCode = null) case \Magento\Sales\Model\Order::STATE_PROCESSING: case \Magento\Sales\Model\Order::STATE_COMPLETE: case \Magento\Sales\Model\Order::STATE_PAYMENT_REVIEW: - $this->orderSender->send($order); + if (!$order->getEmailSent()) { + $this->orderSender->send($order); + } $this->_checkoutSession->start(); break; default: From 21bd884d540d77a1d22eee9f38de684ab31b9bc6 Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 14:20:09 +0300 Subject: [PATCH 414/555] Removed extra spaces from language file --- app/code/Magento/CatalogInventory/i18n/en_US.csv | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/code/Magento/CatalogInventory/i18n/en_US.csv b/app/code/Magento/CatalogInventory/i18n/en_US.csv index 6dbbf9a2d2b7a..14379ec76f542 100644 --- a/app/code/Magento/CatalogInventory/i18n/en_US.csv +++ b/app/code/Magento/CatalogInventory/i18n/en_US.csv @@ -48,11 +48,7 @@ Inventory,Inventory "Only X left Threshold","Only X left Threshold" "Display Products Availability in Stock on Storefront","Display Products Availability in Stock on Storefront" "Product Stock Options","Product Stock Options" -" - Please note that these settings apply to individual items in the cart, not to the entire cart. - "," - Please note that these settings apply to individual items in the cart, not to the entire cart. - " +"Please note that these settings apply to individual items in the cart, not to the entire cart.","Please note that these settings apply to individual items in the cart, not to the entire cart." "Manage Stock","Manage Stock" Backorders,Backorders "Maximum Qty Allowed in Shopping Cart","Maximum Qty Allowed in Shopping Cart" From ceb486d1adae27befc29f22ce8188de1f1a32e71 Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 14:42:35 +0300 Subject: [PATCH 415/555] stripped filter value --- .../UiComponent/DataProvider/FulltextFilter.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php index e7cbc5000d337..f683e248aec91 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php @@ -62,6 +62,16 @@ function ($column) use ($alias) { return $columns; } + /** + * Escape against value + * @param string $value + * @return string + */ + private function escapeAgainstValue(string $value): string + { + return preg_replace('/([+\-><\(\)~*\"@]+)/', ' ', $value); + } + /** * Apply fulltext filters * @@ -86,7 +96,7 @@ public function apply(Collection $collection, Filter $filter) $collection->getSelect() ->where( 'MATCH(' . implode(',', $columns) . ') AGAINST(?)', - $filter->getValue() + $this->escapeAgainstValue($filter->getValue()) ); } } From 9a1d9ded445b9b555d213a63f69700328a0893dd Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 14:51:28 +0300 Subject: [PATCH 416/555] move customer.account.dashboard.info.extra block to contact information --- .../view/frontend/templates/account/dashboard/info.phtml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Customer/view/frontend/templates/account/dashboard/info.phtml b/app/code/Magento/Customer/view/frontend/templates/account/dashboard/info.phtml index 465e0fc0ee132..aa4bc3a5e939d 100644 --- a/app/code/Magento/Customer/view/frontend/templates/account/dashboard/info.phtml +++ b/app/code/Magento/Customer/view/frontend/templates/account/dashboard/info.phtml @@ -20,6 +20,7 @@ escapeHtml($block->getName()) ?>
      escapeHtml($block->getCustomer()->getEmail()) ?>

      + getChildHtml('customer.account.dashboard.info.extra'); ?>
      escapeHtml(__('Edit')) ?> From 8823f96b0589029c0ac495a34dcab6721fcf0b3c Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:02:20 +0300 Subject: [PATCH 417/555] Removed extra close tag --- app/code/Magento/Review/view/frontend/templates/view.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Review/view/frontend/templates/view.phtml b/app/code/Magento/Review/view/frontend/templates/view.phtml index 60551aa9c0319..3bb66580319b1 100644 --- a/app/code/Magento/Review/view/frontend/templates/view.phtml +++ b/app/code/Magento/Review/view/frontend/templates/view.phtml @@ -49,7 +49,7 @@
      - +
      From 45b8f87cce6751551c98f11b1562873b4512ca3a Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:09:10 +0300 Subject: [PATCH 418/555] Change 'Update'-button visibility on change qty event --- app/code/Magento/Checkout/view/frontend/web/js/sidebar.js | 8 ++++++++ 1 file changed, 8 insertions(+) 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 bc6d7179bcaee..b529e869a1a5a 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js @@ -86,6 +86,14 @@ define([ events['keyup ' + this.options.item.qty] = function (event) { self._showItemButton($(event.target)); }; + + /** + * @param {jQuery.Event} event + */ + events['change ' + this.options.item.qty] = function (event) { + self._showItemButton($(event.target)); + }; + events['click ' + this.options.item.button] = function (event) { event.stopPropagation(); self._updateItemQty($(event.currentTarget)); From 841b3225f8c4f192e58f0eba1aaf518d0cb91c31 Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:16:38 +0300 Subject: [PATCH 419/555] Renamed config setting to represent what it actually does --- app/code/Magento/Backend/etc/adminhtml/system.xml | 2 +- app/code/Magento/Backend/i18n/en_US.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index 74c6263a62e4a..8bc52141872ca 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -116,7 +116,7 @@ Magento\Config\Model\Config\Source\Yesno - + Magento\Config\Model\Config\Source\Yesno diff --git a/app/code/Magento/Backend/i18n/en_US.csv b/app/code/Magento/Backend/i18n/en_US.csv index 08a28eb95579b..d34827b14e520 100644 --- a/app/code/Magento/Backend/i18n/en_US.csv +++ b/app/code/Magento/Backend/i18n/en_US.csv @@ -324,7 +324,7 @@ Developer,Developer Debug,Debug "Enabled Template Path Hints for Storefront","Enabled Template Path Hints for Storefront" "Enabled Template Path Hints for Admin","Enabled Template Path Hints for Admin" -"Add Block Names to Hints","Add Block Names to Hints" +"Add Block Class Type to Hints","Add Block Class Type to Hints" "Template Settings","Template Settings" "Allow Symlinks","Allow Symlinks" "Warning! Enabling this feature is not recommended on production environments because it represents a potential security risk.","Warning! Enabling this feature is not recommended on production environments because it represents a potential security risk." From 20993c1af8dfdf8ef06699150067469fcaa6893c Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:23:17 +0300 Subject: [PATCH 420/555] changed path for templates --- app/code/Magento/Review/Block/Product/ReviewRenderer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Review/Block/Product/ReviewRenderer.php b/app/code/Magento/Review/Block/Product/ReviewRenderer.php index f60b33bffb8cb..98e6ab9e09289 100644 --- a/app/code/Magento/Review/Block/Product/ReviewRenderer.php +++ b/app/code/Magento/Review/Block/Product/ReviewRenderer.php @@ -18,8 +18,8 @@ class ReviewRenderer extends \Magento\Framework\View\Element\Template implements * @var array */ protected $_availableTemplates = [ - self::FULL_VIEW => 'helper/summary.phtml', - self::SHORT_VIEW => 'helper/summary_short.phtml', + self::FULL_VIEW => 'Magento_Review::helper/summary.phtml', + self::SHORT_VIEW => 'Magento_Review::helper/summary_short.phtml', ]; /** From 12bf629f5faa4110e2f7a0c87e9bc98f2487d464 Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:35:27 +0300 Subject: [PATCH 421/555] Fix typo in less button definition --- lib/web/css/source/lib/_buttons.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web/css/source/lib/_buttons.less b/lib/web/css/source/lib/_buttons.less index b2e5a0d35c1db..804302fcb69ac 100644 --- a/lib/web/css/source/lib/_buttons.less +++ b/lib/web/css/source/lib/_buttons.less @@ -8,7 +8,7 @@ // _____________________________________________ // -// Button with solid or pictire background +// Button with solid or picture background // --------------------------------------------- .lib-button( From e2f70fecfe8bd013b89c5cb52abce310659b15b6 Mon Sep 17 00:00:00 2001 From: Vaha Date: Wed, 9 May 2018 15:45:54 +0300 Subject: [PATCH 422/555] fixed typos in less files --- lib/web/css/docs/source/_buttons.less | 4 ++-- lib/web/css/docs/source/_layout.less | 4 ++-- lib/web/css/docs/source/_typography.less | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/web/css/docs/source/_buttons.less b/lib/web/css/docs/source/_buttons.less index a81599c517ff8..a071eed85ef9e 100644 --- a/lib/web/css/docs/source/_buttons.less +++ b/lib/web/css/docs/source/_buttons.less @@ -397,7 +397,7 @@ button { // # Button with an icon on the left or right side of the text // -// @_button-icon-font-position variable is used to set up the icon postiton +// @_button-icon-font-position variable is used to set up the icon position // // Use before to set up button icon position on the left: // ```css @@ -818,7 +818,7 @@ button { // # Link as a button // -// The .lib-link-as-button() mixin is used to reset link styles (text-decoration and display inline). Then to make it look like a button, you need to add the .lib-button() mixin with appropriate paremeters. +// The .lib-link-as-button() mixin is used to reset link styles (text-decoration and display inline). Then to make it look like a button, you need to add the .lib-button() mixin with appropriate parameters. // // ```html // Button diff --git a/lib/web/css/docs/source/_layout.less b/lib/web/css/docs/source/_layout.less index 37598197142f6..799f940b44c02 100644 --- a/lib/web/css/docs/source/_layout.less +++ b/lib/web/css/docs/source/_layout.less @@ -91,7 +91,7 @@ footer.footer { //
      @gutter-width0'' | false | valueDistanse between columnsDistance between columns
      Variables for layout columns Action