<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2023 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.
  -->
<configuration description="Config for CTS AdServices test cases">
    <option name="test-suite-tag" value="cts" />
    <option name="config-descriptor:metadata" key="component" value="adservices" />
    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
    <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
    <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />

    <!-- For this test suite to get picked up in mainline presubmit -->
    <option name="config-descriptor:metadata" key="mainline-param"
        value="com.google.android.adservices.apex" />

    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsAdServicesRootTestCases.apk" />
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="setprop log.tag.adservices VERBOSE"/>
        <option name="run-command" value="setprop log.tag.adservices.topics VERBOSE"/>
        <option name="run-command" value="setprop log.tag.adservices.fledge VERBOSE"/>
        <option name="run-command" value="setprop log.tag.adservices.measurement VERBOSE"/>

        <!-- Disable kill switches to ignore the effect of actual PH values. -->
        <option name="run-command" value="device_config put adservices global_kill_switch false" />
        <option name="run-command" value="device_config put adservices fledge_select_ads_kill_switch false" />
        <option name="run-command" value="device_config put adservices fledge_custom_audience_service_kill_switch false" />

        <!-- Override Consent notification to debug mode to grant user consent -->
        <option name="run-command" value="setprop debug.adservices.consent_notified_debug_mode true"/>
        <option name="teardown-command" value="setprop debug.adservices.consent_notified_debug_mode false"/>

        <!-- Override Consent Manager to debug mode to grant user consent -->
        <option name="run-command" value="setprop debug.adservices.consent_manager_debug_mode true" />
        <option name="teardown-command" value="setprop debug.adservices.consent_manager_debug_mode false"/>

        <!-- Override MDD background job to avoid race condition. -->
        <option name="run-command"
                value="device_config put adservices mdd_background_task_kill_switch true"/>
        <option name="teardown-command"
                value="device_config put adservices mdd_background_task_kill_switch false"/>

        <!-- Force enable enrollment checks for FLEDGE when testing enrollment -->
        <option name="run-command" value="device_config put adservices disable_fledge_enrollment_check false" />

        <!-- Increase the allowed API queries per second -->
        <option name="run-command" value="device_config put adservices sdk_request_permits_per_second 100000" />
        <option name="teardown-command" value="device_config put adservices sdk_request_permits_per_second 1" />

        <!-- Temporarily disable Device Config sync -->
        <option name="run-command" value="device_config set_sync_disabled_for_tests persistent" />
        <option name="teardown-command" value="device_config set_sync_disabled_for_tests none" />

        <!-- Temporarily enable enrollment seed for testing -->
        <option name="run-command"
                value="device_config put adservices enable_enrollment_test_seed true" />
        <option name="teardown-command"
                value="device_config put adservices enable_enrollment_test_seed false" />

        <!-- Disable Register Ad Beacon Feature -->
        <option name="run-command" value="device_config put adservices fledge_register_ad_beacon_enabled false" />
    </target_preparer>

    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="android.adservices.rootcts" />
    </test>

    <object type="module_controller"
            class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController" >
        <option name="mainline-module-package-name" value="com.google.android.adservices" />
    </object>
    <option name="config-descriptor:metadata" key="mainline-param" value="com.google.android.adservices.apex" />
</configuration>

