Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9fc349e5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix UserSwitchTransitionViewMediatorTest" into rvc-qpr-dev am: c7d17023 am: 9ebbd0fb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12282475

Change-Id: Ia19b68b0ea1ac904cf7469962ee6c87e413b9457
parents 27b4cb6b 9ebbd0fb
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -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());
        }
        }


+23 −4
Original line number Original line Diff line number Diff line
@@ -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(