Migrate all AlertDialogs to AndroidX version

- Let test cases can be compatible with AndroidX AlertDialog.
- Theme of Transparent needs to support AndroidX AlertDialog.

Change-Id: I0789b66f52feef30ebab7fb824d0e39d5ae9cc96
Fixes: 111413092
Test: make RunSettingsRoboTests -j56
This commit is contained in:
tmfang
2018-07-17 13:53:04 +08:00
parent 41ab6b4bf8
commit 5bd7151413
22 changed files with 163 additions and 126 deletions

View File

@@ -22,7 +22,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -52,6 +51,7 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;

View File

@@ -21,12 +21,13 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
@@ -35,13 +36,13 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowDialog;
import org.robolectric.annotation.Config;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowAlertDialogCompat.class, SettingsShadowResourcesImpl.class})
public class ButtonActionDialogFragmentTest {
private static final int FORCE_STOP_ID = ButtonActionDialogFragment.DialogType.FORCE_STOP;
@@ -73,12 +74,12 @@ public class ButtonActionDialogFragmentTest {
@Test
public void testOnCreateDialog_forceStopDialog() {
ButtonActionDialogFragment fragment = ButtonActionDialogFragment.newInstance(FORCE_STOP_ID);
FragmentTestUtils.startFragment(fragment);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
assertThat(dialog).isNotNull();
ShadowAlertDialog shadowDialog = Shadows.shadowOf(dialog);
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
assertThat(shadowDialog.getMessage()).isEqualTo(
mShadowContext.getString(R.string.force_stop_dlg_text));
@@ -93,12 +94,12 @@ public class ButtonActionDialogFragmentTest {
@Test
public void testOnCreateDialog_disableDialog() {
ButtonActionDialogFragment fragment = ButtonActionDialogFragment.newInstance(DISABLE_ID);
FragmentTestUtils.startFragment(fragment);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
assertThat(dialog).isNotNull();
ShadowAlertDialog shadowDialog = Shadows.shadowOf(dialog);
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
assertThat(shadowDialog.getMessage()).isEqualTo(
mShadowContext.getString(R.string.app_disable_dlg_text));
@@ -111,13 +112,13 @@ public class ButtonActionDialogFragmentTest {
@Test
public void testOnCreateDialog_specialDisableDialog() {
ButtonActionDialogFragment fragment =
ButtonActionDialogFragment.newInstance(SPECIAL_DISABLE_ID);
ButtonActionDialogFragment.newInstance(SPECIAL_DISABLE_ID);
FragmentTestUtils.startFragment(fragment);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
assertThat(dialog).isNotNull();
ShadowAlertDialog shadowDialog = Shadows.shadowOf(dialog);
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
assertThat(shadowDialog.getMessage()).isEqualTo(
mShadowContext.getString(R.string.app_disable_dlg_text));

View File

@@ -25,24 +25,27 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.testutils.FragmentTestUtils;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowDialog;
import org.robolectric.annotation.Config;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowAlertDialogCompat.class, SettingsShadowResourcesImpl.class})
public class InstantAppButtonDialogFragmentTest {
private static final String TEST_PACKAGE = "testPackage";
@@ -52,8 +55,10 @@ public class InstantAppButtonDialogFragmentTest {
@Before
public void setUp() {
final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
mContext = spy(RuntimeEnvironment.application);
mFragment = spy(InstantAppButtonDialogFragment.newInstance(TEST_PACKAGE));
mFragment.show(activity.getSupportFragmentManager(), "InstantAppButtonDialogFragment");
doReturn(mContext).when(mFragment).getContext();
}
@@ -61,7 +66,6 @@ public class InstantAppButtonDialogFragmentTest {
public void onClick_shouldDeleteApp() {
final PackageManager packageManager = mock(PackageManager.class);
when(mContext.getPackageManager()).thenReturn(packageManager);
FragmentTestUtils.startFragment(mFragment);
mFragment.onClick(null /* dialog */, 0 /* which */);
@@ -71,11 +75,11 @@ public class InstantAppButtonDialogFragmentTest {
@Test
public void onCreateDialog_clearAppDialog_shouldShowClearAppDataConfirmation() {
FragmentTestUtils.startFragment(mFragment);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
assertThat(dialog).isNotNull();
final ShadowAlertDialog shadowDialog = Shadows.shadowOf(dialog);
final ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
assertThat(shadowDialog.getMessage()).isEqualTo(
mContext.getString(R.string.clear_instant_app_confirmation));