OLD | NEW |
---|---|
(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> | |
OLD | NEW |