![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Catalog/Block/Product/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Block\Product; /** * Test class for \Magento\Catalog\Block\Product\New. * * @magentoDataFixture Magento/Catalog/_files/products_new.php * @magentoDbIsolation disabled */ class NewTest extends \PHPUnit\Framework\TestCase { /** * @var \Magento\Catalog\Block\Product\NewProduct */ protected $_block; protected function setUp(): void { /** * @var \Magento\Customer\Api\GroupManagementInterface $groupManagement */ $groupManagement = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->get(\Magento\Customer\Api\GroupManagementInterface::class); $notLoggedInId = $groupManagement->getNotLoggedInGroup()->getId(); \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\App\Http\Context::class )->setValue( \Magento\Customer\Model\Context::CONTEXT_GROUP, $notLoggedInId, $notLoggedInId ); $this->_block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\View\LayoutInterface::class )->createBlock( \Magento\Catalog\Block\Product\NewProduct::class ); } public function testGetCacheKeyInfo() { $info = $this->_block->getCacheKeyInfo(); $keys = array_keys($info); /** order and values of cache key info elements is important */ $this->assertSame(0, array_shift($keys)); $this->assertEquals('CATALOG_PRODUCT_NEW', $info[0]); $this->assertSame(1, array_shift($keys)); $this->assertEquals( \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Store\Model\StoreManagerInterface::class )->getStore()->getId(), $info[1] ); $this->assertSame(2, array_shift($keys)); $themeModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\View\DesignInterface::class )->getDesignTheme(); $this->assertEquals($themeModel->getId() ?: null, $info[2]); $this->assertSame(3, array_shift($keys)); $this->assertEquals( \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Customer\Model\Session::class )->getCustomerGroupId(), $info[3] ); $this->assertSame('template', array_shift($keys)); /** * This block is implemented without template by default (invalid). * Having the cache key fragment with empty value can potentially lead to caching bugs */ $this->assertSame(4, array_shift($keys)); $this->assertNotEquals('', $info[4]); } public function testSetGetProductsCount() { $this->assertEquals( \Magento\Catalog\Block\Product\NewProduct::DEFAULT_PRODUCTS_COUNT, $this->_block->getProductsCount() ); $this->_block->setProductsCount(100); $this->assertEquals(100, $this->_block->getProductsCount()); } public function testToHtml() { $this->assertEmpty($this->_block->getProductCollection()); $this->_block->setProductsCount(5); $this->_block->setTemplate('product/widget/new/content/new_list.phtml'); $this->_block->setLayout( \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\View\LayoutInterface::class ) ); $html = $this->_block->toHtml(); $this->assertNotEmpty($html); $this->assertStringContainsString('New Product', $html); $this->assertInstanceOf( \Magento\Catalog\Model\ResourceModel\Product\Collection::class, $this->_block->getProductCollection() ); } /** * @covers \Magento\Catalog\Block\Product\Widget\NewWidget::getCacheKeyInfo */ public function testNewWidgetGetCacheKeyInfo() { $block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Framework\View\LayoutInterface::class )->createBlock( \Magento\Catalog\Block\Product\Widget\NewWidget::class ); $requestParams = ['test' => 'data']; $block->getRequest()->setParams($requestParams); $info = $block->getCacheKeyInfo(); $this->assertEquals('CATALOG_PRODUCT_NEW', $info[0]); $this->assertEquals(json_encode($requestParams), $info[8]); } }