Setup external/robolectric for SettingsRoboTests
Current failing tests: ab/I64100010182936387 Had to Ignore some of com.android.settings.accessibility tests, which will be fixed separately Bug: 261728063 Test: atest SettingsRoboTests -- --test-arg com.android.tradefed.testtype.IsolatedHostTest:java-flags:-XX:CompressedClassSpaceSize=3g Change-Id: I4a0cb992db924936826e0c9808accc78dddb5f30
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.network;
|
||||
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
@@ -30,8 +31,10 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
// import org.robolectric.annotation.LooperMode;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
// @LooperMode(LooperMode.Mode.LEGACY)
|
||||
public class MobileDataEnabledListenerTest {
|
||||
private static final int SUB_ID_ONE = 111;
|
||||
private static final int SUB_ID_TWO = 222;
|
||||
@@ -54,6 +57,7 @@ public class MobileDataEnabledListenerTest {
|
||||
mListener.start(SUB_ID_ONE);
|
||||
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient).onMobileDataEnabledChange();
|
||||
}
|
||||
|
||||
@@ -63,6 +67,7 @@ public class MobileDataEnabledListenerTest {
|
||||
mListener.stop();
|
||||
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient, never()).onMobileDataEnabledChange();
|
||||
}
|
||||
|
||||
@@ -73,6 +78,7 @@ public class MobileDataEnabledListenerTest {
|
||||
mListener.start(SUB_ID_TWO);
|
||||
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_TWO);
|
||||
mContext.getContentResolver().notifyChange(uri, null);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient).onMobileDataEnabledChange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,6 +99,9 @@ import org.robolectric.shadows.ShadowToast;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
com.android.settings.testutils.shadow.ShadowFragment.class,
|
||||
})
|
||||
public class NetworkProviderSettingsTest {
|
||||
|
||||
private static final int XML_RES = R.xml.wifi_tether_settings;
|
||||
|
||||
@@ -20,12 +20,14 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.Mockito.atLeastOnce;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
@@ -81,6 +83,7 @@ public class SubscriptionsChangeListenerTest {
|
||||
final ContentResolver contentResolver = mock(ContentResolver.class);
|
||||
when(mContext.getContentResolver()).thenReturn(contentResolver);
|
||||
initListener(false);
|
||||
shadowMainLooper().idle();
|
||||
verify(contentResolver, never()).registerContentObserver(any(Uri.class), anyBoolean(),
|
||||
any(ContentObserver.class));
|
||||
verify(mSubscriptionManager, never()).addOnSubscriptionsChangedListener(any(), any());
|
||||
@@ -93,6 +96,7 @@ public class SubscriptionsChangeListenerTest {
|
||||
final ArgumentCaptor<SubscriptionManager.OnSubscriptionsChangedListener> captor =
|
||||
ArgumentCaptor.forClass(SubscriptionManager.OnSubscriptionsChangedListener.class);
|
||||
verify(mSubscriptionManager).addOnSubscriptionsChangedListener(any(), captor.capture());
|
||||
shadowMainLooper().idle();
|
||||
captor.getValue().onSubscriptionsChanged();
|
||||
verify(mClient).onSubscriptionsChanged();
|
||||
}
|
||||
@@ -104,9 +108,11 @@ public class SubscriptionsChangeListenerTest {
|
||||
mContext.sendStickyBroadcast(intent);
|
||||
|
||||
initListener(true);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient, never()).onSubscriptionsChanged();
|
||||
|
||||
mContext.sendStickyBroadcast(intent);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient, times(1)).onSubscriptionsChanged();
|
||||
}
|
||||
|
||||
@@ -115,8 +121,10 @@ public class SubscriptionsChangeListenerTest {
|
||||
initListener(true);
|
||||
final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
|
||||
ArgumentCaptor.forClass(BroadcastReceiver.class);
|
||||
shadowMainLooper().idle();
|
||||
verify(mContext).registerReceiver(broadcastReceiverCaptor.capture(), any());
|
||||
broadcastReceiverCaptor.getValue().onReceive(mContext, null);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient).onSubscriptionsChanged();
|
||||
}
|
||||
|
||||
@@ -125,7 +133,8 @@ public class SubscriptionsChangeListenerTest {
|
||||
initListener(true);
|
||||
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
|
||||
mListener.onChange(false, mAirplaneModeUri);
|
||||
verify(mClient).onAirplaneModeChanged(true);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient, atLeastOnce()).onAirplaneModeChanged(true);
|
||||
assertThat(mListener.isAirplaneModeOn()).isTrue();
|
||||
}
|
||||
|
||||
@@ -134,7 +143,8 @@ public class SubscriptionsChangeListenerTest {
|
||||
initListener(true);
|
||||
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
|
||||
mListener.onChange(false, mAirplaneModeUri);
|
||||
verify(mClient).onAirplaneModeChanged(false);
|
||||
shadowMainLooper().idle();
|
||||
verify(mClient, atLeastOnce()).onAirplaneModeChanged(false);
|
||||
assertThat(mListener.isAirplaneModeOn()).isFalse();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoInteractions;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothPan;
|
||||
@@ -205,6 +206,7 @@ public class TetherPreferenceControllerTest {
|
||||
|
||||
context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));
|
||||
|
||||
shadowMainLooper().idle();
|
||||
verify(mController).updateSummary();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.util.FeatureFlagUtils;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
|
||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -39,13 +40,16 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowUserManager;
|
||||
import org.robolectric.shadow.api.Shadow;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowUtils.class})
|
||||
@Config(shadows = {
|
||||
ShadowRestrictedLockUtilsInternal.class,
|
||||
ShadowUtils.class,
|
||||
ShadowUserManager.class,
|
||||
})
|
||||
public class TopLevelNetworkEntryPreferenceControllerTest {
|
||||
|
||||
@Mock
|
||||
@@ -58,7 +62,7 @@ public class TopLevelNetworkEntryPreferenceControllerTest {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
final ShadowUserManager um = Shadows.shadowOf(
|
||||
final ShadowUserManager um = Shadow.extract(
|
||||
RuntimeEnvironment.application.getSystemService(UserManager.class));
|
||||
um.setIsAdminUser(true);
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ import androidx.preference.SwitchPreference;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.network.ProxySubscriptionManager;
|
||||
import com.android.settings.network.apn.ApnEditor.ApnData;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -69,6 +68,9 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
com.android.settings.testutils.shadow.ShadowFragment.class,
|
||||
})
|
||||
public class ApnEditorTest {
|
||||
|
||||
private static final Object[] APN_DATA = {
|
||||
@@ -497,7 +499,6 @@ public class ApnEditorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowFragment.class)
|
||||
public void onCreate_notAdminUser_shouldFinish() {
|
||||
doReturn(false).when(mUserManager).isAdminUser();
|
||||
|
||||
@@ -507,7 +508,6 @@ public class ApnEditorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowFragment.class)
|
||||
public void onCreate_hasUserRestriction_shouldFinish() {
|
||||
doReturn(true).when(mUserManager)
|
||||
.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
|
||||
@@ -518,7 +518,6 @@ public class ApnEditorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowFragment.class)
|
||||
public void onCreate_noAction_shouldFinishAndNoCrash() {
|
||||
ProxySubscriptionManager proxySubscriptionMgr = mock(ProxySubscriptionManager.class);
|
||||
mApnEditorUT.mProxySubscriptionMgr = proxySubscriptionMgr;
|
||||
|
||||
@@ -58,7 +58,10 @@ import org.robolectric.util.ReflectionHelpers;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowEntityHeaderController.class)
|
||||
@Config(shadows = {
|
||||
ShadowEntityHeaderController.class,
|
||||
com.android.settings.testutils.shadow.ShadowFragment.class,
|
||||
})
|
||||
public class MobileNetworkSettingsTest {
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
@@ -76,6 +76,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
com.android.settings.testutils.shadow.ShadowFragment.class,
|
||||
})
|
||||
public class TetherSettingsTest {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
Reference in New Issue
Block a user