Skip to content

Commit 96a55c2

Browse files
committed
Merge remote-tracking branches 'local/ACP2E-1276' and 'local/ACP2E-1151' into PR_1_NOV_2022
3 parents 53be34b + d06dfcd + 43bc295 commit 96a55c2

File tree

6 files changed

+111
-44
lines changed

6 files changed

+111
-44
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="StorefrontValidateItemQtyShouldNotBeNegativeValueWhenPressKeyboardDownKeyTest">
12+
<annotations>
13+
<features value="Checkout"/>
14+
<stories value="Item Qty Goes Negative When Using The Down Arrow Keyboard Key"/>
15+
<title value="Validate item quantity value should not be negative value when pressing keyboard down."/>
16+
<description value="Validate item quantity value should not be negative value when pressing keyboard down."/>
17+
<testCaseId value="AC-6927"/>
18+
<useCaseId value="ACP2E-1276"/>
19+
<severity value="AVERAGE"/>
20+
<group value="checkout"/>
21+
</annotations>
22+
<before>
23+
<!-- Create simple products and category -->
24+
<createData entity="_defaultCategory" stepKey="createCategory"/>
25+
<createData entity="SimpleProduct" stepKey="createProduct">
26+
<requiredEntity createDataKey="createCategory"/>
27+
</createData>
28+
</before>
29+
<after>
30+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
31+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
32+
</after>
33+
<!-- Open created product and add to cart -->
34+
<actionGroup ref="StorefrontOpenProductEntityPageActionGroup" stepKey="openProductPage">
35+
<argument name="product" value="$$createProduct$$"/>
36+
</actionGroup>
37+
<actionGroup ref="StorefrontAddToTheCartActionGroup" stepKey="productAddToCart"/>
38+
<!--Click on mini cart-->
39+
<actionGroup ref="StorefrontClickOnMiniCartActionGroup" stepKey="clickOnMiniCart"/>
40+
<waitForElementVisible selector="{{StorefrontMinicartSection.quantity}}" stepKey="waitForElementQty"/>
41+
<pressKey selector="{{StorefrontMinicartSection.itemQuantity($$createProduct.name$$)}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::DOWN]" stepKey="pressKeyDown1"/>
42+
<pressKey selector="{{StorefrontMinicartSection.itemQuantity($$createProduct.name$$)}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::DOWN]" stepKey="pressKeyDown2"/>
43+
<grabValueFrom selector="{{StorefrontMinicartSection.itemQuantity($$createProduct.name$$)}}" stepKey="grabProductQtyInMinicart"/>
44+
<assertGreaterThanOrEqual stepKey="validateMiniCartQtyValueGreaterThanZero">
45+
<actualResult type="const">$grabProductQtyInMinicart</actualResult>
46+
<expectedResult type="const">0</expectedResult>
47+
</assertGreaterThanOrEqual>
48+
<!--Click on view and edit cart link-->
49+
<actionGroup ref="ClickViewAndEditCartFromMiniCartActionGroup" stepKey="goToShoppingCartFromMiniCart"/>
50+
<waitForPageLoad stepKey="waitForViewAndEditCartToOpen"/>
51+
<pressKey selector="{{CheckoutCartProductSection.ProductQuantityByName($$createProduct.name$$)}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::DOWN]" stepKey="pressCartQuantityKeyDown1"/>
52+
<pressKey selector="{{CheckoutCartProductSection.ProductQuantityByName($$createProduct.name$$)}}" parameterArray="[\Facebook\WebDriver\WebDriverKeys::DOWN]" stepKey="pressCartQuantityKeyDown2"/>
53+
<grabValueFrom selector="{{CheckoutCartProductSection.ProductQuantityByName($$createProduct.name$$)}}" stepKey="grabProductQtyInCart"/>
54+
<assertGreaterThanOrEqual stepKey="validateCartQtyValueGreaterThanZero">
55+
<actualResult type="const">$grabProductQtyInCart</actualResult>
56+
<expectedResult type="const">0</expectedResult>
57+
</assertGreaterThanOrEqual>
58+
</test>
59+
</tests>

app/code/Magento/Sales/view/frontend/templates/email/invoice/items.phtml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,29 @@
44
* See COPYING.txt for license details.
55
*/
66

7+
/** @var \Magento\Sales\Block\Order\Email\Invoice\Items $block */
8+
/** @var \Magento\Framework\Escaper $escaper */
9+
710
?>
811
<?php $_invoice = $block->getInvoice() ?>
912
<?php $_order = $block->getOrder() ?>
10-
<?php if ($_invoice && $_order) : ?>
13+
<?php if ($_invoice && $_order): ?>
1114
<table class="email-items">
1215
<thead>
1316
<tr>
1417
<th class="item-info">
15-
<?= $block->escapeHtml(__('Items')) ?>
18+
<?= $escaper->escapeHtml(__('Items')) ?>
1619
</th>
1720
<th class="item-qty">
18-
<?= $block->escapeHtml(__('Qty')) ?>
21+
<?= $escaper->escapeHtml(__('Qty')) ?>
1922
</th>
2023
<th class="item-subtotal">
21-
<?= $block->escapeHtml(__('Subtotal')) ?>
24+
<?= $escaper->escapeHtml(__('Subtotal')) ?>
2225
</th>
2326
</tr>
2427
</thead>
25-
<?php foreach ($_invoice->getAllItems() as $_item) : ?>
26-
<?php if (!$_item->getOrderItem()->getParentItem()) : ?>
28+
<?php foreach ($_invoice->getAllItems() as $_item): ?>
29+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
2730
<tbody>
2831
<?= $block->getItemHtml($_item) ?>
2932
</tbody>

app/code/Magento/Sales/view/frontend/templates/email/items/creditmemo/default.phtml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,29 @@
44
* See COPYING.txt for license details.
55
*/
66

7+
/** @var \Magento\Framework\Escaper $escaper */
78
?>
89
<?php $_item = $block->getItem() ?>
910
<?php $_order = $block->getItem()->getOrder(); ?>
1011
<tr>
1112
<td class="item-info<?= ($block->getItemOptions() ? ' has-extra' : '') ?>">
12-
<p class="product-name"><?= $block->escapeHtml($_item->getName()) ?></p>
13-
<p class="sku"><?= $block->escapeHtml(__('SKU')) ?>: <?= $block->escapeHtml($block->getSku($_item)) ?></p>
14-
<?php if ($block->getItemOptions()) : ?>
13+
<p class="product-name"><?= $escaper->escapeHtml($_item->getName()) ?></p>
14+
<p class="sku"><?= $escaper->escapeHtml(__('SKU')) ?>: <?= $escaper->escapeHtml($block->getSku($_item)) ?></p>
15+
<?php if ($block->getItemOptions()): ?>
1516
<dl>
16-
<?php foreach ($block->getItemOptions() as $option) : ?>
17-
<dt><strong><em><?= $block->escapeHtml($option['label']) ?></em></strong></dt>
17+
<?php foreach ($block->getItemOptions() as $option): ?>
18+
<dt><strong><em><?= $escaper->escapeHtml($option['label']) ?></em></strong></dt>
1819
<dd>
19-
<?= /* @noEscape */ nl2br($block->escapeHtml($option['value'])) ?>
20+
<?= /* @noEscape */ nl2br($option['value']) ?>
2021
</dd>
2122
<?php endforeach; ?>
2223
</dl>
2324
<?php endif; ?>
2425
<?php $addInfoBlock = $block->getProductAdditionalInformationBlock(); ?>
25-
<?php if ($addInfoBlock) :?>
26+
<?php if ($addInfoBlock):?>
2627
<?= $addInfoBlock->setItem($_item->getOrderItem())->toHtml() ?>
2728
<?php endif; ?>
28-
<?= $block->escapeHtml($_item->getDescription()) ?>
29+
<?= $escaper->escapeHtml($_item->getDescription()) ?>
2930
</td>
3031
<td class="item-qty"><?= (float) $_item->getQty() ?></td>
3132
<td class="item-price">

app/code/Magento/Sales/view/frontend/templates/email/items/invoice/default.phtml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,29 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
/** @var \Magento\Framework\Escaper $escaper */
67
?>
78
<?php $_item = $block->getItem() ?>
89
<?php $_order = $block->getItem()->getOrder(); ?>
910
<tr>
1011
<td class="item-info<?= ($block->getItemOptions() ? ' has-extra' : '') ?>">
11-
<p class="product-name"><?= $block->escapeHtml($_item->getName()) ?></p>
12-
<p class="sku"><?= $block->escapeHtml(__('SKU')) ?>: <?= $block->escapeHtml($block->getSku($_item)) ?></p>
13-
<?php if ($block->getItemOptions()) : ?>
12+
<p class="product-name"><?= $escaper->escapeHtml($_item->getName()) ?></p>
13+
<p class="sku"><?= $escaper->escapeHtml(__('SKU')) ?>: <?= $escaper->escapeHtml($block->getSku($_item)) ?></p>
14+
<?php if ($block->getItemOptions()): ?>
1415
<dl>
15-
<?php foreach ($block->getItemOptions() as $option) : ?>
16-
<dt><strong><em><?= $block->escapeHtml($option['label']) ?></em></strong></dt>
16+
<?php foreach ($block->getItemOptions() as $option): ?>
17+
<dt><strong><em><?= $escaper->escapeHtml($option['label']) ?></em></strong></dt>
1718
<dd>
18-
<?= /* @noEscape */ nl2br($block->escapeHtml($option['value'])) ?>
19+
<?= /* @noEscape */ nl2br($option['value']) ?>
1920
</dd>
2021
<?php endforeach; ?>
2122
</dl>
2223
<?php endif; ?>
2324
<?php $addInfoBlock = $block->getProductAdditionalInformationBlock(); ?>
24-
<?php if ($addInfoBlock) : ?>
25+
<?php if ($addInfoBlock): ?>
2526
<?= $addInfoBlock->setItem($_item->getOrderItem())->toHtml() ?>
2627
<?php endif; ?>
27-
<?= $block->escapeHtml($_item->getDescription()) ?>
28+
<?= $escaper->escapeHtml($_item->getDescription()) ?>
2829
</td>
2930
<td class="item-qty"><?= (float) $_item->getQty() ?></td>
3031
<td class="item-price">

app/code/Magento/Sales/view/frontend/templates/email/items/order/default.phtml

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,34 @@
55
*/
66

77
// phpcs:disable Magento2.Templates.ThisInTemplate
8+
// phpcs:disable Magento2.Files.LineLength, Generic.Files.LineLength
89

910
/** @var $block \Magento\Sales\Block\Order\Email\Items\DefaultItems */
1011

1112
/** @var $_item \Magento\Sales\Model\Order\Item */
13+
/** @var \Magento\Framework\Escaper $escaper */
1214
$_item = $block->getItem();
1315
$_order = $_item->getOrder();
1416
?>
1517
<tr>
1618
<td class="item-info<?= ($block->getItemOptions() ? ' has-extra' : '') ?>">
17-
<p class="product-name"><?= $block->escapeHtml($_item->getName()) ?></p>
18-
<p class="sku"><?= $block->escapeHtml(__('SKU')) ?>: <?= $block->escapeHtml($block->getSku($_item)) ?></p>
19-
<?php if ($block->getItemOptions()) : ?>
19+
<p class="product-name"><?= $escaper->escapeHtml($_item->getName()) ?></p>
20+
<p class="sku"><?= $escaper->escapeHtml(__('SKU')) ?>: <?= $escaper->escapeHtml($block->getSku($_item)) ?></p>
21+
<?php if ($block->getItemOptions()): ?>
2022
<dl class="item-options">
21-
<?php foreach ($block->getItemOptions() as $option) : ?>
22-
<dt><strong><em><?= $block->escapeHtml($option['label']) ?></em></strong></dt>
23+
<?php foreach ($block->getItemOptions() as $option): ?>
24+
<dt><strong><em><?= $escaper->escapeHtml($option['label']) ?></em></strong></dt>
2325
<dd>
24-
<?= /* @noEscape */ nl2br($block->escapeHtml($option['value'])) ?>
26+
<?= /* @noEscape */ nl2br($option['value']) ?>
2527
</dd>
2628
<?php endforeach; ?>
2729
</dl>
2830
<?php endif; ?>
2931
<?php $addInfoBlock = $block->getProductAdditionalInformationBlock(); ?>
30-
<?php if ($addInfoBlock) :?>
32+
<?php if ($addInfoBlock):?>
3133
<?= $addInfoBlock->setItem($_item)->toHtml() ?>
3234
<?php endif; ?>
33-
<?= $block->escapeHtml($_item->getDescription()) ?>
35+
<?= $escaper->escapeHtml($_item->getDescription()) ?>
3436
</td>
3537
<td class="item-qty"><?= (float) $_item->getQtyOrdered() ?></td>
3638
<td class="item-price">
@@ -40,17 +42,17 @@ $_order = $_item->getOrder();
4042
<?php if ($_item->getGiftMessageId()
4143
&& $_giftMessage = $this->helper(\Magento\GiftMessage\Helper\Message::class)
4244
->getGiftMessage($_item->getGiftMessageId())
43-
) : ?>
45+
): ?>
4446
<tr>
4547
<td colspan="3" class="item-extra">
4648
<table class="message-gift">
4749
<tr>
4850
<td>
49-
<h3><?= $block->escapeHtml(__('Gift Message')) ?></h3>
50-
<strong><?= $block->escapeHtml(__('From:')) ?></strong> <?= $block->escapeHtml($_giftMessage->getSender()) ?>
51-
<br /><strong><?= $block->escapeHtml(__('To:')) ?></strong> <?= $block->escapeHtml($_giftMessage->getRecipient()) ?>
52-
<br /><strong><?= $block->escapeHtml(__('Message:')) ?></strong>
53-
<br /><?= $block->escapeHtml($_giftMessage->getMessage()) ?>
51+
<h3><?= $escaper->escapeHtml(__('Gift Message')) ?></h3>
52+
<strong><?= $escaper->escapeHtml(__('From:')) ?></strong> <?= $escaper->escapeHtml($_giftMessage->getSender()) ?>
53+
<br /><strong><?= $escaper->escapeHtml(__('To:')) ?></strong> <?= $escaper->escapeHtml($_giftMessage->getRecipient()) ?>
54+
<br /><strong><?= $escaper->escapeHtml(__('Message:')) ?></strong>
55+
<br /><?= $escaper->escapeHtml($_giftMessage->getMessage()) ?>
5456
</td>
5557
</tr>
5658
</table>

app/code/Magento/Sales/view/frontend/templates/email/items/shipment/default.phtml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,28 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var $_item \Magento\Sales\Model\Order\Item */
7+
/** @var \Magento\Framework\Escaper $escaper */
8+
/** @var \Magento\Sales\Model\Order\Item $_item */
89
$_item = $block->getItem() ?>
910
<tr>
1011
<td class="item-info<?= ($block->getItemOptions() ? ' has-extra' : '') ?>">
11-
<p class="product-name"><?= $block->escapeHtml($_item->getName()) ?></p>
12-
<p class="sku"><?= $block->escapeHtml(__('SKU')) ?>: <?= $block->escapeHtml($block->getSku($_item)) ?></p>
13-
<?php if ($block->getItemOptions()) : ?>
12+
<p class="product-name"><?= $escaper->escapeHtml($_item->getName()) ?></p>
13+
<p class="sku"><?= $escaper->escapeHtml(__('SKU')) ?>: <?= $escaper->escapeHtml($block->getSku($_item)) ?></p>
14+
<?php if ($block->getItemOptions()): ?>
1415
<dl class="item-options">
15-
<?php foreach ($block->getItemOptions() as $option) : ?>
16-
<dt><strong><em><?= $block->escapeHtml($option['label']) ?></em></strong></dt>
16+
<?php foreach ($block->getItemOptions() as $option): ?>
17+
<dt><strong><em><?= $escaper->escapeHtml($option['label']) ?></em></strong></dt>
1718
<dd>
1819
<?= /* @noEscape */ nl2br($option['value']) ?>
1920
</dd>
2021
<?php endforeach; ?>
2122
</dl>
2223
<?php endif; ?>
2324
<?php $addInfoBlock = $block->getProductAdditionalInformationBlock(); ?>
24-
<?php if ($addInfoBlock) : ?>
25+
<?php if ($addInfoBlock): ?>
2526
<?= $addInfoBlock->setItem($_item->getOrderItem())->toHtml() ?>
2627
<?php endif; ?>
27-
<?= $block->escapeHtml($_item->getDescription()) ?>
28+
<?= $escaper->escapeHtml($_item->getDescription()) ?>
2829
</td>
2930
<td class="item-qty"><?= (float) $_item->getQty() ?></td>
3031
</tr>

0 commit comments

Comments
 (0)