082a0130c2
Signed-off-by: Gergely POLONKAI (W00d5t0ck) <polesz@w00d5t0ck.info>
68 lines
1.9 KiB
PHP
68 lines
1.9 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Assetic package, an OpenSky project.
|
|
*
|
|
* (c) 2010-2012 OpenSky Project Inc
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Assetic\Test\Filter;
|
|
|
|
use Assetic\Asset\FileAsset;
|
|
use Assetic\Filter\CssImportFilter;
|
|
use Assetic\Filter\CssRewriteFilter;
|
|
|
|
class CssImportFilterTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* @dataProvider getFilters
|
|
*/
|
|
public function testImport($filter1, $filter2)
|
|
{
|
|
$asset = new FileAsset(__DIR__.'/fixtures/cssimport/main.css', array(), __DIR__.'/fixtures/cssimport', 'main.css');
|
|
$asset->setTargetPath('foo/bar.css');
|
|
$asset->ensureFilter($filter1);
|
|
$asset->ensureFilter($filter2);
|
|
|
|
$expected = <<<CSS
|
|
/* main.css */
|
|
/* import.css */
|
|
body { color: red; }
|
|
/* more/evenmore/deep1.css */
|
|
/* more/evenmore/deep2.css */
|
|
body {
|
|
background: url(../more/evenmore/bg.gif);
|
|
}
|
|
body { color: black; }
|
|
CSS;
|
|
|
|
$this->assertEquals($expected, $asset->dump(), '->filterLoad() inlines CSS imports');
|
|
}
|
|
|
|
/**
|
|
* The order of these two filters is only interchangeable because one acts on
|
|
* load and the other on dump. We need a more scalable solution.
|
|
*/
|
|
public function getFilters()
|
|
{
|
|
return array(
|
|
array(new CssImportFilter(), new CssRewriteFilter()),
|
|
array(new CssRewriteFilter(), new CssImportFilter()),
|
|
);
|
|
}
|
|
|
|
public function testNonCssImport()
|
|
{
|
|
$asset = new FileAsset(__DIR__.'/fixtures/cssimport/noncssimport.css', array(), __DIR__.'/fixtures/cssimport', 'noncssimport.css');
|
|
$asset->load();
|
|
|
|
$filter = new CssImportFilter();
|
|
$filter->filterLoad($asset);
|
|
|
|
$this->assertEquals(file_get_contents(__DIR__.'/fixtures/cssimport/noncssimport.css'), $asset->getContent(), '->filterLoad() skips non css');
|
|
}
|
|
}
|