blob: 15752e1de7b8091ef31006d5fe2e411eb313e72e [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;
5
Jason Monk33f8ae72015-05-08 10:45:15 -04006import org.mockito.Mockito;
7
Jason Monkf13b4b32014-11-07 16:39:34 -05008public class NetworkControllerDataTest extends NetworkControllerBaseTest {
9
10 public void test3gDataIcon() {
11 setupDefaultSignal();
12
13 verifyDataIndicators(TelephonyIcons.DATA_3G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040014 TelephonyIcons.QS_DATA_3G);
Jason Monkf13b4b32014-11-07 16:39:34 -050015 }
16
17 public void testRoamingDataIcon() {
18 setupDefaultSignal();
19 setGsmRoaming(true);
20
21 verifyLastMobileDataIndicators(true,
22 TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[1][DEFAULT_LEVEL],
23 TelephonyIcons.ROAMING_ICON);
24 verifyLastQsMobileDataIndicators(true,
25 TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[1][DEFAULT_LEVEL],
Jason Monk33f8ae72015-05-08 10:45:15 -040026 TelephonyIcons.QS_DATA_R, false, false);
Jason Monkf13b4b32014-11-07 16:39:34 -050027 }
28
29 public void test2gDataIcon() {
30 setupDefaultSignal();
31 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
32 TelephonyManager.NETWORK_TYPE_GSM);
33
34 verifyDataIndicators(TelephonyIcons.DATA_G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040035 TelephonyIcons.QS_DATA_G);
Jason Monkf13b4b32014-11-07 16:39:34 -050036 }
37
38 public void testCdmaDataIcon() {
39 setupDefaultSignal();
40 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
41 TelephonyManager.NETWORK_TYPE_CDMA);
42
43 verifyDataIndicators(TelephonyIcons.DATA_1X[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040044 TelephonyIcons.QS_DATA_1X);
Jason Monkf13b4b32014-11-07 16:39:34 -050045 }
46
47 public void testEdgeDataIcon() {
48 setupDefaultSignal();
49 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
50 TelephonyManager.NETWORK_TYPE_EDGE);
51
52 verifyDataIndicators(TelephonyIcons.DATA_E[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040053 TelephonyIcons.QS_DATA_E);
Jason Monkf13b4b32014-11-07 16:39:34 -050054 }
55
56 public void testLteDataIcon() {
57 setupDefaultSignal();
58 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
59 TelephonyManager.NETWORK_TYPE_LTE);
60
Jason Monkf13b4b32014-11-07 16:39:34 -050061 verifyDataIndicators(TelephonyIcons.DATA_LTE[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040062 TelephonyIcons.QS_DATA_LTE);
Jason Monkf13b4b32014-11-07 16:39:34 -050063 }
64
65 public void testHspaDataIcon() {
66 setupDefaultSignal();
67 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
68 TelephonyManager.NETWORK_TYPE_HSPA);
69
Jason Monkf13b4b32014-11-07 16:39:34 -050070 verifyDataIndicators(TelephonyIcons.DATA_H[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040071 TelephonyIcons.QS_DATA_H);
Jason Monkf13b4b32014-11-07 16:39:34 -050072 }
73
Jason Monk3aaabd72014-12-12 11:11:44 -050074 public void test4gDataIcon() {
75 // Switch to showing 4g icon and re-initialize the NetworkController.
76 mConfig.show4gForLte = true;
77 mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm,
Jason Monk07b75fe2015-05-14 16:47:03 -040078 mConfig, Looper.getMainLooper(), mCallbackHandler,
79 Mockito.mock(AccessPointControllerImpl.class),
Jason Monk3aaabd72014-12-12 11:11:44 -050080 Mockito.mock(MobileDataControllerImpl.class));
81 setupNetworkController();
82
83 setupDefaultSignal();
84 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
85 TelephonyManager.NETWORK_TYPE_LTE);
86
87 verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -040088 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -050089 }
90
91 public void test4gDataIconConfigChange() {
92 setupDefaultSignal();
93 updateDataConnectionState(TelephonyManager.DATA_CONNECTED,
94 TelephonyManager.NETWORK_TYPE_LTE);
95
96 // Switch to showing 4g icon and re-initialize the NetworkController.
97 mConfig.show4gForLte = true;
98 // Can't send the broadcast as that would actually read the config from
99 // the context. Instead we'll just poke at a function that does all of
100 // the after work.
101 mNetworkController.handleConfigurationChanged();
102
103 verifyDataIndicators(TelephonyIcons.DATA_4G[1][0 /* No direction */],
Jason Monk33f8ae72015-05-08 10:45:15 -0400104 TelephonyIcons.QS_DATA_4G);
Jason Monk3aaabd72014-12-12 11:11:44 -0500105 }
106
Jason Monkf13b4b32014-11-07 16:39:34 -0500107 public void testDataActivity() {
108 setupDefaultSignal();
109
110 testDataActivity(TelephonyManager.DATA_ACTIVITY_NONE, false, false);
111 testDataActivity(TelephonyManager.DATA_ACTIVITY_IN, true, false);
112 testDataActivity(TelephonyManager.DATA_ACTIVITY_OUT, false, true);
113 testDataActivity(TelephonyManager.DATA_ACTIVITY_INOUT, true, true);
114 }
115
116 private void testDataActivity(int direction, boolean in, boolean out) {
117 updateDataActivity(direction);
118
119 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, DEFAULT_ICON);
120 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH,
Jason Monkb5746272014-11-12 16:50:31 -0500121 DEFAULT_QS_ICON, in, out);
Jason Monkf13b4b32014-11-07 16:39:34 -0500122
123 }
124
125 private void verifyDataIndicators(int dataIcon, int qsDataIcon) {
126 verifyLastMobileDataIndicators(true, DEFAULT_SIGNAL_STRENGTH, dataIcon);
127 verifyLastQsMobileDataIndicators(true, DEFAULT_QS_SIGNAL_STRENGTH, qsDataIcon, false,
Jason Monkb5746272014-11-12 16:50:31 -0500128 false);
Jason Monkf13b4b32014-11-07 16:39:34 -0500129 }
130
131}