4 changed files with 91 additions and 1 deletions
			
			
		| @ -0,0 +1,74 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  *  | ||||||
|  |  *  | ||||||
|  |  * @author Carsten Brandt <mail@cebe.cc> | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | 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('#<script src="/assets/[0-9a-z]+/jquery\\.js"></script>\s*</body>#', $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' | ||||||
|  | 					] | ||||||
|  | 				], | ||||||
|  | 			], | ||||||
|  | 			'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', | ||||||
|  | 		]); | ||||||
|  | 	} | ||||||
|  | }  | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | {{ this.beginPage() }} | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | <head> | ||||||
|  |     <meta charset="<?php echo Yii::$app->charset; ?>"/> | ||||||
|  |     <title>{{ html.encode(this.title) }}</title> | ||||||
|  |     {{ this.head() }} | ||||||
|  | </head> | ||||||
|  | <body> | ||||||
|  | {{ this.beginBody() }} | ||||||
|  |     body | ||||||
|  | {{ this.endBody() }} | ||||||
|  | </body> | ||||||
|  | {{ this.endPage() }} | ||||||
					Loading…
					
					
				
		Reference in new issue