Skip to content

Commit fe3af97

Browse files
committed
Merge remote-tracking branch 'origin/imported-magento-magento2-31066' into 2.4-develop-pr113
2 parents 732a895 + b53cd22 commit fe3af97

File tree

2 files changed

+80
-29
lines changed
  • app/code/Magento/Multishipping/view/frontend/templates/checkout/item
  • dev/tests/integration/testsuite/Magento/Multishipping/Block/Checkout

2 files changed

+80
-29
lines changed

app/code/Magento/Multishipping/view/frontend/templates/checkout/item/default.phtml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,23 @@
66

77
// phpcs:disable Magento2.Files.LineLength
88
?>
9-
<strong class="product name product-item-name"><a href="<?= $block->escapeUrl($block->getProductUrl()) ?>"><?= $block->escapeHtml($block->getProductName()) ?></a></strong>
9+
<?php
10+
/** @var \Magento\Checkout\Block\Cart\Item\Renderer\ $block */
11+
/** @var \Magento\Framework\Escaper $escaper */
12+
?>
13+
14+
<strong class="product name product-item-name"><a href="<?= $escaper->escapeUrl($block->getProductUrl()) ?>"><?= $escaper->escapeHtml($block->getProductName()) ?></a></strong>
1015
<?php if ($_options = $block->getOptionList()) : ?>
1116
<dl class="item-options">
1217
<?php foreach ($_options as $_option) : ?>
1318
<?php $_formatedOptionValue = $block->getFormatedOptionValue($_option) ?>
14-
<dt><?= $block->escapeHtml($_option['label']) ?></dt>
19+
<dt><?= $escaper->escapeHtml($_option['label']) ?></dt>
1520
<dd<?= (isset($_formatedOptionValue['full_view']) ? ' class="tooltip wrapper"' : '') ?>>
16-
<?= $block->escapeHtml($_formatedOptionValue['value'], ['span']) ?>
21+
<?= $escaper->escapeHtml($_formatedOptionValue['value'], ['span', 'a']) ?>
1722
<?php if (isset($_formatedOptionValue['full_view'])) : ?>
1823
<dl class="item options tooltip content">
19-
<dt><?= $block->escapeHtml($_option['label']) ?></dt>
20-
<dd><?= $block->escapeHtml($_formatedOptionValue['full_view'], ['span']) ?></dd>
24+
<dt><?= $escaper->escapeHtml($_option['label']) ?></dt>
25+
<dd><?= $escaper->escapeHtml($_formatedOptionValue['full_view'], ['span']) ?></dd>
2126
</dl>
2227
<?php endif; ?>
2328
</dd>

dev/tests/integration/testsuite/Magento/Multishipping/Block/Checkout/OverviewTest.php

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,58 @@
66

77
namespace Magento\Multishipping\Block\Checkout;
88

9+
use Magento\Catalog\Model\ProductRepository;
10+
use Magento\Checkout\Block\Cart\Item\Renderer;
11+
use Magento\Framework\App\Area;
12+
use Magento\Framework\ObjectManagerInterface;
13+
use Magento\Framework\View\Element\RendererList;
14+
use Magento\Framework\View\LayoutInterface;
15+
use Magento\Quote\Model\Quote;
16+
use Magento\Quote\Model\Quote\Item;
17+
use Magento\TestFramework\Helper\Bootstrap;
18+
use Magento\TestFramework\Helper\Xpath;
19+
use PHPUnit\Framework\TestCase;
20+
921
/**
10-
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
22+
* Verify default items template
1123
*/
12-
class OverviewTest extends \PHPUnit\Framework\TestCase
24+
class OverviewTest extends TestCase
1325
{
1426
/**
15-
* @var \Magento\Multishipping\Block\Checkout\Overview
27+
* @var Overview
28+
*/
29+
private $block;
30+
31+
/**
32+
* @var ObjectManagerInterface
33+
*/
34+
private $objectManager;
35+
36+
/**
37+
* @var Quote
38+
*/
39+
private $quote;
40+
41+
/**
42+
* @var ProductRepository
1643
*/
17-
protected $_block;
44+
private $product;
1845

1946
/**
20-
* @var \Magento\Framework\ObjectManagerInterface
47+
* @var Item
2148
*/
22-
protected $_objectManager;
49+
private $item;
2350

51+
/**
52+
* @inheritdoc
53+
*/
2454
protected function setUp(): void
2555
{
26-
\Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND);
27-
$this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
28-
$this->_block = $this->_objectManager->get(\Magento\Framework\View\LayoutInterface::class)
56+
Bootstrap::getInstance()->loadArea(Area::AREA_FRONTEND);
57+
$this->objectManager = Bootstrap::getObjectManager();
58+
$this->block = $this->objectManager->get(LayoutInterface::class)
2959
->createBlock(
30-
\Magento\Multishipping\Block\Checkout\Overview::class,
60+
Overview::class,
3161
'checkout_overview',
3262
[
3363
'data' => [
@@ -37,33 +67,49 @@ protected function setUp(): void
3767
]
3868
);
3969

40-
$this->_block->addChild('renderer.list', \Magento\Framework\View\Element\RendererList::class);
41-
$this->_block->getChildBlock(
70+
$this->block->addChild('renderer.list', RendererList::class);
71+
$this->block->getChildBlock(
4272
'renderer.list'
4373
)->addChild(
4474
'default',
45-
\Magento\Checkout\Block\Cart\Item\Renderer::class,
75+
Renderer::class,
4676
['template' => 'cart/item/default.phtml']
4777
);
78+
$this->quote = $this->objectManager->create(Quote::class);
79+
$this->product = $this->objectManager->create(ProductRepository::class);
80+
$this->item = $this->objectManager->create(Item::class);
4881
}
4982

83+
/**
84+
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
85+
*/
5086
public function testGetRowItemHtml()
5187
{
52-
/** @var $item \Magento\Quote\Model\Quote\Item */
53-
$item = $this->_objectManager->create(\Magento\Quote\Model\Quote\Item::class);
54-
/** @var $product \Magento\Catalog\Model\Product */
55-
$product = $this->_objectManager->create(\Magento\Catalog\Model\Product::class);
56-
$product->load(1);
57-
$item->setProduct($product);
58-
/** @var $quote \Magento\Quote\Model\Quote */
59-
$quote = $this->_objectManager->create(\Magento\Quote\Model\Quote::class);
60-
$item->setQuote($quote);
88+
$product = $this->product->get('simple');
89+
$item = $this->item->setProduct($product);
90+
$item->setQuote($this->quote);
6191
// assure that default renderer was obtained
6292
$this->assertEquals(
6393
1,
64-
\Magento\TestFramework\Helper\Xpath::getElementsCountForXpath(
94+
Xpath::getElementsCountForXpath(
6595
'//*[contains(@class,"product") and contains(@class,"name")]/a',
66-
$this->_block->getRowItemHtml($item)
96+
$this->block->getRowItemHtml($item)
97+
)
98+
);
99+
}
100+
101+
/**
102+
* @magentoDataFixture Magento/Checkout/_files/customer_quote_with_items_simple_product_options.php
103+
*/
104+
public function testLinkOptionalProductFileItemHtml()
105+
{
106+
$quote = $this->quote->load('customer_quote_product_custom_options', 'reserved_order_id');
107+
$item = current($quote->getAllItems());
108+
$this->assertEquals(
109+
1,
110+
Xpath::getElementsCountForXpath(
111+
'//dd/a[contains(text(), "test.jpg")]',
112+
$this->block->getRowItemHtml($item)
67113
)
68114
);
69115
}

0 commit comments

Comments
 (0)