# 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",
    "//chromeos/dbus",
    "//chromeos/dbus: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/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: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",
  ]
}
