blob: e699a879f138766f81ef26ee94eecc0b2c0287d6 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/accessibility/test_ax_tree_manager.h"
#include "ui/accessibility/ax_node.h"
#include "ui/accessibility/ax_tree_data.h"
#include "ui/accessibility/ax_tree_manager_map.h"
namespace ui {
TestAXTreeManager::TestAXTreeManager() = default;
TestAXTreeManager::TestAXTreeManager(std::unique_ptr<AXTree> tree)
: tree_(std::move(tree)) {
AXTreeManagerMap::GetInstance().AddTreeManager(GetTreeID(), this);
}
TestAXTreeManager::~TestAXTreeManager() {
if (tree_)
AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID());
}
void TestAXTreeManager::DestroyTree() {
if (!tree_)
return;
AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID());
tree_.reset();
}
AXTree* TestAXTreeManager::GetTree() const {
DCHECK(tree_) << "Did you forget to call SetTree?";
return tree_.get();
}
void TestAXTreeManager::SetTree(std::unique_ptr<AXTree> tree) {
if (tree_)
AXTreeManagerMap::GetInstance().RemoveTreeManager(GetTreeID());
tree_ = std::move(tree);
AXTreeManagerMap::GetInstance().AddTreeManager(GetTreeID(), this);
}
AXNode* TestAXTreeManager::GetNodeFromTree(const AXTreeID tree_id,
const AXNode::AXID node_id) const {
return (tree_ && GetTreeID() == tree_id) ? tree_->GetFromId(node_id)
: nullptr;
}
AXNode* TestAXTreeManager::GetNodeFromTree(const AXNode::AXID node_id) const {
return tree_ ? tree_->GetFromId(node_id) : nullptr;
}
AXTreeID TestAXTreeManager::GetTreeID() const {
return tree_ ? tree_->data().tree_id : AXTreeIDUnknown();
}
AXTreeID TestAXTreeManager::GetParentTreeID() const {
return AXTreeIDUnknown();
}
AXNode* TestAXTreeManager::GetRootAsAXNode() const {
return tree_ ? tree_->root() : nullptr;
}
AXNode* TestAXTreeManager::GetParentNodeFromParentTreeAsAXNode() const {
return nullptr;
}
} // namespace ui