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

assert(is_android)

import("//build/config/android/rules.gni")

java_library("junit_test_support") {
  # Skip platform checks since Robolectric depends on requires_android targets.
  bypass_platform_checks = true
  testonly = true
  java_files = [
    "java/src/org/chromium/testing/local/BackgroundShadowAsyncTask.java",
    "java/src/org/chromium/testing/local/CustomShadowAsyncTask.java",
    "java/src/org/chromium/testing/local/CustomShadowUserManager.java",
    "java/src/org/chromium/testing/local/GtestComputer.java",
    "java/src/org/chromium/testing/local/GtestFilter.java",
    "java/src/org/chromium/testing/local/GtestListener.java",
    "java/src/org/chromium/testing/local/GtestLogger.java",
    "java/src/org/chromium/testing/local/JsonListener.java",
    "java/src/org/chromium/testing/local/JsonLogger.java",
    "java/src/org/chromium/testing/local/JunitTestArgParser.java",
    "java/src/org/chromium/testing/local/JunitTestMain.java",
    "java/src/org/chromium/testing/local/GNManifestFactory.java",
    "java/src/org/chromium/testing/local/LocalRobolectricTestRunner.java",
    "java/src/org/chromium/testing/local/PackageFilter.java",
    "java/src/org/chromium/testing/local/RunnerFilter.java",
    "java/src/org/chromium/testing/local/TestDir.java",
  ]
  deps = [
    "//third_party/junit",
    "//third_party/mockito:mockito_java",
    "//third_party/robolectric:robolectric_all_java",
  ]
}

junit_binary("junit_unit_tests") {
  java_files = [
    "javatests/src/org/chromium/testing/local/GtestFilterTest.java",
    "javatests/src/org/chromium/testing/local/GtestLoggerTest.java",
    "javatests/src/org/chromium/testing/local/PackageFilterTest.java",
    "javatests/src/org/chromium/testing/local/RunnerFilterTest.java",
  ]
}
