You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yiiunit\framework\base; |
|
|
|
use Yii; |
|
use yii\base\View; |
|
use yii\helpers\FileHelper; |
|
use yiiunit\TestCase; |
|
|
|
/** |
|
* @group base |
|
*/ |
|
class ViewTest extends TestCase |
|
{ |
|
/** |
|
* @var string path for the test files. |
|
*/ |
|
protected $testViewPath = ''; |
|
|
|
public function setUp() |
|
{ |
|
parent::setUp(); |
|
|
|
$this->mockApplication(); |
|
$this->testViewPath = Yii::getAlias('@yiiunit/runtime') . DIRECTORY_SEPARATOR . str_replace('\\', '_', get_class($this)) . uniqid(); |
|
FileHelper::createDirectory($this->testViewPath); |
|
} |
|
|
|
public function tearDown() |
|
{ |
|
FileHelper::removeDirectory($this->testViewPath); |
|
parent::tearDown(); |
|
} |
|
|
|
/** |
|
* @see https://github.com/yiisoft/yii2/issues/13058 |
|
*/ |
|
public function testExceptionOnRenderFile() |
|
{ |
|
$view = new View(); |
|
|
|
$exceptionViewFile = $this->testViewPath . DIRECTORY_SEPARATOR . 'exception.php'; |
|
file_put_contents($exceptionViewFile, <<<'PHP' |
|
<h1>Exception</h1> |
|
<?php throw new Exception('Test Exception'); ?> |
|
PHP |
|
); |
|
$normalViewFile = $this->testViewPath . DIRECTORY_SEPARATOR . 'no-exception.php'; |
|
file_put_contents($normalViewFile, <<<'PHP' |
|
<h1>No Exception</h1> |
|
PHP |
|
); |
|
|
|
$obInitialLevel = ob_get_level(); |
|
|
|
try { |
|
$view->renderFile($exceptionViewFile); |
|
} catch (\Exception $e) { |
|
// shutdown exception |
|
} |
|
$view->renderFile($normalViewFile); |
|
|
|
$this->assertEquals($obInitialLevel, ob_get_level()); |
|
} |
|
}
|
|
|