UNPKG

@dcloudio/uni-debugger

Version:

uni-app debugger

75 lines (59 loc) 2.32 kB
// Copyright 2017 The Chromium Authors. All // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** * @fileoverview using private properties isn't a Closure violation in tests. * @suppress {accessControls} */ AccessibilityTestRunner.accessibilitySidebarPane = function() { return self.runtime.sharedInstance(Accessibility.AccessibilitySidebarView); }; AccessibilityTestRunner.selectNodeAndWaitForAccessibility = function(idValue) { return new Promise(resolve => { ElementsTestRunner.selectNodeWithId(idValue, function() { self.runtime.sharedInstance(Accessibility.AccessibilitySidebarView).doUpdate().then(resolve); }); }); }; AccessibilityTestRunner.dumpSelectedElementAccessibilityNode = function() { const sidebarPane = AccessibilityTestRunner.accessibilitySidebarPane(); if (!sidebarPane) { TestRunner.addResult('No sidebarPane in dumpSelectedElementAccessibilityNode'); TestRunner.completeTest(); return; } AccessibilityTestRunner.dumpAccessibilityNode(sidebarPane._axNodeSubPane._axNode); }; AccessibilityTestRunner.dumpAccessibilityNode = function(accessibilityNode) { if (!accessibilityNode) { TestRunner.addResult('<null>'); TestRunner.completeTest(); return; } const builder = []; builder.push(accessibilityNode.role().value); builder.push((accessibilityNode.name() ? '"' + accessibilityNode.name().value + '"' : '<undefined>')); if (accessibilityNode.properties()) { for (const property of accessibilityNode.properties()) { if ('value' in property) builder.push(property.name + '="' + property.value.value + '"'); } } TestRunner.addResult(builder.join(' ')); }; AccessibilityTestRunner.findARIAAttributeTreeElement = function(attribute) { const sidebarPane = AccessibilityTestRunner.accessibilitySidebarPane(); if (!sidebarPane) { TestRunner.addResult('Could not get Accessibility sidebar pane.'); TestRunner.completeTest(); return; } const ariaSubPane = sidebarPane._ariaSubPane; const treeOutline = ariaSubPane._treeOutline; const childNodes = treeOutline._rootElement._children; for (const treeElement of childNodes) { if (treeElement._attribute.name === attribute) return treeElement; } return null; };