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
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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,20 +58,34 @@ 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(
|
||||
|
||||
Reference in New Issue
Block a user