diff options
Diffstat (limited to 'accessible/tests/mochitest/jsat/test_quicknav_modes.html')
-rw-r--r-- | accessible/tests/mochitest/jsat/test_quicknav_modes.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/accessible/tests/mochitest/jsat/test_quicknav_modes.html b/accessible/tests/mochitest/jsat/test_quicknav_modes.html new file mode 100644 index 000000000..f99b64a84 --- /dev/null +++ b/accessible/tests/mochitest/jsat/test_quicknav_modes.html @@ -0,0 +1,107 @@ +<html> + +<head> + <title>AccessFu test for enabling</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="./jsatcommon.js"></script> + <script type="application/javascript"> + + function prefStart() { + // Start AccessFu via pref. + SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 1]]}); + AccessFuTest.once_log("EventManager.start", AccessFuTest.nextTest); + } + + function nextMode(aCurrentMode, aNextMode) { + return function() { + is(AccessFu.Input.quickNavMode.current, aCurrentMode, + 'initial current mode is correct'); + AccessFu.Input.quickNavMode.next(); + _expectMode(aNextMode, AccessFuTest.nextTest); + } + } + + function prevMode(aCurrentMode, aNextMode) { + return function() { + is(AccessFu.Input.quickNavMode.current, aCurrentMode, + 'initial current mode is correct'); + AccessFu.Input.quickNavMode.previous(); + _expectMode(aNextMode, AccessFuTest.nextTest); + } + } + + function setMode(aModeIndex, aExpectedMode) { + return function() { + SpecialPowers.pushPrefEnv( + {"set": [['accessibility.accessfu.quicknav_index', aModeIndex]]}, + function() { + _expectMode(aExpectedMode, AccessFuTest.nextTest); + }); + } + } + + function reconfigureModes() { + SpecialPowers.pushPrefEnv( + {"set": [['accessibility.accessfu.quicknav_modes', 'Landmark,Button,Entry,Graphic']]}, + function() { + // When the modes are reconfigured, the current mode should + // be set to the first in the new list. + _expectMode('Landmark', AccessFuTest.nextTest); + }); + } + + function _expectMode(aExpectedMode, aCallback) { + if (AccessFu.Input.quickNavMode.current === aExpectedMode) { + ok(true, 'correct mode'); + aCallback(); + } else { + AccessFuTest.once_log('Quicknav mode: ' + aExpectedMode, function() { + ok(true, 'correct mode'); + aCallback(); + }); + } + } + + // Listen for initial 'EventManager.start' and disable AccessFu. + function prefStop() { + ok(AccessFu._enabled, "AccessFu was started via preference."); + AccessFuTest.once_log("EventManager.stop", () => AccessFuTest.finish()); + SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 0]]}); + } + + function doTest() { + AccessFuTest.addFunc(prefStart); + AccessFuTest.addFunc(nextMode('Link', 'Heading')); + AccessFuTest.addFunc(nextMode('Heading', 'FormElement')); + AccessFuTest.addFunc(nextMode('FormElement', 'Link')); + AccessFuTest.addFunc(nextMode('Link', 'Heading')); + AccessFuTest.addFunc(prevMode('Heading', 'Link')); + AccessFuTest.addFunc(prevMode('Link', 'FormElement')); + AccessFuTest.addFunc(setMode(1, 'Heading')); + AccessFuTest.addFunc(reconfigureModes); + AccessFuTest.addFunc(prefStop); + AccessFuTest.waitForExplicitFinish(); + AccessFuTest.runTests([ // Will call SimpleTest.finish(); + ['accessibility.accessfu.quicknav_modes', 'Link,Heading,FormElement']]); + } + + SimpleTest.waitForExplicitFinish(); + addA11yLoadEvent(doTest); + </script> + +</head> +<body> + <a target="_blank" + href="https://bugzilla.mozilla.org/show_bug.cgi?id=811307" + title="[AccessFu] Add mochitest for enabling"> + Mozilla Bug 811307 + </a> +</body> +</html>
\ No newline at end of file |