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

Commit 018b03de authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Add test to ensure config changes passed down to TaskbarDelegate

* For change
Ifa7ea26946e6e68f74d095cbdf1e274d6a39b6b7

Bug: 243765256
Change-Id: I3cc4074d81b29655cc4ff47fe573da92005c8b55
parent 78b37190
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.systemui.navigationbar;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.INVALID_DISPLAY;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -30,20 +32,25 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.res.Configuration;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper.RunWithLooper;
import android.util.SparseArray;

import androidx.test.filters.SmallTest;

import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.model.SysUiState;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.recents.utilities.Utilities;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.LightBarController;
@@ -72,11 +79,14 @@ public class NavigationBarControllerTest extends SysuiTestCase {
    private NavigationBarController mNavigationBarController;
    private NavigationBar mDefaultNavBar;
    private NavigationBar mSecondaryNavBar;
    private StaticMockitoSession mMockitoSession;

    @Mock
    private CommandQueue mCommandQueue;
    @Mock
    private NavigationBarComponent.Factory mNavigationBarFactory;
    @Mock
    TaskbarDelegate mTaskbarDelegate;

    @Before
    public void setUp() {
@@ -90,7 +100,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
                        Dependency.get(Dependency.MAIN_HANDLER),
                        mock(ConfigurationController.class),
                        mock(NavBarHelper.class),
                        mock(TaskbarDelegate.class),
                        mTaskbarDelegate,
                        mNavigationBarFactory,
                        mock(StatusBarKeyguardViewManager.class),
                        mock(DumpManager.class),
@@ -100,6 +110,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
                        Optional.of(mock(BackAnimation.class)),
                        mock(FeatureFlags.class)));
        initializeNavigationBars();
        mMockitoSession = mockitoSession().mockStatic(Utilities.class).startMocking();
    }

    private void initializeNavigationBars() {
@@ -120,6 +131,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
        mNavigationBarController = null;
        mDefaultNavBar = null;
        mSecondaryNavBar = null;
        mMockitoSession.finishMocking();
    }

    @Test
@@ -268,4 +280,22 @@ public class NavigationBarControllerTest extends SysuiTestCase {
    public void test3ButtonTaskbarFlagDisabledNoRegister() {
        verify(mCommandQueue, never()).addCallback(any(TaskbarDelegate.class));
    }


    @Test
    public void testConfigurationChange_taskbarNotInitialized() {
        Configuration configuration = mContext.getResources().getConfiguration();
        when(Utilities.isTablet(any())).thenReturn(true);
        mNavigationBarController.onConfigChanged(configuration);
        verify(mTaskbarDelegate, never()).onConfigurationChanged(configuration);
    }

    @Test
    public void testConfigurationChange_taskbarInitialized() {
        Configuration configuration = mContext.getResources().getConfiguration();
        when(Utilities.isTablet(any())).thenReturn(true);
        when(mTaskbarDelegate.isInitialized()).thenReturn(true);
        mNavigationBarController.onConfigChanged(configuration);
        verify(mTaskbarDelegate, times(1)).onConfigurationChanged(configuration);
    }
}