OLD | NEW |
| (Empty) |
1 <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=13287">bug 13287</a
>: | |
2 Cannot change SELECT to a dynamically created option.</p> | |
3 <form> | |
4 <select onchange="onChange()"><option selected>FAILURE</option></select> | |
5 <select onchange="onChange()"><option selected>FAILURE</option></select> | |
6 <select onchange="onChange()"><option selected>SUCCESS</option></select> | |
7 <select onchange="onChange()" size=2><option selected>FAILURE</option></select> | |
8 <select onchange="onChange()" size=2><option selected>FAILURE</option></select> | |
9 <select onchange="onChange()" size=2><option selected>SUCCESS</option></select> | |
10 <select onchange="onChange()" size=2 multiple><option selected>SELECTED</option>
</select> | |
11 <select onchange="onChange()" size=2 multiple><option selected>SELECTED</option>
</select> | |
12 <select onchange="onChange()" size=2><option>FAILURE</option><option selected>FA
ILURE</option></select> | |
13 <select onchange="onChange()" size=2><option>FAILURE</option></select> | |
14 </form> | |
15 <script> | |
16 function onChange() { | |
17 document.write("<p>FAILURE: onChange fired</p>"); | |
18 } | |
19 | |
20 function testResults(expectedArr, sl) | |
21 { | |
22 var resultsArr = new Array(sl.options.length); | |
23 | |
24 var i; | |
25 for (i=0; i < sl.options.length; i++) { | |
26 resultsArr[i] = sl.options[i].selected; | |
27 } | |
28 var successString = "Failed"; | |
29 var success = false; | |
30 if (expectedArr.join() == resultsArr.join()) { | |
31 success = true; | |
32 successString = "Passed"; | |
33 } | |
34 | |
35 log(successString); | |
36 if (!success) { | |
37 log("<pre> Expected: " + expectedArr.join() + "<br>" + " Act
ual: " + resultsArr.join() + "</pre>"); | |
38 } | |
39 } | |
40 | |
41 if (window.testRunner) | |
42 testRunner.dumpAsText(); | |
43 | |
44 var results = document.createElement('div'); | |
45 results.id = "res"; | |
46 results.appendChild(document.createTextNode("Results:")); | |
47 document.body.appendChild(results); | |
48 | |
49 function log(msg) | |
50 { | |
51 var r = document.getElementById('res'); | |
52 r.innerHTML = r.innerHTML + "<br>" + msg; | |
53 } | |
54 | |
55 try { | |
56 var theSelect = document.forms[0].elements[0]; | |
57 theSelect.options.add(new Option("SUCCESS", "SUCCESS", false, true), 0); | |
58 testResults([true, false], theSelect); | |
59 | |
60 theSelect = document.forms[0].elements[1]; | |
61 theSelect.insertBefore(new Option("SUCCESS", "SUCCESS", false, true), th
eSelect.firstChild); | |
62 testResults([true, false], theSelect); | |
63 | |
64 // defaultSelected doesn't make the element selected when inserted. | |
65 theSelect = document.forms[0].elements[2]; | |
66 theSelect.options.add(new Option("FAILURE", "FAILURE", true, false), 0); | |
67 testResults([false, true], theSelect); | |
68 | |
69 | |
70 theSelect = document.forms[0].elements[3]; | |
71 theSelect.options[0].selected = 1; | |
72 theSelect.options.add(new Option("SUCCESS", "SUCCESS", false, true), 0); | |
73 testResults([true, false], theSelect); | |
74 | |
75 theSelect = document.forms[0].elements[4]; | |
76 theSelect.options[0].selected = 1; | |
77 theSelect.insertBefore(new Option("SUCCESS", "SUCCESS", false, true), th
eSelect.firstChild); | |
78 testResults([true, false], theSelect); | |
79 | |
80 // defaultSelected doesn't make the element selected when inserted. | |
81 theSelect = document.forms[0].elements[5]; | |
82 theSelect.options[0].selected = 1; | |
83 theSelect.options.add(new Option("FAILURE", "FAILURE", true, false), 0); | |
84 testResults([false, true], theSelect); | |
85 | |
86 | |
87 theSelect = document.forms[0].elements[6]; | |
88 theSelect.options.add(new Option("SELECTED", "SELECTED", false, true), 0
); | |
89 testResults([true, true], theSelect); | |
90 | |
91 theSelect = document.forms[0].elements[7]; | |
92 theSelect.insertBefore(new Option("SELECTED", "SELECTED", false, true),
theSelect.firstChild); | |
93 testResults([true, true], theSelect); | |
94 | |
95 | |
96 theSelect = document.forms[0].elements[8]; | |
97 theSelect.replaceChild(new Option("SUCCESS", "SUCCESS", false, true), th
eSelect.firstChild); | |
98 testResults([true, false], theSelect); | |
99 | |
100 | |
101 theSelect = document.forms[0].elements[9]; | |
102 theSelect.appendChild(new Option("SUCCESS", "SUCCESS", false, true)); | |
103 testResults([false, true], theSelect); | |
104 | |
105 } catch (ex) { | |
106 alert(ex); | |
107 } | |
108 </script> | |
OLD | NEW |