//
// 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",

    // This module cannot generate stubs from the api signature files as stubs depends on the
    // private APIs, which are not visible in the api signature files.
    build_from_text_stub: false,
}

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",
}
