Merge "Fix UserSwitchTransitionViewMediatorTest" into rvc-qpr-dev

This commit is contained in:
TreeHugger Robot
2020-08-01 01:29:52 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 6 deletions

View File

@@ -16,12 +16,12 @@
package com.android.systemui.car.userswitcher; package com.android.systemui.car.userswitcher;
import android.app.ActivityManager;
import android.car.Car; import android.car.Car;
import android.car.user.CarUserManager; import android.car.user.CarUserManager;
import android.util.Log; import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.car.CarDeviceProvisionedController;
import com.android.systemui.car.CarServiceProvider; import com.android.systemui.car.CarServiceProvider;
import com.android.systemui.car.window.OverlayViewMediator; import com.android.systemui.car.window.OverlayViewMediator;
@@ -36,13 +36,16 @@ public class UserSwitchTransitionViewMediator implements OverlayViewMediator,
private static final String TAG = "UserSwitchTransitionViewMediator"; private static final String TAG = "UserSwitchTransitionViewMediator";
private final CarServiceProvider mCarServiceProvider; private final CarServiceProvider mCarServiceProvider;
private final CarDeviceProvisionedController mCarDeviceProvisionedController;
private final UserSwitchTransitionViewController mUserSwitchTransitionViewController; private final UserSwitchTransitionViewController mUserSwitchTransitionViewController;
@Inject @Inject
public UserSwitchTransitionViewMediator( public UserSwitchTransitionViewMediator(
CarServiceProvider carServiceProvider, CarServiceProvider carServiceProvider,
CarDeviceProvisionedController carDeviceProvisionedController,
UserSwitchTransitionViewController userSwitchTransitionViewController) { UserSwitchTransitionViewController userSwitchTransitionViewController) {
mCarServiceProvider = carServiceProvider; mCarServiceProvider = carServiceProvider;
mCarDeviceProvisionedController = carDeviceProvisionedController;
mUserSwitchTransitionViewController = userSwitchTransitionViewController; mUserSwitchTransitionViewController = userSwitchTransitionViewController;
} }
@@ -74,7 +77,7 @@ public class UserSwitchTransitionViewMediator implements OverlayViewMediator,
@VisibleForTesting @VisibleForTesting
void handleUserLifecycleEvent(CarUserManager.UserLifecycleEvent event) { void handleUserLifecycleEvent(CarUserManager.UserLifecycleEvent event) {
if (event.getEventType() == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING if (event.getEventType() == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING
&& ActivityManager.getCurrentUser() == event.getUserId()) { && mCarDeviceProvisionedController.getCurrentUser() == event.getUserId()) {
mUserSwitchTransitionViewController.handleShow(event.getUserId()); mUserSwitchTransitionViewController.handleShow(event.getUserId());
} }

View File

@@ -16,6 +16,7 @@
package com.android.systemui.car.userswitcher; package com.android.systemui.car.userswitcher;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -24,6 +25,8 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper; 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.CarServiceProvider;
import com.android.systemui.car.CarSystemUiTest; import com.android.systemui.car.CarSystemUiTest;
@@ -37,13 +40,15 @@ import org.mockito.MockitoAnnotations;
@RunWith(AndroidTestingRunner.class) @RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper @TestableLooper.RunWithLooper
@SmallTest @SmallTest
public class UserSwitchTransitionViewMediatorTest { public class UserSwitchTransitionViewMediatorTest extends SysuiTestCase {
private static final int TEST_USER = 100; private static final int TEST_USER = 100;
private UserSwitchTransitionViewMediator mUserSwitchTransitionViewMediator; private UserSwitchTransitionViewMediator mUserSwitchTransitionViewMediator;
@Mock @Mock
private CarServiceProvider mCarServiceProvider; private CarServiceProvider mCarServiceProvider;
@Mock @Mock
private CarDeviceProvisionedController mCarDeviceProvisionedController;
@Mock
private UserSwitchTransitionViewController mUserSwitchTransitionViewController; private UserSwitchTransitionViewController mUserSwitchTransitionViewController;
@Mock @Mock
private CarUserManager.UserLifecycleEvent mUserLifecycleEvent; private CarUserManager.UserLifecycleEvent mUserLifecycleEvent;
@@ -53,20 +58,34 @@ public class UserSwitchTransitionViewMediatorTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mUserSwitchTransitionViewMediator = new UserSwitchTransitionViewMediator( mUserSwitchTransitionViewMediator = new UserSwitchTransitionViewMediator(
mCarServiceProvider, mUserSwitchTransitionViewController); mCarServiceProvider, mCarDeviceProvisionedController,
mUserSwitchTransitionViewController);
when(mCarDeviceProvisionedController.getCurrentUser()).thenReturn(TEST_USER);
} }
@Test @Test
public void onUserLifecycleEvent_userStarting_callsHandleShow() { public void onUserLifecycleEvent_userStarting_isCurrentUser_callsHandleShow() {
when(mUserLifecycleEvent.getEventType()).thenReturn( when(mUserLifecycleEvent.getEventType()).thenReturn(
CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING); CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING);
when(mUserLifecycleEvent.getUserId()).thenReturn(TEST_USER); when(mUserLifecycleEvent.getUserId()).thenReturn(TEST_USER);
mUserSwitchTransitionViewMediator.handleUserLifecycleEvent(mUserLifecycleEvent); mUserSwitchTransitionViewMediator.handleUserLifecycleEvent(mUserLifecycleEvent);
verify(mUserSwitchTransitionViewController).handleShow(TEST_USER); 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 @Test
public void onUserLifecycleEvent_userSwitching_callsHandleHide() { public void onUserLifecycleEvent_userSwitching_callsHandleHide() {
when(mUserLifecycleEvent.getEventType()).thenReturn( when(mUserLifecycleEvent.getEventType()).thenReturn(