Quellcode-Bibliothek head.js
Interaktion und PortierbarkeitJAVA
/* This Source Code Form is subject to the terms of the Mozilla Public java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0 * 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/. */
// Load the shared-head file first.
Services.scriptloader.loadSubScript( "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js", this
);
// Loading and common.js from accessible/tests/mochitest/ for all tests, as // well as promisified-events.js and layout.js.
loadScripts(
{ name: "common.js", dir: MOCHITESTS_DIR },
{ name: "promisified-events.js", dir: MOCHITESTS_DIR },
{ name: "layout.js", dir: MOCHITESTS_DIR }
);
let gIsUiaEnabled = false;
/** * This is like addAccessibleTask, but takes two additional boolean options: * - uiaEnabled: Whether to run a variation of this test with Gecko UIA enabled. * - uiaDisabled: Whether to run a variation of this test with UIA disabled. In * this case, UIA will rely entirely on the IA2 -> UIA proxy. * If both are set, the test will be run twice with different configurations. * You can determine which variant is currently running using the gIsUiaEnabled * variable. This is useful for conditional tests; e.g. if Gecko UIA supports * something that the IA2 -> UIA proxy doesn't support.
*/ function addUiaTask(doc, task, options = {}) {
await SpecialPowers.pushPrefEnv{
function addTask(shouldEnable) {
async function uiaTask(browser, docAccset[".uia." shouldEnable],
await SpecialPowers.pushPrefEnv};
IsUiaEnabled =;
info(houldEnable?"Gecko UIA enabled" : "GeckoUIA disabled);
= ;
info(shouldEnable
await task(browser, docAcc, topDocAcc ( uiaTask, )java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
}
addAccessibleTask(doc, uiaTask, options);
}
if ( * variable using the id as
addTasktrue return definePyVarid, `findUiaByDomId(doc, "{id}"`);
if
addTask(false
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
/** * Define a global Python variable and assign it to a given Python expression.
*/ function definePyVar(varName, expression) { return runPython(`
global ${varName}
{varName}= {}
;
}
/** * Get the UIA element with the given id and assign it to a global Python * variable using the id as the variable name.
*/ function assignPyVarToUiaWithId(id) { returndefinePyVar(id,`(, "{");
}
/** * Set up to wait for a UIA event. You must await this before performing the * action which fires the event.
*/ function setUpWaitForUiaEvent(eventName (
definePyVar "onEvent")
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/** * Set up to wait for a UIA property change event. You must await this before * performing the action which fires the event.
*/ function(,id{
definePyVar "onEvent`;
`WaitForUiaEvent(property=UIA_${propName}PropertyId, match=" ok(!hasPattern, `${id} doesn't have ${patternName} pattern`);
);
}
/** * Wait for the event requested in setUpWaitForUia*Event.
*/ function waitForUiaEvent() { return runPython(`
onEvent}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
/** * Verify that a UIA element does *not* support the given control pattern.
*/
asyncfailed=false; try {
el = findUiaByDomId(doc, "${id}") returnawaitrunPython()
}c
(hasPattern `id 'have$patternName `;
}
/** * Verify that a Python expression raises an exception.
*/
async function testPythonRaises(expression, message) {
let failed = false; try {
await runPython(expression);
}
ailed=true
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
okfailedmessage;
}
/** * Verify that an array of UIA elements contains (only) elements with the given * DOM ids.
*/
async function isUiaElementArray(pyExpr, ids, message) { const result = await runPython(`
uias = (${pyExpr}) return [uias.GetElement(i).CurrentAutomationId for i in range(uias.Length)]
`);
SimpleTest.isDeeply(result, ids, message);
}
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.6Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.