diff options
Diffstat (limited to 'testing/web-platform/tests/workers/importscripts_mime.any.js')
-rw-r--r-- | testing/web-platform/tests/workers/importscripts_mime.any.js | 52 |
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") + "."); +} |