@wordpress/e2e-tests 7.27.0 → 7.29.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/mu-plugins/server-timing.php +91 -0
- package/package.json +9 -9
- package/plugins/interactive-blocks/deferred-store/view.js +1 -1
- package/plugins/interactive-blocks/directive-bind/render.php +1 -0
- package/plugins/interactive-blocks/directive-bind/view.js +1 -0
- package/plugins/interactive-blocks/directive-each/view.js +3 -3
- package/plugins/interactive-blocks/directive-on/render.php +2 -1
- package/plugins/interactive-blocks/directive-on-document/render.php +4 -0
- package/plugins/interactive-blocks/directive-on-document/view.js +8 -0
- package/plugins/interactive-blocks/directive-on-window/render.php +4 -0
- package/plugins/interactive-blocks/directive-on-window/view.js +8 -0
- package/plugins/interactive-blocks/directive-priorities/view.js +2 -2
- package/plugins/interactive-blocks/directive-watch/view.js +1 -1
- package/plugins/interactive-blocks/namespace/block.json +15 -0
- package/plugins/interactive-blocks/namespace/render.php +23 -0
- package/plugins/interactive-blocks/namespace/view.asset.php +1 -0
- package/plugins/interactive-blocks/namespace/view.js +16 -0
- package/plugins/lightbox-allow-editing-false-enabled-false.php +26 -0
package/CHANGELOG.md
CHANGED
@@ -0,0 +1,91 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
add_filter(
|
4
|
+
'template_include',
|
5
|
+
static function ( $template ) {
|
6
|
+
|
7
|
+
global $timestart, $wpdb;
|
8
|
+
|
9
|
+
$server_timing_values = array();
|
10
|
+
$template_start = microtime( true );
|
11
|
+
|
12
|
+
$server_timing_values['wpBeforeTemplate'] = $template_start - $timestart;
|
13
|
+
|
14
|
+
ob_start();
|
15
|
+
|
16
|
+
add_action(
|
17
|
+
'shutdown',
|
18
|
+
static function () use ( $server_timing_values, $template_start, $wpdb ) {
|
19
|
+
$output = ob_get_clean();
|
20
|
+
|
21
|
+
$server_timing_values['wpTemplate'] = microtime( true ) - $template_start;
|
22
|
+
|
23
|
+
$server_timing_values['wpTotal'] = $server_timing_values['wpBeforeTemplate'] + $server_timing_values['wpTemplate'];
|
24
|
+
|
25
|
+
/*
|
26
|
+
* While values passed via Server-Timing are intended to be durations,
|
27
|
+
* any numeric value can actually be passed.
|
28
|
+
* This is a nice little trick as it allows to easily get this information in JS.
|
29
|
+
*/
|
30
|
+
$server_timing_values['wpMemoryUsage'] = memory_get_usage();
|
31
|
+
$server_timing_values['wpDbQueries'] = $wpdb->num_queries;
|
32
|
+
|
33
|
+
$header_values = array();
|
34
|
+
foreach ( $server_timing_values as $slug => $value ) {
|
35
|
+
if ( is_float( $value ) ) {
|
36
|
+
$value = round( $value * 1000.0, 2 );
|
37
|
+
}
|
38
|
+
$header_values[] = sprintf( '%1$s;dur=%2$s', $slug, $value );
|
39
|
+
}
|
40
|
+
header( 'Server-Timing: ' . implode( ', ', $header_values ) );
|
41
|
+
|
42
|
+
echo $output;
|
43
|
+
},
|
44
|
+
PHP_INT_MIN
|
45
|
+
);
|
46
|
+
|
47
|
+
return $template;
|
48
|
+
},
|
49
|
+
PHP_INT_MAX
|
50
|
+
);
|
51
|
+
|
52
|
+
add_action(
|
53
|
+
'admin_init',
|
54
|
+
static function () {
|
55
|
+
global $timestart, $wpdb;
|
56
|
+
|
57
|
+
ob_start();
|
58
|
+
|
59
|
+
add_action(
|
60
|
+
'shutdown',
|
61
|
+
static function () use ( $wpdb, $timestart ) {
|
62
|
+
$output = ob_get_clean();
|
63
|
+
|
64
|
+
$server_timing_values = array();
|
65
|
+
|
66
|
+
$server_timing_values['wpTotal'] = microtime( true ) - $timestart;
|
67
|
+
|
68
|
+
/*
|
69
|
+
* While values passed via Server-Timing are intended to be durations,
|
70
|
+
* any numeric value can actually be passed.
|
71
|
+
* This is a nice little trick as it allows to easily get this information in JS.
|
72
|
+
*/
|
73
|
+
$server_timing_values['wpMemoryUsage'] = memory_get_usage();
|
74
|
+
$server_timing_values['wpDbQueries'] = $wpdb->num_queries;
|
75
|
+
|
76
|
+
$header_values = array();
|
77
|
+
foreach ( $server_timing_values as $slug => $value ) {
|
78
|
+
if ( is_float( $value ) ) {
|
79
|
+
$value = round( $value * 1000.0, 2 );
|
80
|
+
}
|
81
|
+
$header_values[] = sprintf( '%1$s;dur=%2$s', $slug, $value );
|
82
|
+
}
|
83
|
+
header( 'Server-Timing: ' . implode( ', ', $header_values ) );
|
84
|
+
|
85
|
+
echo $output;
|
86
|
+
},
|
87
|
+
PHP_INT_MIN
|
88
|
+
);
|
89
|
+
},
|
90
|
+
PHP_INT_MAX
|
91
|
+
);
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@wordpress/e2e-tests",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.29.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.29.0",
|
27
|
+
"@wordpress/interactivity": "^5.7.0",
|
28
|
+
"@wordpress/interactivity-router": "^1.8.0",
|
29
|
+
"@wordpress/jest-console": "^7.29.0",
|
30
|
+
"@wordpress/jest-puppeteer-axe": "^6.29.0",
|
31
|
+
"@wordpress/scripts": "^27.9.0",
|
32
|
+
"@wordpress/url": "^3.59.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": "42f38f287506a6b3ed8ccba839b18ad066821044"
|
50
50
|
}
|
@@ -147,9 +147,9 @@ store( 'directive-each', {
|
|
147
147
|
state
|
148
148
|
.animalBreeds
|
149
149
|
.forEach( ( { name, breeds } ) => {
|
150
|
-
if ( name === 'Dog') breeds.unshift( 'german shepherd' );
|
151
|
-
if ( name === 'Cat') breeds.unshift( 'maine coon' );
|
152
|
-
if ( name === 'Rat') breeds.unshift( 'satin' );
|
150
|
+
if ( name === 'Dog') {breeds.unshift( 'german shepherd' );}
|
151
|
+
if ( name === 'Cat') {breeds.unshift( 'maine coon' );}
|
152
|
+
if ( name === 'Rat') {breeds.unshift( 'satin' );}
|
153
153
|
} );
|
154
154
|
}
|
155
155
|
}
|
@@ -6,7 +6,8 @@
|
|
6
6
|
*/
|
7
7
|
?>
|
8
8
|
|
9
|
-
|
9
|
+
<?php // A wrong directive name like "data-wp-on--" should not kill the interactivity. ?>
|
10
|
+
<div data-wp-interactive="directive-on" data-wp-on--="">
|
10
11
|
<div>
|
11
12
|
<p data-wp-text="state.counter" data-testid="counter">0</p>
|
12
13
|
<button
|
@@ -24,4 +24,8 @@
|
|
24
24
|
<p data-wp-text="state.counter" data-testid="counter">0</p>
|
25
25
|
</div>
|
26
26
|
</div>
|
27
|
+
<div data-wp-on-document--keydown="actions.keydownHandler" data-wp-on-document--keydown--second="actions.keydownSecondHandler">
|
28
|
+
<p data-wp-text="state.keydownHandler" data-testid="keydownHandler">no</p>
|
29
|
+
<p data-wp-text="state.keydownSecondHandler" data-testid="keydownSecondHandler">no</p>
|
30
|
+
</div>
|
27
31
|
</div>
|
@@ -25,6 +25,8 @@ const { state } = store( 'directive-on-document', {
|
|
25
25
|
counter: 0,
|
26
26
|
isVisible: true,
|
27
27
|
isEventAttached: 'no',
|
28
|
+
keydownHandler: 'no',
|
29
|
+
keydownSecondHandler: 'no',
|
28
30
|
},
|
29
31
|
callbacks: {
|
30
32
|
keydownHandler() {
|
@@ -39,5 +41,11 @@ const { state } = store( 'directive-on-document', {
|
|
39
41
|
state.isEventAttached = 'no';
|
40
42
|
state.isVisible = ! state.isVisible;
|
41
43
|
},
|
44
|
+
keydownHandler: () => {
|
45
|
+
state.keydownHandler = 'yes';
|
46
|
+
},
|
47
|
+
keydownSecondHandler: () => {
|
48
|
+
state.keydownSecondHandler = 'yes';
|
49
|
+
}
|
42
50
|
}
|
43
51
|
} );
|
@@ -21,4 +21,8 @@
|
|
21
21
|
<p data-wp-text="state.counter" data-testid="counter">0</p>
|
22
22
|
</div>
|
23
23
|
</div>
|
24
|
+
<div data-wp-on-window--resize="actions.resizeHandler" data-wp-on-window--resize--second="actions.resizeSecondHandler">
|
25
|
+
<p data-wp-text="state.resizeHandler" data-testid="resizeHandler">no</p>
|
26
|
+
<p data-wp-text="state.resizeSecondHandler" data-testid="resizeSecondHandler">no</p>
|
27
|
+
</div>
|
24
28
|
</div>
|
@@ -25,6 +25,8 @@ const { state } = store( 'directive-on-window', {
|
|
25
25
|
counter: 0,
|
26
26
|
isVisible: true,
|
27
27
|
isEventAttached: 'no',
|
28
|
+
resizeHandler: 'no',
|
29
|
+
resizeSecondHandler: 'no',
|
28
30
|
},
|
29
31
|
callbacks: {
|
30
32
|
resizeHandler() {
|
@@ -39,5 +41,11 @@ const { state } = store( 'directive-on-window', {
|
|
39
41
|
state.isEventAttached = 'no';
|
40
42
|
state.isVisible = ! state.isVisible;
|
41
43
|
},
|
44
|
+
resizeHandler: () => {
|
45
|
+
state.resizeHandler = 'yes';
|
46
|
+
},
|
47
|
+
resizeSecondHandler: () => {
|
48
|
+
state.resizeSecondHandler = 'yes';
|
49
|
+
}
|
42
50
|
}
|
43
51
|
} );
|
@@ -24,8 +24,8 @@ const namespace = 'directive-priorities';
|
|
24
24
|
*/
|
25
25
|
const executionProof = ( n ) => {
|
26
26
|
const el = document.querySelector( '[data-testid="execution order"]' );
|
27
|
-
if ( ! el.textContent ) el.textContent = n;
|
28
|
-
else el.textContent += `, ${ n }`;
|
27
|
+
if ( ! el.textContent ) {el.textContent = n;}
|
28
|
+
else {el.textContent += `, ${ n }`;}
|
29
29
|
};
|
30
30
|
|
31
31
|
/**
|
@@ -13,7 +13,7 @@ directive(
|
|
13
13
|
'show-mock',
|
14
14
|
( { directives: { 'show-mock': showMock }, element, evaluate } ) => {
|
15
15
|
const entry = showMock.find( ( { suffix } ) => suffix === 'default' );
|
16
|
-
if ( ! evaluate( entry ) ) return null;
|
16
|
+
if ( ! evaluate( entry ) ) {return null;}
|
17
17
|
return element;
|
18
18
|
}
|
19
19
|
);
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://schemas.wp.org/trunk/block.json",
|
3
|
+
"apiVersion": 2,
|
4
|
+
"name": "test-namespace/directive-bind",
|
5
|
+
"title": "E2E Interactivity tests - directive bind",
|
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,23 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* HTML for testing the directive `data-wp-bind`.
|
4
|
+
*
|
5
|
+
* @package gutenberg-test-interactive-blocks
|
6
|
+
*/
|
7
|
+
?>
|
8
|
+
|
9
|
+
<div data-wp-interactive="">
|
10
|
+
<a data-wp-bind--href="state.url" data-testid="empty namespace"></a>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div data-wp-interactive="namespace">
|
14
|
+
<a data-wp-bind--href="state.url" data-testid="correct namespace"></a>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div data-wp-interactive="{}">
|
18
|
+
<a data-wp-bind--href="state.url" data-testid="object namespace"></a>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div data-wp-interactive>
|
22
|
+
<a data-wp-bind--href="other::state.url" data-testid="other namespace"></a>
|
23
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?php return array( 'dependencies' => array( '@wordpress/interactivity' ) );
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* Plugin Name: Lightbox Allow Editing False Enabled False
|
4
|
+
* Plugin URI: https://github.com/WordPress/gutenberg
|
5
|
+
* Author: Gutenberg Team
|
6
|
+
*
|
7
|
+
* @package gutenberg-lightbox-allow-editing-false-enabled-false
|
8
|
+
*/
|
9
|
+
|
10
|
+
function filter_theme_json_theme( $theme_json ) {
|
11
|
+
$new_data = array(
|
12
|
+
'version' => 2,
|
13
|
+
'settings' => array(
|
14
|
+
'blocks' => array(
|
15
|
+
'core/image' => array(
|
16
|
+
'lightbox' => array(
|
17
|
+
'allowEditing' => false,
|
18
|
+
'enabled' => false,
|
19
|
+
),
|
20
|
+
),
|
21
|
+
),
|
22
|
+
),
|
23
|
+
);
|
24
|
+
return $theme_json->update_with( $new_data );
|
25
|
+
}
|
26
|
+
add_filter( 'wp_theme_json_data_theme', 'filter_theme_json_theme' );
|