function CssOptimizerUnitTest::providerTestOptimize

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php \Drupal\Tests\Core\Asset\CssOptimizerUnitTest::providerTestOptimize()
  2. 8.9.x core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php \Drupal\Tests\Core\Asset\CssOptimizerUnitTest::providerTestOptimize()
  3. 10 core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php \Drupal\Tests\Core\Asset\CssOptimizerUnitTest::providerTestOptimize()

Provides data for the CSS asset optimizing test.

File

core/tests/Drupal/Tests/Core/Asset/CssOptimizerUnitTest.php, line 50

Class

CssOptimizerUnitTest
Tests the CSS asset optimizer.

Namespace

Drupal\Tests\Core\Asset

Code

public static function providerTestOptimize() {
    $path = 'core/tests/Drupal/Tests/Core/Asset/css_test_files/';
    $absolute_path = dirname(__FILE__) . '/css_test_files/';
    return [
        // File. Tests:
        // - Stripped comments and white-space.
        // - Retain white-space in selectors. (https://www.drupal.org/node/472820)
        // - Retain pseudo-selectors. (https://www.drupal.org/node/460448)
[
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.012,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_without_import.css',
                'basename' => 'css_input_without_import.css',
            ],
            file_get_contents($absolute_path . 'css_input_without_import.css.optimized.css'),
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.012,
                'media' => 'screen',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_simple.css',
                'browsers' => [
                    'IE' => TRUE,
                    '!IE' => TRUE,
                ],
                'basename' => 'css_input_simple.css',
            ],
            file_get_contents($absolute_path . 'css_input_simple_with_media.css.optimized.css'),
        ],
        // File. Tests:
        // - Proper URLs in imported files. (https://www.drupal.org/node/265719)
        // - A background image with relative paths, which must be rewritten.
        // - The rewritten background image path must also be passed through
        //   FileUrlGeneratorInterface::generate().
        //   (https://www.drupal.org/node/1961340)
        // - Imported files that are external (protocol-relative URL or not)
        //   should not be expanded. (https://www.drupal.org/node/2014851)
        //   Potential forms of @import might also include media queries.
        //   (https://developer.mozilla.org/en-US/docs/Web/CSS/@import)
[
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_with_import.css',
                'basename' => 'css_input_with_import.css',
            ],
            str_replace("url('import1.css')", 'url(generated-relative-url:' . $path . 'import1.css)', str_replace('url(images/icon.png)', 'url(generated-relative-url:' . $path . 'images/icon.png)', file_get_contents($absolute_path . 'css_input_with_import.css.optimized.css'))),
        ],
        // File. Tests:
        // - Retain comment hacks.
[
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'comment_hacks.css',
                'basename' => 'comment_hacks.css',
            ],
            file_get_contents($absolute_path . 'comment_hacks.css.optimized.css'),
        ],
        // File in subfolder. Tests:
        // - CSS import path is properly interpreted.
        //   (https://www.drupal.org/node/1198904)
        // - Don't adjust data URIs (https://www.drupal.org/node/2142441)
[
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_subfolder/css_input_with_import.css',
                'basename' => 'css_input_with_import.css',
            ],
            str_replace('url(../images/icon.png)', 'url(generated-relative-url:' . $path . 'images/icon.png)', file_get_contents($absolute_path . 'css_subfolder/css_input_with_import.css.optimized.css')),
        ],
        // File. Tests:
        // - Any @charset declaration at the beginning of a file should be
        //   removed without breaking subsequent CSS.
[
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'charset_same_line.css',
                'basename' => 'charset_same_line.css',
            ],
            file_get_contents($absolute_path . 'charset.css.optimized.css'),
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'charset_newline.css',
                'basename' => 'charset_newline.css',
            ],
            file_get_contents($absolute_path . 'charset.css.optimized.css'),
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_with_bom.css',
                'basename' => 'css_input_with_bom.css',
            ],
            '.byte-order-mark-test{content:"☃";}' . "\n",
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_with_charset.css',
                'basename' => 'css_input_with_charset.css',
            ],
            '.charset-test{content:"€";}' . "\n",
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_with_bom_and_charset.css',
                'basename' => 'css_input_with_bom_and_charset.css',
            ],
            '.byte-order-mark-charset-test{content:"☃";}' . "\n",
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'css_input_with_utf16_bom.css',
                'basename' => 'css_input_with_utf16_bom.css',
            ],
            '.utf16-byte-order-mark-test{content:"☃";}' . "\n",
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'quotes.css',
                'basename' => 'quotes.css',
            ],
            file_get_contents($absolute_path . 'quotes.css.optimized.css'),
        ],
        [
            [
                'group' => -100,
                'type' => 'file',
                'weight' => 0.013,
                'media' => 'all',
                'preprocess' => TRUE,
                'data' => $path . 'import3.css',
                'basename' => 'import3.css',
            ],
            file_get_contents($absolute_path . 'import3.css.optimized.css'),
        ],
    ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.