117 lines
3.2 KiB
PHP
Executable File
117 lines
3.2 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Multishipping\Block\Checkout;
|
|
|
|
use Magento\Catalog\Model\ProductRepository;
|
|
use Magento\Checkout\Block\Cart\Item\Renderer;
|
|
use Magento\Framework\App\Area;
|
|
use Magento\Framework\ObjectManagerInterface;
|
|
use Magento\Framework\View\Element\RendererList;
|
|
use Magento\Framework\View\LayoutInterface;
|
|
use Magento\Quote\Model\Quote;
|
|
use Magento\Quote\Model\Quote\Item;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
use Magento\TestFramework\Helper\Xpath;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
/**
|
|
* Verify default items template
|
|
*/
|
|
class OverviewTest extends TestCase
|
|
{
|
|
/**
|
|
* @var Overview
|
|
*/
|
|
private $block;
|
|
|
|
/**
|
|
* @var ObjectManagerInterface
|
|
*/
|
|
private $objectManager;
|
|
|
|
/**
|
|
* @var Quote
|
|
*/
|
|
private $quote;
|
|
|
|
/**
|
|
* @var ProductRepository
|
|
*/
|
|
private $product;
|
|
|
|
/**
|
|
* @var Item
|
|
*/
|
|
private $item;
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
Bootstrap::getInstance()->loadArea(Area::AREA_FRONTEND);
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->block = $this->objectManager->get(LayoutInterface::class)
|
|
->createBlock(
|
|
Overview::class,
|
|
'checkout_overview',
|
|
[
|
|
'data' => [
|
|
'renderer_template' => 'Magento_Multishipping::checkout/item/default.phtml',
|
|
'row_renderer_template' => 'Magento_Multishipping::checkout/overview/item.phtml',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->block->addChild('renderer.list', RendererList::class);
|
|
$this->block->getChildBlock(
|
|
'renderer.list'
|
|
)->addChild(
|
|
'default',
|
|
Renderer::class,
|
|
['template' => 'cart/item/default.phtml']
|
|
);
|
|
$this->quote = $this->objectManager->create(Quote::class);
|
|
$this->product = $this->objectManager->create(ProductRepository::class);
|
|
$this->item = $this->objectManager->create(Item::class);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
|
|
*/
|
|
public function testGetRowItemHtml()
|
|
{
|
|
$product = $this->product->get('simple');
|
|
$item = $this->item->setProduct($product);
|
|
$item->setQuote($this->quote);
|
|
// assure that default renderer was obtained
|
|
$this->assertEquals(
|
|
1,
|
|
Xpath::getElementsCountForXpath(
|
|
'//*[contains(@class,"product") and contains(@class,"name")]/a',
|
|
$this->block->getRowItemHtml($item)
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Checkout/_files/customer_quote_with_items_simple_product_options.php
|
|
*/
|
|
public function testLinkOptionalProductFileItemHtml()
|
|
{
|
|
$quote = $this->quote->load('customer_quote_product_custom_options', 'reserved_order_id');
|
|
$item = current($quote->getAllItems());
|
|
$this->assertEquals(
|
|
1,
|
|
Xpath::getElementsCountForXpath(
|
|
'//dd/a[contains(text(), "test.jpg")]',
|
|
$this->block->getRowItemHtml($item)
|
|
)
|
|
);
|
|
}
|
|
}
|