Dactyloidae/accessible/tests/mochitest/treeupdate/test_bug1276857.html

143 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>DOM mutations test</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="../events.js"></script>
<script type="application/javascript">
function runTest()
{
// children change will recreate the table
this.eventSeq = [
new invokerChecker(EVENT_REORDER, getNode('c1'))
];
this.invoke = function runTest_invoke() {
var tree = {
SECTION: [ // c1
{ TEXT_LEAF: [] }, // Some text
{ TEXT_CONTAINER: [
{ TEXT_LEAF: [] } // something with ..
] },
{ TEXT_LEAF: [] } // More text
]
};
testAccessibleTree('c1', tree);
getNode('c1_t').querySelector('span').remove();
};
this.finalCheck = function runTest_finalCheck() {
var tree = {
SECTION: [ // c1
{ TEXT_LEAF: [] }, // Some text
{ TEXT_LEAF: [] } // More text
]
};
testAccessibleTree('c1', tree);
};
this.getID = function runTest_getID()
{
return 'child DOM node is removed before the layout notifies the a11y about parent removal/show';
};
}
function runShadowTest()
{
// children change will recreate the table
this.eventSeq = [
new invokerChecker(EVENT_REORDER, 'c2')
];
this.invoke = function runShadowTest_invoke() {
var tree = {
SECTION: [ // c2
{ TEXT_LEAF: [] }, // Some text
{ TEXT_CONTAINER: [
{ TEXT_LEAF: [] } // something with ..
] },
{ TEXT_LEAF: [] } // More text
]
};
testAccessibleTree('c2', tree);
gShadowRoot.firstElementChild.querySelector('span').remove();
};
this.finalCheck = function runShadowTest_finalCheck() {
var tree = {
SECTION: [ // c2
{ TEXT_LEAF: [] }, // Some text
{ TEXT_LEAF: [] } // More text
]
};
testAccessibleTree('c2', tree);
};
this.getID = function runShadowTest_getID() {
return 'child DOM node is removed before the layout notifies the a11y about parent removal/show in shadow DOM';
};
}
//enableLogging("tree");
//gA11yEventDumpToConsole = true;
var gQueue = null;
function doTest()
{
gQueue = new eventQueue();
gQueue.push(new runTest());
gQueue.push(new runShadowTest());
gQueue.invoke(); // will call SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTest);
</script>
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div id="c1">
<div id="c1_t" style="display: table" role="presentation">
Some text
<span style="display: table-cell">something with accessibles goes here</span>
More text
</div>
</div>
<template id="tmpl">
<div style="display: table" role="presentation">
Some text
<span style="display: table-cell">something with accessibles goes here</span>
More text
</div>
</template>
<div id="c2"><div id="c2_c" role="presentation"></div></div>
<script>
var gShadowRoot = document.getElementById('c2_c').createShadowRoot();
var tmpl = document.getElementById('tmpl');
gShadowRoot.appendChild(document.importNode(tmpl.content, true));
</script>
</body>
</html>