public function testAssetsFilterCssmin()
{
$this->specify("The cssmin filter with space as parameter does not return correct results", function () {
$cssmin = new Cssmin();
expect($cssmin->filter(' '))->equals(' ');
});
$this->specify("The cssmin filter with brackets does not return correct results", function () {
$cssmin = new Cssmin();
expect($cssmin->filter('{}}'))->equals('{}}');
});
$this->specify("The cssmin filter with brackets and spaces does not return correct results", function () {
$cssmin = new Cssmin();
expect($cssmin->filter('.s { d : b; }'))->equals('.s{d : b;}');
});
$this->specify("The cssmin filter with proper CSS does not compress the contents", function () {
$cssmin = new Cssmin();
$source = ".social-link {display: inline-block; width: 44px; " . "height: 44px; text-align: left; text-indent: " . "-9999px; overflow: hidden; background: " . "url('../images/social-links.png'); }";
$expected = ".social-link{display: inline-block;width: 44px;" . "height: 44px;text-align: left;text-indent: " . "-9999px;overflow: hidden;background: " . "url('../images/social-links.png');}";
expect($cssmin->filter($source))->equals($expected);
});
$this->specify("The cssmin filter with a lot of spaces does not compress the contents", function () {
$cssmin = new Cssmin();
expect($cssmin->filter("h2:after { border-width: 1px; }"))->equals("h2:after{border-width: 1px;}");
});
$this->specify("The cssmin filter with complex CSS does not compress the contents", function () {
$cssmin = new Cssmin();
$source = "h1 > p { font-family: 'Helvetica Neue'; }";
$expected = "h1> p{font-family: 'Helvetica Neue';}";
expect($cssmin->filter($source))->equals($expected);
});
$this->specify("The cssmin filter with complex CSS does not compress the contents", function () {
$cssmin = new Cssmin();
$source = "h1 > p { font-family: 'Helvetica Neue'; }";
$expected = "h1> p{font-family: 'Helvetica Neue';}";
expect($cssmin->filter($source))->equals($expected);
});
$this->specify("The cssmin filter with complex nested CSS does not compress the contents", function () {
$cssmin = new Cssmin();
$source = ".navbar .nav>li>a { color: #111; " . "text-decoration: underline; }";
$expected = ".navbar .nav>li>a{color: #111;" . "text-decoration: underline;}";
expect($cssmin->filter($source))->equals($expected);
});
$this->specify("The cssmin filter with complex CSS (line breaks) does not compress the contents", function () {
$sourceFile = PATH_DATA . '/assets/cssmin-01.css';
$targetFile = PATH_DATA . '/assets/cssmin-01-result.css';
if (!file_exists($sourceFile) || !file_exists($targetFile)) {
$this->markTestIncomplete('Source files missing for this test');
}
$cssmin = new Cssmin();
$source = file_get_contents($sourceFile);
$expected = file_get_contents($targetFile);
expect($cssmin->filter($source))->equals($expected);
});
}