blob: 3e0da3c3321168c366a25044eea0f8ba910503a2 [file] [log] [blame]
Jason Monkf13b4b32014-11-07 16:39:34 -05001package com.android.systemui.statusbar.policy;
2
Jason Monk07b75fe2015-05-14 16:47:03 -04003import android.os.Looper;
Jason Monkf13b4b32014-11-07 16:39:34 -05004import android.telephony.TelephonyManager;
Jason Monke427cb82015-07-28 09:18:08 -04005import android.test.suitebuilder.annotation.SmallTest;
Jason Monkf13b4b32014-11-07 16:39:34 -05006
Jason Monk33f8ae72015-05-08 10:45:15 -04007import org.mockito.Mockito;
8
Jason Monke427cb82015-07-28 09:18:08 -04009@SmallTest
Jason Monkf13b4b32014-11-07 16:39:34 -050010public class NetworkControllerDataTest extends NetworkControllerBaseTest {
11
12 public void test3gDataIcon() {
13 setupDefaultSignal();
14
15 verifyDataIndicators(TelephonyIcons.DATA_3G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040016 TelephonyIcons.QS_DATA_3G);
Jason Monkf13b4b32014-11-07 16:39:34 -050017 }
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],
Jason Monk33f8ae72015-05-08 10:45:15 -040028 TelephonyIcons.QS_DATA_R, false, false);
Jason Monkf13b4b32014-11-07 16:39:34 -050029 }
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 */],
Jason Monk33f8ae72015-05-08 10:45:15 -040037 TelephonyIcons.QS_DATA_G);
Jason Monkf13b4b32014-11-07 16:39:34 -050038 }
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 */],
Jason Monk33f8ae72015-05-08 10:45:15 -040046 TelephonyIcons.QS_DATA_1X);
Jason Monkf13b4b32014-11-07 16:39:34 -050047 }
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 */],
Jason Monk33f8ae72015-05-08 10:45:15 -040055 TelephonyIcons.QS_DATA_E);
Jason Monkf13b4b32014-11-07 16:39:34 -050056 }
57
58 public void testLteDataIcon() {
59 setupDefaultSignal();
60 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
61 TelephonyManager.NETWORK_TYPE_LTE);
62
Jason Monkf13b4b32014-11-07 16:39:34 -050063 verifyDataIndicators(TelephonyIcons.DATA_LTE[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040064 TelephonyIcons.QS_DATA_LTE);
Jason Monkf13b4b32014-11-07 16:39:34 -050065 }
66
67 public void testHspaDataIcon() {
68 setupDefaultSignal();
69 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
70 TelephonyManager.NETWORK_TYPE_HSPA);
71
Jason Monkf13b4b32014-11-07 16:39:34 -050072 verifyDataIndicators(TelephonyIcons.DATA_H[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040073 TelephonyIcons.QS_DATA_H);
Jason Monkf13b4b32014-11-07 16:39:34 -050074 }
75
Jason Monk7150d7f2015-07-09 10:14:12 -040076 public void testWfcNoDataIcon() {
77 setupDefaultSignal();
78 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
79 TelephonyManager.NETWORK_TYPE_IWLAN);
80
81 verifyDataIndicators(0, 0);
82 }
83
Jason Monk3aaabd72014-12-12 11:11:44 -050084 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,
Jason Monk07b75fe2015-05-14 16:47:03 -040088 mConfig, Looper.getMainLooper(), mCallbackHandler,
89 Mockito.mock(AccessPointControllerImpl.class),
Jason Monkc6cc6262015-06-11 11:10:15 -040090 Mockito.mock(MobileDataControllerImpl.class), mMockSubDefaults);
Jason Monk3aaabd72014-12-12 11:11:44 -050091 setupNetworkController();
92
93 setupDefaultSignal();
94 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
95 TelephonyManager.NETWORK_TYPE_LTE);
96
97 verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040098 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -050099 }
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 */],
Jason Monk33f8ae72015-05-08 10:45:15 -0400114 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -0500115 }
116
Jason Monk67b2c162016-01-12 10:24:09 -0500117 public void testDataChangeWithoutConnectionState() {
118 setupDefaultSignal();
119 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
120 TelephonyManager.NETWORK_TYPE_LTE);
121
122 verifyDataIndicators(TelephonyIcons.DATA_LTE[1][0 /* No direction */],
123 TelephonyIcons.QS_DATA_LTE);
124
125 Mockito.when(mServiceState.getDataNetworkType())
126 .thenReturn(TelephonyManager.NETWORK_TYPE_HSPA);
127 updateServiceState();
128 verifyDataIndicators(TelephonyIcons.DATA_H[1][0 /* No direction */],
129 TelephonyIcons.QS_DATA_H);
130 }
131
Jason Monkf13b4b32014-11-07 16:39:34 -0500132 public void testDataActivity() {
133 setupDefaultSignal();
134
135 testDataActivity(TelephonyManager.DATA_ACTIVITY_NONE, false, false);
136 testDataActivity(TelephonyManager.DATA_ACTIVITY_IN, true, false);
137 testDataActivity(TelephonyManager.DATA_ACTIVITY_OUT, false, true);
138 testDataActivity(TelephonyManager.DATA_ACTIVITY_INOUT, true, true);
139 }
140
141 private void testDataActivity(int direction, boolean in, boolean out) {
142 updateDataActivity(direction);
143
144 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON);
145 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH,
Jason Monkb5746272014-11-12 16:50:31 -0500146 DEFAULT_QS_ICON, in, out);
Jason Monkf13b4b32014-11-07 16:39:34 -0500147
148 }
149
150 private void verifyDataIndicators(int dataIcon, int qsDataIcon) {
151 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, dataIcon);
152 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, qsDataIcon, false,
Jason Monkb5746272014-11-12 16:50:31 -0500153 false);
Jason Monkf13b4b32014-11-07 16:39:34 -0500154 }
155
156}