Merge "Update Robolectric to 3.4.2"

This commit is contained in:
TreeHugger Robot
2017-09-27 23:49:19 +00:00
committed by Android (Google) Code Review
66 changed files with 297 additions and 273 deletions

View File

@@ -9,12 +9,12 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src)
# Include the testing libraries (JUnit4 + Robolectric libs).
LOCAL_STATIC_JAVA_LIBRARIES := \
mockito-robolectric-prebuilt \
platform-robolectric-android-all-stubs \
truth-prebuilt
LOCAL_JAVA_LIBRARIES := \
junit \
platform-robolectric-prebuilt \
sdk_vcurrent \
platform-robolectric-3.4.2-prebuilt \
telephony-common
LOCAL_INSTRUMENTATION_FOR := Settings
@@ -40,4 +40,6 @@ LOCAL_TEST_PACKAGE := Settings
LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
include prebuilts/misc/common/robolectric/run_robotests.mk
LOCAL_ROBOTEST_TIMEOUT := 36000
include prebuilts/misc/common/robolectric/3.4.2/run_robotests.mk

View File

@@ -26,7 +26,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
@@ -35,10 +34,8 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Menu;
import com.android.settings.search.SearchActivity;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -50,7 +47,6 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)

View File

@@ -39,8 +39,8 @@ import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.util.ActivityController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)

View File

@@ -37,9 +37,9 @@ 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.annotation.Config;
import org.robolectric.res.builder.RobolectricPackageManager.ComponentState;
import org.robolectric.shadows.ShadowPackageManager.ComponentState;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(
@@ -57,7 +57,7 @@ public class SetupChooseLockPatternTest {
@Before
public void setUp() {
RuntimeEnvironment.getRobolectricPackageManager().setComponentEnabledSetting(
Shadows.shadowOf(application.getPackageManager()).setComponentEnabledSetting(
new ComponentName(application, SetupRedactionInterstitial.class),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
@@ -77,7 +77,7 @@ public class SetupChooseLockPatternTest {
findFragment(mActivity).onChosenLockSaveFinished(false, null);
ComponentState redactionComponentState =
RuntimeEnvironment.getRobolectricPackageManager().getComponentState(
Shadows.shadowOf(application.getPackageManager()).getComponentState(
new ComponentName(application, SetupRedactionInterstitial.class));
assertThat(redactionComponentState.newState).named("Redaction component state")
.isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);

View File

@@ -16,14 +16,19 @@
package com.android.settings.accessibility;
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.test.mock.MockContentResolver;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -35,11 +40,6 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
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 ShortcutServicePickerFragmentTest {
@@ -58,7 +58,6 @@ public class ShortcutServicePickerFragmentTest {
private PackageManagerWrapper mPackageManager;
private ShortcutServicePickerFragment mFragment;
private MockContentResolver mContentResolver;
@Before
public void setUp() {

View File

@@ -41,7 +41,6 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;

View File

@@ -18,6 +18,7 @@ package com.android.settings.accounts;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
import android.accounts.Account;
@@ -76,6 +77,7 @@ public class AccountHeaderPreferenceControllerTest {
FakeFeatureFactory.setupForTest(mContext);
mHeaderPreference = new LayoutPreference(
RuntimeEnvironment.application, R.layout.settings_entity_header);
doReturn(mContext).when(mActivity).getApplicationContext();
}
@Test

View File

@@ -17,7 +17,6 @@ package com.android.settings.accounts;
import android.app.Activity;
import android.content.pm.UserInfo;
import android.os.Bundle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
@@ -25,7 +24,6 @@ import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.Tile;
import org.junit.Before;
import org.junit.Test;

View File

@@ -85,10 +85,10 @@ public class AppStorageSizesControllerTest {
mController.setResult(result);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1.00B");
assertThat(mCachePreference.getSummary()).isEqualTo("10.00B");
assertThat(mDataPreference.getSummary()).isEqualTo("90.00B");
assertThat(mTotalPreference.getSummary()).isEqualTo("101B");
assertThat(mAppPreference.getSummary()).isEqualTo("1.00 B");
assertThat(mCachePreference.getSummary()).isEqualTo("10.00 B");
assertThat(mDataPreference.getSummary()).isEqualTo("90.00 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("101 B");
}
@Test
@@ -103,10 +103,10 @@ public class AppStorageSizesControllerTest {
mController.setCacheCleared(true);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1.00B");
assertThat(mCachePreference.getSummary()).isEqualTo("0.00B");
assertThat(mDataPreference.getSummary()).isEqualTo("90.00B");
assertThat(mTotalPreference.getSummary()).isEqualTo("91.00B");
assertThat(mAppPreference.getSummary()).isEqualTo("1.00 B");
assertThat(mCachePreference.getSummary()).isEqualTo("0.00 B");
assertThat(mDataPreference.getSummary()).isEqualTo("90.00 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("91.00 B");
}
@Test
@@ -121,9 +121,9 @@ public class AppStorageSizesControllerTest {
mController.setDataCleared(true);
mController.updateUi(mContext);
assertThat(mAppPreference.getSummary()).isEqualTo("1.00B");
assertThat(mCachePreference.getSummary()).isEqualTo("0.00B");
assertThat(mDataPreference.getSummary()).isEqualTo("0.00B");
assertThat(mTotalPreference.getSummary()).isEqualTo("1.00B");
assertThat(mAppPreference.getSummary()).isEqualTo("1.00 B");
assertThat(mCachePreference.getSummary()).isEqualTo("0.00 B");
assertThat(mDataPreference.getSummary()).isEqualTo("0.00 B");
assertThat(mTotalPreference.getSummary()).isEqualTo("1.00 B");
}
}

View File

@@ -192,7 +192,7 @@ public final class InstalledAppDetailsTest {
when(stats.getTotalBytes()).thenReturn(1L);
assertThat(InstalledAppDetails.getStorageSummary(context, stats, true))
.isEqualTo("1.00B used in external storage");
.isEqualTo("1.00 B used in external storage");
}
@Test
@@ -202,7 +202,7 @@ public final class InstalledAppDetailsTest {
when(stats.getTotalBytes()).thenReturn(1L);
assertThat(InstalledAppDetails.getStorageSummary(context, stats, false))
.isEqualTo("1.00B used in internal storage");
.isEqualTo("1.00 B used in internal storage");
}
@Test

View File

@@ -77,7 +77,7 @@ public class MusicViewHolderControllerTest {
public void storageShouldBeZeroBytesIfQueriedBeforeStorageQueryFinishes() {
mController.setupView(mHolder);
assertThat(mHolder.summary.getText().toString()).isEqualTo("0.00B");
assertThat(mHolder.summary.getText().toString()).isEqualTo("0.00 B");
}
@Test
@@ -88,7 +88,7 @@ public class MusicViewHolderControllerTest {
mController.queryStats();
mController.setupView(mHolder);
assertThat(mHolder.summary.getText().toString()).isEqualTo("1.00B");
assertThat(mHolder.summary.getText().toString()).isEqualTo("1.00 B");
}
@Test

View File

@@ -59,7 +59,7 @@ public class PhotosViewHolderControllerTest {
public void storageShouldBeZeroBytesIfQueriedBeforeStorageQueryFinishes() {
mController.setupView(mHolder);
assertThat(mHolder.summary.getText().toString()).isEqualTo("0.00B");
assertThat(mHolder.summary.getText().toString()).isEqualTo("0.00 B");
}
@Test
@@ -70,7 +70,7 @@ public class PhotosViewHolderControllerTest {
mController.queryStats();
mController.setupView(mHolder);
assertThat(mHolder.summary.getText().toString()).isEqualTo("11.00B");
assertThat(mHolder.summary.getText().toString()).isEqualTo("11.00 B");
}
@Test

View File

@@ -25,6 +25,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@@ -42,8 +43,12 @@ import static org.mockito.Mockito.spy;
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAssistPickerTest {
private static final ComponentName TEST_ASSIST =
new ComponentName("com.android.settings", "assist");
private static ComponentName sTestAssist;
@BeforeClass
public static void beforeClass() {
sTestAssist = new ComponentName("com.android.settings", "assist");
}
private Context mContext;
private DefaultAssistPicker mPicker;
@@ -59,22 +64,22 @@ public class DefaultAssistPickerTest {
@Test
public void setDefaultAppKey_shouldUpdateDefaultAssist() {
final List<DefaultAssistPicker.Info> assistants = new ArrayList<>();
assistants.add(new DefaultAssistPicker.Info(TEST_ASSIST));
assistants.add(new DefaultAssistPicker.Info(sTestAssist));
ReflectionHelpers.setField(mPicker, "mAvailableAssistants", assistants);
mPicker.setDefaultKey(TEST_ASSIST.flattenToString());
mPicker.setDefaultKey(sTestAssist.flattenToString());
assertThat(Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.ASSISTANT))
.isEqualTo(TEST_ASSIST.flattenToString());
.isEqualTo(sTestAssist.flattenToString());
assertThat(mPicker.getDefaultKey())
.isEqualTo(TEST_ASSIST.flattenToString());
.isEqualTo(sTestAssist.flattenToString());
}
@Test
public void setDefaultAppKey_noAvaialbleAssit_shouldClearDefaultAssist() {
final List<DefaultAssistPicker.Info> assistants = new ArrayList<>();
ReflectionHelpers.setField(mPicker, "mAvailableAssistants", assistants);
mPicker.setDefaultKey(TEST_ASSIST.flattenToString());
mPicker.setDefaultKey(sTestAssist.flattenToString());
assertThat(Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.ASSISTANT))
@@ -86,7 +91,7 @@ public class DefaultAssistPickerTest {
@Test
public void setDefaultAppKeyToNull_shouldClearDefaultAssist() {
final List<DefaultAssistPicker.Info> assistants = new ArrayList<>();
assistants.add(new DefaultAssistPicker.Info(TEST_ASSIST));
assistants.add(new DefaultAssistPicker.Info(sTestAssist));
ReflectionHelpers.setField(mPicker, "mAvailableAssistants", assistants);
mPicker.setDefaultKey(null);

View File

@@ -17,19 +17,19 @@
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.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
@@ -46,8 +46,7 @@ import org.robolectric.util.ReflectionHelpers;
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DefaultAutofillPickerTest {
private static final String TEST_APP_KEY = new ComponentName("foo.bar",
"foo.bar.Baz").flattenToString();
private static final String TEST_APP_KEY = "foo.bar/foo.bar.Baz";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Activity mActivity;

View File

@@ -51,6 +51,7 @@ import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -66,11 +67,16 @@ public class InstantAppButtonsControllerTest {
private static final String TEST_INSTALLER_PACKAGE_NAME = "com.installer";
private static final String TEST_INSTALLER_ACTIVITY_NAME = "com.installer.InstallerActivity";
private static final ComponentName TEST_INSTALLER_COMPONENT =
private static final String TEST_AIA_PACKAGE_NAME = "test.aia.package";
private static ComponentName sTestInstallerComponent;
@BeforeClass
public static void beforeClass() {
sTestInstallerComponent =
new ComponentName(
TEST_INSTALLER_PACKAGE_NAME,
TEST_INSTALLER_ACTIVITY_NAME);
private static final String TEST_AIA_PACKAGE_NAME = "test.aia.package";
}
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
Context mockContext;
@@ -133,7 +139,7 @@ public class InstantAppButtonsControllerTest {
receivedListener.onClick(mockInstallButton);
assertThat(testFragment.getStartActivityIntent()).isNotNull();
assertThat(testFragment.getStartActivityIntent().getComponent())
.isEqualTo(TEST_INSTALLER_COMPONENT);
.isEqualTo(sTestInstallerComponent);
}
@Test

View File

@@ -16,6 +16,8 @@
package com.android.settings.backup;
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.isA;
@@ -32,9 +34,9 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.After;
import org.junit.Before;
@@ -44,14 +46,13 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
import org.robolectric.res.builder.RobolectricPackageManager;
import org.robolectric.util.ActivityController;
import static com.google.common.truth.Truth.assertThat;
import org.robolectric.shadows.ShadowPackageManager;
import java.util.List;
@@ -64,7 +65,7 @@ public class BackupSettingsActivityTest {
private ActivityController<BackupSettingsActivity> mActivityController;
private BackupSettingsActivity mActivity;
private Application mApplication;
private RobolectricPackageManager mPackageManager;
private ShadowPackageManager mPackageManager;
private static boolean mIsBackupProvidedByOEM;
@Mock
@@ -84,7 +85,7 @@ public class BackupSettingsActivityTest {
mApplication = RuntimeEnvironment.application;
mActivityController = Robolectric.buildActivity(BackupSettingsActivity.class);
mActivity = mActivityController.get();
mPackageManager = (RobolectricPackageManager) mApplication.getPackageManager();
mPackageManager = Shadows.shadowOf(mApplication.getPackageManager());
doReturn(mComponent).when(mIntent).getComponent();
}

View File

@@ -38,6 +38,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -62,8 +63,12 @@ import static org.mockito.Mockito.when;
})
public class BluetoothEnablerTest {
private static final EnforcedAdmin FAKE_ENFORCED_ADMIN =
new EnforcedAdmin(new ComponentName("test.package", "test.Class"), 10);
private static EnforcedAdmin sFakeEnforcedAdmin;
@BeforeClass
public static void beforeClass() {
sFakeEnforcedAdmin = new EnforcedAdmin(new ComponentName("test.package", "test.Class"), 10);
}
@Mock
private MetricsFeatureProvider mMetricsFeatureProvider;
@@ -130,7 +135,7 @@ public class BluetoothEnablerTest {
public void maybeEnforceRestrictions_disallowBluetoothRestrictionSet() {
// GIVEN Bluetooth has been disallowed...
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_BLUETOOTH)).thenReturn(FAKE_ENFORCED_ADMIN);
mContext, UserManager.DISALLOW_BLUETOOTH)).thenReturn(sFakeEnforcedAdmin);
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH)).thenReturn(null);
@@ -139,7 +144,7 @@ public class BluetoothEnablerTest {
assertThat(mBluetoothEnabler.maybeEnforceRestrictions()).isTrue();
// THEN the expected EnfoceAdmin is set.
verify(mMasterSwitchController).setDisabledByAdmin(FAKE_ENFORCED_ADMIN);
verify(mMasterSwitchController).setDisabledByAdmin(sFakeEnforcedAdmin);
// THEN the switch is unchecked.
verify(mMasterSwitchController).setChecked(false);
@@ -151,14 +156,14 @@ public class BluetoothEnablerTest {
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_BLUETOOTH)).thenReturn(null);
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH)).thenReturn(FAKE_ENFORCED_ADMIN);
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH)).thenReturn(sFakeEnforcedAdmin);
// WHEN the maybeEnforceRestrictions is called...
// THEN true is returned to indicate there was a restriction to enforce.
assertThat(mBluetoothEnabler.maybeEnforceRestrictions()).isTrue();
// THEN the expected EnfoceAdmin is set.
verify(mMasterSwitchController).setDisabledByAdmin(FAKE_ENFORCED_ADMIN);
verify(mMasterSwitchController).setDisabledByAdmin(sFakeEnforcedAdmin);
// THEN the switch is unchecked.
verify(mMasterSwitchController).setChecked(false);
@@ -168,7 +173,7 @@ public class BluetoothEnablerTest {
public void maybeEnforceRestrictions_disallowBluetoothNotOverriden() {
// GIVEN Bluetooth has been disallowed...
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_BLUETOOTH)).thenReturn(FAKE_ENFORCED_ADMIN);
mContext, UserManager.DISALLOW_BLUETOOTH)).thenReturn(sFakeEnforcedAdmin);
when(mRestrictionUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_BLUETOOTH)).thenReturn(null);

View File

@@ -22,7 +22,6 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
@@ -35,8 +34,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class BluetoothFilesPreferenceControllerTest {

View File

@@ -21,7 +21,6 @@ import android.content.Context;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;

View File

@@ -33,7 +33,6 @@ import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import org.junit.Before;
import org.junit.Test;

View File

@@ -23,6 +23,7 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.RuntimeEnvironment.application;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
@@ -59,7 +60,6 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowApplication;
@@ -138,7 +138,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.metaData = new Bundle();
tile.userHandle = new ArrayList<>();
@@ -159,7 +159,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_noFragmentMetadataSingleUser_shouldBindToDirectLaunchIntent() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.metaData = new Bundle();
tile.userHandle = new ArrayList<>();
@@ -184,19 +184,19 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.metaData = new Bundle();
tile.userHandle = new ArrayList<>();
tile.userHandle.add(mock(UserHandle.class));
tile.intent = new Intent();
tile.intent.setComponent(
new ComponentName(RuntimeEnvironment.application.getPackageName(), "class"));
new ComponentName(application.getPackageName(), "class"));
when(mActivity.getSystemService(Context.USER_SERVICE))
.thenReturn(mUserManager);
when(mActivity.getApplicationContext().getPackageName())
.thenReturn(RuntimeEnvironment.application.getPackageName());
.thenReturn(application.getPackageName());
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
preference, tile, "123", Preference.DEFAULT_ORDER);
@@ -211,7 +211,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.intent = new Intent();
tile.intent.setComponent(new ComponentName("pkg", "class"));
@@ -224,7 +224,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_noSummary_shouldSetSummaryToPlaceholder() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.intent = new Intent();
tile.intent.setComponent(new ComponentName("pkg", "class"));
@@ -232,12 +232,12 @@ public class DashboardFeatureProviderImplTest {
preference, tile, null /*key */, Preference.DEFAULT_ORDER);
assertThat(preference.getSummary())
.isEqualTo(RuntimeEnvironment.application.getString(R.string.summary_placeholder));
.isEqualTo(application.getString(R.string.summary_placeholder));
}
@Test
public void bindPreference_hasSummary_shouldSetSummary() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.summary = "test";
tile.intent = new Intent();
@@ -254,7 +254,7 @@ public class DashboardFeatureProviderImplTest {
ShadowThreadUtils.class
})
public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.intent = new Intent();
tile.intent.setComponent(new ComponentName("pkg", "class"));
@@ -270,7 +270,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.key = "key";
tile.intent = new Intent();
@@ -287,12 +287,12 @@ public class DashboardFeatureProviderImplTest {
ShadowThreadUtils.class
})
public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.key = "key";
tile.intent = new Intent();
tile.intent.setComponent(
new ComponentName(RuntimeEnvironment.application.getPackageName(), "class"));
new ComponentName(application.getPackageName(), "class"));
tile.metaData = new Bundle();
tile.metaData.putString(TileUtils.META_DATA_PREFERENCE_ICON_URI,
"content://com.android.settings/tile_icon");
@@ -304,7 +304,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_withBaseOrder_shouldOffsetPriority() {
final int baseOrder = 100;
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.metaData = new Bundle();
tile.priority = 10;
@@ -316,7 +316,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_withOrderMetadata_shouldUseOrderInMetadata() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final int testOrder = -30;
final Tile tile = new Tile();
tile.metaData = new Bundle();
@@ -330,7 +330,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void bindPreference_invalidOrderMetadata_shouldIgnore() {
final Preference preference = new Preference(RuntimeEnvironment.application);
final Preference preference = new Preference(application);
final Tile tile = new Tile();
tile.metaData = new Bundle();
tile.metaData.putString(mImpl.META_DATA_KEY_ORDER, "hello");
@@ -368,7 +368,7 @@ public class DashboardFeatureProviderImplTest {
@Test
public void clickPreference_withUnresolvableIntent_shouldNotLaunchAnything() {
ReflectionHelpers.setField(
mImpl, "mPackageManager", RuntimeEnvironment.getPackageManager());
mImpl, "mPackageManager", application.getPackageManager());
Activity activity = Robolectric.buildActivity(Activity.class).get();
final ShadowApplication application = ShadowApplication.getInstance();
final Preference preference = new Preference(application.getApplicationContext());

View File

@@ -21,9 +21,15 @@ import static com.google.common.truth.Truth.assertThat;
import android.util.Pair;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SuggestionLogHelperTest {
@Test

View File

@@ -31,6 +31,7 @@ import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.DonutView;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@@ -48,9 +49,16 @@ public final class DataPlanSummaryPreferenceTest {
private static final String TEST_PLAN_USAGE = "Test plan usage";
private static final String TEST_PLAN_NAME = "Test plan name";
private static final String TEST_PLAN_DESCRIPTION = "Test plan description";
private static final int PLAN_USAGE_TEXT_COLOR = Color.parseColor("#FF5C94F1");
private static final int METER_BACKGROUND_COLOR = Color.parseColor("#FFDBDCDC");
private static final int METER_CONSUMED_COLOR = Color.parseColor("#FF5C94F1");
private static int sPlanUsageTextColor;
private static int sMeterBackgroundColor;
private static int sMeterConsumedColor;
@BeforeClass
public static void beforeClass() {
sPlanUsageTextColor = Color.parseColor("#FF5C94F1");
sMeterBackgroundColor = Color.parseColor("#FFDBDCDC");
sMeterConsumedColor = Color.parseColor("#FF5C94F1");
}
private DataPlanSummaryPreference mPreference;
private PreferenceViewHolder mHolder;
@@ -87,18 +95,18 @@ public final class DataPlanSummaryPreferenceTest {
@Test
public void shouldRender_withData() {
mPreference.setTitle(TEST_PLAN_USAGE);
mPreference.setUsageTextColor(PLAN_USAGE_TEXT_COLOR);
mPreference.setUsageTextColor(sPlanUsageTextColor);
mPreference.setName(TEST_PLAN_NAME);
mPreference.setDescription(TEST_PLAN_DESCRIPTION);
mPreference.setPercentageUsage(0.25D);
mPreference.setMeterBackgroundColor(METER_BACKGROUND_COLOR);
mPreference.setMeterConsumedColor(METER_CONSUMED_COLOR);
mPreference.setMeterBackgroundColor(sMeterBackgroundColor);
mPreference.setMeterConsumedColor(sMeterConsumedColor);
mPreference.onBindViewHolder(mHolder);
TextView planUsageTextView = (TextView) mHolder.findViewById(android.R.id.title);
assertThat(planUsageTextView.getTextColors().getDefaultColor())
.isEqualTo(PLAN_USAGE_TEXT_COLOR);
.isEqualTo(sPlanUsageTextColor);
assertThat(planUsageTextView.getText()).isEqualTo(TEST_PLAN_USAGE);
TextView planNameTextView = (TextView) mHolder.findViewById(android.R.id.text1);
@@ -108,7 +116,7 @@ public final class DataPlanSummaryPreferenceTest {
assertThat(planDescriptionTextView.getText()).isEqualTo(TEST_PLAN_DESCRIPTION);
DonutView donutView = (DonutView) mHolder.findViewById(R.id.donut);
assertThat(donutView.getMeterBackgroundColor()).isEqualTo(METER_BACKGROUND_COLOR);
assertThat(donutView.getMeterConsumedColor()).isEqualTo(METER_CONSUMED_COLOR);
assertThat(donutView.getMeterBackgroundColor()).isEqualTo(sMeterBackgroundColor);
assertThat(donutView.getMeterConsumedColor()).isEqualTo(sMeterConsumedColor);
}
}

View File

@@ -34,7 +34,6 @@ import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settingslib.NetworkPolicyEditor;
import java.util.ArrayList;

View File

@@ -31,17 +31,14 @@ import android.net.wifi.WifiManager;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settingslib.NetworkPolicyEditor;
import java.util.ArrayList;
import java.util.List;
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.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;

View File

@@ -30,16 +30,13 @@ import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import java.util.List;
import java.util.Locale;
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.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)

View File

@@ -39,7 +39,6 @@ import org.robolectric.shadows.ShadowApplication;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)

View File

@@ -34,7 +34,6 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.RuntimeEnvironment;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;

View File

@@ -97,8 +97,8 @@ public class StorageSummaryDonutPreferenceControllerTest {
mController.updateBytes(0, 32 * GIGABYTE);
mController.updateState(mPreference);
assertThat(mPreference.getTitle().toString()).isEqualTo("0.00B");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 32GB");
assertThat(mPreference.getTitle().toString()).isEqualTo("0.00 B");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 32 GB");
}
@Test
@@ -106,8 +106,8 @@ public class StorageSummaryDonutPreferenceControllerTest {
mController.updateBytes(KILOBYTE, KILOBYTE * 10);
mController.updateState(mPreference);
assertThat(mPreference.getTitle().toString()).isEqualTo("1.00KB");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 10KB");
assertThat(mPreference.getTitle().toString()).isEqualTo("1.00 KB");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 10 KB");
}
@Test
@@ -123,8 +123,8 @@ public class StorageSummaryDonutPreferenceControllerTest {
mController.updateSizes(svp, volume);
mController.updateState(mPreference);
assertThat(mPreference.getTitle().toString()).isEqualTo("9.00KB");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 10KB");
assertThat(mPreference.getTitle().toString()).isEqualTo("9.00 KB");
assertThat(mPreference.getSummary().toString()).isEqualTo("Used of 10 KB");
}
@Test

View File

@@ -17,6 +17,7 @@
package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.reset;
@@ -30,8 +31,8 @@ import android.provider.Settings.System;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wrapper.PowerManagerWrapper;
import org.junit.Before;
@@ -41,7 +42,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.internal.ShadowExtractor;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowContentResolver;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -84,8 +85,7 @@ public class BrightnessLevelPreferenceControllerTest {
Context context = RuntimeEnvironment.application;
BrightnessLevelPreferenceController controller =
new BrightnessLevelPreferenceController(context, null, mPowerManager);
ShadowContentResolver shadowContentResolver =
(ShadowContentResolver) ShadowExtractor.extract(context.getContentResolver());
ShadowContentResolver shadowContentResolver = Shadow.extract(context.getContentResolver());
controller.onResume();
@@ -104,8 +104,7 @@ public class BrightnessLevelPreferenceControllerTest {
Context context = RuntimeEnvironment.application;
BrightnessLevelPreferenceController controller =
new BrightnessLevelPreferenceController(context, null, mPowerManager);
ShadowContentResolver shadowContentResolver =
(ShadowContentResolver) ShadowExtractor.extract(context.getContentResolver());
ShadowContentResolver shadowContentResolver = Shadow.extract(context.getContentResolver());
controller.displayPreference(mScreen);
controller.onResume();

View File

@@ -47,7 +47,6 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
@@ -75,8 +74,6 @@ public class FingerprintEnrollFindSensorTest {
MockitoAnnotations.initMocks(this);
ShadowUtils.setFingerprintManager(mFingerprintManager);
RuntimeEnvironment.getAppResourceLoader().getResourceIndex();
mActivity = Robolectric.buildActivity(
FingerprintEnrollFindSensor.class,
new Intent()

View File

@@ -42,10 +42,10 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowKeyguardManager;
import org.robolectric.util.ActivityController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(

View File

@@ -40,7 +40,6 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAlertDialog;
@@ -66,8 +65,6 @@ public class SetupFingerprintEnrollFindSensorTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
ShadowUtils.setFingerprintManager(mFingerprintManager);
RuntimeEnvironment.getAppResourceLoader().getResourceIndex();
}
private void createActivity(Intent intent) {

View File

@@ -48,15 +48,14 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowActivity.IntentForResult;
import org.robolectric.shadows.ShadowKeyguardManager;
import org.robolectric.util.ActivityController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(
@@ -80,7 +79,7 @@ public class SetupFingerprintEnrollIntroductionTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
RuntimeEnvironment.getRobolectricPackageManager()
Shadows.shadowOf(application.getPackageManager())
.setSystemFeature(PackageManager.FEATURE_FINGERPRINT, true);
ShadowFingerprintManager.addToServiceMap();

View File

@@ -38,6 +38,7 @@ import android.widget.Button;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
import org.junit.Before;
@@ -54,7 +55,13 @@ import org.robolectric.shadows.ShadowDialog;
import org.robolectric.util.FragmentTestUtil;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@Config(
manifest = TestConfig.MANIFEST_PATH,
sdk = TestConfig.SDK_VERSION,
shadows = {
SettingsShadowResources.class,
SettingsShadowResources.SettingsShadowTheme.class
})
public class BackgroundActivityPreferenceControllerTest {
private static final int UID_LOW_SDK = 1234;
private static final int UID_HIGH_SDK = 3456;

View File

@@ -147,7 +147,7 @@ public class BatteryEntryTest {
}
@Test
public void extractPackageFromSipper_normalSipper_returnDefaultPakcage() {
public void extractPackageFromSipper_normalSipper_returnDefaultPackage() {
BatteryEntry entry = createBatteryEntryForApp();
assertThat(entry.extractPackagesFromSipper(entry.sipper)).isEqualTo(entry.sipper.mPackages);

View File

@@ -26,7 +26,6 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.os.BatteryManager;
import android.os.BatteryStats;
import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.TestConfig;

View File

@@ -37,7 +37,6 @@ import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceManager;
import android.view.View;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType;
import com.android.internal.os.BatteryStatsHelper;

View File

@@ -66,6 +66,7 @@ import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -107,10 +108,14 @@ public class PowerUsageSummaryTest {
private static final double BATTERY_OVERCOUNTED_USAGE = 500;
private static final double PRECISION = 0.001;
private static final double POWER_USAGE_PERCENTAGE = 50;
private static final Intent ADDITIONAL_BATTERY_INFO_INTENT =
new Intent("com.example.app.ADDITIONAL_BATTERY_INFO");
public static final String NEW_ML_EST_SUFFIX = "(New ML est)";
public static final String OLD_EST_SUFFIX = "(Old est)";
private static Intent sAdditionalBatteryInfoIntent;
@BeforeClass
public static void beforeClass() {
sAdditionalBatteryInfoIntent =new Intent("com.example.app.ADDITIONAL_BATTERY_INFO");
}
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@@ -188,7 +193,7 @@ public class PowerUsageSummaryTest {
when(mToggleAppsMenu.getItemId()).thenReturn(MENU_TOGGLE_APPS);
when(mHighPowerMenu.getItemId()).thenReturn(MENU_HIGH_POWER_APPS);
when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent())
.thenReturn(ADDITIONAL_BATTERY_INFO_INTENT);
.thenReturn(sAdditionalBatteryInfoIntent);
when(mBatteryHelper.getTotalPower()).thenReturn(TOTAL_POWER);
when(mBatteryHelper.getStats().computeBatteryRealtime(anyLong(), anyInt())).thenReturn(
TIME_SINCE_LAST_FULL_CHARGE_US);

View File

@@ -19,7 +19,6 @@ package com.android.settings.fuelgauge.anomaly;
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.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;

View File

@@ -32,7 +32,6 @@ import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference;
import com.android.settings.SettingsActivity;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;

View File

@@ -26,7 +26,6 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.os.BatteryStats;
import android.text.format.DateUtils;

View File

@@ -27,7 +27,6 @@ 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.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;

View File

@@ -43,7 +43,7 @@ import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class PIckupGesturePreferenceControllerTest {
public class PickupGesturePreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;

View File

@@ -16,33 +16,26 @@
package com.android.settings.gestures;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.hardware.fingerprint.FingerprintManager;
import android.provider.Settings;
import com.android.settings.search.InlinePayload;
import com.android.settings.search.InlineSwitchPayload;
import com.android.settings.search.ResultPayload;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import static android.provider.Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;

View File

@@ -49,7 +49,7 @@ public class UserDictionaryCursorLoaderTest {
MockitoAnnotations.initMocks(this);
mContentProvider = new FakeProvider();
mLoader = new UserDictionaryCursorLoader(RuntimeEnvironment.application, "" /* locale */);
ShadowContentResolver.registerProvider(UserDictionary.AUTHORITY, mContentProvider);
ShadowContentResolver.registerProviderInternal(UserDictionary.AUTHORITY, mContentProvider);
}
@Test

View File

@@ -47,7 +47,7 @@ public class UserDictionaryListTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContentProvider = new FakeProvider();
ShadowContentResolver.registerProvider(UserDictionary.AUTHORITY, mContentProvider);
ShadowContentResolver.registerProviderInternal(UserDictionary.AUTHORITY, mContentProvider);
}
@Test

View File

@@ -15,7 +15,6 @@
*/
package com.android.settings.location;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
@@ -35,10 +34,8 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.display.AutoBrightnessPreferenceController;
import com.android.settings.search.InlineListPayload;
import com.android.settings.search.InlinePayload;
import com.android.settings.search.InlineSwitchPayload;
import com.android.settings.search.ResultPayload;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
@@ -53,7 +50,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)

View File

@@ -16,21 +16,13 @@
package com.android.settings.notification;
import android.app.NotificationManager;
import android.app.NotificationManager.Policy;
import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.notification.NotificationBackend.AppRow;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import org.robolectric.annotation.Config;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;

View File

@@ -21,12 +21,19 @@ import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SuppressorHelperTest {
private static final String SUPPRESSOR_NAME = "wear";

View File

@@ -37,6 +37,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wifi.WifiSettings;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -59,9 +60,14 @@ public class CursorToSearchResultConverterTest {
private static final String TARGET_PACKAGE = "a.b.c";
private static final String TARGET_CLASS = "a.b.c.class";
private static final String KEY = "key";
private static final Intent INTENT = new Intent("com.android.settings");
private static final int ICON = R.drawable.ic_search_24dp;
private static final int BASE_RANK = 1;
private static Intent sIntent;
@BeforeClass
public static void beforeClass() {
sIntent = new Intent("com.android.settings");
}
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private SiteMapManager mSiteMapManager;
@@ -120,7 +126,7 @@ public class CursorToSearchResultConverterTest {
@Test
public void testParseCursor_MatchesIcon() {
final MatrixCursor cursor = new MatrixCursor(DatabaseResultLoader.SELECT_COLUMNS);
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(INTENT));
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(sIntent));
final String BLANK = "";
cursor.addRow(new Object[]{
KEY.hashCode(), // Doc ID
@@ -171,7 +177,7 @@ public class CursorToSearchResultConverterTest {
@Test
public void testLongTitle_PenalizedInRank() {
final MatrixCursor cursor = new MatrixCursor(DatabaseResultLoader.SELECT_COLUMNS);
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(INTENT));
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(sIntent));
final String BLANK = "";
cursor.addRow(new Object[]{
KEY.hashCode(), // Doc ID
@@ -203,7 +209,7 @@ public class CursorToSearchResultConverterTest {
for (SearchResult result : results) {
payload = result.payload;
Intent intent = payload.getIntent();
assertThat(intent.getAction()).isEqualTo(INTENT.getAction());
assertThat(intent.getAction()).isEqualTo(sIntent.getAction());
}
}
@@ -375,7 +381,7 @@ public class CursorToSearchResultConverterTest {
private MatrixCursor getDummyCursor(String[] keys, String className) {
MatrixCursor cursor = new MatrixCursor(DatabaseResultLoader.SELECT_COLUMNS);
final String BLANK = "";
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(INTENT));
final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(sIntent));
for (int i = 0; i < keys.length; i++) {
ArrayList<Object> item = new ArrayList<>(DatabaseResultLoader.SELECT_COLUMNS.length);
@@ -386,7 +392,7 @@ public class CursorToSearchResultConverterTest {
item.add(className); // classname
item.add(BLANK); // screen title
item.add(null); // Icon
item.add(INTENT.getAction()); // Intent action
item.add(sIntent.getAction()); // Intent action
item.add(TARGET_PACKAGE); // target package
item.add(TARGET_CLASS); // target class
item.add(keys[i]); // Key

View File

@@ -3,7 +3,6 @@ package com.android.settings.search;
import android.content.Context;
import android.content.ContentResolver;
import android.content.Intent;
import android.os.Parcel;
import android.provider.Settings;
import com.android.settings.TestConfig;
import com.android.settings.search.ResultPayload.SettingsSource;

View File

@@ -60,8 +60,8 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.util.ActivityController;
import org.robolectric.util.ReflectionHelpers;
import java.util.Set;

View File

@@ -26,8 +26,8 @@ import com.android.settings.testutils.shadow.ShadowEventLogWriter;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.android.controller.FragmentController;
import org.robolectric.annotation.Config;
import org.robolectric.util.FragmentController;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.spy;
@@ -47,7 +47,7 @@ public class ConfigureKeyGuardDialogTest {
Robolectric.buildFragment(ConfigureKeyGuardDialog.class);
final ConfigureKeyGuardDialog fragment = spy(fragmentController.get());
doNothing().when(fragment).startPasswordSetup();
fragmentController.attach().create().start().resume();
fragmentController.create().start().resume();
fragment.onClick(null /* dialog */, DialogInterface.BUTTON_POSITIVE);
fragment.onDismiss(null /* dialog */);

View File

@@ -17,6 +17,20 @@
package com.android.settings.support;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PERMANENT_DISMISS_THRESHOLD;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PREF_KEY_SUGGGESTION_COMPLETE;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity.isSuggestionComplete;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
import static org.robolectric.RuntimeEnvironment.application;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -33,20 +47,9 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.res.builder.RobolectricPackageManager;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PERMANENT_DISMISS_THRESHOLD;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PREF_KEY_SUGGGESTION_COMPLETE;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity
.PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME;
import static com.android.settings.support.NewDeviceIntroSuggestionActivity.isSuggestionComplete;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
import org.robolectric.shadows.ShadowPackageManager;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -57,14 +60,14 @@ public class NewDeviceIntroSuggestionActivityTest {
private FakeFeatureFactory mFeatureFactory;
private Context mContext;
private RobolectricPackageManager mRobolectricPackageManager;
private ShadowPackageManager mShadowPackageManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mFeatureFactory = FakeFeatureFactory.setupForTest(mMockContext);
mContext = RuntimeEnvironment.application;
mRobolectricPackageManager = RuntimeEnvironment.getRobolectricPackageManager();
mContext = application;
mShadowPackageManager = Shadows.shadowOf(application.getPackageManager());
when(mFeatureFactory.suggestionsFeatureProvider.getSharedPrefs(any(Context.class)))
.thenReturn(getSharedPreferences());
@@ -115,7 +118,7 @@ public class NewDeviceIntroSuggestionActivityTest {
.thenReturn("https://com.android.settings");
final Intent intent = NewDeviceIntroSuggestionActivity.getLaunchIntent(mContext);
mRobolectricPackageManager.addResolveInfoForIntent(intent, new ResolveInfo());
mShadowPackageManager.addResolveInfoForIntent(intent, new ResolveInfo());
assertThat(isSuggestionComplete(mContext)).isFalse();
}

View File

@@ -19,20 +19,22 @@ package com.android.settings.support;
import static com.google.common.truth.Truth.assertThat;
import static org.robolectric.RuntimeEnvironment.application;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import java.util.List;
@@ -45,7 +47,7 @@ public class SupportDashboardActivityTest {
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mContext = application;
}
@Test
@@ -67,10 +69,11 @@ public class SupportDashboardActivityTest {
@Test
public void shouldHandleIntentAction() {
RuntimeEnvironment.getRobolectricPackageManager().setQueryIntentImplicitly(true);
PackageManager packageManager = application.getPackageManager();
Shadows.shadowOf(packageManager).setQueryIntentImplicitly(true);
// Intent action used by setup wizard to start support settings
Intent intent = new Intent("com.android.settings.action.SUPPORT_SETTINGS");
ResolveInfo resolveInfo = RuntimeEnvironment.getPackageManager().resolveActivity(
ResolveInfo resolveInfo = packageManager.resolveActivity(
intent,
PackageManager.MATCH_DEFAULT_ONLY);
assertThat(resolveInfo).isNotNull();

View File

@@ -37,7 +37,7 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.internal.Shadow.directlyOn;
import static org.robolectric.shadow.api.Shadow.directlyOn;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,

View File

@@ -20,11 +20,11 @@ import android.content.Intent;
import org.junit.runners.model.InitializationError;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.manifest.AndroidManifest;
import org.robolectric.res.Fs;
import org.robolectric.res.ResourcePath;
import org.robolectric.util.ActivityController;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@@ -79,35 +79,35 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner {
public static void getIncludedResourcePaths(String packageName, List<ResourcePath> paths) {
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./packages/apps/Settings/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/base/packages/SettingsLib/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/base/core/res/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/opt/setupwizard/library/main/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/opt/setupwizard/library/gingerbread/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/opt/setupwizard/library/recyclerview/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/support/v7/appcompat/res"),
null));
paths.add(new ResourcePath(
packageName,
null,
Fs.fileFromPath("./frameworks/support/v7/cardview/res"),
null));
}

View File

@@ -4,7 +4,7 @@ import static android.util.TypedValue.TYPE_REFERENCE;
import static org.robolectric.RuntimeEnvironment.application;
import static org.robolectric.Shadows.shadowOf;
import static org.robolectric.internal.Shadow.directlyOn;
import static org.robolectric.shadow.api.Shadow.directlyOn;
import android.annotation.DimenRes;
import android.content.res.ColorStateList;
@@ -25,13 +25,13 @@ import android.util.TypedValue;
import com.android.settings.R;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.XmlResourceParserImpl;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.internal.Shadow;
import org.robolectric.res.StyleData;
import org.robolectric.res.StyleResolver;
import org.robolectric.res.builder.XmlResourceParserImpl;
import org.robolectric.res.ThemeStyleSet;
import org.robolectric.shadows.ShadowAssetManager;
import org.robolectric.shadows.ShadowResources;
import org.robolectric.util.ReflectionHelpers;
@@ -133,7 +133,7 @@ public class SettingsShadowResources extends ShadowResources {
if (override instanceof String) {
return (String) override;
}
return Shadow.directlyOn(
return directlyOn(
realResources, Resources.class, "getString", ClassParameter.from(int.class, id));
}
@@ -143,7 +143,7 @@ public class SettingsShadowResources extends ShadowResources {
if (override instanceof Integer) {
return (Integer) override;
}
return Shadow.directlyOn(
return directlyOn(
realResources, Resources.class, "getInteger", ClassParameter.from(int.class, id));
}
@@ -153,7 +153,7 @@ public class SettingsShadowResources extends ShadowResources {
if (override instanceof Boolean) {
return (boolean) override;
}
return Shadow.directlyOn(realResources, Resources.class, "getBoolean",
return directlyOn(realResources, Resources.class, "getBoolean",
ClassParameter.from(int.class, id));
}
@@ -184,13 +184,16 @@ public class SettingsShadowResources extends ShadowResources {
// Track down all styles and remove all inheritance from private styles.
ShadowAssetManager assetManager = shadowOf(RuntimeEnvironment.application.getAssets());
// The Object's below are actually ShadowAssetManager.OverlayedStyle. We can't use it
// here because it's package private.
Map<Long, List<Object>> appliedStylesList =
ReflectionHelpers.getField(assetManager, "appliedStyles");
Map<Long, Object /* NativeTheme */> appliedStylesList =
ReflectionHelpers.getField(assetManager, "nativeThemes");
for (Long idx : appliedStylesList.keySet()) {
List<Object> appliedStyles = appliedStylesList.get(idx);
for (Object appliedStyle : appliedStyles) {
ThemeStyleSet appliedStyles = ReflectionHelpers.getField(
appliedStylesList.get(idx), "themeStyleSet");
// The Object's below are actually ShadowAssetManager.OverlayedStyle. We can't use
// it here because it's private.
List<Object /* OverlayedStyle */> overlayedStyles =
ReflectionHelpers.getField(appliedStyles, "styles");
for (Object appliedStyle : overlayedStyles) {
StyleResolver styleResolver = ReflectionHelpers.getField(appliedStyle, "style");
List<StyleData> styleDatas =
ReflectionHelpers.getField(styleResolver, "styles");
@@ -223,5 +226,9 @@ public class SettingsShadowResources extends ShadowResources {
return directlyOn(realTheme, Theme.class)
.resolveAttribute(resid, outValue, resolveRefs);
}
private Resources getResources() {
return ReflectionHelpers.callInstanceMethod(ShadowTheme.class, this, "getResources");
}
}
}

View File

@@ -25,7 +25,7 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
import org.robolectric.internal.ShadowExtractor;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowContextImpl;
import org.robolectric.util.ReflectionHelpers;
@@ -96,7 +96,7 @@ public class ShadowFingerprintManager {
}
public static ShadowFingerprintManager get() {
return (ShadowFingerprintManager) ShadowExtractor.extract(
return (ShadowFingerprintManager) Shadow.extract(
RuntimeEnvironment.application.getSystemService(FingerprintManager.class));
}
}

View File

@@ -28,8 +28,7 @@ import com.android.internal.os.BackgroundThread;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.internal.Shadow;
import org.robolectric.internal.ShadowExtractor;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowMessageQueue;
@@ -56,8 +55,8 @@ public class ShadowPackageMonitor {
}
private static void setupBackgroundThreadScheduler() {
ShadowMessageQueue shadowMessageQueue = ((ShadowMessageQueue) ShadowExtractor.extract(
BackgroundThread.getHandler().getLooper().getQueue()));
ShadowMessageQueue shadowMessageQueue = Shadow.extract(
BackgroundThread.getHandler().getLooper().getQueue());
shadowMessageQueue.setScheduler(
ShadowApplication.getInstance().getBackgroundThreadScheduler());
}

View File

@@ -25,7 +25,7 @@ import android.util.SparseArray;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.internal.ShadowExtractor;
import org.robolectric.shadow.api.Shadow;
import java.util.Collections;
import java.util.List;
@@ -63,7 +63,7 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
}
public static ShadowUserManager getShadow() {
return (ShadowUserManager) ShadowExtractor.extract(
return (ShadowUserManager) Shadow.extract(
RuntimeEnvironment.application.getSystemService(UserManager.class));
}
}

View File

@@ -30,9 +30,9 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.util.ActivityController;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;

View File

@@ -36,6 +36,7 @@ import com.android.settings.wrapper.UserPackageWrapper;
import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -66,11 +67,17 @@ import static org.mockito.Mockito.when;
public class WebViewAppPickerTest {
private Context mContext = RuntimeEnvironment.application;
private final static UserInfo FIRST_USER = new UserInfo(0, "FIRST_USER", 0);
private final static UserInfo SECOND_USER = new UserInfo(0, "SECOND_USER", 0);
private static UserInfo sFirstUser;
private static UserInfo sSecondUser;
private final static String DEFAULT_PACKAGE_NAME = "DEFAULT_PACKAGE_NAME";
@BeforeClass
public static void beforeClass() {
sFirstUser = new UserInfo(0, "FIRST_USER", 0);
sSecondUser = new UserInfo(0, "SECOND_USER", 0);
}
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Activity mActivity;
@Mock
@@ -261,14 +268,14 @@ public class WebViewAppPickerTest {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
when(packageForFirstUser.getUserInfo()).thenReturn(FIRST_USER);
when(packageForFirstUser.getUserInfo()).thenReturn(sFirstUser);
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
.thenReturn(Arrays.asList(packageForFirstUser));
final String EXPECTED_DISABLED_REASON = String.format(
"(disabled for user %s)", FIRST_USER.name);
"(disabled for user %s)", sFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext,
DEFAULT_PACKAGE_NAME)).isEqualTo(EXPECTED_DISABLED_REASON);
}
@@ -278,14 +285,14 @@ public class WebViewAppPickerTest {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
when(packageForFirstUser.getUserInfo()).thenReturn(FIRST_USER);
when(packageForFirstUser.getUserInfo()).thenReturn(sFirstUser);
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
.thenReturn(Arrays.asList(packageForFirstUser));
final String EXPECTED_DISABLED_REASON = String.format(
"(uninstalled for user %s)", FIRST_USER.name);
"(uninstalled for user %s)", sFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext,
DEFAULT_PACKAGE_NAME)).isEqualTo(EXPECTED_DISABLED_REASON);
}
@@ -295,19 +302,19 @@ public class WebViewAppPickerTest {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
when(packageForFirstUser.getUserInfo()).thenReturn(FIRST_USER);
when(packageForFirstUser.getUserInfo()).thenReturn(sFirstUser);
UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
when(packageForSecondUser.getUserInfo()).thenReturn(SECOND_USER);
when(packageForSecondUser.getUserInfo()).thenReturn(sSecondUser);
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
final String EXPECTED_DISABLED_REASON = String.format(
"(disabled for user %s)", FIRST_USER.name);
"(disabled for user %s)", sFirstUser.name);
assertThat(mPicker.getDisabledReason(
wvusWrapper, mContext, DEFAULT_PACKAGE_NAME)).isEqualTo(EXPECTED_DISABLED_REASON);
}
@@ -321,19 +328,19 @@ public class WebViewAppPickerTest {
UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
when(packageForFirstUser.getUserInfo()).thenReturn(FIRST_USER);
when(packageForFirstUser.getUserInfo()).thenReturn(sFirstUser);
UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
when(packageForSecondUser.getUserInfo()).thenReturn(SECOND_USER);
when(packageForSecondUser.getUserInfo()).thenReturn(sSecondUser);
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
.thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
final String EXPECTED_DISABLED_REASON = String.format(
"(uninstalled for user %s)", FIRST_USER.name);
"(uninstalled for user %s)", sFirstUser.name);
assertThat(mPicker.getDisabledReason(wvusWrapper, mContext,
DEFAULT_PACKAGE_NAME)).isEqualTo(EXPECTED_DISABLED_REASON);
}

View File

@@ -44,6 +44,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -59,12 +60,16 @@ import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class UseOpenWifiPreferenceControllerTest {
private static ComponentName ENABLE_ACTIVITY_COMPONENT =
new ComponentName("package", "activityClass");
private static NetworkScorerAppData APP_DATA =
new NetworkScorerAppData(0, null, null, ENABLE_ACTIVITY_COMPONENT, null);
private static NetworkScorerAppData APP_DATA_NO_ACTIVITY =
new NetworkScorerAppData(0, null, null, null, null);
private static ComponentName sEnableActivityComponent;
private static NetworkScorerAppData sAppData;
private static NetworkScorerAppData sAppDataNoActivity;
@BeforeClass
public static void beforeClass() {
sEnableActivityComponent = new ComponentName("package", "activityClass");
sAppData = new NetworkScorerAppData(0, null, null, sEnableActivityComponent, null);
sAppDataNoActivity = new NetworkScorerAppData(0, null, null, null, null);
}
@Mock private Lifecycle mLifecycle;
@Mock private Fragment mFragment;
@@ -92,7 +97,7 @@ public class UseOpenWifiPreferenceControllerTest {
*/
private void setupScorers(@NonNull List<NetworkScorerAppData> scorers) {
when(mNetworkScoreManagerWrapper.getActiveScorerPackage()).thenReturn(
ENABLE_ACTIVITY_COMPONENT.getPackageName());
sEnableActivityComponent.getPackageName());
when(mNetworkScoreManagerWrapper.getAllValidScorers()).thenReturn(scorers);
when(mNetworkScoreManagerWrapper.getActiveScorer()).thenReturn(scorers.get(0));
}
@@ -106,7 +111,7 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void testIsAvailable_returnsFalseWhenScorersNotSupported() {
setupScorers(Lists.newArrayList(APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppDataNoActivity));
createController();
assertThat(mController.isAvailable()).isFalse();
@@ -114,7 +119,7 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void testIsAvailable_returnsTrueIfActiveScorerSupported() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
assertThat(mController.isAvailable()).isTrue();
@@ -122,8 +127,8 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void testIsAvailable_returnsTrueIfNonActiveScorerSupported() {
setupScorers(Lists.newArrayList(APP_DATA_NO_ACTIVITY, APP_DATA));
when(mNetworkScoreManagerWrapper.getActiveScorer()).thenReturn(APP_DATA_NO_ACTIVITY);
setupScorers(Lists.newArrayList(sAppDataNoActivity, sAppData));
when(mNetworkScoreManagerWrapper.getActiveScorer()).thenReturn(sAppDataNoActivity);
createController();
assertThat(mController.isAvailable()).isTrue();
@@ -150,7 +155,7 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void onPreferenceChange_matchingKeyAndAvailable_enableShouldStartEnableActivity() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
final SwitchPreference pref = new SwitchPreference(mContext);
@@ -160,15 +165,15 @@ public class UseOpenWifiPreferenceControllerTest {
verify(mFragment).startActivityForResult(mIntentCaptor.capture(),
eq(REQUEST_CODE_OPEN_WIFI_AUTOMATICALLY));
Intent activityIntent = mIntentCaptor.getValue();
assertThat(activityIntent.getComponent()).isEqualTo(ENABLE_ACTIVITY_COMPONENT);
assertThat(activityIntent.getComponent()).isEqualTo(sEnableActivityComponent);
assertThat(activityIntent.getAction()).isEqualTo(NetworkScoreManager.ACTION_CUSTOM_ENABLE);
}
@Test
public void onPreferenceChange_matchingKeyAndAvailable_disableShouldUpdateSetting() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
Settings.Global.putString(mContext.getContentResolver(), USE_OPEN_WIFI_PACKAGE,
ENABLE_ACTIVITY_COMPONENT.getPackageName());
sEnableActivityComponent.getPackageName());
createController();
@@ -182,7 +187,7 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void onActivityResult_nonmatchingRequestCode_shouldDoNothing() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
assertThat(mController.onActivityResult(234 /* requestCode */ , Activity.RESULT_OK))
@@ -193,7 +198,7 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void onActivityResult_matchingRequestCode_nonOkResult_shouldDoNothing() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
assertThat(mController
@@ -205,24 +210,24 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void onActivityResult_matchingRequestCode_okResult_updatesSetting() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
assertThat(mController
.onActivityResult(REQUEST_CODE_OPEN_WIFI_AUTOMATICALLY, Activity.RESULT_OK))
.isEqualTo(true);
assertThat(Settings.Global.getString(mContext.getContentResolver(), USE_OPEN_WIFI_PACKAGE))
.isEqualTo(ENABLE_ACTIVITY_COMPONENT.getPackageName());
.isEqualTo(sEnableActivityComponent.getPackageName());
}
@Test
public void updateState_noEnableActivity_preferenceDisabled_summaryChanged() {
setupScorers(Lists.newArrayList(APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppDataNoActivity));
createController();
final SwitchPreference preference = mock(SwitchPreference.class);
Settings.Global.putString(mContext.getContentResolver(), USE_OPEN_WIFI_PACKAGE,
ENABLE_ACTIVITY_COMPONENT.getPackageName());
sEnableActivityComponent.getPackageName());
mController.updateState(preference);
@@ -238,7 +243,7 @@ public class UseOpenWifiPreferenceControllerTest {
final SwitchPreference preference = mock(SwitchPreference.class);
Settings.Global.putString(mContext.getContentResolver(), USE_OPEN_WIFI_PACKAGE,
ENABLE_ACTIVITY_COMPONENT.getPackageName());
sEnableActivityComponent.getPackageName());
mController.updateState(preference);
@@ -249,12 +254,12 @@ public class UseOpenWifiPreferenceControllerTest {
@Test
public void updateState_enableActivityExists_preferenceEnabled() {
setupScorers(Lists.newArrayList(APP_DATA, APP_DATA_NO_ACTIVITY));
setupScorers(Lists.newArrayList(sAppData, sAppDataNoActivity));
createController();
final SwitchPreference preference = mock(SwitchPreference.class);
Settings.Global.putString(mContext.getContentResolver(), USE_OPEN_WIFI_PACKAGE,
ENABLE_ACTIVITY_COMPONENT.getPackageName());
sEnableActivityComponent.getPackageName());
mController.updateState(preference);

View File

@@ -23,7 +23,6 @@ import static android.provider.Settings.Global.WIFI_WAKEUP_ENABLED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.provider.Settings;
@@ -34,14 +33,12 @@ import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.wrapper.NetworkScoreManagerWrapper;
import com.android.settingslib.core.lifecycle.Lifecycle;
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.annotation.Config;