# Copyright 2015 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("//build/config/android/rules.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")

if (is_android) {
  android_library("provider_java") {
    java_files = [ "browser/java/src/org/chromium/components/webrestrictions/browser/WebRestrictionsContentProvider.java" ]
  }

  android_library("client_java") {
    java_files = [
      "browser/java/src/org/chromium/components/webrestrictions/browser/WebRestrictionsClient.java",
      "browser/java/src/org/chromium/components/webrestrictions/browser/WebRestrictionsClientResult.java",
    ]
    deps = [
      "//base:base_java",
    ]
  }

  junit_binary("components_web_restrictions_junit_tests") {
    java_files = [
      "browser/junit/src/org/chromium/components/webrestrictions/browser/WebRestrictionsContentProviderTest.java",
      "browser/junit/src/org/chromium/components/webrestrictions/browser/WebRestrictionsClientTest.java",
    ]
    deps = [
      ":client_java",
      ":provider_java",
      "//base:base_java",
      "//third_party/hamcrest:hamcrest_java",
    ]
  }

  generate_jni("web_restrictions_jni_headers") {
    sources = [
      "browser/java/src/org/chromium/components/webrestrictions/browser/WebRestrictionsClient.java",
      "browser/java/src/org/chromium/components/webrestrictions/browser/WebRestrictionsClientResult.java",
    ]
    jni_package = "web_restrictions"
  }

  static_library("browser") {
    sources = [
      "browser/web_restrictions_client.cc",
      "browser/web_restrictions_client.h",
      "browser/web_restrictions_client_result.cc",
      "browser/web_restrictions_client_result.h",
      "browser/web_restrictions_mojo_implementation.cc",
      "browser/web_restrictions_mojo_implementation.h",
      "browser/web_restrictions_resource_throttle.cc",
      "browser/web_restrictions_resource_throttle.h",
    ]
    deps = [
      ":interfaces",
      ":web_restrictions_jni_headers",
      "//base",
      "//content/public/browser",
      "//mojo/public/cpp/bindings:bindings",
      "//net:net",
    ]
  }

  mojom("interfaces") {
    sources = [
      "interfaces/web_restrictions.mojom",
    ]
  }

  generate_jni("test_support_jni_headers") {
    sources = [
      "browser/javatest/src/org/chromium/components/webrestrictions/browser/MockWebRestrictionsClient.java",
    ]
    jni_package = "web_restrictions"
    deps = [
      ":client_java",
    ]
  }

  android_library("test_support_java") {
    java_files = [ "browser/javatest/src/org/chromium/components/webrestrictions/browser/MockWebRestrictionsClient.java" ]
    deps = [
      ":client_java",
      "//base:base_java",
    ]
  }

  source_set("test_support") {
    sources = [
      "browser/mock_web_restrictions_client.cc",
      "browser/mock_web_restrictions_client.h",
    ]
    deps = [
      ":test_support_jni_headers",
      "//base",
    ]
  }

  source_set("unit_tests") {
    testonly = true
    sources = [
      "browser/web_restrictions_client_unittest.cc",
      "browser/web_restrictions_resource_throttle_unittest.cc",
    ]
    deps = [
      ":browser",
      ":test_support",
      "//base",
      "//base/test:test_support",
      "//content/test:test_support",
      "//net",
      "//testing/gtest",
      "//url",
    ]
  }
}