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

// Tests in this folder are included both in unit tests and CTS.
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

java_library {
    name: "TetheringCommonTests",
    srcs: [
        "common/**/*.java",
        "common/**/*.kt"
    ],
    static_libs: [
        "androidx.test.rules",
        "net-tests-utils",
    ],
    // TODO(b/147200698) change sdk_version to module-current and remove framework-minus-apex
    sdk_version: "core_platform",
    libs: [
        "framework-minus-apex",
        "framework-connectivity.impl",
        "framework-tethering.impl",
    ],
    visibility: [
        "//packages/modules/Connectivity/tests/cts/tethering",
    ],
}

java_defaults {
    name: "TetheringTestsDefaults",
    min_sdk_version: "30",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    static_libs: [
        "TetheringCommonTests",
        "androidx.test.rules",
        "frameworks-base-testutils",
        "mockito-target-extended-minus-junit4",
        "net-tests-utils",
        "testables",
    ],
    // TODO(b/147200698) change sdk_version to module-current and
    // remove framework-minus-apex, ext, and framework-res
    sdk_version: "core_platform",
    libs: [
        "android.test.runner",
        "android.test.base",
        "android.test.mock",
        "ext",
        "framework-minus-apex",
        "framework-res",
        "framework-connectivity.impl",
        "framework-tethering.impl",
        "framework-wifi.stubs.module_lib",
    ],
    jni_libs: [
        // For mockito extended
        "libdexmakerjvmtiagent",
        "libstaticjvmtiagent",
        "libcom_android_networkstack_tethering_util_jni",
    ],
}

// Library containing the unit tests. This is used by the coverage test target to pull in the
// unit test code. It is not currently used by the tests themselves because all the build
// configuration needed by the tests is in the TetheringTestsDefaults rule.
android_library {
    name: "TetheringTestsLatestSdkLib",
    defaults: ["TetheringTestsDefaults"],
    static_libs: [
        "TetheringApiStableLib",
    ],
    target_sdk_version: "30",
    visibility: [
        "//packages/modules/Connectivity/tests:__subpackages__",
        "//packages/modules/Connectivity/Tethering/tests:__subpackages__",
    ]
}

android_test {
    name: "TetheringTests",
    platform_apis: true,
    test_suites: [
        "device-tests",
        "mts-tethering",
    ],
    defaults: [
        "TetheringTestsDefaults",
        "ConnectivityNextEnableDefaults",
    ],
    static_libs: [
        "TetheringApiCurrentLib",
    ],
    compile_multilib: "both",
    jarjar_rules: ":TetheringTestsJarJarRules",
}
