/* 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 testIsControl(pyVar, isControl) { const result = await runPython(`bool(${pyVar}.CurrentIsControlElement)`); if (isControl) { ok(result, `${pyVar} is a control element`); } else { ok(!result, `${pyVar} isn't a control element`); } } addUiaTask( `

paragraph

div
link >

h1

h1 with div

clickable
editable
th
`, async function () { await definePyVar("doc", `getDocUia()`); await assignPyVarToUiaWithId("p"); await testIsControl("p", false); await definePyVar( "pTextLeaf", `uiaClient.RawViewWalker.GetFirstChildElement(p)` ); await testIsControl("pTextLeaf", true); await assignPyVarToUiaWithId("div"); await testIsControl("div", false); await definePyVar( "divTextLeaf", `uiaClient.RawViewWalker.GetFirstChildElement(div)` ); await testIsControl("divTextLeaf", true); await assignPyVarToUiaWithId("link"); await testIsControl("link", true); await assignPyVarToUiaWithId("range"); await testIsControl("range", true); await assignPyVarToUiaWithId("editable"); await testIsControl("editable", true); await assignPyVarToUiaWithId("table"); await testIsControl("table", true); if (!gIsUiaEnabled) { // The remaining tests are broken with the UIA -> IA2 proxy. return; } await definePyVar( "linkTextLeaf", `uiaClient.RawViewWalker.GetFirstChildElement(link)` ); await testIsControl("linkTextLeaf", false); await assignPyVarToUiaWithId("h1"); await testIsControl("h1", true); await definePyVar( "h1TextLeaf", `uiaClient.RawViewWalker.GetFirstChildElement(h1)` ); await testIsControl("h1TextLeaf", false); await assignPyVarToUiaWithId("h1WithDiv"); await testIsControl("h1WithDiv", true); // h1WithDiv's text leaf is its grandchild. await definePyVar( "h1WithDivTextLeaf", `uiaClient.RawViewWalker.GetFirstChildElement( uiaClient.RawViewWalker.GetFirstChildElement( h1WithDiv ) )` ); await testIsControl("h1WithDivTextLeaf", false); await assignPyVarToUiaWithId("clickable"); await testIsControl("clickable", true); } );