# 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 = [
    "devicetype_utils.cc",
    "devicetype_utils.h",
    "ime/candidate_view.cc",
    "ime/candidate_view.h",
    "ime/candidate_window_constants.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",
    "user_activity_power_manager_notifier.cc",
    "user_activity_power_manager_notifier.h",
  ]
  defines = [ "UI_CHROMEOS_IMPLEMENTATION" ]
  deps = [
    "//base",
    "//base/third_party/dynamic_annotations",
    "//chromeos/constants",
    "//chromeos/dbus/power",
    "//chromeos/dbus/power:power_manager_proto",
    "//components/device_event_log",
    "//components/onc",
    "//mojo/public/cpp/bindings",
    "//services/device/public/mojom",
    "//services/service_manager/public/cpp",
    "//services/ws/public/mojom",
    "//skia",
    "//ui/aura",
    "//ui/base",
    "//ui/base/ime",
    "//ui/chromeos/resources",
    "//ui/chromeos/strings",
    "//ui/display",
    "//ui/events",
    "//ui/events:gesture_detection",
    "//ui/events/devices:devices",
    "//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",
  ]
  deps = [
    ":chromeos",
    "//base/test:test_support",
    "//chromeos:chromeos_buildflags",
    "//mojo/core/embedder",
    "//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",
  ]
}
