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:
@@ -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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user