From f9f0f791f13c5fad8b15471c8f0aafc148cfb89c Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Tue, 15 Sep 2020 15:36:55 +0800 Subject: [PATCH] Fix some one handed tests failed IOverlayManager might be null when tests, change ctor to use mock one to fix failed tests. Bug: 167943723 Test: atest WMShellUnitTests Change-Id: I122d95b258e8fab8993e72aba597b184f126a9e1 --- .../wm/shell/onehanded/OneHandedController.java | 10 ++++++---- .../wm/shell/onehanded/OneHandedControllerTest.java | 7 +++++-- .../shell/onehanded/OneHandedTutorialHandlerTest.java | 8 ++++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java index f4b4f374bdc59..d060f64444634 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java @@ -172,8 +172,10 @@ public class OneHandedController implements OneHanded { context, displayController); OneHandedDisplayAreaOrganizer organizer = new OneHandedDisplayAreaOrganizer( context, displayController, animationController, tutorialHandler); + IOverlayManager overlayManager = IOverlayManager.Stub.asInterface( + ServiceManager.getService(Context.OVERLAY_SERVICE)); return new OneHandedController(context, displayController, organizer, touchHandler, - tutorialHandler, gestureHandler); + tutorialHandler, gestureHandler, overlayManager); } @VisibleForTesting @@ -182,7 +184,8 @@ public class OneHandedController implements OneHanded { OneHandedDisplayAreaOrganizer displayAreaOrganizer, OneHandedTouchHandler touchHandler, OneHandedTutorialHandler tutorialHandler, - OneHandedGestureHandler gestureHandler) { + OneHandedGestureHandler gestureHandler, + IOverlayManager overlayManager) { mHasOneHandedFeature = SystemProperties.getBoolean(SUPPORT_ONE_HANDED_MODE, false); if (!mHasOneHandedFeature) { Log.i(TAG, "Device config SUPPORT_ONE_HANDED_MODE off"); @@ -201,9 +204,8 @@ public class OneHandedController implements OneHanded { mTouchHandler = touchHandler; mTutorialHandler = tutorialHandler; mGestureHandler = gestureHandler; + mOverlayManager = overlayManager; - mOverlayManager = IOverlayManager.Stub.asInterface( - ServiceManager.getService(Context.OVERLAY_SERVICE)); mOffSetFraction = SystemProperties.getInt(ONE_HANDED_MODE_OFFSET_PERCENTAGE, 50) / 100.0f; mIsOneHandedEnabled = OneHandedSettingsUtil.getSettingsOneHandedModeEnabled( diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java index 1ce8b5445b377..3645f1e56f923 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedControllerTest.java @@ -18,13 +18,13 @@ package com.android.wm.shell.onehanded; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.content.om.IOverlayManager; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; @@ -62,6 +62,8 @@ public class OneHandedControllerTest extends OneHandedTestCase { OneHandedGestureHandler mMockGestureHandler; @Mock OneHandedTimeoutHandler mMockTimeoutHandler; + @Mock + IOverlayManager mMockOverlayManager; @Before public void setUp() throws Exception { @@ -73,7 +75,8 @@ public class OneHandedControllerTest extends OneHandedTestCase { mMockDisplayAreaOrganizer, mMockTouchHandler, mMockTutorialHandler, - mMockGestureHandler); + mMockGestureHandler, + mMockOverlayManager); mOneHandedController = Mockito.spy(oneHandedController); mTimeoutHandler = Mockito.spy(OneHandedTimeoutHandler.get()); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java index 4a133d39291a7..3341c9cbacb9b 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/onehanded/OneHandedTutorialHandlerTest.java @@ -18,6 +18,7 @@ package com.android.wm.shell.onehanded; import static org.mockito.Mockito.verify; +import android.content.om.IOverlayManager; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; @@ -44,6 +45,8 @@ public class OneHandedTutorialHandlerTest extends OneHandedTestCase { DisplayController mMockDisplayController; @Mock OneHandedDisplayAreaOrganizer mMockDisplayAreaOrganizer; + @Mock + IOverlayManager mMockOverlayManager; @Before public void setUp() { @@ -56,11 +59,12 @@ public class OneHandedTutorialHandlerTest extends OneHandedTestCase { mMockDisplayAreaOrganizer, mTouchHandler, mTutorialHandler, - mGestureHandler); + mGestureHandler, + mMockOverlayManager); } @Test - public void testOneHandedManager_registerForDisplayAreaOrganizer() { + public void testRegisterForDisplayAreaOrganizer() { verify(mMockDisplayAreaOrganizer).registerTransitionCallback(mTutorialHandler); } }