1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.bedstead.testapp
17 
18 import com.android.eventlib.events.activities.ActivityCreatedEvent
19 import com.android.eventlib.events.activities.ActivityCreatedEvent.ActivityCreatedEventQuery
20 import com.android.eventlib.events.activities.ActivityDestroyedEvent
21 import com.android.eventlib.events.activities.ActivityDestroyedEvent.ActivityDestroyedEventQuery
22 import com.android.eventlib.events.activities.ActivityEvents
23 import com.android.eventlib.events.activities.ActivityPausedEvent
24 import com.android.eventlib.events.activities.ActivityPausedEvent.ActivityPausedEventQuery
25 import com.android.eventlib.events.activities.ActivityRestartedEvent
26 import com.android.eventlib.events.activities.ActivityRestartedEvent.ActivityRestartedEventQuery
27 import com.android.eventlib.events.activities.ActivityResumedEvent
28 import com.android.eventlib.events.activities.ActivityResumedEvent.ActivityResumedEventQuery
29 import com.android.eventlib.events.activities.ActivityStartedEvent
30 import com.android.eventlib.events.activities.ActivityStartedEvent.ActivityStartedEventQuery
31 import com.android.eventlib.events.activities.ActivityStoppedEvent
32 import com.android.eventlib.events.activities.ActivityStoppedEvent.ActivityStoppedEventQuery
33 import com.android.eventlib.events.broadcastreceivers.BroadcastReceivedEvent
34 import com.android.eventlib.events.broadcastreceivers.BroadcastReceivedEvent.BroadcastReceivedEventQuery
35 import com.android.eventlib.events.broadcastreceivers.BroadcastReceiverEvents
36 import com.android.eventlib.events.delegatedadminreceivers.DelegatedAdminChoosePrivateKeyAliasEvent
37 import com.android.eventlib.events.delegatedadminreceivers.DelegatedAdminChoosePrivateKeyAliasEvent.DelegatedAdminChoosePrivateKeyAliasEventQuery
38 import com.android.eventlib.events.delegatedadminreceivers.DelegatedAdminReceiverEvents
39 import com.android.eventlib.events.delegatedadminreceivers.DelegatedAdminSecurityLogsAvailableEvent
40 import com.android.eventlib.events.delegatedadminreceivers.DelegatedAdminSecurityLogsAvailableEvent.DelegatedAdminSecurityLogsAvailableEventQuery
41 import com.android.eventlib.events.deviceadminreceivers.DelegatedAdminNetworkLogsAvailableEvent
42 import com.android.eventlib.events.deviceadminreceivers.DelegatedAdminNetworkLogsAvailableEvent.DelegatedAdminNetworkLogsAvailableEventQuery
43 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportFailedEvent
44 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportFailedEvent.DeviceAdminBugreportFailedEventQuery
45 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportSharedEvent
46 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportSharedEvent.DeviceAdminBugreportSharedEventQuery
47 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportSharingDeclinedEvent
48 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminBugreportSharingDeclinedEvent.DeviceAdminBugreportSharingDeclinedEventQuery
49 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminChoosePrivateKeyAliasEvent
50 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminChoosePrivateKeyAliasEvent.DeviceAdminChoosePrivateKeyAliasEventQuery
51 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisableRequestedEvent
52 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisableRequestedEvent.DeviceAdminDisableRequestedEventQuery
53 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisabledEvent
54 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminDisabledEvent.DeviceAdminDisabledEventQuery
55 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminEnabledEvent
56 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminEnabledEvent.DeviceAdminEnabledEventQuery
57 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminLockTaskModeEnteringEvent
58 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminLockTaskModeEnteringEvent.DeviceAdminLockTaskModeEnteringEventQuery
59 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminLockTaskModeExitingEvent
60 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminLockTaskModeExitingEvent.DeviceAdminLockTaskModeExitingEventQuery
61 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminNetworkLogsAvailableEvent
62 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminNetworkLogsAvailableEvent.DeviceAdminNetworkLogsAvailableEventQuery
63 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminOperationSafetyStateChangedEvent
64 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminOperationSafetyStateChangedEvent.DeviceAdminOperationSafetyStateChangedEventQuery
65 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordChangedEvent
66 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordChangedEvent.DeviceAdminPasswordChangedEventQuery
67 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordExpiringEvent
68 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordExpiringEvent.DeviceAdminPasswordExpiringEventQuery
69 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordFailedEvent
70 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordFailedEvent.DeviceAdminPasswordFailedEventQuery
71 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordSucceededEvent
72 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminPasswordSucceededEvent.DeviceAdminPasswordSucceededEventQuery
73 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminProfileProvisioningCompleteEvent
74 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminProfileProvisioningCompleteEvent.DeviceAdminProfileProvisioningCompleteEventQuery
75 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminReadyForUserInitializationEvent
76 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminReadyForUserInitializationEvent.DeviceAdminReadyForUserInitializationEventQuery
77 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminReceiverEvents
78 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminSecurityLogsAvailableEvent
79 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminSecurityLogsAvailableEvent.DeviceAdminSecurityLogsAvailableEventQuery
80 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminSystemUpdatePendingEvent
81 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminSystemUpdatePendingEvent.DeviceAdminSystemUpdatePendingEventQuery
82 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent
83 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent.DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery
84 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminTransferOwnershipCompleteEvent
85 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminTransferOwnershipCompleteEvent.DeviceAdminTransferOwnershipCompleteEventQuery
86 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserAddedEvent
87 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserAddedEvent.DeviceAdminUserAddedEventQuery
88 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserRemovedEvent
89 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserRemovedEvent.DeviceAdminUserRemovedEventQuery
90 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserStartedEvent
91 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserStartedEvent.DeviceAdminUserStartedEventQuery
92 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserStoppedEvent
93 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserStoppedEvent.DeviceAdminUserStoppedEventQuery
94 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserSwitchedEvent
95 import com.android.eventlib.events.deviceadminreceivers.DeviceAdminUserSwitchedEvent.DeviceAdminUserSwitchedEventQuery
96 import com.android.eventlib.events.services.ServiceBoundEvent
97 import com.android.eventlib.events.services.ServiceBoundEvent.ServiceBoundEventQuery
98 import com.android.eventlib.events.services.ServiceConfigurationChangedEvent
99 import com.android.eventlib.events.services.ServiceConfigurationChangedEvent.ServiceConfigurationChangedEventQuery
100 import com.android.eventlib.events.services.ServiceCreatedEvent
101 import com.android.eventlib.events.services.ServiceCreatedEvent.ServiceCreatedEventQuery
102 import com.android.eventlib.events.services.ServiceDestroyedEvent
103 import com.android.eventlib.events.services.ServiceDestroyedEvent.ServiceDestroyedEventQuery
104 import com.android.eventlib.events.services.ServiceEvents
105 import com.android.eventlib.events.services.ServiceLowMemoryEvent
106 import com.android.eventlib.events.services.ServiceLowMemoryEvent.ServiceLowMemoryEventQuery
107 import com.android.eventlib.events.services.ServiceMemoryTrimmedEvent
108 import com.android.eventlib.events.services.ServiceMemoryTrimmedEvent.ServiceMemoryTrimmedEventQuery
109 import com.android.eventlib.events.services.ServiceReboundEvent
110 import com.android.eventlib.events.services.ServiceReboundEvent.ServiceReboundEventQuery
111 import com.android.eventlib.events.services.ServiceStartedEvent
112 import com.android.eventlib.events.services.ServiceStartedEvent.ServiceStartedEventQuery
113 import com.android.eventlib.events.services.ServiceTaskRemovedEvent
114 import com.android.eventlib.events.services.ServiceTaskRemovedEvent.ServiceTaskRemovedEventQuery
115 import com.android.eventlib.events.services.ServiceUnboundEvent
116 import com.android.eventlib.events.services.ServiceUnboundEvent.ServiceUnboundEventQuery
117 
118 /**
119  * Quick access to events on this test app.
120  *
121  *
122  * Additional filters can be added to the returned object.
123  *
124  *
125  * `#poll` can be used to fetch results, and the result can be asserted on.
126  */
127 class TestAppEvents internal constructor(private val mTestApp: TestAppInstance) : ActivityEvents,
128     BroadcastReceiverEvents, DeviceAdminReceiverEvents, DelegatedAdminReceiverEvents,
129     ServiceEvents {
130 
activityCreatednull131     override fun activityCreated(): ActivityCreatedEventQuery =
132         ActivityCreatedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
133 
134     override fun activityDestroyed(): ActivityDestroyedEventQuery =
135         ActivityDestroyedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
136 
137     override fun activityPaused(): ActivityPausedEventQuery =
138         ActivityPausedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
139 
140     override fun activityRestarted(): ActivityRestartedEventQuery =
141         ActivityRestartedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
142 
143     override fun activityResumed(): ActivityResumedEventQuery =
144         ActivityResumedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
145 
146     override fun activityStarted(): ActivityStartedEventQuery =
147         ActivityStartedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
148 
149     override fun activityStopped(): ActivityStoppedEventQuery =
150         ActivityStoppedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
151 
152     override fun broadcastReceived(): BroadcastReceivedEventQuery =
153         BroadcastReceivedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
154 
155     override fun bugReportFailed(): DeviceAdminBugreportFailedEventQuery =
156         DeviceAdminBugreportFailedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
157 
158     override fun bugReportShared(): DeviceAdminBugreportSharedEventQuery =
159         DeviceAdminBugreportSharedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
160 
161     override fun bugReportSharingDeclined(): DeviceAdminBugreportSharingDeclinedEventQuery =
162         DeviceAdminBugreportSharingDeclinedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
163 
164     override fun choosePrivateKeyAlias(): DeviceAdminChoosePrivateKeyAliasEventQuery =
165         DeviceAdminChoosePrivateKeyAliasEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
166 
167     override fun deviceAdminDisabled(): DeviceAdminDisabledEventQuery =
168         DeviceAdminDisabledEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
169 
170     override fun deviceAdminDisableRequested(): DeviceAdminDisableRequestedEventQuery =
171         DeviceAdminDisableRequestedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
172 
173     override fun deviceAdminEnabled(): DeviceAdminEnabledEventQuery =
174         DeviceAdminEnabledEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
175 
176     override fun lockTaskModeEntering(): DeviceAdminLockTaskModeEnteringEventQuery =
177         DeviceAdminLockTaskModeEnteringEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
178 
179     override fun lockTaskModeExiting(): DeviceAdminLockTaskModeExitingEventQuery =
180         DeviceAdminLockTaskModeExitingEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
181 
182     override fun networkLogsAvailable(): DeviceAdminNetworkLogsAvailableEventQuery =
183         DeviceAdminNetworkLogsAvailableEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
184 
185     override fun operationSafetyStateChanged(): DeviceAdminOperationSafetyStateChangedEventQuery =
186         DeviceAdminOperationSafetyStateChangedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
187 
188     override fun passwordChanged(): DeviceAdminPasswordChangedEventQuery =
189         DeviceAdminPasswordChangedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
190 
191     override fun passwordExpiring(): DeviceAdminPasswordExpiringEventQuery =
192         DeviceAdminPasswordExpiringEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
193 
194     override fun passwordFailed(): DeviceAdminPasswordFailedEventQuery =
195         DeviceAdminPasswordFailedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
196 
197     override fun passwordSucceeded(): DeviceAdminPasswordSucceededEventQuery =
198         DeviceAdminPasswordSucceededEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
199 
200     override fun profileProvisioningComplete(): DeviceAdminProfileProvisioningCompleteEventQuery =
201         DeviceAdminProfileProvisioningCompleteEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
202 
203     override fun readyForUserInitialization(): DeviceAdminReadyForUserInitializationEventQuery =
204         DeviceAdminReadyForUserInitializationEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
205 
206     override fun securityLogsAvailable(): DeviceAdminSecurityLogsAvailableEventQuery =
207         DeviceAdminSecurityLogsAvailableEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
208 
209     override fun systemUpdatePending(): DeviceAdminSystemUpdatePendingEventQuery =
210         DeviceAdminSystemUpdatePendingEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
211 
212     override fun transferAffiliatedProfileOwnershipComplete(): DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery =
213         DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
214 
215     override fun transferOwnershipComplete(): DeviceAdminTransferOwnershipCompleteEventQuery =
216         DeviceAdminTransferOwnershipCompleteEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
217 
218     override fun userAdded(): DeviceAdminUserAddedEventQuery =
219         DeviceAdminUserAddedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
220 
221     override fun userRemoved(): DeviceAdminUserRemovedEventQuery =
222         DeviceAdminUserRemovedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
223 
224     override fun userStarted(): DeviceAdminUserStartedEventQuery =
225         DeviceAdminUserStartedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
226 
227     override fun userStopped(): DeviceAdminUserStoppedEventQuery =
228         DeviceAdminUserStoppedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
229 
230     override fun userSwitched(): DeviceAdminUserSwitchedEventQuery =
231         DeviceAdminUserSwitchedEvent.queryPackage(mTestApp.packageName()).onUser(mTestApp.user())
232 
233     override fun serviceCreated(): ServiceCreatedEventQuery =
234         ServiceCreatedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
235 
236     override fun serviceStarted(): ServiceStartedEventQuery =
237         ServiceStartedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
238 
239     override fun serviceDestroyed(): ServiceDestroyedEventQuery =
240         ServiceDestroyedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
241 
242     override fun serviceConfigurationChanged(): ServiceConfigurationChangedEventQuery =
243         ServiceConfigurationChangedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
244 
245     override fun serviceLowMemory(): ServiceLowMemoryEventQuery =
246         ServiceLowMemoryEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
247 
248     override fun serviceMemoryTrimmed(): ServiceMemoryTrimmedEventQuery =
249         ServiceMemoryTrimmedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
250 
251     override fun serviceBound(): ServiceBoundEventQuery =
252         ServiceBoundEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
253 
254     override fun serviceUnbound(): ServiceUnboundEventQuery =
255         ServiceUnboundEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
256 
257     override fun serviceRebound(): ServiceReboundEventQuery =
258         ServiceReboundEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
259 
260     override fun serviceTaskRemoved(): ServiceTaskRemovedEventQuery =
261         ServiceTaskRemovedEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
262 
263     override fun delegateChoosePrivateKeyAlias(): DelegatedAdminChoosePrivateKeyAliasEventQuery =
264         DelegatedAdminChoosePrivateKeyAliasEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
265 
266     override fun delegateNetworkLogsAvailable(): DelegatedAdminNetworkLogsAvailableEventQuery =
267         DelegatedAdminNetworkLogsAvailableEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
268 
269     override fun delegateSecurityLogsAvailable(): DelegatedAdminSecurityLogsAvailableEventQuery =
270         DelegatedAdminSecurityLogsAvailableEvent.queryPackage(mTestApp.testApp().packageName()).onUser(mTestApp.user())
271 }
272