1<?xml version="1.0" encoding="utf-8"?>
2<!--
3 * Copyright (C) 2017 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
28    <application>
29
30        <uses-library android:name="android.test.runner"/>
31
32        <activity android:name=".activities.LoginActivity"
33             android:exported="true">
34            <intent-filter>
35                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
36                                         this app during CTS development... -->
37                <action android:name="android.intent.action.MAIN"/>
38                <category android:name="android.intent.category.LAUNCHER"/>
39            </intent-filter>
40        </activity>
41        <activity android:name=".activities.PreFilledLoginActivity"/>
42        <activity android:name=".activities.LoginWithCustomHighlightActivity"
43             android:theme="@style/MyAutofilledHighlight"/>
44        <activity android:name=".activities.LoginWithStringsActivity"/>
45        <activity android:name=".activities.LoginNotImportantForAutofillActivity"/>
46        <activity android:name=".activities.LoginNotImportantForAutofillWrappedActivityContextActivity"/>
47        <activity android:name=".activities.LoginNotImportantForAutofillWrappedApplicationContextActivity"/>
48        <activity android:name=".activities.WelcomeActivity"
49             android:taskAffinity=".WelcomeActivity"/>
50        <activity android:name=".activities.ViewActionActivity"
51             android:taskAffinity=".ViewActionActivity"
52             android:launchMode="singleTask"
53             android:exported="true">
54            <intent-filter>
55                <action android:name="android.intent.action.VIEW"/>
56                <data android:scheme="autofillcts"/>
57                <category android:name="android.intent.category.DEFAULT"/>
58            </intent-filter>
59        </activity>
60        <activity android:name=".activities.SecondActivity"
61             android:taskAffinity=".SecondActivity"/>
62        <activity android:name=".activities.ViewAttributesTestActivity"/>
63        <activity android:name=".activities.AuthenticationActivity"/>
64        <activity android:name=".activities.ManualAuthenticationActivity"/>
65        <activity android:name=".activities.CheckoutActivity"
66             android:taskAffinity=".CheckoutActivity"/>
67        <activity android:name=".activities.InitializedCheckoutActivity"/>
68        <activity android:name=".activities.DatePickerCalendarActivity"/>
69        <activity android:name=".activities.DatePickerSpinnerActivity"/>
70        <activity android:name=".activities.TimePickerClockActivity"/>
71        <activity android:name=".activities.TimePickerSpinnerActivity"/>
72        <activity android:name=".activities.FatActivity"/>
73        <activity android:name=".activities.VirtualContainerActivity"
74             android:exported="true">
75            <intent-filter>
76                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
77                                         this app during CTS development... -->
78                <action android:name="android.intent.action.MAIN"/>
79                <category android:name="android.intent.category.LAUNCHER"/>
80            </intent-filter>
81        </activity>
82        <activity android:name=".activities.OptionalSaveActivity"/>
83        <activity android:name=".activities.GridActivity"/>
84        <activity android:name=".activities.EmptyActivity"/>
85        <activity android:name=".activities.DummyActivity"/>
86        <activity android:name=".activities.OutOfProcessLoginActivity"
87             android:process="android.autofillservice.cts.outside"/>
88        <activity android:name=".activities.FragmentContainerActivity"/>
89        <activity android:name=".activities.DuplicateIdActivity"
90             android:theme="@android:style/Theme.NoTitleBar"/>
91        <activity android:name=".activities.SimpleSaveActivity"/>
92        <activity android:name=".activities.PreSimpleSaveActivity"
93             android:exported="true">
94            <intent-filter>
95                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
96                                         this app during CTS development... -->
97                <action android:name="android.intent.action.MAIN"/>
98                <category android:name="android.intent.category.LAUNCHER"/>
99            </intent-filter>
100        </activity>
101        <activity android:name=".activities.WebViewActivity"/>
102        <activity android:name=".activities.WebViewMultiScreenLoginActivity"/>
103        <activity android:name=".activities.TrampolineWelcomeActivity"/>
104        <activity android:name=".activities.AttachedContextActivity"/>
105        <activity android:name=".activities.DialogLauncherActivity"
106             android:exported="true">
107            <intent-filter>
108                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
109                                         this app during CTS development... -->
110                <action android:name="android.intent.action.MAIN"/>
111                <category android:name="android.intent.category.LAUNCHER"/>
112            </intent-filter>
113        </activity>
114        <activity android:name=".activities.MultiWindowLoginActivity"/>
115        <activity android:name=".activities.MultiWindowEmptyActivity"
116             android:taskAffinity="nobody.but.EmptyActivity"
117             android:exported="true"/>
118
119        <activity android:name=".activities.TrampolineForResultActivity"/>
120        <activity android:name=".activities.OnCreateServiceStatusVerifierActivity"/>
121        <activity android:name=".activities.UsernameOnlyActivity"
122             android:exported="true">
123            <intent-filter>
124                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
125                                         this app during CTS development... -->
126                <action android:name="android.intent.action.MAIN"/>
127                <category android:name="android.intent.category.LAUNCHER"/>
128            </intent-filter>
129        </activity>
130        <activity android:name=".activities.PasswordOnlyActivity"
131             android:exported="true">
132            <intent-filter>
133                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
134                                         this app during CTS development... -->
135                <action android:name="android.intent.action.MAIN"/>
136                <category android:name="android.intent.category.LAUNCHER"/>
137            </intent-filter>
138        </activity>
139        <activity android:name=".activities.AugmentedLoginActivity"
140             android:exported="true">
141            <intent-filter>
142                <!-- This intent filter is not really needed by CTS, but it makes easier to launch
143                                         this app during CTS development... -->
144                <action android:name="android.intent.action.MAIN"/>
145                <category android:name="android.intent.category.LAUNCHER"/>
146            </intent-filter>
147        </activity>
148        <activity android:name=".activities.AugmentedAuthActivity" />
149        <activity android:name=".activities.SimpleAfterLoginActivity"/>
150        <activity android:name=".activities.SimpleBeforeLoginActivity"/>
151        <activity android:name=".activities.NonAutofillableActivity"/>
152
153        <receiver android:name=".testcore.SelfDestructReceiver"
154             android:exported="true"
155             android:process="android.autofillservice.cts.outside"/>
156        <receiver android:name=".testcore.OutOfProcessLoginActivityFinisherReceiver"
157             android:exported="true"
158             android:process="android.autofillservice.cts.outside"/>
159
160        <service android:name=".testcore.InstrumentedAutoFillService"
161             android:label="InstrumentedAutoFillService"
162             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
163             android:exported="true">
164            <intent-filter>
165                <action android:name="android.service.autofill.AutofillService"/>
166            </intent-filter>
167        </service>
168        <service android:name=".testcore.InstrumentedAutoFillServiceCompatMode"
169             android:label="testcore.InstrumentedAutoFillServiceCompatMode"
170             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
171             android:exported="true">
172            <intent-filter>
173                <action android:name="android.service.autofill.AutofillService"/>
174            </intent-filter>
175            <meta-data android:name="android.autofill"
176                 android:resource="@xml/autofill_service_compat_mode_config">
177            </meta-data>
178        </service>
179        <service android:name=".testcore.InstrumentedAutoFillServiceInlineEnabled"
180             android:label="InstrumentedAutoFillServiceInlineEnabled"
181             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
182             android:exported="true">
183            <intent-filter>
184                <action android:name="android.service.autofill.AutofillService"/>
185            </intent-filter>
186            <meta-data android:name="android.autofill"
187                 android:resource="@xml/autofill_service_inline_enabled">
188            </meta-data>
189        </service>
190        <service android:name=".testcore.NoOpAutofillService"
191             android:label="NoOpAutofillService"
192             android:permission="android.permission.BIND_AUTOFILL_SERVICE"
193             android:exported="true">
194            <intent-filter>
195                <action android:name="android.service.autofill.AutofillService"/>
196            </intent-filter>
197        </service>
198        <!--  BadAutofillService does not declare the proper permission -->
199        <service android:name=".testcore.BadAutofillService"
200             android:label="testcore.BadAutofillService"
201             android:exported="true">
202            <intent-filter>
203                <action android:name="android.service.autofill.AutofillService"/>
204            </intent-filter>
205        </service>
206
207        <service android:name=".testcore.CtsAugmentedAutofillService"
208             android:label="CtsAugmentedAutofillService"
209             android:permission="android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE"
210             android:exported="true">
211            <intent-filter>
212                <action android:name="android.service.autofill.AutofillService"/>
213            </intent-filter>
214        </service>
215
216    </application>
217
218    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
219         android:label="CTS tests for the AutoFill Framework APIs."
220         android:targetPackage="android.autofillservice.cts">
221    </instrumentation>
222
223</manifest>
224