//
// 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-connectivity-t.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-bluetooth.stubs.module_lib",
        "framework-connectivity.impl",
        "framework-connectivity-t.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: "33",
    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",
}
