gecko/accessible/tests/mochitest/test_nsOuterDocAccessible.html
2008-11-04 11:37:46 +08:00

107 lines
3.4 KiB
HTML

<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=441519
-->
<head>
<title>nsOuterDocAccessible chrome tests</title>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
<script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript">
const nsIAccessibleRetrieval = Components.interfaces.nsIAccessibleRetrieval;
const nsIAccessibleRole = Components.interfaces.nsIAccessibleRole;
// needed state flag
const state_focusable =
Components.interfaces.nsIAccessibleStates.STATE_FOCUSABLE;
// needed error return value
const ns_error_invalid_arg = Components.results.NS_ERROR_INVALID_ARG;
var gAccRetrieval = null;
function doTest()
{
gAccRetrieval = Components.classes["@mozilla.org/accessibleRetrieval;1"].
getService(nsIAccessibleRetrieval);
// Get accessible for body tag.
var docAcc = null;
try {
docAcc = gAccRetrieval.getAccessibleFor(document);
} catch(e) {}
ok(docAcc, "No accessible for document!");
if (docAcc) {
var outerDocAcc = null;
try {
outerDocAcc = docAcc.parent;
} catch(e) {}
ok(outerDocAcc, "No internal frame parent for document!");
if (outerDocAcc) {
is(outerDocAcc.role, nsIAccessibleRole.ROLE_INTERNAL_FRAME,
"Wrong role for internal frame!");
// check if it is focusable, not desired.
var state = {}, extraState = {}
outerDocAcc.getState(state, extraState);
is(state.value & state_focusable, 0,
"Wrong focusable state bit for internal frame!");
// see bug 428954: No name wanted for internal frame
// xxx see bug 454636 is(outerDocAcc.name, "", "Wrong name for internal frame!");
// see bug 440770, no actions wanted on outer doc
is(outerDocAcc.numActions, 0,
"Wrong number of actions for internal frame!");
var actionTempStr; // not really used, just needs to receive a value
try {
actionTempStr = outerDocAcc.getActionName(0);
do_throw("No exception thrown for actionName!");
} catch(e) {
ok(e.result, ns_error_invalid_arg,
"Wrong return value for actionName call!");
}
try {
actionTempStr = outerDocAcc.getActionDescription(0);
do_throw("No exception thrown for actionDescription!");
} catch(e) {
ok(e.result, ns_error_invalid_arg,
"Wrong return value for actionDescription call!");
}
try {
outerDocAcc.doAction(0);
do_throw("No exception thrown for doAction!");
} catch(e) {
ok(e.result, ns_error_invalid_arg,
"Wrong return value for doAction call!");
}
}
}
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=441519"
title="nsOuterDocAccessible chrome tests">
Mozilla Bug 441519
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
</body>
</html>