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

source_set("recent_tabs") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "recent_tabs_bridges.h",
    "recent_tabs_bridges.mm",
    "recent_tabs_panel_controller.h",
    "recent_tabs_panel_controller.mm",
    "recent_tabs_panel_view_controller.h",
    "recent_tabs_panel_view_controller.mm",
    "recent_tabs_table_view_controller.h",
    "recent_tabs_table_view_controller.mm",
    "sessions_sync_user_state.h",
    "synced_sessions.h",
    "synced_sessions.mm",
    "synced_sessions_bridge.h",
    "synced_sessions_bridge.mm",
  ]
  deps = [
    "//base",
    "//components/browser_sync",
    "//components/sessions",
    "//components/signin/core/browser",
    "//components/sync",
    "//ios/chrome/app/strings",
    "//ios/chrome/app/theme",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/metrics:metrics_internal",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/sync",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/context_menu",
    "//ios/chrome/browser/ui/ntp",
    "//ios/chrome/browser/ui/ntp/recent_tabs/views",
    "//ios/web",
    "//ui/base",
    "//url",
  ]
  public_deps = [
    "//components/sync_sessions",
  ]
  allow_circular_includes_from =
      [ "//ios/chrome/browser/ui/ntp/recent_tabs/views" ]
  libs = [ "UIKit.framework" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "recent_tabs_panel_controller_unittest.mm",
  ]
  deps = [
    ":recent_tabs",
    "//base",
    "//components/browser_sync",
    "//components/browser_sync:test_support",
    "//components/signin/core/browser",
    "//components/sync_sessions",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/sync",
    "//ios/chrome/browser/sync:test_support",
    "//ios/chrome/browser/ui/ntp:ntp_internal",
    "//ios/chrome/test:test_support",
    "//ios/web:test_support",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

source_set("eg_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "recent_tabs_panel_controller_egtest.mm",
  ]
  deps = [
    "//components/strings",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/tools_menu",
    "//ios/chrome/test/app:test_support",
    "//ios/chrome/test/earl_grey:test_support",
    "//ios/third_party/earl_grey",
    "//ios/web:test_support",
  ]
  libs = [ "XCTest.framework" ]
}
