59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\Theme\Block\Html;
 | 
						|
 | 
						|
use Magento\Framework\Serialize\SerializerInterface;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
 | 
						|
/**
 | 
						|
 * @magentoAppArea frontend
 | 
						|
 */
 | 
						|
class BreadcrumbsTest extends \PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var \Magento\Theme\Block\Html\Breadcrumbs
 | 
						|
     */
 | 
						|
    private $block;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var SerializerInterface
 | 
						|
     */
 | 
						|
    private $serializer;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        Bootstrap::getObjectManager()->get(\Magento\Framework\App\State::class)->setAreaCode('frontend');
 | 
						|
        $this->block = Bootstrap::getObjectManager()
 | 
						|
            ->get(\Magento\Framework\View\LayoutInterface::class)
 | 
						|
            ->createBlock(\Magento\Theme\Block\Html\Breadcrumbs::class);
 | 
						|
        $this->serializer = Bootstrap::getObjectManager()->get(SerializerInterface::class);
 | 
						|
    }
 | 
						|
 | 
						|
    public function testAddCrumb()
 | 
						|
    {
 | 
						|
        $this->assertEmpty($this->block->toHtml());
 | 
						|
        $info = ['label' => 'test label', 'title' => 'test title', 'link' => 'test link'];
 | 
						|
        $this->block->addCrumb('test', $info);
 | 
						|
        $html = $this->block->toHtml();
 | 
						|
        $this->assertStringContainsString('test label', $html);
 | 
						|
        $this->assertStringContainsString('test title', $html);
 | 
						|
        $this->assertStringContainsString('test link', $html);
 | 
						|
    }
 | 
						|
 | 
						|
    public function testGetCacheKeyInfo()
 | 
						|
    {
 | 
						|
        $crumbs = ['test' => ['label' => 'test label', 'title' => 'test title', 'link' => 'test link']];
 | 
						|
        foreach ($crumbs as $crumbName => &$crumb) {
 | 
						|
            $this->block->addCrumb($crumbName, $crumb);
 | 
						|
            $crumb += ['first' => null, 'last' => null, 'readonly' => null];
 | 
						|
        }
 | 
						|
 | 
						|
        $cacheKeyInfo = $this->block->getCacheKeyInfo();
 | 
						|
        $crumbsFromCacheKey = $this->serializer->unserialize(base64_decode($cacheKeyInfo['crumbs']));
 | 
						|
        $this->assertEquals($crumbs, $crumbsFromCacheKey);
 | 
						|
    }
 | 
						|
}
 |