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

import("//testing/test.gni")

assert(is_chromeos)

component("chromeos") {
  output_name = "ui_chromeos"
  sources = [
    "accelerometer/accelerometer_util.cc",
    "accelerometer/accelerometer_util.h",
    "ime/candidate_view.cc",
    "ime/candidate_view.h",
    "ime/candidate_window_view.cc",
    "ime/candidate_window_view.h",
    "ime/infolist_window.cc",
    "ime/infolist_window.h",
    "ime/input_method_menu_item.cc",
    "ime/input_method_menu_item.h",
    "ime/input_method_menu_manager.cc",
    "ime/input_method_menu_manager.h",
    "ime/mode_indicator_view.cc",
    "ime/mode_indicator_view.h",
    "touch_accessibility_enabler.cc",
    "touch_accessibility_enabler.h",
    "touch_exploration_controller.cc",
    "touch_exploration_controller.h",
    "user_activity_power_manager_notifier.cc",
    "user_activity_power_manager_notifier.h",
  ]
  defines = [ "UI_CHROMEOS_IMPLEMENTATION" ]
  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//chromeos:chromeos",
    "//chromeos:power_manager_proto",
    "//components/device_event_log",
    "//components/onc",
    "//skia",
    "//ui/aura",
    "//ui/base",
    "//ui/base/ime",
    "//ui/chromeos/resources",
    "//ui/chromeos/strings",
    "//ui/display",
    "//ui/events",
    "//ui/events:gesture_detection",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/message_center",
    "//ui/native_theme",
    "//ui/views",
    "//ui/wm",
  ]
}

test("ui_chromeos_unittests") {
  sources = [
    "ime/candidate_view_unittest.cc",
    "ime/candidate_window_view_unittest.cc",
    "ime/input_method_menu_item_unittest.cc",
    "ime/input_method_menu_manager_unittest.cc",
    "run_all_unittests.cc",
    "touch_accessibility_enabler_unittest.cc",
    "touch_exploration_controller_unittest.cc",
  ]
  deps = [
    ":chromeos",
    "//base/test:test_support",
    "//chromeos",
    "//skia",
    "//testing/gtest",
    "//ui/aura:test_support",
    "//ui/compositor",
    "//ui/events:test_support",
    "//ui/gl:test_support",
    "//ui/message_center",
    "//ui/resources:ui_test_pak",
    "//ui/views",
    "//ui/views:test_support",
  ]
  data = [
    "$root_out_dir/locales/en-US.pak",
    "$root_out_dir/ui_test.pak",
  ]
}
