JsCollectionOptimizerTest.php in Flysystem 8
File
tests/src/Unit/Asset/JsCollectionOptimizerTest.php
View source
<?php
namespace Drupal\Tests\flysystem\Unit\Asset {
use Drupal\Core\Asset\AssetCollectionGrouperInterface;
use Drupal\Core\Asset\CssOptimizer;
use Drupal\Core\Asset\JsOptimizer;
use Drupal\Core\State\StateInterface;
use Drupal\Tests\UnitTestCase;
use Drupal\flysystem\Asset\AssetDumper;
use Drupal\flysystem\Asset\CssCollectionOptimizer;
use Drupal\flysystem\Asset\JsCollectionOptimizer;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use org\bovigo\vfs\vfsStream;
class JsCollectionOptimizerTest extends UnitTestCase {
public function setUp() {
parent::setUp();
if (!defined('REQUEST_TIME')) {
define('REQUEST_TIME', time());
}
vfsStream::setup('flysystem');
if (file_exists('vfs://flysystem/test.js')) {
unlink('vfs://flysystem/test.js');
}
}
public function tearDown() {
if (file_exists('vfs://flysystem/test.js')) {
unlink('vfs://flysystem/test.js');
}
parent::tearDown();
}
public function test() {
file_put_contents('vfs://flysystem/test.js', 'asdfasdf');
touch('vfs://flysystem/test.js', REQUEST_TIME - 1000);
$container = new ContainerBuilder();
$container
->set('config.factory', $this
->getConfigFactoryStub([
'system.performance' => [
'stale_file_threshold' => 0,
],
]));
\Drupal::setContainer($container);
$grouper = $this
->prophesize(AssetCollectionGrouperInterface::class);
$dumper = new AssetDumper();
$state = $this
->getMock(StateInterface::class);
$optimizer = new JsCollectionOptimizer($grouper
->reveal(), new JsOptimizer(), $dumper, $state);
$optimizer
->deleteAll();
$this
->assertFalse(file_exists('vfs://flysystem/test.js'));
file_put_contents('vfs://flysystem/test.js', 'asdfasdf');
touch('vfs://flysystem/test.js', REQUEST_TIME - 1000);
$optimizer = new CssCollectionOptimizer($grouper
->reveal(), new CssOptimizer(), $dumper, $state);
$optimizer
->deleteAll();
$this
->assertFalse(file_exists('vfs://flysystem/test.js'));
}
}
}
namespace {
if (!function_exists('file_scan_directory')) {
function file_scan_directory($dir, $mask, array $options) {
$options['callback']('vfs://flysystem/test.js');
}
}
if (!function_exists('file_unmanaged_delete')) {
function file_unmanaged_delete($uri) {
unlink($uri);
}
}
}