# Copyright 2014 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("suggestions") {
  sources = [
    "blacklist_store.cc",
    "blacklist_store.h",
    "suggestions_pref_names.cc",
    "suggestions_pref_names.h",
    "suggestions_service.h",
    "suggestions_service_impl.cc",
    "suggestions_service_impl.h",
    "suggestions_store.cc",
    "suggestions_store.h",
    "webui/suggestions_source.cc",
    "webui/suggestions_source.h",
  ]

  public_deps = [
    "//base",
    "//components/prefs",
    "//components/suggestions/proto",
    "//net",
    "//ui/base",
    "//ui/gfx",
    "//url",
  ]
  deps = [
    "//components/google/core/common",
    "//components/keyed_service/core",
    "//components/pref_registry",
    "//components/signin/public/identity_manager",
    "//components/sync",
    "//components/variations",
    "//components/variations/net",
    "//google_apis",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "blacklist_store_unittest.cc",
    "suggestions_service_impl_unittest.cc",
    "suggestions_store_unittest.cc",
  ]
  deps = [
    ":suggestions",
    "//base/test:test_support",
    "//components/signin/public/identity_manager:test_support",
    "//components/sync:test_support",
    "//components/sync_preferences:test_support",
    "//net:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
