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

static_library("bubble") {
  sources = [
    "bubble_close_reason.h",
    "bubble_controller.cc",
    "bubble_controller.h",
    "bubble_delegate.cc",
    "bubble_delegate.h",
    "bubble_manager.cc",
    "bubble_manager.h",
    "bubble_reference.h",
    "bubble_ui.h",
  ]

  deps = [
    "//base",
  ]
}

static_library("test_support") {
  testonly = true

  sources = [
    "bubble_manager_mocks.cc",
    "bubble_manager_mocks.h",
  ]

  deps = [
    ":bubble",
    "//base",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "bubble_manager_unittest.cc",
  ]

  deps = [
    ":bubble",
    ":test_support",
    "//base",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
