72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
namespace Magento\Framework\View;
 | 
						|
 | 
						|
use Magento\Framework\App\State;
 | 
						|
use Magento\Framework\Exception\LocalizedException;
 | 
						|
use Magento\Framework\View\Layout\Element;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class to test Layout model functionality with exceptions
 | 
						|
 */
 | 
						|
class LayoutTestWithExceptions extends TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var Layout
 | 
						|
     */
 | 
						|
    protected $layout;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritdoc
 | 
						|
     */
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $objectManager = Bootstrap::getObjectManager();
 | 
						|
        $layoutFactory = $objectManager->get(LayoutFactory::class);
 | 
						|
        $this->layout = $layoutFactory->create();
 | 
						|
        $layoutElement = new Element(
 | 
						|
            __DIR__ . '/_files/layout_with_exceptions/layout.xml',
 | 
						|
            0,
 | 
						|
            true
 | 
						|
        );
 | 
						|
 | 
						|
        $this->layout->setXml($layoutElement);
 | 
						|
        $objectManager->get(\Magento\Framework\App\Cache\Type\Layout::class)->clean();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test to Create structure of elements from the loaded XML configuration with exception
 | 
						|
     */
 | 
						|
    public function testProcessWithExceptionsDeveloperMode()
 | 
						|
    {
 | 
						|
        $this->expectException(LocalizedException::class);
 | 
						|
        $this->expectExceptionMessage('Construction problem.');
 | 
						|
 | 
						|
        $this->layout->generateElements();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test to Get all blocks marked for output with exceptions
 | 
						|
     *
 | 
						|
     * @magentoAppIsolation enabled
 | 
						|
     */
 | 
						|
    public function testProcessWithExceptions()
 | 
						|
    {
 | 
						|
        Bootstrap::getObjectManager()->get(State::class)
 | 
						|
            ->setMode(State::MODE_DEFAULT);
 | 
						|
 | 
						|
        $this->layout->generateElements();
 | 
						|
 | 
						|
        $this->layout->addOutputElement('block.with.broken.constructor');
 | 
						|
        $this->layout->addOutputElement('block.with.broken.layout');
 | 
						|
        $this->layout->addOutputElement('block.with.broken.action');
 | 
						|
 | 
						|
        $this->assertEmpty($this->layout->getOutput());
 | 
						|
    }
 | 
						|
}
 |