Use binary resource support in robolectric

The resources available to tests are now exactly the merged resources
located in the APK under test.

Bug: 74359828
Test: make -j56 RunSettingsRoboTests
Change-Id: I050db81a92decefea23314b5ec7a62f77ff4bb2b
This commit is contained in:
James Lemieux
2018-12-07 12:56:49 -08:00
committed by Fan Zhang
parent 1f5fab1480
commit f1dade40d2
1005 changed files with 3187 additions and 5478 deletions

View File

@@ -38,7 +38,7 @@ import android.content.IntentFilter;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.bluetooth.Utils;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -47,6 +47,7 @@ import com.android.settingslib.bluetooth.HearingAidProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -54,13 +55,14 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowBluetoothAdapter.class, ShadowBluetoothUtils.class})
public class AccessibilityHearingAidPreferenceControllerTest {
private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
@@ -100,6 +102,11 @@ public class AccessibilityHearingAidPreferenceControllerTest {
mHearingAidPreference.setSummary("");
}
@After
public void tearDown() {
ShadowBluetoothUtils.reset();
}
@Test
public void onHearingAidStateChanged_connected_updateHearingAidSummary() {
when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
@@ -175,7 +182,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
private void setupBluetoothEnvironment() {
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
mLocalBluetoothManager = ShadowBluetoothUtils.getLocalBtManager(mContext);
mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
mBluetoothManager = new BluetoothManager(mContext);
mBluetoothAdapter = mBluetoothManager.getAdapter();
when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
@@ -197,8 +204,7 @@ public class AccessibilityHearingAidPreferenceControllerTest {
private void sendIntent(Intent intent) {
ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
ArgumentCaptor.forClass(BroadcastReceiver.class);
verify(mContext).registerReceiver(
broadcastReceiverCaptor.capture(), (IntentFilter) any());
verify(mContext).registerReceiver(broadcastReceiverCaptor.capture(), any());
BroadcastReceiver br = broadcastReceiverCaptor.getValue();
br.onReceive(mContext, intent);
}

View File

@@ -29,19 +29,18 @@ import android.provider.Settings;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class AccessibilitySettingsTest {
private static final String VIBRATION_PREFERENCE_SCREEN = "vibration_preference_screen";
private static final String ACCESSIBILITY_CONTENT_TIMEOUT_PREFERENCE =
@@ -66,20 +65,19 @@ public class AccessibilitySettingsTest {
public void testNonIndexableKeys_existInXmlLayout() {
final List<String> niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(mContext);
final List<String> keys = new ArrayList<>();
keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(mContext, R.xml.accessibility_settings));
final List<String> keys =
XmlTestUtils.getKeysFromPreferenceXml(mContext, R.xml.accessibility_settings);
assertThat(keys).containsAllIn(niks);
}
@Test
public void testUpdateVibrationSummary_shouldUpdateSummary() {
final Preference mVibrationPreferenceScreen = new Preference(mContext);
doReturn(mVibrationPreferenceScreen).when(mSettings).findPreference(
final Preference vibrationPreferenceScreen = new Preference(mContext);
doReturn(vibrationPreferenceScreen).when(mSettings).findPreference(
VIBRATION_PREFERENCE_SCREEN);
mVibrationPreferenceScreen.setKey(VIBRATION_PREFERENCE_SCREEN);
vibrationPreferenceScreen.setKey(VIBRATION_PREFERENCE_SCREEN);
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.NOTIFICATION_VIBRATION_INTENSITY,
@@ -89,8 +87,8 @@ public class AccessibilitySettingsTest {
Settings.System.HAPTIC_FEEDBACK_INTENSITY,
Vibrator.VIBRATION_INTENSITY_OFF);
mSettings.updateVibrationSummary(mVibrationPreferenceScreen);
assertThat(mVibrationPreferenceScreen.getSummary()).isEqualTo(
mSettings.updateVibrationSummary(vibrationPreferenceScreen);
assertThat(vibrationPreferenceScreen.getSummary()).isEqualTo(
VibrationIntensityPreferenceController.getIntensityString(mContext,
Vibrator.VIBRATION_INTENSITY_OFF));
}

View File

@@ -30,12 +30,12 @@ import android.content.pm.ServiceInfo;
import android.provider.Settings;
import android.view.accessibility.AccessibilityManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.accessibility.AccessibilityUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAccessibilityManager;
@@ -45,7 +45,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class AccessibilitySlicePreferenceControllerTest {
private final String PACKAGE_NAME = "com.android.settings.fake";

View File

@@ -31,7 +31,6 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.widget.RadioButtonPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -40,9 +39,10 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class AccessibilityTimeoutControllerTest
implements AccessibilityTimeoutController.OnChangeListener {
private static final String PREF_KEY = "accessibility_content_timeout_30secs";
@@ -91,7 +91,7 @@ public class AccessibilityTimeoutControllerTest
mController.updateState(mMockPref);
// the first checked state is seted to false by control
// the first checked state is set to false by control
verify(mMockPref).setChecked(false);
verify(mMockPref).setChecked(false);
}
@@ -103,7 +103,7 @@ public class AccessibilityTimeoutControllerTest
mController.updateState(mMockPref);
// the first checked state is seted to false by control
// the first checked state is set to false by control
verify(mMockPref).setChecked(false);
verify(mMockPref).setChecked(true);
}

View File

@@ -27,15 +27,15 @@ import android.provider.Settings;
import androidx.preference.SwitchPreference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class ColorInversionPreferenceControllerTest {
private static final int UNKNOWN = -1;
private Context mContext;

View File

@@ -23,16 +23,16 @@ import android.content.Context;
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class HapticFeedbackIntensityPreferenceControllerTest {
private LifecycleOwner mLifecycleOwner;

View File

@@ -28,15 +28,15 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class MagnificationGesturesPreferenceControllerTest {
private Context mContext;

View File

@@ -31,20 +31,20 @@ import android.provider.Settings;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class MagnificationNavbarPreferenceControllerTest {
private Context mContext;

View File

@@ -34,7 +34,6 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
@@ -42,9 +41,10 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class NotificationVibrationIntensityPreferenceControllerTest {
@Mock

View File

@@ -27,7 +27,6 @@ import android.content.Context;
import android.os.UserManager;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
@@ -35,9 +34,10 @@ import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class ShortcutServicePickerFragmentTest {
private static final String TEST_SERVICE_KEY_1 = "abc/123";
@@ -56,7 +56,7 @@ public class ShortcutServicePickerFragmentTest {
when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
mFragment = spy(new ShortcutServicePickerFragment());
mFragment.onAttach((Context) mActivity);
mFragment.onAttach(mActivity);
doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
}

View File

@@ -29,17 +29,14 @@ import androidx.annotation.XmlRes;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.SwitchBar;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
@RunWith(RobolectricTestRunner.class)
public class ToggleFeaturePreferenceFragmentTest {
private ToggleFeaturePreferenceFragmentTestable mFragment;

View File

@@ -37,7 +37,6 @@ import com.android.settings.R;
import com.android.settings.accessibility.VibrationPreferenceFragment
.VibrationIntensityCandidateInfo;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.widget.CandidateInfo;
import org.junit.Before;
@@ -45,13 +44,14 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RunWith(SettingsRobolectricTestRunner.class)
@RunWith(RobolectricTestRunner.class)
public class VibrationPreferenceFragmentTest {
private static final Map<Integer, String> INTENSITY_TO_KEY = new HashMap<>(4);