| Index: LayoutTests/fast/forms/number/number-setrangetext.html
|
| diff --git a/LayoutTests/fast/forms/number/number-setrangetext.html b/LayoutTests/fast/forms/number/number-setrangetext.html
|
| index 6afdebacd8ed4713a86828e7012273bb5ed6684b..0d614af48d5857599742956b82f82b5bd4e78ea1 100644
|
| --- a/LayoutTests/fast/forms/number/number-setrangetext.html
|
| +++ b/LayoutTests/fast/forms/number/number-setrangetext.html
|
| @@ -6,9 +6,143 @@
|
| <script src="../resources/common-setrangetext.js"></script>
|
| </head>
|
| <body>
|
| +<input type="number" id="number">
|
| <script>
|
| -description("Test setRangeText() method is not available in number inputs.");
|
| -runTestsShouldFail("input", { type: "number" });
|
| +description("Test selection API on input type number.");
|
| +var element = document.getElementById('number');
|
| +debug("setRangeText() with only one parameter.");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(2, 5)");
|
| +evalAndLog("element.setRangeText('432')");
|
| +shouldBeEqualToString("element.value", "0143256789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "5");
|
| +evalAndLog("element.setRangeText('4321')");
|
| +shouldBeEqualToString("element.value", "01432156789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "6");
|
| +evalAndLog("element.setRangeText('43')");
|
| +shouldBeEqualToString("element.value", "014356789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "4");
|
| +evalAndLog("element.setRangeText('')");
|
| +shouldBeEqualToString("element.value", "0156789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "2");
|
| +
|
| +debug("\nsetRangeText() with 'select' as the selectMode.");
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('432', 2, 5, 'select')");
|
| +shouldBeEqualToString("element.value", "0143256789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "5");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('987', 5, 10, 'select')");
|
| +shouldBeEqualToString("element.value", "01234987");
|
| +shouldBe("element.selectionStart", "5");
|
| +shouldBe("element.selectionEnd", "8");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('987', 1, 2, 'select')");
|
| +shouldBeEqualToString("element.value", "098723456789");
|
| +shouldBe("element.selectionStart", "1");
|
| +shouldBe("element.selectionEnd", "4");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('', 1, 9, 'select')");
|
| +shouldBeEqualToString("element.value", "09");
|
| +shouldBe("element.selectionStart", "1");
|
| +shouldBe("element.selectionEnd", "1");
|
| +
|
| +debug("\nsetRangeText() with 'start' as the selectMode.");
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('432', 2, 6, 'start')");
|
| +shouldBeEqualToString("element.value", "014326789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "2");
|
| +
|
| +debug("\nsetRangeText() with 'end' as the selectMode.");
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('123', 10, 10, 'end')");
|
| +shouldBeEqualToString("element.value", "0123456789123");
|
| +shouldBe("element.selectionStart", "13");
|
| +shouldBe("element.selectionEnd", "13");
|
| +
|
| +debug("\nsetRangeText() with 'preserve' as the selectMode.");
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(6, 9)");
|
| +evalAndLog("element.setRangeText('9', 1, 2)"); // selectMode is optional and defaults to preserve.
|
| +shouldBeEqualToString("element.value", "0923456789");
|
| +shouldBe("element.selectionStart", "6");
|
| +shouldBe("element.selectionEnd", "9");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(6, 9)");
|
| +evalAndLog("element.setRangeText('89', 1, 1, 'invalid')"); // Invalid selectMode values default to preserve.
|
| +shouldBeEqualToString("element.value", "089123456789");
|
| +shouldBe("element.selectionStart", "8");
|
| +shouldBe("element.selectionEnd", "11");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(6, 9)");
|
| +evalAndLog("element.setRangeText('89', 1, 1, undefined)"); // Undefined selectMode also default to preserve.
|
| +shouldBeEqualToString("element.value", "089123456789");
|
| +shouldBe("element.selectionStart", "8");
|
| +shouldBe("element.selectionEnd", "11");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(6, 9)");
|
| +evalAndLog("element.setRangeText('9', 1, 3, 'preserve')");
|
| +shouldBeEqualToString("element.value", "093456789");
|
| +shouldBe("element.selectionStart", "5");
|
| +shouldBe("element.selectionEnd", "8");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(2, 6)");
|
| +evalAndLog("element.setRangeText('9', 1, 4, 'preserve')");
|
| +shouldBeEqualToString("element.value", "09456789");
|
| +shouldBe("element.selectionStart", "1");
|
| +shouldBe("element.selectionEnd", "4");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(2, 6)");
|
| +evalAndLog("element.setRangeText('9', 4, 6, 'preserve')");
|
| +shouldBeEqualToString("element.value", "012396789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "5");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(2, 6)");
|
| +evalAndLog("element.setRangeText('956789', 4, 7, 'preserve')");
|
| +shouldBeEqualToString("element.value", "0123956789789");
|
| +shouldBe("element.selectionStart", "2");
|
| +shouldBe("element.selectionEnd", "10");
|
| +
|
| +debug("\nsetRangeText() with various start/end values.");
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('1', 100, 100, 'select')");
|
| +shouldBeEqualToString("element.value", "01234567891");
|
| +shouldBe("element.selectionStart", "10");
|
| +shouldBe("element.selectionEnd", "11");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +evalAndLog("element.setSelectionRange(0, 0)");
|
| +evalAndLog("element.setRangeText('1', 8, 100, 'select')");
|
| +shouldBeEqualToString("element.value", "012345671");
|
| +shouldBe("element.selectionStart", "8");
|
| +shouldBe("element.selectionEnd", "9");
|
| +
|
| +evalAndLog("element.value = '0123456789'");
|
| +shouldThrow("element.setRangeText('1', 7, 3)");
|
| </script>
|
| </body>
|
| </html>
|
|
|