Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 1 | package com.android.systemui.statusbar.policy; |
| 2 | |
| 3 | import android.content.Intent; |
Sundeep Ghuman | 699deaf | 2017-02-13 15:32:13 -0800 | [diff] [blame] | 4 | import android.net.NetworkBadging; |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 5 | import android.net.NetworkCapabilities; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 6 | import android.net.NetworkInfo; |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 7 | import android.net.NetworkKey; |
| 8 | import android.net.RssiCurve; |
| 9 | import android.net.ScoredNetwork; |
| 10 | import android.net.WifiKey; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 11 | import android.net.wifi.WifiInfo; |
| 12 | import android.net.wifi.WifiManager; |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 13 | import android.net.wifi.WifiNetworkScoreCache; |
| 14 | import android.os.Bundle; |
| 15 | import android.provider.Settings; |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 16 | import android.support.test.runner.AndroidJUnit4; |
Jason Monk | e427cb8 | 2015-07-28 09:18:08 -0400 | [diff] [blame] | 17 | import android.test.suitebuilder.annotation.SmallTest; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 18 | |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 19 | import com.android.settingslib.Utils; |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 20 | import com.android.systemui.statusbar.policy.NetworkController.IconState; |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 21 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 22 | import org.junit.Test; |
| 23 | import org.junit.runner.RunWith; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 24 | import org.mockito.ArgumentCaptor; |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 25 | import org.mockito.Matchers; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 26 | import org.mockito.Mockito; |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 27 | import org.mockito.invocation.InvocationOnMock; |
| 28 | import org.mockito.stubbing.Answer; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 29 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 30 | import static junit.framework.Assert.assertEquals; |
| 31 | |
Jason Monk | 26ad85a | 2016-12-08 14:45:42 -0500 | [diff] [blame] | 32 | import static org.mockito.Matchers.any; |
| 33 | import static org.mockito.Matchers.anyBoolean; |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 34 | import static org.mockito.Matchers.anyInt; |
| 35 | import static org.mockito.Mockito.doAnswer; |
| 36 | import static org.mockito.Mockito.mock; |
| 37 | import static org.mockito.Mockito.verify; |
| 38 | import static org.mockito.Mockito.when; |
| 39 | |
| 40 | import java.util.Arrays; |
| 41 | import java.util.ArrayList; |
| 42 | import java.util.List; |
| 43 | import java.util.concurrent.CountDownLatch; |
| 44 | import java.util.concurrent.TimeUnit; |
Jason Monk | 26ad85a | 2016-12-08 14:45:42 -0500 | [diff] [blame] | 45 | |
Jason Monk | e427cb8 | 2015-07-28 09:18:08 -0400 | [diff] [blame] | 46 | @SmallTest |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 47 | @RunWith(AndroidJUnit4.class) |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 48 | public class NetworkControllerWifiTest extends NetworkControllerBaseTest { |
| 49 | // These match the constants in WifiManager and need to be kept up to date. |
| 50 | private static final int MIN_RSSI = -100; |
| 51 | private static final int MAX_RSSI = -55; |
| 52 | |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 53 | private static final int LATCH_TIMEOUT = 2000; |
| 54 | private static final String TEST_SSID = "\"Test SSID\""; |
| 55 | private static final String TEST_BSSID = "00:00:00:00:00:00"; |
| 56 | |
| 57 | private final List<NetworkKey> mRequestedKeys = new ArrayList<>(); |
| 58 | private CountDownLatch mRequestScoresLatch; |
| 59 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 60 | @Test |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 61 | public void testWifiIcon() { |
| 62 | String testSsid = "Test SSID"; |
| 63 | setWifiEnabled(true); |
Jason Monk | 7e6c83c | 2017-04-26 14:35:24 -0400 | [diff] [blame] | 64 | verifyLastWifiIcon(false, WifiIcons.WIFI_NO_NETWORK); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 65 | |
| 66 | setWifiState(true, testSsid); |
| 67 | verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[0][0]); |
| 68 | |
| 69 | for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) { |
| 70 | setWifiLevel(testLevel); |
| 71 | |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 72 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 73 | verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]); |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 74 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, false, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 75 | verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[0][testLevel]); |
| 76 | } |
| 77 | } |
| 78 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 79 | @Test |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 80 | public void testBadgedWifiIcon() throws Exception { |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 81 | // TODO(sghuman): Refactor this setup code when creating a test for the badged QsIcon. |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 82 | int testLevel = 1; |
| 83 | RssiCurve mockBadgeCurve = mock(RssiCurve.class); |
| 84 | Bundle attr = new Bundle(); |
| 85 | attr.putParcelable(ScoredNetwork.ATTRIBUTES_KEY_BADGING_CURVE, mockBadgeCurve); |
| 86 | ScoredNetwork score = |
| 87 | new ScoredNetwork( |
| 88 | new NetworkKey(new WifiKey(TEST_SSID, TEST_BSSID)), |
| 89 | null, |
| 90 | false /* meteredHint */, |
| 91 | attr); |
| 92 | |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 93 | // Must set the Settings value before instantiating the NetworkControllerImpl due to bugs in |
Jason Monk | f06a317 | 2017-04-25 16:30:53 -0400 | [diff] [blame] | 94 | // TestableSettingsProvider. |
| 95 | Settings.Global.putString(mContext.getContentResolver(), |
| 96 | Settings.Global.NETWORK_SCORING_UI_ENABLED, |
| 97 | "1"); |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 98 | super.setUp(); // re-instantiate NetworkControllImpl now that setting has been updated |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 99 | setupNetworkScoreManager(); |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 100 | |
| 101 | // Test Requesting Scores |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 102 | mRequestScoresLatch = new CountDownLatch(1); |
| 103 | setWifiEnabled(true); |
| 104 | setWifiState(true, TEST_SSID, TEST_BSSID); |
| 105 | mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS); |
| 106 | |
Sundeep Ghuman | 699deaf | 2017-02-13 15:32:13 -0800 | [diff] [blame] | 107 | when(mockBadgeCurve.lookupScore(anyInt())).thenReturn((byte) NetworkBadging.BADGING_SD); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 108 | |
| 109 | ArgumentCaptor<WifiNetworkScoreCache> scoreCacheCaptor = |
| 110 | ArgumentCaptor.forClass(WifiNetworkScoreCache.class); |
| 111 | verify(mMockNetworkScoreManager).registerNetworkScoreCache( |
| 112 | anyInt(), |
| 113 | scoreCacheCaptor.capture(), |
| 114 | Matchers.anyInt()); |
| 115 | scoreCacheCaptor.getValue().updateScores(Arrays.asList(score)); |
| 116 | |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 117 | // Test badge is set |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 118 | setWifiLevel(testLevel); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 119 | |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 120 | ArgumentCaptor<IconState> iconArg = ArgumentCaptor.forClass(IconState.class); |
| 121 | Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( |
| 122 | anyBoolean(), iconArg.capture(), any(), anyBoolean(), anyBoolean(), |
Jason Monk | 110e5f6 | 2017-03-31 13:45:12 -0400 | [diff] [blame] | 123 | any(), anyBoolean()); |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 124 | IconState iconState = iconArg.getValue(); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 125 | |
| 126 | assertEquals("Badged Wifi Resource is set", |
| 127 | Utils.WIFI_PIE_FOR_BADGING[testLevel], |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 128 | iconState.icon); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 129 | assertEquals("SD Badge is set", |
Sundeep Ghuman | 699deaf | 2017-02-13 15:32:13 -0800 | [diff] [blame] | 130 | Utils.getWifiBadgeResource(NetworkBadging.BADGING_SD), |
Sundeep Ghuman | e869d83 | 2017-01-25 16:23:43 -0800 | [diff] [blame] | 131 | iconState.iconOverlay); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 132 | } |
| 133 | |
| 134 | private void setupNetworkScoreManager() { |
| 135 | // Capture requested keys and count down latch if present |
| 136 | doAnswer( |
| 137 | new Answer<Boolean>() { |
| 138 | @Override |
| 139 | public Boolean answer(InvocationOnMock input) { |
| 140 | if (mRequestScoresLatch != null) { |
| 141 | mRequestScoresLatch.countDown(); |
| 142 | } |
| 143 | NetworkKey[] keys = (NetworkKey[]) input.getArguments()[0]; |
| 144 | for (NetworkKey key : keys) { |
| 145 | mRequestedKeys.add(key); |
| 146 | } |
| 147 | return true; |
| 148 | } |
| 149 | }).when(mMockNetworkScoreManager).requestScores(Matchers.<NetworkKey[]>any()); |
| 150 | } |
| 151 | |
| 152 | @Test |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 153 | public void testQsWifiIcon() { |
| 154 | String testSsid = "Test SSID"; |
| 155 | |
| 156 | setWifiEnabled(false); |
Jason Monk | d2263cd | 2014-11-10 14:22:56 -0500 | [diff] [blame] | 157 | verifyLastQsWifiIcon(false, false, WifiIcons.QS_WIFI_NO_NETWORK, null); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 158 | |
| 159 | setWifiEnabled(true); |
Jason Monk | d2263cd | 2014-11-10 14:22:56 -0500 | [diff] [blame] | 160 | verifyLastQsWifiIcon(true, false, WifiIcons.QS_WIFI_NO_NETWORK, null); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 161 | |
| 162 | setWifiState(true, testSsid); |
| 163 | for (int testLevel = 0; testLevel < WifiIcons.WIFI_LEVEL_COUNT; testLevel++) { |
| 164 | setWifiLevel(testLevel); |
| 165 | |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 166 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 167 | verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], |
| 168 | testSsid); |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 169 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, false, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 170 | verifyLastQsWifiIcon(true, true, WifiIcons.QS_WIFI_SIGNAL_STRENGTH[0][testLevel], |
| 171 | testSsid); |
| 172 | } |
| 173 | } |
| 174 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 175 | @Test |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 176 | public void testQsDataDirection() { |
| 177 | // Setup normal connection |
| 178 | String testSsid = "Test SSID"; |
| 179 | int testLevel = 2; |
| 180 | setWifiEnabled(true); |
| 181 | setWifiState(true, testSsid); |
| 182 | setWifiLevel(testLevel); |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 183 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 184 | verifyLastQsWifiIcon(true, true, |
| 185 | WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid); |
| 186 | |
Jason Monk | 26ad85a | 2016-12-08 14:45:42 -0500 | [diff] [blame] | 187 | // Set to different activity state first to ensure a callback happens. |
| 188 | setWifiActivity(WifiManager.DATA_ACTIVITY_IN); |
| 189 | |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 190 | setWifiActivity(WifiManager.DATA_ACTIVITY_NONE); |
| 191 | verifyLastQsDataDirection(false, false); |
| 192 | setWifiActivity(WifiManager.DATA_ACTIVITY_IN); |
| 193 | verifyLastQsDataDirection(true, false); |
| 194 | setWifiActivity(WifiManager.DATA_ACTIVITY_OUT); |
| 195 | verifyLastQsDataDirection(false, true); |
| 196 | setWifiActivity(WifiManager.DATA_ACTIVITY_INOUT); |
| 197 | verifyLastQsDataDirection(true, true); |
| 198 | } |
| 199 | |
Geoffrey Pitsch | 2c403db | 2016-08-26 09:09:39 -0400 | [diff] [blame] | 200 | @Test |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 201 | public void testRoamingIconDuringWifi() { |
| 202 | // Setup normal connection |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 203 | String testSsid = "\"Test SSID\""; |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 204 | int testLevel = 2; |
| 205 | setWifiEnabled(true); |
| 206 | setWifiState(true, testSsid); |
| 207 | setWifiLevel(testLevel); |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 208 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 209 | verifyLastWifiIcon(true, WifiIcons.WIFI_SIGNAL_STRENGTH[1][testLevel]); |
| 210 | |
| 211 | setupDefaultSignal(); |
| 212 | setGsmRoaming(true); |
| 213 | // Still be on wifi though. |
Jason Monk | 33f8ae7 | 2015-05-08 10:45:15 -0400 | [diff] [blame] | 214 | setConnectivity(NetworkCapabilities.TRANSPORT_WIFI, true, true); |
Jason Monk | 0f0de13 | 2016-12-19 15:36:13 -0500 | [diff] [blame] | 215 | setConnectivity(NetworkCapabilities.TRANSPORT_CELLULAR, false, false); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 216 | verifyLastMobileDataIndicators(true, |
Jason Monk | 48edc0c | 2017-04-10 15:01:27 -0400 | [diff] [blame] | 217 | DEFAULT_LEVEL, |
Jason Monk | 0f0de13 | 2016-12-19 15:36:13 -0500 | [diff] [blame] | 218 | 0, true); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 219 | } |
| 220 | |
| 221 | protected void setWifiActivity(int activity) { |
| 222 | // TODO: Not this, because this variable probably isn't sticking around. |
Jason Monk | d2263cd | 2014-11-10 14:22:56 -0500 | [diff] [blame] | 223 | mNetworkController.mWifiSignalController.setActivity(activity); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 224 | } |
| 225 | |
| 226 | protected void setWifiLevel(int level) { |
| 227 | float amountPerLevel = (MAX_RSSI - MIN_RSSI) / (WifiIcons.WIFI_LEVEL_COUNT - 1); |
| 228 | int rssi = (int)(MIN_RSSI + level * amountPerLevel); |
| 229 | // Put RSSI in the middle of the range. |
| 230 | rssi += amountPerLevel / 2; |
| 231 | Intent i = new Intent(WifiManager.RSSI_CHANGED_ACTION); |
| 232 | i.putExtra(WifiManager.EXTRA_NEW_RSSI, rssi); |
| 233 | mNetworkController.onReceive(mContext, i); |
| 234 | } |
| 235 | |
| 236 | protected void setWifiEnabled(boolean enabled) { |
| 237 | Intent i = new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION); |
| 238 | i.putExtra(WifiManager.EXTRA_WIFI_STATE, |
| 239 | enabled ? WifiManager.WIFI_STATE_ENABLED : WifiManager.WIFI_STATE_DISABLED); |
| 240 | mNetworkController.onReceive(mContext, i); |
| 241 | } |
| 242 | |
| 243 | protected void setWifiState(boolean connected, String ssid) { |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 244 | setWifiState(connected, ssid, null); |
| 245 | } |
| 246 | |
| 247 | protected void setWifiState(boolean connected, String ssid, String bssid) { |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 248 | Intent i = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); |
| 249 | NetworkInfo networkInfo = Mockito.mock(NetworkInfo.class); |
| 250 | Mockito.when(networkInfo.isConnected()).thenReturn(connected); |
| 251 | |
| 252 | WifiInfo wifiInfo = Mockito.mock(WifiInfo.class); |
| 253 | Mockito.when(wifiInfo.getSSID()).thenReturn(ssid); |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 254 | if (bssid != null) { |
| 255 | Mockito.when(wifiInfo.getBSSID()).thenReturn(bssid); |
| 256 | } |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 257 | |
| 258 | i.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); |
| 259 | i.putExtra(WifiManager.EXTRA_WIFI_INFO, wifiInfo); |
| 260 | mNetworkController.onReceive(mContext, i); |
| 261 | } |
| 262 | |
| 263 | protected void verifyLastQsDataDirection(boolean in, boolean out) { |
| 264 | ArgumentCaptor<Boolean> inArg = ArgumentCaptor.forClass(Boolean.class); |
| 265 | ArgumentCaptor<Boolean> outArg = ArgumentCaptor.forClass(Boolean.class); |
| 266 | |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 267 | Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( |
Jason Monk | 110e5f6 | 2017-03-31 13:45:12 -0400 | [diff] [blame] | 268 | anyBoolean(), any(), any(), inArg.capture(), outArg.capture(), any(), anyBoolean()); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 269 | assertEquals("WiFi data in, in quick settings", in, (boolean) inArg.getValue()); |
| 270 | assertEquals("WiFi data out, in quick settings", out, (boolean) outArg.getValue()); |
| 271 | } |
| 272 | |
| 273 | protected void verifyLastQsWifiIcon(boolean enabled, boolean connected, int icon, |
| 274 | String description) { |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 275 | ArgumentCaptor<IconState> iconArg = ArgumentCaptor.forClass(IconState.class); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 276 | ArgumentCaptor<Boolean> enabledArg = ArgumentCaptor.forClass(Boolean.class); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 277 | ArgumentCaptor<String> descArg = ArgumentCaptor.forClass(String.class); |
| 278 | |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 279 | Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 280 | enabledArg.capture(), any(), iconArg.capture(), anyBoolean(), |
Jason Monk | 110e5f6 | 2017-03-31 13:45:12 -0400 | [diff] [blame] | 281 | anyBoolean(), descArg.capture(), anyBoolean()); |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 282 | IconState iconState = iconArg.getValue(); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 283 | assertEquals("WiFi enabled, in quick settings", enabled, (boolean) enabledArg.getValue()); |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 284 | assertEquals("WiFi connected, in quick settings", connected, iconState.visible); |
| 285 | assertEquals("WiFi signal, in quick settings", icon, iconState.icon); |
| 286 | assertEquals("WiFI desc (ssid), in quick settings", description, descArg.getValue()); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 287 | } |
| 288 | |
| 289 | protected void verifyLastWifiIcon(boolean visible, int icon) { |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 290 | ArgumentCaptor<IconState> iconArg = ArgumentCaptor.forClass(IconState.class); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 291 | |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 292 | Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( |
Sundeep Ghuman | d57f324 | 2017-01-13 15:31:48 -0800 | [diff] [blame] | 293 | anyBoolean(), iconArg.capture(), any(), anyBoolean(), anyBoolean(), |
Jason Monk | 110e5f6 | 2017-03-31 13:45:12 -0400 | [diff] [blame] | 294 | any(), anyBoolean()); |
Jason Monk | 07b75fe | 2015-05-14 16:47:03 -0400 | [diff] [blame] | 295 | IconState iconState = iconArg.getValue(); |
| 296 | assertEquals("WiFi visible, in status bar", visible, iconState.visible); |
| 297 | assertEquals("WiFi signal, in status bar", icon, iconState.icon); |
Jason Monk | f13b4b3 | 2014-11-07 16:39:34 -0500 | [diff] [blame] | 298 | } |
| 299 | } |