| // Copyright 2019 The Fuchsia 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 "src/ui/a11y/lib/semantics/tests/mocks/mock_semantic_provider.h" |
| |
| #include <lib/syslog/cpp/logger.h> |
| |
| namespace accessibility_test { |
| |
| MockSemanticProvider::MockSemanticProvider(sys::ComponentContext* context, |
| fuchsia::ui::views::ViewRef view_ref) |
| : view_ref_(std::move(view_ref)) { |
| context->svc()->Connect(manager_.NewRequest()); |
| manager_.set_error_handler([](zx_status_t status) { |
| FX_LOGS(ERROR) << "Cannot connect to SemanticsManager with status:" << status; |
| }); |
| fidl::InterfaceHandle<fuchsia::accessibility::semantics::SemanticActionListener> listener_handle; |
| action_listener_.Bind(&listener_handle); |
| manager_->RegisterView(std::move(view_ref_), std::move(listener_handle), tree_ptr_.NewRequest()); |
| } |
| |
| void MockSemanticProvider::UpdateSemanticNodes( |
| std::vector<fuchsia::accessibility::semantics::Node> nodes) { |
| tree_ptr_->UpdateSemanticNodes(std::move(nodes)); |
| } |
| |
| void MockSemanticProvider::DeleteSemanticNodes(std::vector<uint32_t> node_ids) { |
| tree_ptr_->DeleteSemanticNodes(std::move(node_ids)); |
| } |
| |
| void MockSemanticProvider::Commit() { tree_ptr_->Commit(); } |
| |
| void MockSemanticProvider::SetHitTestResult(uint32_t hit_test_result) { |
| action_listener_.SetHitTestResult(hit_test_result); |
| } |
| |
| } // namespace accessibility_test |