910e62b5创建于 1月15日历史提交
// 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