Wakeup screen before dismissing keyguard am: f97924d826 Original change: https://android-review.googlesource.com/c/platform/tools/tradefederation/+/3504430 Change-Id: I8037dfe5533c15d2ff9e1f703fa3057ca9e88c4e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/javatests/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetterTest.java b/javatests/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetterTest.java index 4aecb53..a809870 100644 --- a/javatests/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetterTest.java +++ b/javatests/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetterTest.java
@@ -47,6 +47,7 @@ private static final String GET_LOCK_SCREEN_COMMAND = "locksettings get-disabled"; private static final String LOCK_SCREEN_OFF_COMMAND = "locksettings set-disabled true"; private static final String CLEAR_PWD_COMMAND = "locksettings clear --old %s"; + private static final String KEYCODE_WAKEUP_COMMAND = "input keyevent KEYCODE_WAKEUP"; private static final String KEYCODE_MENU_COMMAND = "input keyevent KEYCODE_MENU"; private static final String KEYCODE_HOME_COMMAND = "input keyevent KEYCODE_HOME"; @@ -71,6 +72,8 @@ public void setBaseline_lockScreenOff_skipRemovingPasswords() throws Exception { when(mMockDevice.executeShellV2Command(GET_LOCK_SCREEN_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, "true")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND)) @@ -90,6 +93,8 @@ .thenReturn( getMockCommandResult(CommandStatus.SUCCESS, "false"), getMockCommandResult(CommandStatus.SUCCESS, "true")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND)) @@ -100,11 +105,27 @@ verify(mMockDevice).executeShellV2Command(String.format(CLEAR_PWD_COMMAND, "1234")); } - /** Test that the setter returns false when the baseline is failed to remove lock screen. */ + /** Test that the setter returns false when the lockscreen is disabled and so not removed. */ @Test public void setBaseline_removeLockScreenFails_returnFalse() throws Exception { when(mMockDevice.executeShellV2Command(GET_LOCK_SCREEN_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, "false")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); + when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); + when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); + assertFalse(mSetter.setBaseline(mMockDevice)); + } + + /** Test that the setter returns false when the baseline is failed to input KEYCODE_WAKEUP. */ + @Test + public void setBaseline_inputKeycodeWakeupFails_returnFalse() throws Exception { + when(mMockDevice.executeShellV2Command(GET_LOCK_SCREEN_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, "true")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.FAILED, null)); when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND)) @@ -117,6 +138,8 @@ public void setBaseline_inputKeycodeMenuFails_returnFalse() throws Exception { when(mMockDevice.executeShellV2Command(GET_LOCK_SCREEN_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, "true")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.FAILED, null)); when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND)) @@ -129,6 +152,8 @@ public void setBaseline_inputKeycodeHomeFails_returnFalse() throws Exception { when(mMockDevice.executeShellV2Command(GET_LOCK_SCREEN_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, "true")); + when(mMockDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND)) + .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_MENU_COMMAND)) .thenReturn(getMockCommandResult(CommandStatus.SUCCESS, null)); when(mMockDevice.executeShellV2Command(KEYCODE_HOME_COMMAND))
diff --git a/src/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetter.java b/src/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetter.java index 80b3b89..d219f85 100644 --- a/src/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetter.java +++ b/src/com/android/tradefed/suite/checker/baseline/LockSettingsBaselineSetter.java
@@ -36,6 +36,7 @@ private static final String CLEAR_PWD_COMMAND = "locksettings clear --old %s"; private static final String KEYCODE_MENU_COMMAND = "input keyevent KEYCODE_MENU"; private static final String KEYCODE_HOME_COMMAND = "input keyevent KEYCODE_HOME"; + private static final String KEYCODE_WAKEUP_COMMAND = "input keyevent KEYCODE_WAKEUP"; public LockSettingsBaselineSetter(JSONObject object, String name) throws JSONException { super(object, name); @@ -60,9 +61,11 @@ if (!isLockScreenDisabled(mDevice)) { return false; } + CommandResult wakeupResult = mDevice.executeShellV2Command(KEYCODE_WAKEUP_COMMAND); CommandResult menuResult = mDevice.executeShellV2Command(KEYCODE_MENU_COMMAND); CommandResult homeResult = mDevice.executeShellV2Command(KEYCODE_HOME_COMMAND); - return CommandStatus.SUCCESS.equals(menuResult.getStatus()) + return CommandStatus.SUCCESS.equals(wakeupResult.getStatus()) + && CommandStatus.SUCCESS.equals(menuResult.getStatus()) && CommandStatus.SUCCESS.equals(homeResult.getStatus()); }