![]() 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/vendor/magento/framework/View/Test/Unit/TemplateEngine/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\View\Test\Unit\TemplateEngine; use Magento\Framework\App\Helper\AbstractHelper; use Magento\Framework\DataObject; use Magento\Framework\ObjectManagerInterface; use Magento\Framework\View\Element\Template; use Magento\Framework\View\TemplateEngine\Php; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * Test template engine that enables PHP templates to be used for rendering. */ class PhpTest extends TestCase { const TEST_PROP_VALUE = 'TEST_PROP_VALUE'; /** @var Php */ protected $_phpEngine; /** * @var MockObject */ protected $_helperFactoryMock; /** * Create a PHP template engine to test. */ protected function setUp(): void { $this->_helperFactoryMock = $this->getMockForAbstractClass(ObjectManagerInterface::class); $this->_phpEngine = new Php($this->_helperFactoryMock); } /** * Test the render() function with a very simple .phtml file. * * Note: the call() function will be covered because simple.phtml has a call to the block. */ public function testRender() { $blockMock = $this->getMockBuilder( Template::class )->setMethods( ['testMethod'] )->disableOriginalConstructor() ->getMock(); $blockMock->expects($this->once())->method('testMethod'); $blockMock->property = self::TEST_PROP_VALUE; $filename = __DIR__ . '/_files/simple.phtml'; $actualOutput = $this->_phpEngine->render($blockMock, $filename); // $this->assertAttributeEquals(null, '_currentBlock', $this->_phpEngine); $expectedOutput = '<html>' . self::TEST_PROP_VALUE . '</html>' . PHP_EOL; $this->assertSame($expectedOutput, $actualOutput, 'phtml file did not render correctly'); } /** * Test the render() function with a nonexistent filename. * * Expect an exception if the specified file does not exist. */ public function testRenderException() { $this->expectException('PHPUnit\Framework\Exception'); $blockMock = $this->getMockBuilder( Template::class )->setMethods( ['testMethod'] )->disableOriginalConstructor() ->getMock(); $filename = 'This_is_not_a_file'; $this->_phpEngine->render($blockMock, $filename); } public function testHelperWithInvalidClass() { $this->expectException('LogicException'); $class = DataObject::class; $object = $this->createMock($class); $this->_helperFactoryMock->expects( $this->once() )->method( 'get' )->with( $class )->willReturn( $object ); $this->_phpEngine->helper($class); } public function testHelperWithValidClass() { $class = AbstractHelper::class; $object = $this->getMockForAbstractClass($class, [], '', false); $this->_helperFactoryMock->expects( $this->once() )->method( 'get' )->with( $class )->willReturn( $object ); $this->assertEquals($object, $this->_phpEngine->helper($class)); } }