90 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\Backend\Block\Widget;
 | 
						|
 | 
						|
/**
 | 
						|
 * @magentoAppArea adminhtml
 | 
						|
 */
 | 
						|
class ContainerTest extends \PHPUnit\Framework\TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @magentoAppIsolation enabled
 | 
						|
     */
 | 
						|
    public function testPseudoConstruct()
 | 
						|
    {
 | 
						|
        /** @var $block \Magento\Backend\Block\Widget\Container */
 | 
						|
        $block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
 | 
						|
            \Magento\Framework\View\LayoutInterface::class
 | 
						|
        )->createBlock(
 | 
						|
            \Magento\Backend\Block\Widget\Container::class,
 | 
						|
            '',
 | 
						|
            [
 | 
						|
                'data' => [
 | 
						|
                    \Magento\Backend\Block\Widget\Container::PARAM_CONTROLLER => 'one',
 | 
						|
                    \Magento\Backend\Block\Widget\Container::PARAM_HEADER_TEXT => 'two',
 | 
						|
                ]
 | 
						|
            ]
 | 
						|
        );
 | 
						|
        $this->assertStringEndsWith('one', $block->getHeaderCssClass());
 | 
						|
        $this->assertStringContainsString('two', $block->getHeaderText());
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoAppIsolation enabled
 | 
						|
     */
 | 
						|
    public function testGetButtonsHtml()
 | 
						|
    {
 | 
						|
        $titles = [1 => 'Title 1', 'Title 2', 'Title 3'];
 | 
						|
        $block = $this->_buildBlock($titles);
 | 
						|
        $html = $block->getButtonsHtml('header');
 | 
						|
 | 
						|
        $this->assertStringContainsString('<button', $html);
 | 
						|
        foreach ($titles as $title) {
 | 
						|
            $this->assertStringContainsString($title, $html);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @magentoAppIsolation enabled
 | 
						|
     */
 | 
						|
    public function testUpdateButton()
 | 
						|
    {
 | 
						|
        $originalTitles = [1 => 'Title 1', 'Title 2', 'Title 3'];
 | 
						|
        $newTitles = [1 => 'Button A', 'Button B', 'Button C'];
 | 
						|
 | 
						|
        $block = $this->_buildBlock($originalTitles);
 | 
						|
        foreach ($newTitles as $id => $newTitle) {
 | 
						|
            $block->updateButton($id, 'title', $newTitle);
 | 
						|
        }
 | 
						|
        $html = $block->getButtonsHtml('header');
 | 
						|
        foreach ($newTitles as $newTitle) {
 | 
						|
            $this->assertStringContainsString($newTitle, $html);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Composes a container with several buttons in it
 | 
						|
     *
 | 
						|
     * @param array $titles
 | 
						|
     * @param string $blockName
 | 
						|
     * @return \Magento\Backend\Block\Widget\Container
 | 
						|
     */
 | 
						|
    protected function _buildBlock($titles, $blockName = 'block')
 | 
						|
    {
 | 
						|
        /** @var $layout \Magento\Framework\View\LayoutInterface */
 | 
						|
        $layout = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
 | 
						|
            \Magento\Framework\View\LayoutInterface::class
 | 
						|
        );
 | 
						|
        /** @var $block \Magento\Backend\Block\Widget\Container */
 | 
						|
        $block = $layout->createBlock(\Magento\Backend\Block\Widget\Container::class, $blockName);
 | 
						|
        foreach ($titles as $id => $title) {
 | 
						|
            $block->addButton($id, ['title' => $title], 0, 0, 'header');
 | 
						|
        }
 | 
						|
        $block->setLayout($layout);
 | 
						|
        return $block;
 | 
						|
    }
 | 
						|
}
 |