//
// Copyright (C) 2008 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.
//

// Build the android.test.mock library
// ===================================
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

java_sdk_library {
    name: "android.test.mock",
    srcs: [":android-test-mock-sources"],
    api_srcs: [
        // Note: Below are NOT APIs of this library. We only take APIs under
        // the android.test.mock package. They however provide private APIs that
        // android.test.mock APIs references to. We need to have the classes in
        // source code form to have access to the @hide comment which disappears
        // when the classes are compiled into a Jar library.
        ":framework-core-sources-for-test-mock",
        ":framework_native_aidl",
    ],
    libs: [
        "framework",
        "framework-annotations-lib",
        "app-compat-annotations",
        "unsupportedappusage",
    ],
    api_packages: [
        "android.test.mock",
    ],
    permitted_packages: [
        "android.test.mock",
    ],
    compile_dex: true,
    default_to_stubs: true,
    dist_group: "android",
}

java_library {
    name: "android.test.mock.ravenwood",
    defaults: ["ravenwood-internal-only-visibility-java"],
    srcs: [":android-test-mock-sources"],
}

android_ravenwood_test {
    name: "android.test.mock.ravenwood.tests",
    libs: [
        "android.test.mock.ravenwood",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.test.rules",
    ],
    srcs: [
        "tests/**/*.java",
    ],
    auto_gen_config: true,
}

// Make the current.txt available for use by the cts/tests/signature and /vendor tests.
// ========================================================================
filegroup {
    name: "android-test-mock-current.txt",
    visibility: [
        "//cts/tests/signature/api",
        "//vendor:__subpackages__",
    ],
    srcs: [
        "api/current.txt",
    ],
}

filegroup {
    name: "android-test-mock-sources",
    srcs: ["src/**/*.java"],
    path: "src",
}
