blob: 52d6ab7106086010a7e3ee6d054686fb2041144f [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/screen_ai/screen_ai_service_impl.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/accessibility/ax_tree.h"
namespace screen_ai {
TEST(ScreenAIServiceImplTest, ComputeMainNode) {
ui::AXTreeUpdate snapshot;
ui::AXNodeData root;
root.id = 1;
ui::AXNodeData node1;
node1.id = 2;
ui::AXNodeData node2;
node2.id = 3;
ui::AXNodeData node3;
node3.id = 4;
ui::AXNodeData node4;
node4.id = 5;
ui::AXNodeData node5;
node5.id = 6;
root.child_ids = {node1.id, node2.id};
node2.child_ids = {node3.id, node4.id, node5.id};
snapshot.root_id = root.id;
snapshot.nodes = {root, node1, node2, node3, node4, node5};
ui::AXTree tree(snapshot);
EXPECT_EQ(node2.id, ScreenAIService::ComputeMainNodeForTesting(
&tree, {node3.id, node4.id}));
EXPECT_EQ(node2.id, ScreenAIService::ComputeMainNodeForTesting(
&tree, {node3.id, node4.id, node5.id}));
EXPECT_EQ(node2.id, ScreenAIService::ComputeMainNodeForTesting(
&tree, {node3.id, node5.id}));
EXPECT_EQ(root.id, ScreenAIService::ComputeMainNodeForTesting(
&tree, {node1.id, node2.id}));
EXPECT_EQ(root.id,
ScreenAIService::ComputeMainNodeForTesting(
&tree, {node1.id, node2.id, node3.id, node4.id, node5.id}));
}
} // namespace screen_ai