mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 1367255 - Switch a11y browser tests to async/await. r=surkov
MozReview-Commit-ID: 4ptIIDckcqg
This commit is contained in:
parent
fbd397af34
commit
f0c56bf2da
@ -4,18 +4,18 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized');
|
||||
|
||||
// Accessible object reference will live longer than the scope of this
|
||||
// function.
|
||||
let acc = yield new Promise(resolve => {
|
||||
let acc = await new Promise(resolve => {
|
||||
let intervalId = setInterval(() => {
|
||||
let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
|
||||
if (tabAcc) {
|
||||
@ -41,7 +41,7 @@ add_task(function* () {
|
||||
// a reference to an accessible object.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -51,5 +51,5 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized');
|
||||
|
||||
// Accessible document reference will live longer than the scope of this
|
||||
@ -33,7 +33,7 @@ add_task(function* () {
|
||||
// a reference to an accessible document.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -43,5 +43,5 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized');
|
||||
|
||||
let docAcc = accService.getAccessibleFor(document);
|
||||
@ -18,7 +18,7 @@ add_task(function* () {
|
||||
|
||||
// Accessible object reference will live longer than the scope of this
|
||||
// function.
|
||||
let acc = yield new Promise(resolve => {
|
||||
let acc = await new Promise(resolve => {
|
||||
let intervalId = setInterval(() => {
|
||||
let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
|
||||
if (tabAcc) {
|
||||
@ -44,7 +44,7 @@ add_task(function* () {
|
||||
// references to accessible objects.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Remove a reference to an accessible object.
|
||||
acc = null;
|
||||
@ -53,7 +53,7 @@ add_task(function* () {
|
||||
// a reference to an accessible document.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -63,5 +63,5 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized');
|
||||
|
||||
let docAcc = accService.getAccessibleFor(document);
|
||||
@ -18,7 +18,7 @@ add_task(function* () {
|
||||
|
||||
// Accessible object reference will live longer than the scope of this
|
||||
// function.
|
||||
let acc = yield new Promise(resolve => {
|
||||
let acc = await new Promise(resolve => {
|
||||
let intervalId = setInterval(() => {
|
||||
let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
|
||||
if (tabAcc) {
|
||||
@ -44,7 +44,7 @@ add_task(function* () {
|
||||
// references to accessible objects.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Remove a reference to an accessible document.
|
||||
docAcc = null;
|
||||
@ -53,7 +53,7 @@ add_task(function* () {
|
||||
// a reference to an accessible object.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -63,5 +63,5 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
let docLoaded = waitForEvent(
|
||||
Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
|
||||
@ -14,9 +14,9 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized');
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -26,8 +26,8 @@ add_task(function* () {
|
||||
</head>
|
||||
<body id="body"><div id="div"></div></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
let docLoadedEvent = yield docLoaded;
|
||||
}, async function(browser) {
|
||||
let docLoadedEvent = await docLoaded;
|
||||
let docAcc = docLoadedEvent.accessibleDocument;
|
||||
ok(docAcc, 'Accessible document proxy is created');
|
||||
// Remove unnecessary dangling references
|
||||
@ -49,7 +49,7 @@ add_task(function* () {
|
||||
// is a reference to an accessible proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Remove a reference to an accessible proxy.
|
||||
acc = null;
|
||||
@ -58,7 +58,7 @@ add_task(function* () {
|
||||
// a reference to an accessible document proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -68,9 +68,9 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
let docLoaded = waitForEvent(
|
||||
Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
|
||||
@ -14,9 +14,9 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized');
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -26,8 +26,8 @@ add_task(function* () {
|
||||
</head>
|
||||
<body id="body"><div id="div"></div></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
let docLoadedEvent = yield docLoaded;
|
||||
}, async function(browser) {
|
||||
let docLoadedEvent = await docLoaded;
|
||||
let docAcc = docLoadedEvent.accessibleDocument;
|
||||
ok(docAcc, 'Accessible document proxy is created');
|
||||
// Remove unnecessary dangling references
|
||||
@ -49,7 +49,7 @@ add_task(function* () {
|
||||
// is a reference to an accessible proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Remove a reference to an accessible document proxy.
|
||||
docAcc = null;
|
||||
@ -58,7 +58,7 @@ add_task(function* () {
|
||||
// a reference to an accessible proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -68,9 +68,9 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
info('Creating a service');
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService1 = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService1, 'Service initialized');
|
||||
|
||||
// Add another reference to a11y service. This will not trigger
|
||||
@ -35,7 +35,7 @@ add_task(function* () {
|
||||
forceGC();
|
||||
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -44,5 +44,5 @@ add_task(function* () {
|
||||
ok(!accService2, 'Service is removed');
|
||||
// Force garbage collection that should trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -18,7 +18,7 @@ add_task(function* () {
|
||||
</head>
|
||||
<body></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
info('Creating a service in parent and waiting for service to be created ' +
|
||||
'in content');
|
||||
// Create a11y service in the main process. This will trigger creating of
|
||||
@ -28,7 +28,7 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized in parent');
|
||||
yield Promise.all([parentA11yInit, contentA11yInit]);
|
||||
await Promise.all([parentA11yInit, contentA11yInit]);
|
||||
|
||||
info('Adding additional reference to accessibility service in content ' +
|
||||
'process');
|
||||
@ -52,7 +52,7 @@ add_task(function* () {
|
||||
loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
|
||||
|
||||
// Have some breathing room between a11y service shutdowns.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
info('Removing a service in parent');
|
||||
// Now allow a11y service to shutdown in content.
|
||||
@ -64,9 +64,9 @@ add_task(function* () {
|
||||
// Force garbage collection that should trigger shutdown in both parent and
|
||||
// content.
|
||||
forceGC();
|
||||
yield Promise.all([parentA11yShutdown, contentA11yShutdown]);
|
||||
await Promise.all([parentA11yShutdown, contentA11yShutdown]);
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
});
|
||||
|
@ -4,17 +4,17 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized');
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -24,10 +24,10 @@ add_task(function* () {
|
||||
</head>
|
||||
<body><div id="div" style="visibility: hidden;"></div></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
let onShow = waitForEvent(Ci.nsIAccessibleEvent.EVENT_SHOW, 'div');
|
||||
yield invokeSetStyle(browser, 'div', 'visibility', 'visible');
|
||||
let showEvent = yield onShow;
|
||||
await invokeSetStyle(browser, 'div', 'visibility', 'visible');
|
||||
let showEvent = await onShow;
|
||||
let divAcc = showEvent.accessible;
|
||||
ok(divAcc, 'Accessible proxy is created');
|
||||
// Remove unnecessary dangling references
|
||||
@ -46,7 +46,7 @@ add_task(function* () {
|
||||
// is a reference to an accessible proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -56,9 +56,9 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
let docLoaded = waitForEvent(
|
||||
Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
|
||||
@ -14,9 +14,9 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized');
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -26,8 +26,8 @@ add_task(function* () {
|
||||
</head>
|
||||
<body id="body"></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
let docLoadedEvent = yield docLoaded;
|
||||
}, async function(browser) {
|
||||
let docLoadedEvent = await docLoaded;
|
||||
let docAcc = docLoadedEvent.accessibleDocument;
|
||||
ok(docAcc, 'Accessible document proxy is created');
|
||||
// Remove unnecessary dangling references
|
||||
@ -46,7 +46,7 @@ add_task(function* () {
|
||||
// is a reference to an accessible proxy.
|
||||
forceGC();
|
||||
// Have some breathing room when removing a11y service references.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
// Now allow a11y service to shutdown.
|
||||
canShutdown = true;
|
||||
@ -56,9 +56,9 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should now trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -18,7 +18,7 @@ add_task(function* () {
|
||||
</head>
|
||||
<body></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
info('Creating a service in parent and waiting for service to be created ' +
|
||||
'in content');
|
||||
// Create a11y service in the main process. This will trigger creating of
|
||||
@ -28,7 +28,7 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized in parent');
|
||||
yield Promise.all([parentA11yInit, contentA11yInit]);
|
||||
await Promise.all([parentA11yInit, contentA11yInit]);
|
||||
|
||||
info('Removing a service in parent and waiting for service to be shut ' +
|
||||
'down in content');
|
||||
@ -40,9 +40,9 @@ add_task(function* () {
|
||||
// Force garbage collection that should trigger shutdown in both main and
|
||||
// content process.
|
||||
forceGC();
|
||||
yield Promise.all([parentA11yShutdown, contentA11yShutdown]);
|
||||
await Promise.all([parentA11yShutdown, contentA11yShutdown]);
|
||||
});
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -18,23 +18,23 @@ add_task(function* () {
|
||||
</head>
|
||||
<body></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
info('Creating a service in content');
|
||||
// Create a11y service in the content process.
|
||||
let a11yInit = initPromise(browser);
|
||||
loadFrameScripts(browser, `let accService = Components.classes[
|
||||
'@mozilla.org/accessibilityService;1'].getService(
|
||||
Components.interfaces.nsIAccessibilityService);`);
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
|
||||
info('Removing a service in content');
|
||||
// Remove a11y service reference from the content process.
|
||||
let a11yShutdown = shutdownPromise(browser);
|
||||
// Force garbage collection that should trigger shutdown.
|
||||
loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
});
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Making sure that the e10s is enabled on Windows for testing.
|
||||
yield setE10sPrefs();
|
||||
await setE10sPrefs();
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: `data:text/html,
|
||||
<html>
|
||||
@ -18,7 +18,7 @@ add_task(function* () {
|
||||
</head>
|
||||
<body></body>
|
||||
</html>`
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
info('Creating a service in parent and waiting for service to be created ' +
|
||||
'in content');
|
||||
// Create a11y service in the main process. This will trigger creating of
|
||||
@ -28,7 +28,7 @@ add_task(function* () {
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
ok(accService, 'Service initialized in parent');
|
||||
yield Promise.all([parentA11yInit, contentA11yInit]);
|
||||
await Promise.all([parentA11yInit, contentA11yInit]);
|
||||
|
||||
info('Adding additional reference to accessibility service in content ' +
|
||||
'process');
|
||||
@ -56,10 +56,10 @@ add_task(function* () {
|
||||
// is a reference in a content process.
|
||||
forceGC();
|
||||
loadFrameScripts(browser, `Components.utils.forceGC();`);
|
||||
yield parentA11yShutdown;
|
||||
await parentA11yShutdown;
|
||||
|
||||
// Have some breathing room between a11y service shutdowns.
|
||||
yield new Promise(resolve => executeSoon(resolve));
|
||||
await new Promise(resolve => executeSoon(resolve));
|
||||
|
||||
info('Removing a service in content');
|
||||
// Now allow a11y service to shutdown in content.
|
||||
@ -67,9 +67,9 @@ add_task(function* () {
|
||||
// Remove last reference to a11y service in content and force garbage
|
||||
// collection that should trigger shutdown.
|
||||
loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
|
||||
yield contentA11yShutdown;
|
||||
await contentA11yShutdown;
|
||||
|
||||
// Unsetting e10s related preferences.
|
||||
yield unsetE10sPrefs();
|
||||
await unsetE10sPrefs();
|
||||
});
|
||||
});
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
// Create a11y service inside of the function scope. Its reference should be
|
||||
// released once the anonimous function is called.
|
||||
let a11yInitThenShutdown = initPromise().then(shutdownPromise);
|
||||
@ -17,5 +17,5 @@ add_task(function* () {
|
||||
|
||||
// Force garbage collection that should trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yInitThenShutdown;
|
||||
await a11yInitThenShutdown;
|
||||
});
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(function* () {
|
||||
add_task(async function () {
|
||||
info('Creating a service');
|
||||
// Create a11y service.
|
||||
let a11yInit = initPromise();
|
||||
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized');
|
||||
|
||||
info('Removing a service');
|
||||
@ -20,14 +20,14 @@ add_task(function* () {
|
||||
ok(!accService, 'Service is removed');
|
||||
// Force garbage collection that should trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
|
||||
info('Recreating a service');
|
||||
// Re-create a11y service.
|
||||
a11yInit = initPromise();
|
||||
accService = Cc['@mozilla.org/accessibilityService;1'].getService(
|
||||
Ci.nsIAccessibilityService);
|
||||
yield a11yInit;
|
||||
await a11yInit;
|
||||
ok(accService, 'Service initialized again');
|
||||
|
||||
info('Removing a service again');
|
||||
@ -37,5 +37,5 @@ add_task(function* () {
|
||||
ok(!accService, 'Service is removed again');
|
||||
// Force garbage collection that should trigger shutdown.
|
||||
forceGC();
|
||||
yield a11yShutdown;
|
||||
await a11yShutdown;
|
||||
});
|
||||
|
@ -25,14 +25,14 @@ const defaultAttributes = {
|
||||
/**
|
||||
* Test data has the format of:
|
||||
* {
|
||||
* desc {String} description for better logging
|
||||
* expected {Object} expected attributes for given accessibles
|
||||
* unexpected {Object} unexpected attributes for given accessibles
|
||||
* desc {String} description for better logging
|
||||
* expected {Object} expected attributes for given accessibles
|
||||
* unexpected {Object} unexpected attributes for given accessibles
|
||||
*
|
||||
* action {?Function*} an optional action that yields a change in
|
||||
* attributes
|
||||
* attrs {?Array} an optional list of attributes to update
|
||||
* waitFor {?Number} an optional event to wait for
|
||||
* action {?AsyncFunction} an optional action that awaits a change in
|
||||
* attributes
|
||||
* attrs {?Array} an optional list of attributes to update
|
||||
* waitFor {?Number} an optional event to wait for
|
||||
* }
|
||||
*/
|
||||
const attributesTests = [{
|
||||
@ -46,8 +46,8 @@ const attributesTests = [{
|
||||
}
|
||||
}, {
|
||||
desc: '@line-number attribute is present when textbox is focused',
|
||||
action: function*(browser) {
|
||||
yield invokeFocus(browser, 'textbox');
|
||||
action: async function(browser) {
|
||||
await invokeFocus(browser, 'textbox');
|
||||
},
|
||||
waitFor: EVENT_FOCUS,
|
||||
expected: Object.assign({}, defaultAttributes, { 'line-number': '1' }),
|
||||
@ -90,7 +90,7 @@ const attributesTests = [{
|
||||
*/
|
||||
addAccessibleTask(`
|
||||
<input id="textbox" value="hello">`,
|
||||
function* (browser, accDoc) {
|
||||
async function (browser, accDoc) {
|
||||
let textbox = findAccessibleChildByID(accDoc, 'textbox');
|
||||
for (let { desc, action, attrs, expected, waitFor, unexpected } of attributesTests) {
|
||||
info(desc);
|
||||
@ -101,14 +101,14 @@ addAccessibleTask(`
|
||||
}
|
||||
|
||||
if (action) {
|
||||
yield action(browser);
|
||||
await action(browser);
|
||||
} else if (attrs) {
|
||||
for (let { attr, value } of attrs) {
|
||||
yield invokeSetAttribute(browser, 'textbox', attr, value);
|
||||
await invokeSetAttribute(browser, 'textbox', attr, value);
|
||||
}
|
||||
}
|
||||
|
||||
yield onUpdate;
|
||||
await onUpdate;
|
||||
testAttrs(textbox, expected);
|
||||
testAbsentAttrs(textbox, unexpected);
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ addAccessibleTask(`
|
||||
<p id="description">aria description</p>
|
||||
<p id="description2">another description</p>
|
||||
<img id="image" />`,
|
||||
function*(browser, accDoc) {
|
||||
async function(browser, accDoc) {
|
||||
let imgAcc = findAccessibleChildByID(accDoc, 'image');
|
||||
|
||||
for (let { desc, waitFor, attrs, expected } of tests) {
|
||||
@ -148,10 +148,10 @@ addAccessibleTask(`
|
||||
}
|
||||
if (attrs) {
|
||||
for (let { attr, value } of attrs) {
|
||||
yield invokeSetAttribute(browser, 'image', attr, value);
|
||||
await invokeSetAttribute(browser, 'image', attr, value);
|
||||
}
|
||||
}
|
||||
yield onUpdate;
|
||||
await onUpdate;
|
||||
// When attribute change (alt) triggers reorder event, accessible will
|
||||
// become defunct.
|
||||
if (isDefunct(imgAcc)) {
|
||||
|
@ -318,8 +318,8 @@ const markupTests = [{
|
||||
* accessible, its parent and its content element
|
||||
* id.
|
||||
*/
|
||||
function* updateAccessibleIfNeeded(onEvent, target) {
|
||||
let event = yield onEvent;
|
||||
async function updateAccessibleIfNeeded(onEvent, target) {
|
||||
let event = await onEvent;
|
||||
if (isDefunct(target.acc)) {
|
||||
target.acc = findAccessibleChildByID(event.accessible, target.id);
|
||||
}
|
||||
@ -338,7 +338,7 @@ function* updateAccessibleIfNeeded(onEvent, target) {
|
||||
* @param {Object} rule current attr rule for name calculation
|
||||
* @param {[type]} expected expected name value
|
||||
*/
|
||||
function* testAttrRule(browser, target, rule, expected) {
|
||||
async function testAttrRule(browser, target, rule, expected) {
|
||||
testName(target.acc, expected);
|
||||
let onEvent;
|
||||
if (rule.recreated) {
|
||||
@ -346,9 +346,9 @@ function* testAttrRule(browser, target, rule, expected) {
|
||||
} else if (rule.textchanged) {
|
||||
onEvent = waitForEvent(EVENT_TEXT_INSERTED, target.id);
|
||||
}
|
||||
yield invokeSetAttribute(browser, target.id, rule.attr);
|
||||
await invokeSetAttribute(browser, target.id, rule.attr);
|
||||
if (onEvent) {
|
||||
yield updateAccessibleIfNeeded(onEvent, target);
|
||||
await updateAccessibleIfNeeded(onEvent, target);
|
||||
}
|
||||
}
|
||||
|
||||
@ -364,13 +364,13 @@ function* testAttrRule(browser, target, rule, expected) {
|
||||
* @param {Object} rule current elm rule for name calculation
|
||||
* @param {[type]} expected expected name value
|
||||
*/
|
||||
function* testElmRule(browser, target, rule, expected) {
|
||||
async function testElmRule(browser, target, rule, expected) {
|
||||
testName(target.acc, expected);
|
||||
let onEvent = waitForEvent(EVENT_REORDER, rule.isSibling ?
|
||||
target.parent : target.id);
|
||||
yield ContentTask.spawn(browser, rule.elm, elm =>
|
||||
await ContentTask.spawn(browser, rule.elm, elm =>
|
||||
content.document.querySelector(`${elm}`).remove());
|
||||
yield updateAccessibleIfNeeded(onEvent, target);
|
||||
await updateAccessibleIfNeeded(onEvent, target);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -385,16 +385,16 @@ function* testElmRule(browser, target, rule, expected) {
|
||||
* @param {Object} rule current subtree rule for name calculation
|
||||
* @param {[type]} expected expected name value
|
||||
*/
|
||||
function* testSubtreeRule(browser, target, rule, expected) {
|
||||
async function testSubtreeRule(browser, target, rule, expected) {
|
||||
testName(target.acc, expected);
|
||||
let onEvent = waitForEvent(EVENT_REORDER, target.id);
|
||||
yield ContentTask.spawn(browser, target.id, id => {
|
||||
await ContentTask.spawn(browser, target.id, id => {
|
||||
let elm = content.document.getElementById(id);
|
||||
while (elm.firstChild) {
|
||||
elm.firstChild.remove();
|
||||
}
|
||||
});
|
||||
yield updateAccessibleIfNeeded(onEvent, target);
|
||||
await updateAccessibleIfNeeded(onEvent, target);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -407,7 +407,7 @@ function* testSubtreeRule(browser, target, rule, expected) {
|
||||
* @param {Array} ruleset A list of rules to test a target with
|
||||
* @param {Array} expected A list of expected name value for each rule
|
||||
*/
|
||||
function* testNameRule(browser, target, ruleset, expected) {
|
||||
async function testNameRule(browser, target, ruleset, expected) {
|
||||
for (let i = 0; i < ruleset.length; ++i) {
|
||||
let rule = ruleset[i];
|
||||
let testFn;
|
||||
@ -418,16 +418,16 @@ function* testNameRule(browser, target, ruleset, expected) {
|
||||
} else if (rule.fromsubtree) {
|
||||
testFn = testSubtreeRule;
|
||||
}
|
||||
yield testFn(browser, target, rule, expected[i]);
|
||||
await testFn(browser, target, rule, expected[i]);
|
||||
}
|
||||
}
|
||||
|
||||
markupTests.forEach(({ id, ruleset, markup, expected }) =>
|
||||
addAccessibleTask(markup, function*(browser, accDoc) {
|
||||
addAccessibleTask(markup, async function(browser, accDoc) {
|
||||
// Find a target accessible from an accessible subtree.
|
||||
let acc = findAccessibleChildByID(accDoc, id);
|
||||
// Find target's parent accessible from an accessible subtree.
|
||||
let parent = getAccessibleDOMNodeID(acc.parent);
|
||||
let target = { id, parent, acc };
|
||||
yield testNameRule(browser, target, rules[ruleset], expected);
|
||||
await testNameRule(browser, target, rules[ruleset], expected);
|
||||
}));
|
||||
|
@ -22,7 +22,7 @@ const attrRelationsSpec = [
|
||||
['aria-flowto', RELATION_FLOWS_TO, RELATION_FLOWS_FROM]
|
||||
];
|
||||
|
||||
function* testRelated(browser, accDoc, attr, hostRelation, dependantRelation) {
|
||||
async function testRelated(browser, accDoc, attr, hostRelation, dependantRelation) {
|
||||
let host = findAccessibleChildByID(accDoc, 'host');
|
||||
let dependant1 = findAccessibleChildByID(accDoc, 'dependant1');
|
||||
let dependant2 = findAccessibleChildByID(accDoc, 'dependant2');
|
||||
@ -58,7 +58,7 @@ function* testRelated(browser, accDoc, attr, hostRelation, dependantRelation) {
|
||||
|
||||
if (attrs) {
|
||||
for (let { key, value } of attrs) {
|
||||
yield invokeSetAttribute(browser, 'host', key, value);
|
||||
await invokeSetAttribute(browser, 'host', key, value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,9 +75,9 @@ addAccessibleTask(`
|
||||
<div id="dependant1">label</div>
|
||||
<div id="dependant2">label2</div>
|
||||
<div role="checkbox" id="host"></div>`,
|
||||
function* (browser, accDoc) {
|
||||
async function (browser, accDoc) {
|
||||
for (let spec of attrRelationsSpec) {
|
||||
yield testRelated(browser, accDoc, ...spec);
|
||||
await testRelated(browser, accDoc, ...spec);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@ -91,15 +91,15 @@ const extraStateTests = [{
|
||||
expected: [0, EXT_STATE_ENABLED]
|
||||
}];
|
||||
|
||||
function* runStateTests(browser, accDoc, id, tests) {
|
||||
async function runStateTests(browser, accDoc, id, tests) {
|
||||
let acc = findAccessibleChildByID(accDoc, id);
|
||||
for (let { desc, attrs, expected } of tests) {
|
||||
info(desc);
|
||||
let onUpdate = waitForEvent(EVENT_STATE_CHANGE, id);
|
||||
for (let { attr, value } of attrs) {
|
||||
yield invokeSetAttribute(browser, id, attr, value);
|
||||
await invokeSetAttribute(browser, id, attr, value);
|
||||
}
|
||||
yield onUpdate;
|
||||
await onUpdate;
|
||||
testStates(acc, ...expected);
|
||||
}
|
||||
}
|
||||
@ -111,9 +111,9 @@ addAccessibleTask(`
|
||||
<input id="checkbox" type="checkbox">
|
||||
<input id="file" type="file">
|
||||
<input id="text">`,
|
||||
function* (browser, accDoc) {
|
||||
yield runStateTests(browser, accDoc, 'checkbox', attributeTests);
|
||||
yield runStateTests(browser, accDoc, 'file', ariaTests);
|
||||
yield runStateTests(browser, accDoc, 'text', extraStateTests);
|
||||
async function (browser, accDoc) {
|
||||
await runStateTests(browser, accDoc, 'checkbox', attributeTests);
|
||||
await runStateTests(browser, accDoc, 'file', ariaTests);
|
||||
await runStateTests(browser, accDoc, 'text', extraStateTests);
|
||||
}
|
||||
);
|
||||
|
@ -10,12 +10,12 @@ loadScripts({ name: 'value.js', dir: MOCHITESTS_DIR });
|
||||
/**
|
||||
* Test data has the format of:
|
||||
* {
|
||||
* desc {String} description for better logging
|
||||
* id {String} given accessible DOMNode ID
|
||||
* expected {String} expected value for a given accessible
|
||||
* action {?Function*} an optional action that yields a value change
|
||||
* attrs {?Array} an optional list of attributes to update
|
||||
* waitFor {?Number} an optional value change event to wait for
|
||||
* desc {String} description for better logging
|
||||
* id {String} given accessible DOMNode ID
|
||||
* expected {String} expected value for a given accessible
|
||||
* action {?AsyncFunction} an optional action that awaits a value change
|
||||
* attrs {?Array} an optional list of attributes to update
|
||||
* waitFor {?Number} an optional value change event to wait for
|
||||
* }
|
||||
*/
|
||||
const valueTests = [{
|
||||
@ -25,9 +25,9 @@ const valueTests = [{
|
||||
}, {
|
||||
desc: 'Value should update to 3rd when 3 is pressed',
|
||||
id: 'select',
|
||||
action: function*(browser) {
|
||||
yield invokeFocus(browser, 'select');
|
||||
yield BrowserTestUtils.synthesizeKey('3', {}, browser);
|
||||
action: async function(browser) {
|
||||
await invokeFocus(browser, 'select');
|
||||
await BrowserTestUtils.synthesizeKey('3', {}, browser);
|
||||
},
|
||||
waitFor: EVENT_TEXT_VALUE_CHANGE,
|
||||
expected: '3rd'
|
||||
@ -102,9 +102,9 @@ const valueTests = [{
|
||||
}, {
|
||||
desc: 'Value should change when slider is moved',
|
||||
id: 'range',
|
||||
action: function*(browser) {
|
||||
yield invokeFocus(browser, 'range');
|
||||
yield BrowserTestUtils.synthesizeKey('VK_LEFT', {}, browser);
|
||||
action: async function(browser) {
|
||||
await invokeFocus(browser, 'range');
|
||||
await BrowserTestUtils.synthesizeKey('VK_LEFT', {}, browser);
|
||||
},
|
||||
waitFor: EVENT_VALUE_CHANGE,
|
||||
expected: '5'
|
||||
@ -124,7 +124,7 @@ addAccessibleTask(`
|
||||
<input id="combobox" role="combobox" aria-autocomplete="inline">
|
||||
<progress id="progress" value="22" max="100"></progress>
|
||||
<input type="range" id="range" min="0" max="10" value="6">`,
|
||||
function* (browser, accDoc) {
|
||||
async function (browser, accDoc) {
|
||||
for (let { desc, id, action, attrs, expected, waitFor } of valueTests) {
|
||||
info(desc);
|
||||
let acc = findAccessibleChildByID(accDoc, id);
|
||||
@ -135,14 +135,14 @@ addAccessibleTask(`
|
||||
}
|
||||
|
||||
if (action) {
|
||||
yield action(browser);
|
||||
await action(browser);
|
||||
} else if (attrs) {
|
||||
for (let { attr, value } of attrs) {
|
||||
yield invokeSetAttribute(browser, id, attr, value);
|
||||
await invokeSetAttribute(browser, id, attr, value);
|
||||
}
|
||||
}
|
||||
|
||||
yield onUpdate;
|
||||
await onUpdate;
|
||||
if (Array.isArray(expected)) {
|
||||
acc.QueryInterface(nsIAccessibleValue);
|
||||
testValue(acc, ...expected);
|
||||
|
@ -8,10 +8,10 @@
|
||||
* Test caret move event and its interface:
|
||||
* - caretOffset
|
||||
*/
|
||||
addAccessibleTask('<input id="textbox" value="hello"/>', function*(browser) {
|
||||
addAccessibleTask('<input id="textbox" value="hello"/>', async function(browser) {
|
||||
let onCaretMoved = waitForEvent(EVENT_TEXT_CARET_MOVED, 'textbox');
|
||||
yield invokeFocus(browser, 'textbox');
|
||||
let event = yield onCaretMoved;
|
||||
await invokeFocus(browser, 'textbox');
|
||||
let event = await onCaretMoved;
|
||||
|
||||
let caretMovedEvent = event.QueryInterface(nsIAccessibleCaretMoveEvent);
|
||||
is(caretMovedEvent.caretOffset, 5,
|
||||
|
@ -16,11 +16,11 @@ addAccessibleTask(`
|
||||
<div id="to-hide"></div>
|
||||
<div id="next"></div>
|
||||
</div>`,
|
||||
function*(browser, accDoc) {
|
||||
async function(browser, accDoc) {
|
||||
let acc = findAccessibleChildByID(accDoc, 'to-hide');
|
||||
let onHide = waitForEvent(EVENT_HIDE, acc);
|
||||
yield invokeSetStyle(browser, 'to-hide', 'visibility', 'hidden');
|
||||
let event = yield onHide;
|
||||
await invokeSetStyle(browser, 'to-hide', 'visibility', 'hidden');
|
||||
let event = await onHide;
|
||||
let hideEvent = event.QueryInterface(Ci.nsIAccessibleHideEvent);
|
||||
|
||||
is(getAccessibleDOMNodeID(hideEvent.targetParent), 'parent',
|
||||
|
@ -8,8 +8,8 @@
|
||||
* Test show event
|
||||
*/
|
||||
addAccessibleTask('<div id="div" style="visibility: hidden;"></div>',
|
||||
function*(browser) {
|
||||
async function(browser) {
|
||||
let onShow = waitForEvent(EVENT_SHOW, 'div');
|
||||
yield invokeSetStyle(browser, 'div', 'visibility', 'visible');
|
||||
yield onShow;
|
||||
await invokeSetStyle(browser, 'div', 'visibility', 'visible');
|
||||
await onShow;
|
||||
});
|
||||
|
@ -36,14 +36,14 @@ let iframeSrc = `data:text/html,
|
||||
*/
|
||||
addAccessibleTask(`
|
||||
<iframe id="iframe" src="${iframeSrc}"></iframe>
|
||||
<input id="checkbox" type="checkbox" />`, function*(browser) {
|
||||
<input id="checkbox" type="checkbox" />`, async function(browser) {
|
||||
// Test state change
|
||||
let onStateChange = waitForEvent(EVENT_STATE_CHANGE, 'checkbox');
|
||||
// Set checked for a checkbox.
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
content.document.getElementById('checkbox').checked = true;
|
||||
});
|
||||
let event = yield onStateChange;
|
||||
let event = await onStateChange;
|
||||
|
||||
checkStateChangeEvent(event, STATE_CHECKED, false, true);
|
||||
testStates(event.accessible, STATE_CHECKED, 0);
|
||||
@ -51,10 +51,10 @@ addAccessibleTask(`
|
||||
// Test extra state
|
||||
onStateChange = waitForEvent(EVENT_STATE_CHANGE, 'iframe');
|
||||
// Set design mode on.
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
content.document.getElementById('iframe').contentDocument.designMode = 'on';
|
||||
});
|
||||
event = yield onStateChange;
|
||||
event = await onStateChange;
|
||||
|
||||
checkStateChangeEvent(event, EXT_STATE_EDITABLE, true, true);
|
||||
testStates(event.accessible, 0, EXT_STATE_EDITABLE);
|
||||
|
@ -15,34 +15,34 @@ function checkTextChangeEvent(event, id, text, start, end, isInserted, isFromUse
|
||||
`Correct value of isFromUserInput for ${prettyName(id)}`);
|
||||
}
|
||||
|
||||
function* changeText(browser, id, value, events) {
|
||||
async function changeText(browser, id, value, events) {
|
||||
let onEvents = waitForMultipleEvents(events.map(({ isInserted }) => {
|
||||
let eventType = isInserted ? EVENT_TEXT_INSERTED : EVENT_TEXT_REMOVED;
|
||||
return { id, eventType };
|
||||
}));
|
||||
// Change text in the subtree.
|
||||
yield ContentTask.spawn(browser, [id, value], ([contentId, contentValue]) => {
|
||||
await ContentTask.spawn(browser, [id, value], ([contentId, contentValue]) => {
|
||||
content.document.getElementById(contentId).firstChild.textContent =
|
||||
contentValue;
|
||||
});
|
||||
let resolvedEvents = yield onEvents;
|
||||
let resolvedEvents = await onEvents;
|
||||
|
||||
events.forEach(({ isInserted, str, offset }, idx) =>
|
||||
checkTextChangeEvent(resolvedEvents[idx],
|
||||
id, str, offset, offset + str.length, isInserted, false));
|
||||
}
|
||||
|
||||
function* removeTextFromInput(browser, id, value, start, end) {
|
||||
async function removeTextFromInput(browser, id, value, start, end) {
|
||||
let onTextRemoved = waitForEvent(EVENT_TEXT_REMOVED, id);
|
||||
// Select text and delete it.
|
||||
yield ContentTask.spawn(browser, [id, start, end], ([contentId, contentStart, contentEnd]) => {
|
||||
await ContentTask.spawn(browser, [id, start, end], ([contentId, contentStart, contentEnd]) => {
|
||||
let el = content.document.getElementById(contentId);
|
||||
el.focus();
|
||||
el.setSelectionRange(contentStart, contentEnd);
|
||||
});
|
||||
yield BrowserTestUtils.sendChar('VK_DELETE', browser);
|
||||
await BrowserTestUtils.sendChar('VK_DELETE', browser);
|
||||
|
||||
let event = yield onTextRemoved;
|
||||
let event = await onTextRemoved;
|
||||
checkTextChangeEvent(event, id, value, start, end, false, true);
|
||||
}
|
||||
|
||||
@ -56,16 +56,16 @@ function* removeTextFromInput(browser, id, value, start, end) {
|
||||
*/
|
||||
addAccessibleTask(`
|
||||
<p id="p">abc</p>
|
||||
<input id="input" value="input" />`, function*(browser) {
|
||||
<input id="input" value="input" />`, async function(browser) {
|
||||
let events = [
|
||||
{ isInserted: false, str: 'abc', offset: 0 },
|
||||
{ isInserted: true, str: 'def', offset: 0 }
|
||||
];
|
||||
yield changeText(browser, 'p', 'def', events);
|
||||
await changeText(browser, 'p', 'def', events);
|
||||
|
||||
events = [{ isInserted: true, str: 'DEF', offset: 2 }];
|
||||
yield changeText(browser, 'p', 'deDEFf', events);
|
||||
await changeText(browser, 'p', 'deDEFf', events);
|
||||
|
||||
// Test isFromUserInput property.
|
||||
yield removeTextFromInput(browser, 'input', 'n', 1, 2);
|
||||
await removeTextFromInput(browser, 'input', 'n', 1, 2);
|
||||
});
|
||||
|
@ -8,7 +8,7 @@
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
// Test ARIA Dialog
|
||||
addAccessibleTask('doc_treeupdate_ariadialog.html', function*(browser, accDoc) {
|
||||
addAccessibleTask('doc_treeupdate_ariadialog.html', async function(browser, accDoc) {
|
||||
testAccessibleTree(accDoc, {
|
||||
role: ROLE_DOCUMENT,
|
||||
children: [ ]
|
||||
@ -16,10 +16,10 @@ addAccessibleTask('doc_treeupdate_ariadialog.html', function*(browser, accDoc) {
|
||||
|
||||
// Make dialog visible and update its inner content.
|
||||
let onShow = waitForEvent(EVENT_SHOW, 'dialog');
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
content.document.getElementById('dialog').style.display = 'block';
|
||||
});
|
||||
yield onShow;
|
||||
await onShow;
|
||||
|
||||
testAccessibleTree(accDoc, {
|
||||
role: ROLE_DOCUMENT,
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* testContainer1(browser, accDoc) {
|
||||
async function testContainer1(browser, accDoc) {
|
||||
const id = 't1_container';
|
||||
const docID = getAccessibleDOMNodeID(accDoc);
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
@ -26,8 +26,8 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Change ARIA owns ====================================== */
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
|
||||
await onReorder;
|
||||
|
||||
// children are swapped again, button and subdiv are appended to
|
||||
// the children.
|
||||
@ -42,8 +42,8 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Remove ARIA owns ====================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, id, 'aria-owns');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, id, 'aria-owns');
|
||||
await onReorder;
|
||||
|
||||
// children follow the DOM order
|
||||
tree = {
|
||||
@ -58,8 +58,8 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Set ARIA owns ========================================= */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
|
||||
await onReorder;
|
||||
|
||||
// children are swapped again, button and subdiv are appended to
|
||||
// the children.
|
||||
@ -74,9 +74,9 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Add ID to ARIA owns =================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, docID);
|
||||
yield invokeSetAttribute(browser, id, 'aria-owns',
|
||||
await invokeSetAttribute(browser, id, 'aria-owns',
|
||||
't1_button t1_subdiv t1_group');
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
// children are swapped again, button and subdiv are appended to
|
||||
// the children.
|
||||
@ -92,13 +92,13 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Append element ======================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let div = content.document.createElement('div');
|
||||
div.setAttribute('id', 't1_child3');
|
||||
div.setAttribute('role', 'radio');
|
||||
content.document.getElementById(contentId).appendChild(div);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
// children are invalidated, they includes aria-owns swapped kids and
|
||||
// newly inserted child.
|
||||
@ -115,9 +115,9 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Remove element ======================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () =>
|
||||
await ContentTask.spawn(browser, {}, () =>
|
||||
content.document.getElementById('t1_span').remove());
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
// subdiv should go away
|
||||
tree = {
|
||||
@ -132,8 +132,8 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Remove ID ============================================= */
|
||||
onReorder = waitForEvent(EVENT_REORDER, docID);
|
||||
yield invokeSetAttribute(browser, 't1_group', 'id');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, 't1_group', 'id');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -146,8 +146,8 @@ function* testContainer1(browser, accDoc) {
|
||||
|
||||
/* ================ Set ID ================================================ */
|
||||
onReorder = waitForEvent(EVENT_REORDER, docID);
|
||||
yield invokeSetAttribute(browser, 't1_grouptmp', 'id', 't1_group');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, 't1_grouptmp', 'id', 't1_group');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -160,7 +160,7 @@ function* testContainer1(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
function* removeContainer(browser, accDoc) {
|
||||
async function removeContainer(browser, accDoc) {
|
||||
const id = 't2_container1';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
|
||||
@ -172,10 +172,10 @@ function* removeContainer(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () =>
|
||||
await ContentTask.spawn(browser, {}, () =>
|
||||
content.document.getElementById('t2_container2').removeChild(
|
||||
content.document.getElementById('t2_container3')));
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ ]
|
||||
@ -183,7 +183,7 @@ function* removeContainer(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
function* stealAndRecacheChildren(browser, accDoc) {
|
||||
async function stealAndRecacheChildren(browser, accDoc) {
|
||||
const id1 = 't3_container1';
|
||||
const id2 = 't3_container2';
|
||||
const acc1 = findAccessibleChildByID(accDoc, id1);
|
||||
@ -191,8 +191,8 @@ function* stealAndRecacheChildren(browser, accDoc) {
|
||||
|
||||
/* ================ Steal from other ARIA owns ============================ */
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id2);
|
||||
yield invokeSetAttribute(browser, id2, 'aria-owns', 't3_child');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, id2, 'aria-owns', 't3_child');
|
||||
await onReorder;
|
||||
|
||||
let tree = {
|
||||
SECTION: [ ]
|
||||
@ -208,12 +208,12 @@ function* stealAndRecacheChildren(browser, accDoc) {
|
||||
|
||||
/* ================ Append element to recache children ==================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id2);
|
||||
yield ContentTask.spawn(browser, id2, id => {
|
||||
await ContentTask.spawn(browser, id2, id => {
|
||||
let div = content.document.createElement('div');
|
||||
div.setAttribute('role', 'radio');
|
||||
content.document.getElementById(id).appendChild(div);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ ]
|
||||
@ -229,7 +229,7 @@ function* stealAndRecacheChildren(browser, accDoc) {
|
||||
testAccessibleTree(acc2, tree);
|
||||
}
|
||||
|
||||
function* showHiddenElement(browser, accDoc) {
|
||||
async function showHiddenElement(browser, accDoc) {
|
||||
const id = 't4_container1';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
|
||||
@ -241,8 +241,8 @@ function* showHiddenElement(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetStyle(browser, 't4_child1', 'display', 'block');
|
||||
yield onReorder;
|
||||
await invokeSetStyle(browser, 't4_child1', 'display', 'block');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -253,7 +253,7 @@ function* showHiddenElement(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
function* rearrangeARIAOwns(browser, accDoc) {
|
||||
async function rearrangeARIAOwns(browser, accDoc) {
|
||||
const id = 't5_container';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
const tests = [{
|
||||
@ -266,8 +266,8 @@ function* rearrangeARIAOwns(browser, accDoc) {
|
||||
|
||||
for (let { val, roleList } of tests) {
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, id, 'aria-owns', val);
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, id, 'aria-owns', val);
|
||||
await onReorder;
|
||||
|
||||
let tree = { SECTION: [ ] };
|
||||
for (let role of roleList) {
|
||||
@ -279,7 +279,7 @@ function* rearrangeARIAOwns(browser, accDoc) {
|
||||
}
|
||||
}
|
||||
|
||||
function* removeNotARIAOwnedEl(browser, accDoc) {
|
||||
async function removeNotARIAOwnedEl(browser, accDoc) {
|
||||
const id = 't6_container';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
|
||||
@ -292,11 +292,11 @@ function* removeNotARIAOwnedEl(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
content.document.getElementById(contentId).removeChild(
|
||||
content.document.getElementById('t6_span'));
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -306,11 +306,11 @@ function* removeNotARIAOwnedEl(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
addAccessibleTask('doc_treeupdate_ariaowns.html', function*(browser, accDoc) {
|
||||
yield testContainer1(browser, accDoc);
|
||||
yield removeContainer(browser, accDoc);
|
||||
yield stealAndRecacheChildren(browser, accDoc);
|
||||
yield showHiddenElement(browser, accDoc);
|
||||
yield rearrangeARIAOwns(browser, accDoc);
|
||||
yield removeNotARIAOwnedEl(browser, accDoc);
|
||||
addAccessibleTask('doc_treeupdate_ariaowns.html', async function(browser, accDoc) {
|
||||
await testContainer1(browser, accDoc);
|
||||
await removeContainer(browser, accDoc);
|
||||
await stealAndRecacheChildren(browser, accDoc);
|
||||
await showHiddenElement(browser, accDoc);
|
||||
await rearrangeARIAOwns(browser, accDoc);
|
||||
await removeNotARIAOwnedEl(browser, accDoc);
|
||||
});
|
||||
|
@ -10,15 +10,15 @@ loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
addAccessibleTask(`
|
||||
<canvas id="canvas">
|
||||
<div id="dialog" role="dialog" style="display: none;"></div>
|
||||
</canvas>`, function*(browser, accDoc) {
|
||||
</canvas>`, async function(browser, accDoc) {
|
||||
let canvas = findAccessibleChildByID(accDoc, 'canvas');
|
||||
let dialog = findAccessibleChildByID(accDoc, 'dialog');
|
||||
|
||||
testAccessibleTree(canvas, { CANVAS: [] });
|
||||
|
||||
let onShow = waitForEvent(EVENT_SHOW, 'dialog');
|
||||
yield invokeSetStyle(browser, 'dialog', 'display', 'block');
|
||||
yield onShow;
|
||||
await invokeSetStyle(browser, 'dialog', 'display', 'block');
|
||||
await onShow;
|
||||
|
||||
testAccessibleTree(dialog, { DIALOG: [] });
|
||||
});
|
||||
|
@ -11,7 +11,7 @@ addAccessibleTask(`
|
||||
<div id="container"><div id="scrollarea" style="overflow:auto;"><input>
|
||||
</div></div>
|
||||
<div id="container2"><div id="scrollarea2" style="overflow:hidden;">
|
||||
</div></div>`, function*(browser, accDoc) {
|
||||
</div></div>`, async function(browser, accDoc) {
|
||||
const id1 = 'container';
|
||||
const id2 = 'container2';
|
||||
const container = findAccessibleChildByID(accDoc, id1);
|
||||
@ -28,12 +28,12 @@ addAccessibleTask(`
|
||||
testAccessibleTree(container, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id1);
|
||||
yield ContentTask.spawn(browser, id1, id => {
|
||||
await ContentTask.spawn(browser, id1, id => {
|
||||
let doc = content.document;
|
||||
doc.getElementById('scrollarea').style.width = '20px';
|
||||
doc.getElementById(id).appendChild(doc.createElement('input'));
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ {// container
|
||||
@ -51,8 +51,8 @@ addAccessibleTask(`
|
||||
testAccessibleTree(container2, tree);
|
||||
|
||||
onReorder = waitForEvent(EVENT_REORDER, id2);
|
||||
yield invokeSetStyle(browser, 'scrollarea2', 'overflow', 'auto');
|
||||
yield onReorder;
|
||||
await invokeSetStyle(browser, 'scrollarea2', 'overflow', 'auto');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ // container
|
||||
|
@ -17,7 +17,7 @@ const iframeSrc = `data:text/html,
|
||||
</html>`;
|
||||
|
||||
addAccessibleTask(`
|
||||
<iframe id="iframe" src="${iframeSrc}"></iframe>`, function*(browser, accDoc) {
|
||||
<iframe id="iframe" src="${iframeSrc}"></iframe>`, async function(browser, accDoc) {
|
||||
// ID of the iframe that is being tested
|
||||
const id = 'inner-iframe';
|
||||
|
||||
@ -32,7 +32,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Write iframe document ================================ */
|
||||
let reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let newHTMLNode = docNode.createElement('html');
|
||||
let newBodyNode = docNode.createElement('body');
|
||||
@ -42,7 +42,7 @@ addAccessibleTask(`
|
||||
newHTMLNode.appendChild(newBodyNode);
|
||||
docNode.replaceChild(newHTMLNode, docNode.documentElement);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -57,7 +57,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Replace iframe HTML element ========================== */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
// We can't use open/write/close outside of iframe document because of
|
||||
// security error.
|
||||
@ -68,7 +68,7 @@ addAccessibleTask(`
|
||||
document.close();`;
|
||||
docNode.body.appendChild(script);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -83,7 +83,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Replace iframe body ================================== */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let newBodyNode = docNode.createElement('body');
|
||||
let newTextNode = docNode.createTextNode('New Hello');
|
||||
@ -92,7 +92,7 @@ addAccessibleTask(`
|
||||
newBodyNode.setAttribute('role', 'button');
|
||||
docNode.documentElement.replaceChild(newBodyNode, docNode.body);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_PUSHBUTTON,
|
||||
@ -107,7 +107,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Open iframe document ================================= */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
// Open document.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let script = docNode.createElement('script');
|
||||
@ -121,7 +121,7 @@ addAccessibleTask(`
|
||||
document.write('<body id="${contentId}"></body>');`;
|
||||
docNode.body.appendChild(script);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -131,13 +131,13 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Close iframe document ================================ */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
// Write and close document.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
docNode.write('Works?');
|
||||
docNode.close();
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -152,12 +152,12 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Remove HTML from iframe document ===================== */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
// Remove HTML element.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
docNode.firstChild.remove();
|
||||
});
|
||||
let event = yield reorderEventPromise;
|
||||
let event = await reorderEventPromise;
|
||||
|
||||
ok(event.accessible instanceof nsIAccessibleDocument,
|
||||
'Reorder should happen on the document');
|
||||
@ -169,7 +169,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Insert HTML to iframe document ======================= */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
// Insert HTML element.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let html = docNode.createElement('html');
|
||||
@ -180,7 +180,7 @@ addAccessibleTask(`
|
||||
html.appendChild(body);
|
||||
docNode.appendChild(html);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -195,12 +195,12 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Remove body from iframe document ===================== */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
// Remove body element.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
docNode.documentElement.removeChild(docNode.body);
|
||||
});
|
||||
event = yield reorderEventPromise;
|
||||
event = await reorderEventPromise;
|
||||
|
||||
ok(event.accessible instanceof nsIAccessibleDocument,
|
||||
'Reorder should happen on the document');
|
||||
@ -212,12 +212,12 @@ addAccessibleTask(`
|
||||
|
||||
/* ================ Insert element under document element while body missed */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let inputNode = content.window.inputNode = docNode.createElement('input');
|
||||
docNode.documentElement.appendChild(inputNode);
|
||||
});
|
||||
event = yield reorderEventPromise;
|
||||
event = await reorderEventPromise;
|
||||
|
||||
ok(event.accessible instanceof nsIAccessibleDocument,
|
||||
'Reorder should happen on the document');
|
||||
@ -229,14 +229,14 @@ addAccessibleTask(`
|
||||
testAccessibleTree(iframe, tree);
|
||||
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let docEl =
|
||||
content.document.getElementById('iframe').contentDocument.documentElement;
|
||||
// Remove aftermath of this test before next test starts.
|
||||
docEl.firstChild.remove();
|
||||
});
|
||||
// Make sure reorder event was fired and that the input was removed.
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
children: [ ]
|
||||
@ -245,7 +245,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Insert body to iframe document ======================= */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
// Write and close document.
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
// Insert body element.
|
||||
@ -255,7 +255,7 @@ addAccessibleTask(`
|
||||
body.id = contentId;
|
||||
docNode.documentElement.appendChild(body);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_DOCUMENT,
|
||||
@ -270,9 +270,9 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Change source ======================================== */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, 'iframe');
|
||||
yield invokeSetAttribute(browser, 'iframe', 'src',
|
||||
await invokeSetAttribute(browser, 'iframe', 'src',
|
||||
`data:text/html,<html><body id="${id}"><input></body></html>`);
|
||||
event = yield reorderEventPromise;
|
||||
event = await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
INTERNAL_FRAME: [
|
||||
@ -286,7 +286,7 @@ addAccessibleTask(`
|
||||
|
||||
/* ================= Replace iframe body on ARIA role body ================ */
|
||||
reorderEventPromise = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let docNode = content.document.getElementById('iframe').contentDocument;
|
||||
let newBodyNode = docNode.createElement('body');
|
||||
let newTextNode = docNode.createTextNode('New Hello');
|
||||
@ -295,7 +295,7 @@ addAccessibleTask(`
|
||||
newBodyNode.id = contentId;
|
||||
docNode.documentElement.replaceChild(newBodyNode, docNode.body);
|
||||
});
|
||||
yield reorderEventPromise;
|
||||
await reorderEventPromise;
|
||||
|
||||
tree = {
|
||||
role: ROLE_PUSHBUTTON,
|
||||
|
@ -18,7 +18,7 @@ addAccessibleTask(`
|
||||
</style>
|
||||
<div id="container1"></div>
|
||||
<div id="container2"><div id="container2_child">text</div></div>`,
|
||||
function*(browser, accDoc) {
|
||||
async function(browser, accDoc) {
|
||||
const id1 = 'container1';
|
||||
const id2 = 'container2';
|
||||
let container1 = findAccessibleChildByID(accDoc, id1);
|
||||
@ -40,13 +40,13 @@ addAccessibleTask(`
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id1);
|
||||
// Create and add an element with CSS generated content to container1
|
||||
yield ContentTask.spawn(browser, id1, id => {
|
||||
await ContentTask.spawn(browser, id1, id => {
|
||||
let node = content.document.createElement('div');
|
||||
node.textContent = 'text';
|
||||
node.setAttribute('class', 'gentext');
|
||||
content.document.getElementById(id).appendChild(node);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ // container
|
||||
@ -61,8 +61,8 @@ addAccessibleTask(`
|
||||
|
||||
onReorder = waitForEvent(EVENT_REORDER, id2);
|
||||
// Add CSS generated content to an element in container2's subtree
|
||||
yield invokeSetAttribute(browser, 'container2_child', 'class', 'gentext');
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, 'container2_child', 'class', 'gentext');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ // container2
|
||||
|
@ -7,23 +7,23 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* setHidden(browser, value) {
|
||||
async function setHidden(browser, value) {
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'container');
|
||||
yield invokeSetAttribute(browser, 'child', 'hidden', value);
|
||||
yield onReorder;
|
||||
await invokeSetAttribute(browser, 'child', 'hidden', value);
|
||||
await onReorder;
|
||||
}
|
||||
|
||||
addAccessibleTask('<div id="container"><input id="child"></div>',
|
||||
function*(browser, accDoc) {
|
||||
async function(browser, accDoc) {
|
||||
let container = findAccessibleChildByID(accDoc, 'container');
|
||||
|
||||
testAccessibleTree(container, { SECTION: [ { ENTRY: [ ] } ] });
|
||||
|
||||
// Set @hidden attribute
|
||||
yield setHidden(browser, 'true');
|
||||
await setHidden(browser, 'true');
|
||||
testAccessibleTree(container, { SECTION: [ ] });
|
||||
|
||||
// Remove @hidden attribute
|
||||
yield setHidden(browser);
|
||||
await setHidden(browser);
|
||||
testAccessibleTree(container, { SECTION: [ { ENTRY: [ ] } ] });
|
||||
});
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* testImageMap(browser, accDoc) {
|
||||
async function testImageMap(browser, accDoc) {
|
||||
const id = 'imgmap';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
|
||||
@ -21,7 +21,7 @@ function* testImageMap(browser, accDoc) {
|
||||
|
||||
/* ================= Insert area ========================================== */
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let areaElm = content.document.createElement('area');
|
||||
let mapNode = content.document.getElementById('map');
|
||||
areaElm.setAttribute('href',
|
||||
@ -31,7 +31,7 @@ function* testImageMap(browser, accDoc) {
|
||||
areaElm.setAttribute('shape', 'rect');
|
||||
mapNode.insertBefore(areaElm, mapNode.firstChild);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
IMAGE_MAP: [
|
||||
@ -43,7 +43,7 @@ function* testImageMap(browser, accDoc) {
|
||||
|
||||
/* ================= Append area ========================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let areaElm = content.document.createElement('area');
|
||||
let mapNode = content.document.getElementById('map');
|
||||
areaElm.setAttribute('href',
|
||||
@ -53,7 +53,7 @@ function* testImageMap(browser, accDoc) {
|
||||
areaElm.setAttribute('shape', 'rect');
|
||||
mapNode.appendChild(areaElm);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
IMAGE_MAP: [
|
||||
@ -66,11 +66,11 @@ function* testImageMap(browser, accDoc) {
|
||||
|
||||
/* ================= Remove area ========================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let mapNode = content.document.getElementById('map');
|
||||
mapNode.removeChild(mapNode.firstElementChild);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
IMAGE_MAP: [
|
||||
@ -81,12 +81,12 @@ function* testImageMap(browser, accDoc) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
function* testContainer(browser) {
|
||||
async function testContainer(browser) {
|
||||
const id = 'container';
|
||||
/* ================= Remove name on map =================================== */
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, 'map', 'name');
|
||||
let event = yield onReorder;
|
||||
await invokeSetAttribute(browser, 'map', 'name');
|
||||
let event = await onReorder;
|
||||
const acc = event.accessible;
|
||||
|
||||
let tree = {
|
||||
@ -98,11 +98,11 @@ function* testContainer(browser) {
|
||||
|
||||
/* ================= Restore name on map ================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetAttribute(browser, 'map', 'name', 'atoz_map');
|
||||
await invokeSetAttribute(browser, 'map', 'name', 'atoz_map');
|
||||
// XXX: force repainting of the image (see bug 745788 for details).
|
||||
yield BrowserTestUtils.synthesizeMouse('#imgmap', 10, 10,
|
||||
await BrowserTestUtils.synthesizeMouse('#imgmap', 10, 10,
|
||||
{ type: 'mousemove' }, browser);
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ {
|
||||
@ -116,11 +116,11 @@ function* testContainer(browser) {
|
||||
|
||||
/* ================= Remove map =========================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let mapNode = content.document.getElementById('map');
|
||||
mapNode.remove();
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -131,7 +131,7 @@ function* testContainer(browser) {
|
||||
|
||||
/* ================= Insert map =========================================== */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
let map = content.document.createElement('map');
|
||||
let area = content.document.createElement('area');
|
||||
|
||||
@ -147,7 +147,7 @@ function* testContainer(browser) {
|
||||
map.appendChild(area);
|
||||
content.document.getElementById(contentId).appendChild(map);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ {
|
||||
@ -160,8 +160,8 @@ function* testContainer(browser) {
|
||||
|
||||
/* ================= Hide image map ======================================= */
|
||||
onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield invokeSetStyle(browser, 'imgmap', 'display', 'none');
|
||||
yield onReorder;
|
||||
await invokeSetStyle(browser, 'imgmap', 'display', 'none');
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ ]
|
||||
@ -169,7 +169,7 @@ function* testContainer(browser) {
|
||||
testAccessibleTree(acc, tree);
|
||||
}
|
||||
|
||||
function* waitForImageMap(browser, accDoc) {
|
||||
async function waitForImageMap(browser, accDoc) {
|
||||
const id = 'imgmap';
|
||||
const acc = findAccessibleChildByID(accDoc, id);
|
||||
if (acc.firstChild) {
|
||||
@ -178,13 +178,13 @@ function* waitForImageMap(browser, accDoc) {
|
||||
|
||||
const onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
// Wave over image map
|
||||
yield BrowserTestUtils.synthesizeMouse(`#${id}`, 10, 10,
|
||||
await BrowserTestUtils.synthesizeMouse(`#${id}`, 10, 10,
|
||||
{ type: 'mousemove' }, browser);
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
}
|
||||
|
||||
addAccessibleTask('doc_treeupdate_imagemap.html', function*(browser, accDoc) {
|
||||
yield waitForImageMap(browser, accDoc);
|
||||
yield testImageMap(browser, accDoc);
|
||||
yield testContainer(browser);
|
||||
addAccessibleTask('doc_treeupdate_imagemap.html', async function(browser, accDoc) {
|
||||
await waitForImageMap(browser, accDoc);
|
||||
await testImageMap(browser, accDoc);
|
||||
await testContainer(browser);
|
||||
});
|
||||
|
@ -7,16 +7,16 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* setDisplayAndWaitForReorder(browser, value) {
|
||||
async function setDisplayAndWaitForReorder(browser, value) {
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'ul');
|
||||
yield invokeSetStyle(browser, 'li', 'display', value);
|
||||
return yield onReorder;
|
||||
await invokeSetStyle(browser, 'li', 'display', value);
|
||||
return await onReorder;
|
||||
}
|
||||
|
||||
addAccessibleTask(`
|
||||
<ul id="ul">
|
||||
<li id="li">item1</li>
|
||||
</ul>`, function*(browser, accDoc) {
|
||||
</ul>`, async function(browser, accDoc) {
|
||||
let li = findAccessibleChildByID(accDoc, 'li');
|
||||
let bullet = li.firstChild;
|
||||
let accTree = {
|
||||
@ -31,12 +31,12 @@ addAccessibleTask(`
|
||||
};
|
||||
testAccessibleTree(li, accTree);
|
||||
|
||||
yield setDisplayAndWaitForReorder(browser, 'none');
|
||||
await setDisplayAndWaitForReorder(browser, 'none');
|
||||
|
||||
ok(isDefunct(li), 'Check that li is defunct.');
|
||||
ok(isDefunct(bullet), 'Check that bullet is defunct.');
|
||||
|
||||
let event = yield setDisplayAndWaitForReorder(browser, 'list-item');
|
||||
let event = await setDisplayAndWaitForReorder(browser, 'list-item');
|
||||
|
||||
testAccessibleTree(findAccessibleChildByID(event.accessible, 'li'), accTree);
|
||||
});
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask('<ol id="list"></ol>', function*(browser, accDoc) {
|
||||
addAccessibleTask('<ol id="list"></ol>', async function(browser, accDoc) {
|
||||
let list = findAccessibleChildByID(accDoc, 'list');
|
||||
|
||||
testAccessibleTree(list, {
|
||||
@ -15,14 +15,14 @@ addAccessibleTask('<ol id="list"></ol>', function*(browser, accDoc) {
|
||||
children: [ ]
|
||||
});
|
||||
|
||||
yield invokeSetAttribute(browser, 'body', 'contentEditable', 'true');
|
||||
await invokeSetAttribute(browser, 'body', 'contentEditable', 'true');
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'list');
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let li = content.document.createElement('li');
|
||||
li.textContent = 'item';
|
||||
content.document.getElementById('list').appendChild(li);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
testAccessibleTree(list, {
|
||||
role: ROLE_LIST,
|
||||
|
@ -8,7 +8,7 @@
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask('<span id="parent"><span id="child"></span></span>',
|
||||
function*(browser, accDoc) {
|
||||
async function(browser, accDoc) {
|
||||
is(findAccessibleChildByID(accDoc, 'parent'), null,
|
||||
'Check that parent is not accessible.');
|
||||
is(findAccessibleChildByID(accDoc, 'child'), null,
|
||||
@ -16,12 +16,12 @@ addAccessibleTask('<span id="parent"><span id="child"></span></span>',
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'body');
|
||||
// Add an event listener to parent.
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
content.window.dummyListener = () => {};
|
||||
content.document.getElementById('parent').addEventListener(
|
||||
'click', content.window.dummyListener);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
let tree = { TEXT: [] };
|
||||
testAccessibleTree(findAccessibleChildByID(accDoc, 'parent'), tree);
|
||||
|
@ -7,12 +7,12 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask('<select id="select"></select>', function*(browser, accDoc) {
|
||||
addAccessibleTask('<select id="select"></select>', async function(browser, accDoc) {
|
||||
let select = findAccessibleChildByID(accDoc, 'select');
|
||||
|
||||
let onEvent = waitForEvent(EVENT_REORDER, 'select');
|
||||
// Create a combobox with grouping and 2 standalone options
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let doc = content.document;
|
||||
let contentSelect = doc.getElementById('select');
|
||||
let optGroup = doc.createElement('optgroup');
|
||||
@ -31,7 +31,7 @@ addAccessibleTask('<select id="select"></select>', function*(browser, accDoc) {
|
||||
}
|
||||
contentSelect.firstChild.firstChild.id = 'option1Node';
|
||||
});
|
||||
let event = yield onEvent;
|
||||
let event = await onEvent;
|
||||
let option1Node = findAccessibleChildByID(event.accessible, 'option1Node');
|
||||
|
||||
let tree = {
|
||||
@ -53,11 +53,11 @@ addAccessibleTask('<select id="select"></select>', function*(browser, accDoc) {
|
||||
|
||||
onEvent = waitForEvent(EVENT_REORDER, 'select');
|
||||
// Remove grouping from combobox
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let contentSelect = content.document.getElementById('select');
|
||||
contentSelect.firstChild.remove();
|
||||
});
|
||||
yield onEvent;
|
||||
await onEvent;
|
||||
|
||||
tree = {
|
||||
COMBOBOX: [ {
|
||||
@ -73,13 +73,13 @@ addAccessibleTask('<select id="select"></select>', function*(browser, accDoc) {
|
||||
|
||||
onEvent = waitForEvent(EVENT_REORDER, 'select');
|
||||
// Remove all options from combobox
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let contentSelect = content.document.getElementById('select');
|
||||
while (contentSelect.length) {
|
||||
contentSelect.remove(0);
|
||||
}
|
||||
});
|
||||
yield onEvent;
|
||||
await onEvent;
|
||||
|
||||
tree = {
|
||||
COMBOBOX: [ {
|
||||
|
@ -7,16 +7,16 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask('doc_treeupdate_removal.xhtml', function*(browser, accDoc) {
|
||||
addAccessibleTask('doc_treeupdate_removal.xhtml', async function(browser, accDoc) {
|
||||
ok(isAccessible(findAccessibleChildByID(accDoc, 'the_table')),
|
||||
'table should be accessible');
|
||||
|
||||
// Move the_table element into hidden subtree.
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'body');
|
||||
yield ContentTask.spawn(browser, {}, () => content.document.getElementById(
|
||||
await ContentTask.spawn(browser, {}, () => content.document.getElementById(
|
||||
'the_displaynone').appendChild(content.document.getElementById(
|
||||
'the_table')));
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_table')),
|
||||
'table in display none tree shouldn\'t be accessible');
|
||||
@ -24,7 +24,7 @@ addAccessibleTask('doc_treeupdate_removal.xhtml', function*(browser, accDoc) {
|
||||
'row shouldn\'t be accessible');
|
||||
|
||||
// Remove the_row element (since it did not have accessible, no event needed).
|
||||
yield ContentTask.spawn(browser, {}, () =>
|
||||
await ContentTask.spawn(browser, {}, () =>
|
||||
content.document.body.removeChild(
|
||||
content.document.getElementById('the_row')));
|
||||
|
||||
|
@ -13,7 +13,7 @@ addAccessibleTask(`
|
||||
<td>cell1</td>
|
||||
<td>cell2</td>
|
||||
</tr>
|
||||
</table>`, function*(browser, accDoc) {
|
||||
</table>`, async function(browser, accDoc) {
|
||||
let table = findAccessibleChildByID(accDoc, 'table');
|
||||
|
||||
let tree = {
|
||||
@ -27,7 +27,7 @@ addAccessibleTask(`
|
||||
testAccessibleTree(table, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'table');
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
// append a caption, it should appear as a first element in the
|
||||
// accessible tree.
|
||||
let doc = content.document;
|
||||
@ -35,7 +35,7 @@ addAccessibleTask(`
|
||||
caption.textContent = 'table caption';
|
||||
doc.getElementById('table').appendChild(caption);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
TABLE: [
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* removeTextData(browser, accessible, id, role) {
|
||||
async function removeTextData(browser, accessible, id, role) {
|
||||
let tree = {
|
||||
role: role,
|
||||
children: [ { role: ROLE_TEXT_LEAF, name: "text" } ]
|
||||
@ -15,10 +15,10 @@ function* removeTextData(browser, accessible, id, role) {
|
||||
testAccessibleTree(accessible, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, id);
|
||||
yield ContentTask.spawn(browser, id, contentId => {
|
||||
await ContentTask.spawn(browser, id, contentId => {
|
||||
content.document.getElementById(contentId).firstChild.textContent = '';
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = { role: role, children: [] };
|
||||
testAccessibleTree(accessible, tree);
|
||||
@ -26,9 +26,9 @@ function* removeTextData(browser, accessible, id, role) {
|
||||
|
||||
addAccessibleTask(`
|
||||
<p id="p">text</p>
|
||||
<pre id="pre">text</pre>`, function*(browser, accDoc) {
|
||||
<pre id="pre">text</pre>`, async function(browser, accDoc) {
|
||||
let p = findAccessibleChildByID(accDoc, 'p');
|
||||
let pre = findAccessibleChildByID(accDoc, 'pre');
|
||||
yield removeTextData(browser, p, 'p', ROLE_PARAGRAPH);
|
||||
yield removeTextData(browser, pre, 'pre', ROLE_TEXT_CONTAINER);
|
||||
await removeTextData(browser, p, 'p', ROLE_PARAGRAPH);
|
||||
await removeTextData(browser, pre, 'pre', ROLE_TEXT_CONTAINER);
|
||||
});
|
||||
|
@ -7,18 +7,18 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
function* testTreeOnHide(browser, accDoc, containerID, id, before, after) {
|
||||
async function testTreeOnHide(browser, accDoc, containerID, id, before, after) {
|
||||
let acc = findAccessibleChildByID(accDoc, containerID);
|
||||
testAccessibleTree(acc, before);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, containerID);
|
||||
yield invokeSetStyle(browser, id, 'visibility', 'hidden');
|
||||
yield onReorder;
|
||||
await invokeSetStyle(browser, id, 'visibility', 'hidden');
|
||||
await onReorder;
|
||||
|
||||
testAccessibleTree(acc, after);
|
||||
}
|
||||
|
||||
function* test3(browser, accessible) {
|
||||
async function test3(browser, accessible) {
|
||||
let tree = {
|
||||
SECTION: [ // container
|
||||
{ SECTION: [ // parent
|
||||
@ -35,13 +35,13 @@ function* test3(browser, accessible) {
|
||||
testAccessibleTree(accessible, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 't3_container');
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let doc = content.document;
|
||||
doc.getElementById('t3_container').style.color = 'red';
|
||||
doc.getElementById('t3_parent').style.visibility = 'hidden';
|
||||
doc.getElementById('t3_parent2').style.visibility = 'hidden';
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [ // container
|
||||
@ -55,7 +55,7 @@ function* test3(browser, accessible) {
|
||||
testAccessibleTree(accessible, tree);
|
||||
}
|
||||
|
||||
function* test4(browser, accessible) {
|
||||
async function test4(browser, accessible) {
|
||||
let tree = {
|
||||
SECTION: [
|
||||
{ TABLE: [
|
||||
@ -67,12 +67,12 @@ function* test4(browser, accessible) {
|
||||
testAccessibleTree(accessible, tree);
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 't4_parent');
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let doc = content.document;
|
||||
doc.getElementById('t4_container').style.color = 'red';
|
||||
doc.getElementById('t4_child').style.visibility = 'visible';
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [{
|
||||
@ -90,11 +90,11 @@ function* test4(browser, accessible) {
|
||||
testAccessibleTree(accessible, tree);
|
||||
}
|
||||
|
||||
addAccessibleTask('doc_treeupdate_visibility.html', function*(browser, accDoc) {
|
||||
addAccessibleTask('doc_treeupdate_visibility.html', async function(browser, accDoc) {
|
||||
let t3Container = findAccessibleChildByID(accDoc, 't3_container');
|
||||
let t4Container = findAccessibleChildByID(accDoc, 't4_container');
|
||||
|
||||
yield testTreeOnHide(browser, accDoc, 't1_container', 't1_parent', {
|
||||
await testTreeOnHide(browser, accDoc, 't1_container', 't1_parent', {
|
||||
SECTION: [{
|
||||
SECTION: [{
|
||||
SECTION: [ { TEXT_LEAF: [] } ]
|
||||
@ -106,7 +106,7 @@ addAccessibleTask('doc_treeupdate_visibility.html', function*(browser, accDoc) {
|
||||
} ]
|
||||
});
|
||||
|
||||
yield testTreeOnHide(browser, accDoc, 't2_container', 't2_grandparent', {
|
||||
await testTreeOnHide(browser, accDoc, 't2_container', 't2_grandparent', {
|
||||
SECTION: [{ // container
|
||||
SECTION: [{ // grand parent
|
||||
SECTION: [{
|
||||
@ -132,10 +132,10 @@ addAccessibleTask('doc_treeupdate_visibility.html', function*(browser, accDoc) {
|
||||
}]
|
||||
});
|
||||
|
||||
yield test3(browser, t3Container);
|
||||
yield test4(browser, t4Container);
|
||||
await test3(browser, t3Container);
|
||||
await test4(browser, t4Container);
|
||||
|
||||
yield testTreeOnHide(browser, accDoc, 't5_container', 't5_subcontainer', {
|
||||
await testTreeOnHide(browser, accDoc, 't5_container', 't5_subcontainer', {
|
||||
SECTION: [{ // container
|
||||
SECTION: [{ // subcontainer
|
||||
TABLE: [{
|
||||
@ -157,7 +157,7 @@ addAccessibleTask('doc_treeupdate_visibility.html', function*(browser, accDoc) {
|
||||
}]
|
||||
});
|
||||
|
||||
yield testTreeOnHide(browser, accDoc, 't6_container', 't6_subcontainer', {
|
||||
await testTreeOnHide(browser, accDoc, 't6_container', 't6_subcontainer', {
|
||||
SECTION: [{ // container
|
||||
SECTION: [{ // subcontainer
|
||||
TABLE: [{
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* import-globals-from ../../mochitest/role.js */
|
||||
loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
|
||||
|
||||
addAccessibleTask('doc_treeupdate_whitespace.html', function*(browser, accDoc) {
|
||||
addAccessibleTask('doc_treeupdate_whitespace.html', async function(browser, accDoc) {
|
||||
let container1 = findAccessibleChildByID(accDoc, 'container1');
|
||||
let container2Parent = findAccessibleChildByID(accDoc, 'container2-parent');
|
||||
|
||||
@ -24,12 +24,12 @@ addAccessibleTask('doc_treeupdate_whitespace.html', function*(browser, accDoc) {
|
||||
|
||||
let onReorder = waitForEvent(EVENT_REORDER, 'container1');
|
||||
// Remove img1 from container1
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let doc = content.document;
|
||||
doc.getElementById('container1').removeChild(
|
||||
doc.getElementById('img1'));
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
@ -50,14 +50,14 @@ addAccessibleTask('doc_treeupdate_whitespace.html', function*(browser, accDoc) {
|
||||
|
||||
onReorder = waitForEvent(EVENT_REORDER, 'container2-parent');
|
||||
// Append an img with valid src to container2
|
||||
yield ContentTask.spawn(browser, {}, () => {
|
||||
await ContentTask.spawn(browser, {}, () => {
|
||||
let doc = content.document;
|
||||
let img = doc.createElement('img');
|
||||
img.setAttribute('src',
|
||||
'http://example.com/a11y/accessible/tests/mochitest/moz.png');
|
||||
doc.getElementById('container2').appendChild(img);
|
||||
});
|
||||
yield onReorder;
|
||||
await onReorder;
|
||||
|
||||
tree = {
|
||||
SECTION: [
|
||||
|
@ -15,14 +15,14 @@ Services.scriptloader.loadSubScript(
|
||||
/**
|
||||
* A wrapper around browser test add_task that triggers an accessible test task
|
||||
* as a new browser test task with given document, data URL or markup snippet.
|
||||
* @param {String} doc URL (relative to current directory) or
|
||||
* data URL or markup snippet that is used
|
||||
* to test content with
|
||||
* @param {Function|Function*} task a generator or a function with tests to
|
||||
* run
|
||||
* @param {String} doc URL (relative to current directory) or
|
||||
* data URL or markup snippet that is used
|
||||
* to test content with
|
||||
* @param {Function|AsyncFunction} task a generator or a function with tests to
|
||||
* run
|
||||
*/
|
||||
function addAccessibleTask(doc, task) {
|
||||
add_task(function*() {
|
||||
add_task(async function() {
|
||||
let url;
|
||||
if (doc.includes('doc_')) {
|
||||
url = `${CURRENT_CONTENT_DIR}e10s/${doc}`;
|
||||
@ -49,10 +49,10 @@ function addAccessibleTask(doc, task) {
|
||||
|
||||
let onDocLoad = waitForEvent(EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
|
||||
|
||||
yield BrowserTestUtils.withNewTab({
|
||||
await BrowserTestUtils.withNewTab({
|
||||
gBrowser,
|
||||
url: url
|
||||
}, function*(browser) {
|
||||
}, async function(browser) {
|
||||
registerCleanupFunction(() => {
|
||||
if (browser) {
|
||||
let tab = gBrowser.getTabForBrowser(browser);
|
||||
@ -62,7 +62,7 @@ function addAccessibleTask(doc, task) {
|
||||
}
|
||||
});
|
||||
|
||||
yield SimpleTest.promiseFocus(browser);
|
||||
await SimpleTest.promiseFocus(browser);
|
||||
|
||||
loadFrameScripts(browser,
|
||||
'let { document, window, navigator } = content;',
|
||||
@ -72,8 +72,8 @@ function addAccessibleTask(doc, task) {
|
||||
`e10s enabled: ${Services.appinfo.browserTabsRemoteAutostart}`);
|
||||
Logger.log(`Actually remote browser: ${browser.isRemoteBrowser}`);
|
||||
|
||||
let event = yield onDocLoad;
|
||||
yield task(browser, event.accessible);
|
||||
let event = await onDocLoad;
|
||||
await task(browser, event.accessible);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user