1package com.android.systemui.statusbar.policy; 2 3import android.os.Looper; 4import android.telephony.TelephonyManager; 5import android.test.suitebuilder.annotation.SmallTest; 6 7import org.mockito.Mockito; 8 9@SmallTest 10public class NetworkControllerDataTest extends NetworkControllerBaseTest { 11 12 public void test3gDataIcon() { 13 setupDefaultSignal(); 14 15 verifyDataIndicators(TelephonyIcons.DATA_3G[1][0 /* No direction */], 16 TelephonyIcons.QS_DATA_3G); 17 } 18 19 public void testRoamingDataIcon() { 20 setupDefaultSignal(); 21 setGsmRoaming(true); 22 23 verifyLastMobileDataIndicators(true, 24 TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[1][DEFAULT_LEVEL], 25 TelephonyIcons.ROAMING_ICON); 26 verifyLastQsMobileDataIndicators(true, 27 TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[1][DEFAULT_LEVEL], 28 TelephonyIcons.QS_DATA_R, false, false); 29 } 30 31 public void test2gDataIcon() { 32 setupDefaultSignal(); 33 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 34 TelephonyManager.NETWORK_TYPE_GSM); 35 36 verifyDataIndicators(TelephonyIcons.DATA_G[1][0 /* No direction */], 37 TelephonyIcons.QS_DATA_G); 38 } 39 40 public void testCdmaDataIcon() { 41 setupDefaultSignal(); 42 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 43 TelephonyManager.NETWORK_TYPE_CDMA); 44 45 verifyDataIndicators(TelephonyIcons.DATA_1X[1][0 /* No direction */], 46 TelephonyIcons.QS_DATA_1X); 47 } 48 49 public void testEdgeDataIcon() { 50 setupDefaultSignal(); 51 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 52 TelephonyManager.NETWORK_TYPE_EDGE); 53 54 verifyDataIndicators(TelephonyIcons.DATA_E[1][0 /* No direction */], 55 TelephonyIcons.QS_DATA_E); 56 } 57 58 public void testLteDataIcon() { 59 setupDefaultSignal(); 60 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 61 TelephonyManager.NETWORK_TYPE_LTE); 62 63 verifyDataIndicators(TelephonyIcons.DATA_LTE[1][0 /* No direction */], 64 TelephonyIcons.QS_DATA_LTE); 65 } 66 67 public void testHspaDataIcon() { 68 setupDefaultSignal(); 69 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 70 TelephonyManager.NETWORK_TYPE_HSPA); 71 72 verifyDataIndicators(TelephonyIcons.DATA_H[1][0 /* No direction */], 73 TelephonyIcons.QS_DATA_H); 74 } 75 76 public void testWfcNoDataIcon() { 77 setupDefaultSignal(); 78 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 79 TelephonyManager.NETWORK_TYPE_IWLAN); 80 81 verifyDataIndicators(0, 0); 82 } 83 84 public void test4gDataIcon() { 85 // Switch to showing 4g icon and re-initialize the NetworkController. 86 mConfig.show4gForLte = true; 87 mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, 88 mConfig, Looper.getMainLooper(), mCallbackHandler, 89 Mockito.mock(AccessPointControllerImpl.class), 90 Mockito.mock(MobileDataControllerImpl.class), mMockSubDefaults); 91 setupNetworkController(); 92 93 setupDefaultSignal(); 94 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 95 TelephonyManager.NETWORK_TYPE_LTE); 96 97 verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */], 98 TelephonyIcons.QS_DATA_4G); 99 } 100 101 public void test4gDataIconConfigChange() { 102 setupDefaultSignal(); 103 updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 104 TelephonyManager.NETWORK_TYPE_LTE); 105 106 // Switch to showing 4g icon and re-initialize the NetworkController. 107 mConfig.show4gForLte = true; 108 // Can't send the broadcast as that would actually read the config from 109 // the context. Instead we'll just poke at a function that does all of 110 // the after work. 111 mNetworkController.handleConfigurationChanged(); 112 113 verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */], 114 TelephonyIcons.QS_DATA_4G); 115 } 116 117 public void testDataActivity() { 118 setupDefaultSignal(); 119 120 testDataActivity(TelephonyManager.DATA_ACTIVITY_NONE, false, false); 121 testDataActivity(TelephonyManager.DATA_ACTIVITY_IN, true, false); 122 testDataActivity(TelephonyManager.DATA_ACTIVITY_OUT, false, true); 123 testDataActivity(TelephonyManager.DATA_ACTIVITY_INOUT, true, true); 124 } 125 126 private void testDataActivity(int direction, boolean in, boolean out) { 127 updateDataActivity(direction); 128 129 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON); 130 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, 131 DEFAULT_QS_ICON, in, out); 132 133 } 134 135 private void verifyDataIndicators(int dataIcon, int qsDataIcon) { 136 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, dataIcon); 137 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, qsDataIcon, false, 138 false); 139 } 140 141} 142