1*b7c941bbSAndroid Build Coastguard Worker<?xml version="1.0" encoding="utf-8"?> 2*b7c941bbSAndroid Build Coastguard Worker<!-- 3*b7c941bbSAndroid Build Coastguard Worker Copyright (C) 2017 The Android Open Source Project 4*b7c941bbSAndroid Build Coastguard Worker 5*b7c941bbSAndroid Build Coastguard Worker Licensed under the Apache License, Version 2.0 (the "License"); 6*b7c941bbSAndroid Build Coastguard Worker you may not use this file except in compliance with the License. 7*b7c941bbSAndroid Build Coastguard Worker You may obtain a copy of the License at 8*b7c941bbSAndroid Build Coastguard Worker 9*b7c941bbSAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 10*b7c941bbSAndroid Build Coastguard Worker 11*b7c941bbSAndroid Build Coastguard Worker Unless required by applicable law or agreed to in writing, software 12*b7c941bbSAndroid Build Coastguard Worker distributed under the License is distributed on an "AS IS" BASIS, 13*b7c941bbSAndroid Build Coastguard Worker WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b7c941bbSAndroid Build Coastguard Worker See the License for the specific language governing permissions and 15*b7c941bbSAndroid Build Coastguard Worker limitations under the License. 16*b7c941bbSAndroid Build Coastguard Worker--> 17*b7c941bbSAndroid Build Coastguard Worker 18*b7c941bbSAndroid Build Coastguard Worker<configuration description="Config for CTS InputMethod test cases"> 19*b7c941bbSAndroid Build Coastguard Worker <option name="test-suite-tag" value="cts" /> 20*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="component" value="inputmethod" /> 21*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" /> 22*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="instant_app" /> 23*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" /> 24*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="secondary_user" /> 25*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="secondary_user_on_secondary_display" /> 26*b7c941bbSAndroid Build Coastguard Worker <option name="config-descriptor:metadata" key="parameter" value="run_on_sdk_sandbox" /> 27*b7c941bbSAndroid Build Coastguard Worker <!-- 28*b7c941bbSAndroid Build Coastguard Worker TODO(yukawa): come up with a proper way to take care of devices that do not support 29*b7c941bbSAndroid Build Coastguard Worker installable IMEs. Ideally target_preparer should have an option to annotate required 30*b7c941bbSAndroid Build Coastguard Worker features, e.g. android.software.input_methods so that we can conditionally install APKs 31*b7c941bbSAndroid Build Coastguard Worker based on the feature supported in the target device. 32*b7c941bbSAndroid Build Coastguard Worker --> 33*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 34*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 35*b7c941bbSAndroid Build Coastguard Worker <!-- 36*b7c941bbSAndroid Build Coastguard Worker MockIME always needs to be instaleld as a full package, even when CTS is running 37*b7c941bbSAndroid Build Coastguard Worker for instant apps. 38*b7c941bbSAndroid Build Coastguard Worker --> 39*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 40*b7c941bbSAndroid Build Coastguard Worker <!-- 41*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 42*b7c941bbSAndroid Build Coastguard Worker --> 43*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 44*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsMockInputMethod.apk" /> 45*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 46*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 47*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 48*b7c941bbSAndroid Build Coastguard Worker <!-- 49*b7c941bbSAndroid Build Coastguard Worker MockIME always needs to be installed as a full package, even when CTS is running 50*b7c941bbSAndroid Build Coastguard Worker for instant apps. 51*b7c941bbSAndroid Build Coastguard Worker --> 52*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 53*b7c941bbSAndroid Build Coastguard Worker <!-- 54*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 55*b7c941bbSAndroid Build Coastguard Worker --> 56*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 57*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsMockInputMethod2.apk" /> 58*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 59*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 60*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 61*b7c941bbSAndroid Build Coastguard Worker <!-- 62*b7c941bbSAndroid Build Coastguard Worker MockSpellChecker always needs to be instaleld as a full package, even when CTS is 63*b7c941bbSAndroid Build Coastguard Worker running for instant apps. 64*b7c941bbSAndroid Build Coastguard Worker --> 65*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 66*b7c941bbSAndroid Build Coastguard Worker <!-- 67*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 68*b7c941bbSAndroid Build Coastguard Worker --> 69*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 70*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsMockSpellChecker.apk" /> 71*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 72*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 73*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 74*b7c941bbSAndroid Build Coastguard Worker <!-- 75*b7c941bbSAndroid Build Coastguard Worker SpellCheckingIme always needs to be instaleld as a full package, even when CTS is 76*b7c941bbSAndroid Build Coastguard Worker running for instant apps. 77*b7c941bbSAndroid Build Coastguard Worker --> 78*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 79*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsSpellCheckingIme.apk" /> 80*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 81*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 82*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 83*b7c941bbSAndroid Build Coastguard Worker <!-- 84*b7c941bbSAndroid Build Coastguard Worker HiddenFromPickerIme always needs to be installed as a full package, even when CTS is 85*b7c941bbSAndroid Build Coastguard Worker running for instant apps. 86*b7c941bbSAndroid Build Coastguard Worker --> 87*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 88*b7c941bbSAndroid Build Coastguard Worker <!-- 89*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 90*b7c941bbSAndroid Build Coastguard Worker --> 91*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 92*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsHiddenFromPickerIme.apk" /> 93*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 94*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 95*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 96*b7c941bbSAndroid Build Coastguard Worker <!-- 97*b7c941bbSAndroid Build Coastguard Worker CtsMockA11yInputMethod always needs to be instaleld as a full package, even when CTS is 98*b7c941bbSAndroid Build Coastguard Worker running for instant apps. 99*b7c941bbSAndroid Build Coastguard Worker --> 100*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 101*b7c941bbSAndroid Build Coastguard Worker <!-- 102*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 103*b7c941bbSAndroid Build Coastguard Worker --> 104*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 105*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsMockA11yInputMethod.apk" /> 106*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 107*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher"> 108*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup" value="true" /> 109*b7c941bbSAndroid Build Coastguard Worker <!-- 110*b7c941bbSAndroid Build Coastguard Worker CtsMockLargeResourceInputMethod should not always be installed, but the apk must be 111*b7c941bbSAndroid Build Coastguard Worker available. 112*b7c941bbSAndroid Build Coastguard Worker --> 113*b7c941bbSAndroid Build Coastguard Worker <option name="push" value="CtsMockLargeResourceInputMethod.apk->/data/local/tmp/cts/inputmethod/CtsMockLargeResourceInputMethod.apk" /> 114*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 115*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 116*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 117*b7c941bbSAndroid Build Coastguard Worker <!-- 118*b7c941bbSAndroid Build Coastguard Worker CtsMockInputMethodWithSubtypes always needs to be installed as a full package, even when 119*b7c941bbSAndroid Build Coastguard Worker CTS is running for instant apps. 120*b7c941bbSAndroid Build Coastguard Worker --> 121*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 122*b7c941bbSAndroid Build Coastguard Worker <!-- 123*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 124*b7c941bbSAndroid Build Coastguard Worker --> 125*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 126*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsMockInputMethodWithSubtypes.apk" /> 127*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 128*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 129*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 130*b7c941bbSAndroid Build Coastguard Worker <!-- 131*b7c941bbSAndroid Build Coastguard Worker TestIme always needs to be installed as a full package, even when CTS is running for 132*b7c941bbSAndroid Build Coastguard Worker instant apps. 133*b7c941bbSAndroid Build Coastguard Worker --> 134*b7c941bbSAndroid Build Coastguard Worker <option name="force-install-mode" value="FULL"/> 135*b7c941bbSAndroid Build Coastguard Worker <!-- 136*b7c941bbSAndroid Build Coastguard Worker Enabling force-queryable makes package visibility tests impossible. So opt it out. 137*b7c941bbSAndroid Build Coastguard Worker --> 138*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 139*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="TestIme.apk" /> 140*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 141*b7c941bbSAndroid Build Coastguard Worker 142*b7c941bbSAndroid Build Coastguard Worker <!-- 143*b7c941bbSAndroid Build Coastguard Worker TODO(yukawa): come up with a proper way to take care of devices that do not support 144*b7c941bbSAndroid Build Coastguard Worker installable IMEs. Ideally target_preparer should have an option to annotate required 145*b7c941bbSAndroid Build Coastguard Worker features, e.g. android.software.input_methods so that we can conditionally install APKs 146*b7c941bbSAndroid Build Coastguard Worker based on the feature supported in the target device. 147*b7c941bbSAndroid Build Coastguard Worker --> 148*b7c941bbSAndroid Build Coastguard Worker 149*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> 150*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="input keyevent KEYCODE_WAKEUP" /> 151*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="wm dismiss-keyguard" /> 152*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 153*b7c941bbSAndroid Build Coastguard Worker 154*b7c941bbSAndroid Build Coastguard Worker <!-- 155*b7c941bbSAndroid Build Coastguard Worker A (separate) standalone test app APK is needed to test implicit app-visibility from the IME 156*b7c941bbSAndroid Build Coastguard Worker process to the IME target process, because if the IME target process is directly interacting 157*b7c941bbSAndroid Build Coastguard Worker with MockIme process via MockImeSession, then the system would already give the MockIme an 158*b7c941bbSAndroid Build Coastguard Worker implicit app-visibility back to the test app. To fully test app-visibility scenario, 159*b7c941bbSAndroid Build Coastguard Worker MockImeSession cannot be used in the process where the focused Activity is hosted. 160*b7c941bbSAndroid Build Coastguard Worker --> 161*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 162*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 163*b7c941bbSAndroid Build Coastguard Worker <!-- 164*b7c941bbSAndroid Build Coastguard Worker In order to simulate the scenario where the IME client process is normally 165*b7c941bbSAndroid Build Coastguard Worker installed, explicitly set false here. Otherwise, the test APP will be installed under 166*b7c941bbSAndroid Build Coastguard Worker force-queryable mode, which makes the test useless. 167*b7c941bbSAndroid Build Coastguard Worker --> 168*b7c941bbSAndroid Build Coastguard Worker <option name="force-queryable" value="false" /> 169*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsInputMethodStandaloneTestApp.apk" /> 170*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 171*b7c941bbSAndroid Build Coastguard Worker 172*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 173*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 174*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsInputMethodTestLauncher.apk" /> 175*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 176*b7c941bbSAndroid Build Coastguard Worker 177*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller"> 178*b7c941bbSAndroid Build Coastguard Worker <option name="cleanup-apks" value="true" /> 179*b7c941bbSAndroid Build Coastguard Worker <option name="install-arg" value="-t" /> 180*b7c941bbSAndroid Build Coastguard Worker <option name="test-file-name" value="CtsInputMethodTestCases.apk" /> 181*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 182*b7c941bbSAndroid Build Coastguard Worker <!-- Enabling change id ALLOW_TEST_API_ACCESS allows that package to access @TestApi methods --> 183*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> 184*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am compat enable ALLOW_TEST_API_ACCESS com.android.cts.mockime" /> 185*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS com.android.cts.mockime" /> 186*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am compat enable ALLOW_TEST_API_ACCESS com.android.cts.mockime2" /> 187*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS com.android.cts.mockime2" /> 188*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am compat enable ALLOW_TEST_API_ACCESS com.android.cts.mocka11yime" /> 189*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS com.android.cts.mocka11yime" /> 190*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am compat enable ALLOW_TEST_API_ACCESS android.view.inputmethod.ctstestapp" /> 191*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS android.view.inputmethod.ctstestapp" /> 192*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am compat enable ALLOW_TEST_API_ACCESS android.view.inputmethod.mocklargeresourceime" /> 193*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS android.view.inputmethod.mocklargeresourceime" /> 194*b7c941bbSAndroid Build Coastguard Worker <option name="teardown-command" value="am compat reset ALLOW_TEST_API_ACCESS android.view.inputmethod.mockimewithsubtypes" /> 195*b7c941bbSAndroid Build Coastguard Worker 196*b7c941bbSAndroid Build Coastguard Worker <!-- Wait for PACKAGE_ADDED broadcasts to be delivered to InputMethodManagerService. --> 197*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am wait-for-broadcast-barrier" /> 198*b7c941bbSAndroid Build Coastguard Worker <!-- Dismiss any system dialogs (e.g. crashes, ANR). --> 199*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="am broadcast -a android.intent.action.CLOSE_SYSTEM_DIALOGS --receiver-foreground" /> 200*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 201*b7c941bbSAndroid Build Coastguard Worker 202*b7c941bbSAndroid Build Coastguard Worker <!-- Create a place to store files for DumpOnFailure --> 203*b7c941bbSAndroid Build Coastguard Worker <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> 204*b7c941bbSAndroid Build Coastguard Worker <option name="run-command" value="mkdir -p /sdcard/DumpOnFailure" /> 205*b7c941bbSAndroid Build Coastguard Worker </target_preparer> 206*b7c941bbSAndroid Build Coastguard Worker <!-- Collect the files from DumpOnFailure. --> 207*b7c941bbSAndroid Build Coastguard Worker <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector"> 208*b7c941bbSAndroid Build Coastguard Worker <option name="directory-keys" value="/sdcard/DumpOnFailure" /> 209*b7c941bbSAndroid Build Coastguard Worker <option name="collect-on-run-ended-only" value="true" /> 210*b7c941bbSAndroid Build Coastguard Worker </metrics_collector> 211*b7c941bbSAndroid Build Coastguard Worker 212*b7c941bbSAndroid Build Coastguard Worker <test class="com.android.tradefed.testtype.AndroidJUnitTest" > 213*b7c941bbSAndroid Build Coastguard Worker <option name="package" value="android.view.inputmethod.cts" /> 214*b7c941bbSAndroid Build Coastguard Worker <option name="runtime-hint" value="1m0s" /> 215*b7c941bbSAndroid Build Coastguard Worker </test> 216*b7c941bbSAndroid Build Coastguard Worker</configuration> 217