Pursuit Lumaflex™ Tone Band
x™
diff --git a/app/code/Magento/Catalog/Test/Mftf/Test/AdminShowDoubleSpacesInProductGrid.xml b/app/code/Magento/Catalog/Test/Mftf/Test/AdminShowDoubleSpacesInProductGrid.xml
new file mode 100644
index 0000000000000..c3e939b4155c8
--- /dev/null
+++ b/app/code/Magento/Catalog/Test/Mftf/Test/AdminShowDoubleSpacesInProductGrid.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Catalog/Test/Unit/Block/Ui/ProductViewCounterTest.php b/app/code/Magento/Catalog/Test/Unit/Block/Ui/ProductViewCounterTest.php
index 6026d1462e461..87f5be4b21333 100644
--- a/app/code/Magento/Catalog/Test/Unit/Block/Ui/ProductViewCounterTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Block/Ui/ProductViewCounterTest.php
@@ -166,6 +166,7 @@ public function testGetCurrentProductDataWithNonEmptyProduct()
{
$productMock = $this->getMockBuilder(ProductInterface::class)
->disableOriginalConstructor()
+ ->addMethods(['isAvailable'])
->getMockForAbstractClass();
$productRendererMock = $this->getMockBuilder(ProductRenderInterface::class)
->disableOriginalConstructor()
@@ -173,7 +174,6 @@ public function testGetCurrentProductDataWithNonEmptyProduct()
$storeMock = $this->getMockBuilder(Store::class)
->disableOriginalConstructor()
->getMock();
-
$this->registryMock->expects($this->once())
->method('registry')
->with('product')
diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml
index 88bb578712056..2cd2a15b04900 100644
--- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml
+++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml
@@ -132,7 +132,7 @@
true
text
- ui/grid/cells/html
+ Magento_Catalog/grid/cells/preserved
@@ -155,7 +155,7 @@
text
- ui/grid/cells/html
+ Magento_Catalog/grid/cells/preserved
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/template/grid/cells/preserved.html b/app/code/Magento/Catalog/view/adminhtml/web/template/grid/cells/preserved.html
new file mode 100644
index 0000000000000..936342df23795
--- /dev/null
+++ b/app/code/Magento/Catalog/view/adminhtml/web/template/grid/cells/preserved.html
@@ -0,0 +1,7 @@
+
+
diff --git a/app/code/Magento/Catalog/view/base/web/js/product/addtocart-button.js b/app/code/Magento/Catalog/view/base/web/js/product/addtocart-button.js
index 4baf082b37c02..f599d05ba5ea9 100644
--- a/app/code/Magento/Catalog/view/base/web/js/product/addtocart-button.js
+++ b/app/code/Magento/Catalog/view/base/web/js/product/addtocart-button.js
@@ -55,6 +55,16 @@ define([
return row['is_salable'];
},
+ /**
+ * Depends on this option, stock status text can be "In stock" or "Out Of Stock"
+ *
+ * @param {Object} row
+ * @returns {Boolean}
+ */
+ isAvailable: function (row) {
+ return row['is_available'];
+ },
+
/**
* Depends on this option, "Add to cart" button can be shown or hide. Depends on backend configuration
*
diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/compare/list.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/compare/list.phtml
index 07cca77178a38..b7d6e1f2079a0 100644
--- a/app/code/Magento/Catalog/view/frontend/templates/product/compare/list.phtml
+++ b/app/code/Magento/Catalog/view/frontend/templates/product/compare/list.phtml
@@ -78,7 +78,7 @@
- getIsSalable()) :?>
+ isAvailable()) :?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
index a831bd7be6f71..4fba22f41c9de 100644
--- a/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
+++ b/app/code/Magento/Catalog/view/frontend/templates/product/list.phtml
@@ -153,7 +153,7 @@ $_helper = $block->getData('outputHelper');
- = $block->getToolbarHtml() ?>
+ = $block->getChildBlock('toolbar')->setIsBottom(true)->toHtml() ?>
',
- 'back' => 'close'
+ 'back' => 'close',
];
$filteredPostData = [
@@ -149,7 +152,7 @@ public function testSaveAction()
'stores' => ['0'],
'is_active' => true,
'content' => '"><script>alert("cookie: "+document.cookie)</script>',
- 'back' => 'close'
+ 'back' => 'close',
];
$this->dataProcessorMock->expects($this->any())
@@ -236,7 +239,7 @@ public function testSaveAndContinue()
'stores' => ['0'],
'is_active' => true,
'content' => '">',
- 'back' => 'continue'
+ 'back' => 'continue',
];
$this->requestMock->expects($this->any())->method('getPostValue')->willReturn($postData);
$this->requestMock->expects($this->atLeastOnce())
@@ -304,12 +307,13 @@ public function testSaveActionThrowsException()
$this->pageRepository->expects($this->once())->method('getById')->with($this->pageId)->willReturn($page);
$page->expects($this->once())->method('setData');
$this->pageRepository->expects($this->once())->method('save')->with($page)
- ->willThrowException(new \Exception('Error message.'));
+ ->willThrowException(new \Error('Error message.'));
$this->messageManagerMock->expects($this->never())
->method('addSuccessMessage');
$this->messageManagerMock->expects($this->once())
- ->method('addExceptionMessage');
+ ->method('addErrorMessage')
+ ->with('Something went wrong while saving the page.');
$this->dataPersistorMock->expects($this->any())
->method('set')
@@ -318,7 +322,7 @@ public function testSaveActionThrowsException()
[
'page_id' => $this->pageId,
'layout_update_xml' => null,
- 'custom_layout_update_xml' => null
+ 'custom_layout_update_xml' => null,
]
);
diff --git a/app/code/Magento/Customer/Test/Mftf/ActionGroup/AssertStorefrontCustomWelcomeMessageActionGroup.xml b/app/code/Magento/Customer/Test/Mftf/ActionGroup/AssertStorefrontCustomWelcomeMessageActionGroup.xml
new file mode 100644
index 0000000000000..966529d280cfb
--- /dev/null
+++ b/app/code/Magento/Customer/Test/Mftf/ActionGroup/AssertStorefrontCustomWelcomeMessageActionGroup.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ Validates that the custom Welcome message is present on storefront header.
+
+
+
+
+
+
+
+
+
diff --git a/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/type.phtml b/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/type.phtml
index ba6d9e0abec71..e5397e758d63f 100644
--- a/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/type.phtml
+++ b/app/code/Magento/Downloadable/view/frontend/templates/catalog/product/type.phtml
@@ -12,7 +12,7 @@
?>
getProduct() ?>
-getIsSalable()) : ?>
+isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/product/widget/viewed/item.phtml b/app/code/Magento/Reports/view/frontend/templates/product/widget/viewed/item.phtml
index 562c9a2b63a99..da11582a16133 100644
--- a/app/code/Magento/Reports/view/frontend/templates/product/widget/viewed/item.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/product/widget/viewed/item.phtml
@@ -60,7 +60,7 @@ $rating = 'short';
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/compared/column/compared_default_list.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/compared/column/compared_default_list.phtml
index a54259280e381..a9d5718449cd5 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/compared/column/compared_default_list.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/compared/column/compared_default_list.phtml
@@ -78,7 +78,7 @@ if ($exist = $block->getRecentlyComparedProducts()) {
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_grid.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_grid.phtml
index ad6b33820c752..1222490065185 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_grid.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_grid.phtml
@@ -83,7 +83,7 @@ if ($exist = $block->getRecentlyComparedProducts()) {
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_list.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_list.phtml
index ba7a50eef6485..6f7b4f4f66f27 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_list.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/compared/content/compared_list.phtml
@@ -84,7 +84,7 @@ if ($exist = $block->getRecentlyComparedProducts()) {
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/column/viewed_default_list.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/column/viewed_default_list.phtml
index 16fc2b070b95c..3e5cd15bbc62b 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/column/viewed_default_list.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/column/viewed_default_list.phtml
@@ -81,7 +81,7 @@ if ($exist = ($block->getRecentlyViewedProducts() && $block->getRecentlyViewedPr
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_grid.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_grid.phtml
index 567c3ebc57f9b..c2f98e72909d6 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_grid.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_grid.phtml
@@ -86,7 +86,7 @@ if ($exist = ($block->getRecentlyViewedProducts() && $block->getRecentlyViewedPr
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_list.phtml b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_list.phtml
index 9a8bb9c3b734f..32cf0bc69d1e5 100644
--- a/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_list.phtml
+++ b/app/code/Magento/Reports/view/frontend/templates/widget/viewed/content/viewed_list.phtml
@@ -88,7 +88,7 @@ if ($exist = ($block->getRecentlyViewedProducts() && $block->getRecentlyViewedPr
- getIsSalable()) : ?>
+ isAvailable()) : ?>
= $block->escapeHtml(__('In stock')) ?>
= $block->escapeHtml(__('Out of stock')) ?>
diff --git a/app/code/Magento/Shipping/Model/Carrier/AbstractCarrierOnline.php b/app/code/Magento/Shipping/Model/Carrier/AbstractCarrierOnline.php
index c2238ff1a3809..f88fecf84be6a 100644
--- a/app/code/Magento/Shipping/Model/Carrier/AbstractCarrierOnline.php
+++ b/app/code/Magento/Shipping/Model/Carrier/AbstractCarrierOnline.php
@@ -654,7 +654,7 @@ public function getMethodPrice($cost, $method = '')
'free_shipping_enable'
) && $this->getConfigData(
'free_shipping_subtotal'
- ) <= $this->_rawRequest->getBaseSubtotalInclTax() ? '0.00' : $this->getFinalPriceWithHandlingFee(
+ ) <= $this->_rawRequest->getValueWithDiscount() ? '0.00' : $this->getFinalPriceWithHandlingFee(
$cost
);
}
diff --git a/app/code/Magento/Theme/view/frontend/templates/html/header.phtml b/app/code/Magento/Theme/view/frontend/templates/html/header.phtml
index cbefb82f23e33..c59ca42f50602 100644
--- a/app/code/Magento/Theme/view/frontend/templates/html/header.phtml
+++ b/app/code/Magento/Theme/view/frontend/templates/html/header.phtml
@@ -6,6 +6,7 @@
/**
* @var \Magento\Theme\Block\Html\Header $block
+ * @var \Magento\Framework\Escaper $escaper
*/
$welcomeMessage = $block->getWelcome();
?>
@@ -13,12 +14,12 @@ $welcomeMessage = $block->getWelcome();
+ data-bind="text: new String('= $escaper->escapeHtml(__('Welcome, %1!', '%1')) ?>').replace('%1', customer().fullname)">
+ data-bind="html: '= $escaper->escapeHtmlAttr($welcomeMessage) ?>'">
= $block->getBlockHtml('header.additional') ?>
diff --git a/app/code/Magento/Translation/Test/Mftf/Data/TranslationData.xml b/app/code/Magento/Translation/Test/Mftf/Data/TranslationData.xml
index 4f787a52ba093..0b356cf9a73cb 100644
--- a/app/code/Magento/Translation/Test/Mftf/Data/TranslationData.xml
+++ b/app/code/Magento/Translation/Test/Mftf/Data/TranslationData.xml
@@ -171,4 +171,11 @@
Shipping Method:
Shipping Method:
+