@wordpress/e2e-tests 7.24.0 → 7.26.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 +4 -0
- package/package.json +9 -9
- package/plugins/delete-installed-fonts.php +68 -0
- package/plugins/interactive-blocks/deferred-store/block.json +15 -0
- package/plugins/interactive-blocks/deferred-store/render.php +15 -0
- package/plugins/interactive-blocks/deferred-store/view.asset.php +1 -0
- package/plugins/interactive-blocks/deferred-store/view.js +20 -0
- package/plugins/interactive-blocks/directive-bind/block.json +1 -1
- package/plugins/interactive-blocks/directive-bind/render.php +0 -2
- package/plugins/interactive-blocks/directive-bind/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-class/block.json +1 -1
- package/plugins/interactive-blocks/directive-class/render.php +0 -2
- package/plugins/interactive-blocks/directive-class/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-context/block.json +1 -1
- package/plugins/interactive-blocks/directive-context/render.php +0 -2
- package/plugins/interactive-blocks/directive-context/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-each/block.json +1 -1
- package/plugins/interactive-blocks/directive-each/render.php +0 -2
- package/plugins/interactive-blocks/directive-each/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-init/block.json +1 -1
- package/plugins/interactive-blocks/directive-init/render.php +0 -2
- package/plugins/interactive-blocks/directive-init/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-key/block.json +1 -1
- package/plugins/interactive-blocks/directive-key/render.php +0 -2
- package/plugins/interactive-blocks/directive-key/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-on/block.json +1 -1
- package/plugins/interactive-blocks/directive-on/render.php +0 -2
- package/plugins/interactive-blocks/directive-on/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-on-document/block.json +1 -1
- package/plugins/interactive-blocks/directive-on-document/render.php +0 -2
- package/plugins/interactive-blocks/directive-on-document/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-on-window/block.json +1 -1
- package/plugins/interactive-blocks/directive-on-window/render.php +0 -2
- package/plugins/interactive-blocks/directive-on-window/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-priorities/block.json +1 -1
- package/plugins/interactive-blocks/directive-priorities/render.php +0 -2
- package/plugins/interactive-blocks/directive-priorities/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-run/block.json +1 -1
- package/plugins/interactive-blocks/directive-run/render.php +0 -2
- package/plugins/interactive-blocks/directive-run/view.asset.php +9 -0
- package/plugins/interactive-blocks/directive-style/block.json +1 -1
- package/plugins/interactive-blocks/directive-style/render.php +0 -2
- package/plugins/interactive-blocks/directive-style/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-text/block.json +1 -1
- package/plugins/interactive-blocks/directive-text/render.php +0 -2
- package/plugins/interactive-blocks/directive-text/view.asset.php +1 -0
- package/plugins/interactive-blocks/directive-watch/block.json +1 -1
- package/plugins/interactive-blocks/directive-watch/render.php +0 -2
- package/plugins/interactive-blocks/directive-watch/view.asset.php +1 -0
- package/plugins/interactive-blocks/generator-scope/block.json +15 -0
- package/plugins/interactive-blocks/generator-scope/render.php +16 -0
- package/plugins/interactive-blocks/generator-scope/view.asset.php +1 -0
- package/plugins/interactive-blocks/generator-scope/view.js +23 -0
- package/plugins/interactive-blocks/negation-operator/block.json +1 -1
- package/plugins/interactive-blocks/negation-operator/render.php +0 -2
- package/plugins/interactive-blocks/negation-operator/view.asset.php +1 -0
- package/plugins/interactive-blocks/router-navigate/block.json +1 -1
- package/plugins/interactive-blocks/router-navigate/render.php +0 -2
- package/plugins/interactive-blocks/router-navigate/view.asset.php +9 -0
- package/plugins/interactive-blocks/router-regions/block.json +1 -1
- package/plugins/interactive-blocks/router-regions/render.php +0 -2
- package/plugins/interactive-blocks/router-regions/view.asset.php +9 -0
- package/plugins/interactive-blocks/store/block.json +1 -1
- package/plugins/interactive-blocks/store/render.php +2 -3
- package/plugins/interactive-blocks/store/view.asset.php +1 -0
- package/plugins/interactive-blocks/store/view.js +7 -4
- package/plugins/interactive-blocks/store-tag/block.json +1 -1
- package/plugins/interactive-blocks/store-tag/render.php +0 -2
- package/plugins/interactive-blocks/store-tag/view.asset.php +1 -0
- package/plugins/interactive-blocks/tovdom/block.json +1 -1
- package/plugins/interactive-blocks/tovdom/render.php +0 -2
- package/plugins/interactive-blocks/tovdom/view.asset.php +1 -0
- package/plugins/interactive-blocks/tovdom-islands/block.json +1 -1
- package/plugins/interactive-blocks/tovdom-islands/render.php +0 -2
- package/plugins/interactive-blocks/tovdom-islands/view.asset.php +1 -0
- package/plugins/interactive-blocks/with-scope/block.json +1 -1
- package/plugins/interactive-blocks/with-scope/render.php +0 -2
- package/plugins/interactive-blocks/with-scope/view.asset.php +1 -0
- package/plugins/interactive-blocks.php +4 -21
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@wordpress/e2e-tests",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.26.0",
|
4
4
|
"description": "End-To-End (E2E) tests for WordPress.",
|
5
5
|
"author": "The WordPress Contributors",
|
6
6
|
"license": "GPL-2.0-or-later",
|
@@ -23,13 +23,13 @@
|
|
23
23
|
"node": ">=14"
|
24
24
|
},
|
25
25
|
"dependencies": {
|
26
|
-
"@wordpress/e2e-test-utils": "^10.
|
27
|
-
"@wordpress/interactivity": "^5.
|
28
|
-
"@wordpress/interactivity-router": "^1.
|
29
|
-
"@wordpress/jest-console": "^7.
|
30
|
-
"@wordpress/jest-puppeteer-axe": "^6.
|
31
|
-
"@wordpress/scripts": "^27.
|
32
|
-
"@wordpress/url": "^3.
|
26
|
+
"@wordpress/e2e-test-utils": "^10.26.0",
|
27
|
+
"@wordpress/interactivity": "^5.4.0",
|
28
|
+
"@wordpress/interactivity-router": "^1.5.0",
|
29
|
+
"@wordpress/jest-console": "^7.26.0",
|
30
|
+
"@wordpress/jest-puppeteer-axe": "^6.26.0",
|
31
|
+
"@wordpress/scripts": "^27.6.0",
|
32
|
+
"@wordpress/url": "^3.56.0",
|
33
33
|
"chalk": "^4.0.0",
|
34
34
|
"expect-puppeteer": "^4.4.0",
|
35
35
|
"filenamify": "^4.2.0",
|
@@ -46,5 +46,5 @@
|
|
46
46
|
"publishConfig": {
|
47
47
|
"access": "public"
|
48
48
|
},
|
49
|
-
"gitHead": "
|
49
|
+
"gitHead": "ac2b13783c28f959770cf029a797a712f59e1958"
|
50
50
|
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* Plugin Name: Gutenberg Test Delete Installed Fonts
|
4
|
+
* Plugin URI: https://github.com/WordPress/gutenberg
|
5
|
+
* Author: Gutenberg Team
|
6
|
+
*
|
7
|
+
* @package gutenberg-test-delete-installed-fonts
|
8
|
+
*/
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Saves a randomly generated temporary font directory to use for e2e tests.
|
12
|
+
*/
|
13
|
+
function gutenberg_e2e_set_temp_font_dir() {
|
14
|
+
update_option( 'gutenberg_e2e_font_dir', '/e2e_fonts_' . wp_generate_uuid4() );
|
15
|
+
}
|
16
|
+
register_activation_hook( __FILE__, 'gutenberg_e2e_set_temp_font_dir' );
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Uses the randomly generated font directory for the duration of the font tests.
|
20
|
+
*/
|
21
|
+
function gutenberg_filter_e2e_font_dir( $font_dir ) {
|
22
|
+
$subdir = get_option( 'gutenberg_e2e_font_dir' );
|
23
|
+
|
24
|
+
$font_dir['path'] .= $subdir;
|
25
|
+
$font_dir['url'] .= $subdir;
|
26
|
+
$font_dir['basedir'] .= $subdir;
|
27
|
+
$font_dir['baseurl'] .= $subdir;
|
28
|
+
|
29
|
+
return $font_dir;
|
30
|
+
}
|
31
|
+
add_filter( 'font_dir', 'gutenberg_filter_e2e_font_dir' );
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Deletes all user installed fonts, associated font files, the fonts directory, and user global styles typography
|
35
|
+
* setings for the current theme so that we can test uploading/installing fonts in a clean environment.
|
36
|
+
*/
|
37
|
+
function gutenberg_delete_installed_fonts() {
|
38
|
+
$font_family_ids = new WP_Query(
|
39
|
+
array(
|
40
|
+
'post_type' => 'wp_font_family',
|
41
|
+
'posts_per_page' => -1,
|
42
|
+
'fields' => 'ids',
|
43
|
+
)
|
44
|
+
);
|
45
|
+
|
46
|
+
// Delete all font families, their child font faces, and associated font files.
|
47
|
+
foreach ( $font_family_ids->posts as $font_family_id ) {
|
48
|
+
wp_delete_post( $font_family_id, true );
|
49
|
+
}
|
50
|
+
|
51
|
+
// Delete the font directory, which should now be empty.
|
52
|
+
$font_path = wp_get_font_dir()['path'];
|
53
|
+
|
54
|
+
if ( is_dir( $font_path ) ) {
|
55
|
+
rmdir( $font_path );
|
56
|
+
}
|
57
|
+
|
58
|
+
// Delete any installed fonts from global styles.
|
59
|
+
$global_styles_post_id = WP_Theme_JSON_Resolver::get_user_global_styles_post_id();
|
60
|
+
$request = new WP_REST_Request( 'POST', '/wp/v2/global-styles/' . $global_styles_post_id );
|
61
|
+
$request->set_body_params( array( 'settings' => array( 'typography' => array( 'fontFamilies' => array() ) ) ) );
|
62
|
+
|
63
|
+
rest_do_request( $request );
|
64
|
+
}
|
65
|
+
|
66
|
+
// Clean up fonts on plugin activation and deactivation.
|
67
|
+
register_activation_hook( __FILE__, 'gutenberg_delete_installed_fonts' );
|
68
|
+
register_deactivation_hook( __FILE__, 'gutenberg_delete_installed_fonts' );
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://schemas.wp.org/trunk/block.json",
|
3
|
+
"apiVersion": 2,
|
4
|
+
"name": "test/deferred-store",
|
5
|
+
"title": "E2E Interactivity tests - deferred store",
|
6
|
+
"category": "text",
|
7
|
+
"icon": "heart",
|
8
|
+
"description": "",
|
9
|
+
"supports": {
|
10
|
+
"interactivity": true
|
11
|
+
},
|
12
|
+
"textdomain": "e2e-interactivity",
|
13
|
+
"viewScriptModule": "file:./view.js",
|
14
|
+
"render": "file:./render.php"
|
15
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing scope restoration with generators.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
?>
|
8
|
+
|
9
|
+
<div
|
10
|
+
data-wp-interactive="test/deferred-store"
|
11
|
+
<?php echo wp_interactivity_data_wp_context( array( 'text' => '!dlrow ,olleH' ) ); ?>
|
12
|
+
>
|
13
|
+
<span data-wp-text="state.reversedText" data-testid="result"></span>
|
14
|
+
<span data-wp-text="state.reversedTextGetter" data-testid="result-getter"></span>
|
15
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/**
|
2
|
+
* WordPress dependencies
|
3
|
+
*/
|
4
|
+
import { store, getContext } from '@wordpress/interactivity';
|
5
|
+
|
6
|
+
document.addEventListener( 'DOMContentLoaded', () => {
|
7
|
+
setTimeout( () => {
|
8
|
+
store( 'test/deferred-store', {
|
9
|
+
state: {
|
10
|
+
reversedText() {
|
11
|
+
return [ ...getContext().text ].reverse().join( '' );
|
12
|
+
},
|
13
|
+
|
14
|
+
get reversedTextGetter() {
|
15
|
+
return [ ...getContext().text ].reverse().join( '' );
|
16
|
+
},
|
17
|
+
},
|
18
|
+
} );
|
19
|
+
}, 50 );
|
20
|
+
} );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://schemas.wp.org/trunk/block.json",
|
3
|
+
"apiVersion": 2,
|
4
|
+
"name": "test/generator-scope",
|
5
|
+
"title": "E2E Interactivity tests - generator scope",
|
6
|
+
"category": "text",
|
7
|
+
"icon": "heart",
|
8
|
+
"description": "",
|
9
|
+
"supports": {
|
10
|
+
"interactivity": true
|
11
|
+
},
|
12
|
+
"textdomain": "e2e-interactivity",
|
13
|
+
"viewScriptModule": "file:./view.js",
|
14
|
+
"render": "file:./render.php"
|
15
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing scope restoration with generators.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
?>
|
8
|
+
|
9
|
+
<div
|
10
|
+
data-wp-interactive="test/generator-scope"
|
11
|
+
<?php echo wp_interactivity_data_wp_context( array( 'result' => '' ) ); ?>
|
12
|
+
>
|
13
|
+
<input readonly data-wp-bind--value="context.result" data-testid="result" />
|
14
|
+
<button type="button" data-wp-on--click="callbacks.resolve" data-testid="resolve">Async resolve</button>
|
15
|
+
<button type="button" data-wp-on--click="callbacks.reject" data-testid="reject">Async reject</button>
|
16
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* WordPress dependencies
|
3
|
+
*/
|
4
|
+
import { store, getContext } from '@wordpress/interactivity';
|
5
|
+
|
6
|
+
store( 'test/generator-scope', {
|
7
|
+
callbacks: {
|
8
|
+
*resolve() {
|
9
|
+
try {
|
10
|
+
getContext().result = yield Promise.resolve( 'ok' );
|
11
|
+
} catch ( err ) {
|
12
|
+
getContext().result = err.toString();
|
13
|
+
}
|
14
|
+
},
|
15
|
+
*reject() {
|
16
|
+
try {
|
17
|
+
getContext().result = yield Promise.reject( new Error( '😘' ) );
|
18
|
+
} catch ( err ) {
|
19
|
+
getContext().result = err.toString();
|
20
|
+
}
|
21
|
+
},
|
22
|
+
},
|
23
|
+
} );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -1,14 +1,13 @@
|
|
1
1
|
<?php
|
2
2
|
/**
|
3
|
-
* HTML for testing the
|
3
|
+
* HTML for testing the `store` function.
|
4
4
|
*
|
5
5
|
* @package gutenberg-test-interactive-blocks
|
6
6
|
*/
|
7
|
-
|
8
|
-
wp_enqueue_script_module( 'store-view' );
|
9
7
|
?>
|
10
8
|
|
11
9
|
<div data-wp-interactive="test/store">
|
10
|
+
<div data-wp-text="state.0" data-testid="state-0"></div>
|
12
11
|
<div
|
13
12
|
data-testid="non-plain object"
|
14
13
|
data-wp-text="state.isNotProxified"
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -3,18 +3,21 @@
|
|
3
3
|
*/
|
4
4
|
import { store, getElement } from '@wordpress/interactivity';
|
5
5
|
|
6
|
+
// A non-object state should never be allowed.
|
7
|
+
store( 'test/store', { state: [ 'wrong' ] } );
|
6
8
|
|
7
9
|
const { state } = store( 'test/store', {
|
8
10
|
state: {
|
11
|
+
0: 'right',
|
9
12
|
get isNotProxified() {
|
10
13
|
const { ref } = getElement();
|
11
14
|
return state.elementRef === ref;
|
12
|
-
}
|
15
|
+
},
|
13
16
|
},
|
14
17
|
callbacks: {
|
15
18
|
init() {
|
16
19
|
const { ref } = getElement();
|
17
20
|
state.elementRef = ref; // HTMLElement
|
18
|
-
}
|
19
|
-
}
|
20
|
-
} )
|
21
|
+
},
|
22
|
+
},
|
23
|
+
} );
|
@@ -7,8 +7,6 @@
|
|
7
7
|
* @phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
|
8
8
|
*/
|
9
9
|
|
10
|
-
wp_enqueue_script_module( 'store-tag-view' );
|
11
|
-
|
12
10
|
// These variables simulates SSR.
|
13
11
|
$test_store_tag_counter = 'ok' === $attributes['condition'] ? 3 : 0;
|
14
12
|
$test_store_tag_double = $test_store_tag_counter * 2;
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -4,8 +4,6 @@
|
|
4
4
|
*
|
5
5
|
* @package gutenberg-test-interactive-blocks
|
6
6
|
*/
|
7
|
-
|
8
|
-
wp_enqueue_script_module( 'with-scope-view' );
|
9
7
|
?>
|
10
8
|
|
11
9
|
<div data-wp-interactive="with-scope" data-wp-context='{"asyncCounter": 0, "syncCounter": 0}' data-wp-init--a='callbacks.asyncInit' data-wp-init--b='callbacks.syncInit'>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -15,26 +15,8 @@ add_action(
|
|
15
15
|
$block_json_files = glob( __DIR__ . '/interactive-blocks/**/block.json' );
|
16
16
|
|
17
17
|
// Auto register all blocks that were found.
|
18
|
-
foreach ( $block_json_files as $
|
19
|
-
|
20
|
-
$name = basename( $block_folder );
|
21
|
-
|
22
|
-
$view_file = plugin_dir_url( $block_folder ) . $name . '/' . 'view.js';
|
23
|
-
|
24
|
-
wp_register_script_module(
|
25
|
-
$name . '-view',
|
26
|
-
$view_file,
|
27
|
-
array(
|
28
|
-
'@wordpress/interactivity',
|
29
|
-
array(
|
30
|
-
'id' => '@wordpress/interactivity-router',
|
31
|
-
'import' => 'dynamic',
|
32
|
-
),
|
33
|
-
),
|
34
|
-
filemtime( $view_file )
|
35
|
-
);
|
36
|
-
|
37
|
-
register_block_type_from_metadata( $block_folder );
|
18
|
+
foreach ( $block_json_files as $block_json_file ) {
|
19
|
+
register_block_type( $block_json_file );
|
38
20
|
}
|
39
21
|
}
|
40
22
|
|
@@ -49,7 +31,8 @@ add_action(
|
|
49
31
|
// But remove the server directive processing.
|
50
32
|
remove_filter(
|
51
33
|
'render_block_data',
|
52
|
-
'wp_interactivity_process_directives_of_interactive_blocks'
|
34
|
+
'wp_interactivity_process_directives_of_interactive_blocks',
|
35
|
+
100
|
53
36
|
);
|
54
37
|
}
|
55
38
|
}
|