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

Commit 1fab6d28 authored by Garvit Narang's avatar Garvit Narang
Browse files

Fix round scrollbar test

Flag check alone is not sufficient for the refactored scrollbar to be
drawn, it also requires the sysprop to be set.

Bug: 333417898
Flag: EXEMPT test only
Test: atest FrameworksCoreTests:android.view.RoundScrollbarRendererTest
Change-Id: Ieebe73019515af799de9f3b89a5e4c0e8328d5ac
parent 13186b0a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@ import android.view.flags.Flags;
 * @hide
 */
public class RoundScrollbarRenderer {
    private static final String BLUECHIP_ENABLED_SYSPROP = "persist.cw_build.bluechip.enabled";
    /** @hide */
    public static final String BLUECHIP_ENABLED_SYSPROP = "persist.cw_build.bluechip.enabled";

    // The range of the scrollbar position represented as an angle in degrees.
    private static final float SCROLLBAR_ANGLE_RANGE = 28.8f;
    private static final float MAX_SCROLLBAR_ANGLE_SWIPE = 26.3f; // 90%
+12 −10
Original line number Diff line number Diff line
@@ -16,7 +16,11 @@

package android.view;

import static android.view.RoundScrollbarRenderer.BLUECHIP_ENABLED_SYSPROP;

import static org.junit.Assert.assertEquals;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -30,11 +34,8 @@ import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.SystemProperties;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.view.flags.Flags;

import androidx.test.core.app.ApplicationProvider;
@@ -42,7 +43,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -66,9 +66,6 @@ public class RoundScrollbarRendererTest {
    private static final float DEFAULT_ALPHA = 0.5f;
    private static final Rect BOUNDS = new Rect(0, 0, 200, 200);

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    @Mock private Canvas mCanvas;
    @Captor private ArgumentCaptor<Paint> mPaintCaptor;
    private RoundScrollbarRenderer mScrollbar;
@@ -88,8 +85,8 @@ public class RoundScrollbarRendererTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_USE_REFACTORED_ROUND_SCROLLBAR)
    public void testScrollbarDrawn_legacy() {
        assumeFalse(usingRefactoredScrollbar());
        mScrollbar.drawRoundScrollbars(mCanvas, DEFAULT_ALPHA, BOUNDS, /* drawToLeft= */ false);

        // The arc will be drawn twice, i.e. once for track and once for thumb
@@ -105,8 +102,8 @@ public class RoundScrollbarRendererTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_USE_REFACTORED_ROUND_SCROLLBAR)
    public void testScrollbarDrawn() {
        assumeTrue(usingRefactoredScrollbar());
        mScrollbar.drawRoundScrollbars(mCanvas, DEFAULT_ALPHA, BOUNDS, /* drawToLeft= */ false);

        // The arc will be drawn thrice, i.e. twice for track and once for thumb
@@ -143,4 +140,9 @@ public class RoundScrollbarRendererTest {
            return super.computeVerticalScrollExtent();
        }
    }

    private static boolean usingRefactoredScrollbar() {
        return Flags.useRefactoredRoundScrollbar()
                && SystemProperties.getBoolean(BLUECHIP_ENABLED_SYSPROP, false);
    }
}