Mercurial > hg > isophonics-drupal-site
comparison core/modules/breakpoint/tests/src/Kernel/BreakpointDiscoveryTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\breakpoint\Kernel; | |
4 | |
5 use Drupal\KernelTests\KernelTestBase; | |
6 | |
7 /** | |
8 * Tests discovery of breakpoints provided by themes and modules. | |
9 * | |
10 * @group breakpoint | |
11 */ | |
12 class BreakpointDiscoveryTest extends KernelTestBase { | |
13 | |
14 /** | |
15 * Modules to install. | |
16 * | |
17 * @var array | |
18 */ | |
19 public static $modules = ['system', 'breakpoint', 'breakpoint_module_test']; | |
20 | |
21 protected function setUp() { | |
22 parent::setUp(); | |
23 \Drupal::service('theme_handler')->install(['breakpoint_theme_test']); | |
24 } | |
25 | |
26 /** | |
27 * Test the breakpoint group created for a theme. | |
28 */ | |
29 public function testThemeBreakpoints() { | |
30 // Verify the breakpoint group for breakpoint_theme_test was created. | |
31 $expected_breakpoints = [ | |
32 'breakpoint_theme_test.mobile' => [ | |
33 'label' => 'mobile', | |
34 'mediaQuery' => '(min-width: 0px)', | |
35 'weight' => 0, | |
36 'multipliers' => [ | |
37 '1x', | |
38 ], | |
39 'provider' => 'breakpoint_theme_test', | |
40 'id' => 'breakpoint_theme_test.mobile', | |
41 'group' => 'breakpoint_theme_test', | |
42 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
43 ], | |
44 'breakpoint_theme_test.narrow' => [ | |
45 'label' => 'narrow', | |
46 'mediaQuery' => '(min-width: 560px)', | |
47 'weight' => 1, | |
48 'multipliers' => [ | |
49 '1x', | |
50 ], | |
51 'provider' => 'breakpoint_theme_test', | |
52 'id' => 'breakpoint_theme_test.narrow', | |
53 'group' => 'breakpoint_theme_test', | |
54 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
55 ], | |
56 'breakpoint_theme_test.wide' => [ | |
57 'label' => 'wide', | |
58 'mediaQuery' => '(min-width: 851px)', | |
59 'weight' => 2, | |
60 'multipliers' => [ | |
61 '1x', | |
62 ], | |
63 'provider' => 'breakpoint_theme_test', | |
64 'id' => 'breakpoint_theme_test.wide', | |
65 'group' => 'breakpoint_theme_test', | |
66 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
67 ], | |
68 'breakpoint_theme_test.tv' => [ | |
69 'label' => 'tv', | |
70 'mediaQuery' => 'only screen and (min-width: 1220px)', | |
71 'weight' => 3, | |
72 'multipliers' => [ | |
73 '1x', | |
74 ], | |
75 'provider' => 'breakpoint_theme_test', | |
76 'id' => 'breakpoint_theme_test.tv', | |
77 'group' => 'breakpoint_theme_test', | |
78 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
79 ], | |
80 ]; | |
81 | |
82 $breakpoints = \Drupal::service('breakpoint.manager')->getBreakpointsByGroup('breakpoint_theme_test'); | |
83 foreach ($expected_breakpoints as $id => $expected_breakpoint) { | |
84 $this->assertEqual($expected_breakpoint, $breakpoints[$id]->getPluginDefinition()); | |
85 } | |
86 | |
87 // Test that the order is as expected. | |
88 $this->assertIdentical(array_keys($expected_breakpoints), array_keys($breakpoints)); | |
89 } | |
90 | |
91 /** | |
92 * Test the custom breakpoint group provided by a theme and a module. | |
93 */ | |
94 public function testCustomBreakpointGroups() { | |
95 // Verify the breakpoint group for breakpoint_theme_test.group2 was created. | |
96 $expected_breakpoints = [ | |
97 'breakpoint_theme_test.group2.narrow' => [ | |
98 'label' => 'narrow', | |
99 'mediaQuery' => '(min-width: 560px)', | |
100 'weight' => 0, | |
101 'multipliers' => [ | |
102 '1x', | |
103 '2x', | |
104 ], | |
105 'provider' => 'breakpoint_theme_test', | |
106 'id' => 'breakpoint_theme_test.group2.narrow', | |
107 'group' => 'breakpoint_theme_test.group2', | |
108 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
109 ], | |
110 'breakpoint_theme_test.group2.wide' => [ | |
111 'label' => 'wide', | |
112 'mediaQuery' => '(min-width: 851px)', | |
113 'weight' => 1, | |
114 'multipliers' => [ | |
115 '1x', | |
116 '2x', | |
117 ], | |
118 'provider' => 'breakpoint_theme_test', | |
119 'id' => 'breakpoint_theme_test.group2.wide', | |
120 'group' => 'breakpoint_theme_test.group2', | |
121 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
122 ], | |
123 'breakpoint_module_test.breakpoint_theme_test.group2.tv' => [ | |
124 'label' => 'tv', | |
125 'mediaQuery' => '(min-width: 6000px)', | |
126 'weight' => 2, | |
127 'multipliers' => [ | |
128 '1x', | |
129 ], | |
130 'provider' => 'breakpoint_module_test', | |
131 'id' => 'breakpoint_module_test.breakpoint_theme_test.group2.tv', | |
132 'group' => 'breakpoint_theme_test.group2', | |
133 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
134 ], | |
135 ]; | |
136 | |
137 $breakpoints = \Drupal::service('breakpoint.manager')->getBreakpointsByGroup('breakpoint_theme_test.group2'); | |
138 foreach ($expected_breakpoints as $id => $expected_breakpoint) { | |
139 $this->assertEqual($expected_breakpoint, $breakpoints[$id]->getPluginDefinition()); | |
140 } | |
141 } | |
142 | |
143 /** | |
144 * Test the breakpoint group created for a module. | |
145 */ | |
146 public function testModuleBreakpoints() { | |
147 $expected_breakpoints = [ | |
148 'breakpoint_module_test.mobile' => [ | |
149 'label' => 'mobile', | |
150 'mediaQuery' => '(min-width: 0px)', | |
151 'weight' => 0, | |
152 'multipliers' => [ | |
153 '1x', | |
154 ], | |
155 'provider' => 'breakpoint_module_test', | |
156 'id' => 'breakpoint_module_test.mobile', | |
157 'group' => 'breakpoint_module_test', | |
158 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
159 ], | |
160 'breakpoint_module_test.standard' => [ | |
161 'label' => 'standard', | |
162 'mediaQuery' => '(min-width: 560px)', | |
163 'weight' => 1, | |
164 'multipliers' => [ | |
165 '1x', | |
166 '2x', | |
167 ], | |
168 'provider' => 'breakpoint_module_test', | |
169 'id' => 'breakpoint_module_test.standard', | |
170 'group' => 'breakpoint_module_test', | |
171 'class' => 'Drupal\\breakpoint\\Breakpoint', | |
172 ], | |
173 ]; | |
174 | |
175 $breakpoints = \Drupal::service('breakpoint.manager')->getBreakpointsByGroup('breakpoint_module_test'); | |
176 $this->assertEqual(array_keys($expected_breakpoints), array_keys($breakpoints)); | |
177 } | |
178 | |
179 /** | |
180 * Test the collection of breakpoint groups. | |
181 */ | |
182 public function testBreakpointGroups() { | |
183 $expected = [ | |
184 'bartik' => 'Bartik', | |
185 'breakpoint_module_test' => 'Breakpoint test module', | |
186 'breakpoint_theme_test' => 'Breakpoint test theme', | |
187 'breakpoint_theme_test.group2' => 'breakpoint_theme_test.group2', | |
188 ]; | |
189 $breakpoint_groups = \Drupal::service('breakpoint.manager')->getGroups(); | |
190 // Ensure the order is as expected. Should be sorted by label. | |
191 $this->assertIdentical($expected, $this->castSafeStrings($breakpoint_groups)); | |
192 | |
193 $expected = [ | |
194 'breakpoint_theme_test' => 'theme', | |
195 'breakpoint_module_test' => 'module', | |
196 ]; | |
197 $breakpoint_group_providers = \Drupal::service('breakpoint.manager')->getGroupProviders('breakpoint_theme_test.group2'); | |
198 $this->assertEqual($expected, $breakpoint_group_providers); | |
199 } | |
200 | |
201 } |