Index: LayoutTests/imported/web-platform-tests/html/semantics/scripting-1/the-script-element/script-languages-02.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/scripting-1/the-script-element/script-languages-02.html b/LayoutTests/imported/web-platform-tests/html/semantics/scripting-1/the-script-element/script-languages-02.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..255ca78135bed4be40687f59e58a1817fa4a3f6e |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/html/semantics/scripting-1/the-script-element/script-languages-02.html |
@@ -0,0 +1,98 @@ |
+<!DOCTYPE html> |
+<title>Script @type: JavaScript types</title> |
+<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com"> |
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#scriptingLanguages"> |
+<script src="../../../../../../resources/testharness.js"></script> |
+<script src="../../../../../../resources/testharnessreport.js"></script> |
+<div id="log"></div> |
+<script> |
+function testAttribute(attr, val, shouldRun) { |
+ test(function() { |
+ assert_false(ran, "ran variable not reset"); |
+ var script = document.createElement("script"); |
+ script.setAttribute(attr, val); |
+ script.textContent = "ran = true;" |
+ document.body.appendChild(script); |
+ assert_equals(ran, shouldRun); |
+ }, "Script should" + (shouldRun ? "" : "n't") + " run with " + attr + "=" + format_value(val)); |
+ ran = false |
+} |
+function testType(type) { |
+ testAttribute("type", type, true); |
+} |
+function testLanguage(lang) { |
+ testAttribute("language", lang, true); |
+} |
+function testTypeIgnored(type) { |
+ testAttribute("type", type, false); |
+} |
+function testLanguageIgnored(lang) { |
+ testAttribute("language", lang, false); |
+} |
+var application = [ |
+ "ecmascript", |
+ "javascript", |
+ "x-ecmascript", |
+ "x-javascript" |
+]; |
+var text = [ |
+ "ecmascript", |
+ "javascript", |
+ "javascript1.0", |
+ "javascript1.1", |
+ "javascript1.2", |
+ "javascript1.3", |
+ "javascript1.4", |
+ "javascript1.5", |
+ "jscript", |
+ "livescript", |
+ "x-ecmascript", |
+ "x-javascript" |
+]; |
+var spaces = [" ", "\t", "\n", "\r", "\f"]; |
+ |
+var ran = false; |
+ |
+// Type attribute |
+ |
+testType(""); |
+testTypeIgnored(" "); |
+ |
+application.map(function(t) { return "application/" + t; }).forEach(testType); |
+application.map(function(t) { return ("application/" + t).toUpperCase(); }).forEach(testType); |
+ |
+spaces.forEach(function(s) { |
+ application.map(function(t) { return "application/" + t + s; }).forEach(testType); |
+ application.map(function(t) { return s + "application/" + t; }).forEach(testType); |
+}) |
+ |
+application.map(function(t) { return "application/" + t + "\0"; }).forEach(testTypeIgnored); |
+application.map(function(t) { return "application/" + t + "\0foo"; }).forEach(testTypeIgnored); |
+ |
+text.map(function(t) { return "text/" + t; }).forEach(testType); |
+text.map(function(t) { return ("text/" + t).toUpperCase(); }).forEach(testType); |
+ |
+spaces.forEach(function(s) { |
+ text.map(function(t) { return "text/" + t + s; }).forEach(testType); |
+ text.map(function(t) { return s + "text/" + t; }).forEach(testType); |
+}) |
+ |
+text.map(function(t) { return "text/" + t + "\0"; }).forEach(testTypeIgnored); |
+text.map(function(t) { return "text/" + t + "\0foo"; }).forEach(testTypeIgnored); |
+ |
+// Language attribute |
+ |
+testLanguage(""); |
+testLanguageIgnored(" "); |
+ |
+text.forEach(testLanguage); |
+text.map(function(t) { return t.toUpperCase(); }).forEach(testLanguage); |
+ |
+text.map(function(t) { return t + " "; }).forEach(testLanguageIgnored); |
+text.map(function(t) { return " " + t; }).forEach(testLanguageIgnored); |
+text.map(function(t) { return t + "xyz"; }).forEach(testLanguageIgnored); |
+text.map(function(t) { return "xyz" + t; }).forEach(testLanguageIgnored); |
+ |
+text.map(function(t) { return t + "\0"; }).forEach(testLanguageIgnored); |
+text.map(function(t) { return t + "\0foo"; }).forEach(testLanguageIgnored); |
+</script> |