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 }