/* 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"; async function testIsFocusable(pyVar, isFocusable) { const result = await runPython(`${pyVar}.CurrentIsKeyboardFocusable`); if (isFocusable) { ok(result, `${pyVar} is focusable`); } else { ok(!result, `${pyVar} isn't focusable`); } } async function testHasFocus(pyVar, hasFocus) { const result = await runPython(`${pyVar}.CurrentHasKeyboardFocus`); if (hasFocus) { ok(result, `${pyVar} has focus`); } else { ok(!result, `${pyVar} doesn't have focus`); } } addUiaTask( `

p

`, async function (browser) { await definePyVar("doc", `getDocUia()`); await testIsFocusable("doc", true); await testHasFocus("doc", true); await assignPyVarToUiaWithId("button1"); await testIsFocusable("button1", true); await testHasFocus("button1", false); info("Focusing button1"); await setUpWaitForUiaEvent("AutomationFocusChanged", "button1"); await invokeFocus(browser, "button1"); await waitForUiaEvent(); ok(true, "Got AutomationFocusChanged event on button1"); await testHasFocus("button1", true); await assignPyVarToUiaWithId("p"); await testIsFocusable("p", false); await testHasFocus("p", false); await assignPyVarToUiaWithId("button2"); await testIsFocusable("button2", true); await testHasFocus("button2", false); info("Focusing button2"); await setUpWaitForUiaEvent("AutomationFocusChanged", "button2"); await invokeFocus(browser, "button2"); await waitForUiaEvent(); ok(true, "Got AutomationFocusChanged event on button2"); await testHasFocus("button2", true); await testHasFocus("button1", false); } );