//
// Copyright (C) 2020 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 {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_base_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_base_license"],
}

filegroup {
    name: "WMShellFlickerTestsUtils-src",
    srcs: ["src/com/android/wm/shell/flicker/utils/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsBase-src",
    srcs: ["src/com/android/wm/shell/flicker/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsBubbles-src",
    srcs: ["src/com/android/wm/shell/flicker/bubble/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsPip-src",
    srcs: ["src/com/android/wm/shell/flicker/pip/*.kt"],
}

filegroup {
    name: "WMShellFlickerTestsSplitScreen-src",
    srcs: [
        "src/com/android/wm/shell/flicker/splitscreen/*.kt",
        "src/com/android/wm/shell/flicker/splitscreen/benchmark/*.kt",
    ],
}

filegroup {
    name: "WMShellFlickerServiceTests-src",
    srcs: [
        "src/com/android/wm/shell/flicker/service/**/*.kt",
    ],
}

java_library {
    name: "wm-shell-flicker-utils",
    platform_apis: true,
    optimize: {
        enabled: false,
    },
    srcs: [
        ":WMShellFlickerTestsUtils-src",
    ],
    static_libs: [
        "androidx.test.ext.junit",
        "flickertestapplib",
        "flickerlib",
        "flickerlib-helpers",
        "platform-test-annotations",
        "wm-flicker-common-app-helpers",
        "wm-flicker-common-assertions",
        "launcher-helper-lib",
        "launcher-aosp-tapl",
    ],
}

java_defaults {
    name: "WMShellFlickerTestsDefault",
    manifest: "manifests/AndroidManifest.xml",
    test_config_template: "AndroidTestTemplate.xml",
    platform_apis: true,
    certificate: "platform",
    optimize: {
        enabled: false,
    },
    test_suites: ["device-tests"],
    libs: ["android.test.runner"],
    static_libs: [
        "wm-shell-flicker-utils",
        "androidx.test.ext.junit",
        "flickertestapplib",
        "flickerlib",
        "flickerlib-helpers",
        "platform-test-annotations",
        "wm-flicker-common-app-helpers",
        "wm-flicker-common-assertions",
        "launcher-helper-lib",
        "launcher-aosp-tapl",
    ],
    data: [
        ":FlickerTestApp",
        "trace_config/*",
    ],
}

android_test {
    name: "WMShellFlickerTestsOther",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestOther.xml"],
    package_name: "com.android.wm.shell.flicker",
    instrumentation_target_package: "com.android.wm.shell.flicker",
    srcs: [
        "src/**/*.java",
        "src/**/*.kt",
    ],
    exclude_srcs: [
        ":WMShellFlickerTestsBubbles-src",
        ":WMShellFlickerTestsPip-src",
        ":WMShellFlickerTestsSplitScreen-src",
        ":WMShellFlickerServiceTests-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsBubbles",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestBubbles.xml"],
    package_name: "com.android.wm.shell.flicker.bubbles",
    instrumentation_target_package: "com.android.wm.shell.flicker.bubbles",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsBubbles-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsPip",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestPip.xml"],
    package_name: "com.android.wm.shell.flicker.pip",
    instrumentation_target_package: "com.android.wm.shell.flicker.pip",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsPip-src",
    ],
}

android_test {
    name: "WMShellFlickerTestsSplitScreen",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestSplitScreen.xml"],
    package_name: "com.android.wm.shell.flicker.splitscreen",
    instrumentation_target_package: "com.android.wm.shell.flicker.splitscreen",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerTestsSplitScreen-src",
    ],
}

android_test {
    name: "WMShellFlickerServiceTests",
    defaults: ["WMShellFlickerTestsDefault"],
    additional_manifests: ["manifests/AndroidManifestService.xml"],
    package_name: "com.android.wm.shell.flicker.service",
    instrumentation_target_package: "com.android.wm.shell.flicker.service",
    srcs: [
        ":WMShellFlickerTestsBase-src",
        ":WMShellFlickerServiceTests-src",
    ],
}