*/ namespace yiiunit\extensions\twig; use yii\web\AssetManager; use yii\web\JqueryAsset; use yii\web\View; use Yii; use yiiunit\TestCase; /** * @group twig */ class ViewRendererTest extends TestCase { protected function setUp() { $this->mockApplication(); } /** * https://github.com/yiisoft/yii2/issues/1755 */ public function testLayoutAssets() { $view = $this->mockView(); JqueryAsset::register($view); $content = $view->renderFile('@yiiunit/extensions/twig/views/layout.twig'); $this->assertEquals(1, preg_match('#\s*#', $content), 'content does not contain the jquery js:' . $content); } protected function mockView() { return new View([ 'renderers' => [ 'twig' => [ 'class' => 'yii\twig\ViewRenderer', //'cachePath' => '@runtime/Twig/cache', 'options' => [ 'cache' => false ], 'globals' => [ 'html' => '\yii\helpers\Html', 'pos_begin' => View::POS_BEGIN ], 'functions' => [ 't' => '\Yii::t', 'json_encode' => '\yii\helpers\Json::encode' ], 'lexerOptions' => [ 'tag_comment' => [ '{*', '*}' ], ] ], ], 'assetManager' => $this->mockAssetManager(), ]); } protected function mockAssetManager() { $assetDir = Yii::getAlias('@runtime/assets'); if (!is_dir($assetDir)) { mkdir($assetDir, 0777, true); } return new AssetManager([ 'basePath' => $assetDir, 'baseUrl' => '/assets', ]); } }