| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p>This page tests that the <tt>maxlength</tt> attribute of the <tt><input></tt> element works correctly. <a href="http://bugs.webkit.org/show_bug.cgi?id=14388">http://bugs.webkit.org/show_bug.cgi?id=14388</a></p> |
| <div id="console"></div> |
| |
| <input id="input"> |
| |
| <script> |
| var implicitMaxLength = 524288; |
| var testString = ""; |
| var input = document.getElementById("input"); |
| |
| function attempt(length, expected) |
| { |
| debug("Attempting to insert " + length + " characters with maxLength = " + input.getAttribute("maxlength") + "."); |
| |
| if (testString.length > length) |
| testString = ""; |
| |
| for (var i = testString.length; i < length; ++i) |
| testString += i % 10; |
| |
| input.value = testString; |
| if (input.value.length == expected) |
| testPassed(""); |
| else |
| testFailed("Expected " + domExpected + " characters to be inserted, but " + input.value.length + " characters were actually inserted."); |
| } |
| |
| var stringLengthsToTest = [0, 5, 100, 101, 200, 524287, 524288, 524289, 530000]; |
| var maxLengthsToTest = ["-1", "100", "524288", "600000"]; |
| |
| for (var i = 0; i < stringLengthsToTest.length; ++i) { |
| var stringLength = stringLengthsToTest[i]; |
| for (var j = 0; j < maxLengthsToTest.length; ++j) { |
| var maxLength = maxLengthsToTest[j]; |
| input.setAttribute("maxlength", maxLength); |
| var expected = Math.min(stringLength, implicitMaxLength); |
| attempt(stringLength, expected); |
| } |
| } |
| |
| debug('Some tests for .maxLength property.'); |
| input = document.createElement("input"); |
| shouldBe("input.maxLength", "-1"); |
| shouldThrowErrorName("input.maxLength = -1", "IndexSizeError"); |
| input.maxLength = 100; |
| shouldBe("input.getAttribute('maxlength')", "'100'"); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |