From 43a97878ce14b72f0981164f87f2e35e14151312 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:22:09 +0200 Subject: Adding upstream version 110.0.1. Signed-off-by: Daniel Baumann --- .../tests/docs/running-tests/testing-polyfills.md | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 testing/web-platform/tests/docs/running-tests/testing-polyfills.md (limited to 'testing/web-platform/tests/docs/running-tests/testing-polyfills.md') diff --git a/testing/web-platform/tests/docs/running-tests/testing-polyfills.md b/testing/web-platform/tests/docs/running-tests/testing-polyfills.md new file mode 100644 index 0000000000..468bfa2e03 --- /dev/null +++ b/testing/web-platform/tests/docs/running-tests/testing-polyfills.md @@ -0,0 +1,67 @@ +# Testing polyfills + +## Preparing the polyfill + +The polyfill script-injection feature currently only supports scripts which +are immediately invoked. The script must be prepared as a single file whose +contents will be inlined into a script tag served as part of every test page. + +If your polyfill is only available as an asynchronous module with dependent +scripts, you can use a tool such as +[microbundle](https://github.com/developit/microbundle) to repackage it as a +single synchronous script file, e.g.: + +```bash +microbundle -f iife -i polyfill/src/main.js -o polyfill.js +``` + +## Running the tests + +Follow the steps for [Running Tests from the Local System](from-local-system) to +set up your test environment. When running tests via the browser or via the +command line, add the `--inject-script=polyfill.js` to either command, e.g. + +Via the browser: + +```bash +./wpt serve --inject-script=polyfill.js +``` + +Then visit http://web-platform.test:8000/ or https://web-platform.test:8443/ to +run the tests in your browser. + +Via the command line: + +```bash +./wpt run --inject-script=polyfill.js [browsername] [tests] +``` + +## Limitations + +Polyfill scripts are injected to an inline script tag which removes itself from +the DOM after executing. This is done by modifying the server response for +documents with a `text/html` MIME type to insert the following before the first tag in +the served response: + +```html +