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

Commit bf4a2a1a authored by jackqdyulei's avatar jackqdyulei
Browse files

Update dialogs for anomaly

1. Add dialog for background activity action
2. Use new strings in anomaly dialogs

Bug: 62490179
Test: RunSettingsRoboTests

Change-Id: Ide836a4aca939963bd3b15c6d728eed68a6d7f43
parent 1dc3f385
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -101,9 +101,17 @@ public class AnomalyDialogFragment extends InstrumentedDialogFragment implements
        switch (anomalyAction.getActionType()) {
            case Anomaly.AnomalyActionType.FORCE_STOP:
                return new AlertDialog.Builder(context)
                        .setTitle(R.string.force_stop_dlg_title)
                        .setMessage(R.string.force_stop_dlg_text)
                        .setPositiveButton(R.string.dlg_ok, this)
                        .setTitle(R.string.dialog_stop_title)
                        .setMessage(getString(R.string.dialog_stop_message, mAnomaly.displayName))
                        .setPositiveButton(R.string.dialog_stop_ok, this)
                        .setNegativeButton(R.string.dlg_cancel, null)
                        .create();
            case Anomaly.AnomalyActionType.BACKGROUND_CHECK:
                return new AlertDialog.Builder(context)
                        .setTitle(R.string.dialog_background_check_title)
                        .setMessage(getString(R.string.dialog_background_check_message,
                                mAnomaly.displayName))
                        .setPositiveButton(R.string.dialog_background_check_ok, this)
                        .setNegativeButton(R.string.dlg_cancel, null)
                        .create();
            default:
+43 −12
Original line number Diff line number Diff line
@@ -40,46 +40,77 @@ import org.robolectric.util.FragmentTestUtil;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class AnomalyDialogFragmentTest {
    @Anomaly.AnomalyType
    private static final int ANOMALY_TYPE = Anomaly.AnomalyType.WAKE_LOCK;
    private static final String PACKAGE_NAME = "com.android.app";
    private static final String DISPLAY_NAME = "app";
    private static final int UID = 111;
    private Anomaly mAnomaly;
    private Anomaly mWakeLockAnomaly;
    private Anomaly mWakeupAlarmAnomaly;
    private AnomalyDialogFragment mAnomalyDialogFragment;
    private Context mContext;

    @Before
    public void setUp() {
        mContext = RuntimeEnvironment.application;
        mAnomaly = new Anomaly.Builder()
                .setType(ANOMALY_TYPE)
        mWakeLockAnomaly = new Anomaly.Builder()
                .setType(Anomaly.AnomalyType.WAKE_LOCK)
                .setUid(UID)
                .setPackageName(PACKAGE_NAME)
                .setDisplayName(DISPLAY_NAME)
                .build();
        mWakeupAlarmAnomaly = new Anomaly.Builder()
                .setType(Anomaly.AnomalyType.WAKEUP_ALARM)
                .setUid(UID)
                .setPackageName(PACKAGE_NAME)
                .setDisplayName(DISPLAY_NAME)
                .build();

        mAnomalyDialogFragment = AnomalyDialogFragment.newInstance(mAnomaly, 0 /* metricskey */);
    }

    @Test
    public void testOnCreateDialog_hasCorrectData() {
        mAnomalyDialogFragment = AnomalyDialogFragment.newInstance(mWakeLockAnomaly,
                0 /* metricskey */);
        FragmentTestUtil.startFragment(mAnomalyDialogFragment);

        assertThat(mAnomalyDialogFragment.mAnomaly).isEqualTo(mAnomaly);
        assertThat(mAnomalyDialogFragment.mAnomaly).isEqualTo(mWakeLockAnomaly);
    }

    @Test
    public void testOnCreateDialog_hasCorrectDialog() {
    public void testOnCreateDialog_wakelockAnomaly_fireForceStopDialog() {
        mAnomalyDialogFragment = AnomalyDialogFragment.newInstance(mWakeLockAnomaly,
                0 /* metricskey */);

        FragmentTestUtil.startFragment(mAnomalyDialogFragment);

        final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
        ShadowAlertDialog shadowDialog = shadowOf(dialog);

        assertThat(shadowDialog.getMessage()).isEqualTo(
                mContext.getString(R.string.dialog_stop_message, mWakeLockAnomaly.displayName));
        assertThat(shadowDialog.getTitle()).isEqualTo(
                mContext.getString(R.string.dialog_stop_title));
        assertThat(dialog.getButton(DialogInterface.BUTTON_POSITIVE).getText()).isEqualTo(
                mContext.getString(R.string.dialog_stop_ok));
        assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo(
                mContext.getString(R.string.dlg_cancel));
    }

    @Test
    public void testOnCreateDialog_wakeupAlarmAnomaly_fireBackgroundCheckDialog() {
        mAnomalyDialogFragment = AnomalyDialogFragment.newInstance(mWakeupAlarmAnomaly,
                0 /* metricskey */);

        FragmentTestUtil.startFragment(mAnomalyDialogFragment);

        final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
        ShadowAlertDialog shadowDialog = shadowOf(dialog);

        assertThat(shadowDialog.getMessage()).isEqualTo(
                mContext.getString(R.string.force_stop_dlg_text));
                mContext.getString(R.string.dialog_background_check_message,
                        mWakeLockAnomaly.displayName));
        assertThat(shadowDialog.getTitle()).isEqualTo(
                mContext.getString(R.string.force_stop_dlg_title));
                mContext.getString(R.string.dialog_background_check_title));
        assertThat(dialog.getButton(DialogInterface.BUTTON_POSITIVE).getText()).isEqualTo(
                mContext.getString(R.string.dlg_ok));
                mContext.getString(R.string.dialog_background_check_ok));
        assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo(
                mContext.getString(R.string.dlg_cancel));
    }