diff --git a/src/Assetic/Filter/Sass/BaseSassFilter.php b/src/Assetic/Filter/Sass/BaseSassFilter.php index 65479eb9b..68903f0ef 100644 --- a/src/Assetic/Filter/Sass/BaseSassFilter.php +++ b/src/Assetic/Filter/Sass/BaseSassFilter.php @@ -6,7 +6,7 @@ use Assetic\Factory\AssetFactory; use Assetic\Filter\BaseProcessFilter; use Assetic\Filter\DependencyExtractorInterface; -use Assetic\Util\CssUtils; +use Assetic\Util\SassUtils; abstract class BaseSassFilter extends BaseProcessFilter implements DependencyExtractorInterface { @@ -34,7 +34,7 @@ public function getChildren(AssetFactory $factory, $content, $loadPath = null) } $children = array(); - foreach (CssUtils::extractImports($content) as $reference) { + foreach (SassUtils::extractImports($content) as $reference) { if ('.css' === substr($reference, -4)) { // skip normal css imports // todo: skip imports with media queries diff --git a/src/Assetic/Util/CssUtils.php b/src/Assetic/Util/CssUtils.php index ac043fd11..ebc44b031 100644 --- a/src/Assetic/Util/CssUtils.php +++ b/src/Assetic/Util/CssUtils.php @@ -129,7 +129,7 @@ public static function extractImports($content) $imports[] = $matches['url']; }); - return array_unique($imports); + return array_unique(array_filter($imports)); } final private function __construct() diff --git a/src/Assetic/Util/SassUtils.php b/src/Assetic/Util/SassUtils.php new file mode 100644 index 000000000..9c076152d --- /dev/null +++ b/src/Assetic/Util/SassUtils.php @@ -0,0 +1,22 @@ + + */ +abstract class SassUtils extends CssUtils +{ + const REGEX_COMMENTS = '/((?:\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\/)|\/\/[^\n]+)/'; +} diff --git a/tests/Assetic/Test/Filter/ScssphpFilterTest.php b/tests/Assetic/Test/Filter/ScssphpFilterTest.php index e7aec7adb..6d93d07d5 100644 --- a/tests/Assetic/Test/Filter/ScssphpFilterTest.php +++ b/tests/Assetic/Test/Filter/ScssphpFilterTest.php @@ -92,7 +92,7 @@ public function testCompassExtensionCanBeDisabled() { $this->setExpectedExceptionRegExp( 'Exception', - '/Undefined mixin box\-shadow\: failed at `@include box\-shadow\(10px 10px 8px red\);`.*? line:? 4/' + '/^Undefined mixin box-shadow:.*line:* 4$/' ); $asset = new FileAsset(__DIR__.'/fixtures/sass/main_compass.scss'); diff --git a/tests/Assetic/Test/Util/SassUtilsTest.php b/tests/Assetic/Test/Util/SassUtilsTest.php new file mode 100644 index 000000000..efd9c8780 --- /dev/null +++ b/tests/Assetic/Test/Util/SassUtilsTest.php @@ -0,0 +1,36 @@ +assertEquals($expected, array_intersect($expected, $actual), '::extractImports() returns all expected URLs'); + $this->assertEquals(array(), array_diff($actual, $expected), '::extractImports() does not return unexpected URLs'); + } +}