910e62b5创建于 1月15日历史提交
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/accessibility/mojom/ax_tree_update_mojom_traits.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/accessibility/ax_tree_update.h"
#include "ui/accessibility/mojom/ax_relative_bounds_mojom_traits.h"
#include "ui/accessibility/mojom/ax_tree_update.mojom.h"

using mojo::test::SerializeAndDeserialize;

TEST(AXTreeUpdateMojomTraitsTest, TestSerializeAndDeserializeAXTreeUpdate) {
  ui::AXTreeUpdate input, output;
  input.has_tree_data = true;
  input.tree_data.focus_id = 1;
  input.node_id_to_clear = 2;
  input.root_id = 3;
  input.nodes.resize(2);
  input.nodes[0].role = ax::mojom::Role::kButton;
  input.nodes[1].id = 4;
  input.event_from = ax::mojom::EventFrom::kUser;
  input.event_from_action = ax::mojom::Action::kDoDefault;
  EXPECT_TRUE(SerializeAndDeserialize<ax::mojom::AXTreeUpdate>(input, output));
  EXPECT_EQ(true, output.has_tree_data);
  EXPECT_EQ(1, output.tree_data.focus_id);
  EXPECT_EQ(2, output.node_id_to_clear);
  EXPECT_EQ(3, output.root_id);
  ASSERT_EQ(2U, output.nodes.size());
  EXPECT_EQ(ax::mojom::Role::kButton, output.nodes[0].role);
  EXPECT_EQ(4, output.nodes[1].id);
  EXPECT_EQ(ax::mojom::EventFrom::kUser, output.event_from);
  EXPECT_EQ(ax::mojom::Action::kDoDefault, output.event_from_action);
}