summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/workers/importscripts_mime.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/workers/importscripts_mime.any.js')
-rw-r--r--testing/web-platform/tests/workers/importscripts_mime.any.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/importscripts_mime.any.js b/testing/web-platform/tests/workers/importscripts_mime.any.js
new file mode 100644
index 0000000000..bfdfc191fd
--- /dev/null
+++ b/testing/web-platform/tests/workers/importscripts_mime.any.js
@@ -0,0 +1,52 @@
+// META: global=worker
+//
+// Tentative test for https://github.com/whatwg/html/issues/3255
+
+let test_cases = [
+ // Supported mimetypes:
+ ["text/javascript", true],
+ ["application/javascript", true],
+ ["text/ecmascript", true],
+
+ // Blocked mimetpyes:
+ ["image/png", false],
+ ["text/csv", false],
+ ["video/mpeg", false],
+
+ // Legacy mimetypes:
+ ["text/html", false],
+ ["text/plain", false],
+ ["application/xml", false],
+ ["application/octet-stream", false],
+
+ // Potato mimetypes:
+ ["text/potato", false],
+ ["potato/text", false],
+ ["aaa/aaa", false],
+ ["zzz/zzz", false],
+
+ // Parameterized mime types:
+ ["text/javascript; charset=utf-8", true],
+ ["text/javascript;charset=utf-8", true],
+ ["text/javascript;bla;bla", true],
+ ["text/csv; charset=utf-8", false],
+ ["text/csv;charset=utf-8", false],
+ ["text/csv;bla;bla", false],
+
+ // Funky capitalization:
+ ["Text/html", false],
+ ["text/Html", false],
+ ["TeXt/HtMl", false],
+ ["TEXT/HTML", false],
+];
+
+for (const [mimeType, isScriptType] of test_cases) {
+ test(t => {
+ let import_url = "/workers/support/imported_script.py?mime=" + mimeType;
+ if (isScriptType) {
+ assert_equals(undefined, importScripts(import_url));
+ } else {
+ assert_throws_dom("NetworkError", _ => { importScripts(import_url) })
+ }
+ }, "importScripts() requires scripty MIME types: " + mimeType + " is " + (isScriptType ? "allowed" : "blocked") + ".");
+}