| // META: global=!window,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 (var test_case of test_cases) { |
| test(t => { |
| let import_url = "/workers/support/imported_script.py?mime=" + test_case[0]; |
| if (test_case[1]) { |
| assert_equals(undefined, importScripts(import_url)); |
| } else { |
| assert_throws("NetworkError", _ => { importScripts(import_url) }) |
| } |
| }, "importScripts() requires scripty MIME types: " + test_case[0] + " is " + (test_case[1] ? "allowed" : "blocked") + "."); |
| } |