// 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: "DocumentsUITests-defaults",
    libs: [
        "android.test.base",
        "android.test.mock",
        "android.test.runner",
    ],

    static_libs: [
        "DocumentsUI-lib",
        "androidx.test.rules",
        "androidx.test.espresso.core",
        "androidx.test.ext.truth",
        "guava",
        "mockito-target",
        "androidx.test.uiautomator_uiautomator",
    ],
}

android_library {
    name: "DocumentsUIPerfTests-lib",
    srcs: [
        "common/com/android/documentsui/**/*.java",
        "functional/com/android/documentsui/ActivityTest.java",
    ],
    resource_dirs: [],
    libs: [
        "android.test.base",
        "android.test.mock",
        "android.test.runner",
        "DocumentsUI-lib",
    ],

    static_libs: [
        "androidx.legacy_legacy-support-v4",
        "androidx.test.rules",
        "androidx.test.espresso.core",
        "mockito-target",
        "ub-janktesthelper",
        "androidx.test.uiautomator_uiautomator",
    ],
}

android_library {
    name: "DocumentsUIUnitTests-lib",
    defaults: ["DocumentsUITests-defaults"],

    manifest: "AndroidManifestUnitTests.xml",

    srcs: [
        "common/**/*.java",
        "unit/**/*.java",
    ],

    resource_dirs: [
        "res",
    ],

    min_sdk_version: "29",
    target_sdk_version: "29",
}

android_library {
    name: "DocumentsUITests-lib",
    defaults: ["DocumentsUITests-defaults"],

    manifest: "AndroidManifest.xml",

    srcs: [
        "common/**/*.java",
        "functional/**/*.java",
        "unit/**/*.java",
    ],

    asset_dirs: [
        "assets",
    ],

    resource_dirs: [
        "res",
    ],

    aaptflags: [
        // pack some raw file locate in assets folder
        "-0 .zip",
    ],

    min_sdk_version: "29",
    target_sdk_version: "29",
    lint: {
        baseline_filename: "lint-baseline.xml",
    },
}

android_test {
    name: "DocumentsUITests",
    defaults: ["DocumentsUITests-defaults"],

    manifest: "AndroidManifest.xml",

    resource_dirs: [],

    static_libs: [
        "DocumentsUITests-lib",
    ],

    jarjar_rules: "jarjar-rules.txt",

    test_suites: [
        "device-tests",
        "mts-documentsui",
    ],

    platform_apis: true,

    certificate: "platform",

    instrumentation_for: "DocumentsUI",
    min_sdk_version: "29",
    target_sdk_version: "29",
}
