Skip to content

Commit 5530348

Browse files
committed
Updating according to feedback in WordPress#4655 (review)
1 parent 5c9b894 commit 5530348

File tree

2 files changed

+68
-141
lines changed

2 files changed

+68
-141
lines changed

src/wp-includes/class-wp-theme-json.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2389,8 +2389,7 @@ function( $pseudo_selector ) use ( $selector ) {
23892389

23902390
// 3. Generate and append the rules that use the duotone selector.
23912391
if ( isset( $block_metadata['duotone'] ) && ! empty( $declarations_duotone ) ) {
2392-
$selector_duotone = static::scope_selector( $block_metadata['selector'], $block_metadata['duotone'] );
2393-
$block_rules .= static::to_ruleset( $selector_duotone, $declarations_duotone );
2392+
$block_rules .= static::to_ruleset( $block_metadata['duotone'], $declarations_duotone );
23942393
}
23952394

23962395
// 4. Generate Layout block gap styles.

tests/phpunit/tests/theme/wpGetBlockCssSelector.php

Lines changed: 67 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
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

Comments
 (0)