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

Side by Side Diff: LayoutTests/fast/forms/select/select-add.html

Issue 213773003: select.add() should support optgroup adding and before index (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../../resources/js-test.js"></script>
5 </head>
6 <body>
7 <script>
8 description('Test select.add() method');
9
10 debug('Test select');
11 test(false);
12
13 debug('Test select multiple');
14 test(true);
15
16 var select;
17
18 function resetSelect(multiple) {
19 select = document.createElement('select');
tkent 2014/03/27 06:13:35 We usually use four space indentation.
keishi 2014/03/27 06:52:03 Done.
20 select.multiple = multiple;
21 select.appendChild(new Option("0", "0", false, false));
22 select.appendChild(new Option("1", "1", false, false));
23 select.appendChild(new Option("2", "2", false, false));
24 }
25
26 function addOption(index) {
27 select.add(new Option('X', 'X', false, false), index);
28 return getSelectOptions();
29 }
30
31 function getSelectOptions() {
32 var values = [];
tkent 2014/03/27 06:13:35 Ditto.
keishi 2014/03/27 06:52:03 Done.
33 for (var i = 0; i < select.options.length; ++i) {
34 values.push(select.options[i].value);
35 }
36 return values.join(",");
37 }
38
39 function test(multiple) {
40 resetSelect(multiple);
41 shouldBeEqualToString('addOption(0)', 'X,0,1,2');
42
43 resetSelect(multiple);
44 shouldBeEqualToString('addOption(1)', '0,X,1,2');
45
46 resetSelect(multiple);
47 shouldBeEqualToString('addOption(2)', '0,1,X,2');
48
49 resetSelect(multiple);
50 shouldBeEqualToString('addOption(3)', '0,1,2,X');
51
52 resetSelect(multiple);
53 shouldBeEqualToString('addOption(100)', '0,1,2,X');
54
55 resetSelect(multiple);
56 shouldBeEqualToString('addOption(-100)', '0,1,2,X');
57
58 resetSelect(multiple);
59 select.add(new Option('X', 'X', false, false));
60 shouldBeEqualToString('getSelectOptions()', '0,1,2,X');
61
62 resetSelect(multiple);
63 shouldBeEqualToString('addOption(null)', '0,1,2,X');
64
65 resetSelect(multiple);
66 shouldBeEqualToString('addOption(NaN)', 'X,0,1,2');
67
68 resetSelect(multiple);
69 shouldBeEqualToString('addOption(Infinity)', 'X,0,1,2');
70
71 resetSelect(multiple);
72 shouldBeEqualToString('addOption(-Infinity)', 'X,0,1,2');
73
74 resetSelect(multiple);
75 shouldBeEqualToString('addOption("foo")', 'X,0,1,2');
76
77 resetSelect(multiple);
78 shouldThrow('select.add()');
79 shouldThrow('select.add("foo")');
80 shouldThrow('select.add("foo", 0)');
81 shouldThrow('select.add(null)');
82 shouldThrow('select.add(null, 0)');
83
84 resetSelect(multiple);
85 var group = document.createElement('optgroup');
86 group.appendChild(new Option('X', 'X', false, false));
87 group.appendChild(new Option('Y', 'Y', false, false));
88 select.add(group, 1);
89 shouldBeEqualToString('getSelectOptions()', '0,X,Y,1,2');
90 }
91 </script>
92 </body>
93 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/forms/select/select-add-expected.txt » ('j') | Source/core/html/HTMLOptionsCollection.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698