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