# Copyright 2018 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("//mojo/public/tools/bindings/mojom.gni")

mojom("mojom") {
  sources = [
    "multidevice_types.mojom",
  ]

  public_deps = [
    "//mojo/public/mojom/base",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "multidevice_mojom_traits_unittest.cc",
  ]

  deps = [
    ":mojom",
    "//base",
    "//base/test:test_support",
    "//chromeos/components/multidevice",
    "//mojo/public/cpp/test_support:test_utils",
    "//testing/gtest",
  ]
}
