blob: dfe00f95fe4d06ecf7bcec79a0a2829bf37b9844 [file] [log] [blame]
Jason Monkf13b4b32014-11-07 16:39:34 -05001package com.android.systemui.statusbar.policy;
2
Jason Monk0288de02017-02-23 14:48:05 -05003import static org.mockito.Matchers.anyInt;
Jason Monk9c7844c2017-01-18 15:21:53 -05004import static org.mockito.Mockito.mock;
Jason Monk0288de02017-02-23 14:48:05 -05005import static org.mockito.Mockito.when;
Jason Monk9c7844c2017-01-18 15:21:53 -05006
Jason Monkfd57ea72016-04-29 13:37:58 -04007import android.net.NetworkCapabilities;
Jason Monk07b75fe2015-05-14 16:47:03 -04008import android.os.Looper;
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -04009import android.support.test.runner.AndroidJUnit4;
Jason Monkf13b4b32014-11-07 16:39:34 -050010import android.telephony.TelephonyManager;
Jason Monke427cb82015-07-28 09:18:08 -040011import android.test.suitebuilder.annotation.SmallTest;
Jason Monk0288de02017-02-23 14:48:05 -050012
Jason Monkf668d7c2016-01-14 10:38:41 -050013import com.android.settingslib.net.DataUsageController;
Jason Monk0288de02017-02-23 14:48:05 -050014
Jason Monk28cc1662017-03-02 10:57:36 -050015import org.junit.Ignore;
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040016import org.junit.Test;
17import org.junit.runner.RunWith;
Jason Monk33f8ae72015-05-08 10:45:15 -040018
Jason Monke427cb82015-07-28 09:18:08 -040019@SmallTest
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040020@RunWith(AndroidJUnit4.class)
Jason Monkf13b4b32014-11-07 16:39:34 -050021public class NetworkControllerDataTest extends NetworkControllerBaseTest {
22
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040023 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050024 public void test3gDataIcon() {
25 setupDefaultSignal();
26
Jason Monk48edc0c2017-04-10 15:01:27 -040027 verifyDataIndicators(TelephonyIcons.ICON_3G,
Jason Monk33f8ae72015-05-08 10:45:15 -040028 TelephonyIcons.QS_DATA_3G);
Jason Monkf13b4b32014-11-07 16:39:34 -050029 }
30
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040031 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050032 public void test2gDataIcon() {
33 setupDefaultSignal();
34 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
35 TelephonyManager.NETWORK_TYPE_GSM);
36
Jason Monk48edc0c2017-04-10 15:01:27 -040037 verifyDataIndicators(TelephonyIcons.ICON_G,
Jason Monk33f8ae72015-05-08 10:45:15 -040038 TelephonyIcons.QS_DATA_G);
Jason Monkf13b4b32014-11-07 16:39:34 -050039 }
40
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040041 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050042 public void testCdmaDataIcon() {
43 setupDefaultSignal();
44 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
45 TelephonyManager.NETWORK_TYPE_CDMA);
46
Jason Monk48edc0c2017-04-10 15:01:27 -040047 verifyDataIndicators(TelephonyIcons.ICON_1X,
Jason Monk33f8ae72015-05-08 10:45:15 -040048 TelephonyIcons.QS_DATA_1X);
Jason Monkf13b4b32014-11-07 16:39:34 -050049 }
50
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040051 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050052 public void testEdgeDataIcon() {
53 setupDefaultSignal();
54 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
55 TelephonyManager.NETWORK_TYPE_EDGE);
56
Jason Monk48edc0c2017-04-10 15:01:27 -040057 verifyDataIndicators(TelephonyIcons.ICON_E,
Jason Monk33f8ae72015-05-08 10:45:15 -040058 TelephonyIcons.QS_DATA_E);
Jason Monkf13b4b32014-11-07 16:39:34 -050059 }
60
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040061 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050062 public void testLteDataIcon() {
63 setupDefaultSignal();
64 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
65 TelephonyManager.NETWORK_TYPE_LTE);
66
Jason Monk48edc0c2017-04-10 15:01:27 -040067 verifyDataIndicators(TelephonyIcons.ICON_LTE,
Jason Monk33f8ae72015-05-08 10:45:15 -040068 TelephonyIcons.QS_DATA_LTE);
Jason Monkf13b4b32014-11-07 16:39:34 -050069 }
70
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040071 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -050072 public void testHspaDataIcon() {
73 setupDefaultSignal();
74 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
75 TelephonyManager.NETWORK_TYPE_HSPA);
76
Jason Monk48edc0c2017-04-10 15:01:27 -040077 verifyDataIndicators(TelephonyIcons.ICON_H,
Jason Monk33f8ae72015-05-08 10:45:15 -040078 TelephonyIcons.QS_DATA_H);
Jason Monkf13b4b32014-11-07 16:39:34 -050079 }
80
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040081 @Test
Jason Monk7150d7f2015-07-09 10:14:12 -040082 public void testWfcNoDataIcon() {
83 setupDefaultSignal();
84 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
85 TelephonyManager.NETWORK_TYPE_IWLAN);
86
87 verifyDataIndicators(0, 0);
88 }
89
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -040090 @Test
Jason Monk3aaabd72014-12-12 11:11:44 -050091 public void test4gDataIcon() {
92 // Switch to showing 4g icon and re-initialize the NetworkController.
93 mConfig.show4gForLte = true;
Sundeep Ghumand57f3242017-01-13 15:31:48 -080094 mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager,
95 mMockTm, mMockWm, mMockSm,
Jason Monk07b75fe2015-05-14 16:47:03 -040096 mConfig, Looper.getMainLooper(), mCallbackHandler,
Jason Monk9c7844c2017-01-18 15:21:53 -050097 mock(AccessPointControllerImpl.class),
98 mock(DataUsageController.class), mMockSubDefaults,
99 mock(DeviceProvisionedController.class));
Jason Monk3aaabd72014-12-12 11:11:44 -0500100 setupNetworkController();
101
102 setupDefaultSignal();
103 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
104 TelephonyManager.NETWORK_TYPE_LTE);
105
Jason Monk48edc0c2017-04-10 15:01:27 -0400106 verifyDataIndicators(TelephonyIcons.ICON_4G,
Jason Monk33f8ae72015-05-08 10:45:15 -0400107 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -0500108 }
109
Jason Monk28cc1662017-03-02 10:57:36 -0500110 @Ignore("Flaky")
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -0400111 @Test
Jason Monkfd57ea72016-04-29 13:37:58 -0400112 public void testDataDisabledIcon() {
113 setupNetworkController();
Jason Monk0288de02017-02-23 14:48:05 -0500114 when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
Jason Monkfd57ea72016-04-29 13:37:58 -0400115 setupDefaultSignal();
116 updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
117 setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
118
Jason Monk7e6c83c2017-04-26 14:35:24 -0400119 verifyDataIndicators(TelephonyIcons.ICON_DATA_DISABLED,
120 TelephonyIcons.QS_ICON_DATA_DISABLED);
Jason Monkfd57ea72016-04-29 13:37:58 -0400121 }
122
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -0400123 @Test
Jason Monkfd57ea72016-04-29 13:37:58 -0400124 public void testDataDisabledIcon_UserNotSetup() {
125 setupNetworkController();
Jason Monk0288de02017-02-23 14:48:05 -0500126 when(mMockTm.getDataEnabled(mSubId)).thenReturn(false);
Jason Monkfd57ea72016-04-29 13:37:58 -0400127 setupDefaultSignal();
128 updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
129 setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
Jason Monk0288de02017-02-23 14:48:05 -0500130 when(mMockProvisionController.isUserSetup(anyInt())).thenReturn(false);
131 mUserCallback.onUserSetupChanged();
Jason Monkfd57ea72016-04-29 13:37:58 -0400132
133 // Don't show the X until the device is setup.
Jason Monk7e6c83c2017-04-26 14:35:24 -0400134 verifyDataIndicators(0, 0);
Jason Monkfd57ea72016-04-29 13:37:58 -0400135 }
136
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -0400137 @Test
Jason Monk3aaabd72014-12-12 11:11:44 -0500138 public void test4gDataIconConfigChange() {
139 setupDefaultSignal();
140 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
141 TelephonyManager.NETWORK_TYPE_LTE);
142
143 // Switch to showing 4g icon and re-initialize the NetworkController.
144 mConfig.show4gForLte = true;
145 // Can't send the broadcast as that would actually read the config from
146 // the context. Instead we'll just poke at a function that does all of
147 // the after work.
148 mNetworkController.handleConfigurationChanged();
149
Jason Monk48edc0c2017-04-10 15:01:27 -0400150 verifyDataIndicators(TelephonyIcons.ICON_4G,
Jason Monk33f8ae72015-05-08 10:45:15 -0400151 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -0500152 }
153
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -0400154 @Test
Jason Monk67b2c162016-01-12 10:24:09 -0500155 public void testDataChangeWithoutConnectionState() {
156 setupDefaultSignal();
157 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
158 TelephonyManager.NETWORK_TYPE_LTE);
159
Jason Monk48edc0c2017-04-10 15:01:27 -0400160 verifyDataIndicators(TelephonyIcons.ICON_LTE,
Jason Monk67b2c162016-01-12 10:24:09 -0500161 TelephonyIcons.QS_DATA_LTE);
162
Jason Monk0288de02017-02-23 14:48:05 -0500163 when(mServiceState.getDataNetworkType())
Jason Monk67b2c162016-01-12 10:24:09 -0500164 .thenReturn(TelephonyManager.NETWORK_TYPE_HSPA);
165 updateServiceState();
Jason Monk48edc0c2017-04-10 15:01:27 -0400166 verifyDataIndicators(TelephonyIcons.ICON_H,
Jason Monk67b2c162016-01-12 10:24:09 -0500167 TelephonyIcons.QS_DATA_H);
168 }
169
Geoffrey Pitsch2c403db2016-08-26 09:09:39 -0400170 @Test
Jason Monkf13b4b32014-11-07 16:39:34 -0500171 public void testDataActivity() {
172 setupDefaultSignal();
173
174 testDataActivity(TelephonyManager.DATA_ACTIVITY_NONE, false, false);
175 testDataActivity(TelephonyManager.DATA_ACTIVITY_IN, true, false);
176 testDataActivity(TelephonyManager.DATA_ACTIVITY_OUT, false, true);
177 testDataActivity(TelephonyManager.DATA_ACTIVITY_INOUT, true, true);
178 }
179
180 private void testDataActivity(int direction, boolean in, boolean out) {
181 updateDataActivity(direction);
182
Jason Monk26ad85a2016-12-08 14:45:42 -0500183 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON, true,
Jason Monk7e6c83c2017-04-26 14:35:24 -0400184 DEFAULT_QS_SIGNAL_STRENGTH, DEFAULT_QS_ICON, in, out);
Jason Monkf13b4b32014-11-07 16:39:34 -0500185 }
186
187 private void verifyDataIndicators(int dataIcon, int qsDataIcon) {
Jason Monk26ad85a2016-12-08 14:45:42 -0500188 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, dataIcon,
Jason Monk7e6c83c2017-04-26 14:35:24 -0400189 true, DEFAULT_QS_SIGNAL_STRENGTH, qsDataIcon, false,
Jason Monkb5746272014-11-12 16:50:31 -0500190 false);
Jason Monkf13b4b32014-11-07 16:39:34 -0500191 }
192
193}