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

Commit f83b076d authored by Fan Wu's avatar Fan Wu Committed by Android (Google) Code Review
Browse files

Merge "Remove LooperMode.LEGACY from settings/password" into main

parents ba03a223 b941ff7b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.content.Context;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.password.ChooseLockTypeDialogFragment.OnLockTypeSelectedListener;
@@ -39,13 +40,11 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowLooper;
import org.robolectric.shadows.androidx.fragment.FragmentController;

@RunWith(RobolectricTestRunner.class)
@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
public class ChooseLockTypeDialogFragmentTest {

@@ -54,7 +53,7 @@ public class ChooseLockTypeDialogFragmentTest {

    @Before
    public void setUp() {
        mContext = RuntimeEnvironment.application;
        mContext = ApplicationProvider.getApplicationContext();
        mFragment = new TestFragment();
        FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
                null /* bundle */);
@@ -97,6 +96,7 @@ public class ChooseLockTypeDialogFragmentTest {
        ChooseLockTypeDialogFragment chooseLockTypeDialogFragment =
                ChooseLockTypeDialogFragment.newInstance(1234);
        chooseLockTypeDialogFragment.show(mFragment.getChildFragmentManager(), null);
        ShadowLooper.idleMainLooper();
        return ShadowAlertDialogCompat.getLatestAlertDialog();
    }

+20 −11
Original line number Diff line number Diff line
@@ -19,8 +19,7 @@ package com.android.settings.password;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;

import static org.robolectric.RuntimeEnvironment.application;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
@@ -29,6 +28,7 @@ import android.widget.Button;
import android.widget.LinearLayout;

import androidx.appcompat.app.AlertDialog;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
@@ -56,16 +56,15 @@ import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowDialog;
import org.robolectric.shadows.ShadowInputMethodManager;
import org.robolectric.shadows.ShadowLooper;

import java.util.Collections;
import java.util.List;

@RunWith(RobolectricTestRunner.class)
@LooperMode(LooperMode.Mode.LEGACY)
@Config(
        shadows = {
                SettingsShadowResources.class,
@@ -75,9 +74,11 @@ import java.util.List;
                ShadowAlertDialogCompat.class
        })
public class SetupChooseLockPasswordTest {
    private Context mApplication;

    @Before
    public void setUp() {
        mApplication = ApplicationProvider.getApplicationContext();
        SettingsShadowResources.overrideResource(
                com.android.internal.R.string.config_headlineFontFamily, "");
    }
@@ -92,8 +93,8 @@ public class SetupChooseLockPasswordTest {
        // Basic test for activity created without crashing
        final Intent intent =
                SetupChooseLockPassword.modifyIntentForSetup(
                        application,
                        new IntentBuilder(application).build());
                        mApplication,
                        new IntentBuilder(mApplication).build());

        ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
    }
@@ -104,6 +105,8 @@ public class SetupChooseLockPasswordTest {
        Button optionsButton = activity.findViewById(R.id.screen_lock_options);
        assertThat(optionsButton).isNotNull();
        optionsButton.performClick();
        ShadowLooper.idleMainLooper();

        assertThat(ShadowDialog.getLatestDialog()).isNotNull();
    }

@@ -118,6 +121,8 @@ public class SetupChooseLockPasswordTest {
        assertThat(optionsButton).isNotNull();

        optionsButton.performClick();
        ShadowLooper.idleMainLooper();

        assertThat(ShadowDialog.getLatestDialog()).isNotNull();
    }

@@ -135,6 +140,8 @@ public class SetupChooseLockPasswordTest {
    public void allSecurityOptions_shouldBeShown_When_OptionsButtonIsClicked() {
        SetupChooseLockPassword activity = createSetupChooseLockPassword();
        activity.findViewById(R.id.screen_lock_options).performClick();
        ShadowLooper.idleMainLooper();

        AlertDialog latestAlertDialog = (AlertDialog) ShadowDialog.getLatestDialog();
        int count = latestAlertDialog.getListView().getCount();
        assertWithMessage("List items shown").that(count).isEqualTo(3);
@@ -145,9 +152,9 @@ public class SetupChooseLockPasswordTest {
        Bundle bundle = new Bundle();
        bundle.putString("foo", "bar");

        Intent intent = new IntentBuilder(application).build();
        Intent intent = new IntentBuilder(mApplication).build();
        intent.putExtra(ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS, bundle);
        intent = SetupChooseLockPassword.modifyIntentForSetup(application, intent);
        intent = SetupChooseLockPassword.modifyIntentForSetup(mApplication, intent);
        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);

        SetupChooseLockPassword activity =
@@ -181,6 +188,8 @@ public class SetupChooseLockPasswordTest {
        assertThat(skipOrClearButton.getVisibility()).isEqualTo(View.VISIBLE);

        skipOrClearButton.performClick();
        ShadowLooper.idleMainLooper();

        final AlertDialog chooserDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
        assertThat(chooserDialog).isNotNull();
        assertThat(shadowImm.isSoftInputVisible()).isFalse();
@@ -208,14 +217,14 @@ public class SetupChooseLockPasswordTest {
        fragment.updateUi();
        assertThat(skipOrClearButton.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(skipOrClearButton.getText())
                .isEqualTo(application.getString(R.string.lockpassword_clear_label));
                .isEqualTo(mApplication.getString(R.string.lockpassword_clear_label));
    }

    private SetupChooseLockPassword createSetupChooseLockPassword() {
        final Intent intent =
                SetupChooseLockPassword.modifyIntentForSetup(
                        application,
                        new IntentBuilder(application).build());
                        mApplication,
                        new IntentBuilder(mApplication).build());
        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
        return ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
    }
+24 −24
Original line number Diff line number Diff line
@@ -19,9 +19,8 @@ package com.android.settings.password;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;

import static org.robolectric.RuntimeEnvironment.application;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
@@ -33,6 +32,7 @@ import android.widget.TextView;

import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;

import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView;
@@ -58,7 +58,6 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -66,23 +65,24 @@ import org.robolectric.util.ReflectionHelpers.ClassParameter;
import java.util.Arrays;

@RunWith(RobolectricTestRunner.class)
@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowUtils.class, ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
public class SetupChooseLockPatternTest {
    private Context mContext;

    private SetupChooseLockPattern mActivity;

    @Before
    public void setUp() {
        application.getPackageManager().setComponentEnabledSetting(
                new ComponentName(application, SetupRedactionInterstitial.class),
        mContext = ApplicationProvider.getApplicationContext();
        mContext.getPackageManager().setComponentEnabledSetting(
                new ComponentName(mContext, SetupRedactionInterstitial.class),
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                PackageManager.DONT_KILL_APP);

        final Intent intent =
                SetupChooseLockPattern.modifyIntentForSetup(
                        application,
                        new IntentBuilder(application)
                        mContext,
                        new IntentBuilder(mContext)
                                .setUserId(UserHandle.myUserId())
                                .build());
        mActivity = ActivityController.of(new SetupChooseLockPattern(), intent).setup().get();
@@ -92,8 +92,8 @@ public class SetupChooseLockPatternTest {
    public void chooseLockSaved_shouldEnableRedactionInterstitial() {
        findFragment(mActivity).onChosenLockSaveFinished(false, null);

        ShadowPackageManager spm = Shadows.shadowOf(application.getPackageManager());
        ComponentName cname = new ComponentName(application, SetupRedactionInterstitial.class);
        ShadowPackageManager spm = Shadows.shadowOf(mContext.getPackageManager());
        ComponentName cname = new ComponentName(mContext, SetupRedactionInterstitial.class);
        final int componentEnabled = spm.getComponentEnabledSettingFlags(cname)
                & PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
        assertThat(componentEnabled).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
@@ -199,14 +199,14 @@ public class SetupChooseLockPatternTest {
        assertThat(skipOrClearButton.isEnabled()).isTrue();
        assertThat(skipOrClearButton.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(skipOrClearButton.getText())
                .isEqualTo(application.getString(R.string.skip_label));
                .isEqualTo(mContext.getString(R.string.skip_label));

        enterPattern();

        assertThat(skipOrClearButton.isEnabled()).isTrue();
        assertThat(skipOrClearButton.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(skipOrClearButton.getText())
                .isEqualTo(application.getString(R.string.lockpattern_retry_button_text));
                .isEqualTo(mContext.getString(R.string.lockpattern_retry_button_text));
    }

    @Test
@@ -217,7 +217,7 @@ public class SetupChooseLockPatternTest {

        assertThat(patternDescription.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(patternDescription.getText()).isEqualTo(
                application.getString(R.string.lockpassword_choose_your_pattern_description));
                mContext.getString(R.string.lockpassword_choose_your_pattern_description));
    }

    @Test
@@ -225,7 +225,7 @@ public class SetupChooseLockPatternTest {
        final CharSequence headerView = mActivity.getTitle();

        assertThat(headerView).isEqualTo(
                application.getString(R.string.lockpassword_choose_your_pattern_header));
                mContext.getString(R.string.lockpassword_choose_your_pattern_header));
    }

    @Test
@@ -235,7 +235,7 @@ public class SetupChooseLockPatternTest {

        assertThat(headerView.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpassword_choose_your_pattern_description));
                mContext.getString(R.string.lockpassword_choose_your_pattern_description));
    }

    @Test
@@ -248,7 +248,7 @@ public class SetupChooseLockPatternTest {
        enterPattern();

        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_pattern_entered_header));
                mContext.getString(R.string.lockpattern_pattern_entered_header));
    }

    @Test
@@ -260,7 +260,7 @@ public class SetupChooseLockPatternTest {

        assertThat(headerView.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getResources().getString(
                mContext.getResources().getString(
                        R.string.lockpattern_recording_incorrect_too_short,
                        LockPatternUtils.MIN_LOCK_PATTERN_SIZE));
    }
@@ -307,7 +307,7 @@ public class SetupChooseLockPatternTest {
        nextButton.performClick();

        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_need_to_confirm));
                mContext.getString(R.string.lockpattern_need_to_confirm));
    }

    @Test
@@ -324,15 +324,15 @@ public class SetupChooseLockPatternTest {

        // NeedToConfirmStage
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_need_to_confirm));
                mContext.getString(R.string.lockpattern_need_to_confirm));

        enterShortPattern();

        // ConfirmWrongStage
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_need_to_unlock_wrong));
                mContext.getString(R.string.lockpattern_need_to_unlock_wrong));
        assertThat(nextButton.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_confirm_button_text));
                mContext.getString(R.string.lockpattern_confirm_button_text));
        assertThat(nextButton.isEnabled()).isFalse();
    }

@@ -350,15 +350,15 @@ public class SetupChooseLockPatternTest {

        // NeedToConfirmStage
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_need_to_confirm));
                mContext.getString(R.string.lockpattern_need_to_confirm));

        enterPattern();

        // ChoiceConfirmedStage
        assertThat(headerView.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_pattern_confirmed_header));
                mContext.getString(R.string.lockpattern_pattern_confirmed_header));
        assertThat(nextButton.getText().toString()).isEqualTo(
                application.getString(R.string.lockpattern_confirm_button_text));
                mContext.getString(R.string.lockpattern_confirm_button_text));
        assertThat(nextButton.isEnabled()).isTrue();
    }

+2 −2
Original line number Diff line number Diff line
@@ -46,13 +46,12 @@ import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowLooper;

@RunWith(RobolectricTestRunner.class)
@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowUtils.class, ShadowAlertDialog.class})
public class SetupSkipDialogTest {

@@ -77,6 +76,7 @@ public class SetupSkipDialogTest {
    }

    private ShadowAlertDialog getShadowAlertDialog() {
        ShadowLooper.idleMainLooper();
        ShadowApplication shadowApplication = Shadow.extract(
                ApplicationProvider.getApplicationContext());
        ShadowAlertDialog shadowAlertDialog = shadowApplication.getLatestAlertDialog();