mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-02-08 01:31:00 +00:00
130 lines
4.9 KiB
HTML
130 lines
4.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Tests pivot functionality in virtual cursors</title>
|
|
<meta charset="utf-8" />
|
|
<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="chrome://mochikit/content/chrome-harness.js">
|
|
</script>
|
|
|
|
<script type="application/javascript" src="../common.js"></script>
|
|
<script type="application/javascript" src="../browser.js"></script>
|
|
<script type="application/javascript" src="../events.js"></script>
|
|
<script type="application/javascript" src="../role.js"></script>
|
|
<script type="application/javascript" src="../states.js"></script>
|
|
<script type="application/javascript" src="../pivot.js"></script>
|
|
<script type="application/javascript" src="../layout.js"></script>
|
|
|
|
<script type="application/javascript">
|
|
var gBrowserWnd = null;
|
|
var gQueue = null;
|
|
|
|
function doTest()
|
|
{
|
|
var rootAcc = getAccessible(browserDocument(), [nsIAccessibleDocument]);
|
|
ok(rootAcc.virtualCursor,
|
|
"root document does not have virtualCursor");
|
|
|
|
var doc = currentTabDocument();
|
|
var docAcc = getAccessible(doc, [nsIAccessibleDocument]);
|
|
|
|
// Test that embedded documents have their own virtual cursor.
|
|
is(docAcc.childDocumentCount, 1, "Expecting one child document");
|
|
ok(docAcc.getChildDocumentAt(0).virtualCursor,
|
|
"child document does not have virtualCursor");
|
|
|
|
gQueue = new eventQueue();
|
|
|
|
gQueue.onFinish = function onFinish()
|
|
{
|
|
closeBrowserWindow();
|
|
}
|
|
|
|
queueTraversalSequence(gQueue, docAcc, HeadersTraversalRule, null,
|
|
['heading-1-1', 'heading-2-1', 'heading-2-2']);
|
|
|
|
queueTraversalSequence(
|
|
gQueue, docAcc, ObjectTraversalRule, null,
|
|
['Main Title', 'Lorem ipsum ',
|
|
'dolor', ' sit amet. Integer vitae urna leo, id ',
|
|
'semper', ' nulla. ', 'Second Section Title',
|
|
'Sed accumsan luctus lacus, vitae mollis arcu tristique vulputate.',
|
|
'An ', 'embedded', ' document.', 'Hide me', 'Link 1', 'Link 2',
|
|
'Link 3', 'Hello', 'World']);
|
|
|
|
// Just a random smoke test to see if our setTextRange works.
|
|
gQueue.push(
|
|
new setVCRangeInvoker(
|
|
docAcc,
|
|
getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText),
|
|
[2,6]));
|
|
|
|
gQueue.push(new removeVCPositionInvoker(
|
|
docAcc, doc.getElementById('hide-me')));
|
|
|
|
gQueue.push(new removeVCRootInvoker(
|
|
doc.getElementById('links')));
|
|
|
|
var [x, y] = getBounds(getAccessible(doc.getElementById('heading-1-1')));
|
|
gQueue.push(new moveVCCoordInvoker(docAcc, x + 1, y + 1, true,
|
|
HeadersTraversalRule, 'heading-1-1'));
|
|
|
|
// Already on the point, so we should not get a move event.
|
|
gQueue.push(new moveVCCoordInvoker(docAcc, x + 1, y + 1, true,
|
|
HeadersTraversalRule, false));
|
|
|
|
// Attempting a coordinate outside any header, should not move.
|
|
gQueue.push(new moveVCCoordInvoker(docAcc, x - 1, y - 1, true,
|
|
HeadersTraversalRule, false));
|
|
|
|
// Attempting a coordinate outside any header, should move to null
|
|
gQueue.push(new moveVCCoordInvoker(docAcc, x - 1, y - 1, false,
|
|
HeadersTraversalRule, null));
|
|
|
|
queueTraversalSequence(
|
|
gQueue, docAcc, ObjectTraversalRule,
|
|
getAccessible(doc.getElementById('paragraph-1')),
|
|
['Lorem ipsum ', 'dolor', ' sit amet. Integer vitae urna leo, id ',
|
|
'semper', ' nulla. ']);
|
|
|
|
gQueue.push(new setModalRootInvoker(docAcc, docAcc.parent,
|
|
NS_ERROR_INVALID_ARG));
|
|
|
|
// Put cursor in an ignored subtree
|
|
// set isFromUserInput to false, just to test..
|
|
gQueue.push(new setVCPosInvoker(docAcc, null, null,
|
|
getAccessible(doc.getElementById("hidden-link")),
|
|
false));
|
|
// Next item shoud be outside of that subtree
|
|
gQueue.push(new setVCPosInvoker(docAcc, "moveNext", ObjectTraversalRule, "An "));
|
|
|
|
gQueue.invoke();
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addLoadEvent(function () {
|
|
/* We open a new browser because we need to test with a top-level content
|
|
document. */
|
|
openBrowserWindow(
|
|
doTest,
|
|
getRootDirectory(window.location.href) + "doc_virtualcursor.html");
|
|
});
|
|
</script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<a target="_blank"
|
|
title="Introduce virtual cursor/soft focus functionality to a11y API"
|
|
href="https://bugzilla.mozilla.org/show_bug.cgi?id=698823">Mozilla Bug 698823</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test">
|
|
</pre>
|
|
</body>
|
|
</html>
|