3 namespace Drupal\Tests\Core\Asset;
5 use Drupal\Core\Asset\CssCollectionGrouper;
6 use Drupal\Tests\UnitTestCase;
9 * Tests the CSS asset collection grouper.
13 class CssCollectionGrouperUnitTest extends UnitTestCase {
16 * A CSS asset grouper.
18 * @var \Drupal\Core\Asset\CssCollectionGrouper object.
22 protected function setUp() {
25 $this->grouper = new CssCollectionGrouper();
29 * Tests \Drupal\Core\Asset\CssCollectionGrouper.
31 public function testGrouper() {
33 'system.base.css' => [
39 'data' => 'core/modules/system/system.base.css',
40 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
41 'basename' => 'system.base.css',
49 'data' => 'core/modules/system/js.module.css',
50 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
51 'basename' => 'js.module.css',
53 'jquery.ui.core.css' => [
59 'data' => 'core/misc/ui/themes/base/jquery.ui.core.css',
60 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
61 'basename' => 'jquery.ui.core.css',
69 'data' => 'core/modules/field/theme/field.css',
70 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
71 'basename' => 'field.css',
79 'data' => 'http://example.com/external.css',
80 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
81 'basename' => 'external.css',
89 'data' => 'core/themes/bartik/css/base/elements.css',
90 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
91 'basename' => 'elements.css',
99 'data' => 'core/themes/bartik/css/print.css',
100 'browsers' => ['IE' => TRUE, '!IE' => TRUE],
101 'basename' => 'print.css',
105 $groups = $this->grouper->group($css_assets);
107 $this->assertSame(count($groups), 5, "5 groups created.");
111 $this->assertSame($group['group'], -100);
112 $this->assertSame($group['type'], 'file');
113 $this->assertSame($group['media'], 'all');
114 $this->assertSame($group['preprocess'], TRUE);
115 $this->assertSame(count($group['items']), 3);
116 $this->assertContains($css_assets['system.base.css'], $group['items']);
117 $this->assertContains($css_assets['js.module.css'], $group['items']);
121 $this->assertSame($group['group'], 0);
122 $this->assertSame($group['type'], 'file');
123 $this->assertSame($group['media'], 'all');
124 $this->assertSame($group['preprocess'], TRUE);
125 $this->assertSame(count($group['items']), 1);
126 $this->assertContains($css_assets['field.css'], $group['items']);
130 $this->assertSame($group['group'], 0);
131 $this->assertSame($group['type'], 'external');
132 $this->assertSame($group['media'], 'all');
133 $this->assertSame($group['preprocess'], TRUE);
134 $this->assertSame(count($group['items']), 1);
135 $this->assertContains($css_assets['external.css'], $group['items']);
139 $this->assertSame($group['group'], 100);
140 $this->assertSame($group['type'], 'file');
141 $this->assertSame($group['media'], 'all');
142 $this->assertSame($group['preprocess'], TRUE);
143 $this->assertSame(count($group['items']), 1);
144 $this->assertContains($css_assets['elements.css'], $group['items']);
148 $this->assertSame($group['group'], 100);
149 $this->assertSame($group['type'], 'file');
150 $this->assertSame($group['media'], 'print');
151 $this->assertSame($group['preprocess'], TRUE);
152 $this->assertSame(count($group['items']), 1);
153 $this->assertContains($css_assets['print.css'], $group['items']);