diff --git a/packages/e2e-tests/plugins/interactive-blocks.php b/packages/e2e-tests/plugins/interactive-blocks.php index fe40ae10d4c05e..f9a089a78e0dfc 100644 --- a/packages/e2e-tests/plugins/interactive-blocks.php +++ b/packages/e2e-tests/plugins/interactive-blocks.php @@ -7,6 +7,13 @@ * @package gutenberg-test-interactive-blocks */ +/* + * Simulates the WordPress core feature that marks the style assets managed by + * the Interactivity API router, which is not available in the WordPress + * version bundled with `wp-env`. + */ +require_once __DIR__ . '/interactive-blocks/router-styles-managed/router-managed-styles.php'; + add_action( 'init', function () { diff --git a/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/block.json b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/block.json new file mode 100644 index 00000000000000..bd7a3eee44b060 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/block.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "test/router-styles-managed", + "title": "E2E Interactivity tests - router styles - Managed wrapper", + "category": "text", + "icon": "heart", + "description": "", + "supports": { + "interactivity": true + }, + "textdomain": "e2e-interactivity", + "viewScriptModule": "file:./view.js", + "viewStyle": "file:./style.css", + "render": "file:./render.php" +} diff --git a/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/render.php b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/render.php new file mode 100644 index 00000000000000..81d81ae99de290 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/render.php @@ -0,0 +1,111 @@ + +
> + +
+ Styles from inner block styles +

Red

+

Green

+

Blue

+
+ + +
+ Styles from this block's own assets + +

Managed from inline

+
+ + +
+ Targets for client-injected styles +

Injected

+ +
+ + + + + + + + +
+ +
+ + + + + + +
diff --git a/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/router-managed-styles.php b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/router-managed-styles.php new file mode 100644 index 00000000000000..c14b8d6fd3b66f --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/router-styles-managed/router-managed-styles.php @@ -0,0 +1,88 @@ +` and `` element + * it renders with an empty `data-wp-router-managed` attribute, so the router + * can tell them apart from the style assets injected at runtime by scripts + * unaware of it. That feature is not available in the WordPress version + * bundled with `wp-env`, so this file reproduces it with an output buffer for + * those pages containing the `test/router-styles-managed` block. + * + * @package gutenberg-test-interactive-blocks + */ + +/** + * Adds the `data-wp-router-managed` attribute to every style asset in the + * passed HTML. + * + * Style elements inside `