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

source_set("sync_wifi") {
  sources = [
    "network_state_helper_chromeos.cc",
    "network_state_helper_chromeos.h",
    "wifi_config_delegate.h",
    "wifi_config_delegate_chromeos.cc",
    "wifi_config_delegate_chromeos.h",
    "wifi_credential.cc",
    "wifi_credential.h",
    "wifi_credential_syncable_service.cc",
    "wifi_credential_syncable_service.h",
    "wifi_credential_syncable_service_factory.cc",
    "wifi_credential_syncable_service_factory.h",
    "wifi_security_class.cc",
    "wifi_security_class.h",
    "wifi_security_class_chromeos.cc",
  ]

  deps = [
    "//base",
    "//base:i18n",
    "//components/keyed_service/content",
    "//components/keyed_service/core",
    "//components/onc",
    "//components/sync",
    "//content/public/browser",
  ]

  if (is_chromeos) {
    deps += [ "//chromeos" ]
  }
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "wifi_config_delegate_chromeos_unittest.cc",
    "wifi_credential_syncable_service_unittest.cc",
    "wifi_credential_unittest.cc",
    "wifi_security_class_chromeos_unittest.cc",
    "wifi_security_class_unittest.cc",
  ]

  deps = [
    ":sync_wifi",
    "//base",
    "//chromeos",
    "//components/onc",
    "//components/sync",
    "//components/sync:test_support_model",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
