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.
		
		
		
		
		
			
		
			
				
					
					
						
							74 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							74 lines
						
					
					
						
							1.5 KiB
						
					
					
				<?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', | 
						|
		]); | 
						|
	} | 
						|
} 
 |