am ae499d19: Merge "SystemUI Carrier Network Change unit tests" into mnc-dev
* commit 'ae499d19eb70a46f12d6d750c608b893951a118b': SystemUI Carrier Network Change unit tests
This commit is contained in:
@@ -153,7 +153,11 @@ public abstract class SignalController<T extends SignalController.State,
|
||||
return getIcons().mSbDarkIcons[mCurrentState.inetCondition][mCurrentState.level];
|
||||
}
|
||||
} else if (mCurrentState.enabled) {
|
||||
return getIcons().mSbDiscState;
|
||||
if (light) {
|
||||
return getIcons().mSbDiscState;
|
||||
} else {
|
||||
return getIcons().mSbDarkDiscState;
|
||||
}
|
||||
} else {
|
||||
return getIcons().mSbNullState;
|
||||
}
|
||||
|
||||
@@ -234,6 +234,11 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
mPhoneStateListener.onDataActivity(dataActivity);
|
||||
}
|
||||
|
||||
public void setCarrierNetworkChange(boolean enable) {
|
||||
Log.d(TAG, "setCarrierNetworkChange(" + enable + ")");
|
||||
mPhoneStateListener.onCarrierNetworkChange(enable);
|
||||
}
|
||||
|
||||
protected void verifyHasNoSims(boolean hasNoSimsVisible) {
|
||||
ArgumentCaptor<Boolean> hasNoSimsArg = ArgumentCaptor.forClass(Boolean.class);
|
||||
|
||||
@@ -273,19 +278,29 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
protected void verifyLastMobileDataIndicators(boolean visible, int icon, int typeIcon) {
|
||||
ArgumentCaptor<Integer> iconArg = ArgumentCaptor.forClass(Integer.class);
|
||||
verifyLastMobileDataIndicators(visible, icon, icon, typeIcon);
|
||||
}
|
||||
|
||||
protected void verifyLastMobileDataIndicators(boolean visible, int strengthIcon,
|
||||
int darkStrengthIcon, int typeIcon) {
|
||||
ArgumentCaptor<Integer> strengthIconArg = ArgumentCaptor.forClass(Integer.class);
|
||||
ArgumentCaptor<Integer> darkStrengthIconArg = ArgumentCaptor.forClass(Integer.class);
|
||||
ArgumentCaptor<Integer> typeIconArg = ArgumentCaptor.forClass(Integer.class);
|
||||
ArgumentCaptor<Boolean> visibleArg = ArgumentCaptor.forClass(Boolean.class);
|
||||
|
||||
// TODO: Verify all fields.
|
||||
Mockito.verify(mSignalCluster, Mockito.atLeastOnce()).setMobileDataIndicators(
|
||||
visibleArg.capture(), iconArg.capture(), iconArg.capture(), typeIconArg.capture(),
|
||||
visibleArg.capture(), strengthIconArg.capture(), darkStrengthIconArg.capture(),
|
||||
typeIconArg.capture(),
|
||||
ArgumentCaptor.forClass(String.class).capture(),
|
||||
ArgumentCaptor.forClass(String.class).capture(),
|
||||
ArgumentCaptor.forClass(Boolean.class).capture(),
|
||||
ArgumentCaptor.forClass(Integer.class).capture());
|
||||
|
||||
assertEquals("Signal icon in status bar", icon, (int) iconArg.getValue());
|
||||
assertEquals("Signal strength icon in status bar", strengthIcon,
|
||||
(int) strengthIconArg.getValue());
|
||||
assertEquals("Signal strength icon (dark mode) in status bar", darkStrengthIcon,
|
||||
(int) darkStrengthIconArg.getValue());
|
||||
assertEquals("Data icon in status bar", typeIcon, (int) typeIconArg.getValue());
|
||||
assertEquals("Visibility in status bar", visible, (boolean) visibleArg.getValue());
|
||||
}
|
||||
|
||||
@@ -396,4 +396,65 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest {
|
||||
false /* dataOut */);
|
||||
|
||||
}
|
||||
|
||||
public void testCarrierNetworkChange_carrierNetworkChangeWhileConnected() {
|
||||
int strength = SignalStrength.SIGNAL_STRENGTH_GREAT;
|
||||
|
||||
setupDefaultSignal();
|
||||
setLevel(strength);
|
||||
|
||||
// API call is made
|
||||
setCarrierNetworkChange(true /* enabled */);
|
||||
|
||||
// Boolean value is set, but we still have a signal, should be showing normal
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */,
|
||||
DEFAULT_ICON /* typeIcon */);
|
||||
|
||||
// Lose voice but still have data
|
||||
setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */,
|
||||
DEFAULT_ICON /* typeIcon */);
|
||||
|
||||
// Voice but no data
|
||||
setVoiceRegState(ServiceState.STATE_IN_SERVICE);
|
||||
setDataRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */,
|
||||
DEFAULT_ICON /* typeIcon */);
|
||||
}
|
||||
|
||||
public void testCarrierNetworkChange_carrierNetworkChangeWhileDisconnected() {
|
||||
int strength = SignalStrength.SIGNAL_STRENGTH_GREAT;
|
||||
|
||||
setupDefaultSignal();
|
||||
setLevel(strength);
|
||||
|
||||
// Verify baseline
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */,
|
||||
DEFAULT_ICON /* typeIcon */);
|
||||
|
||||
// API call is made and all connectivity lost
|
||||
setCarrierNetworkChange(true /* enabled */);
|
||||
setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||
setDataRegState(ServiceState.STATE_OUT_OF_SERVICE);
|
||||
|
||||
// Out of service and carrier network change is true, show special indicator
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE[0][0] /* strengthIcon */,
|
||||
TelephonyIcons.TELEPHONY_CARRIER_NETWORK_CHANGE_DARK[0][0] /* darkStrengthIcon */,
|
||||
0 /* typeIcon */);
|
||||
|
||||
// Revert back
|
||||
setCarrierNetworkChange(false /* enabled */);
|
||||
setVoiceRegState(ServiceState.STATE_IN_SERVICE);
|
||||
setDataRegState(ServiceState.STATE_IN_SERVICE);
|
||||
|
||||
// Verify back in previous state
|
||||
verifyLastMobileDataIndicators(true /* visible */,
|
||||
TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[1][strength] /* strengthIcon */,
|
||||
DEFAULT_ICON /* typeIcon */);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user