Skip to content

Commit da28362

Browse files
committed
Tests: Improve the assertions for REST API endpoint for block types
Follow-up to [56587], [55673]. While working on #59346, it was noted that selectors fiels is not always included in the assertions. While looking at it is was difficult to spot the issue because the random order of how REST API fields where listed. Reorderd the REST API fields in the test cases to follow the list from the documentation: https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md. This way it's going to be easier to maintain the list moving forward. Props ockham. See #59346, #59313, #57585. git-svn-id: https://develop.svn.wordpress.org/trunk@56588 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 7b90f22 commit da28362

1 file changed

Lines changed: 73 additions & 71 deletions

File tree

tests/phpunit/tests/rest-api/rest-block-type-controller.php

Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -201,28 +201,28 @@ public function test_get_item_invalid() {
201201
$block_type = 'fake/invalid';
202202
$settings = array(
203203
'title' => true,
204-
'description' => true,
204+
'category' => true,
205+
'parent' => 'invalid_parent',
206+
'ancestor' => 'invalid_ancestor',
205207
'icon' => true,
208+
'description' => true,
209+
'keywords' => 'invalid_keywords',
210+
'textdomain' => true,
206211
'attributes' => 'invalid_attributes',
207212
'provides_context' => 'invalid_provides_context',
208213
'uses_context' => 'invalid_uses_context',
214+
'selectors' => 'invalid_selectors',
215+
'supports' => 'invalid_supports',
216+
'styles' => array(),
217+
'example' => 'invalid_example',
218+
'variations' => 'invalid_variations',
209219
'block_hooks' => 'invalid_block_hooks',
210-
'category' => true,
220+
'render_callback' => 'invalid_callback',
211221
'editor_script' => true,
212222
'script' => true,
213223
'view_script' => true,
214224
'editor_style' => true,
215225
'style' => true,
216-
'keywords' => 'invalid_keywords',
217-
'example' => 'invalid_example',
218-
'parent' => 'invalid_parent',
219-
'ancestor' => 'invalid_ancestor',
220-
'selectors' => 'invalid_selectors',
221-
'supports' => 'invalid_supports',
222-
'styles' => array(),
223-
'render_callback' => 'invalid_callback',
224-
'textdomain' => true,
225-
'variations' => 'invalid_variations',
226226
);
227227
register_block_type( $block_type, $settings );
228228
wp_set_current_user( self::$admin_id );
@@ -231,33 +231,33 @@ public function test_get_item_invalid() {
231231
$data = $response->get_data();
232232
$this->assertSame( $block_type, $data['name'] );
233233
$this->assertSame( '1', $data['title'] );
234-
$this->assertSame( '1', $data['description'] );
234+
$this->assertNull( $data['category'] );
235+
$this->assertSameSets( array( 'invalid_parent' ), $data['parent'] );
236+
$this->assertSameSets( array( 'invalid_ancestor' ), $data['ancestor'] );
235237
$this->assertNull( $data['icon'] );
236-
$this->assertSameSets( array(), $data['editor_script_handles'] );
237-
$this->assertSameSets( array(), $data['script_handles'] );
238-
$this->assertSameSets( array(), $data['view_script_handles'] );
239-
$this->assertSameSets( array(), $data['editor_style_handles'] );
240-
$this->assertSameSets( array(), $data['style_handles'] );
241-
$this->assertSameSets( array(), $data['provides_context'] );
238+
$this->assertSame( '1', $data['description'] );
239+
$this->assertSameSets( array( 'invalid_keywords' ), $data['keywords'] );
240+
$this->assertNull( $data['textdomain'] );
242241
$this->assertSameSetsWithIndex(
243242
array(
244243
'lock' => array( 'type' => 'object' ),
245244
),
246245
$data['attributes']
247246
);
248247
$this->assertSameSets( array( 'invalid_uses_context' ), $data['uses_context'] );
249-
$this->assertSameSets( array(), $data['block_hooks'], 'invalid block_hooks defaults to empty array' );
250-
$this->assertSameSets( array( 'invalid_keywords' ), $data['keywords'] );
251-
$this->assertSameSets( array( 'invalid_parent' ), $data['parent'] );
252-
$this->assertSameSets( array( 'invalid_ancestor' ), $data['ancestor'] );
248+
$this->assertSameSets( array(), $data['provides_context'] );
253249
$this->assertSameSets( array(), $data['selectors'], 'invalid selectors defaults to empty array' );
254250
$this->assertSameSets( array(), $data['supports'] );
255251
$this->assertSameSets( array(), $data['styles'] );
256252
$this->assertNull( $data['example'] );
257-
$this->assertNull( $data['category'] );
258-
$this->assertNull( $data['textdomain'] );
259-
$this->assertFalse( $data['is_dynamic'] );
260253
$this->assertSameSets( array( array() ), $data['variations'] );
254+
$this->assertSameSets( array(), $data['block_hooks'], 'invalid block_hooks defaults to empty array' );
255+
$this->assertSameSets( array(), $data['editor_script_handles'] );
256+
$this->assertSameSets( array(), $data['script_handles'] );
257+
$this->assertSameSets( array(), $data['view_script_handles'] );
258+
$this->assertSameSets( array(), $data['editor_style_handles'] );
259+
$this->assertSameSets( array(), $data['style_handles'] );
260+
$this->assertFalse( $data['is_dynamic'] );
261261
// Deprecated properties.
262262
$this->assertNull( $data['editor_script'] );
263263
$this->assertNull( $data['script'] );
@@ -275,28 +275,28 @@ public function test_get_item_defaults() {
275275
$block_type = 'fake/false';
276276
$settings = array(
277277
'title' => false,
278-
'description' => false,
278+
'category' => false,
279+
'parent' => false,
280+
'ancestor' => false,
279281
'icon' => false,
282+
'description' => false,
283+
'keywords' => false,
284+
'textdomain' => false,
280285
'attributes' => false,
281286
'provides_context' => false,
282287
'uses_context' => false,
288+
'selectors' => false,
289+
'supports' => false,
290+
'styles' => false,
291+
'example' => false,
292+
'variations' => false,
283293
'block_hooks' => false,
284-
'category' => false,
285294
'editor_script' => false,
286295
'script' => false,
287296
'view_script' => false,
288297
'editor_style' => false,
289298
'style' => false,
290-
'keywords' => false,
291-
'parent' => false,
292-
'ancestor' => false,
293-
'selectors' => false,
294-
'supports' => false,
295-
'styles' => false,
296299
'render_callback' => false,
297-
'textdomain' => false,
298-
'example' => false,
299-
'variations' => false,
300300
);
301301
register_block_type( $block_type, $settings );
302302
wp_set_current_user( self::$admin_id );
@@ -305,34 +305,33 @@ public function test_get_item_defaults() {
305305
$data = $response->get_data();
306306
$this->assertSame( $block_type, $data['name'] );
307307
$this->assertSame( '', $data['title'] );
308-
$this->assertSame( '', $data['description'] );
308+
$this->assertNull( $data['category'] );
309+
$this->assertSameSets( array(), $data['parent'] );
310+
$this->assertSameSets( array(), $data['ancestor'] );
309311
$this->assertNull( $data['icon'] );
310-
$this->assertSameSets( array(), $data['editor_script_handles'] );
311-
$this->assertSameSets( array(), $data['script_handles'] );
312-
$this->assertSameSets( array(), $data['view_script_handles'] );
313-
$this->assertSameSets( array(), $data['editor_style_handles'] );
314-
$this->assertSameSets( array(), $data['style_handles'] );
312+
$this->assertSame( '', $data['description'] );
313+
$this->assertSameSets( array(), $data['keywords'] );
314+
$this->assertNull( $data['textdomain'] );
315315
$this->assertSameSetsWithIndex(
316316
array(
317317
'lock' => array( 'type' => 'object' ),
318318
),
319319
$data['attributes']
320320
);
321321
$this->assertSameSets( array(), $data['provides_context'] );
322-
$this->assertSameSets( array(), $data['block_hooks'], 'block_hooks defaults to empty array' );
323322
$this->assertSameSets( array(), $data['uses_context'] );
324-
$this->assertSameSets( array(), $data['keywords'] );
325-
$this->assertSameSets( array(), $data['parent'] );
326-
$this->assertSameSets( array(), $data['ancestor'] );
327323
$this->assertSameSets( array(), $data['selectors'], 'selectors defaults to empty array' );
328324
$this->assertSameSets( array(), $data['supports'] );
329325
$this->assertSameSets( array(), $data['styles'] );
330326
$this->assertNull( $data['example'] );
331-
$this->assertNull( $data['category'] );
332-
$this->assertNull( $data['example'] );
333-
$this->assertNull( $data['textdomain'] );
334-
$this->assertFalse( $data['is_dynamic'] );
335327
$this->assertSameSets( array(), $data['variations'] );
328+
$this->assertSameSets( array(), $data['block_hooks'], 'block_hooks defaults to empty array' );
329+
$this->assertSameSets( array(), $data['editor_script_handles'] );
330+
$this->assertSameSets( array(), $data['script_handles'] );
331+
$this->assertSameSets( array(), $data['view_script_handles'] );
332+
$this->assertSameSets( array(), $data['editor_style_handles'] );
333+
$this->assertSameSets( array(), $data['style_handles'] );
334+
$this->assertFalse( $data['is_dynamic'] );
336335
// Deprecated properties.
337336
$this->assertNull( $data['editor_script'] );
338337
$this->assertNull( $data['script'] );
@@ -554,30 +553,30 @@ public function test_get_item_schema() {
554553
$properties = $data['schema']['properties'];
555554
$this->assertCount( 30, $properties );
556555
$this->assertArrayHasKey( 'api_version', $properties );
556+
$this->assertArrayHasKey( 'name', $properties );
557557
$this->assertArrayHasKey( 'title', $properties );
558+
$this->assertArrayHasKey( 'category', $properties );
559+
$this->assertArrayHasKey( 'parent', $properties );
560+
$this->assertArrayHasKey( 'ancestor', $properties );
558561
$this->assertArrayHasKey( 'icon', $properties );
559562
$this->assertArrayHasKey( 'description', $properties );
560563
$this->assertArrayHasKey( 'keywords', $properties );
561-
$this->assertArrayHasKey( 'styles', $properties );
562564
$this->assertArrayHasKey( 'textdomain', $properties );
563-
$this->assertArrayHasKey( 'name', $properties );
564565
$this->assertArrayHasKey( 'attributes', $properties );
566+
$this->assertArrayHasKey( 'provides_context', $properties );
567+
$this->assertArrayHasKey( 'uses_context', $properties );
565568
$this->assertArrayHasKey( 'selectors', $properties, 'schema must contain selectors' );
566569
$this->assertArrayHasKey( 'supports', $properties );
567-
$this->assertArrayHasKey( 'category', $properties );
568-
$this->assertArrayHasKey( 'is_dynamic', $properties );
570+
$this->assertArrayHasKey( 'styles', $properties );
571+
$this->assertArrayHasKey( 'example', $properties );
572+
$this->assertArrayHasKey( 'variations', $properties );
573+
$this->assertArrayHasKey( 'block_hooks', $properties );
569574
$this->assertArrayHasKey( 'editor_script_handles', $properties );
570575
$this->assertArrayHasKey( 'script_handles', $properties );
571576
$this->assertArrayHasKey( 'view_script_handles', $properties );
572577
$this->assertArrayHasKey( 'editor_style_handles', $properties );
573578
$this->assertArrayHasKey( 'style_handles', $properties );
574-
$this->assertArrayHasKey( 'parent', $properties );
575-
$this->assertArrayHasKey( 'example', $properties );
576-
$this->assertArrayHasKey( 'uses_context', $properties );
577-
$this->assertArrayHasKey( 'provides_context', $properties );
578-
$this->assertArrayHasKey( 'block_hooks', $properties );
579-
$this->assertArrayHasKey( 'variations', $properties );
580-
$this->assertArrayHasKey( 'ancestor', $properties );
579+
$this->assertArrayHasKey( 'is_dynamic', $properties );
581580
// Deprecated properties.
582581
$this->assertArrayHasKey( 'editor_script', $properties );
583582
$this->assertArrayHasKey( 'script', $properties );
@@ -686,24 +685,27 @@ protected function check_block_type_object( $block_type, $data, $links ) {
686685
$extra_fields = array(
687686
'api_version',
688687
'name',
689-
'category',
690-
'editor_script_handles',
691-
'script_handles',
692-
'view_script_handles',
693-
'editor_style_handles',
694-
'style_handles',
695688
'title',
689+
'category',
690+
'parent',
691+
'ancestor',
696692
'icon',
697693
'description',
698694
'keywords',
699-
'parent',
695+
'textdomain',
700696
'provides_context',
701697
'uses_context',
702-
'block_hooks',
698+
'selectors',
703699
'supports',
704700
'styles',
705-
'textdomain',
706701
'example',
702+
'variations',
703+
'block_hooks',
704+
'editor_script_handles',
705+
'script_handles',
706+
'view_script_handles',
707+
'editor_style_handles',
708+
'style_handles',
707709
// Deprecated fields.
708710
'editor_script',
709711
'script',

0 commit comments

Comments
 (0)