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

source_set("overlays") {
  sources = [
    "overlay_coordinator.h",
    "overlay_service.h",
    "overlay_service_factory.h",
    "overlay_service_observer.h",
    "overlay_service_observer_bridge.h",
    "overlay_service_observer_bridge.mm",
  ]

  deps = [
    ":overlays_internal",
    "//base",
    "//components/keyed_service/core",
    "//components/keyed_service/ios",
    "//ios/chrome/browser/ui/coordinators",
  ]

  allow_circular_includes_from = [ ":overlays_internal" ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("overlays_internal") {
  sources = [
    "browser_overlay_queue.h",
    "browser_overlay_queue.mm",
    "overlay_coordinator+internal.h",
    "overlay_coordinator.mm",
    "overlay_queue.h",
    "overlay_queue.mm",
    "overlay_queue_manager.h",
    "overlay_queue_manager.mm",
    "overlay_queue_manager_observer.h",
    "overlay_queue_observer.h",
    "overlay_scheduler.h",
    "overlay_scheduler.mm",
    "overlay_scheduler_observer.h",
    "overlay_service_factory.mm",
    "overlay_service_impl.h",
    "overlay_service_impl.mm",
    "web_state_overlay_queue.h",
    "web_state_overlay_queue.mm",
  ]

  deps = [
    "//base",
    "//components/keyed_service/core",
    "//components/keyed_service/ios",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/ui/browser_list",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/coordinators",
    "//ios/chrome/browser/web_state_list",
    "//ios/web",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "overlay_queue_manager_unittest.mm",
    "overlay_queue_unittest.mm",
    "overlay_scheduler_unittest.mm",
  ]

  configs += [ "//build/config/compiler:enable_arc" ]

  deps = [
    ":overlays",
    ":overlays_internal",
    "//base",
    "//base/test:test_support",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/ui/browser_list",
    "//ios/chrome/browser/ui/coordinators",
    "//ios/chrome/browser/ui/coordinators:test_support",
    "//ios/chrome/browser/ui/overlays/test",
    "//ios/chrome/browser/web_state_list",
    "//ios/chrome/test/base",
    "//ios/web",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//testing/gtest",
  ]
}
