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

static_library("core") {
  sources = [
    "previews_black_list.cc",
    "previews_black_list.h",
    "previews_black_list_item.cc",
    "previews_black_list_item.h",
    "previews_decider.h",
    "previews_experiments.cc",
    "previews_experiments.h",
    "previews_features.cc",
    "previews_features.h",
    "previews_io_data.cc",
    "previews_io_data.h",
    "previews_opt_out_store.h",
    "previews_opt_out_store_sql.cc",
    "previews_opt_out_store_sql.h",
    "previews_ui_service.cc",
    "previews_ui_service.h",
  ]

  deps = [
    "//base",
    "//components/variations",
    "//net:net",
    "//sql",
    "//url:url",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "previews_black_list_item_unittest.cc",
    "previews_black_list_unittest.cc",
    "previews_experiments_unittest.cc",
    "previews_io_data_unittest.cc",
    "previews_opt_out_store_sql_unittest.cc",
    "previews_ui_service_unittest.cc",
  ]

  deps = [
    ":core",
    "//base",
    "//base/test:test_support",
    "//components/variations",
    "//net:net",
    "//net:test_support",
    "//sql",
    "//sql:test_support",
    "//testing/gtest",
    "//url:url",
  ]
}
