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

Side by Side Diff: LayoutTests/fast/js/resources/select-options-remove.js

Issue 23549004: Fix the HTMLSelectElement.prototype.remove() method (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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 | Annotate | Revision Log
OLDNEW
1 description("This test checks the behavior of the remove() method on the select. options object."); 1 description("This test checks the behavior of the remove() method on the select. options object.");
2 2
3 var select1 = document.getElementById("select1"); 3 var select1 = document.getElementById("select1");
4 var value; 4 var value;
5 5
6 debug("1.1 Remove (object) from empty Options"); 6 debug("1.1 Remove (object) from empty Options");
7 value = document.createElement("DIV"); 7 value = document.createElement("DIV");
8 shouldBe("select1.options.remove(value)", "undefined"); 8 shouldBe("select1.options.remove(value)", "undefined");
9 shouldBe("select1.options.length", "0"); 9 shouldBe("select1.options.length", "0");
10 shouldBe("select1.selectedIndex", "-1"); 10 shouldBe("select1.selectedIndex", "-1");
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 shouldBe("select1.selectedIndex", "-1"); 66 shouldBe("select1.selectedIndex", "-1");
67 debug(""); 67 debug("");
68 68
69 debug("1.10 Remove no args from empty Options"); 69 debug("1.10 Remove no args from empty Options");
70 shouldBe("select1.options.remove()", "undefined"); 70 shouldBe("select1.options.remove()", "undefined");
71 shouldBe("select1.options.length", "0"); 71 shouldBe("select1.options.length", "0");
72 shouldBe("select1.selectedIndex", "-1"); 72 shouldBe("select1.selectedIndex", "-1");
73 debug(""); 73 debug("");
74 74
75 debug("1.11 Remove too many args from empty Options"); 75 debug("1.11 Remove too many args from empty Options");
76 shouldBe("select1.options.remove(0, 'foo')", "undefined"); 76 shouldThrow("select1.options.remove(0, 'foo')");
77 shouldBe("select1.options.length", "0"); 77 shouldBe("select1.options.length", "0");
78 shouldBe("select1.selectedIndex", "-1"); 78 shouldBe("select1.selectedIndex", "-1");
79 debug(""); 79 debug("");
80 80
81 debug("1.12 Remove invalid index -2 from empty Options"); 81 debug("1.12 Remove invalid index -2 from empty Options");
82 shouldBe("select1.options.remove(-2)", "undefined"); 82 shouldBe("select1.options.remove(-2)", "undefined");
83 shouldBe("select1.options.length", "0"); 83 shouldBe("select1.options.length", "0");
84 shouldBe("select1.selectedIndex", "-1"); 84 shouldBe("select1.selectedIndex", "-1");
85 debug(""); 85 debug("");
86 86
87 debug("1.13 Remove invalid index -1 from empty Options"); 87 debug("1.13 Remove invalid index -1 from empty Options");
88 shouldBe("select1.options.remove(-1)", "undefined"); 88 shouldBe("select1.options.remove(-1)", "undefined");
89 shouldBe("select1.options.length", "0"); 89 shouldBe("select1.options.length", "0");
90 shouldBe("select1.selectedIndex", "-1"); 90 shouldBe("select1.selectedIndex", "-1");
91 debug(""); 91 debug("");
92 92
93 debug("1.14 Remove index 0 from empty Options"); 93 debug("1.14 Remove index 0 from empty Options");
94 shouldBe("select1.options.remove(0)", "undefined"); 94 shouldBe("select1.options.remove(0)", "undefined");
95 shouldBe("select1.options.length", "0"); 95 shouldBe("select1.options.length", "0");
96 shouldBe("select1.selectedIndex", "-1"); 96 shouldBe("select1.selectedIndex", "-1");
97 debug(""); 97 debug("");
98 98
99 debug("1.15 Remove index 1 from empty Options"); 99 debug("1.15 Remove index 1 from empty Options");
100 shouldBe("select1.options.remove(1)", "undefined"); 100 shouldBe("select1.options.remove(1)", "undefined");
101 shouldBe("select1.options.length", "0"); 101 shouldBe("select1.options.length", "0");
102 shouldBe("select1.selectedIndex", "-1"); 102 shouldBe("select1.selectedIndex", "-1");
103 debug(""); 103 debug("");
104 104
105 debug("1.16 Detach select element");
106 shouldNotBe("select1.parentNode", "null");
107 shouldBe("select1.remove()", "undefined");
108 shouldBeNull("select1.parentNode");
109 debug("");
110
105 // ------------------------------------------------ 111 // ------------------------------------------------
106 112
107 i = 0; 113 i = 0;
108 var select2 = document.getElementById("select2"); 114 var select2 = document.getElementById("select2");
109 115
110 debug("2.1 Remove (object) from non-empty Options"); 116 debug("2.1 Remove (object) from non-empty Options");
111 value = document.createElement("DIV"); 117 value = document.createElement("DIV");
112 shouldBe("select2.options.remove(value)", "undefined"); 118 shouldBe("select2.options.remove(value)", "undefined");
113 shouldBe("select2.options.length", "15"); 119 shouldBe("select2.options.length", "15");
114 shouldBe("select2.selectedIndex", "13"); 120 shouldBe("select2.selectedIndex", "13");
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 debug(""); 194 debug("");
189 195
190 debug("2.11 Remove no args from non-empty Options"); 196 debug("2.11 Remove no args from non-empty Options");
191 shouldBe("select2.options.remove()", "undefined"); 197 shouldBe("select2.options.remove()", "undefined");
192 shouldBe("select2.options.length", "5"); 198 shouldBe("select2.options.length", "5");
193 shouldBe("select2.selectedIndex", "3"); 199 shouldBe("select2.selectedIndex", "3");
194 shouldBe("select2.options[0].value", "'L'"); 200 shouldBe("select2.options[0].value", "'L'");
195 debug(""); 201 debug("");
196 202
197 debug("2.12 Remove too many args from non-empty Options"); 203 debug("2.12 Remove too many args from non-empty Options");
198 shouldBe("select2.options.remove(0, 'foo')", "undefined"); 204 shouldThrow("select2.options.remove(0, 'foo')");
205 shouldBe("select2.options.length", "5");
206 shouldBe("select2.selectedIndex", "3");
207 shouldBe("select2.options[0].value", "'L'");
208 debug("");
209
210 debug("2.13 Remove invalid index -2 from non-empty Options");
211 shouldBe("select2.options.remove(-2)", "undefined");
212 shouldBe("select2.options.length", "5");
213 shouldBe("select2.selectedIndex", "3");
214 shouldBe("select2.options[2].value", "'N'");
215 debug("");
216
217 debug("2.14 Remove invalid index -1 from non-empty Options");
218 shouldBe("select2.options.remove(-1)", "undefined");
219 shouldBe("select2.options.length", "5");
220 shouldBe("select2.selectedIndex", "3");
221 shouldBe("select2.options[3].value", "'O'");
222 debug("");
223
224 debug("2.15 Remove index 0 from non-empty Options");
225 shouldBe("select2.options.remove(0)", "undefined");
199 shouldBe("select2.options.length", "4"); 226 shouldBe("select2.options.length", "4");
200 shouldBe("select2.selectedIndex", "2"); 227 shouldBe("select2.selectedIndex", "2");
201 shouldBe("select2.options[0].value", "'M'"); 228 shouldBe("select2.options[0].value", "'M'");
202 debug(""); 229 debug("");
203 230
204 debug("2.13 Remove invalid index -2 from non-empty Options"); 231 debug("2.16 Remove index 1 from non-empty Options");
205 shouldBe("select2.options.remove(-2)", "undefined"); 232 shouldBe("select2.options.remove(1)", "undefined");
206 shouldBe("select2.options.length", "4"); 233 shouldBe("select2.options.length", "3");
207 shouldBe("select2.selectedIndex", "2"); 234 shouldBe("select2.selectedIndex", "1");
208 shouldBe("select2.options[2].value", "'O'"); 235 shouldBe("select2.options[1].value", "'O'");
209 debug(""); 236 debug("");
210 237
211 debug("2.14 Remove invalid index -1 from non-empty Options"); 238 debug("2.17 Detach select element");
212 shouldBe("select2.options.remove(-1)", "undefined"); 239 shouldNotBe("select2.parentNode", "null");
213 shouldBe("select2.options.length", "4"); 240 shouldBe("select2.remove()", "undefined");
214 shouldBe("select2.selectedIndex", "2"); 241 shouldBeNull("select2.parentNode");
215 shouldBe("select2.options[3].value", "'P'");
216 debug(""); 242 debug("");
217 243
218 debug("2.15 Remove index 0 from non-empty Options");
219 shouldBe("select2.options.remove(0)", "undefined");
220 shouldBe("select2.options.length", "3");
221 shouldBe("select2.selectedIndex", "1");
222 shouldBe("select2.options[0].value", "'N'");
223 debug("");
224
225 debug("2.16 Remove index 1 from non-empty Options");
226 shouldBe("select2.options.remove(1)", "undefined");
227 shouldBe("select2.options.length", "2");
228 shouldBe("select2.selectedIndex", "0");
229 shouldBe("select2.options[1].value", "'P'");
230 debug("");
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/js/select-options-remove-expected.txt » ('j') | Source/core/html/HTMLOptionsCollection.idl » ('J')

Powered by Google App Engine
This is Rietveld 408576698