test_inner_reorder.html (3540B)
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <title>Test accessible delayed removal</title> 6 7 <link rel="stylesheet" type="text/css" 8 href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 9 10 11 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 12 13 <script type="application/javascript" 14 src="../common.js"></script> 15 <script type="application/javascript" 16 src="../role.js"></script> 17 <script type="application/javascript" 18 src="../promisified-events.js"></script> 19 20 <script type="application/javascript"> 21 22 async function testInnerReorder() { 23 window.windowUtils.advanceTimeAndRefresh(100); 24 25 let events = waitForOrderedEvents([ 26 [EVENT_HIDE, "c1.1.1"], 27 [EVENT_SHOW, "c1.1.1"], 28 [EVENT_INNER_REORDER, "c1.1"], 29 [EVENT_REORDER, "c1"], 30 ], "events yay"); 31 32 let child = getNode("c1.1.1"); 33 child.remove(); 34 getNode("c1").appendChild(child); 35 36 window.windowUtils.restoreNormalRefresh(); 37 38 await events; 39 } 40 41 async function testInnerReorderEntry() { 42 window.windowUtils.advanceTimeAndRefresh(100); 43 44 let events = waitForOrderedEvents([ 45 [EVENT_HIDE, e => e.accessible.name == "hello"], 46 [EVENT_HIDE, "c2.2"], 47 [EVENT_INNER_REORDER, "c2.1"], 48 [EVENT_REORDER, "c2"], 49 [EVENT_TEXT_VALUE_CHANGE, "c2.1"], 50 ], "events yay"); 51 52 getNode("c2.1.1").remove(); 53 getNode("c2.2").remove(); 54 55 window.windowUtils.restoreNormalRefresh(); 56 57 await events; 58 } 59 60 async function testInnerReorderAriaOwns() { 61 let events = waitForOrderedEvents([ 62 [EVENT_HIDE, "c3.1.1"], 63 [EVENT_SHOW, "c3.1.1"], 64 [EVENT_INNER_REORDER, "c3.1"], 65 [EVENT_REORDER, "c3"], 66 ], "events yay"); 67 68 getNode("c3").setAttribute("aria-owns", "c3.1.1"); 69 70 await events; 71 72 events = waitForOrderedEvents([ 73 [EVENT_HIDE, "c3.1.1"], 74 [EVENT_SHOW, "c3.1.1"], 75 [EVENT_INNER_REORDER, "c3.1"], 76 [EVENT_REORDER, "c3"], 77 ], "events yay"); 78 79 getNode("c3").removeAttribute("aria-owns"); 80 81 await events; 82 } 83 84 async function testInnerContainerRemoved() { 85 window.windowUtils.advanceTimeAndRefresh(100); 86 87 let events = waitForOrderedEvents([ 88 [EVENT_HIDE, "c4.1"], 89 [EVENT_SHOW, "c4.1.1"], 90 [EVENT_REORDER, "c4"], 91 ], "events yay"); 92 93 let child = getNode("c4.1.1"); 94 child.remove(); 95 getNode("c1").appendChild(child); 96 getNode("c4.1").remove(); 97 98 window.windowUtils.restoreNormalRefresh(); 99 100 await events; 101 } 102 103 104 async function doTest() { 105 await testInnerReorder(); 106 107 await testInnerReorderEntry(); 108 109 await testInnerReorderAriaOwns(); 110 111 await testInnerContainerRemoved(); 112 113 SimpleTest.finish(); 114 } 115 116 SimpleTest.waitForExplicitFinish(); 117 addA11yLoadEvent(doTest); 118 </script> 119 </head> 120 <body> 121 122 <p id="display"></p> 123 <div id="content" style="display: none"></div> 124 <pre id="test"> 125 </pre> 126 127 <div id="c1"> 128 <div id="c1.1"><div id="c1.1.1">hello</div></div> 129 </div> 130 131 <div id="c2"> 132 <div role="textbox" contenteditable="true" id="c2.1"> 133 <span id="c2.1.1">hello</span> 134 </div> 135 <input type="submit" id="c2.2"> 136 </div> 137 138 <div id="c3"> 139 <div id="c3.1"><div id="c3.1.1"></div></div> 140 </div> 141 142 <div id="c4"> 143 <div id="c4.1"><div id="c4.1.1">hello</div></div> 144 </div> 145 146 <div id="eventdump"></div> 147 </body> 148 </html>