Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: LayoutTests/fast/forms/number/number-setrangetext.html

Issue 596723002: Enabling selection API for input type=<file, color, date, email, number> (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Enabling Selection API for input type email and number Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698