xref: /aosp_15_r20/cts/tests/autofillservice/AndroidManifest.xml (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3 * Copyright (C) 2024 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16-->
17
18<manifest xmlns:android="http://schemas.android.com/apk/res/android"
19     package="android.autofillservice.cts"
20     android:targetSandboxVersion="2">
21
22    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
23    <uses-permission android:name="android.permission.INJECT_EVENTS"/>
24    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
25    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
26    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
27    <!--  Some tests use sticky broadcasts to ensure that inline suggestion extras
28    are delivered to the IME even when its process is not running persistently.
29    This can happen when the IME is unbound as a result of enabling
30    the config_preventImeStartupUnlessTextEditor option. -->
31    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
32    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS"/>
33    <uses-permission android:name="android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS"/>
34    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
35    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
36    <uses-permission android:name="android.permission.LIST_ENABLED_CREDENTIAL_PROVIDERS"/>
37    <uses-permission android:name="android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS"/>
38
39    <queries>
40        <package android:name="com.android.cts.mockime" />
41    </queries>
42
43    <application>
44
45        <uses-library android:name="android.test.runner"/>
46
47        <activity android:name=".activities.LoginActivity"
48             android:exported="true">
49            <intent-filter>
50                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
51                                         this app during CTS development... -->
52                <action android:name="android.intent.action.MAIN"/>
53                <category android:name="android.intent.category.LAUNCHER"/>
54            </intent-filter>
55        </activity>
56        <activity android:name=".activities.PreFilledLoginActivity"/>
57        <activity android:name=".activities.LoginWithCustomHighlightActivity"
58             android:theme="@style/MyAutofilledHighlight"/>
59        <activity android:name=".activities.LoginWithStringsActivity"/>
60        <activity android:name=".activities.LoginNotImportantForAutofillActivity"/>
61        <activity android:name=".activities.LoginNotImportantUsernameImportantPasswordActivity"/>
62        <activity android:name=".activities.MultilineLoginActivity"/>
63        <activity android:name=".activities.ImeOptionActivity"/>
64        <activity android:name=".activities.LoginNotImportantForAutofillWrappedActivityContextActivity"/>
65        <activity android:name=".activities.LoginNotImportantForAutofillWrappedApplicationContextActivity"/>
66        <activity android:name=".activities.LoginImportantForCredentialManagerActivity"/>
67        <activity android:name=".activities.LoginMixedImportantForCredentialManagerActivity"/>
68        <activity android:name=".activities.LoginCredentialMixedActivity"/>
69        <activity android:name=".activities.WelcomeActivity"
70             android:taskAffinity=".WelcomeActivity"/>
71        <activity android:name=".activities.ViewActionActivity"
72             android:taskAffinity=".ViewActionActivity"
73             android:launchMode="singleTask"
74             android:exported="true">
75            <intent-filter>
76                <action android:name="android.intent.action.VIEW"/>
77                <data android:scheme="autofillcts"/>
78                <category android:name="android.intent.category.DEFAULT"/>
79            </intent-filter>
80        </activity>
81        <activity android:name=".activities.SecondActivity"
82             android:taskAffinity=".SecondActivity"/>
83        <activity android:name=".activities.ViewAttributesTestActivity"/>
84        <activity android:name=".activities.AuthenticationActivity"/>
85        <activity android:name=".activities.ManualAuthenticationActivity"/>
86        <activity android:name=".activities.CheckoutActivity"
87             android:taskAffinity=".CheckoutActivity"/>
88        <activity android:name=".activities.InitializedCheckoutActivity"/>
89        <activity android:name=".activities.DatePickerCalendarActivity"/>
90        <activity android:name=".activities.DatePickerSpinnerActivity"/>
91        <activity android:name=".activities.TimePickerClockActivity"/>
92        <activity android:name=".activities.TimePickerSpinnerActivity"/>
93        <activity android:name=".activities.FatActivity"/>
94        <activity android:name=".activities.VirtualContainerActivity"
95             android:exported="true">
96            <intent-filter>
97                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
98                                         this app during CTS development... -->
99                <action android:name="android.intent.action.MAIN"/>
100                <category android:name="android.intent.category.LAUNCHER"/>
101            </intent-filter>
102        </activity>
103        <activity android:name=".activities.OptionalSaveActivity"/>
104        <activity android:name=".activities.GridActivity"/>
105        <activity android:name=".activities.EmptyActivity"/>
106        <activity android:name=".activities.DummyActivity"/>
107        <activity android:name=".activities.OutOfProcessLoginActivity"
108             android:process="android.autofillservice.cts.outside"/>
109        <activity android:name=".activities.FragmentContainerActivity"/>
110        <activity android:name=".activities.DuplicateIdActivity"
111             android:theme="@android:style/Theme.NoTitleBar"/>
112        <activity android:name=".activities.SimpleSaveActivity"/>
113        <activity android:name=".activities.PreSimpleSaveActivity"
114             android:exported="true">
115            <intent-filter>
116                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
117                                         this app during CTS development... -->
118                <action android:name="android.intent.action.MAIN"/>
119                <category android:name="android.intent.category.LAUNCHER"/>
120            </intent-filter>
121        </activity>
122        <activity android:name=".activities.WebViewActivity"/>
123        <activity android:name=".activities.WebViewMultiScreenLoginActivity"/>
124        <activity android:name=".activities.TrampolineWelcomeActivity"/>
125        <activity android:name=".activities.AttachedContextActivity"/>
126        <activity android:name=".activities.DialogLauncherActivity"
127             android:exported="true">
128            <intent-filter>
129                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
130                                         this app during CTS development... -->
131                <action android:name="android.intent.action.MAIN"/>
132                <category android:name="android.intent.category.LAUNCHER"/>
133            </intent-filter>
134        </activity>
135        <activity android:name=".activities.MultiWindowLoginActivity"
136             android:resizeableActivity="true"
137             android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"/>
138        <activity android:name=".activities.MultiWindowEmptyActivity"
139             android:resizeableActivity="true"
140             android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
141             android:taskAffinity="nobody.but.EmptyActivity"
142             android:exported="true"/>
143
144        <activity android:name=".activities.TrampolineForResultActivity"/>
145        <activity android:name=".activities.OnCreateServiceStatusVerifierActivity"/>
146        <activity android:name=".activities.UsernameOnlyActivity"
147             android:exported="true">
148            <intent-filter>
149                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
150                                         this app during CTS development... -->
151                <action android:name="android.intent.action.MAIN"/>
152                <category android:name="android.intent.category.LAUNCHER"/>
153            </intent-filter>
154        </activity>
155        <activity android:name=".activities.PasswordOnlyActivity"
156             android:exported="true">
157            <intent-filter>
158                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
159                                         this app during CTS development... -->
160                <action android:name="android.intent.action.MAIN"/>
161                <category android:name="android.intent.category.LAUNCHER"/>
162            </intent-filter>
163        </activity>
164        <activity android:name=".activities.AugmentedLoginActivity"
165             android:exported="true">
166            <intent-filter>
167                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
168                                         this app during CTS development... -->
169                <action android:name="android.intent.action.MAIN"/>
170                <category android:name="android.intent.category.LAUNCHER"/>
171            </intent-filter>
172        </activity>
173        <activity android:name=".activities.FadeInActivity"/>
174        <activity android:name=".activities.MultipleStepsSignInActivity"/>
175        <activity android:name=".activities.FieldsNoPasswordActivity"/>
176        <activity android:name=".activities.AugmentedAuthActivity" />
177        <activity android:name=".activities.SimpleAfterLoginActivity"/>
178        <activity android:name=".activities.SimpleBeforeLoginActivity"/>
179        <activity android:name=".activities.NonAutofillableActivity"/>
180        <activity
181            android:name=".credman.CtsGetPasswordActivity"
182            android:exported="true"
183            android:enabled="true">
184            <intent-filter>
185                <action android:name="android.autofillservice.cts.credman.GET_PASSWORD" />
186                <category android:name="android.intent.category.DEFAULT" />
187            </intent-filter>
188        </activity>
189
190        <receiver android:name=".testcore.SelfDestructReceiver"
191             android:exported="true"
192             android:process="android.autofillservice.cts.outside"/>
193        <receiver android:name=".testcore.OutOfProcessLoginActivityFinisherReceiver"
194             android:exported="true"
195             android:process="android.autofillservice.cts.outside"/>
196
197        <service android:name=".testcore.InstrumentedAutoFillService"
198             android:label="InstrumentedAutoFillService"
199             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
200             android:exported="true">
201            <intent-filter>
202                <action android:name="android.service.autofill.AutofillService"/>
203            </intent-filter>
204        </service>
205        <service android:name=".testcore.InstrumentedAutoFillServiceCompatMode"
206             android:label="testcore.InstrumentedAutoFillServiceCompatMode"
207             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
208             android:exported="true">
209            <intent-filter>
210                <action android:name="android.service.autofill.AutofillService"/>
211            </intent-filter>
212            <meta-data android:name="android.autofill"
213                 android:resource="@xml/autofill_service_compat_mode_config">
214            </meta-data>
215        </service>
216        <service android:name=".testcore.InstrumentedAutoFillServiceInlineEnabled"
217             android:label="InstrumentedAutoFillServiceInlineEnabled"
218             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
219             android:exported="true">
220            <intent-filter>
221                <action android:name="android.service.autofill.AutofillService"/>
222            </intent-filter>
223            <meta-data android:name="android.autofill"
224                 android:resource="@xml/autofill_service_inline_enabled">
225            </meta-data>
226        </service>
227        <service android:name=".testcore.NoOpAutofillService"
228             android:label="NoOpAutofillService"
229             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
230             android:exported="true">
231            <intent-filter>
232                <action android:name="android.service.autofill.AutofillService"/>
233            </intent-filter>
234        </service>
235        <!--  BadAutofillService does not declare the proper permission -->
236        <service android:name=".testcore.BadAutofillService"
237             android:label="testcore.BadAutofillService"
238             android:exported="true">
239            <intent-filter>
240                <action android:name="android.service.autofill.AutofillService"/>
241            </intent-filter>
242        </service>
243
244        <service android:name=".testcore.CtsAugmentedAutofillService"
245             android:label="CtsAugmentedAutofillService"
246             android:permission="android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE"
247             android:exported="true">
248            <intent-filter>
249                <action android:name="android.service.autofill.AutofillService"/>
250            </intent-filter>
251        </service>
252        <service android:name=".testcore.InstrumentedFieldClassificationService"
253            android:label="InstrumentedFieldClassificationService"
254            android:permission="android.permission.BIND_FIELD_CLASSIFICATION_SERVICE"
255            android:exported="true">
256            <intent-filter>
257                <action android:name="android.service.assist.classification.FieldClassificationService"/>
258            </intent-filter>
259        </service>
260        <service
261            android:exported="true"
262            android:name="android.autofillservice.cts.credman.CtsCredentialProviderService"
263            android:label="Test Provider Service"
264            android:permission="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE">
265            <intent-filter>
266                <action android:name="android.service.credentials.CredentialProviderService"/>
267            </intent-filter>
268            <meta-data
269                android:name="android.credentials.provider"
270                android:resource="@xml/provider"/>
271        </service>
272
273    </application>
274
275    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
276         android:label="CTS tests for the AutoFill Framework APIs."
277         android:targetPackage="android.autofillservice.cts">
278    </instrumentation>
279
280</manifest>
281