Merge "Add test to ensure config changes passed down to TaskbarDelegate" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-10-12 06:00:18 +00:00
committed by Android (Google) Code Review

View File

@@ -19,6 +19,8 @@ package com.android.systemui.navigationbar;
import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.INVALID_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.any;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt; 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.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.res.Configuration;
import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper.RunWithLooper; import android.testing.TestableLooper.RunWithLooper;
import android.util.SparseArray; import android.util.SparseArray;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.systemui.Dependency; import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase; import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager; import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.model.SysUiState; import com.android.systemui.model.SysUiState;
import com.android.systemui.recents.OverviewProxyService; 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.CommandQueue;
import com.android.systemui.statusbar.phone.AutoHideController; import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.LightBarController;
@@ -72,11 +79,14 @@ public class NavigationBarControllerTest extends SysuiTestCase {
private NavigationBarController mNavigationBarController; private NavigationBarController mNavigationBarController;
private NavigationBar mDefaultNavBar; private NavigationBar mDefaultNavBar;
private NavigationBar mSecondaryNavBar; private NavigationBar mSecondaryNavBar;
private StaticMockitoSession mMockitoSession;
@Mock @Mock
private CommandQueue mCommandQueue; private CommandQueue mCommandQueue;
@Mock @Mock
private NavigationBarComponent.Factory mNavigationBarFactory; private NavigationBarComponent.Factory mNavigationBarFactory;
@Mock
TaskbarDelegate mTaskbarDelegate;
@Before @Before
public void setUp() { public void setUp() {
@@ -90,7 +100,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
Dependency.get(Dependency.MAIN_HANDLER), Dependency.get(Dependency.MAIN_HANDLER),
mock(ConfigurationController.class), mock(ConfigurationController.class),
mock(NavBarHelper.class), mock(NavBarHelper.class),
mock(TaskbarDelegate.class), mTaskbarDelegate,
mNavigationBarFactory, mNavigationBarFactory,
mock(StatusBarKeyguardViewManager.class), mock(StatusBarKeyguardViewManager.class),
mock(DumpManager.class), mock(DumpManager.class),
@@ -100,6 +110,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
Optional.of(mock(BackAnimation.class)), Optional.of(mock(BackAnimation.class)),
mock(FeatureFlags.class))); mock(FeatureFlags.class)));
initializeNavigationBars(); initializeNavigationBars();
mMockitoSession = mockitoSession().mockStatic(Utilities.class).startMocking();
} }
private void initializeNavigationBars() { private void initializeNavigationBars() {
@@ -120,6 +131,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
mNavigationBarController = null; mNavigationBarController = null;
mDefaultNavBar = null; mDefaultNavBar = null;
mSecondaryNavBar = null; mSecondaryNavBar = null;
mMockitoSession.finishMocking();
} }
@Test @Test
@@ -268,4 +280,22 @@ public class NavigationBarControllerTest extends SysuiTestCase {
public void test3ButtonTaskbarFlagDisabledNoRegister() { public void test3ButtonTaskbarFlagDisabledNoRegister() {
verify(mCommandQueue, never()).addCallback(any(TaskbarDelegate.class)); 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);
}
} }