# Copyright 2025 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("feature_list") {
  sources = [
    "features.cc",
    "features.h",
  ]
  deps = [
    "//base",
    "//ui/base",
  ]
}

source_set("public") {
  sources = [
    "account_utils.cc",
    "account_utils.h",
    "ai_thread_data_type_controller.cc",
    "ai_thread_data_type_controller.h",
    "context_decoration_params.cc",
    "context_decoration_params.h",
    "context_decorator.cc",
    "context_decorator.h",
    "contextual_task.cc",
    "contextual_task.h",
    "contextual_task_context.cc",
    "contextual_task_context.h",
    "contextual_tasks_service.cc",
    "contextual_tasks_service.h",
    "gemini_thread_data_type_controller.cc",
    "gemini_thread_data_type_controller.h",
    "prefs.cc",
    "prefs.h",
    "utils.cc",
    "utils.h",
  ]

  deps = [
    "//base",
    "//components/keyed_service/core",
    "//components/lens:lens_url_utils",
    "//components/omnibox/browser",
    "//components/prefs",
    "//components/sessions:session_id",
    "//components/signin/public/identity_manager",
    "//components/sync/service",
    "//components/url_deduplication",
    "//components/visited_url_ranking/public",
    "//net",
    "//third_party/re2",
    "//ui/gfx",
    "//url",
  ]

  public_deps = [
    ":feature_list",
    "//third_party/omnibox_proto",
  ]
}

source_set("query_contextualizer") {
  sources = [
    "query_contextualizer.cc",
    "query_contextualizer.h",
  ]

  deps = [
    ":public",
    "//base",
    "//components/contextual_search:public",
    "//components/lens",
    "//components/lens:lens_url_utils",
    "//components/sessions:session_id",
    "//components/url_deduplication",
    "//third_party/re2",
    "//ui/gfx",
    "//url",
  ]
}

source_set("test_support") {
  testonly = true

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

  deps = [
    ":public",
    "//base",
    "//components/sessions:session_id",
    "//testing/gmock",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "account_utils_unittest.cc",
    "ai_thread_data_type_controller_unittest.cc",
    "contextual_task_context_unittest.cc",
    "contextual_task_unittest.cc",
    "features_unittest.cc",
    "gemini_thread_data_type_controller_unittest.cc",
    "prefs_unittest.cc",
  ]

  deps = [
    ":public",
    ":test_support",
    "//base/test:test_support",
    "//components/omnibox/browser:test_support",
    "//components/prefs:test_support",
    "//components/sessions:session_id",
    "//components/signin/public/identity_manager:test_support",
    "//components/sync:test_support",
    "//components/sync/service",
    "//components/sync_preferences:test_support",
    "//components/url_deduplication",
    "//components/visited_url_ranking/public",
    "//testing/gtest",
    "//url",
  ]

  visibility = [ "//components/contextual_tasks:unit_tests" ]
}

source_set("search_unittests") {
  testonly = true

  sources = [ "query_contextualizer_unittest.cc" ]

  deps = [
    ":public",
    ":query_contextualizer",
    ":test_support",
    "//base/test:test_support",
    "//components/contextual_search:public",
    "//components/contextual_search:test_support",
    "//components/lens",
    "//components/sessions:session_id",
    "//testing/gtest",
    "//url",
  ]

  visibility = [ "//components/contextual_tasks:unit_tests" ]
}
