# 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("network_time") {
  sources = [
    "network_time_pref_names.cc",
    "network_time_pref_names.h",
    "network_time_tracker.cc",
    "network_time_tracker.h",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//components/client_update_protocol",
    "//components/data_use_measurement/core",
    "//components/prefs",
    "//components/variations",
    "//net",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "network_time_tracker_unittest.cc",
  ]

  deps = [
    ":network_time",
    ":network_time_test_support",
    "//base",
    "//base/test:test_support",
    "//components/client_update_protocol",
    "//components/prefs:test_support",
    "//components/variations",
    "//net",
    "//net:test_support",
    "//testing/gtest",
  ]
}

source_set("network_time_test_support") {
  testonly = true
  sources = [
    "network_time_test_utils.cc",
    "network_time_test_utils.h",
  ]

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