Index: LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html b/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1494b662ecd37899a557675ab0046766e98fc3d5 |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html |
@@ -0,0 +1,58 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>Input element's type attribute changes state</title> |
+<link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> |
+<link rel=help href="https://html.spec.whatwg.org/multipage/#the-input-element"> |
+<script src="../../../../../../resources/testharness.js"></script> |
+<script src="../../../../../../resources/testharnessreport.js"></script> |
+<div id="log"></div> |
+<script> |
+ var types = [ |
+ { type: "hidden" }, |
+ { type: "text", sanitizedValue: " foobar " }, |
+ { type: "search", sanitizedValue: " foobar " }, |
+ { type: "tel", sanitizedValue: " foobar " }, |
+ { type: "url", sanitizedValue: "foobar" }, |
+ { type: "email", sanitizedValue: "foobar" }, |
+ { type: "password", sanitizedValue: " foobar " }, |
+ { type: "datetime", sanitizedValue: "" }, |
+ { type: "date", sanitizedValue: "" }, |
+ { type: "month", sanitizedValue: "" }, |
+ { type: "week", sanitizedValue: "" }, |
+ { type: "time", sanitizedValue: "" }, |
+ { type: "number", sanitizedValue: "" }, |
+ { type: "range", sanitizedValue: "50" }, |
+ { type: "color", sanitizedValue: "#000000" }, |
+ { type: "checkbox" }, |
+ { type: "radio" }, |
+ { type: "file" }, |
+ { type: "submit" }, |
+ { type: "image" }, |
+ { type: "reset" }, |
+ { type: "button" } |
+ ]; |
+ for (var i = 0; i < types.length; i++) { |
+ for (var j = 0; j < types.length; j++) { |
+ if (types[i] != types[j]) { |
+ test(function() { |
+ var input = document.createElement("input"); |
+ input.type = types[i].type; |
+ if (types[i].type === "file") { |
+ assert_throws("INVALID_STATE_ERR", function() { |
+ input.value = " foo\rbar "; |
+ }); |
+ assert_equals(input.value, ""); |
+ } else { |
+ input.value = " foo\rbar "; |
+ input.type = types[j].type; // change state |
+ if (types[j].sanitizedValue || types[j].sanitizedValue === "") { |
+ assert_equals(input.value, types[j].sanitizedValue, "input.value should be " + types[j].sanitizedValue + " after change of state"); |
+ } else { |
+ assert_equals(input.value, " foo\rbar ", "input.value should be ' foo\\rbar ' after change of state"); |
+ } |
+ } |
+ }, "change state from " + types[i].type + " to " + types[j].type); |
+ } |
+ } |
+ } |
+</script> |