| <body> |
| <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34520">bug 34520</a>: |
| Assertion failure in CheckedRadioButtons::removeButton when using jQuery 1.4.1. Also tests actual |
| behavior the crashing jQuery was test was checking for.</p> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function gc() |
| { |
| if (window.GCController) |
| return GCController.collect(); |
| |
| for (var i = 0; i < 10000; i++) { // > force garbage collection (FF requires about 9K allocations before a collect) |
| var s = new String("abc"); |
| } |
| } |
| |
| try { |
| var div = document.createElement("div"); |
| div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; |
| |
| var fragment = document.createDocumentFragment(); |
| fragment.appendChild(div.firstChild); |
| |
| var clonedInput = fragment.cloneNode(true).cloneNode(true).lastChild; |
| document.write((clonedInput.checked && clonedInput.getAttribute("checked") == "checked") ? "1. PASS" : "1. FAIL"); |
| document.write("<br>"); |
| |
| // Test 2. |
| div = document.createElement("div"); |
| div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; |
| div.firstChild.checked = false; |
| |
| fragment = document.createDocumentFragment(); |
| fragment.appendChild(div.firstChild); |
| |
| clonedInput = fragment.cloneNode(true).cloneNode(true).lastChild; |
| document.write((!clonedInput.checked && clonedInput.getAttribute("checked") == "checked") ? "2. PASS" : "2. FAIL"); |
| document.write("<br>"); |
| |
| // Test 3. |
| div = document.createElement("div"); |
| div.innerHTML = "<input type='radio' name='radiotest'/>"; |
| div.firstChild.checked = true; |
| |
| fragment = document.createDocumentFragment(); |
| fragment.appendChild(div.firstChild); |
| |
| clonedInput = fragment.cloneNode(true).cloneNode(true).lastChild; |
| document.write((clonedInput.checked && clonedInput.getAttribute("checked") == null) ? "3. PASS" : "3. FAIL"); |
| |
| document.write("<br>DONE"); |
| |
| setTimeout(function() { |
| gc(); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }, 0); |
| } catch (ex) { |
| document.write("FAIL: " + ex); |
| } |
| </script> |
| </body> |