OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <meta charset="utf-8"> | 4 <meta charset="utf-8"> |
5 <script src="../../../resources/js-test.js"></script> | 5 <script src="../../../resources/js-test.js"></script> |
6 <script src="../resources/common-setrangetext.js"></script> | 6 <script src="../resources/common-setrangetext.js"></script> |
7 </head> | 7 </head> |
8 <body> | 8 <body> |
| 9 <input type="number" id="number"> |
9 <script> | 10 <script> |
10 description("Test setRangeText() method is not available in number inputs."); | 11 description("Test selection API on input type number."); |
11 runTestsShouldFail("input", { type: "number" }); | 12 var element = document.getElementById('number'); |
| 13 debug("setRangeText() with only one parameter."); |
| 14 |
| 15 evalAndLog("element.value = '0123456789'"); |
| 16 evalAndLog("element.setSelectionRange(2, 5)"); |
| 17 evalAndLog("element.setRangeText('432')"); |
| 18 shouldBeEqualToString("element.value", "0143256789"); |
| 19 shouldBe("element.selectionStart", "2"); |
| 20 shouldBe("element.selectionEnd", "5"); |
| 21 evalAndLog("element.setRangeText('4321')"); |
| 22 shouldBeEqualToString("element.value", "01432156789"); |
| 23 shouldBe("element.selectionStart", "2"); |
| 24 shouldBe("element.selectionEnd", "6"); |
| 25 evalAndLog("element.setRangeText('43')"); |
| 26 shouldBeEqualToString("element.value", "014356789"); |
| 27 shouldBe("element.selectionStart", "2"); |
| 28 shouldBe("element.selectionEnd", "4"); |
| 29 evalAndLog("element.setRangeText('')"); |
| 30 shouldBeEqualToString("element.value", "0156789"); |
| 31 shouldBe("element.selectionStart", "2"); |
| 32 shouldBe("element.selectionEnd", "2"); |
| 33 |
| 34 debug("\nsetRangeText() with 'select' as the selectMode."); |
| 35 evalAndLog("element.value = '0123456789'"); |
| 36 evalAndLog("element.setSelectionRange(0, 0)"); |
| 37 evalAndLog("element.setRangeText('432', 2, 5, 'select')"); |
| 38 shouldBeEqualToString("element.value", "0143256789"); |
| 39 shouldBe("element.selectionStart", "2"); |
| 40 shouldBe("element.selectionEnd", "5"); |
| 41 |
| 42 evalAndLog("element.value = '0123456789'"); |
| 43 evalAndLog("element.setSelectionRange(0, 0)"); |
| 44 evalAndLog("element.setRangeText('987', 5, 10, 'select')"); |
| 45 shouldBeEqualToString("element.value", "01234987"); |
| 46 shouldBe("element.selectionStart", "5"); |
| 47 shouldBe("element.selectionEnd", "8"); |
| 48 |
| 49 evalAndLog("element.value = '0123456789'"); |
| 50 evalAndLog("element.setSelectionRange(0, 0)"); |
| 51 evalAndLog("element.setRangeText('987', 1, 2, 'select')"); |
| 52 shouldBeEqualToString("element.value", "098723456789"); |
| 53 shouldBe("element.selectionStart", "1"); |
| 54 shouldBe("element.selectionEnd", "4"); |
| 55 |
| 56 evalAndLog("element.value = '0123456789'"); |
| 57 evalAndLog("element.setSelectionRange(0, 0)"); |
| 58 evalAndLog("element.setRangeText('', 1, 9, 'select')"); |
| 59 shouldBeEqualToString("element.value", "09"); |
| 60 shouldBe("element.selectionStart", "1"); |
| 61 shouldBe("element.selectionEnd", "1"); |
| 62 |
| 63 debug("\nsetRangeText() with 'start' as the selectMode."); |
| 64 evalAndLog("element.value = '0123456789'"); |
| 65 evalAndLog("element.setSelectionRange(0, 0)"); |
| 66 evalAndLog("element.setRangeText('432', 2, 6, 'start')"); |
| 67 shouldBeEqualToString("element.value", "014326789"); |
| 68 shouldBe("element.selectionStart", "2"); |
| 69 shouldBe("element.selectionEnd", "2"); |
| 70 |
| 71 debug("\nsetRangeText() with 'end' as the selectMode."); |
| 72 evalAndLog("element.value = '0123456789'"); |
| 73 evalAndLog("element.setSelectionRange(0, 0)"); |
| 74 evalAndLog("element.setRangeText('123', 10, 10, 'end')"); |
| 75 shouldBeEqualToString("element.value", "0123456789123"); |
| 76 shouldBe("element.selectionStart", "13"); |
| 77 shouldBe("element.selectionEnd", "13"); |
| 78 |
| 79 debug("\nsetRangeText() with 'preserve' as the selectMode."); |
| 80 evalAndLog("element.value = '0123456789'"); |
| 81 evalAndLog("element.setSelectionRange(6, 9)"); |
| 82 evalAndLog("element.setRangeText('9', 1, 2)"); // selectMode is optional and def
aults to preserve. |
| 83 shouldBeEqualToString("element.value", "0923456789"); |
| 84 shouldBe("element.selectionStart", "6"); |
| 85 shouldBe("element.selectionEnd", "9"); |
| 86 |
| 87 evalAndLog("element.value = '0123456789'"); |
| 88 evalAndLog("element.setSelectionRange(6, 9)"); |
| 89 evalAndLog("element.setRangeText('89', 1, 1, 'invalid')"); // Invalid selectMode
values default to preserve. |
| 90 shouldBeEqualToString("element.value", "089123456789"); |
| 91 shouldBe("element.selectionStart", "8"); |
| 92 shouldBe("element.selectionEnd", "11"); |
| 93 |
| 94 evalAndLog("element.value = '0123456789'"); |
| 95 evalAndLog("element.setSelectionRange(6, 9)"); |
| 96 evalAndLog("element.setRangeText('89', 1, 1, undefined)"); // Undefined selectMo
de also default to preserve. |
| 97 shouldBeEqualToString("element.value", "089123456789"); |
| 98 shouldBe("element.selectionStart", "8"); |
| 99 shouldBe("element.selectionEnd", "11"); |
| 100 |
| 101 evalAndLog("element.value = '0123456789'"); |
| 102 evalAndLog("element.setSelectionRange(6, 9)"); |
| 103 evalAndLog("element.setRangeText('9', 1, 3, 'preserve')"); |
| 104 shouldBeEqualToString("element.value", "093456789"); |
| 105 shouldBe("element.selectionStart", "5"); |
| 106 shouldBe("element.selectionEnd", "8"); |
| 107 |
| 108 evalAndLog("element.value = '0123456789'"); |
| 109 evalAndLog("element.setSelectionRange(2, 6)"); |
| 110 evalAndLog("element.setRangeText('9', 1, 4, 'preserve')"); |
| 111 shouldBeEqualToString("element.value", "09456789"); |
| 112 shouldBe("element.selectionStart", "1"); |
| 113 shouldBe("element.selectionEnd", "4"); |
| 114 |
| 115 evalAndLog("element.value = '0123456789'"); |
| 116 evalAndLog("element.setSelectionRange(2, 6)"); |
| 117 evalAndLog("element.setRangeText('9', 4, 6, 'preserve')"); |
| 118 shouldBeEqualToString("element.value", "012396789"); |
| 119 shouldBe("element.selectionStart", "2"); |
| 120 shouldBe("element.selectionEnd", "5"); |
| 121 |
| 122 evalAndLog("element.value = '0123456789'"); |
| 123 evalAndLog("element.setSelectionRange(2, 6)"); |
| 124 evalAndLog("element.setRangeText('956789', 4, 7, 'preserve')"); |
| 125 shouldBeEqualToString("element.value", "0123956789789"); |
| 126 shouldBe("element.selectionStart", "2"); |
| 127 shouldBe("element.selectionEnd", "10"); |
| 128 |
| 129 debug("\nsetRangeText() with various start/end values."); |
| 130 evalAndLog("element.value = '0123456789'"); |
| 131 evalAndLog("element.setSelectionRange(0, 0)"); |
| 132 evalAndLog("element.setRangeText('1', 100, 100, 'select')"); |
| 133 shouldBeEqualToString("element.value", "01234567891"); |
| 134 shouldBe("element.selectionStart", "10"); |
| 135 shouldBe("element.selectionEnd", "11"); |
| 136 |
| 137 evalAndLog("element.value = '0123456789'"); |
| 138 evalAndLog("element.setSelectionRange(0, 0)"); |
| 139 evalAndLog("element.setRangeText('1', 8, 100, 'select')"); |
| 140 shouldBeEqualToString("element.value", "012345671"); |
| 141 shouldBe("element.selectionStart", "8"); |
| 142 shouldBe("element.selectionEnd", "9"); |
| 143 |
| 144 evalAndLog("element.value = '0123456789'"); |
| 145 shouldThrow("element.setRangeText('1', 7, 3)"); |
12 </script> | 146 </script> |
13 </body> | 147 </body> |
14 </html> | 148 </html> |
15 | 149 |
OLD | NEW |