summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/forms/text/input-maxlength.html
blob: 98038ab6bb98b8b91a2d9a797de6465851525457 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<p>This page tests that the <tt>maxlength</tt> attribute of the <tt>&lt;input&gt;</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");
    input.maxLength = 100;
    shouldBe("input.getAttribute('maxlength')", "'100'");
</script>
</body>
</html>