diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html new file mode 100644 index 0000000000..284a15f2b2 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script type="module" src="import-meta-url.any.js"></script> + +<script type="module"> +const base = location.href.slice(0, location.href.lastIndexOf('/')); + +test(() => { + assert_equals(import.meta.url, location.href); +}, "import.meta.url in a root inline script"); + +for (const workerType of ['DedicatedWorker', 'SharedWorker']) { + promise_test(async t => { + const worker_request_url = + new URL(`postmessage-worker.js?${workerType}`, location); + let w; + let port; + if (workerType === 'DedicatedWorker') { + w = new Worker(worker_request_url.href, {type: 'module'}); + port = w; + } else { + w = new SharedWorker(worker_request_url.href, {type: 'module'}); + port = w.port; + w.port.start(); + } + w.onerror = t.unreached_func('Worker error'); + const url = await new Promise(resolve => { + port.onmessage = evt => resolve(evt.data); + }); + assert_equals(url, worker_request_url.href); + }, `import.meta.url at top-level module ${workerType}`); +} +</script> |