| <html> |
| <script> |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function runTest() |
| { |
| var s1 = document.getElementById("s1"); |
| s1.size = 1; |
| s1.size = 5; |
| |
| var s2 = document.getElementById("s2"); |
| s2.size = 1; |
| // force layout. |
| document.body.offsetTop; |
| s2.size = 5; |
| |
| var s3 = document.getElementById("s3"); |
| s3.size = 1; |
| setTimeout(function() |
| { |
| s3.size = 5; |
| reportResults(); |
| }, 0); |
| } |
| |
| function reportResults() |
| { |
| var selected1 = s1.selectedIndex; |
| var selected2 = s2.selectedIndex; |
| var selected3 = s3.selectedIndex; |
| document.getElementById("test").innerHTML = "<ul>" + |
| "<li>Changing the size of a select element from 5 to 1 and back 5 should acquire selection of the first item: " + (selected1 == 0 ? "PASS" : "FAIL") + |
| "<li>Forcing layout should not affect the outcome: " + (selected2 == selected1 ? "PASS" : "FAIL") + |
| "<li>And neither should dropping out of the message loop: " + (selected3 == selected1 ? "PASS" : "FAIL") + |
| "</ul>"; |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| </script> |
| <body onload="runTest()"> |
| <div id="test"> |
| <select id="s1" size="5"><option>test</select> |
| <select id="s2" size="5"><option>test</select> |
| <select id="s3" size="5"><option>test</select> |
| </div> |
| </body> |