1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/accessibility/test_ax_tree_manager.h" 6 7 #include "ui/accessibility/ax_node.h" 8 #include "ui/accessibility/ax_tree_data.h" 9 #include "ui/accessibility/ax_tree_manager_map.h" 10 11 namespace ui { 12 13 TestAXTreeManager::TestAXTreeManager() = default; 14 TestAXTreeManager(std::unique_ptr<AXTree> tree)15TestAXTreeManager::TestAXTreeManager(std::unique_ptr<AXTree> tree) 16 : tree_(std::move(tree)) { 17 AXTreeManagerMap::GetInstance().AddTreeManager(GetTreeID(), this); 18 } 19 ~TestAXTreeManager()20TestAXTreeManager::~TestAXTreeManager() { 21 if (tree_) 22 AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID()); 23 } 24 DestroyTree()25void TestAXTreeManager::DestroyTree() { 26 if (!tree_) 27 return; 28 29 AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID()); 30 tree_.reset(); 31 } 32 GetTree() const33AXTree* TestAXTreeManager::GetTree() const { 34 DCHECK(tree_) << "Did you forget to call SetTree?"; 35 return tree_.get(); 36 } 37 SetTree(std::unique_ptr<AXTree> tree)38void TestAXTreeManager::SetTree(std::unique_ptr<AXTree> tree) { 39 if (tree_) 40 AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID()); 41 42 tree_ = std::move(tree); 43 AXTreeManagerMap::GetInstance().AddTreeManager(GetTreeID(), this); 44 } 45 GetNodeFromTree(const AXTreeID tree_id,const AXNode::AXID node_id) const46AXNode* TestAXTreeManager::GetNodeFromTree(const AXTreeID tree_id, 47 const AXNode::AXID node_id) const { 48 return (tree_ && GetTreeID() == tree_id) ? tree_->GetFromId(node_id) 49 : nullptr; 50 } 51 GetNodeFromTree(const AXNode::AXID node_id) const52AXNode* TestAXTreeManager::GetNodeFromTree(const AXNode::AXID node_id) const { 53 return tree_ ? tree_->GetFromId(node_id) : nullptr; 54 } 55 GetTreeID() const56AXTreeID TestAXTreeManager::GetTreeID() const { 57 return tree_ ? tree_->data().tree_id : AXTreeIDUnknown(); 58 } 59 GetParentTreeID() const60AXTreeID TestAXTreeManager::GetParentTreeID() const { 61 return AXTreeIDUnknown(); 62 } 63 GetRootAsAXNode() const64AXNode* TestAXTreeManager::GetRootAsAXNode() const { 65 return tree_ ? tree_->root() : nullptr; 66 } 67 GetParentNodeFromParentTreeAsAXNode() const68AXNode* TestAXTreeManager::GetParentNodeFromParentTreeAsAXNode() const { 69 return nullptr; 70 } 71 72 } // namespace ui 73