# Copyright 2016 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")

source_set("lib") {
  sources = [
    "ime_driver_bridge.cc",
    "ime_driver_bridge.h",
    "ime_registrar_impl.cc",
    "ime_registrar_impl.h",
  ]

  deps = [
    "//base",
    "//mojo/public/cpp/bindings",
    "//services/service_manager/public/cpp",
    "//services/ws/public/mojom",
  ]
}

source_set("tests") {
  testonly = true

  sources = [
    "ime_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//services/service_manager/public/cpp",
    "//services/service_manager/public/cpp/test:test_support",
    "//services/viz/public/cpp:manifest",
    "//services/ws/ime/test_ime_driver/public/cpp:manifest",
    "//services/ws/ime/test_ime_driver/public/mojom",
    "//services/ws/public/mojom",
    "//services/ws/test_ws:manifest",
    "//testing/gtest",
  ]

  data_deps = [
    "//services/viz",
    "//services/ws/ime/test_ime_driver",
    "//services/ws/test_ws",
  ]
}
