xref: /aosp_15_r20/cts/tests/inputmethod/AndroidTest.xml (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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