Merge "Fall back to Wi-Fi data display in data usage screen with no SIM."
This commit is contained in:
committed by
Android (Google) Code Review
commit
5c36161d0b
@@ -45,7 +45,7 @@ public class LegalSettingsTest {
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mFragment = new LegalSettings() {
|
||||
@Override
|
||||
protected boolean removePreference(String key) {
|
||||
public boolean removePreference(String key) {
|
||||
if (LegalSettings.KEY_WALLPAPER_ATTRIBUTIONS.equals(key)) {
|
||||
mWallpaperRemoved = true;
|
||||
|
||||
|
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -28,9 +29,11 @@ import static org.mockito.Mockito.when;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkTemplate;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
@@ -89,6 +92,10 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
private EntityHeaderController mHeaderController;
|
||||
@Mock
|
||||
private DataUsageSummary mDataUsageSummary;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
|
||||
private FakeFeatureFactory mFactory;
|
||||
private Activity mActivity;
|
||||
@@ -103,12 +110,17 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
doReturn("%1$s %2%s").when(mContext)
|
||||
.getString(com.android.internal.R.string.fileSizeSuffix);
|
||||
|
||||
mActivity = Robolectric.setupActivity(Activity.class);
|
||||
mFactory = FakeFeatureFactory.setupForTest();
|
||||
when(mFactory.metricsFeatureProvider.getMetricsCategory(any(Object.class)))
|
||||
.thenReturn(MetricsProto.MetricsEvent.SETTINGS_APP_NOTIF_CATEGORY);
|
||||
ShadowEntityHeaderController.setUseMock(mHeaderController);
|
||||
|
||||
mActivity = spy(Robolectric.buildActivity(Activity.class).get());
|
||||
when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
||||
when(mActivity.getSystemService(ConnectivityManager.class))
|
||||
.thenReturn(mConnectivityManager);
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
|
||||
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
|
||||
mController = new DataUsageSummaryPreferenceController(
|
||||
mDataUsageController,
|
||||
mDataInfoController,
|
||||
@@ -146,6 +158,7 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
|
||||
CARRIER_NAME, 1 /* numPlans */, intent);
|
||||
verify(mSummaryPreference).setChartEnabled(true);
|
||||
verify(mSummaryPreference).setWifiMode(false, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -169,6 +182,7 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
|
||||
CARRIER_NAME, 0 /* numPlans */, intent);
|
||||
verify(mSummaryPreference).setChartEnabled(true);
|
||||
verify(mSummaryPreference).setWifiMode(false, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -194,6 +208,7 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
0 /* numPlans */,
|
||||
null /* launchIntent */);
|
||||
verify(mSummaryPreference).setChartEnabled(true);
|
||||
verify(mSummaryPreference).setWifiMode(false, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -220,6 +235,7 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
0 /* numPlans */,
|
||||
null /* launchIntent */);
|
||||
verify(mSummaryPreference).setChartEnabled(false);
|
||||
verify(mSummaryPreference).setWifiMode(false, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -300,6 +316,30 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
verify(mSummaryPreference).setLimitInfo(captor.capture());
|
||||
CharSequence value = captor.getValue();
|
||||
assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit");
|
||||
verify(mSummaryPreference).setWifiMode(false, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSummaryUpdate_noSim_shouldSetWifiMode() {
|
||||
final long now = System.currentTimeMillis();
|
||||
final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
|
||||
info.warningLevel = 1000000L;
|
||||
info.limitLevel = 1000000L;
|
||||
|
||||
final Intent intent = new Intent();
|
||||
|
||||
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
|
||||
mController.setPlanValues(0 /* dataPlanCount */, LIMIT1, USAGE1);
|
||||
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
|
||||
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
mController.updateState(mSummaryPreference);
|
||||
|
||||
verify(mSummaryPreference).setWifiMode(true, info.period);
|
||||
verify(mSummaryPreference).setLimitInfo(null);
|
||||
verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true);
|
||||
verify(mSummaryPreference).setChartEnabled(false);
|
||||
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, -1L, null, 0, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -321,7 +361,7 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMobileData_preferenceDisabled() {
|
||||
public void testMobileData_noSimNoWifi_preferenceDisabled() {
|
||||
mController = new DataUsageSummaryPreferenceController(
|
||||
mDataUsageController,
|
||||
mDataInfoController,
|
||||
@@ -332,10 +372,28 @@ public class DataUsageSummaryPreferenceControllerTest {
|
||||
mSubscriptionManager,
|
||||
mActivity, null, null, null);
|
||||
|
||||
when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(null);
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_UNSUPPORTED);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMobileData_noSimWifi_preferenceDisabled() {
|
||||
mController = new DataUsageSummaryPreferenceController(
|
||||
mDataUsageController,
|
||||
mDataInfoController,
|
||||
mNetworkTemplate,
|
||||
mPolicyEditor,
|
||||
R.string.cell_data_template,
|
||||
true,
|
||||
mSubscriptionManager,
|
||||
mActivity, null, null, null);
|
||||
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(true);
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMobileData_entityHeaderSet() {
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
|
@@ -17,10 +17,16 @@
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.net.NetworkTemplate;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.preference.PreferenceViewHolder;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -30,16 +36,23 @@ import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowActivity;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -389,6 +402,48 @@ public class DataUsageSummaryPreferenceTest {
|
||||
assertThat(mDataRemaining.getText()).isEqualTo("");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetWifiMode_withUsageInfo_dataUsageShown() {
|
||||
final int daysLeft = 3;
|
||||
final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
|
||||
+ TimeUnit.HOURS.toMillis(1);
|
||||
final Activity activity = Robolectric.setupActivity(Activity.class);
|
||||
mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, DUMMY_CARRIER, 0 /* numPlans */,
|
||||
new Intent());
|
||||
mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
|
||||
final String cycleText = "The quick fox";
|
||||
mSummaryPreference.setWifiMode(true, cycleText);
|
||||
|
||||
bindViewHolder();
|
||||
assertThat(mUsageTitle.getText().toString())
|
||||
.isEqualTo(mContext.getString(R.string.data_usage_wifi_title));
|
||||
assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(mCycleTime.getText()).isEqualTo(cycleText);
|
||||
assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.GONE);
|
||||
assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
|
||||
assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(mLaunchButton.getText())
|
||||
.isEqualTo(mContext.getString(R.string.launch_wifi_text));
|
||||
|
||||
mLaunchButton.callOnClick();
|
||||
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
|
||||
Intent startedIntent = shadowActivity.getNextStartedActivity();
|
||||
assertThat(startedIntent.getComponent()).isEqualTo(new ComponentName("com.android.settings",
|
||||
SubSettings.class.getName()));
|
||||
|
||||
final Bundle expect = new Bundle(1);
|
||||
expect.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
|
||||
NetworkTemplate.buildTemplateWifiWildcard());
|
||||
final Bundle actual = startedIntent
|
||||
.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
|
||||
assertThat((NetworkTemplate) actual.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE))
|
||||
.isEqualTo(NetworkTemplate.buildTemplateWifiWildcard());
|
||||
|
||||
assertThat(startedIntent.getCharSequenceExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE))
|
||||
.isEqualTo(mContext.getString(R.string.wifi_data_usage));
|
||||
}
|
||||
|
||||
private void bindViewHolder() {
|
||||
mSummaryPreference.onBindViewHolder(mHolder);
|
||||
mUsageTitle = (TextView) mHolder.findViewById(R.id.usage_title);
|
||||
|
@@ -16,24 +16,19 @@
|
||||
|
||||
package com.android.settings.datausage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyObject;
|
||||
import static org.mockito.Matchers.endsWith;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.net.NetworkPolicyManager;
|
||||
import android.os.Bundle;
|
||||
import android.text.format.Formatter;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
|
||||
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
||||
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -41,18 +36,35 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyObject;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Matchers.endsWith;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@Config(shadows = {
|
||||
SettingsShadowResourcesImpl.class,
|
||||
SettingsShadowResources.SettingsShadowTheme.class,
|
||||
ShadowUtils.class,
|
||||
ShadowDataUsageUtils.class,
|
||||
ShadowDashboardFragment.class
|
||||
})
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class DataUsageSummaryTest {
|
||||
|
||||
@Mock
|
||||
private ConnectivityManager mManager;
|
||||
private Context mContext;
|
||||
@Mock
|
||||
TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private SummaryLoader mSummaryLoader;
|
||||
@Mock
|
||||
private NetworkPolicyManager mNetworkPolicyManager;
|
||||
private Context mContext;
|
||||
private Activity mActivity;
|
||||
private SummaryLoader.SummaryProvider mSummaryProvider;
|
||||
|
||||
@@ -65,12 +77,10 @@ public class DataUsageSummaryTest {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
ShadowApplication shadowContext = ShadowApplication.getInstance();
|
||||
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
|
||||
mContext = shadowContext.getApplicationContext();
|
||||
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
|
||||
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
|
||||
|
||||
mContext = shadowContext.getApplicationContext();
|
||||
mActivity = spy(Robolectric.buildActivity(Activity.class).get());
|
||||
when(mActivity.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
|
||||
|
||||
mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
|
||||
.createSummaryProvider(mActivity, mSummaryLoader);
|
||||
@@ -89,15 +99,73 @@ public class DataUsageSummaryTest {
|
||||
|
||||
@Test
|
||||
public void setListening_shouldBlankSummaryWithNoSim() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
ShadowDataUsageUtils.HAS_SIM = false;
|
||||
mSummaryProvider.setListening(true);
|
||||
verify(mSummaryLoader).setSummary(mSummaryProvider, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setListening_shouldSetSummaryWithSim() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
|
||||
ShadowDataUsageUtils.HAS_SIM = true;
|
||||
mSummaryProvider.setListening(true);
|
||||
verify(mSummaryLoader).setSummary(anyObject(), endsWith(" of data used"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void configuration_withSim_shouldShowMobileAndWifi() {
|
||||
ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
|
||||
ShadowDataUsageUtils.DEFAULT_SUBSCRIPTION_ID = 1;
|
||||
ShadowDataUsageUtils.HAS_SIM = true;
|
||||
|
||||
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
|
||||
doReturn(mContext).when(dataUsageSummary).getContext();
|
||||
|
||||
doReturn(true).when(dataUsageSummary).removePreference(anyString());
|
||||
doNothing().when(dataUsageSummary).addWifiSection();
|
||||
doNothing().when(dataUsageSummary).addMobileSection(1);
|
||||
|
||||
dataUsageSummary.onCreate(null);
|
||||
|
||||
verify(dataUsageSummary).addWifiSection();
|
||||
verify(dataUsageSummary).addMobileSection(anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void configuration_withoutSim_shouldShowWifiSectionOnly() {
|
||||
ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
|
||||
ShadowDataUsageUtils.HAS_SIM = false;
|
||||
|
||||
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
|
||||
doReturn(mContext).when(dataUsageSummary).getContext();
|
||||
|
||||
doReturn(true).when(dataUsageSummary).removePreference(anyString());
|
||||
doNothing().when(dataUsageSummary).addWifiSection();
|
||||
doNothing().when(dataUsageSummary).addMobileSection(1);
|
||||
|
||||
dataUsageSummary.onCreate(null);
|
||||
|
||||
verify(dataUsageSummary).addWifiSection();
|
||||
verify(dataUsageSummary, never()).addMobileSection(anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void configuration_withoutMobile_shouldShowWifiSectionOnly() {
|
||||
ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = false;
|
||||
ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
|
||||
ShadowDataUsageUtils.HAS_SIM = false;
|
||||
|
||||
final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
|
||||
doReturn(mContext).when(dataUsageSummary).getContext();
|
||||
|
||||
doReturn(true).when(dataUsageSummary).removePreference(anyString());
|
||||
doNothing().when(dataUsageSummary).addWifiSection();
|
||||
doNothing().when(dataUsageSummary).addMobileSection(1);
|
||||
|
||||
dataUsageSummary.onCreate(null);
|
||||
|
||||
verify(dataUsageSummary).addWifiSection();
|
||||
verify(dataUsageSummary, never()).addMobileSection(anyInt());
|
||||
}
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
@@ -37,6 +38,8 @@ public final class DataUsageUtilsTest {
|
||||
|
||||
@Mock
|
||||
private ConnectivityManager mManager;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
private Context mContext;
|
||||
|
||||
@Before
|
||||
@@ -45,6 +48,7 @@ public final class DataUsageUtilsTest {
|
||||
ShadowApplication shadowContext = ShadowApplication.getInstance();
|
||||
mContext = shadowContext.getApplicationContext();
|
||||
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
|
||||
shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -60,4 +64,18 @@ public final class DataUsageUtilsTest {
|
||||
boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
|
||||
assertThat(hasMobileData).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasSim_simStateReady() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
|
||||
boolean hasSim = DataUsageUtils.hasSim(mContext);
|
||||
assertThat(hasSim).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasSim_simStateMissing() {
|
||||
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
|
||||
boolean hasSim = DataUsageUtils.hasSim(mContext);
|
||||
assertThat(hasSim).isFalse();
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.android.settings.testutils.shadow;
|
||||
|
||||
import android.content.Context;
|
||||
import android.telephony.SubscriptionManager;
|
||||
|
||||
import com.android.settings.datausage.DataUsageUtils;
|
||||
import org.robolectric.annotation.Implementation;
|
||||
@@ -11,6 +12,8 @@ public class ShadowDataUsageUtils {
|
||||
|
||||
public static boolean IS_MOBILE_DATA_SUPPORTED = true;
|
||||
public static boolean IS_WIFI_SUPPORTED = true;
|
||||
public static boolean HAS_SIM = true;
|
||||
public static int DEFAULT_SUBSCRIPTION_ID = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
|
||||
@Implementation
|
||||
public static boolean hasMobileData(Context context) {
|
||||
@@ -21,4 +24,17 @@ public class ShadowDataUsageUtils {
|
||||
public static boolean hasWifiRadio(Context context) {
|
||||
return IS_WIFI_SUPPORTED;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public static int getDefaultSubscriptionId(Context context) {
|
||||
return DEFAULT_SUBSCRIPTION_ID;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public static boolean hasSim(Context context) {
|
||||
return HAS_SIM;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
public static boolean hasEthernet(Context context) { return false; }
|
||||
}
|
||||
|
Reference in New Issue
Block a user