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

Commit a5e38b12 authored by András Kurucz's avatar András Kurucz
Browse files

[flexiglass] Parameterize NotificationStackScrollLayoutTest

Some tests were not relevant with the flag off, because they are testing
swipes and flings. Some should keep passing in both configurations.

Bug: 376236758
Test: atest NotificationStackScrollLayoutTest
Flag: com.android.systemui.scene_container
Change-Id: Idd935b8cf17508d5ecf5374054b89006ee5b84d0
parent 5cd16a26
Loading
Loading
Loading
Loading
+21 −2
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.notification.stack;
import static android.view.View.GONE;
import static android.view.View.GONE;
import static android.view.WindowInsets.Type.ime;
import static android.view.WindowInsets.Type.ime;


import static com.android.systemui.flags.SceneContainerFlagParameterizationKt.parameterizeSceneContainerFlag;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_ALL;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_ALL;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_GENTLE;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_GENTLE;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.RUBBER_BAND_FACTOR_NORMAL;
import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.RUBBER_BAND_FACTOR_NORMAL;
@@ -54,6 +55,7 @@ import android.graphics.Rect;
import android.os.SystemClock;
import android.os.SystemClock;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.FlagsParameterization;
import android.testing.TestableLooper;
import android.testing.TestableLooper;
import android.testing.TestableResources;
import android.testing.TestableResources;
import android.util.MathUtils;
import android.util.MathUtils;
@@ -64,13 +66,13 @@ import android.view.WindowInsets;
import android.view.WindowInsetsAnimation;
import android.view.WindowInsetsAnimation;
import android.widget.TextView;
import android.widget.TextView;


import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.systemui.ExpandHelper;
import com.android.systemui.ExpandHelper;
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.BrokenWithSceneContainer;
import com.android.systemui.flags.DisableSceneContainer;
import com.android.systemui.flags.DisableSceneContainer;
import com.android.systemui.flags.EnableSceneContainer;
import com.android.systemui.flags.EnableSceneContainer;
import com.android.systemui.flags.FakeFeatureFlags;
import com.android.systemui.flags.FakeFeatureFlags;
@@ -117,16 +119,25 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.mockito.junit.MockitoRule;


import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Consumer;


import platform.test.runner.parameterized.ParameterizedAndroidJunit4;
import platform.test.runner.parameterized.Parameters;

/**
/**
 * Tests for {@link NotificationStackScrollLayout}.
 * Tests for {@link NotificationStackScrollLayout}.
 */
 */
@SmallTest
@SmallTest
@RunWith(AndroidJUnit4.class)
@RunWith(ParameterizedAndroidJunit4.class)
@TestableLooper.RunWithLooper
@TestableLooper.RunWithLooper
public class NotificationStackScrollLayoutTest extends SysuiTestCase {
public class NotificationStackScrollLayoutTest extends SysuiTestCase {


    @Parameters(name = "{0}")
    public static List<FlagsParameterization> getParams() {
        return parameterizeSceneContainerFlag();
    }

    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
    private NotificationStackScrollLayout mStackScroller;  // Normally test this
    private NotificationStackScrollLayout mStackScroller;  // Normally test this
    private NotificationStackScrollLayout mStackScrollerInternal;  // See explanation below
    private NotificationStackScrollLayout mStackScrollerInternal;  // See explanation below
@@ -153,6 +164,11 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
    @Mock private LargeScreenShadeInterpolator mLargeScreenShadeInterpolator;
    @Mock private LargeScreenShadeInterpolator mLargeScreenShadeInterpolator;
    @Mock private AvalancheController mAvalancheController;
    @Mock private AvalancheController mAvalancheController;


    public NotificationStackScrollLayoutTest(FlagsParameterization flags) {
        super();
        mSetFlagsRule.setFlagsParameterization(flags);
    }

    @Before
    @Before
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        allowTestableLooperAsMainThread();
        allowTestableLooperAsMainThread();
@@ -352,6 +368,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
    }
    }


    @Test
    @Test
    @DisableSceneContainer
    public void updateStackEndHeightAndStackHeight_onlyUpdatesStackHeightDuringSwipeUp() {
    public void updateStackEndHeightAndStackHeight_onlyUpdatesStackHeightDuringSwipeUp() {
        final float expansionFraction = 0.5f;
        final float expansionFraction = 0.5f;
        mAmbientState.setStatusBarState(StatusBarState.KEYGUARD);
        mAmbientState.setStatusBarState(StatusBarState.KEYGUARD);
@@ -365,6 +382,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
    }
    }


    @Test
    @Test
    @DisableSceneContainer
    public void setPanelFlinging_updatesStackEndHeightOnlyOnFinish() {
    public void setPanelFlinging_updatesStackEndHeightOnlyOnFinish() {
        final float expansionFraction = 0.5f;
        final float expansionFraction = 0.5f;
        mAmbientState.setStatusBarState(StatusBarState.KEYGUARD);
        mAmbientState.setStatusBarState(StatusBarState.KEYGUARD);
@@ -1423,6 +1441,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {


    @Test
    @Test
    @EnableFlags(NotificationThrottleHun.FLAG_NAME)
    @EnableFlags(NotificationThrottleHun.FLAG_NAME)
    @BrokenWithSceneContainer(bugId = 332732878) // because NSSL#mAnimationsEnabled is always true
    public void testGenerateHeadsUpAnimation_isSeenInShade_noAnimation() {
    public void testGenerateHeadsUpAnimation_isSeenInShade_noAnimation() {
        // GIVEN NSSL is ready for HUN animations
        // GIVEN NSSL is ready for HUN animations
        Consumer<Boolean> headsUpAnimatingAwayListener = mock(BooleanConsumer.class);
        Consumer<Boolean> headsUpAnimatingAwayListener = mock(BooleanConsumer.class);