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

@@ -27,33 +27,29 @@ import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemUpdateManager;
import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowUserManager;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(
manifest = TestConfig.MANIFEST_PATH,
sdk = TestConfig.SDK_VERSION,
shadows = {
ShadowUserManager.class
})
public class SystemUpdatePreferenceControllerTest {
@Mock
@@ -62,6 +58,7 @@ public class SystemUpdatePreferenceControllerTest {
private SystemUpdateManager mSystemUpdateManager;
private Context mContext;
private ShadowUserManager mShadowUserManager;
private SystemUpdatePreferenceController mController;
private Preference mPreference;
@@ -69,6 +66,9 @@ public class SystemUpdatePreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
mShadowUserManager = Shadows.shadowOf(userManager);
ShadowApplication.getInstance().setSystemService(Context.SYSTEM_UPDATE_SERVICE,
mSystemUpdateManager);
mController = new SystemUpdatePreferenceController(mContext);
@@ -77,10 +77,15 @@ public class SystemUpdatePreferenceControllerTest {
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
@After
public void cleanUp() {
mShadowUserManager.setIsAdminUser(false);
}
@Test
public void updateNonIndexable_ifAvailable_shouldNotUpdate() {
final List<String> keys = new ArrayList<>();
ShadowUserManager.getShadow().setIsAdminUser(true);
mShadowUserManager.setIsAdminUser(true);
mController.updateNonIndexableKeys(keys);
@@ -89,7 +94,7 @@ public class SystemUpdatePreferenceControllerTest {
@Test
public void updateNonIndexable_ifNotAvailable_shouldUpdate() {
ShadowUserManager.getShadow().setIsAdminUser(false);
mShadowUserManager.setIsAdminUser(false);
final List<String> keys = new ArrayList<>();
mController.updateNonIndexableKeys(keys);
@@ -99,7 +104,7 @@ public class SystemUpdatePreferenceControllerTest {
@Test
public void displayPrefs_ifVisible_butNotAdminUser_shouldNotDisplay() {
ShadowUserManager.getShadow().setIsAdminUser(false);
mShadowUserManager.setIsAdminUser(false);
mController.displayPreference(mScreen);
assertThat(mPreference.isVisible()).isFalse();
@@ -108,7 +113,7 @@ public class SystemUpdatePreferenceControllerTest {
@Test
@Config(qualifiers = "mcc999")
public void displayPrefs_ifAdminUser_butNotVisible_shouldNotDisplay() {
ShadowUserManager.getShadow().setIsAdminUser(true);
mShadowUserManager.setIsAdminUser(true);
mController.displayPreference(mScreen);
assertThat(mPreference.isVisible()).isFalse();
@@ -116,7 +121,7 @@ public class SystemUpdatePreferenceControllerTest {
@Test
public void displayPrefs_ifAvailable_shouldDisplay() {
ShadowUserManager.getShadow().setIsAdminUser(true);
mShadowUserManager.setIsAdminUser(true);
mController.displayPreference(mScreen);
@@ -131,8 +136,8 @@ public class SystemUpdatePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getSummary()).isEqualTo(
mContext.getString(R.string.android_version_summary, Build.VERSION.RELEASE));
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.android_version_summary, Build.VERSION.RELEASE));
}
@Test
@@ -146,8 +151,8 @@ public class SystemUpdatePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getSummary()).isEqualTo(
mContext.getString(R.string.android_version_summary, testReleaseName));
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
}
@Test
@@ -158,7 +163,7 @@ public class SystemUpdatePreferenceControllerTest {
mController.updateState(mPreference);
assertThat(mPreference.getSummary()).isEqualTo(
mContext.getString(R.string.android_version_pending_update_summary));
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
}
}