Show mobile data icon with carrier Wi-Fi level in Settings
- If carrier Wi-Fi is active then use carrier Wi-Fi level instead of mobile data level. - If carrier Wi-Fi level is less than min-level, use min-level instead. Bug: 222885558 Test: manual test atest -c SubscriptionsPreferenceControllerTest \ WifiPickerTrackerHelperTest Change-Id: I46ba5129357bae47e5e44dcbbb26e6673581fdc8
This commit is contained in:
@@ -30,7 +30,6 @@ import android.content.IntentFilter;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.telephony.AccessNetworkConstants;
|
import android.telephony.AccessNetworkConstants;
|
||||||
import android.telephony.NetworkRegistrationInfo;
|
import android.telephony.NetworkRegistrationInfo;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
@@ -65,6 +64,7 @@ import com.android.settingslib.mobile.MobileMappings;
|
|||||||
import com.android.settingslib.mobile.MobileMappings.Config;
|
import com.android.settingslib.mobile.MobileMappings.Config;
|
||||||
import com.android.settingslib.mobile.TelephonyIcons;
|
import com.android.settingslib.mobile.TelephonyIcons;
|
||||||
import com.android.settingslib.net.SignalStrengthUtil;
|
import com.android.settingslib.net.SignalStrengthUtil;
|
||||||
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -282,16 +282,18 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
|||||||
return Html.fromHtml(result, Html.FROM_HTML_MODE_LEGACY);
|
return Html.fromHtml(result, Html.FROM_HTML_MODE_LEGACY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable getIcon(int subId) {
|
@VisibleForTesting
|
||||||
|
Drawable getIcon(int subId) {
|
||||||
final TelephonyManager tmForSubId = mTelephonyManager.createForSubscriptionId(subId);
|
final TelephonyManager tmForSubId = mTelephonyManager.createForSubscriptionId(subId);
|
||||||
final SignalStrength strength = tmForSubId.getSignalStrength();
|
final SignalStrength strength = tmForSubId.getSignalStrength();
|
||||||
int level = (strength == null) ? 0 : strength.getLevel();
|
int level = (strength == null) ? 0 : strength.getLevel();
|
||||||
int numLevels = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
int numLevels = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
|
||||||
boolean isCarrierNetworkActive = isCarrierNetworkActive();
|
boolean isCarrierNetworkActive = isCarrierNetworkActive();
|
||||||
if (shouldInflateSignalStrength(subId) || isCarrierNetworkActive) {
|
if (isCarrierNetworkActive) {
|
||||||
level = isCarrierNetworkActive
|
level = getCarrierNetworkLevel();
|
||||||
? SignalStrength.NUM_SIGNAL_STRENGTH_BINS
|
numLevels = WifiEntry.WIFI_LEVEL_MAX + 1;
|
||||||
: (level + 1);
|
} else if (shouldInflateSignalStrength(subId)) {
|
||||||
|
level += 1;
|
||||||
numLevels += 1;
|
numLevels += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -484,6 +486,11 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
|||||||
&& mWifiPickerTrackerHelper.isCarrierNetworkActive();
|
&& mWifiPickerTrackerHelper.isCarrierNetworkActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getCarrierNetworkLevel() {
|
||||||
|
if (mWifiPickerTrackerHelper == null) return WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
return mWifiPickerTrackerHelper.getCarrierNetworkLevel();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To inject necessary data from each static api.
|
* To inject necessary data from each static api.
|
||||||
*/
|
*/
|
||||||
|
@@ -155,6 +155,17 @@ public class WifiPickerTrackerHelper implements LifecycleObserver {
|
|||||||
return mergedCarrierEntry.getSsid();
|
return mergedCarrierEntry.getSsid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Return the carrier network level */
|
||||||
|
public int getCarrierNetworkLevel() {
|
||||||
|
final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
|
||||||
|
if (mergedCarrierEntry == null) return WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
|
||||||
|
int level = mergedCarrierEntry.getLevel();
|
||||||
|
// To avoid icons not found with WIFI_LEVEL_UNREACHABLE(-1), use WIFI_LEVEL_MIN(0) instead.
|
||||||
|
if (level < WifiEntry.WIFI_LEVEL_MIN) level = WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setWifiPickerTracker(@NonNull WifiPickerTracker wifiPickerTracker) {
|
void setWifiPickerTracker(@NonNull WifiPickerTracker wifiPickerTracker) {
|
||||||
mWifiPickerTracker = wifiPickerTracker;
|
mWifiPickerTracker = wifiPickerTracker;
|
||||||
|
@@ -20,12 +20,14 @@ import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GOOD;
|
|||||||
import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT;
|
import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT;
|
||||||
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.eq;;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
@@ -55,7 +57,6 @@ import android.text.Html;
|
|||||||
|
|
||||||
import androidx.lifecycle.LifecycleOwner;
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.lifecycle.LifecycleRegistry;
|
import androidx.lifecycle.LifecycleRegistry;
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -78,12 +79,12 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class SubscriptionsPreferenceControllerTest {
|
public class SubscriptionsPreferenceControllerTest {
|
||||||
private static final String KEY = "preference_group";
|
private static final String KEY = "preference_group";
|
||||||
|
private static final int SUB_ID = 1;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@@ -105,6 +106,10 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
private WifiPickerTrackerHelper mWifiPickerTrackerHelper;
|
private WifiPickerTrackerHelper mWifiPickerTrackerHelper;
|
||||||
@Mock
|
@Mock
|
||||||
private WifiManager mWifiManager;
|
private WifiManager mWifiManager;
|
||||||
|
@Mock
|
||||||
|
private SignalStrength mSignalStrength;
|
||||||
|
@Mock
|
||||||
|
private ServiceState mServiceState;
|
||||||
|
|
||||||
private LifecycleRegistry mLifecycleRegistry;
|
private LifecycleRegistry mLifecycleRegistry;
|
||||||
private int mOnChildUpdatedCount;
|
private int mOnChildUpdatedCount;
|
||||||
@@ -116,6 +121,7 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
private NetworkCapabilities mNetworkCapabilities;
|
private NetworkCapabilities mNetworkCapabilities;
|
||||||
private FakeSubscriptionsPreferenceController mController;
|
private FakeSubscriptionsPreferenceController mController;
|
||||||
private static SubsPrefCtrlInjector sInjector;
|
private static SubsPrefCtrlInjector sInjector;
|
||||||
|
private NetworkRegistrationInfo mNetworkRegistrationInfo;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -131,6 +137,12 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
||||||
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||||
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
|
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_GREAT);
|
||||||
|
when(mTelephonyManager.getServiceState()).thenReturn(mServiceState);
|
||||||
|
mNetworkRegistrationInfo = createNetworkRegistrationInfo(false /* dateState */);
|
||||||
|
when(mServiceState.getNetworkRegistrationInfo(anyInt(), anyInt()))
|
||||||
|
.thenReturn(mNetworkRegistrationInfo);
|
||||||
|
when(mTelephonyManager.getSignalStrength()).thenReturn(mSignalStrength);
|
||||||
when(mConnectivityManager.getActiveNetwork()).thenReturn(mActiveNetwork);
|
when(mConnectivityManager.getActiveNetwork()).thenReturn(mActiveNetwork);
|
||||||
when(mConnectivityManager.getNetworkCapabilities(mActiveNetwork))
|
when(mConnectivityManager.getNetworkCapabilities(mActiveNetwork))
|
||||||
.thenReturn(mNetworkCapabilities);
|
.thenReturn(mNetworkCapabilities);
|
||||||
@@ -153,6 +165,7 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
mController = new FakeSubscriptionsPreferenceController(mContext, mLifecycle,
|
mController = new FakeSubscriptionsPreferenceController(mContext, mLifecycle,
|
||||||
mUpdateListener, KEY, 5);
|
mUpdateListener, KEY, 5);
|
||||||
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
|
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
|
||||||
|
mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -284,7 +297,6 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
doReturn(networkType)
|
doReturn(networkType)
|
||||||
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true));
|
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true));
|
||||||
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
|
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
|
||||||
mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
|
|
||||||
|
|
||||||
mController.onResume();
|
mController.onResume();
|
||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
@@ -521,12 +533,7 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
Drawable actualIcon = mPreferenceCategory.getPreference(0).getIcon();
|
Drawable actualIcon = mPreferenceCategory.getPreference(0).getIcon();
|
||||||
ServiceState ss = mock(ServiceState.class);
|
ServiceState ss = mock(ServiceState.class);
|
||||||
NetworkRegistrationInfo regInfo = new NetworkRegistrationInfo.Builder()
|
NetworkRegistrationInfo regInfo = createNetworkRegistrationInfo(true /* dataState */);
|
||||||
.setDomain(NetworkRegistrationInfo.DOMAIN_PS)
|
|
||||||
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
|
|
||||||
.setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
|
|
||||||
.setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
|
|
||||||
.build();
|
|
||||||
doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
|
doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
|
||||||
doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
|
doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
|
||||||
NetworkRegistrationInfo.DOMAIN_PS,
|
NetworkRegistrationInfo.DOMAIN_PS,
|
||||||
@@ -535,10 +542,43 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
assertThat(icon).isEqualTo(actualIcon);
|
assertThat(icon).isEqualTo(actualIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UiThreadTest
|
||||||
|
public void getIcon_carrierNetworkIsNotActive_useMobileDataLevel() {
|
||||||
|
// Fake mobile data active and level is SIGNAL_STRENGTH_GOOD(3)
|
||||||
|
mNetworkRegistrationInfo = createNetworkRegistrationInfo(true /* dateState */);
|
||||||
|
when(mServiceState.getNetworkRegistrationInfo(anyInt(), anyInt()))
|
||||||
|
.thenReturn(mNetworkRegistrationInfo);
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_GOOD);
|
||||||
|
// Fake carrier network not active and level is WIFI_LEVEL_MAX(4)
|
||||||
|
when(mWifiPickerTrackerHelper.isCarrierNetworkActive()).thenReturn(false);
|
||||||
|
when(mWifiPickerTrackerHelper.getCarrierNetworkLevel()).thenReturn(WIFI_LEVEL_MAX);
|
||||||
|
|
||||||
|
mController.getIcon(SUB_ID);
|
||||||
|
|
||||||
|
verify(sInjector).getIcon(any(), eq(SIGNAL_STRENGTH_GOOD), anyInt(), anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UiThreadTest
|
||||||
|
public void getIcon_carrierNetworkIsActive_useCarrierNetworkLevel() {
|
||||||
|
// Fake mobile data not active and level is SIGNAL_STRENGTH_GOOD(3)
|
||||||
|
mNetworkRegistrationInfo = createNetworkRegistrationInfo(false /* dateState */);
|
||||||
|
when(mServiceState.getNetworkRegistrationInfo(anyInt(), anyInt()))
|
||||||
|
.thenReturn(mNetworkRegistrationInfo);
|
||||||
|
when(mSignalStrength.getLevel()).thenReturn(SIGNAL_STRENGTH_GOOD);
|
||||||
|
// Fake carrier network active and level is WIFI_LEVEL_MAX(4)
|
||||||
|
when(mWifiPickerTrackerHelper.isCarrierNetworkActive()).thenReturn(true);
|
||||||
|
when(mWifiPickerTrackerHelper.getCarrierNetworkLevel()).thenReturn(WIFI_LEVEL_MAX);
|
||||||
|
|
||||||
|
mController.getIcon(SUB_ID);
|
||||||
|
|
||||||
|
verify(sInjector).getIcon(any(), eq(WIFI_LEVEL_MAX), anyInt(), anyBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectCarrierNetwork_isDataEnabled_helperConnect() {
|
public void connectCarrierNetwork_isDataEnabled_helperConnect() {
|
||||||
when(mTelephonyManager.isDataEnabled()).thenReturn(true);
|
when(mTelephonyManager.isDataEnabled()).thenReturn(true);
|
||||||
mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
|
|
||||||
|
|
||||||
mController.connectCarrierNetwork();
|
mController.connectCarrierNetwork();
|
||||||
|
|
||||||
@@ -548,7 +588,6 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void connectCarrierNetwork_isNotDataEnabled_helperNeverConnect() {
|
public void connectCarrierNetwork_isNotDataEnabled_helperNeverConnect() {
|
||||||
when(mTelephonyManager.isDataEnabled()).thenReturn(false);
|
when(mTelephonyManager.isDataEnabled()).thenReturn(false);
|
||||||
mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
|
|
||||||
|
|
||||||
mController.connectCarrierNetwork();
|
mController.connectCarrierNetwork();
|
||||||
|
|
||||||
@@ -561,18 +600,22 @@ public class SubscriptionsPreferenceControllerTest {
|
|||||||
doReturn(isActiveCellularNetwork).when(sInjector).isActiveCellularNetwork(mContext);
|
doReturn(isActiveCellularNetwork).when(sInjector).isActiveCellularNetwork(mContext);
|
||||||
doReturn(isDataEnable).when(mTelephonyManagerForSub).isDataEnabled();
|
doReturn(isDataEnable).when(mTelephonyManagerForSub).isDataEnabled();
|
||||||
ServiceState ss = mock(ServiceState.class);
|
ServiceState ss = mock(ServiceState.class);
|
||||||
NetworkRegistrationInfo regInfo = new NetworkRegistrationInfo.Builder()
|
NetworkRegistrationInfo regInfo = createNetworkRegistrationInfo(dataState);
|
||||||
|
doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
|
||||||
|
doReturn(servicestate).when(ss).getState();
|
||||||
|
doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
|
||||||
|
NetworkRegistrationInfo.DOMAIN_PS,
|
||||||
|
AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
|
||||||
|
}
|
||||||
|
|
||||||
|
private NetworkRegistrationInfo createNetworkRegistrationInfo(boolean dataState) {
|
||||||
|
return new NetworkRegistrationInfo.Builder()
|
||||||
.setDomain(NetworkRegistrationInfo.DOMAIN_PS)
|
.setDomain(NetworkRegistrationInfo.DOMAIN_PS)
|
||||||
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
|
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
|
||||||
.setRegistrationState(dataState ? NetworkRegistrationInfo.REGISTRATION_STATE_HOME
|
.setRegistrationState(dataState ? NetworkRegistrationInfo.REGISTRATION_STATE_HOME
|
||||||
: NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
|
: NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
|
||||||
.setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
|
.setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
|
||||||
.build();
|
.build();
|
||||||
doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
|
|
||||||
doReturn(servicestate).when(ss).getState();
|
|
||||||
doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
|
|
||||||
NetworkRegistrationInfo.DOMAIN_PS,
|
|
||||||
AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<SubscriptionInfo> setupMockSubscriptions(int count) {
|
private List<SubscriptionInfo> setupMockSubscriptions(int count) {
|
||||||
|
@@ -16,6 +16,10 @@
|
|||||||
|
|
||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX;
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MIN;
|
||||||
|
import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_UNREACHABLE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
@@ -23,7 +27,6 @@ import static org.mockito.ArgumentMatchers.anyLong;
|
|||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -48,6 +51,7 @@ import org.junit.Rule;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.Spy;
|
||||||
import org.mockito.junit.MockitoJUnit;
|
import org.mockito.junit.MockitoJUnit;
|
||||||
import org.mockito.junit.MockitoRule;
|
import org.mockito.junit.MockitoRule;
|
||||||
|
|
||||||
@@ -58,6 +62,8 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Rule
|
@Rule
|
||||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
|
@Spy
|
||||||
|
Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
@Mock
|
@Mock
|
||||||
public WifiManager mWifiManager;
|
public WifiManager mWifiManager;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -76,11 +82,10 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
final Context context = spy(ApplicationProvider.getApplicationContext());
|
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
|
||||||
when(context.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
|
|
||||||
mCarrierConfig = new PersistableBundle();
|
mCarrierConfig = new PersistableBundle();
|
||||||
when(mCarrierConfigCache.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
|
when(mCarrierConfigCache.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
|
||||||
CarrierConfigCache.setTestInstance(context, mCarrierConfigCache);
|
CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache);
|
||||||
|
|
||||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
when(mFeatureFactory.wifiTrackerLibProvider
|
when(mFeatureFactory.wifiTrackerLibProvider
|
||||||
@@ -88,7 +93,9 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
|
any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
|
||||||
.thenReturn(mWifiPickerTracker);
|
.thenReturn(mWifiPickerTracker);
|
||||||
mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mock(Lifecycle.class),
|
mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mock(Lifecycle.class),
|
||||||
context, null);
|
mContext, null);
|
||||||
|
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
|
||||||
|
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -140,9 +147,6 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setCarrierNetworkEnabled_shouldSetCorrect() {
|
public void setCarrierNetworkEnabled_shouldSetCorrect() {
|
||||||
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
|
||||||
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
|
|
||||||
|
|
||||||
mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
|
mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
|
||||||
|
|
||||||
verify(mMergedCarrierEntry).setEnabled(true);
|
verify(mMergedCarrierEntry).setEnabled(true);
|
||||||
@@ -154,7 +158,6 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setCarrierNetworkEnabled_mergedCarrierEntryIsNull_shouldNotSet() {
|
public void setCarrierNetworkEnabled_mergedCarrierEntryIsNull_shouldNotSet() {
|
||||||
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
|
||||||
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
|
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
|
||||||
|
|
||||||
mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
|
mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
|
||||||
@@ -168,8 +171,6 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectCarrierNetwork_returnTrueAndConnect() {
|
public void connectCarrierNetwork_returnTrueAndConnect() {
|
||||||
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
|
||||||
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
|
|
||||||
when(mMergedCarrierEntry.canConnect()).thenReturn(true);
|
when(mMergedCarrierEntry.canConnect()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isTrue();
|
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isTrue();
|
||||||
@@ -178,7 +179,6 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectCarrierNetwork_mergedCarrierEntryIsNull_returnFalse() {
|
public void connectCarrierNetwork_mergedCarrierEntryIsNull_returnFalse() {
|
||||||
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
|
||||||
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
|
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
|
||||||
|
|
||||||
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isFalse();
|
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isFalse();
|
||||||
@@ -186,11 +186,32 @@ public class WifiPickerTrackerHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectCarrierNetwork_canConnectIsFalse_returnFalseAndNeverConnect() {
|
public void connectCarrierNetwork_canConnectIsFalse_returnFalseAndNeverConnect() {
|
||||||
mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
|
|
||||||
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
|
|
||||||
when(mMergedCarrierEntry.canConnect()).thenReturn(false);
|
when(mMergedCarrierEntry.canConnect()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isFalse();
|
assertThat(mWifiPickerTrackerHelper.connectCarrierNetwork(mConnectCallback)).isFalse();
|
||||||
verify(mMergedCarrierEntry, never()).connect(mConnectCallback);
|
verify(mMergedCarrierEntry, never()).connect(mConnectCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_mergedCarrierEntryIsNull_returnMinLevel() {
|
||||||
|
when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
|
||||||
|
|
||||||
|
assertThat(mWifiPickerTrackerHelper.getCarrierNetworkLevel()).isEqualTo(WIFI_LEVEL_MIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_getUnreachableLevel_returnMinLevel() {
|
||||||
|
when(mMergedCarrierEntry.getLevel()).thenReturn(WIFI_LEVEL_UNREACHABLE);
|
||||||
|
|
||||||
|
assertThat(mWifiPickerTrackerHelper.getCarrierNetworkLevel()).isEqualTo(WIFI_LEVEL_MIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCarrierNetworkLevel_getAvailableLevel_returnSameLevel() {
|
||||||
|
for (int level = WIFI_LEVEL_MIN; level <= WIFI_LEVEL_MAX; level++) {
|
||||||
|
when(mMergedCarrierEntry.getLevel()).thenReturn(level);
|
||||||
|
|
||||||
|
assertThat(mWifiPickerTrackerHelper.getCarrierNetworkLevel()).isEqualTo(level);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user