| <script src=../resources/js-test.js></script> |
| <body id=body> |
| |
| <input type=number id=number1> |
| <input type=number id=number2> |
| |
| <p id=console</div> |
| |
| <script> |
| |
| description("Tests that the incrementor control as part of input type=number is garbage-collected when the input is deleted or changed."); |
| |
| if (window.accessibilityController) { |
| |
| // If we delete an input type=number, the incrementor should be detached. |
| var axincrementor; |
| (function() { |
| var number = document.getElementById("number1"); |
| number.focus(); |
| var axnumber = accessibilityController.focusedElement; |
| axincrementor = axnumber.childAtIndex(0); |
| shouldBe("axincrementor.role", "\"AXRole: AXSpinButton\""); |
| number.parentElement.removeChild(number); |
| })(); |
| gc(); |
| shouldBe("axincrementor.role", "\"AXRole: AXUnknown\""); |
| |
| // If change an input type=number to type=text, the incrementor should be detached. |
| var axincrementor; |
| (function() { |
| var number = document.getElementById("number2"); |
| number.focus(); |
| var axnumber = accessibilityController.focusedElement; |
| axincrementor = axnumber.childAtIndex(0); |
| shouldBe("axincrementor.role", "\"AXRole: AXSpinButton\""); |
| number.setAttribute('type', 'text'); |
| })(); |
| gc(); |
| shouldBe("axincrementor.role", "\"AXRole: AXUnknown\""); |
| } |
| |
| </script> |