# Copyright 2017 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("//ios/build/config.gni")
import("//testing/test.gni")

# All tests needs to be listed in that target to be built as part of
# "gn_all" target (i.e. by the bots).
group("all_tests") {
  testonly = true
  deps = [ ":ios_components_unittests" ]
}

# To add a unit test to this target, make a "unit_tests" source_set in your
# component (it's important to use a source_set instead of a static library or
# no tests will run) and add a reference here. You can add more than one unit
# test target if convenient.
test("ios_components_unittests") {
  # Add only ":unit_tests" dependencies here. If your tests have dependencies
  # (this would at least include the component itself), they should be on the
  # test source set and not here.

  deps = [
    "//base",
    "//base/test:run_all_unittests",
    "//ios/components/io_thread:unit_tests",
    "//ios/components/security_interstitials:unit_tests",
    "//ios/components/security_interstitials/lookalikes:unit_tests",
    "//ios/components/ui_util:unit_tests",
  ]

  assert_no_deps = ios_assert_no_deps
}
