//
// Copyright (C) 2016 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.base library
// ===================================
// This contains the junit.framework and android.test classes that were in
// Android API level 25 excluding those from android.test.runner.
// Also contains the com.android.internal.util.Predicate[s] classes.
java_library {
    name: "android.test.base",

    srcs: ["src/**/*.java"],

    no_framework_libs: true,
    hostdex: true,
    libs: [
        "framework",
    ],

}

// Build the legacy-test library
// =============================
// This contains the junit.framework and android.test classes that were in
// Android API level 25 excluding those from android.test.runner.
// Also contains the com.android.internal.util.Predicate[s] classes.
java_library {
    name: "legacy-test",
    static_libs: ["android.test.base"],

    no_framework_libs: true,
    libs: [
        "framework",
    ],
}

// Build the repackaged.android.test.base library
// ==============================================
// This contains repackaged versions of the classes from
// android.test.base.
java_library_static {
    name: "repackaged.android.test.base",

    static_libs: ["android.test.base"],

    no_framework_libs: true,
    libs: [
        "framework",
    ],

    jarjar_rules: "jarjar-rules.txt",
}

// Build the android.test.base-minus-junit library
// ===============================================
// This contains the android.test classes from android.test.base plus
// the com.android.internal.util.Predicate[s] classes. This is only
// intended for inclusion in the android.test.legacy static library and
// must not be used elsewhere.
java_library_static {
    name: "android.test.base-minus-junit",

    srcs: [
        "src/android/**/*.java",
        "src/com/**/*.java",
    ],

    sdk_version: "current",
    libs: [
        "junit",
    ],
}

// Build the legacy-android-test library
// =====================================
// This contains the android.test classes that were in Android API level 25,
// including those from android.test.runner.
// Also contains the com.android.internal.util.Predicate[s] classes.
java_library_static {
    name: "legacy-android-test",

    srcs: [
        "src/android/**/*.java",
        "src/com/**/*.java",
    ],

    static_libs: [
        "android.test.runner-minus-junit",
        "android.test.mock",
    ],

    no_framework_libs: true,
    libs: [
        "framework",
        "junit",
    ],
}
