AsseticBundleTest\Service::testWriteAssetIfIsUpdated PHP Method

testWriteAssetIfIsUpdated() public method

    public function testWriteAssetIfIsUpdated()
    {
        $this->configuration->setBuildOnRequest(true);
        $this->configuration->setWriteIfChanged(true);
        $this->object->build();
        $manager = $this->object->getAssetManager();
        $assets = $manager->get('base_css')->all();
        $factory = $this->object->createAssetFactory($this->configuration->getModule('test_application'));
        /** @var \Assetic\Asset\AssetInterface $asset */
        $asset = $assets[0];
        $asset->setTargetPath($manager->get('base_css')->getTargetPath());
        $targetFile = $this->configuration->getWebPath($asset->getTargetPath());
        if (is_file($targetFile)) {
            unlink($targetFile);
        }
        $this->assertFileNotExists($targetFile);
        $this->object->writeAsset($asset, $factory);
        $this->assertFileExists($targetFile);
        $sourceFile = $asset->getSourceRoot() . '/' . $asset->getSourcePath();
        $targetMTime = filemtime($targetFile);
        // ensure that file modification timestamp is changed
        touch($targetFile, $targetMTime + 2);
        clearstatcache(true, $targetFile);
        $modifiedTargetMTime = filemtime($targetFile);
        $this->assertGreaterThan($targetMTime, $modifiedTargetMTime);
        $modifiedAsset = new FileAsset($sourceFile);
        $modifiedAsset->setTargetPath($targetFile);
        $this->object->writeAsset($modifiedAsset, $factory);
        clearstatcache(true, $targetFile);
        $modifiedTargetMTime = filemtime($targetFile);
        $this->assertGreaterThan($targetMTime, $modifiedTargetMTime);
    }