Phalcon\Test\Unit\Assets\Filters\CssMinTest::testAssetsFilterCssmin PHP Метод

testAssetsFilterCssmin() публичный Метод

Tests cssmin filter
С версии: 2014-10-10
Автор: Nikolaos Dimopoulos ([email protected])
    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);
        });
    }