@wordpress/e2e-tests 7.20.0 → 7.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/package.json +9 -8
- package/plugins/interactive-blocks/directive-bind/render.php +1 -1
- package/plugins/interactive-blocks/directive-body/render.php +1 -1
- package/plugins/interactive-blocks/directive-class/render.php +1 -1
- package/plugins/interactive-blocks/directive-context/render.php +2 -2
- package/plugins/interactive-blocks/directive-context/view.js +10 -6
- package/plugins/interactive-blocks/{directive-slots → directive-each}/block.json +3 -3
- package/plugins/interactive-blocks/directive-each/render.php +226 -0
- package/plugins/interactive-blocks/directive-each/view.js +192 -0
- package/plugins/interactive-blocks/directive-init/render.php +1 -1
- package/plugins/interactive-blocks/directive-key/render.php +2 -2
- package/plugins/interactive-blocks/directive-key/view.js +7 -4
- package/plugins/interactive-blocks/directive-on/render.php +1 -1
- package/plugins/interactive-blocks/directive-on-document/block.json +15 -0
- package/plugins/interactive-blocks/directive-on-document/render.php +29 -0
- package/plugins/interactive-blocks/directive-on-document/view.js +39 -0
- package/plugins/interactive-blocks/directive-on-window/block.json +15 -0
- package/plugins/interactive-blocks/directive-on-window/render.php +26 -0
- package/plugins/interactive-blocks/directive-on-window/view.js +39 -0
- package/plugins/interactive-blocks/directive-priorities/render.php +1 -1
- package/plugins/interactive-blocks/directive-run/block.json +15 -0
- package/plugins/interactive-blocks/directive-run/render.php +54 -0
- package/plugins/interactive-blocks/directive-run/view.js +110 -0
- package/plugins/interactive-blocks/directive-style/render.php +1 -1
- package/plugins/interactive-blocks/directive-text/render.php +15 -1
- package/plugins/interactive-blocks/directive-text/view.js +4 -1
- package/plugins/interactive-blocks/directive-watch/render.php +1 -1
- package/plugins/interactive-blocks/negation-operator/render.php +1 -1
- package/plugins/interactive-blocks/router-navigate/render.php +2 -2
- package/plugins/interactive-blocks/router-navigate/view.js +5 -2
- package/plugins/interactive-blocks/router-regions/render.php +4 -4
- package/plugins/interactive-blocks/router-regions/view.js +5 -2
- package/plugins/interactive-blocks/store-tag/render.php +3 -3
- package/plugins/interactive-blocks/tovdom/render.php +1 -1
- package/plugins/interactive-blocks/tovdom-islands/render.php +1 -1
- package/plugins/interactive-blocks/with-scope/block.json +15 -0
- package/plugins/interactive-blocks/with-scope/render.php +14 -0
- package/plugins/interactive-blocks/with-scope/view.js +20 -0
- package/plugins/interactive-blocks.php +19 -10
- package/specs/editor/various/__snapshots__/pattern-blocks.test.js.snap +0 -6
- package/specs/editor/various/pattern-blocks.test.js +8 -117
- package/plugins/dataviews.php +0 -25
- package/plugins/interactive-blocks/directive-slots/render.php +0 -69
- package/plugins/interactive-blocks/directive-slots/view.js +0 -20
- package/specs/editor/fixtures/menu-items-request-fixture.json +0 -84
- package/specs/editor/fixtures/menu-items-response-fixture.json +0 -1261
- package/specs/editor/various/__snapshots__/block-grouping.test.js.snap +0 -115
- package/specs/editor/various/__snapshots__/embedding.test.js.snap +0 -67
- package/specs/editor/various/block-grouping.test.js +0 -283
- package/specs/editor/various/embedding.test.js +0 -303
- package/specs/editor/various/typewriter.test.js +0 -260
@@ -15,42 +15,16 @@ import {
|
|
15
15
|
openDocumentSettingsSidebar,
|
16
16
|
saveDraft,
|
17
17
|
createReusableBlock,
|
18
|
-
publishPost,
|
19
18
|
canvas,
|
20
19
|
} from '@wordpress/e2e-test-utils';
|
21
20
|
|
22
21
|
const patternBlockNameInputSelector =
|
23
22
|
'.patterns-menu-items__convert-modal .components-text-control__input';
|
24
|
-
const
|
25
|
-
'.block-editor-block-inspector .
|
23
|
+
const patternBlockInspectorNameSelector =
|
24
|
+
'.block-editor-block-inspector h2.block-editor-block-card__title';
|
26
25
|
const syncToggleSelectorChecked =
|
27
26
|
'.patterns-menu-items__convert-modal .components-form-toggle.is-checked';
|
28
27
|
|
29
|
-
const saveAll = async () => {
|
30
|
-
const publishButtonSelector =
|
31
|
-
'.editor-post-publish-button__button.has-changes-dot';
|
32
|
-
// Wait for the Publish button to become enabled in case the editor is autosaving ATM:.
|
33
|
-
const publishButton = await page.waitForSelector(
|
34
|
-
publishButtonSelector + '[aria-disabled="false"]'
|
35
|
-
);
|
36
|
-
await publishButton.click();
|
37
|
-
|
38
|
-
const saveButtonSelector =
|
39
|
-
'button.editor-entities-saved-states__save-button';
|
40
|
-
const saveButton = await page.waitForSelector( saveButtonSelector );
|
41
|
-
await saveButton.click();
|
42
|
-
};
|
43
|
-
|
44
|
-
const saveAllButDontPublish = async () => {
|
45
|
-
await saveAll();
|
46
|
-
|
47
|
-
// No need to publish the post.
|
48
|
-
const cancelPublish = await page.waitForSelector(
|
49
|
-
'.editor-post-publish-panel__header-cancel-button button'
|
50
|
-
);
|
51
|
-
await cancelPublish.click();
|
52
|
-
};
|
53
|
-
|
54
28
|
const clearAllBlocks = async () => {
|
55
29
|
// Remove all blocks from the post so that we're working with a clean slate.
|
56
30
|
await page.evaluate( () => {
|
@@ -69,46 +43,24 @@ describe( 'Pattern blocks', () => {
|
|
69
43
|
await createNewPost();
|
70
44
|
} );
|
71
45
|
|
72
|
-
it( 'can be created, inserted,
|
46
|
+
it( 'can be created, inserted, and converted to a regular block.', async () => {
|
73
47
|
await createReusableBlock( 'Hello there!', 'Greeting block' );
|
74
48
|
await clearAllBlocks();
|
75
49
|
|
76
50
|
// Insert the reusable block we created above.
|
77
51
|
await insertPattern( 'Greeting block' );
|
78
52
|
|
79
|
-
// Change the block's title.
|
80
|
-
await openDocumentSettingsSidebar();
|
81
|
-
const nameInput = await page.waitForSelector(
|
82
|
-
patternBlockInspectorNameInputSelector
|
83
|
-
);
|
84
|
-
await nameInput.click();
|
85
|
-
await pressKeyWithModifier( 'primary', 'a' );
|
86
|
-
await page.keyboard.type( 'Surprised greeting block' );
|
87
|
-
|
88
|
-
// Quickly focus the paragraph block.
|
89
|
-
await canvas().click(
|
90
|
-
'.block-editor-block-list__block[data-type="core/block"] p'
|
91
|
-
);
|
92
|
-
await page.keyboard.press( 'Escape' ); // Enter navigation mode.
|
93
|
-
await page.keyboard.press( 'Enter' ); // Enter edit mode.
|
94
|
-
|
95
|
-
// Change the block's content.
|
96
|
-
await page.keyboard.type( 'Oh! ' );
|
97
|
-
|
98
|
-
// Save the reusable block.
|
99
|
-
await saveAllButDontPublish();
|
100
|
-
|
101
53
|
// Check that its content is up to date.
|
102
54
|
const text = await canvas().$eval(
|
103
55
|
'.block-editor-block-list__block[data-type="core/block"] p',
|
104
56
|
( element ) => element.innerText
|
105
57
|
);
|
106
|
-
expect( text ).toMatch( '
|
58
|
+
expect( text ).toMatch( 'Hello there!' );
|
107
59
|
|
108
60
|
await clearAllBlocks();
|
109
61
|
|
110
62
|
// Insert the reusable block we edited above.
|
111
|
-
await insertPattern( '
|
63
|
+
await insertPattern( 'Greeting block' );
|
112
64
|
|
113
65
|
// Convert block to a regular block.
|
114
66
|
await clickBlockToolbarButton( 'Options' );
|
@@ -125,42 +77,7 @@ describe( 'Pattern blocks', () => {
|
|
125
77
|
'.block-editor-block-list__block[data-type="core/paragraph"]',
|
126
78
|
( element ) => element.innerText
|
127
79
|
);
|
128
|
-
expect( paragraphContent ).toMatch( '
|
129
|
-
} );
|
130
|
-
|
131
|
-
// Check for regressions of https://github.com/WordPress/gutenberg/issues/33072.
|
132
|
-
it( 'can be saved when modified inside of a published post', async () => {
|
133
|
-
await createReusableBlock(
|
134
|
-
'Guten Berg!',
|
135
|
-
'Alternative greeting block'
|
136
|
-
);
|
137
|
-
|
138
|
-
// Make sure the reusable block has loaded properly before attempting to publish the post.
|
139
|
-
await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
|
140
|
-
|
141
|
-
await publishPost();
|
142
|
-
|
143
|
-
// Close publish panel.
|
144
|
-
const closePublishPanelSelector =
|
145
|
-
'.editor-post-publish-panel__header button[aria-label="Close panel"]';
|
146
|
-
await page.waitForSelector( closePublishPanelSelector );
|
147
|
-
await page.click( closePublishPanelSelector );
|
148
|
-
|
149
|
-
await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
|
150
|
-
await canvas().focus( 'p[aria-label="Block: Paragraph"]' );
|
151
|
-
|
152
|
-
// Change the block's content.
|
153
|
-
await page.keyboard.type( 'Einen ' );
|
154
|
-
|
155
|
-
// Save the reusable block and update the post.
|
156
|
-
await saveAll();
|
157
|
-
|
158
|
-
// Check that its content is up to date.
|
159
|
-
const paragraphContent = await canvas().$eval(
|
160
|
-
'p[aria-label="Block: Paragraph"]',
|
161
|
-
( element ) => element.innerText
|
162
|
-
);
|
163
|
-
expect( paragraphContent ).toMatch( 'Einen Guten Berg!' );
|
80
|
+
expect( paragraphContent ).toMatch( 'Hello there!' );
|
164
81
|
} );
|
165
82
|
|
166
83
|
it( 'can be inserted after refresh', async () => {
|
@@ -175,8 +92,8 @@ describe( 'Pattern blocks', () => {
|
|
175
92
|
// Check the title.
|
176
93
|
await openDocumentSettingsSidebar();
|
177
94
|
const title = await page.$eval(
|
178
|
-
|
179
|
-
( element ) => element.
|
95
|
+
patternBlockInspectorNameSelector,
|
96
|
+
( element ) => element.textContent
|
180
97
|
);
|
181
98
|
expect( title ).toBe( 'Awesome block' );
|
182
99
|
} );
|
@@ -335,32 +252,6 @@ describe( 'Pattern blocks', () => {
|
|
335
252
|
);
|
336
253
|
} );
|
337
254
|
|
338
|
-
// Check for regressions of https://github.com/WordPress/gutenberg/issues/26421.
|
339
|
-
it( 'allows conversion back to blocks when the reusable block has unsaved edits', async () => {
|
340
|
-
await createReusableBlock( '1', 'Edited block' );
|
341
|
-
|
342
|
-
// Make an edit to the reusable block and assert that there's only a
|
343
|
-
// paragraph in a reusable block.
|
344
|
-
await canvas().waitForSelector( 'p[aria-label="Block: Paragraph"]' );
|
345
|
-
await canvas().click( 'p[aria-label="Block: Paragraph"]' );
|
346
|
-
await page.keyboard.type( '2' );
|
347
|
-
const selector =
|
348
|
-
'//div[@aria-label="Block: Pattern"]//p[@aria-label="Block: Paragraph"][.="12"]';
|
349
|
-
const reusableBlockWithParagraph = await page.$x( selector );
|
350
|
-
expect( reusableBlockWithParagraph ).toBeTruthy();
|
351
|
-
|
352
|
-
// Convert back to regular blocks.
|
353
|
-
await clickBlockToolbarButton( 'Select parent block: Edited block' );
|
354
|
-
await clickBlockToolbarButton( 'Options' );
|
355
|
-
await clickMenuItem( 'Detach' );
|
356
|
-
await page.waitForXPath( selector, {
|
357
|
-
hidden: true,
|
358
|
-
} );
|
359
|
-
|
360
|
-
// Check that there's only a paragraph.
|
361
|
-
expect( await getEditedPostContent() ).toMatchSnapshot();
|
362
|
-
} );
|
363
|
-
|
364
255
|
// Test for regressions of https://github.com/WordPress/gutenberg/issues/27243.
|
365
256
|
it( 'should allow a block with styles to be converted to a reusable block', async () => {
|
366
257
|
// Insert a quote and reload the page.
|
package/plugins/dataviews.php
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
<?php
|
2
|
-
/**
|
3
|
-
* Plugin Name: Gutenberg Test DataViews
|
4
|
-
* Plugin URI: https://github.com/WordPress/gutenberg
|
5
|
-
* Author: Gutenberg Team
|
6
|
-
*
|
7
|
-
* @package gutenberg-test-dataviews
|
8
|
-
*/
|
9
|
-
|
10
|
-
/**
|
11
|
-
* Disables the DataViews experiment on plugin deactivation.
|
12
|
-
*/
|
13
|
-
function disable_dataviews_experiment() {
|
14
|
-
update_option( 'gutenberg-experiments', array() );
|
15
|
-
}
|
16
|
-
|
17
|
-
/**
|
18
|
-
* Enables the DataViews experiment.
|
19
|
-
*/
|
20
|
-
function enable_dataviews_experiment() {
|
21
|
-
update_option( 'gutenberg-experiments', array( 'gutenberg-dataviews' => true ) );
|
22
|
-
register_deactivation_hook( __FILE__, 'disable_dataviews_experiment' );
|
23
|
-
}
|
24
|
-
|
25
|
-
add_action( 'init', 'enable_dataviews_experiment' );
|
@@ -1,69 +0,0 @@
|
|
1
|
-
<?php
|
2
|
-
/**
|
3
|
-
* HTML for testing the directive `data-wp-bind`.
|
4
|
-
*
|
5
|
-
* @package gutenberg-test-interactive-blocks
|
6
|
-
*/
|
7
|
-
|
8
|
-
gutenberg_enqueue_module( 'directive-slots-view' );
|
9
|
-
?>
|
10
|
-
|
11
|
-
<div
|
12
|
-
data-wp-interactive='{ "namespace": "directive-slots" }'
|
13
|
-
data-wp-slot-provider
|
14
|
-
data-wp-context='{ "text": "fill" }'
|
15
|
-
>
|
16
|
-
<div data-testid="slots" data-wp-context='{ "text": "fill inside slots" }'>
|
17
|
-
<div
|
18
|
-
data-testid="slot-1"
|
19
|
-
data-wp-key="slot-1"
|
20
|
-
data-wp-slot="slot-1"
|
21
|
-
data-wp-context='{ "text": "fill inside slot 1" }'
|
22
|
-
>[1]</div>
|
23
|
-
<div
|
24
|
-
data-testid="slot-2"
|
25
|
-
data-wp-key="slot-2"
|
26
|
-
data-wp-slot='{ "name": "slot-2", "position": "before" }'
|
27
|
-
data-wp-context='{ "text": "[2]" }'
|
28
|
-
data-wp-text='context.text'
|
29
|
-
data-wp-on--click="actions.updateSlotText"
|
30
|
-
>[2]</div>
|
31
|
-
<div
|
32
|
-
data-testid="slot-3"
|
33
|
-
data-wp-key="slot-3"
|
34
|
-
data-wp-slot='{ "name": "slot-3", "position": "after" }'
|
35
|
-
data-wp-context='{ "text": "[3]" }'
|
36
|
-
data-wp-text='context.text'
|
37
|
-
data-wp-on--click="actions.updateSlotText"
|
38
|
-
>[3]</div>
|
39
|
-
<div
|
40
|
-
data-testid="slot-4"
|
41
|
-
data-wp-key="slot-4"
|
42
|
-
data-wp-slot='{ "name": "slot-4", "position": "children" }'
|
43
|
-
data-wp-context='{ "text": "fill inside slot 4" }'
|
44
|
-
>[4]</div>
|
45
|
-
<div
|
46
|
-
data-testid="slot-5"
|
47
|
-
data-wp-key="slot-5"
|
48
|
-
data-wp-slot='{ "name": "slot-5", "position": "replace" }'
|
49
|
-
data-wp-context='{ "text": "fill inside slot 5" }'
|
50
|
-
>[5]</div>
|
51
|
-
</div>
|
52
|
-
|
53
|
-
<div data-testid="fill-container">
|
54
|
-
<span
|
55
|
-
data-testid="fill"
|
56
|
-
data-wp-fill="state.slot"
|
57
|
-
data-wp-text="context.text"
|
58
|
-
>initial</span>
|
59
|
-
</div>
|
60
|
-
|
61
|
-
<div data-wp-on--click="actions.changeSlot">
|
62
|
-
<button data-testid="slot-1-button" data-slot="slot-1">slot-1</button>
|
63
|
-
<button data-testid="slot-2-button" data-slot="slot-2">slot-2</button>
|
64
|
-
<button data-testid="slot-3-button" data-slot="slot-3">slot-3</button>
|
65
|
-
<button data-testid="slot-4-button" data-slot="slot-4">slot-4</button>
|
66
|
-
<button data-testid="slot-5-button" data-slot="slot-5">slot-5</button>
|
67
|
-
<button data-testid="reset" data-slot="">reset</button>
|
68
|
-
</div>
|
69
|
-
</div>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* WordPress dependencies
|
3
|
-
*/
|
4
|
-
import { store, getContext } from '@wordpress/interactivity';
|
5
|
-
|
6
|
-
const { state } = store( 'directive-slots', {
|
7
|
-
state: {
|
8
|
-
slot: '',
|
9
|
-
},
|
10
|
-
actions: {
|
11
|
-
changeSlot( event ) {
|
12
|
-
state.slot = event.target.dataset.slot;
|
13
|
-
},
|
14
|
-
updateSlotText() {
|
15
|
-
const context = getContext();
|
16
|
-
const n = context.text[ 1 ];
|
17
|
-
context.text = `[${ n } updated]`;
|
18
|
-
},
|
19
|
-
},
|
20
|
-
} );
|
@@ -1,84 +0,0 @@
|
|
1
|
-
[
|
2
|
-
{
|
3
|
-
"title": "Home",
|
4
|
-
"url": "http://localhost:8889/",
|
5
|
-
"menu_order": 1
|
6
|
-
},
|
7
|
-
{
|
8
|
-
"title": "About",
|
9
|
-
"type": "post_type",
|
10
|
-
"object": "page",
|
11
|
-
"menu_order": 2
|
12
|
-
},
|
13
|
-
{
|
14
|
-
"title": "Our team",
|
15
|
-
"type": "post_type",
|
16
|
-
"object": "page",
|
17
|
-
"menu_order": 3,
|
18
|
-
"parent": 1
|
19
|
-
},
|
20
|
-
{
|
21
|
-
"title": "Shop",
|
22
|
-
"type": "post_type",
|
23
|
-
"object": "page",
|
24
|
-
"menu_order": 4
|
25
|
-
},
|
26
|
-
{
|
27
|
-
"title": "Winter apparel",
|
28
|
-
"type": "post_type",
|
29
|
-
"object": "page",
|
30
|
-
"menu_order": 5,
|
31
|
-
"parent": 3
|
32
|
-
},
|
33
|
-
{
|
34
|
-
"title": "Chunky socks",
|
35
|
-
"type": "post_type",
|
36
|
-
"object": "page",
|
37
|
-
"menu_order": 6,
|
38
|
-
"parent": 4
|
39
|
-
},
|
40
|
-
{
|
41
|
-
"title": "Hideous hats",
|
42
|
-
"type": "post_type",
|
43
|
-
"object": "page",
|
44
|
-
"menu_order": 7,
|
45
|
-
"parent": 4
|
46
|
-
},
|
47
|
-
{
|
48
|
-
"title": "Glorious gloves",
|
49
|
-
"type": "post_type",
|
50
|
-
"object": "page",
|
51
|
-
"menu_order": 8,
|
52
|
-
"parent": 4
|
53
|
-
},
|
54
|
-
{
|
55
|
-
"title": "Jazzy Jumpers",
|
56
|
-
"type": "post_type",
|
57
|
-
"object": "page",
|
58
|
-
"menu_order": 9,
|
59
|
-
"parent": 4
|
60
|
-
},
|
61
|
-
{
|
62
|
-
"title": "Shipping",
|
63
|
-
"type": "post_type",
|
64
|
-
"object": "page",
|
65
|
-
"menu_order": 10
|
66
|
-
},
|
67
|
-
{
|
68
|
-
"title": "Contact Us",
|
69
|
-
"type": "post_type",
|
70
|
-
"object": "page",
|
71
|
-
"menu_order": 11
|
72
|
-
},
|
73
|
-
{
|
74
|
-
"title": "WordPress.org",
|
75
|
-
"url": "https://wordpress.org",
|
76
|
-
"menu_order": 12
|
77
|
-
},
|
78
|
-
{
|
79
|
-
"title": "Google",
|
80
|
-
"url": "https://google.com",
|
81
|
-
"menu_order": 13,
|
82
|
-
"parent": 11
|
83
|
-
}
|
84
|
-
]
|