mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-10-31 02:28:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @link https://www.yiiframework.com/
 | |
|  * @copyright Copyright (c) 2008 Yii Software LLC
 | |
|  * @license https://www.yiiframework.com/license/
 | |
|  */
 | |
| 
 | |
| namespace yiiunit\framework\web;
 | |
| 
 | |
| use yii\helpers\FileHelper;
 | |
| use yii\web\AssetConverter;
 | |
| 
 | |
| /**
 | |
|  * @group web
 | |
|  */
 | |
| class AssetConverterTest extends \yiiunit\TestCase
 | |
| {
 | |
|     /**
 | |
|      * @var string temporary files path
 | |
|      */
 | |
|     protected $tmpPath;
 | |
| 
 | |
|     protected function setUp(): void
 | |
|     {
 | |
|         parent::setUp();
 | |
|         $this->mockApplication();
 | |
|         $this->tmpPath = \Yii::$app->runtimePath . '/assetConverterTest_' . getmypid();
 | |
|         if (!is_dir($this->tmpPath)) {
 | |
|             mkdir($this->tmpPath, 0777, true);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     protected function tearDown(): void
 | |
|     {
 | |
|         if (is_dir($this->tmpPath)) {
 | |
|             FileHelper::removeDirectory($this->tmpPath);
 | |
|         }
 | |
|         parent::tearDown();
 | |
|     }
 | |
| 
 | |
|     // Tests :
 | |
| 
 | |
|     public function testConvert()
 | |
|     {
 | |
|         $tmpPath = $this->tmpPath;
 | |
|         file_put_contents($tmpPath . '/test.php', <<<EOF
 | |
| <?php
 | |
| 
 | |
| echo "Hello World!\n";
 | |
| echo "Hello Yii!";
 | |
| EOF
 | |
|         );
 | |
| 
 | |
|         $converter = new AssetConverter();
 | |
|         $converter->commands['php'] = ['txt', 'php {from} > {to}'];
 | |
|         $this->assertEquals('test.txt', $converter->convert('test.php', $tmpPath));
 | |
| 
 | |
|         $this->assertFileExists($tmpPath . '/test.txt', 'Failed asserting that asset output file exists.');
 | |
|         $this->assertStringEqualsFile($tmpPath . '/test.txt', "Hello World!\nHello Yii!");
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @depends testConvert
 | |
|      */
 | |
|     public function testForceConvert()
 | |
|     {
 | |
|         $tmpPath = $this->tmpPath;
 | |
|         file_put_contents($tmpPath . '/test.php', <<<'EOF'
 | |
| <?php
 | |
| 
 | |
| echo microtime();
 | |
| EOF
 | |
|         );
 | |
| 
 | |
|         $converter = new AssetConverter();
 | |
|         $converter->commands['php'] = ['txt', 'php {from} > {to}'];
 | |
| 
 | |
|         $converter->convert('test.php', $tmpPath);
 | |
|         $initialConvertTime = file_get_contents($tmpPath . '/test.txt');
 | |
| 
 | |
|         usleep(1);
 | |
|         $converter->convert('test.php', $tmpPath);
 | |
|         $this->assertStringEqualsFile($tmpPath . '/test.txt', $initialConvertTime);
 | |
| 
 | |
|         $converter->forceConvert = true;
 | |
|         $converter->convert('test.php', $tmpPath);
 | |
|         $this->assertNotEquals($initialConvertTime, file_get_contents($tmpPath . '/test.txt'));
 | |
|     }
 | |
| }
 | 
