diff --git a/CHANGELOG.md b/CHANGELOG.md
index 44844f62b6449..bc8186b776232 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,81 @@
+2.1.13
+=============
+* GitHub issues:
+ * [#9869](https://github.com/magento/magento2/issues/9869) -- datetime type product attribute showing current date (fixed in [magento/magento2#12033](https://github.com/magento/magento2/pull/12033))
+ * [#10765](https://github.com/magento/magento2/issues/10765) -- Export data from grid not adding custom rendered data magento2 (fixed in [magento/magento2#12373](https://github.com/magento/magento2/pull/12373))
+ * [#9410](https://github.com/magento/magento2/issues/9410) -- Impossible to add swatch options via Service Contracts if there is no existing swatch option for attribute (fixed in [magento/magento2#12043](https://github.com/magento/magento2/pull/12043))
+ * [#10707](https://github.com/magento/magento2/issues/10707) -- Create attribute option via API for swatch attribute fails (fixed in [magento/magento2#12043](https://github.com/magento/magento2/pull/12043))
+ * [#10737](https://github.com/magento/magento2/issues/10737) -- Can't import attribute option over API if option is 'visual swatch' (fixed in [magento/magento2#12043](https://github.com/magento/magento2/pull/12043))
+ * [#11032](https://github.com/magento/magento2/issues/11032) -- Unable to add new options to swatch attribute (fixed in [magento/magento2#12043](https://github.com/magento/magento2/pull/12043))
+ * [#10210](https://github.com/magento/magento2/issues/10210) -- Transport variable can not be altered in email_invoice_set_template_vars_before Event (fixed in [magento/magento2#12135](https://github.com/magento/magento2/pull/12135))
+ * [#11341](https://github.com/magento/magento2/issues/11341) -- Attribute category_ids issue (fixed in [magento/magento2#11807](https://github.com/magento/magento2/pull/11807))
+ * [#11825](https://github.com/magento/magento2/issues/11825) -- 2.1.9 Item not added to the Wishlist if the user is not logged at the moment he click on the button to add it. (fixed in [magento/magento2#12041](https://github.com/magento/magento2/pull/12041))
+ * [#11908](https://github.com/magento/magento2/issues/11908) -- Adding to wishlist doesn't work when not logged in (fixed in [magento/magento2#12041](https://github.com/magento/magento2/pull/12041))
+ * [#9768](https://github.com/magento/magento2/issues/9768) -- Admin dashboard Most Viewed Products Tab only gives default attribute set's products (fixed in [magento/magento2#12137](https://github.com/magento/magento2/pull/12137))
+ * [#11409](https://github.com/magento/magento2/issues/11409) -- Too many password reset requests even when disabled in settings (fixed in [magento/magento2#11436](https://github.com/magento/magento2/pull/11436))
+ * [#8009](https://github.com/magento/magento2/issues/8009) -- Magento 2.1.3 out of stock associated products to configurable are not full page cache cleaned (fixed in [magento/magento2#12548](https://github.com/magento/magento2/pull/12548))
+ * [#12268](https://github.com/magento/magento2/issues/12268) -- Gallery issues on configurable product page (fixed in [magento/magento2#12558](https://github.com/magento/magento2/pull/12558))
+ * [#8069](https://github.com/magento/magento2/issues/8069) -- Saving Category with existing image causes an exception (fixed in [magento/magento2#12368](https://github.com/magento/magento2/pull/12368))
+ * [#6770](https://github.com/magento/magento2/issues/6770) -- M2.1.1 : Re-saving a product attribute with a different name than it's code results in an error (fixed in [magento/magento2#11618](https://github.com/magento/magento2/pull/11618))
+ * [#12627](https://github.com/magento/magento2/issues/12627) -- Referer is not added to login url in checkout config (fixed in [magento/magento2#12629](https://github.com/magento/magento2/pull/12629))
+ * [#8415](https://github.com/magento/magento2/issues/8415) -- Content Block Administration fails when I delete more than one record (fixed in [magento/magento2#12840](https://github.com/magento/magento2/pull/12840))
+ * [#9243](https://github.com/magento/magento2/issues/9243) -- Upgrade ZF components. Zend_Service (fixed in [magento/magento2#12958](https://github.com/magento/magento2/pull/12958))
+ * [#10812](https://github.com/magento/magento2/issues/10812) -- htaccess Options override (fixed in [magento/magento2#12959](https://github.com/magento/magento2/pull/12959))
+ * [#7441](https://github.com/magento/magento2/issues/7441) -- Configurable attribute options are not sorted (fixed in [magento/magento2#12962](https://github.com/magento/magento2/pull/12962))
+ * [#10682](https://github.com/magento/magento2/issues/10682) -- Meta description and keywords transform to html entities for non latin/cyrilic characters in category and product pages (fixed in [magento/magento2#12956](https://github.com/magento/magento2/pull/12956))
+ * [#9969](https://github.com/magento/magento2/issues/9969) -- Cancel order and restore quote methods increase stocks twice (fixed in [magento/magento2#12952](https://github.com/magento/magento2/pull/12952))
+ * [#2156](https://github.com/magento/magento2/issues/2156) -- Why does \Magento\Translation\Model\Js\DataProvider use \Magento\Framework\Phrase\Renderer\Translate, not \Magento\Framework\Phrase\Renderer\Composite? (fixed in [magento/magento2#12954](https://github.com/magento/magento2/pull/12954))
+ * [#12967](https://github.com/magento/magento2/issues/12967) -- Undeclared dependency magento/zendframework1 by magento/framework (fixed in [magento/magento2#12991](https://github.com/magento/magento2/pull/12991))
+ * [#12393](https://github.com/magento/magento2/issues/12393) -- Attribute with "Catalog Input Type for Store Owner" equal "Fixed Product Tax" for Multi-store (fixed in [magento/magento2#13020](https://github.com/magento/magento2/pull/13020))
+ * [#10168](https://github.com/magento/magento2/issues/10168) -- Coupon codes not showing in invoice (fixed in [magento/magento2#13261](https://github.com/magento/magento2/pull/13261))
+ * [#8621](https://github.com/magento/magento2/issues/8621) -- M2.1 Multishipping Checkout step New Address - Old State is saved when country is changed (fixed in [magento/magento2#13367](https://github.com/magento/magento2/pull/13367))
+ * [#10738](https://github.com/magento/magento2/issues/10738) -- Empty attribute label is displayed on product page when other language used. (fixed in [magento/magento2#13532](https://github.com/magento/magento2/pull/13532))
+ * [#6207](https://github.com/magento/magento2/issues/6207) -- Checkbox IDs for Terms and Conditions should be unique in Checkout (fixed in [magento/magento2#13543](https://github.com/magento/magento2/pull/13543))
+ * [#10565](https://github.com/magento/magento2/issues/10565) -- Magento ver. 2.1.8 New Product with Custom attribute set not working (fixed in [magento/magento2#13549](https://github.com/magento/magento2/pull/13549))
+ * [#6457](https://github.com/magento/magento2/issues/6457) -- Expired special_price is still shown for configurable products when no variant is selected (fixed in [magento/magento2#13490](https://github.com/magento/magento2/pull/13490))
+ * [#6729](https://github.com/magento/magento2/issues/6729) -- Configurable product old price with taxes displayed wrong (fixed in [magento/magento2#13490](https://github.com/magento/magento2/pull/13490))
+ * [#7362](https://github.com/magento/magento2/issues/7362) -- Special price vigency for configurable childs (simple products associated) doesn´t work (fixed in [magento/magento2#13490](https://github.com/magento/magento2/pull/13490))
+* GitHub pull requests:
+ * [magento/magento2#12033](https://github.com/magento/magento2/pull/12033) -- Backport 2.1-develop] Fix datetime type product that show current date when is empty in grids (by @enriquei4)
+ * [magento/magento2#12373](https://github.com/magento/magento2/pull/12373) -- #10765 Export data from grid not adding custom rendered data magento2 (by @Zefiryn)
+ * [magento/magento2#12043](https://github.com/magento/magento2/pull/12043) -- [Backport 2.1] Add swatch option: Prevent loosing data and default value if data is not populated via adminhtml (by @gomencal)
+ * [magento/magento2#12135](https://github.com/magento/magento2/pull/12135) -- 10210: Transport variable can not be altered in email_invoice_set_template_vars_before Event (backport MAGETWO-69482 to 2.1). (by @RomaKis)
+ * [magento/magento2#11807](https://github.com/magento/magento2/pull/11807) -- [backport 2.1] Attribute category_ids issue #11389 (by @manuelson)
+ * [magento/magento2#12246](https://github.com/magento/magento2/pull/12246) -- Clear `mage-cache-sessid` cookie on Ajax Login (by @pmclain)
+ * [magento/magento2#12041](https://github.com/magento/magento2/pull/12041) -- [Backport 2.1] #11825: Generate new FormKey and replace for oldRequestParams Wishlist (by @osrecio)
+ * [magento/magento2#12137](https://github.com/magento/magento2/pull/12137) -- 9768: Admin dashboard Most Viewed Products Tab only gives default attribute set's products (backport for 2.1) (by @RomaKis)
+ * [magento/magento2#12519](https://github.com/magento/magento2/pull/12519) -- Duplicate array key (by @lfluvisotto)
+ * [magento/magento2#11860](https://github.com/magento/magento2/pull/11860) -- [Backport 2.1-develop] CMS Page - Force validate layout update xml in production mode when saving CMS Page - Handle layout update xml validation exceptions (by @adrian-martinez-interactiv4)
+ * [magento/magento2#12522](https://github.com/magento/magento2/pull/12522) -- PR#12466 [BACKPORT 2.1] (by @atishgoswami)
+ * [magento/magento2#12321](https://github.com/magento/magento2/pull/12321) -- Trying to get data from non existent products (by @angelo983)
+ * [magento/magento2#11436](https://github.com/magento/magento2/pull/11436) -- [Backport 2.1-develop] #11409: Too many password reset requests even when disabled in settings (by @adrian-martinez-interactiv4)
+ * [magento/magento2#12548](https://github.com/magento/magento2/pull/12548) -- Fixes #8009 (by @ajpevers)
+ * [magento/magento2#12050](https://github.com/magento/magento2/pull/12050) -- [2.1] - Add command to view mview state and queue (by @convenient)
+ * [magento/magento2#12558](https://github.com/magento/magento2/pull/12558) -- [Backport-2.1] Added namespace to product videos fotorama events (by @roma84)
+ * [magento/magento2#12579](https://github.com/magento/magento2/pull/12579) -- [Backport 2.1-develop] Fix swagger-ui on instances of Magento running on a non-standard port (by @JeroenVanLeusden)
+ * [magento/magento2#12368](https://github.com/magento/magento2/pull/12368) -- [Backport for 2.1 of #9904] #8069: Saving Category with existing imag… (by @nemesis-back)
+ * [magento/magento2#11618](https://github.com/magento/magento2/pull/11618) -- Re saving product attribute [backport 2.1] (by @raumatbel)
+ * [magento/magento2#12611](https://github.com/magento/magento2/pull/12611) -- Backport #4958 to 2.1 (by @slackerzz)
+ * [magento/magento2#12629](https://github.com/magento/magento2/pull/12629) -- [2.1-develop] Add customer login url from Customer Url model to checkout config so … (by @quisse)
+ * [magento/magento2#12840](https://github.com/magento/magento2/pull/12840) -- Backport PR8418 - Fatal error on cms block grid delete (by @duckchip)
+ * [magento/magento2#12930](https://github.com/magento/magento2/pull/12930) -- Fix wishlist item getBuyRequest with no options (by @jameshalsall)
+ * [magento/magento2#12959](https://github.com/magento/magento2/pull/12959) -- [Backport to 2.1-develop] Fix #10812: htaccess Options override (by @dverkade)
+ * [magento/magento2#12958](https://github.com/magento/magento2/pull/12958) -- [Backport to 2.1-develop] Fix #9243 - Upgrade ZF components. Zend_Service (by @dverkade)
+ * [magento/magento2#12956](https://github.com/magento/magento2/pull/12956) -- [Backport to 2.1-develop] Fix #10682: Meta description and keywords transform to html entities (by @dverkade)
+ * [magento/magento2#12962](https://github.com/magento/magento2/pull/12962) -- [Backport to 2.1-develop] Fix configurable attribute options not being sorted (by @wardcapp)
+ * [magento/magento2#12952](https://github.com/magento/magento2/pull/12952) -- [Backport #12668 into 2.1-develop] Fix for reverting stock twice for cancelled orders (by @dverkade)
+ * [magento/magento2#12954](https://github.com/magento/magento2/pull/12954) -- [Backport to 2.1-develop] Fix #2156 Js\Dataprovider uses the RendererInterface. (by @dverkade)
+ * [magento/magento2#12991](https://github.com/magento/magento2/pull/12991) -- [2.1.x] Fix undeclared dependency magento/zendframework1 by magento/framework (by @ihor-sviziev)
+ * [magento/magento2#13020](https://github.com/magento/magento2/pull/13020) -- [Backport to 2.1-develop] Attribute with "Catalog Input Type for Store Owner" equal "Fixed Product Tax" for Multi-store (by @dverkade)
+ * [magento/magento2#13261](https://github.com/magento/magento2/pull/13261) -- Backport 2.1 for MAGETWO-80428 (by @PieterCappelle)
+ * [magento/magento2#13367](https://github.com/magento/magento2/pull/13367) -- [Backport 2.1] In checkout->multishipping-> new addres clean region when select country without dropdown for states (by @enriquei4)
+ * [magento/magento2#13489](https://github.com/magento/magento2/pull/13489) -- [Backport 2.1] #9247 fixed layout handle for cms page (by @simpleadm)
+ * [magento/magento2#13532](https://github.com/magento/magento2/pull/13532) -- Backport of PR-11169 for Magento 2.1: Fixed issue #10738: Empty attribute label is displayed on product pag (by @hostep)
+ * [magento/magento2#13543](https://github.com/magento/magento2/pull/13543) -- Backport of MAGETWO-69379 for Magento 2.1: use payment method name to (by @hostep)
+ * [magento/magento2#13549](https://github.com/magento/magento2/pull/13549) -- Backport of MAGETWO-80198 for Magento 2.1: Fix issue #10565 #10575 (by @hostep)
+ * [magento/magento2#13490](https://github.com/magento/magento2/pull/13490) -- [Backport 2.1] #9796 configurable product price options provider (by @simpleadm)
+ * [magento/magento2#13916](https://github.com/magento/magento2/pull/13916) -- Pass Expected Data Type in backgroundColor Call (2.1) (by @northernco)
+
2.1.11
=============
* GitHub issues:
diff --git a/README.md b/README.md
index 74f3a517570d0..aa83b880ca38d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
-[](https://travis-ci.org/magento/magento2)
+[](https://travis-ci.org/magento/magento2)
+[](https://www.codetriage.com/magento/magento2)
[](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.
@@ -73,6 +74,19 @@ To suggest documentation improvements, click [here][4].
[3]:
[4]:
+
Community Maintainers
+The members of this team have been recognized for their outstanding commitment to maintaining and improving Magento. Magento has granted them permission to accept, merge, and reject pull requests, as well as review issues, and thanks these Community Maintainers for their valuable contributions.
+
+
+
+
+
+
Top Contributors
+Magento is thankful for any contribution that can improve our code base, documentation or increase test coverage. We always recognize our most active members, as their contributions are the foundation of the Magento Open Source platform.
+
+
+
+
Reporting security issues
To report security vulnerabilities in Magento software or web sites, please e-mail security@magento.com. Please do not report security issues using GitHub. Be sure to encrypt your e-mail with our encryption key if it includes sensitive information. Learn more about reporting security issues here.
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..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,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));
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/AdminNotification/i18n/en_US.csv b/app/code/Magento/AdminNotification/i18n/en_US.csv
index 7b55e96976cad..8f780efa6c184 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."
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/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/Backend/Model/Url.php b/app/code/Magento/Backend/Model/Url.php
index 764ab297605d5..e91344f341269 100644
--- a/app/code/Magento/Backend/Model/Url.php
+++ b/app/code/Magento/Backend/Model/Url.php
@@ -198,7 +198,9 @@ public function getUrl($routePath = null, $routeParams = null)
return $result;
}
+ $this->getRouteParamsResolver()->unsetData('route_params');
$this->_setRoutePath($routePath);
+ $extraParams = $this->getRouteParamsResolver()->getRouteParams();
$routeName = $this->_getRouteName('*');
$controllerName = $this->_getControllerName(self::DEFAULT_CONTROLLER_NAME);
$actionName = $this->_getActionName(self::DEFAULT_ACTION_NAME);
@@ -213,6 +215,10 @@ public function getUrl($routePath = null, $routeParams = null)
$routeParams[self::SECRET_KEY_PARAM_NAME] = $secretKey;
}
+ if (!empty($extraParams)) {
+ $routeParams = array_merge($extraParams, $routeParams);
+ }
+
return parent::getUrl("{$routeName}/{$controllerName}/{$actionName}", $routeParams);
}
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/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."
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 @@
@@ -32,4 +38,6 @@ if ($minProduct) {
toHtml();?>
+
+
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/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(
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/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/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:
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/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')); ?>
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/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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 9d7d8b434abd4..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,20 +4,23 @@
* See COPYING.txt for license details.
*/
?>
-
-
-
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/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
diff --git a/app/code/Magento/Translation/Model/Js/DataProvider.php b/app/code/Magento/Translation/Model/Js/DataProvider.php
index 26b8e3e6615d3..0e0f0c9dd4808 100644
--- a/app/code/Magento/Translation/Model/Js/DataProvider.php
+++ b/app/code/Magento/Translation/Model/Js/DataProvider.php
@@ -1,6 +1,6 @@
config->getPatterns() as $pattern) {
- $result = preg_match_all($pattern, $content, $matches);
+ $concatenatedContent = preg_replace('~(["\'])\s*?\+\s*?\1~', '', $content);
+ $result = preg_match_all($pattern, $concatenatedContent, $matches);
if ($result) {
if (isset($matches[2])) {
foreach ($matches[2] as $match) {
- $phrases[] = str_replace('\\\'', '\'', $match);
+ $phrases[] = str_replace(["\'", '\"'], ["'", '"'], $match);
}
}
}
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/Translation/etc/di.xml b/app/code/Magento/Translation/etc/di.xml
index ac9daaa2eca39..c75324029116b 100644
--- a/app/code/Magento/Translation/etc/di.xml
+++ b/app/code/Magento/Translation/etc/di.xml
@@ -59,8 +59,8 @@
- ~\$\.mage\.__\((?s)[^'"]*?(['"])(.+?)\1(?s).*?\)~
- ~\$t\((?s)[^'"]*?(["'])(.+?)\1(?s).*?\)~
+
+
diff --git a/app/code/Magento/Ui/Component/ExportButton.php b/app/code/Magento/Ui/Component/ExportButton.php
index 9d5f125839003..20cc6623c847c 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
+ */
+ private 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;
+ }
}
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;
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/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}."
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'.
*
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.
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/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
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/Model/Config/Converter.php b/app/code/Magento/Widget/Model/Config/Converter.php
index 894d63ad4cc57..010c46da56950 100644
--- a/app/code/Magento/Widget/Model/Config/Converter.php
+++ b/app/code/Magento/Widget/Model/Config/Converter.php
@@ -44,7 +44,7 @@ public function convert($source)
case 'parameters':
/** @var $parameter \DOMNode */
foreach ($widgetSubNode->childNodes as $parameter) {
- if ($parameter->nodeName === '#text') {
+ if ($parameter->nodeName === '#text' || $parameter->nodeName === '#comment') {
continue;
}
$subNodeAttributes = $parameter->attributes;
@@ -57,7 +57,7 @@ public function convert($source)
$widgetArray['supported_containers'] = [];
}
foreach ($widgetSubNode->childNodes as $container) {
- if ($container->nodeName === '#text') {
+ if ($container->nodeName === '#text' || $container->nodeName === '#comment') {
continue;
}
$widgetArray['supported_containers'] = array_merge(
diff --git a/app/code/Magento/Widget/Test/Unit/Model/_files/widget.xml b/app/code/Magento/Widget/Test/Unit/Model/_files/widget.xml
index 0a3ace9463557..02e65707d322f 100644
--- a/app/code/Magento/Widget/Test/Unit/Model/_files/widget.xml
+++ b/app/code/Magento/Widget/Test/Unit/Model/_files/widget.xml
@@ -11,6 +11,7 @@
Orders and Returns Search Form
+
@@ -54,6 +55,7 @@
+
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/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 & {
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/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;
diff --git a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
index 019627bc01fc5..9d13249a5b86d 100644
--- a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
@@ -238,7 +238,6 @@
.product-item-pricing {
.label {
display: inline-block;
- width: 4.5rem;
}
}
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/blank/web/css/source/_email-base.less b/app/design/frontend/Magento/blank/web/css/source/_email-base.less
index 1cdae848ec318..8ecc480a84775 100644
--- a/app/design/frontend/Magento/blank/web/css/source/_email-base.less
+++ b/app/design/frontend/Magento/blank/web/css/source/_email-base.less
@@ -238,7 +238,7 @@ body {
a:visited {
// Undo general link hover state
border: 1px solid @button-primary__hover__background;
- color: @button-primary__color !important;
+ color: @button-primary__hover__color !important;
text-decoration: none !important;
}
}
diff --git a/app/design/frontend/Magento/blank/web/css/source/_extends.less b/app/design/frontend/Magento/blank/web/css/source/_extends.less
index 19c76d2feb454..58adadf8f1a82 100644
--- a/app/design/frontend/Magento/blank/web/css/source/_extends.less
+++ b/app/design/frontend/Magento/blank/web/css/source/_extends.less
@@ -1232,7 +1232,7 @@
}
}
-.media-width(@extremum, @break) when (@extremum = 'max') and (@break = (@screen__m + 1)) {
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
.abs-checkout-tooltip-content-position-top-mobile {
@abs-checkout-tooltip-content-position-top();
}
diff --git a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
index e76aacf2b3293..c64efa65ae2f9 100644
--- a/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Catalog/web/css/source/_module.less
@@ -189,10 +189,6 @@
&:last-child {
margin-bottom: 0;
}
-
- &._hidden {
- display: none;
- }
}
}
}
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
index e8a4b5af1168d..3f26e87c34be2 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
@@ -243,7 +243,6 @@
.product-item-pricing {
.label {
display: inline-block;
- width: 4.5rem;
}
}
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/design/frontend/Magento/luma/web/css/source/_extends.less b/app/design/frontend/Magento/luma/web/css/source/_extends.less
index c2a3e7dbd8392..20fa098ba2c4a 100644
--- a/app/design/frontend/Magento/luma/web/css/source/_extends.less
+++ b/app/design/frontend/Magento/luma/web/css/source/_extends.less
@@ -1673,7 +1673,7 @@
}
}
-.media-width(@extremum, @break) when (@extremum = 'max') and (@break = (@screen__m + 1)) {
+.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
.abs-checkout-tooltip-content-position-top-mobile {
@abs-checkout-tooltip-content-position-top();
}
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 27bfd003cafe2..e7a1b5669466d 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
"name": "magento/magento2ce",
"description": "Magento 2 (Community Edition)",
"type": "project",
- "version": "2.1.14-dev",
+ "version": "2.1.15-dev",
"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 16b51aa31e299..85657b45a0128 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": "689d4cec7e32f7154e64436e9f9c89b8",
- "content-hash": "fec7251c27752c42c5135fec4752286c",
+ "content-hash": "0a521e8d94a10edef043d49f142491ea",
"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,20 +87,20 @@
],
"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",
- "version": "1.9",
+ "version": "1.9.0",
"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-10-03T16:55:11+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/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/Block/Cart/DiscountCodes.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php
index 710771de9d38a..2bd90d7ab590b 100644
--- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php
+++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/DiscountCodes.php
@@ -37,14 +37,21 @@ class DiscountCodes extends Form
protected $couponCode = '#coupon_code';
/**
- * Click apply button selector
+ * Locator for "Apply Discount" button.
*
* @var string
*/
protected $applyButton = '.action.apply';
/**
- * Enter discount code and click apply button
+ * Locator for "Cancel Coupon" button.
+ *
+ * @var string
+ */
+ protected $cancelButton = '.action.cancel';
+
+ /**
+ * Enter Discount Code and click "Apply Discount" button.
*
* @param string $code
* @return void
@@ -57,4 +64,17 @@ public function applyCouponCode($code)
$this->_rootElement->find($this->couponCode, Locator::SELECTOR_CSS)->setValue($code);
$this->_rootElement->find($this->applyButton, Locator::SELECTOR_CSS)->click();
}
+
+ /**
+ * Click "Cancel Coupon" button.
+ *
+ * @return void
+ */
+ public function cancelCouponCode()
+ {
+ if (!$this->_rootElement->find($this->formWrapper)->isVisible()) {
+ $this->_rootElement->find($this->openForm)->click();
+ }
+ $this->_rootElement->find($this->cancelButton)->click();
+ }
}
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/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php
index e185accdddd0b..6da34639728f3 100644
--- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php
+++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/ApplySalesRuleOnFrontendStep.php
@@ -29,15 +29,24 @@ class ApplySalesRuleOnFrontendStep implements TestStepInterface
*/
protected $salesRule;
+ /**
+ * Sales Rule Discount Code.
+ *
+ * @var SalesRule
+ */
+ protected $couponCode;
+
/**
* @constructor
* @param CheckoutCart $checkoutCart
* @param SalesRule $salesRule
+ * @param string $couponCode
*/
- public function __construct(CheckoutCart $checkoutCart, SalesRule $salesRule = null)
+ public function __construct(CheckoutCart $checkoutCart, SalesRule $salesRule = null, $couponCode = null)
{
$this->checkoutCart = $checkoutCart;
$this->salesRule = $salesRule;
+ $this->couponCode = $couponCode;
}
/**
@@ -51,5 +60,10 @@ public function run()
$this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($this->salesRule->getCouponCode());
$this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals();
}
+
+ if ($this->couponCode !== null) {
+ $this->checkoutCart->getDiscountCodesBlock()->applyCouponCode($this->couponCode);
+ $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals();
+ }
}
}
diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CancelSalesRuleOnFrontendStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CancelSalesRuleOnFrontendStep.php
new file mode 100644
index 0000000000000..bba48acd667f5
--- /dev/null
+++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/CancelSalesRuleOnFrontendStep.php
@@ -0,0 +1,43 @@
+checkoutCart = $checkoutCart;
+ }
+
+ /**
+ * Apply coupon before one page checkout.
+ *
+ * @return void
+ */
+ public function run()
+ {
+ $this->checkoutCart->getDiscountCodesBlock()->cancelCouponCode();
+ $this->checkoutCart->getTotalsBlock()->waitForUpdatedTotals();
+ }
+}
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/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.xml
index e8899cf6e5533..aa6844834da4b 100644
--- a/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.xml
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Block/Adminhtml/Widget/Instance/Edit/Tab/WidgetInstanceType/GenericPages.xml
@@ -11,6 +11,10 @@
.page_group_select
optgroupselect
+
+ #layout_handle
+ select
+ .block_reference select
select
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/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php
index 1195722834d9c..ad8c446cbe651 100644
--- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php
+++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/AbstractCreateWidgetEntityTest.php
@@ -6,17 +6,26 @@
namespace Magento\Widget\Test\TestCase;
+use Magento\Mtf\TestStep\TestStepFactory;
use Magento\Widget\Test\Fixture\Widget;
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceEdit;
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceIndex;
use Magento\Widget\Test\Page\Adminhtml\WidgetInstanceNew;
use Magento\Mtf\TestCase\Injectable;
+use Magento\PageCache\Test\Page\Adminhtml\AdminCache;
/**
* Test Creation for New Instance of WidgetEntity.
*/
abstract class AbstractCreateWidgetEntityTest extends Injectable
{
+ /**
+ * Factory for Test Steps.
+ *
+ * @var TestStepFactory
+ */
+ protected $testStep;
+
/**
* WidgetInstanceIndex page.
*
@@ -38,31 +47,57 @@ abstract class AbstractCreateWidgetEntityTest extends Injectable
*/
protected $widgetInstanceEdit;
+ /**
+ * "Cache Management" Admin panel page.
+ *
+ * @var AdminCache
+ */
+ protected $cachePage;
+
/**
* Injection data.
*
* @param WidgetInstanceIndex $widgetInstanceIndex
* @param WidgetInstanceNew $widgetInstanceNew
* @param WidgetInstanceEdit $widgetInstanceEdit
+ * @param AdminCache $adminCache
+ * @param TestStepFactory $testStepFactory
* @return void
*/
public function __inject(
WidgetInstanceIndex $widgetInstanceIndex,
WidgetInstanceNew $widgetInstanceNew,
- WidgetInstanceEdit $widgetInstanceEdit
+ WidgetInstanceEdit $widgetInstanceEdit,
+ AdminCache $adminCache,
+ TestStepFactory $testStepFactory
) {
$this->widgetInstanceIndex = $widgetInstanceIndex;
$this->widgetInstanceNew = $widgetInstanceNew;
$this->widgetInstanceEdit = $widgetInstanceEdit;
+ $this->cachePage = $adminCache;
+ $this->testStep = $testStepFactory;
}
/**
- * Delete all widgets.
+ * Delete all Widgets & flush the Cache.
*
* @return void
*/
public function tearDown()
{
$this->objectManager->create('Magento\Widget\Test\TestStep\DeleteAllWidgetsStep')->run();
+ $this->flushCache();
+ }
+
+ /**
+ * Flush Magento Cache in Admin panel.
+ *
+ * @return void
+ */
+ protected function flushCache()
+ {
+ $this->cachePage->open();
+ $this->cachePage->getActionsBlock()->flushMagentoCache();
+ $this->cachePage->getMessagesBlock()->waitSuccessMessage();
}
}
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixture.php b/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixture.php
index 1e424e8f5b344..a83ed41ca7efd 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixture.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixture.php
@@ -171,8 +171,13 @@ protected function _applyOneFixture($fixture)
require $fixture;
}
} catch (\Exception $e) {
- throw new \Exception(
- sprintf("Error in fixture: %s.\n %s", json_encode($fixture), $e->getMessage()),
+ throw new \PHPUnit_Framework_Exception(
+ sprintf(
+ "Error in fixture: %s.\n %s\n %s",
+ json_encode($fixture),
+ $e->getMessage(),
+ $e->getTraceAsString()
+ ),
500,
$e
);
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixtureBeforeTransaction.php b/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixtureBeforeTransaction.php
index 6a79aba1feb8d..ec23de5061f76 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixtureBeforeTransaction.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Annotation/DataFixtureBeforeTransaction.php
@@ -138,8 +138,15 @@ protected function _applyOneFixture($fixture)
require $fixture;
}
} catch (\Exception $e) {
- throw new \Exception(
- sprintf("Error in fixture: %s.\n %s", json_encode($fixture), (string)$e)
+ throw new \PHPUnit_Framework_Exception(
+ sprintf(
+ "Error in fixture: %s.\n %s\n %s",
+ json_encode($fixture),
+ $e->getMessage(),
+ $e->getTraceAsString()
+ ),
+ 500,
+ $e
);
}
}
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/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/Backend/Model/UrlTest.php b/dev/tests/integration/testsuite/Magento/Backend/Model/UrlTest.php
index 32cc75afa7acc..ae29a37679536 100644
--- a/dev/tests/integration/testsuite/Magento/Backend/Model/UrlTest.php
+++ b/dev/tests/integration/testsuite/Magento/Backend/Model/UrlTest.php
@@ -75,6 +75,9 @@ public function testGetUrl()
];
$url = $this->_model->getUrl('path', $routeParams);
$this->assertContains('/param4/' . $paramEncoder->encode('a4==') . '/', $url);
+
+ $url = $this->_model->getUrl('route/controller/action/id/100');
+ $this->assertContains('id/100', $url);
}
/**
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/Customer/Model/GroupManagementTest.php b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
index 2f1242029026b..4e6509633b914 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
@@ -15,7 +15,7 @@
class GroupManagementTest extends \PHPUnit_Framework_TestCase
{
/**
- * @var \Magento\Framework\ObjectManagerInterface
+ * @var \Magento\TestFramework\ObjectManager
*/
protected $objectManager;
@@ -42,13 +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()
{
/** @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');
@@ -56,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);
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/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());
diff --git a/dev/tests/integration/testsuite/Magento/Framework/TranslateCachingTest.php b/dev/tests/integration/testsuite/Magento/Framework/TranslateCachingTest.php
index 2d68951eaec81..6b58e8d8bf109 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/TranslateCachingTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/TranslateCachingTest.php
@@ -48,7 +48,7 @@ public function testLoadDataCaching()
/** @var \Magento\Framework\Translate $model */
$model = $this->objectManager->get('Magento\Framework\Translate');
- $model->loadData(\Magento\Framework\App\Area::AREA_FRONTEND); // this is supposed to cache the fixture
+ $model->loadData(\Magento\Framework\App\Area::AREA_FRONTEND, true); // this is supposed to cache the fixture
$this->assertEquals('Fixture Db Translation', new Phrase('Fixture String'));
/** @var \Magento\Translation\Model\ResourceModel\StringUtils $translateString */
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/LayoutDirectivesTest.php b/dev/tests/integration/testsuite/Magento/Framework/View/LayoutDirectivesTest.php
index 2334daeea47c5..f51b90175311e 100755
--- a/dev/tests/integration/testsuite/Magento/Framework/View/LayoutDirectivesTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/LayoutDirectivesTest.php
@@ -198,6 +198,18 @@ public function testRemove()
$this->assertTrue($layout->isBlock('child_block2'));
}
+ /**
+ * @magentoAppIsolation enabled
+ */
+ public function testRemoveCancellation()
+ {
+ $layout = $this->_getLayoutModel('remove_cancellation.xml');
+ $this->assertTrue($layout->isContainer('container1'));
+ $this->assertTrue($layout->isBlock('child_block1'));
+ $this->assertTrue($layout->isBlock('no_name2'));
+ $this->assertFalse($layout->getBlock('not_exist'));
+ }
+
/**
* @magentoAppIsolation enabled
*/
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/remove_cancellation.xml b/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/remove_cancellation.xml
new file mode 100644
index 0000000000000..4e73e625aa5ce
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/remove_cancellation.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/dev/tests/static/testsuite/Magento/Test/Less/LiveCodeTest.php b/dev/tests/static/testsuite/Magento/Test/Less/LiveCodeTest.php
index 1148c2af9ed15..02654a606a74f 100644
--- a/dev/tests/static/testsuite/Magento/Test/Less/LiveCodeTest.php
+++ b/dev/tests/static/testsuite/Magento/Test/Less/LiveCodeTest.php
@@ -43,7 +43,7 @@ public static function setUpBeforeClass()
*/
public function testCodeStyle()
{
- $reportFile = self::$reportDir . '/less_report.txt';
+ $reportFile = self::$reportDir . '/csless_report.txt';
$wrapper = new LessWrapper();
$codeSniffer = new CodeSniffer(realpath(__DIR__ . '/_files/lesscs'), $reportFile, $wrapper);
@@ -57,10 +57,11 @@ public function testCodeStyle()
$result = $codeSniffer->run($this->filterFiles($fileList));
+ $report = file_exists($reportFile) ? file_get_contents($reportFile) : "";
$this->assertEquals(
0,
$result,
- "PHP Code Sniffer has found {$result} error(s): See detailed report in {$reportFile}"
+ "PHP Code Sniffer has found {$result} error(s): " . PHP_EOL . $report
);
}
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
diff --git a/lib/internal/GnuFreeFont/FreeSerif.ttf b/lib/internal/GnuFreeFont/FreeSerif.ttf
new file mode 100644
index 0000000000000..889c594f6674e
Binary files /dev/null and b/lib/internal/GnuFreeFont/FreeSerif.ttf differ
diff --git a/lib/internal/GnuFreeFont/FreeSerifBold.ttf b/lib/internal/GnuFreeFont/FreeSerifBold.ttf
new file mode 100644
index 0000000000000..49112d3a92c96
Binary files /dev/null and b/lib/internal/GnuFreeFont/FreeSerifBold.ttf differ
diff --git a/lib/internal/GnuFreeFont/FreeSerifItalic.ttf b/lib/internal/GnuFreeFont/FreeSerifItalic.ttf
new file mode 100644
index 0000000000000..4ea68896dc3d3
Binary files /dev/null and b/lib/internal/GnuFreeFont/FreeSerifItalic.ttf differ
diff --git a/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php b/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
index 58f18f2b5c745..69f4bc1f0042d 100644
--- a/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
+++ b/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
@@ -68,7 +68,6 @@ class Factory
*/
protected $_backendOptions = [
'hashed_directory_level' => 1,
- 'hashed_directory_umask' => 0777,
'file_name_prefix' => 'mage',
];
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
*/
diff --git a/lib/internal/Magento/Framework/Console/Cli.php b/lib/internal/Magento/Framework/Console/Cli.php
index a0327ebe1202c..288657cd6c613 100644
--- a/lib/internal/Magento/Framework/Console/Cli.php
+++ b/lib/internal/Magento/Framework/Console/Cli.php
@@ -17,6 +17,7 @@
use Magento\Framework\Shell\ComplexParameter;
use Magento\Setup\Console\CompilerPreparation;
use \Magento\Framework\App\ProductMetadata;
+use Magento\Framework\App\State;
/**
* Magento 2 CLI Application. This is the hood for all command line tools supported by Magento
@@ -47,6 +48,11 @@ class Cli extends SymfonyApplication
*/
private $initException;
+ /**
+ * @var \Magento\Framework\ObjectManagerInterface
+ */
+ private $objectManager;
+
/**
* @param string $name application name
* @param string $version application version
@@ -56,15 +62,7 @@ public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
{
$this->serviceManager = \Zend\Mvc\Application::init(require BP . '/setup/config/application.config.php')
->getServiceManager();
- $generationDirectoryAccess = new GenerationDirectoryAccess($this->serviceManager);
- if (!$generationDirectoryAccess->check()) {
- $output = new ConsoleOutput();
- $output->writeln(
- 'Command line user does not have read and write permissions on var/generation directory. Please'
- . ' address this issue before using Magento command line.'
- );
- exit(0);
- }
+
/**
* Temporary workaround until the compiler is able to clear the generation directory
* @todo remove after MAGETWO-44493 resolved
@@ -74,6 +72,21 @@ public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
$compilerPreparation->handleCompilerEnvironment();
}
+ $bootstrapParam = new ComplexParameter(self::INPUT_KEY_BOOTSTRAP);
+ $params = $bootstrapParam->mergeFromArgv($_SERVER, $_SERVER);
+ $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
+ $bootstrap = Bootstrap::create(BP, $params);
+ $this->objectManager = $bootstrap->getObjectManager();
+
+ if ($this->checkGenerationDirectoryAccess()) {
+ $output = new ConsoleOutput();
+ $output->writeln(
+ 'Command line user does not have read and write permissions on var/generation directory. Please'
+ . ' address this issue before using Magento command line.'
+ );
+ exit(0);
+ }
+
if ($version == 'UNKNOWN') {
$directoryList = new DirectoryList(BP);
$composerJsonFinder = new ComposerJsonFinder($directoryList);
@@ -83,6 +96,22 @@ public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN')
parent::__construct($name, $version);
}
+ /**
+ * Check generation directory access.
+ *
+ * Skip and return true if production mode is enabled.
+ *
+ * @return bool
+ */
+ private function checkGenerationDirectoryAccess()
+ {
+ $generationDirectoryAccess = new GenerationDirectoryAccess($this->serviceManager);
+ /** @var State $state */
+ $state = $this->objectManager->create(State::class);
+
+ return $state->getMode() !== State::MODE_PRODUCTION && !$generationDirectoryAccess->check();
+ }
+
/**
* Process an error happened during initialization of commands, if any
*
@@ -121,31 +150,25 @@ protected function getApplicationCommands()
{
$commands = [];
try {
- $bootstrapParam = new ComplexParameter(self::INPUT_KEY_BOOTSTRAP);
- $params = $bootstrapParam->mergeFromArgv($_SERVER, $_SERVER);
- $params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = null;
- $bootstrap = Bootstrap::create(BP, $params);
- $objectManager = $bootstrap->getObjectManager();
-
// Specialized setup command list available before and after M2 install
if (class_exists('Magento\Setup\Console\CommandList')
&& class_exists('Magento\Setup\Model\ObjectManagerProvider')
) {
/** @var \Magento\Setup\Model\ObjectManagerProvider $omProvider */
$omProvider = $this->serviceManager->get(\Magento\Setup\Model\ObjectManagerProvider::class);
- $omProvider->setObjectManager($objectManager);
+ $omProvider->setObjectManager($this->objectManager);
$setupCommandList = new \Magento\Setup\Console\CommandList($this->serviceManager);
$commands = array_merge($commands, $setupCommandList->getCommands());
}
// Allowing instances of all modular commands only after M2 install
- if ($objectManager->get(\Magento\Framework\App\DeploymentConfig::class)->isAvailable()) {
+ if ($this->objectManager->get(\Magento\Framework\App\DeploymentConfig::class)->isAvailable()) {
/** @var \Magento\Framework\Console\CommandListInterface $commandList */
- $commandList = $objectManager->create(\Magento\Framework\Console\CommandListInterface::class);
+ $commandList = $this->objectManager->create(\Magento\Framework\Console\CommandListInterface::class);
$commands = array_merge($commands, $commandList->getCommands());
}
- $commands = array_merge($commands, $this->getVendorCommands($objectManager));
+ $commands = array_merge($commands, $this->getVendorCommands($this->objectManager));
} catch (\Exception $e) {
$this->initException = $e;
}
diff --git a/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php b/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
index 5cba5bd3e8058..c576a060730ea 100644
--- a/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
+++ b/lib/internal/Magento/Framework/DB/Adapter/AdapterInterface.php
@@ -492,6 +492,13 @@ public function insertForce($table, array $bind);
/**
* Updates table rows with specified data based on a WHERE clause.
*
+ * The $where parameter in this instance can be a single WHERE clause or an array containing a multiple. In all
+ * instances, a WHERE clause can be a string or an instance of {@see Zend_Db_Expr}. In the event you use an array,
+ * you may specify the clause as the key and a value to be bound to it as the value. E.g., ['amt > ?' => $amt]
+ *
+ * If the $where parameter is an array of multiple clauses, they will be joined by AND, with each clause wrapped in
+ * parenthesis. If you wish to use an OR, you must give a single clause that is an instance of {@see Zend_Db_Expr}
+ *
* @param mixed $table The table to update.
* @param array $bind Column-value pairs.
* @param mixed $where UPDATE WHERE clause(s).
@@ -928,7 +935,6 @@ public function getDateExtractSql($date, $unit);
*/
public function getTableName($tableName);
-
/**
* Build a trigger name based on table name and trigger details
*
diff --git a/lib/internal/Magento/Framework/Encryption/Encryptor.php b/lib/internal/Magento/Framework/Encryption/Encryptor.php
index c79233b62fb61..0a20bfe11873f 100644
--- a/lib/internal/Magento/Framework/Encryption/Encryptor.php
+++ b/lib/internal/Magento/Framework/Encryption/Encryptor.php
@@ -143,7 +143,7 @@ public function validateCipher($version)
public function getHash($password, $salt = false, $version = self::HASH_VERSION_LATEST)
{
if ($salt === false) {
- return $this->hash($password);
+ return $this->hash($password, $version);
}
if ($salt === true) {
$salt = self::DEFAULT_SALT_LENGTH;
@@ -155,7 +155,7 @@ public function getHash($password, $salt = false, $version = self::HASH_VERSION_
return implode(
self::DELIMITER,
[
- $this->hash($salt . $password),
+ $this->hash($salt . $password, $version),
$salt,
$version
]
diff --git a/lib/internal/Magento/Framework/Encryption/Test/Unit/EncryptorTest.php b/lib/internal/Magento/Framework/Encryption/Test/Unit/EncryptorTest.php
index 7031cdace2e97..4fdbd558dafd3 100644
--- a/lib/internal/Magento/Framework/Encryption/Test/Unit/EncryptorTest.php
+++ b/lib/internal/Magento/Framework/Encryption/Test/Unit/EncryptorTest.php
@@ -207,4 +207,32 @@ public function testValidateKey()
$this->assertEquals($expectedEncryptedData, $actualEncryptedData);
$this->assertEquals($crypt->decrypt($expectedEncryptedData), $actual->decrypt($actualEncryptedData));
}
+
+ public function testUseSpecifiedHashingAlgoDataProvider()
+ {
+ return [
+ ['password', 'salt', Encryptor::HASH_VERSION_MD5,
+ '67a1e09bb1f83f5007dc119c14d663aa:salt:0'],
+ ['password', 'salt', Encryptor::HASH_VERSION_SHA256,
+ '13601bda4ea78e55a07b98866d2be6be0744e3866f13c00c811cab608a28f322:salt:1'],
+ ['password', false, Encryptor::HASH_VERSION_MD5,
+ '5f4dcc3b5aa765d61d8327deb882cf99'],
+ ['password', false, Encryptor::HASH_VERSION_SHA256,
+ '5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8']
+ ];
+ }
+
+ /**
+ * @dataProvider testUseSpecifiedHashingAlgoDataProvider
+ *
+ * @param $password
+ * @param $salt
+ * @param $hashAlgo
+ * @param $expected
+ */
+ public function testGetHashMustUseSpecifiedHashingAlgo($password, $salt, $hashAlgo, $expected)
+ {
+ $hash = $this->_model->getHash($password, $salt, $hashAlgo);
+ $this->assertEquals($expected, $hash);
+ }
}
diff --git a/lib/internal/Magento/Framework/HTTP/Client/Curl.php b/lib/internal/Magento/Framework/HTTP/Client/Curl.php
index d4271bdebe6cc..85508dbf9c1ff 100644
--- a/lib/internal/Magento/Framework/HTTP/Client/Curl.php
+++ b/lib/internal/Magento/Framework/HTTP/Client/Curl.php
@@ -222,8 +222,11 @@ public function get($uri)
/**
* Make POST request
*
+ * String type was added to parameter $param in order to support sending JSON or XML requests.
+ * This feature was added base on Community Pull Request https://github.com/magento/magento2/pull/8373
+ *
* @param string $uri
- * @param array $params
+ * @param array|string $params
* @return void
*
* @see \Magento\Framework\HTTP\Client#post($uri, $params)
@@ -327,9 +330,13 @@ public function getStatus()
/**
* Make request
+ *
+ * String type was added to parameter $param in order to support sending JSON or XML requests.
+ * This feature was added base on Community Pull Request https://github.com/magento/magento2/pull/8373
+ *
* @param string $method
* @param string $uri
- * @param array $params
+ * @param array|string $params - use $params as a string in case of JSON or XML POST request.
* @return void
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -340,7 +347,7 @@ protected function makeRequest($method, $uri, $params = [])
$this->curlOption(CURLOPT_URL, $uri);
if ($method == 'POST') {
$this->curlOption(CURLOPT_POST, 1);
- $this->curlOption(CURLOPT_POSTFIELDS, http_build_query($params));
+ $this->curlOption(CURLOPT_POSTFIELDS, is_array($params) ? http_build_query($params) : $params);
} elseif ($method == "GET") {
$this->curlOption(CURLOPT_HTTPGET, 1);
} else {
diff --git a/lib/internal/Magento/Framework/HTTP/Client/Socket.php b/lib/internal/Magento/Framework/HTTP/Client/Socket.php
index 8157081139788..d229baa5dd476 100644
--- a/lib/internal/Magento/Framework/HTTP/Client/Socket.php
+++ b/lib/internal/Magento/Framework/HTTP/Client/Socket.php
@@ -273,7 +273,7 @@ protected function parseUrl($uri)
* Make POST request
*
* @param string $uri
- * @param array $params
+ * @param array|string $params use string in case of JSON or XML POST request
* @return void
*/
public function post($uri, $params)
@@ -455,10 +455,12 @@ public function getStatus()
/**
* Make request
+ *
* @param string $method
* @param string $uri
- * @param array $params
+ * @param array|string $params use string in case of JSON or XML POST request
* @return void
+ * @throws \Exception
*/
protected function makeRequest($method, $uri, $params = [])
{
@@ -473,8 +475,8 @@ protected function makeRequest($method, $uri, $params = [])
$appendHeaders = [];
$paramsStr = false;
- if ($isPost && count($params)) {
- $paramsStr = http_build_query($params);
+ if ($isPost && $params) {
+ $paramsStr = is_array($params) ? http_build_query($params) : $params;
$appendHeaders['Content-type'] = 'application/x-www-form-urlencoded';
$appendHeaders['Content-length'] = strlen($paramsStr);
}
diff --git a/lib/internal/Magento/Framework/Mview/View/Changelog.php b/lib/internal/Magento/Framework/Mview/View/Changelog.php
index 91caf66228360..17b4436ad6cb7 100644
--- a/lib/internal/Magento/Framework/Mview/View/Changelog.php
+++ b/lib/internal/Magento/Framework/Mview/View/Changelog.php
@@ -121,7 +121,7 @@ public function clear($versionId)
throw new ChangelogTableNotExistsException(new Phrase("Table %1 does not exist", [$changelogTableName]));
}
- $this->connection->delete($changelogTableName, ['version_id <= ?' => (int)$versionId]);
+ $this->connection->delete($changelogTableName, ['version_id < ?' => (int)$versionId]);
return true;
}
diff --git a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php
index b26a4339a9f52..a2dbae8c57e5c 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php
@@ -1,6 +1,6 @@
isSessionExists()) {
- $oldSessionId = session_id();
- session_regenerate_id();
- $newSessionId = session_id();
- session_id($oldSessionId);
- session_destroy();
-
- $oldSession = $_SESSION;
- session_id($newSessionId);
- session_start();
- $_SESSION = $oldSession;
+ session_regenerate_id(true);
} else {
session_start();
}
diff --git a/lib/internal/Magento/Framework/Setup/FilePermissions.php b/lib/internal/Magento/Framework/Setup/FilePermissions.php
index 4cf5f1897da9d..e77d55985f209 100644
--- a/lib/internal/Magento/Framework/Setup/FilePermissions.php
+++ b/lib/internal/Magento/Framework/Setup/FilePermissions.php
@@ -9,6 +9,8 @@
use Magento\Framework\Backup\Filesystem\Iterator\Filter;
use Magento\Framework\Filesystem\Filter\ExcludeFilter;
use Magento\Framework\Filesystem;
+use Magento\Framework\App\State;
+use Magento\Framework\App\ObjectManager;
class FilePermissions
{
@@ -22,6 +24,11 @@ class FilePermissions
*/
protected $directoryList;
+ /**
+ * @var State
+ */
+ private $state;
+
/**
* List of required writable directories for installation
*
@@ -60,13 +67,16 @@ class FilePermissions
/**
* @param Filesystem $filesystem
* @param DirectoryList $directoryList
+ * @param State $state
*/
public function __construct(
Filesystem $filesystem,
- DirectoryList $directoryList
+ DirectoryList $directoryList,
+ State $state = null
) {
$this->filesystem = $filesystem;
$this->directoryList = $directoryList;
+ $this->state = $state ?: ObjectManager::getInstance()->get(State::class);
}
/**
@@ -141,12 +151,15 @@ private function checkRecursiveDirectories($directory)
new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::CHILD_FIRST
);
- $noWritableFilesFolders = [
- $this->directoryList->getPath(DirectoryList::GENERATION) . '/',
- $this->directoryList->getPath(DirectoryList::DI) . '/',
- ];
- $directoryIterator = new Filter($directoryIterator, $noWritableFilesFolders);
+ $generationPath = $this->directoryList->getPath(DirectoryList::GENERATION);
+ $diPath = $this->directoryList->getPath(DirectoryList::DI);
+
+ if ($this->state->getMode() === State::MODE_PRODUCTION) {
+ $directoryIterator = new ExcludeFilter($directoryIterator, [$generationPath, $diPath]);
+ } else {
+ $directoryIterator = new Filter($directoryIterator, [$generationPath . '/', $diPath . '/']);
+ }
$directoryIterator = new ExcludeFilter(
$directoryIterator,
diff --git a/lib/internal/Magento/Framework/Setup/Test/Unit/FilePermissionsTest.php b/lib/internal/Magento/Framework/Setup/Test/Unit/FilePermissionsTest.php
index d01ba26b04a73..4fea4ebfdbb91 100644
--- a/lib/internal/Magento/Framework/Setup/Test/Unit/FilePermissionsTest.php
+++ b/lib/internal/Magento/Framework/Setup/Test/Unit/FilePermissionsTest.php
@@ -7,6 +7,7 @@
use \Magento\Framework\Setup\FilePermissions;
use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\App\State;
class FilePermissionsTest extends \PHPUnit_Framework_TestCase
{
@@ -25,6 +26,11 @@ class FilePermissionsTest extends \PHPUnit_Framework_TestCase
*/
private $directoryListMock;
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject|State
+ */
+ private $stateMock;
+
/**
* @var FilePermissions
*/
@@ -34,6 +40,7 @@ public function setUp()
{
$this->directoryWriteMock = $this->getMock('Magento\Framework\Filesystem\Directory\Write', [], [], '', false);
$this->filesystemMock = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
+ $this->stateMock = $this->getMock(State::class, [], [], '', false);
$this->filesystemMock
->expects($this->any())
@@ -43,7 +50,8 @@ public function setUp()
$this->filePermissions = new FilePermissions(
$this->filesystemMock,
- $this->directoryListMock
+ $this->directoryListMock,
+ $this->stateMock
);
}
@@ -219,6 +227,7 @@ public function setUpDirectoryListInstallation()
->method('getPath')
->with(DirectoryList::STATIC_VIEW)
->will($this->returnValue(BP . '/pub/static'));
+
}
public function setUpDirectoryWriteInstallation()
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..7de5d0065d268 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($value)
+ {
+ 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())
);
}
}
diff --git a/lib/internal/Magento/Framework/View/Layout/Reader/Block.php b/lib/internal/Magento/Framework/View/Layout/Reader/Block.php
index f89344be1208f..6d2593389840f 100755
--- a/lib/internal/Magento/Framework/View/Layout/Reader/Block.php
+++ b/lib/internal/Magento/Framework/View/Layout/Reader/Block.php
@@ -207,13 +207,15 @@ protected function scheduleReference(
$elementRemove = filter_var($currentElement->getAttribute('remove'), FILTER_VALIDATE_BOOLEAN);
if ($elementRemove) {
$scheduledStructure->setElementToRemoveList($elementName);
- } else {
- $data = $scheduledStructure->getStructureElementData($elementName, []);
- $data['attributes'] = $this->mergeBlockAttributes($data, $currentElement);
- $this->updateScheduledData($currentElement, $data);
- $this->evaluateArguments($currentElement, $data);
- $scheduledStructure->setStructureElementData($elementName, $data);
+ return;
+ } elseif ($currentElement->getAttribute('remove')) {
+ $scheduledStructure->unsetElementFromListToRemove($elementName);
}
+ $data = $scheduledStructure->getStructureElementData($elementName, []);
+ $data['attributes'] = $this->mergeBlockAttributes($data, $currentElement);
+ $this->updateScheduledData($currentElement, $data);
+ $this->evaluateArguments($currentElement, $data);
+ $scheduledStructure->setStructureElementData($elementName, $data);
}
/**
diff --git a/lib/internal/Magento/Framework/View/Layout/Reader/Container.php b/lib/internal/Magento/Framework/View/Layout/Reader/Container.php
index 703f49422589f..f5a19e9e8a8cd 100755
--- a/lib/internal/Magento/Framework/View/Layout/Reader/Container.php
+++ b/lib/internal/Magento/Framework/View/Layout/Reader/Container.php
@@ -141,11 +141,12 @@ protected function containerReference(
) {
$containerName = $currentElement->getAttribute('name');
$containerRemove = filter_var($currentElement->getAttribute('remove'), FILTER_VALIDATE_BOOLEAN);
-
if ($containerRemove) {
$scheduledStructure->setElementToRemoveList($containerName);
- } else {
- $this->mergeContainerAttributes($scheduledStructure, $currentElement);
+ return;
+ } elseif ($currentElement->getAttribute('remove')) {
+ $scheduledStructure->unsetElementFromListToRemove($containerName);
}
+ $this->mergeContainerAttributes($scheduledStructure, $currentElement);
}
}
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/BlockTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/BlockTest.php
index 128ec1fcafd04..a65932e4969c1 100755
--- a/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/BlockTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/BlockTest.php
@@ -188,6 +188,12 @@ public function testProcessReference(
$setCondition,
$setRemoveCondition
) {
+ if ($literal == 'referenceBlock' && $remove == 'false') {
+ $this->scheduledStructure->expects($this->once())
+ ->method('unsetElementFromListToRemove')
+ ->with($literal);
+ }
+
$this->context->expects($this->once())->method('getScheduledStructure')
->will($this->returnValue($this->scheduledStructure));
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/ContainerTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/ContainerTest.php
index 4a9cb7ea3c2f9..921c82c342af8 100755
--- a/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/ContainerTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Layout/Reader/ContainerTest.php
@@ -102,6 +102,12 @@ public function testProcess(
->with($contextMock, $elementCurrent)
->willReturnSelf();
+ if ($elementCurrent->getAttribute('remove') == 'false') {
+ $scheduledStructureMock->expects($this->once())
+ ->method('unsetElementFromListToRemove')
+ ->with($elementCurrent->getAttribute('name'));
+ }
+
$this->container->interpret($contextMock, $elementCurrent);
}
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"
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-width
//
0
//
'' | false | value
-//
Distanse between columns
+//
Distance between columns
//
//
//
Variables for layout columns
@@ -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
//