Loading accessible/moz.build +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ TEST_DIRS += ['tests/mochitest'] BROWSER_CHROME_MANIFESTS += [ 'tests/browser/browser.ini', 'tests/browser/e10s/browser.ini', 'tests/browser/scroll/browser.ini', 'tests/browser/states/browser.ini' ] Loading accessible/tests/browser/scroll/browser.ini 0 → 100644 +9 −0 Original line number Diff line number Diff line [DEFAULT] skip-if = e10s && os == 'win' && release_or_beta support-files = head.js !/accessible/tests/browser/events.js !/accessible/tests/browser/shared-head.js !/accessible/tests/mochitest/*.js [browser_test_zoom_text.js] accessible/tests/browser/scroll/browser_test_zoom_text.js 0 → 100644 +119 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; /* import-globals-from ../../mochitest/layout.js */ loadScripts({ name: 'layout.js', dir: MOCHITESTS_DIR }); async function runTests(browser, accDoc) { let paragraph = findAccessibleChildByID(accDoc, "paragraph", [nsIAccessibleText]); let offset = 64; // beginning of 4th stanza let [x /*,y*/] = getPos(paragraph); let [docX, docY] = getPos(accDoc); paragraph.scrollSubstringToPoint(offset, offset, COORDTYPE_SCREEN_RELATIVE, docX, docY); testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE); await zoomContent(browser, 2.0); paragraph = findAccessibleChildByID(accDoc, "paragraph2", [nsIAccessibleText]); offset = 52; // // beginning of 4th stanza [x /*,y*/] = getPos(paragraph); paragraph.scrollSubstringToPoint(offset, offset, COORDTYPE_SCREEN_RELATIVE, docX, docY); testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE); } /** * Test caching of accessible object states */ addAccessibleTask(` <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><hr> <p id='paragraph'> Пошел котик на торжок<br> Купил котик пирожок<br> Пошел котик на улочку<br> Купил котик булочку<br> </p> <hr><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><hr> <p id='paragraph2'> Самому ли съесть<br> Либо Сашеньке снесть<br> Я и сам укушу<br> Я и Сашеньке снесу<br> </p> <hr><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br>`, runTests ); accessible/tests/browser/scroll/head.js 0 → 100644 +30 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; /* exported zoomContent */ // Load the shared-head file first. /* import-globals-from ../shared-head.js */ Services.scriptloader.loadSubScript( 'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js', this); async function zoomContent(browser, zoom) { return ContentTask.spawn(browser, zoom, _zoom => { let docShell = content .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShell); let docViewer = docShell.contentViewer; docViewer.fullZoom = _zoom; }); } // Loading and common.js from accessible/tests/mochitest/ for all tests, as // well as events.js. loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js'); accessible/tests/browser/shared-head.js +25 −6 Original line number Diff line number Diff line Loading @@ -208,14 +208,15 @@ function addAccessibleTask(doc, task) { url = `${CURRENT_CONTENT_DIR}e10s/${doc}`; } else { // Assume it's a markup snippet. url = `data:text/html, <html> url = "data:text/html;charset=utf-8;base64,"; url += btoa( `<html> <head> <meta charset="utf-8"/> <title>Accessibility Test</title> </head> <body id="body">${doc}</body> </html>`; </html>`); } registerCleanupFunction(() => { Loading Loading @@ -284,16 +285,34 @@ function isDefunct(accessible) { * looks for an accessible that matches based on its DOMNode id. * @param {nsIAccessible} accessible root accessible * @param {String} id id to look up accessible for * @param {Array?} interfaces the interface or an array interfaces * to query it/them from obtained accessible * @return {nsIAccessible?} found accessible if any */ function findAccessibleChildByID(accessible, id) { function findAccessibleChildByID(accessible, id, interfaces) { if (getAccessibleDOMNodeID(accessible) === id) { return accessible; return queryInterfaces(accessible, interfaces); } for (let i = 0; i < accessible.children.length; ++i) { let found = findAccessibleChildByID(accessible.getChildAt(i), id); if (found) { return found; return queryInterfaces(found, interfaces); } } } function queryInterfaces(accessible, interfaces) { if (!interfaces) { return accessible; } for (let iface of interfaces.filter(i => !(accessible instanceof i))) { try { accessible.QueryInterface(iface); } catch (e) { ok(false, "Can't query " + iface); } } return accessible; } Loading
accessible/moz.build +1 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ TEST_DIRS += ['tests/mochitest'] BROWSER_CHROME_MANIFESTS += [ 'tests/browser/browser.ini', 'tests/browser/e10s/browser.ini', 'tests/browser/scroll/browser.ini', 'tests/browser/states/browser.ini' ] Loading
accessible/tests/browser/scroll/browser.ini 0 → 100644 +9 −0 Original line number Diff line number Diff line [DEFAULT] skip-if = e10s && os == 'win' && release_or_beta support-files = head.js !/accessible/tests/browser/events.js !/accessible/tests/browser/shared-head.js !/accessible/tests/mochitest/*.js [browser_test_zoom_text.js]
accessible/tests/browser/scroll/browser_test_zoom_text.js 0 → 100644 +119 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; /* import-globals-from ../../mochitest/layout.js */ loadScripts({ name: 'layout.js', dir: MOCHITESTS_DIR }); async function runTests(browser, accDoc) { let paragraph = findAccessibleChildByID(accDoc, "paragraph", [nsIAccessibleText]); let offset = 64; // beginning of 4th stanza let [x /*,y*/] = getPos(paragraph); let [docX, docY] = getPos(accDoc); paragraph.scrollSubstringToPoint(offset, offset, COORDTYPE_SCREEN_RELATIVE, docX, docY); testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE); await zoomContent(browser, 2.0); paragraph = findAccessibleChildByID(accDoc, "paragraph2", [nsIAccessibleText]); offset = 52; // // beginning of 4th stanza [x /*,y*/] = getPos(paragraph); paragraph.scrollSubstringToPoint(offset, offset, COORDTYPE_SCREEN_RELATIVE, docX, docY); testTextPos(paragraph, offset, [x, docY], COORDTYPE_SCREEN_RELATIVE); } /** * Test caching of accessible object states */ addAccessibleTask(` <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><hr> <p id='paragraph'> Пошел котик на торжок<br> Купил котик пирожок<br> Пошел котик на улочку<br> Купил котик булочку<br> </p> <hr><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><hr> <p id='paragraph2'> Самому ли съесть<br> Либо Сашеньке снесть<br> Я и сам укушу<br> Я и Сашеньке снесу<br> </p> <hr><br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br>`, runTests );
accessible/tests/browser/scroll/head.js 0 → 100644 +30 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 'use strict'; /* exported zoomContent */ // Load the shared-head file first. /* import-globals-from ../shared-head.js */ Services.scriptloader.loadSubScript( 'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js', this); async function zoomContent(browser, zoom) { return ContentTask.spawn(browser, zoom, _zoom => { let docShell = content .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShell); let docViewer = docShell.contentViewer; docViewer.fullZoom = _zoom; }); } // Loading and common.js from accessible/tests/mochitest/ for all tests, as // well as events.js. loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js');
accessible/tests/browser/shared-head.js +25 −6 Original line number Diff line number Diff line Loading @@ -208,14 +208,15 @@ function addAccessibleTask(doc, task) { url = `${CURRENT_CONTENT_DIR}e10s/${doc}`; } else { // Assume it's a markup snippet. url = `data:text/html, <html> url = "data:text/html;charset=utf-8;base64,"; url += btoa( `<html> <head> <meta charset="utf-8"/> <title>Accessibility Test</title> </head> <body id="body">${doc}</body> </html>`; </html>`); } registerCleanupFunction(() => { Loading Loading @@ -284,16 +285,34 @@ function isDefunct(accessible) { * looks for an accessible that matches based on its DOMNode id. * @param {nsIAccessible} accessible root accessible * @param {String} id id to look up accessible for * @param {Array?} interfaces the interface or an array interfaces * to query it/them from obtained accessible * @return {nsIAccessible?} found accessible if any */ function findAccessibleChildByID(accessible, id) { function findAccessibleChildByID(accessible, id, interfaces) { if (getAccessibleDOMNodeID(accessible) === id) { return accessible; return queryInterfaces(accessible, interfaces); } for (let i = 0; i < accessible.children.length; ++i) { let found = findAccessibleChildByID(accessible.getChildAt(i), id); if (found) { return found; return queryInterfaces(found, interfaces); } } } function queryInterfaces(accessible, interfaces) { if (!interfaces) { return accessible; } for (let iface of interfaces.filter(i => !(accessible instanceof i))) { try { accessible.QueryInterface(iface); } catch (e) { ok(false, "Can't query " + iface); } } return accessible; }