22/**
33 * Tests wp_get_block_css_selector().
44 *
5+ * @since 6.3.0
6+ *
57 * @group themes
68 *
79 * @covers ::wp_get_block_css_selector
@@ -18,30 +20,26 @@ public function set_up() {
1820 public function tear_down () {
1921 unregister_block_type ( $ this ->test_block_name );
2022 $ this ->test_block_name = null ;
21- set_current_screen ( '' );
2223 parent ::tear_down ();
2324 }
2425
25- private function register_test_block ( $ name , $ selectors = null , $ supports = null , $ editor_selectors = null ) {
26+ private function register_test_block ( $ name , $ selectors = null , $ supports = null ) {
2627 $ this ->test_block_name = $ name ;
2728
2829 return register_block_type (
2930 $ this ->test_block_name ,
3031 array (
31- 'api_version ' => 2 ,
32- 'attributes ' => array (),
33- 'selectors ' => $ selectors ,
34- 'editor_selectors ' => $ editor_selectors ,
35- 'supports ' => $ supports ,
32+ 'api_version ' => 2 ,
33+ 'attributes ' => array (),
34+ 'selectors ' => $ selectors ,
35+ 'supports ' => $ supports ,
3636 )
3737 );
3838 }
3939
40- private function set_screen_to_block_editor () {
41- set_current_screen ( 'edit-post ' );
42- get_current_screen ()->is_block_editor ( true );
43- }
44-
40+ /**
41+ * @ticket 58586
42+ */
4543 public function test_get_root_selector_via_selectors_api () {
4644 $ block_type = self ::register_test_block (
4745 'test/block-with-selectors ' ,
@@ -52,6 +50,9 @@ public function test_get_root_selector_via_selectors_api() {
5250 $ this ->assertEquals ( '.wp-custom-block-class ' , $ selector );
5351 }
5452
53+ /**
54+ * @ticket 58586
55+ */
5556 public function test_get_root_selector_via_experimental_property () {
5657 $ block_type = self ::register_test_block (
5758 'test/block-without-selectors ' ,
@@ -63,6 +64,9 @@ public function test_get_root_selector_via_experimental_property() {
6364 $ this ->assertEquals ( '.experimental-selector ' , $ selector );
6465 }
6566
67+ /**
68+ * @ticket 58586
69+ */
6670 public function test_default_root_selector_generation_for_core_block () {
6771 $ block_type = self ::register_test_block (
6872 'core/without-selectors-or-supports ' ,
@@ -74,6 +78,9 @@ public function test_default_root_selector_generation_for_core_block() {
7478 $ this ->assertEquals ( '.wp-block-without-selectors-or-supports ' , $ selector );
7579 }
7680
81+ /**
82+ * @ticket 58586
83+ */
7784 public function test_default_root_selector_generation () {
7885 $ block_type = self ::register_test_block (
7986 'test/without-selectors-or-supports ' ,
@@ -85,30 +92,9 @@ public function test_default_root_selector_generation() {
8592 $ this ->assertEquals ( '.wp-block-test-without-selectors-or-supports ' , $ selector );
8693 }
8794
88- public function test_get_duotone_selector_via_selectors_api () {
89- $ block_type = self ::register_test_block (
90- 'test/duotone-selector ' ,
91- array (
92- 'filters ' => array ( 'duotone ' => '.duotone-selector ' ),
93- ),
94- null
95- );
96-
97- $ selector = wp_get_block_css_selector ( $ block_type , array ( 'filters ' , 'duotone ' ) );
98- $ this ->assertEquals ( '.duotone-selector ' , $ selector );
99- }
100-
101- public function test_no_duotone_selector_set () {
102- $ block_type = self ::register_test_block (
103- 'test/null-duotone-selector ' ,
104- null ,
105- null
106- );
107-
108- $ selector = wp_get_block_css_selector ( $ block_type , 'filters.duotone ' );
109- $ this ->assertEquals ( null , $ selector );
110- }
111-
95+ /**
96+ * @ticket 58586
97+ */
11298 public function test_get_feature_selector_via_selectors_api () {
11399 $ block_type = self ::register_test_block (
114100 'test/feature-selector ' ,
@@ -120,6 +106,9 @@ public function test_get_feature_selector_via_selectors_api() {
120106 $ this ->assertEquals ( '.typography ' , $ selector );
121107 }
122108
109+ /**
110+ * @ticket 58586
111+ */
123112 public function test_get_feature_selector_via_selectors_api_shorthand_property () {
124113 $ block_type = self ::register_test_block (
125114 'test/shorthand-feature-selector ' ,
@@ -131,6 +120,9 @@ public function test_get_feature_selector_via_selectors_api_shorthand_property()
131120 $ this ->assertEquals ( '.typography ' , $ selector );
132121 }
133122
123+ /**
124+ * @ticket 58586
125+ */
134126 public function test_no_feature_level_selector_via_selectors_api () {
135127 $ block_type = self ::register_test_block (
136128 'test/null-feature-selector ' ,
@@ -142,6 +134,9 @@ public function test_no_feature_level_selector_via_selectors_api() {
142134 $ this ->assertEquals ( null , $ selector );
143135 }
144136
137+ /**
138+ * @ticket 58586
139+ */
145140 public function test_fallback_feature_level_selector_via_selectors_api_to_generated_class () {
146141 $ block_type = self ::register_test_block (
147142 'test/fallback-feature-selector ' ,
@@ -153,7 +148,9 @@ public function test_fallback_feature_level_selector_via_selectors_api_to_genera
153148 $ this ->assertEquals ( '.wp-block-test-fallback-feature-selector ' , $ selector );
154149 }
155150
156-
151+ /**
152+ * @ticket 58586
153+ */
157154 public function test_fallback_feature_level_selector_via_selectors_api () {
158155 $ block_type = self ::register_test_block (
159156 'test/fallback-feature-selector ' ,
@@ -165,6 +162,9 @@ public function test_fallback_feature_level_selector_via_selectors_api() {
165162 $ this ->assertEquals ( '.fallback-root-selector ' , $ selector );
166163 }
167164
165+ /**
166+ * @ticket 58586
167+ */
168168 public function test_get_feature_selector_via_experimental_property () {
169169 $ block_type = self ::register_test_block (
170170 'test/experimental-feature-selector ' ,
@@ -180,6 +180,9 @@ public function test_get_feature_selector_via_experimental_property() {
180180 $ this ->assertEquals ( '.wp-block-test-experimental-feature-selector .experimental-typography ' , $ selector );
181181 }
182182
183+ /**
184+ * @ticket 58586
185+ */
183186 public function test_fallback_feature_selector_via_experimental_property () {
184187 $ block_type = self ::register_test_block (
185188 'test/fallback-feature-selector ' ,
@@ -191,6 +194,9 @@ public function test_fallback_feature_selector_via_experimental_property() {
191194 $ this ->assertEquals ( '.wp-block-test-fallback-feature-selector ' , $ selector );
192195 }
193196
197+ /**
198+ * @ticket 58586
199+ */
194200 public function test_no_feature_selector_via_experimental_property () {
195201 $ block_type = self ::register_test_block (
196202 'test/null-experimental-feature-selector ' ,
@@ -202,6 +208,9 @@ public function test_no_feature_selector_via_experimental_property() {
202208 $ this ->assertEquals ( null , $ selector );
203209 }
204210
211+ /**
212+ * @ticket 58586
213+ */
205214 public function test_get_subfeature_selector_via_selectors_api () {
206215 $ block_type = self ::register_test_block (
207216 'test/subfeature-selector ' ,
@@ -221,6 +230,9 @@ public function test_get_subfeature_selector_via_selectors_api() {
221230 $ this ->assertEquals ( '.root .typography .text-decoration ' , $ selector );
222231 }
223232
233+ /**
234+ * @ticket 58586
235+ */
224236 public function test_fallback_subfeature_selector_via_selectors_api () {
225237 $ block_type = self ::register_test_block (
226238 'test/subfeature-selector ' ,
@@ -239,6 +251,9 @@ public function test_fallback_subfeature_selector_via_selectors_api() {
239251 $ this ->assertEquals ( '.root .typography ' , $ selector );
240252 }
241253
254+ /**
255+ * @ticket 58586
256+ */
242257 public function test_no_subfeature_level_selector_via_selectors_api () {
243258 $ block_type = self ::register_test_block (
244259 'test/null-subfeature-selector ' ,
@@ -250,6 +265,9 @@ public function test_no_subfeature_level_selector_via_selectors_api() {
250265 $ this ->assertEquals ( null , $ selector );
251266 }
252267
268+ /**
269+ * @ticket 58586
270+ */
253271 public function test_fallback_subfeature_selector_via_experimental_property () {
254272 $ block_type = self ::register_test_block (
255273 'test/fallback-subfeature-selector ' ,
@@ -265,6 +283,9 @@ public function test_fallback_subfeature_selector_via_experimental_property() {
265283 $ this ->assertEquals ( '.wp-block-test-fallback-subfeature-selector ' , $ selector );
266284 }
267285
286+ /**
287+ * @ticket 58586
288+ */
268289 public function test_no_subfeature_selector_via_experimental_property () {
269290 $ block_type = self ::register_test_block (
270291 'test/null-experimental-subfeature-selector ' ,
@@ -279,6 +300,9 @@ public function test_no_subfeature_selector_via_experimental_property() {
279300 $ this ->assertEquals ( null , $ selector );
280301 }
281302
303+ /**
304+ * @ticket 58586
305+ */
282306 public function test_empty_target_returns_null () {
283307 $ block_type = self ::register_test_block (
284308 'test/null-experimental-subfeature-selector ' ,
@@ -293,6 +317,9 @@ public function test_empty_target_returns_null() {
293317 $ this ->assertEquals ( null , $ selector );
294318 }
295319
320+ /**
321+ * @ticket 58586
322+ */
296323 public function test_string_targets_for_features () {
297324 $ block_type = self ::register_test_block (
298325 'test/target-types-for-features ' ,
@@ -307,6 +334,9 @@ public function test_string_targets_for_features() {
307334 $ this ->assertEquals ( '.found ' , $ selector );
308335 }
309336
337+ /**
338+ * @ticket 58586
339+ */
310340 public function test_string_targets_for_subfeatures () {
311341 $ block_type = self ::register_test_block (
312342 'test/target-types-for-features ' ,
@@ -322,107 +352,5 @@ public function test_string_targets_for_subfeatures() {
322352 $ selector = wp_get_block_css_selector ( $ block_type , array ( 'typography ' , 'fontSize ' ) );
323353 $ this ->assertEquals ( '.found ' , $ selector );
324354 }
325-
326- public function test_editor_only_root_selector () {
327- self ::set_screen_to_block_editor ();
328-
329- $ block_type = self ::register_test_block (
330- 'test/editor-only-selectors ' ,
331- array ( 'root ' => '.wp-custom-block-class ' ),
332- null ,
333- array ( 'root ' => '.wp-custom-block-class ' )
334- );
335-
336- $ selector = wp_get_block_css_selector ( $ block_type , 'root ' );
337- $ this ->assertEquals ( '.wp-custom-block-class ' , $ selector );
338- }
339-
340- public function test_editor_only_duotone_selector () {
341- self ::set_screen_to_block_editor ();
342-
343- $ block_type = self ::register_test_block (
344- 'test/editor-duotone-selector ' ,
345- array (
346- 'filters ' => array ( 'duotone ' => '.duotone-selector ' ),
347- ),
348- null ,
349- array (
350- 'filters ' => array ( 'duotone ' => '.duotone-selector ' ),
351- )
352- );
353-
354- $ selector = wp_get_block_css_selector ( $ block_type , 'filters.duotone ' );
355- $ this ->assertEquals ( '.duotone-selector ' , $ selector );
356- }
357-
358- public function test_editor_only_feature_selector () {
359- self ::set_screen_to_block_editor ();
360-
361- $ block_type = self ::register_test_block (
362- 'test/editor-feature-selector ' ,
363- array ( 'typography ' => array ( 'root ' => '.typography ' ) ),
364- null ,
365- array ( 'typography ' => array ( 'root ' => '.typography ' ) )
366- );
367-
368- $ selector = wp_get_block_css_selector ( $ block_type , 'typography ' );
369- $ this ->assertEquals ( '.typography ' , $ selector );
370- }
371-
372- public function test_editor_only_feature_selector_shorthand () {
373- self ::set_screen_to_block_editor ();
374-
375- $ block_type = self ::register_test_block (
376- 'test/editor-feature-selector ' ,
377- array ( 'typography ' => '.typography ' ),
378- null ,
379- array ( 'typography ' => '.typography ' )
380- );
381-
382- $ selector = wp_get_block_css_selector ( $ block_type , 'typography ' );
383- $ this ->assertEquals ( '.typography ' , $ selector );
384- }
385-
386- public function test_editor_only_subfeature_selector () {
387- self ::set_screen_to_block_editor ();
388-
389- $ block_type = self ::register_test_block (
390- 'test/editor-subfeature-selector ' ,
391- array ( 'typography ' => array ( 'fontSize ' => '.font-size ' ) ),
392- null ,
393- array ( 'typography ' => array ( 'fontSize ' => '.font-size ' ) )
394- );
395-
396- $ selector = wp_get_block_css_selector ( $ block_type , 'typography.fontSize ' );
397- $ this ->assertEquals ( '.font-size ' , $ selector );
398- }
399-
400- public function test_non_editor_subfeature_does_not_fall_back_to_editor_only_feature_selector () {
401- self ::set_screen_to_block_editor ();
402-
403- $ block_type = self ::register_test_block (
404- 'test/editor-subfeature-selector ' ,
405- array ( 'typography ' => array ( 'fontSize ' => '.font-size ' ) ),
406- null ,
407- array ( 'typography ' => '.font-size ' )
408- );
409-
410- $ selector = wp_get_block_css_selector ( $ block_type , 'typography.fontSize ' , true );
411- $ this ->assertEquals ( '.font-size ' , $ selector );
412- }
413-
414- public function test_unspecified_subfeature_falls_back_to_editor_only_feature_selector () {
415- self ::set_screen_to_block_editor ();
416-
417- $ block_type = self ::register_test_block (
418- 'test/editor-subfeature-selector ' ,
419- array ( 'typography ' => '.typography ' ),
420- null ,
421- array ( 'typography ' => '.typography ' )
422- );
423-
424- $ selector = wp_get_block_css_selector ( $ block_type , 'typography.fontSize ' , true );
425- $ this ->assertEquals ( '.typography ' , $ selector );
426- }
427355}
428356
0 commit comments