1f13b4b39f266e43239e40e3bf7d6997600555068Jason Monkpackage com.android.systemui.statusbar.policy; 2f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 33aaabd71242bf8aedb8edb87565943460a79226dJason Monkimport org.mockito.Mockito; 43aaabd71242bf8aedb8edb87565943460a79226dJason Monk 5f13b4b39f266e43239e40e3bf7d6997600555068Jason Monkimport android.telephony.TelephonyManager; 6f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 7f13b4b39f266e43239e40e3bf7d6997600555068Jason Monkpublic class NetworkControllerDataTest extends NetworkControllerBaseTest { 8f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 9f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void test3gDataIcon() { 10f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 11f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 12f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_3G[1][0 /* No direction */], 13f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_3G[1]); 14f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 15f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 16f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testRoamingDataIcon() { 17f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 18f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setGsmRoaming(true); 19f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 20f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastMobileDataIndicators(true, 21f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[1][DEFAULT_LEVEL], 22f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.ROAMING_ICON); 23f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastQsMobileDataIndicators(true, 24f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[1][DEFAULT_LEVEL], 25b574627ebc383d35cf8212ee241b191b26518a0dJason Monk TelephonyIcons.QS_DATA_R[1], false, false); 26f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 27f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 28f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void test2gDataIcon() { 29f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 30f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 31f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyManager.NETWORK_TYPE_GSM); 32f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 33f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_G[1][0 /* No direction */], 34f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_G[1]); 35f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 36f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 37f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testCdmaDataIcon() { 38f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 39f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 40f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyManager.NETWORK_TYPE_CDMA); 41f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 42f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_1X[1][0 /* No direction */], 43f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_1X[1]); 44f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 45f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 46f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testEdgeDataIcon() { 47f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 48f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 49f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyManager.NETWORK_TYPE_EDGE); 50f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 51f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_E[1][0 /* No direction */], 52f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_E[1]); 53f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 54f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 55f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testLteDataIcon() { 56f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 57f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 58f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyManager.NETWORK_TYPE_LTE); 59f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 60f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_LTE[1][0 /* No direction */], 61f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_LTE[1]); 62f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 63f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 64f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testHspaDataIcon() { 65f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 66f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 67f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyManager.NETWORK_TYPE_HSPA); 68f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 69f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyDataIndicators(TelephonyIcons.DATA_H[1][0 /* No direction */], 70f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk TelephonyIcons.QS_DATA_H[1]); 71f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 72f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 733aaabd71242bf8aedb8edb87565943460a79226dJason Monk public void test4gDataIcon() { 743aaabd71242bf8aedb8edb87565943460a79226dJason Monk // Switch to showing 4g icon and re-initialize the NetworkController. 753aaabd71242bf8aedb8edb87565943460a79226dJason Monk mConfig.show4gForLte = true; 763aaabd71242bf8aedb8edb87565943460a79226dJason Monk mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, 773aaabd71242bf8aedb8edb87565943460a79226dJason Monk mConfig, Mockito.mock(AccessPointControllerImpl.class), 783aaabd71242bf8aedb8edb87565943460a79226dJason Monk Mockito.mock(MobileDataControllerImpl.class)); 793aaabd71242bf8aedb8edb87565943460a79226dJason Monk setupNetworkController(); 803aaabd71242bf8aedb8edb87565943460a79226dJason Monk 813aaabd71242bf8aedb8edb87565943460a79226dJason Monk setupDefaultSignal(); 823aaabd71242bf8aedb8edb87565943460a79226dJason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 833aaabd71242bf8aedb8edb87565943460a79226dJason Monk TelephonyManager.NETWORK_TYPE_LTE); 843aaabd71242bf8aedb8edb87565943460a79226dJason Monk 853aaabd71242bf8aedb8edb87565943460a79226dJason Monk verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */], 863aaabd71242bf8aedb8edb87565943460a79226dJason Monk TelephonyIcons.QS_DATA_4G[1]); 873aaabd71242bf8aedb8edb87565943460a79226dJason Monk } 883aaabd71242bf8aedb8edb87565943460a79226dJason Monk 893aaabd71242bf8aedb8edb87565943460a79226dJason Monk public void test4gDataIconConfigChange() { 903aaabd71242bf8aedb8edb87565943460a79226dJason Monk setupDefaultSignal(); 913aaabd71242bf8aedb8edb87565943460a79226dJason Monk updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 923aaabd71242bf8aedb8edb87565943460a79226dJason Monk TelephonyManager.NETWORK_TYPE_LTE); 933aaabd71242bf8aedb8edb87565943460a79226dJason Monk 943aaabd71242bf8aedb8edb87565943460a79226dJason Monk // Switch to showing 4g icon and re-initialize the NetworkController. 953aaabd71242bf8aedb8edb87565943460a79226dJason Monk mConfig.show4gForLte = true; 963aaabd71242bf8aedb8edb87565943460a79226dJason Monk // Can't send the broadcast as that would actually read the config from 973aaabd71242bf8aedb8edb87565943460a79226dJason Monk // the context. Instead we'll just poke at a function that does all of 983aaabd71242bf8aedb8edb87565943460a79226dJason Monk // the after work. 993aaabd71242bf8aedb8edb87565943460a79226dJason Monk mNetworkController.handleConfigurationChanged(); 1003aaabd71242bf8aedb8edb87565943460a79226dJason Monk 1013aaabd71242bf8aedb8edb87565943460a79226dJason Monk verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */], 1023aaabd71242bf8aedb8edb87565943460a79226dJason Monk TelephonyIcons.QS_DATA_4G[1]); 1033aaabd71242bf8aedb8edb87565943460a79226dJason Monk } 1043aaabd71242bf8aedb8edb87565943460a79226dJason Monk 105f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk public void testDataActivity() { 106f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk setupDefaultSignal(); 107f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 108f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk testDataActivity(TelephonyManager.DATA_ACTIVITY_NONE, false, false); 109f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk testDataActivity(TelephonyManager.DATA_ACTIVITY_IN, true, false); 110f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk testDataActivity(TelephonyManager.DATA_ACTIVITY_OUT, false, true); 111f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk testDataActivity(TelephonyManager.DATA_ACTIVITY_INOUT, true, true); 112f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 113f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 114f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk private void testDataActivity(int direction, boolean in, boolean out) { 115f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk updateDataActivity(direction); 116f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 117f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON); 118f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, 119b574627ebc383d35cf8212ee241b191b26518a0dJason Monk DEFAULT_QS_ICON, in, out); 120f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 121f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 122f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 123f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk private void verifyDataIndicators(int dataIcon, int qsDataIcon) { 124f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, dataIcon); 125f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, qsDataIcon, false, 126b574627ebc383d35cf8212ee241b191b26518a0dJason Monk false); 127f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk } 128f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk 129f13b4b39f266e43239e40e3bf7d6997600555068Jason Monk} 130