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

source_set("test_support") {
  testonly = true

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

  deps = [
    "//components/content_settings/core/common",
    "//components/gcm_driver:gcm_driver",
    "//components/signin/core/browser",
    "//mojo/edk/system",
    "//net",
    "//testing/gtest",
    "//ui/base",
    "//ui/resources:ui_test_pak",
  ]

  public_deps = [
    "//base/test:test_support",
  ]

  if (!is_ios) {
    deps += [
      "//components/invalidation/impl",
      "//components/policy/core/browser",
      "//components/safe_json",
      "//ui/gl:test_support",
    ]

    public_deps += [ "//content/test:test_support" ]
  }
}

# Defines a main() function that uses components_test_suite.h
source_set("run_all_unittests") {
  testonly = true

  sources = [
    "run_all_unittests.cc",
  ]

  deps = [
    ":test_support",
  ]
}
