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

Commit 8293cb04 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Rehab parts of CollapsedStatusBarFragmentTest." into sc-v2-dev am: c7f6a075 am: 7f33fe9c

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

Change-Id: I10ef3b5dc1606b5b312f81dd0efaa6f676359230
parents d259f2b0 7f33fe9c
Loading
Loading
Loading
Loading
+91 −69
Original line number Original line Diff line number Diff line
@@ -21,7 +21,6 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.when;


import android.app.Fragment;
import android.app.Fragment;
@@ -63,7 +62,6 @@ import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
import com.android.systemui.util.time.FakeSystemClock;


import org.junit.Before;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mock;
@@ -85,7 +83,6 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
    // Set in instantiate()
    // Set in instantiate()
    private StatusBarIconController mStatusBarIconController;
    private StatusBarIconController mStatusBarIconController;
    private NetworkController mNetworkController;
    private NetworkController mNetworkController;
    private StatusBarStateController mStatusBarStateController;
    private KeyguardStateController mKeyguardStateController;
    private KeyguardStateController mKeyguardStateController;


    private final StatusBar mStatusBar = mock(StatusBar.class);
    private final StatusBar mStatusBar = mock(StatusBar.class);
@@ -98,7 +95,11 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
    @Mock
    @Mock
    private StatusBarFragmentComponent mStatusBarFragmentComponent;
    private StatusBarFragmentComponent mStatusBarFragmentComponent;
    @Mock
    @Mock
    private StatusBarStateController mStatusBarStateController;
    @Mock
    private HeadsUpAppearanceController mHeadsUpAppearanceController;
    private HeadsUpAppearanceController mHeadsUpAppearanceController;
    @Mock
    private NotificationPanelViewController mNotificationPanelViewController;


    public CollapsedStatusBarFragmentTest() {
    public CollapsedStatusBarFragmentTest() {
        super(CollapsedStatusBarFragment.class);
        super(CollapsedStatusBarFragment.class);
@@ -106,49 +107,35 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {


    @Before
    @Before
    public void setup() {
    public void setup() {
        mStatusBarStateController = mDependency
                .injectMockDependency(StatusBarStateController.class);
        injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
        injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
        when(mStatusBar.getPanelController()).thenReturn(
                mock(NotificationPanelViewController.class));
    }
    }


    @Test
    @Test
    public void testDisableNone() throws Exception {
    public void testDisableNone() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
                .getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());
        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock)
                .getVisibility());
    }
    }


    @Test
    @Test
    public void testDisableSystemInfo() throws Exception {
    public void testDisableSystemInfo() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_SYSTEM_INFO, 0, false);
        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_SYSTEM_INFO, 0, false);


        assertEquals(View.INVISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
        assertEquals(View.INVISIBLE, getSystemIconAreaView().getVisibility());
                .getVisibility());


        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
                .getVisibility());
    }
    }


    @Test
    @Test
    public void testDisableNotifications() throws Exception {
    public void testDisableNotifications() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false);
        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false);


@@ -160,25 +147,21 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
    }
    }


    @Test
    @Test
    public void testDisableClock() throws Exception {
    public void testDisableClock() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_CLOCK, 0, false);
        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_CLOCK, 0, false);


        assertEquals(View.GONE, mFragment.getView().findViewById(R.id.clock).getVisibility());
        assertEquals(View.GONE, getClockView().getVisibility());


        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock).getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());
    }
    }


    @Test
    @Test
    public void disable_noOngoingCall_chipHidden() {
    public void disable_noOngoingCall_chipHidden() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        when(mOngoingCallController.hasOngoingCall()).thenReturn(false);
        when(mOngoingCallController.hasOngoingCall()).thenReturn(false);


@@ -190,9 +173,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {


    @Test
    @Test
    public void disable_hasOngoingCall_chipDisplayedAndNotificationIconsHidden() {
    public void disable_hasOngoingCall_chipDisplayedAndNotificationIconsHidden() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);
        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);


@@ -206,9 +187,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {


    @Test
    @Test
    public void disable_hasOngoingCallButNotificationIconsDisabled_chipHidden() {
    public void disable_hasOngoingCallButNotificationIconsDisabled_chipHidden() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);
        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);


@@ -221,9 +200,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {


    @Test
    @Test
    public void disable_ongoingCallEnded_chipHidden() {
    public void disable_ongoingCallEnded_chipHidden() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);
        when(mOngoingCallController.hasOngoingCall()).thenReturn(true);


@@ -241,56 +218,87 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
                mFragment.getView().findViewById(R.id.ongoing_call_chip).getVisibility());
                mFragment.getView().findViewById(R.id.ongoing_call_chip).getVisibility());
    }
    }


    @Ignore("b/192618546")
    @Test
    @Test
    public void testOnDozingChanged() throws Exception {
    public void disable_isDozingButNoCustomClock_clockAndSystemInfoVisible() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        when(mStatusBarStateController.isDozing()).thenReturn(true);
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
        when(mNotificationPanelViewController.hasCustomClock()).thenReturn(false);


        fragment.disable(DEFAULT_DISPLAY, StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.INVISIBLE));
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());
    }

    @Test
    public void disable_customClockButNotDozing_clockAndSystemInfoVisible() {
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        when(mStatusBarStateController.isDozing()).thenReturn(false);
        when(mNotificationPanelViewController.hasCustomClock()).thenReturn(true);

        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        reset(mStatusBarStateController);
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());
    }

    @Test
    public void disable_dozingAndCustomClock_clockAndSystemInfoHidden() {
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        when(mStatusBarStateController.isDozing()).thenReturn(true);
        when(mStatusBarStateController.isDozing()).thenReturn(true);
        when(mNotificationPanelViewController.hasCustomClock()).thenReturn(true);

        // Make sure they start out as visible
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());

        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);

        assertEquals(View.INVISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.GONE, getClockView().getVisibility());
    }

    @Test
    public void onDozingChanged_clockAndSystemInfoVisibilitiesUpdated() {
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        when(mStatusBarStateController.isDozing()).thenReturn(true);
        when(mNotificationPanelViewController.hasCustomClock()).thenReturn(true);

        // Make sure they start out as visible
        assertEquals(View.VISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());

        fragment.onDozingChanged(true);
        fragment.onDozingChanged(true);


        Mockito.verify(mStatusBarStateController).isDozing();
        // When this callback is triggered, we want to make sure the clock and system info
        Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE));
        // visibilities are recalculated. Since dozing=true, they shouldn't be visible.
        assertEquals(View.INVISIBLE, getSystemIconAreaView().getVisibility());
        assertEquals(View.GONE, getClockView().getVisibility());
    }
    }


    @Test
    @Test
    public void disable_headsUpShouldBeVisibleTrue_clockDisabled() {
    public void disable_headsUpShouldBeVisibleTrue_clockDisabled() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;

        when(mHeadsUpAppearanceController.shouldBeVisible()).thenReturn(true);
        when(mHeadsUpAppearanceController.shouldBeVisible()).thenReturn(true);


        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        assertEquals(View.GONE, mFragment.getView().findViewById(R.id.clock).getVisibility());
        assertEquals(View.GONE, getClockView().getVisibility());
    }
    }


    @Test
    @Test
    public void disable_headsUpShouldBeVisibleFalse_clockNotDisabled() {
    public void disable_headsUpShouldBeVisibleFalse_clockNotDisabled() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;

        when(mHeadsUpAppearanceController.shouldBeVisible()).thenReturn(false);
        when(mHeadsUpAppearanceController.shouldBeVisible()).thenReturn(false);


        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);
        fragment.disable(DEFAULT_DISPLAY, 0, 0, false);


        assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock).getVisibility());
        assertEquals(View.VISIBLE, getClockView().getVisibility());
    }
    }


    @Test
    @Test
    public void setUp_fragmentCreatesDaggerComponent() {
    public void setUp_fragmentCreatesDaggerComponent() {
        mFragments.dispatchResume();
        CollapsedStatusBarFragment fragment = resumeAndGetFragment();
        processAllMessages();
        CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;


        assertEquals(mStatusBarFragmentComponent, fragment.getStatusBarFragmentComponent());
        assertEquals(mStatusBarFragmentComponent, fragment.getStatusBarFragmentComponent());
    }
    }
@@ -324,7 +332,7 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
                new StatusBarHideIconsForBouncerManager(
                new StatusBarHideIconsForBouncerManager(
                        mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
                        mCommandQueue, new FakeExecutor(new FakeSystemClock()), new DumpManager()),
                mKeyguardStateController,
                mKeyguardStateController,
                mock(NotificationPanelViewController.class),
                mNotificationPanelViewController,
                mNetworkController,
                mNetworkController,
                mStatusBarStateController,
                mStatusBarStateController,
                () -> Optional.of(mStatusBar),
                () -> Optional.of(mStatusBar),
@@ -361,4 +369,18 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
        when(mMockNotificationAreaController.getNotificationInnerAreaView()).thenReturn(
        when(mMockNotificationAreaController.getNotificationInnerAreaView()).thenReturn(
                mNotificationAreaInner);
                mNotificationAreaInner);
    }
    }

    private CollapsedStatusBarFragment resumeAndGetFragment() {
        mFragments.dispatchResume();
        processAllMessages();
        return (CollapsedStatusBarFragment) mFragment;
    }

    private View getClockView() {
        return mFragment.getView().findViewById(R.id.clock);
    }

    private View getSystemIconAreaView() {
        return mFragment.getView().findViewById(R.id.system_icon_area);
    }
}
}