# Copyright 2014 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.

component("accessibility") {
  sources = [
    "ax_enums.cc",
    "ax_enums.h",
    "ax_node.cc",
    "ax_node.h",
    "ax_node_data.cc",
    "ax_node_data.h",
    "ax_serializable_tree.cc",
    "ax_serializable_tree.h",
    "ax_text_utils.cc",
    "ax_text_utils.h",
    "ax_tree.cc",
    "ax_tree.h",
    "ax_tree_serializer.cc",
    "ax_tree_serializer.h",
    "ax_tree_source.h",
    "ax_tree_update.cc",
    "ax_tree_update.h",
    "ax_view_state.cc",
    "ax_view_state.h",
    "platform/ax_platform_node.cc",
    "platform/ax_platform_node.h",
    "platform/ax_platform_node_base.cc",
    "platform/ax_platform_node_base.h",
    "platform/ax_platform_node_delegate.h",
    "platform/ax_platform_node_mac.h",
    "platform/ax_platform_node_mac.mm",
  ]

  defines = [ "ACCESSIBILITY_IMPLEMENTATION" ]

  public_deps = [
    "//base",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}

source_set("test_support") {
  sources = [
    "tree_generator.cc",
    "tree_generator.h"
  ]

  deps = [
    ":accessibility"
  ]
}

test("accessibility_unittests") {
  sources = [
    "ax_generated_tree_unittest.cc",
    "ax_tree_serializer_unittest.cc",
    "ax_tree_unittest.cc",
  ]

  deps = [
    ":accessibility",
    ":test_support",
    "//base",
    "//base/test:run_all_unittests",
    "//testing/gtest",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}
