//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

java_defaults {
    name: "NetworkStackIntegrationTestsJniDefaults",
    defaults: ["libnetworkstackutilsjni_deps"],
    jni_libs: [
        // For mockito extended
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
        // For NetworkStackUtils included in NetworkStackBase
        "libnetworkstackutilsjni",
    ],
    jni_uses_sdk_apis: true,
    visibility: ["//visibility:private"],
}

java_defaults {
    name: "NetworkStackIntegrationTestsDefaults",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.test.rules",
        "mockito-target-extended-minus-junit4",
        "net-tests-utils",
        "testables",
    ],
    libs: [
        "android.test.runner",
        "android.test.base",
        "android.test.mock",
    ],
    visibility: ["//visibility:private"],
}

android_library {
    name: "NetworkStackIntegrationTestsLib",
    defaults: ["NetworkStackIntegrationTestsDefaults"],
    min_sdk_version: "29",
    static_libs: [
        "NetworkStackApiStableLib",
    ],
}

// Network stack integration tests.
android_test {
    name: "NetworkStackIntegrationTests",
    defaults: ["NetworkStackIntegrationTestsJniDefaults"],
    static_libs: ["NetworkStackIntegrationTestsLib"],
    certificate: "networkstack",
    platform_apis: true,
    test_suites: ["device-tests"],
    min_sdk_version: "29",
    target_sdk_version: "30",
    jarjar_rules: ":NetworkStackJarJarRules",
}

// Network stack next integration tests.
android_test {
    name: "NetworkStackNextIntegrationTests",
    defaults: [
        "NetworkStackIntegrationTestsDefaults",
        "NetworkStackIntegrationTestsJniDefaults",
        "NetworkStackNextEnableDefaults",
    ],
    static_libs: [
        "NetworkStackApiCurrentLib",
    ],
    certificate: "networkstack",
    platform_apis: true,
    test_suites: ["device-tests"],
    jarjar_rules: ":NetworkStackJarJarRules",
}

// Special version of the network stack tests that includes all tests necessary for code coverage
// purposes. This is currently the union of NetworkStackTests and NetworkStackIntegrationTests.
android_test {
    name: "NetworkStackCoverageTests",
    certificate: "networkstack",
    platform_apis: true,
    min_sdk_version: "29",
    target_sdk_version: "30",
    test_suites: ["device-tests", "mts"],
    test_config: "AndroidTest_Coverage.xml",
    defaults: ["NetworkStackIntegrationTestsJniDefaults"],
    static_libs: [
        "modules-utils-native-coverage-listener",
        "NetworkStackTestsLib",
        "NetworkStackIntegrationTestsLib",
        "NetworkStaticLibTestsLib",
        "NetdStaticLibTestsLib",
    ],
    compile_multilib: "both",
    manifest: "AndroidManifest_coverage.xml",
    jarjar_rules: ":NetworkStackJarJarRules",
}
