chromium/ios/chrome/browser/ui/tab_switcher/tab_strip/coordinator/BUILD.gn

# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("coordinator") {
  sources = [
    "tab_strip_coordinator.h",
    "tab_strip_coordinator.mm",
    "tab_strip_mediator.h",
    "tab_strip_mediator.mm",
  ]
  deps = [
    ":tab_strip_mediator_utils",
    "//base",
    "//components/favicon/ios",
    "//components/saved_tab_groups:core",
    "//components/strings",
    "//components/tab_groups",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/drag_and_drop/model",
    "//ios/chrome/browser/main/model",
    "//ios/chrome/browser/ntp/model:util",
    "//ios/chrome/browser/policy/model:policy_util",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/shared/coordinator/alert",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/coordinator/layout_guide",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/profile",
    "//ios/chrome/browser/shared/model/url",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/model/web_state_list:utils",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/util:snackbar_util",
    "//ios/chrome/browser/signin/model",
    "//ios/chrome/browser/ui/sharing",
    "//ios/chrome/browser/ui/tab_switcher",
    "//ios/chrome/browser/ui/tab_switcher:items",
    "//ios/chrome/browser/ui/tab_switcher:tab_group_confirmation",
    "//ios/chrome/browser/ui/tab_switcher:utils",
    "//ios/chrome/browser/ui/tab_switcher/tab_grid/grid:grid_utils",
    "//ios/chrome/browser/ui/tab_switcher/tab_grid/tab_groups:tab_group_creation",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui:swift",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui:utils",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui/context_menu",
    "//ios/chrome/browser/web_state_list/model",
    "//ios/third_party/material_components_ios",
    "//ios/web/public",
    "//ios/web/public/navigation",
    "//ui/gfx",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("tab_strip_mediator_utils") {
  sources = [
    "tab_strip_mediator_utils.h",
    "tab_strip_mediator_utils.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser/main/model",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/model/web_state_list:utils",
    "//ios/chrome/browser/ui/tab_switcher:items",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui:swift",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "fake_tab_strip_consumer.h",
    "fake_tab_strip_consumer.mm",
    "fake_tab_strip_handler.h",
    "fake_tab_strip_handler.mm",
  ]
  deps = [
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/ui/tab_switcher:items",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui:swift",
    "//ios/web/public/test/fakes",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "tab_strip_mediator_unittest.mm",
    "tab_strip_mediator_utils_unittest.mm",
  ]
  deps = [
    ":coordinator",
    ":tab_strip_mediator_utils",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/favicon/core",
    "//components/favicon/ios",
    "//components/saved_tab_groups:model",
    "//components/saved_tab_groups:test_support",
    "//components/tab_groups",
    "//ios/chrome/browser/drag_and_drop/model",
    "//ios/chrome/browser/favicon/model",
    "//ios/chrome/browser/history/model",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/model/web_state_list/test:test_support",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/snapshots/model",
    "//ios/chrome/browser/ui/tab_switcher",
    "//ios/chrome/browser/ui/tab_switcher:items",
    "//ios/chrome/browser/ui/tab_switcher:utils",
    "//ios/chrome/browser/ui/tab_switcher/tab_strip/ui:swift",
    "//ios/chrome/test:test_support",
    "//ios/web/public/test",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}