# 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("wifi_sync") {
  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",
    "//components/onc",
    "//sync",
  ]
}

source_set("unit_tests") {
  testonly = true

  deps = [
    ":wifi_sync",
    "//sync",
    "//testing/gmock",
    "//testing/gtest",
  ]

  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",
  ]
}
