Use external/robolectric-shadows/run_robotests.mk

This allows Settings to test against the latest framework changes.

Also replaced TestConfig with traditional robolectric.properties.

Bug: 73173204
Bug: 73892008
Test: make -j56 RunSettingsRoboTests
Change-Id: I3135b4fa5f095ba79b282a76f45dd9baa2584bc7
This commit is contained in:
James Lemieux
2018-02-26 00:51:42 -08:00
parent 229a6a2bc4
commit 22a39c2b93
752 changed files with 5096 additions and 9182 deletions

View File

@@ -16,7 +16,6 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
@@ -33,7 +32,6 @@ import android.util.Pair;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.widget.RadioButtonPreference;
@@ -46,13 +44,11 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAppPickerFragmentTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)

View File

@@ -26,7 +26,6 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.TwoTargetPreference;
@@ -37,10 +36,8 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAppPreferenceControllerTest {
private static final String TEST_APP_NAME = "test";
@@ -64,8 +61,7 @@ public class DefaultAppPreferenceControllerTest {
public void updateState_hasDefaultApp_shouldUpdateAppName() {
mController = new TestPreferenceController(mContext);
when(mController.mAppInfo.loadLabel())
.thenReturn(TEST_APP_NAME);
when(mController.mAppInfo.loadLabel()).thenReturn(TEST_APP_NAME);
mController.updateState(mPreference);
@@ -95,7 +91,7 @@ public class DefaultAppPreferenceControllerTest {
private DefaultAppInfo mAppInfo;
public TestPreferenceController(Context context) {
private TestPreferenceController(Context context) {
super(context);
mAppInfo = mock(DefaultAppInfo.class);
}

View File

@@ -26,7 +26,6 @@ import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.applications.DefaultAppInfo;
@@ -39,11 +38,9 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAutofillPickerTest {
private static final String TEST_APP_KEY = "foo.bar/foo.bar.Baz";

View File

@@ -16,8 +16,13 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserManager;
import android.provider.Settings;
import android.support.v7.preference.Preference;
@@ -25,7 +30,6 @@ import android.view.autofill.AutofillManager;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.wrapper.AutofillManagerWrapper;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -37,17 +41,9 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
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.Mockito.mock;
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)
public class DefaultAutofillPreferenceControllerTest {
@Mock
@@ -102,8 +98,6 @@ public class DefaultAutofillPreferenceControllerTest {
Settings.Secure.putString(RuntimeEnvironment.application.getContentResolver(),
DefaultAutofillPicker.SETTING, "com.android.settings/SettingsActivity.class");
final DefaultAppInfo info = mController.getDefaultAppInfo();
assertThat(info).isNotNull();
assertThat(mController.getDefaultAppInfo()).isNotNull();
}
}

View File

@@ -16,12 +16,16 @@
package com.android.settings.applications.defaultapps;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -30,16 +34,9 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultBrowserPickerTest {
private static final String TEST_APP_KEY = "";
@@ -67,14 +64,12 @@ public class DefaultBrowserPickerTest {
@Test
public void setDefaultAppKey_shouldUpdateDefaultBrowser() {
mPicker.setDefaultKey(TEST_APP_KEY);
verify(mPackageManager)
.setDefaultBrowserPackageNameAsUser(eq(TEST_APP_KEY), anyInt());
verify(mPackageManager).setDefaultBrowserPackageNameAsUser(eq(TEST_APP_KEY), anyInt());
}
@Test
public void getDefaultAppKey_shouldReturnDefaultBrowser() {
mPicker.getDefaultKey();
verify(mPackageManager)
.getDefaultBrowserPackageNameAsUser(anyInt());
verify(mPackageManager).getDefaultBrowserPackageNameAsUser(anyInt());
}
}

View File

@@ -16,6 +16,13 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
@@ -24,7 +31,6 @@ import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -33,22 +39,11 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Collections;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultBrowserPreferenceControllerTest {
@Mock
@@ -78,10 +73,8 @@ public class DefaultBrowserPreferenceControllerTest {
@Test
public void isAvailable_hasBrowser_shouldReturnTrue() {
final List<ResolveInfo> candidates = new ArrayList<>();
candidates.add(new ResolveInfo());
when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt()))
.thenReturn(candidates);
.thenReturn(Collections.singletonList(new ResolveInfo()));
assertThat(mController.isAvailable()).isTrue();
}
@@ -104,12 +97,10 @@ public class DefaultBrowserPreferenceControllerTest {
@Test
public void isBrowserDefault_onlyApp_shouldReturnTrue() {
final String testPkg = "pkg";
when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt()))
.thenReturn(null);
when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())).thenReturn(null);
when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt()))
.thenReturn(Arrays.asList(new ResolveInfo()));
.thenReturn(Collections.singletonList(new ResolveInfo()));
assertThat(mController.isBrowserDefault(testPkg, 0)).isTrue();
assertThat(mController.isBrowserDefault("pkg", 0)).isTrue();
}
}

View File

@@ -16,13 +16,17 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -32,16 +36,9 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
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.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultEmergencyPickerTest {
private static final String TEST_APP_KEY = "test_app";

View File

@@ -16,6 +16,18 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyList;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
@@ -30,7 +42,6 @@ import android.os.Build;
import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -41,26 +52,12 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyList;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
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)
public class DefaultHomePickerTest {
private static final String TEST_APP_KEY = "com.android.settings/DefaultEmergencyPickerTest";
@@ -103,8 +100,7 @@ public class DefaultHomePickerTest {
@Test
public void getDefaultAppKey_shouldReturnDefault() {
final ComponentName cn = mock(ComponentName.class);
when(mPackageManagerWrapper.getHomeActivities(anyList()))
.thenReturn(cn);
when(mPackageManagerWrapper.getHomeActivities(anyList())).thenReturn(cn);
mPicker.getDefaultKey();
verify(cn).flattenToString();
}
@@ -122,9 +118,11 @@ public class DefaultHomePickerTest {
}
@Test
public void getCandidates_onlyLollipopPlusLaunchersAvailableIfManagedProfile()
throws NameNotFoundException {
createManagedProfile();
public void getCandidates_onlyLollipopPlusLaunchersAvailableIfManagedProfile() {
List<UserInfo> profiles = new ArrayList<>();
profiles.add(new UserInfo(/*id=*/ 10, "TestUserName", UserInfo.FLAG_MANAGED_PROFILE));
when(mUserManager.getProfiles(anyInt())).thenReturn(profiles);
addLaunchers();
List<DefaultAppInfo> candidates = mPicker.getCandidates();
assertThat(candidates.size()).isEqualTo(2);
@@ -137,12 +135,6 @@ public class DefaultHomePickerTest {
assertThat(preLollipopLauncher.enabled).isFalse();
}
private void createManagedProfile() {
ArrayList<UserInfo> profiles = new ArrayList<UserInfo>();
profiles.add(new UserInfo(/*id=*/ 10, "TestUserName", UserInfo.FLAG_MANAGED_PROFILE));
when(mUserManager.getProfiles(anyInt())).thenReturn(profiles);
}
private ResolveInfo createLauncher(
String packageName, String className, int targetSdk) throws NameNotFoundException {
ResolveInfo launcher = new ResolveInfo();
@@ -156,7 +148,7 @@ public class DefaultHomePickerTest {
return launcher;
}
private void addLaunchers() throws NameNotFoundException {
private void addLaunchers() {
doAnswer(invocation -> {
// The result of this method is stored in the first parameter...
List<ResolveInfo> parameter = (List<ResolveInfo>) invocation.getArguments()[0];

View File

@@ -17,7 +17,6 @@
package com.android.settings.applications.defaultapps;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Matchers.anyList;
@@ -34,7 +33,6 @@ import android.content.pm.ResolveInfo;
import android.os.UserManager;
import android.support.v7.preference.Preference;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -44,15 +42,14 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.Arrays;
import java.util.Collections;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultHomePreferenceControllerTest {
@Mock
@@ -130,17 +127,17 @@ public class DefaultHomePreferenceControllerTest {
@Test
public void testGetSettingIntent_homeHasNoSetting_shouldNotReturnSettingIntent() {
when(mPackageManager.getHomeActivities(anyList())).thenReturn(
new ComponentName("test.pkg", "class"));
when(mPackageManager.getHomeActivities(anyList()))
.thenReturn(new ComponentName("test.pkg", "class"));
assertThat(mController.getSettingIntent(mController.getDefaultAppInfo())).isNull();
}
@Test
public void testGetSettingIntent_homeHasOneSetting_shouldReturnSettingIntent() {
when(mPackageManager.getHomeActivities(anyList())).thenReturn(
new ComponentName("test.pkg", "class"));
when(mPackageManager.queryIntentActivities(any(), eq(0))).thenReturn(
Arrays.asList(mock(ResolveInfo.class)));
when(mPackageManager.getHomeActivities(anyList()))
.thenReturn(new ComponentName("test.pkg", "class"));
when(mPackageManager.queryIntentActivities(any(), eq(0)))
.thenReturn(Collections.singletonList(mock(ResolveInfo.class)));
Intent intent = mController.getSettingIntent(mController.getDefaultAppInfo());
assertThat(intent).isNotNull();
@@ -149,10 +146,10 @@ public class DefaultHomePreferenceControllerTest {
@Test
public void testGetSettingIntent_homeHasMultipleSettings_shouldNotReturnSettingIntent() {
when(mPackageManager.getHomeActivities(anyList())).thenReturn(
new ComponentName("test.pkg", "class"));
when(mPackageManager.queryIntentActivities(any(), eq(0))).thenReturn(
Arrays.asList(mock(ResolveInfo.class), mock(ResolveInfo.class)));
when(mPackageManager.getHomeActivities(anyList()))
.thenReturn(new ComponentName("test.pkg", "class"));
when(mPackageManager.queryIntentActivities(any(), eq(0)))
.thenReturn(Arrays.asList(mock(ResolveInfo.class), mock(ResolveInfo.class)));
assertThat(mController.getSettingIntent(mController.getDefaultAppInfo())).isNull();
}
}

View File

@@ -28,7 +28,6 @@ import android.nfc.NfcAdapter;
import android.os.UserManager;
import android.support.v7.preference.Preference;
import com.android.settings.TestConfig;
import com.android.settings.nfc.PaymentBackend;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -38,11 +37,9 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultPaymentSettingsPreferenceControllerTest {
@Mock

View File

@@ -16,12 +16,19 @@
package com.android.settings.applications.defaultapps;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -31,19 +38,9 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
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)
public class DefaultPhonePickerTest {
private static final String TEST_APP_KEY = "com.android.settings/PickerTest";
@@ -83,8 +80,8 @@ public class DefaultPhonePickerTest {
public void setDefaultAppKey_shouldUpdateDefault() {
mPicker.setDefaultKey(TEST_APP_KEY);
verify(mDefaultKeyUpdater).setDefaultDialerApplication(
any(Context.class), eq(TEST_APP_KEY), anyInt());
verify(mDefaultKeyUpdater)
.setDefaultDialerApplication(any(Context.class), eq(TEST_APP_KEY), anyInt());
}
@Test

View File

@@ -16,12 +16,18 @@
package com.android.settings.applications.defaultapps;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -31,18 +37,9 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
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)
public class DefaultSmsPickerTest {
private static final String TEST_APP_KEY = "com.android.settings/PickerTest";
@@ -83,5 +80,4 @@ public class DefaultSmsPickerTest {
verify(mDefaultKeyUpdater).getDefaultApplication(any(Context.class));
}
}