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

Commit 52a3b5c1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ignore clicks on developer switch UI during monkey test" into oc-mr1-dev

parents 2834bcb1 bac6458a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -630,6 +630,9 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
            return;
        }

        if (Utils.isMonkeyRunning()) {
            return;
        }
        mSwitchBar.addOnSwitchChangeListener(this);
    }

+3 −0
Original line number Diff line number Diff line
@@ -117,6 +117,9 @@ public class BuildNumberPreferenceController extends AbstractPreferenceControlle
        if (!TextUtils.equals(preference.getKey(), KEY_BUILD_NUMBER)) {
            return false;
        }
        if (Utils.isMonkeyRunning()) {
            return false;
        }
        // Don't enable developer options for secondary users.
        if (!mUm.isAdminUser()) {
            mMetricsFeatureProvider.action(
+34 −13
Original line number Diff line number Diff line
@@ -16,6 +16,16 @@

package com.android.settings.deviceinfo;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
@@ -32,8 +42,10 @@ import com.android.settings.development.DevelopmentSettings;
import com.android.settings.search.DatabaseIndexingManager;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -44,18 +56,11 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
        shadows = {
                ShadowUtils.class
        })
public class BuildNumberPreferenceControllerTest {

    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -77,8 +82,7 @@ public class BuildNumberPreferenceControllerTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        FakeFeatureFactory.setupForTest(mContext);
        mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
        mFactory = FakeFeatureFactory.setupForTest(mContext);
        mLifecycle = new Lifecycle();
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        mController = new BuildNumberPreferenceController(
@@ -88,6 +92,11 @@ public class BuildNumberPreferenceControllerTest {
        mPreference.setKey(mController.getPreferenceKey());
    }

    @After
    public void tearDown() {
        ShadowUtils.reset();
    }

    @Test
    public void displayPref_shouldAlwaysDisplay() {
        mController.displayPreference(mScreen);
@@ -127,6 +136,18 @@ public class BuildNumberPreferenceControllerTest {
                eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_BUILD_NUMBER_PREF));
    }

    @Test
    public void handlePrefTreeClick_isMonkeyRun_doNothing() {
        final Context context = spy(RuntimeEnvironment.application);
        Settings.Global.putInt(context.getContentResolver(),
                Settings.Global.DEVICE_PROVISIONED, 1);
        ShadowUtils.setIsUserAMonkey(true);
        mController = new BuildNumberPreferenceController(
                context, mActivity, mFragment, mLifecycle);

        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
    }

    @Test
    public void handlePrefTreeClick_userHasRestriction_doNothing() {
        final Context context = spy(RuntimeEnvironment.application);
+16 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ public class ShadowUtils {

    private static IFingerprintManager sFingerprintManager = null;
    private static boolean sIsCarrierDemoUser;
    private static boolean sIsUserAMonkey;

    @Implementation
    public static int enforceSameOwner(Context context, int userId) {
@@ -47,6 +48,7 @@ public class ShadowUtils {
    public static void reset() {
        sFingerprintManager = null;
        sIsCarrierDemoUser = false;
        sIsUserAMonkey = false;
    }

    @Implementation
@@ -58,8 +60,22 @@ public class ShadowUtils {
        sIsCarrierDemoUser = isCarrierDemoUser;
    }

    public static void setIsUserAMonkey(boolean isUserAMonkey) {
        sIsUserAMonkey = isUserAMonkey;
    }


    @Implementation
    public static boolean isCarrierDemoUser(Context context) {
        return sIsCarrierDemoUser;
    }

    /**
     * Returns true if Monkey is running.
     */
    @Implementation
    public static boolean isMonkeyRunning() {
        return sIsUserAMonkey;

    }
}