1 /*
2  * Copyright (C) 2016 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 
17 package android.server.wm;
18 
19 import static android.server.wm.StateLogger.logAlways;
20 import static android.server.wm.app.Components.KeyguardDismissLoggerCallback.ENTRY_ON_DISMISS_CANCELLED;
21 import static android.server.wm.app.Components.KeyguardDismissLoggerCallback.ENTRY_ON_DISMISS_ERROR;
22 import static android.server.wm.app.Components.KeyguardDismissLoggerCallback.ENTRY_ON_DISMISS_SUCCEEDED;
23 
24 import static org.junit.Assert.fail;
25 
26 import android.app.KeyguardManager;
27 import android.content.ComponentName;
28 import android.os.SystemClock;
29 import android.server.wm.TestJournalProvider.TestJournalContainer;
30 
31 class KeyguardTestBase extends ActivityManagerTestBase {
32 
33     KeyguardManager mKeyguardManager;
34 
35     @Override
setUp()36     public void setUp() throws Exception {
37         super.setUp();
38         mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
39     }
40 
assertOnDismissSucceeded(ComponentName testingComponentName)41     static void assertOnDismissSucceeded(ComponentName testingComponentName) {
42         assertDismissCallback(testingComponentName, ENTRY_ON_DISMISS_SUCCEEDED);
43     }
44 
assertOnDismissCancelled(ComponentName testingComponentName)45     static void assertOnDismissCancelled(ComponentName testingComponentName) {
46         assertDismissCallback(testingComponentName, ENTRY_ON_DISMISS_CANCELLED);
47     }
48 
assertOnDismissError(ComponentName testingComponentName)49     static void assertOnDismissError(ComponentName testingComponentName) {
50         assertDismissCallback(testingComponentName, ENTRY_ON_DISMISS_ERROR);
51     }
52 
assertDismissCallback(ComponentName testingComponentName, String entry)53     private static void assertDismissCallback(ComponentName testingComponentName, String entry) {
54         for (int retry = 1; retry <= 5; retry++) {
55             if (TestJournalContainer.get(testingComponentName).extras
56                     .getBoolean(entry)) {
57                 return;
58             }
59             logAlways("Waiting for " + entry + "... retry=" + retry);
60             SystemClock.sleep(500);
61         }
62         fail("Waiting for " + entry + " failed");
63     }
64 }
65