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

Commit 801a6544 authored by Bill Lin's avatar Bill Lin
Browse files

Do not access SettingProvider in test code

New policy: b/175024829
Settings key: <one_handed_*> is not readable.
From S+, new public settings keys need to be annotated
with @Readable unless they are annotated with @hide.

Recent changes :
ag/13764747 Remove @Readable for hidden fields added in S

Test: atest WMShellUnitTests
Bug: 183064974
Change-Id: I185491189a3804d7038be3c117583ab571e7a961
parent 93501a33
Loading
Loading
Loading
Loading
+22 −40
Original line number Diff line number Diff line
@@ -16,11 +16,10 @@

package com.android.wm.shell.onehanded;

import static android.window.DisplayAreaOrganizer.FEATURE_ONE_HANDED;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.never;
@@ -79,13 +78,8 @@ public class OneHandedControllerTest extends OneHandedTestCase {
    @Mock
    Handler mMockShellMainHandler;

    final boolean mDefaultEnabled = OneHandedSettingsUtil.getSettingsOneHandedModeEnabled(
            getTestContext().getContentResolver());
    final boolean mDefaultSwipeToNotificationEnabled =
            OneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled(
                    getTestContext().getContentResolver());
    final boolean mDefaultTapAppToExitEnabled = OneHandedSettingsUtil.getSettingsTapsAppToExit(
            getTestContext().getContentResolver());
    final boolean mDefaultSwipeToNotificationEnabled = false;
    final boolean mDefaultTapAppToExitEnabled = true;

    @Before
    public void setUp() {
@@ -127,15 +121,6 @@ public class OneHandedControllerTest extends OneHandedTestCase {
        assertThat(displayAreaOrganizer.isInOneHanded()).isFalse();
    }

    @Test
    public void testNoRegisterAndUnregisterInSameCall() {
        if (mDefaultEnabled) {
            verify(mMockDisplayAreaOrganizer, never()).unregisterOrganizer();
        } else {
            verify(mMockDisplayAreaOrganizer, never()).registerOrganizer(FEATURE_ONE_HANDED);
        }
    }

    @Test
    public void testStartOneHandedShouldTriggerScheduleOffset() {
        when(mMockDisplayAreaOrganizer.isInOneHanded()).thenReturn(false);
@@ -190,35 +175,39 @@ public class OneHandedControllerTest extends OneHandedTestCase {
    public void testUpdateEnabled() {
        mSpiedOneHandedController.setOneHandedEnabled(true);

        verify(mMockTouchHandler, atLeastOnce()).onOneHandedEnabled(mDefaultEnabled);
        verify(mMockGestureHandler, atLeastOnce()).onOneHandedEnabled(
                mDefaultEnabled || mDefaultSwipeToNotificationEnabled);
        verify(mMockTouchHandler, atLeastOnce()).onOneHandedEnabled(anyBoolean());
        verify(mMockGestureHandler, atLeastOnce()).onOneHandedEnabled(anyBoolean());
    }

    @Test
    public void testUpdateSwipeToNotification() {
        mSpiedOneHandedController.setSwipeToNotificationEnabled(mDefaultSwipeToNotificationEnabled);

        verify(mMockTouchHandler, atLeastOnce()).onOneHandedEnabled(mDefaultEnabled);
        verify(mMockGestureHandler, atLeastOnce()).onOneHandedEnabled(
                mDefaultEnabled || mDefaultSwipeToNotificationEnabled);
        verify(mMockTouchHandler, atLeastOnce()).onOneHandedEnabled(anyBoolean());
        verify(mMockGestureHandler, atLeastOnce()).onOneHandedEnabled(anyBoolean());
    }

    @Test
    public void testSettingsObserverUpdateTapAppToExit() {
        mSpiedOneHandedController.onTaskChangeExitSettingChanged();
        if (mDefaultTapAppToExitEnabled) {
    public void testTapAppToExitEnabledAddListener() {
        mSpiedOneHandedController.setTaskChangeToExit(mDefaultTapAppToExitEnabled);

        // If device settings default ON, then addListener() will be trigger 1 time at init
        verify(mMockTaskStackListener, atLeastOnce()).addListener(any());
        } else {
            verify(mMockTaskStackListener, atLeastOnce()).removeListener(any());
    }

    @Test
    public void testTapAppToExitDisabledRemoveListener() {
        mSpiedOneHandedController.setTaskChangeToExit(!mDefaultTapAppToExitEnabled);

        // If device settings default ON, then removeListener() will be trigger 1 time at init
        verify(mMockTaskStackListener, atLeastOnce()).removeListener(any());
    }

    @Test
    public void testSettingsObserverUpdateEnabled() {
        mSpiedOneHandedController.onEnabledSettingChanged();

        verify(mSpiedOneHandedController).setOneHandedEnabled(mDefaultEnabled);
        verify(mSpiedOneHandedController).setOneHandedEnabled(anyBoolean());
    }

    @Test
@@ -232,14 +221,7 @@ public class OneHandedControllerTest extends OneHandedTestCase {
    public void testSettingsObserverUpdateSwipeToNotification() {
        mSpiedOneHandedController.onSwipeToNotificationEnabledSettingChanged();

        // Swipe to notification function is opposite with one handed mode function
        if (mDefaultSwipeToNotificationEnabled) {
            verify(mSpiedOneHandedController).setSwipeToNotificationEnabled(
                    mDefaultSwipeToNotificationEnabled);
        } else {
            verify(mSpiedOneHandedController, never()).setSwipeToNotificationEnabled(
                    mDefaultSwipeToNotificationEnabled);
        }
        verify(mSpiedOneHandedController).setSwipeToNotificationEnabled(anyBoolean());
    }

    @Test
+0 −33
Original line number Diff line number Diff line
@@ -16,11 +16,6 @@

package com.android.wm.shell.onehanded;

import static com.android.wm.shell.onehanded.OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_LONG_IN_SECONDS;
import static com.android.wm.shell.onehanded.OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_MEDIUM_IN_SECONDS;
import static com.android.wm.shell.onehanded.OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_NEVER;
import static com.android.wm.shell.onehanded.OneHandedSettingsUtil.ONE_HANDED_TIMEOUT_SHORT_IN_SECONDS;

import static com.google.common.truth.Truth.assertThat;

import android.content.ContentResolver;
@@ -78,32 +73,4 @@ public class OneHandedSettingsUtilTest extends OneHandedTestCase {

        assertThat(mOnChanged).isFalse();
    }

    @Test
    public void testGetSettingsIsOneHandedModeEnabled() {
        assertThat(OneHandedSettingsUtil.getSettingsOneHandedModeEnabled(
                mContentResolver)).isAnyOf(true, false);
    }

    @Test
    public void testGetSettingsTapsAppToExit() {
        assertThat(OneHandedSettingsUtil.getSettingsTapsAppToExit(
                mContentResolver)).isAnyOf(true, false);
    }

    @Test
    public void testGetSettingsOneHandedModeTimeout() {
        assertThat(OneHandedSettingsUtil.getSettingsOneHandedModeTimeout(
                mContentResolver)).isAnyOf(
                ONE_HANDED_TIMEOUT_NEVER,
                ONE_HANDED_TIMEOUT_SHORT_IN_SECONDS,
                ONE_HANDED_TIMEOUT_MEDIUM_IN_SECONDS,
                ONE_HANDED_TIMEOUT_LONG_IN_SECONDS);
    }

    @Test
    public void testGetSettingsSwipeToNotificationEnabled() {
        assertThat(OneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled(
                mContentResolver)).isAnyOf(true, false);
    }
}