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

import("//testing/test.gni")

source_set("common") {
  testonly = true

  sources = [
    "null_invalidation_state_tracker.cc",
    "null_invalidation_state_tracker.h",
  ]

  deps = [
    "//base",
    "//components/invalidation/impl",
    "//components/sync",
  ]
}

test("sync_listen_notifications") {
  sources = [
    "sync_listen_notifications.cc",
  ]

  defines = [ "SYNC_TEST" ]

  deps = [
    ":common",
    "//base",
    "//components/invalidation/impl",
    "//components/sync",
    "//components/sync:test_support_engine",
    "//jingle:notifier",
    "//net:test_support",
  ]
}

test("sync_client") {
  sources = [
    "sync_client.cc",
  ]

  defines = [ "SYNC_TEST" ]

  deps = [
    ":common",
    "//base",
    "//components/invalidation/impl",
    "//components/sync",
    "//components/sync:test_support_engine",
    "//jingle:notifier",
    "//net:test_support",
  ]
}
