|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / View / Test / Unit / TemplateEngine / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/View/Test/Unit/TemplateEngine/PhpTest.php |
Size | 3.34 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 03:56 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?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));
}
}
/**
* 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));
}
}