<!DOCTYPE html> <html> <head> <title>Stale state testing</title> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="../common.js"></script> <script type="application/javascript" src="../role.js"></script> <script type="application/javascript" src="../states.js"></script> <script type="application/javascript" src="../events.js"></script> <script type="application/javascript"> function addChild(aContainerID) { this.containerNode = getNode(aContainerID); this.childNode = null; this.eventSeq = [ new invokerChecker(EVENT_REORDER, this.containerNode) ]; this.invoke = function addChild_invoke() { this.childNode = document.createElement("div"); this.containerNode.appendChild(this.childNode); } this.finalCheck = function addChild_finalCheck() { // no stale state should be set testStates(this.childNode, 0, 0, 0, EXT_STATE_STALE); } this.getID = function addChild_getID() { return "add child for " + prettyName(aContainerID); } } function removeChildChecker(aInvoker) { this.type = EVENT_HIDE; this.__defineGetter__("target", function() { return aInvoker.child; }); this.check = function removeChildChecker_check() { // stale state should be set testStates(aInvoker.child, 0, EXT_STATE_STALE); } } function removeChild(aContainerID) { this.containerNode = getNode(aContainerID); this.child = null; this.eventSeq = [ new removeChildChecker(this) ]; this.invoke = function removeChild_invoke() { var childNode = this.containerNode.firstChild; this.child = getAccessible(childNode); this.containerNode.removeChild(childNode); } this.getID = function removeChild_getID() { return "remove child from " + prettyName(aContainerID); } } //gA11yEventDumpToConsole = true; //debugging var gQueue = null; function doTest() { gQueue = new eventQueue(); gQueue.push(new addChild("container")); gQueue.push(new removeChild("container")); gQueue.invoke(); // will call SimpleTest.finish() } SimpleTest.waitForExplicitFinish(); addA11yLoadEvent(doTest); </script> </head> <body role=""> <a target="_blank" title="Expose stale state on accessibles unattached from tree" href="https://bugzilla.mozilla.org/show_bug.cgi?id=676267">Mozilla Bug 676267</a> <p id="display"></p> <div id="content" style="display: none"></div> <pre id="test"> </pre> <div id="container"></div> </body> </html>