diff options
| author | 2020-07-31 16:25:17 -0700 | |
|---|---|---|
| committer | 2020-07-31 16:49:24 -0700 | |
| commit | ff69d4bf4cbd2059c61ece8344eea4393f3ca2b9 (patch) | |
| tree | 1c14955fb0d2014cbe91ebd93ad0166c16a316c1 | |
| parent | 66909a0d5de845d5d5803b6358b1488730eeb6a9 (diff) | |
Fix UserSwitchTransitionViewMediatorTest
First, it has to extend SystemUiTestCase to pass AAAPlusPlusVerify Test.
Second, CarDeviceProvisionedController is injected into the Mediator and
mocked in its test to correctly test case where the user life cycle
event is being applied to the current user and a case when it is not.
Bug: 161892451
Test: Unit Test (the corresponding tests passing now.)
Change-Id: I8be7dacaa1bf0abb87dcb357c37e58ce511132d2
2 files changed, 28 insertions, 6 deletions
diff --git a/packages/CarSystemUI/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediator.java b/packages/CarSystemUI/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediator.java index aea691443290..7db2823dc3b9 100644 --- a/packages/CarSystemUI/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediator.java +++ b/packages/CarSystemUI/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediator.java @@ -16,12 +16,12 @@ package com.android.systemui.car.userswitcher; -import android.app.ActivityManager; import android.car.Car; import android.car.user.CarUserManager; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; +import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarServiceProvider; import com.android.systemui.car.window.OverlayViewMediator; @@ -36,13 +36,16 @@ public class UserSwitchTransitionViewMediator implements OverlayViewMediator, private static final String TAG = "UserSwitchTransitionViewMediator"; private final CarServiceProvider mCarServiceProvider; + private final CarDeviceProvisionedController mCarDeviceProvisionedController; private final UserSwitchTransitionViewController mUserSwitchTransitionViewController; @Inject public UserSwitchTransitionViewMediator( CarServiceProvider carServiceProvider, + CarDeviceProvisionedController carDeviceProvisionedController, UserSwitchTransitionViewController userSwitchTransitionViewController) { mCarServiceProvider = carServiceProvider; + mCarDeviceProvisionedController = carDeviceProvisionedController; mUserSwitchTransitionViewController = userSwitchTransitionViewController; } @@ -74,7 +77,7 @@ public class UserSwitchTransitionViewMediator implements OverlayViewMediator, @VisibleForTesting void handleUserLifecycleEvent(CarUserManager.UserLifecycleEvent event) { if (event.getEventType() == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING - && ActivityManager.getCurrentUser() == event.getUserId()) { + && mCarDeviceProvisionedController.getCurrentUser() == event.getUserId()) { mUserSwitchTransitionViewController.handleShow(event.getUserId()); } diff --git a/packages/CarSystemUI/tests/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediatorTest.java b/packages/CarSystemUI/tests/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediatorTest.java index de6feb64391f..7aeffce7042d 100644 --- a/packages/CarSystemUI/tests/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediatorTest.java +++ b/packages/CarSystemUI/tests/src/com/android/systemui/car/userswitcher/UserSwitchTransitionViewMediatorTest.java @@ -16,6 +16,7 @@ package com.android.systemui.car.userswitcher; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -24,6 +25,8 @@ import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; +import com.android.systemui.SysuiTestCase; +import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarServiceProvider; import com.android.systemui.car.CarSystemUiTest; @@ -37,13 +40,15 @@ import org.mockito.MockitoAnnotations; @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper @SmallTest -public class UserSwitchTransitionViewMediatorTest { +public class UserSwitchTransitionViewMediatorTest extends SysuiTestCase { private static final int TEST_USER = 100; private UserSwitchTransitionViewMediator mUserSwitchTransitionViewMediator; @Mock private CarServiceProvider mCarServiceProvider; @Mock + private CarDeviceProvisionedController mCarDeviceProvisionedController; + @Mock private UserSwitchTransitionViewController mUserSwitchTransitionViewController; @Mock private CarUserManager.UserLifecycleEvent mUserLifecycleEvent; @@ -53,21 +58,35 @@ public class UserSwitchTransitionViewMediatorTest { MockitoAnnotations.initMocks(this); mUserSwitchTransitionViewMediator = new UserSwitchTransitionViewMediator( - mCarServiceProvider, mUserSwitchTransitionViewController); - + mCarServiceProvider, mCarDeviceProvisionedController, + mUserSwitchTransitionViewController); + when(mCarDeviceProvisionedController.getCurrentUser()).thenReturn(TEST_USER); } @Test - public void onUserLifecycleEvent_userStarting_callsHandleShow() { + public void onUserLifecycleEvent_userStarting_isCurrentUser_callsHandleShow() { when(mUserLifecycleEvent.getEventType()).thenReturn( CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING); when(mUserLifecycleEvent.getUserId()).thenReturn(TEST_USER); + mUserSwitchTransitionViewMediator.handleUserLifecycleEvent(mUserLifecycleEvent); verify(mUserSwitchTransitionViewController).handleShow(TEST_USER); } @Test + public void onUserLifecycleEvent_userStarting_isNotCurrentUser_doesNotCallHandleShow() { + when(mUserLifecycleEvent.getEventType()).thenReturn( + CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING); + when(mUserLifecycleEvent.getUserId()).thenReturn(TEST_USER); + when(mCarDeviceProvisionedController.getCurrentUser()).thenReturn(TEST_USER + 1); + + mUserSwitchTransitionViewMediator.handleUserLifecycleEvent(mUserLifecycleEvent); + + verify(mUserSwitchTransitionViewController, never()).handleShow(TEST_USER); + } + + @Test public void onUserLifecycleEvent_userSwitching_callsHandleHide() { when(mUserLifecycleEvent.getEventType()).thenReturn( CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING); |