Index: LayoutTests/fast/forms/input-type-change3.html |
diff --git a/LayoutTests/fast/forms/input-type-change3.html b/LayoutTests/fast/forms/input-type-change3.html |
index 2d21017922b9d2ebf908f11990b72869762cdaf2..7d7076cf5eec4344462574059450030d250b91c5 100644 |
--- a/LayoutTests/fast/forms/input-type-change3.html |
+++ b/LayoutTests/fast/forms/input-type-change3.html |
@@ -1,59 +1,63 @@ |
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
-<html> |
-<head> |
+<!DOCTYPE HTML> |
<script src="../../resources/js-test.js"></script> |
-</head> |
-<body> |
-<p id="description"></p> |
-<div id="console"></div> |
<script> |
description('Tests for writing and reading .type property of HTMLInputElement.'); |
var input = document.createElement('input'); |
-document.body.appendChild(input); |
// The default type is "text". |
shouldBe('input.type', '"text"'); |
+shouldBeNull("input.getAttribute('type')"); |
-function check(value, expected) |
+function check(value, expected, expectedAttributeValue) |
{ |
input.type = value; |
- if (input.type == expected) |
+ if (input.type === expected) |
testPassed('input.type for "' + value + '" is correctly "' + input.type + '".'); |
else |
testFailed('input.type for "' + value + '" is incorrectly "' + input.type + '", should be "' + expected + '".'); |
+ |
+ if (typeof expectedAttributeValue === "undefined") |
+ expectedAttributeValue = expected; |
+ |
+ if (input.getAttribute('type') === expectedAttributeValue) |
+ testPassed('input.getAttribute("type") for "' + value + '" is correctly "' + expectedAttributeValue + '".'); |
+ else |
+ testFailed('input.getAttribute("type") for "' + value + '" is incorrectly "' + input.getAttribute('type') + '", should be "' + expectedAttributeValue + '".'); |
} |
// The type is not specified explicitly. We can change it to "file". |
check("file", "file"); |
// http://webkit.org/b/57343 |
check("file", "file"); |
-check("FILE", "file"); |
+check("FILE", "file", "FILE"); |
check("text", "text"); |
-check("TEXT", "text"); // input.type must return a lower case value according to DOM Level 2. |
-check(" text ", "text"); |
+check("TEXT", "text", "TEXT"); // input.type must return a lower case value according to DOM Level 2. |
+check(" text ", "text", " text "); |
check("button", "button"); |
-check(" button ", "text"); |
+check(" button ", "text", " button "); |
check("checkbox", "checkbox"); |
check("email", "email"); |
check("file", "email"); // We can't change a concrete type to file for a security reason. |
check("hidden", "hidden"); |
check("image", "image"); |
-check("isindex", "text"); |
+check("isindex", "text", "isindex"); |
check("number", "number"); |
check("password", "password"); |
-check("passwd", "text"); |
+check("passwd", "text", "passwd"); |
check("radio", "radio"); |
check("range", "range"); |
check("reset", "reset"); |
check("search", "search"); |
check("submit", "submit"); |
check("tel", "tel"); |
-check("telephone", "text"); |
+check("telephone", "text", "telephone"); |
check("url", "url"); |
-check("uri", "text"); |
+check("uri", "text", "uri"); |
+// Empty and unknown value handling. |
+check("", "text", ""); |
+check("x-unknown", "text", "x-unknown"); |
+shouldBeNull("input.removeAttribute('type'); input.getAttribute('type')"); |
</script> |
-</body> |
-</html> |