| 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 <p>Test that DOM is updated before DOMNodeInserted is dispatched.</p> | |
| 4 <form> | |
| 5 <select ><option selected>1</option><option >2</option></select> | |
| 6 <select multiple><option selected>1</option><option >2</option></select> | |
| 7 <select size=5><option selected>1</option><option selected>2</option></select> | |
| 8 </form> | |
| 9 <div id=res></div> | |
| 10 <script> | |
| 11 if (window.testRunner) | |
| 12 testRunner.dumpAsText(); | |
| 13 | |
| 14 function log(msg) | |
| 15 { | |
| 16 var r = document.getElementById('res'); | |
| 17 r.innerHTML = r.innerHTML + "<br>" + msg; | |
| 18 } | |
| 19 | |
| 20 var theSelect; | |
| 21 | |
| 22 function testResults(expectedArr) | |
| 23 { | |
| 24 var resultsArr = new Array(theSelect.options.length); | |
| 25 | |
| 26 var i; | |
| 27 for (i=0; i < theSelect.options.length; i++) { | |
| 28 resultsArr[i] = theSelect.options[i].selected; | |
| 29 } | |
| 30 var successString = "Failed"; | |
| 31 var success = false; | |
| 32 if (expectedArr.join() == resultsArr.join()) { | |
| 33 success = true; | |
| 34 successString = "Passed"; | |
| 35 } | |
| 36 | |
| 37 log(successString); | |
| 38 if (!success) { | |
| 39 log("<pre> Expected: " + expectedArr.join() + "<br>" + " Act
ual: " + resultsArr.join() + "</pre>"); | |
| 40 } | |
| 41 } | |
| 42 | |
| 43 function nodeInserted() | |
| 44 { | |
| 45 if (theSelect.options.length != 3) | |
| 46 log("Incorrect options length: " + theSelect.options.length); | |
| 47 theSelect.removeChild(theSelect.firstChild); | |
| 48 if (theSelect.options.length != 2) | |
| 49 log("Incorrect options length: " + theSelect.options.length); | |
| 50 } | |
| 51 | |
| 52 try { | |
| 53 theSelect = document.forms[0].elements[0]; | |
| 54 theSelect.addEventListener("DOMNodeInserted", nodeInserted, true); | |
| 55 theSelect.options.add(new Option("3", "3", false, true), 0); | |
| 56 testResults([true, false], theSelect); | |
| 57 | |
| 58 theSelect = document.forms[0].elements[1]; | |
| 59 theSelect.addEventListener("DOMNodeInserted", nodeInserted, true); | |
| 60 theSelect.options.add(new Option("3", "3", false, true), 0); | |
| 61 testResults([true, false], theSelect); | |
| 62 | |
| 63 theSelect = document.forms[0].elements[2]; | |
| 64 theSelect.addEventListener("DOMNodeInserted", nodeInserted, true); | |
| 65 theSelect.insertBefore(new Option("3", "3", false, true), theSelect.firs
tChild); | |
| 66 testResults([false, false], theSelect); | |
| 67 | |
| 68 } catch (ex) { | |
| 69 alert(ex); | |
| 70 } | |
| 71 </script> | |
| OLD | NEW |