OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.net; | 5 package org.chromium.net; |
6 | 6 |
7 import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; | 7 import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; |
8 import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; | 8 import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; |
9 import static android.net.NetworkCapabilities.TRANSPORT_VPN; | 9 import static android.net.NetworkCapabilities.TRANSPORT_VPN; |
10 import static android.net.NetworkCapabilities.TRANSPORT_WIFI; | 10 import static android.net.NetworkCapabilities.TRANSPORT_WIFI; |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 private int mNetworkSubtype; | 142 private int mNetworkSubtype; |
143 private NetworkCallback mLastRegisteredNetworkCallback; | 143 private NetworkCallback mLastRegisteredNetworkCallback; |
144 | 144 |
145 @Override | 145 @Override |
146 public NetworkState getNetworkState() { | 146 public NetworkState getNetworkState() { |
147 return new NetworkState(mActiveNetworkExists, mNetworkType, mNetwork
Subtype); | 147 return new NetworkState(mActiveNetworkExists, mNetworkType, mNetwork
Subtype); |
148 } | 148 } |
149 | 149 |
150 @Override | 150 @Override |
151 protected NetworkCapabilities getNetworkCapabilities(Network network) { | 151 protected NetworkCapabilities getNetworkCapabilities(Network network) { |
152 int netId = NetworkChangeNotifierAutoDetect.networkToNetId(network); | 152 long netId = NetworkChangeNotifierAutoDetect.networkToNetId(network)
; |
153 for (MockNetwork mockNetwork : mMockNetworks) { | 153 for (MockNetwork mockNetwork : mMockNetworks) { |
154 if (netId == mockNetwork.mNetId) { | 154 if (netId == mockNetwork.mNetId) { |
155 return mockNetwork.getCapabilities(); | 155 return mockNetwork.getCapabilities(); |
156 } | 156 } |
157 } | 157 } |
158 return null; | 158 return null; |
159 } | 159 } |
160 | 160 |
161 @Override | 161 @Override |
162 protected boolean vpnAccessible(Network network) { | 162 protected boolean vpnAccessible(Network network) { |
163 int netId = NetworkChangeNotifierAutoDetect.networkToNetId(network); | 163 long netId = NetworkChangeNotifierAutoDetect.networkToNetId(network)
; |
164 for (MockNetwork mockNetwork : mMockNetworks) { | 164 for (MockNetwork mockNetwork : mMockNetworks) { |
165 if (netId == mockNetwork.mNetId) { | 165 if (netId == mockNetwork.mNetId) { |
166 return mockNetwork.mVpnAccessible; | 166 return mockNetwork.mVpnAccessible; |
167 } | 167 } |
168 } | 168 } |
169 return false; | 169 return false; |
170 } | 170 } |
171 | 171 |
172 @Override | 172 @Override |
173 protected Network[] getAllNetworksUnfiltered() { | 173 protected Network[] getAllNetworksUnfiltered() { |
174 Network[] networks = new Network[mMockNetworks.size()]; | 174 Network[] networks = new Network[mMockNetworks.size()]; |
175 for (int i = 0; i < networks.length; i++) { | 175 for (int i = 0; i < networks.length; i++) { |
176 networks[i] = netIdToNetwork(mMockNetworks.get(i).mNetId); | 176 networks[i] = netIdToNetwork(mMockNetworks.get(i).mNetId); |
177 } | 177 } |
178 return networks; | 178 return networks; |
179 } | 179 } |
180 | 180 |
181 // Dummy implementations to avoid NullPointerExceptions in default imple
mentations: | 181 // Dummy implementations to avoid NullPointerExceptions in default imple
mentations: |
182 | 182 |
183 @Override | 183 @Override |
184 public int getDefaultNetId() { | 184 public long getDefaultNetId() { |
185 return NetId.INVALID; | 185 return NetId.INVALID; |
186 } | 186 } |
187 | 187 |
188 @Override | 188 @Override |
189 public NetworkState getNetworkState(Network network) { | 189 public NetworkState getNetworkState(Network network) { |
190 return new NetworkState(false, -1, -1); | 190 return new NetworkState(false, -1, -1); |
191 } | 191 } |
192 | 192 |
193 @Override | 193 @Override |
194 public void unregisterNetworkCallback(NetworkCallback networkCallback) {
} | 194 public void unregisterNetworkCallback(NetworkCallback networkCallback) {
} |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 | 271 |
272 // Types of network changes. Each is associated with a NetworkChangeNotifier
AutoDetect.Observer | 272 // Types of network changes. Each is associated with a NetworkChangeNotifier
AutoDetect.Observer |
273 // callback, and NONE is provided to indicate no callback observed. | 273 // callback, and NONE is provided to indicate no callback observed. |
274 private static enum ChangeType { NONE, CONNECT, SOON_TO_DISCONNECT, DISCONNE
CT, PURGE_LIST } | 274 private static enum ChangeType { NONE, CONNECT, SOON_TO_DISCONNECT, DISCONNE
CT, PURGE_LIST } |
275 | 275 |
276 // Recorded information about a network change that took place. | 276 // Recorded information about a network change that took place. |
277 private static class ChangeInfo { | 277 private static class ChangeInfo { |
278 // The type of change. | 278 // The type of change. |
279 final ChangeType mChangeType; | 279 final ChangeType mChangeType; |
280 // The network identifier of the network changing. | 280 // The network identifier of the network changing. |
281 final int mNetId; | 281 final long mNetId; |
282 | 282 |
283 /** | 283 /** |
284 * @param changeType the type of change. | 284 * @param changeType the type of change. |
285 * @param netId the network identifier of the network changing. | 285 * @param netId the network identifier of the network changing. |
286 */ | 286 */ |
287 ChangeInfo(ChangeType changeType, int netId) { | 287 ChangeInfo(ChangeType changeType, long netId) { |
288 mChangeType = changeType; | 288 mChangeType = changeType; |
289 mNetId = netId; | 289 mNetId = netId; |
290 } | 290 } |
291 } | 291 } |
292 | 292 |
293 // NetworkChangeNotifierAutoDetect.Observer used to verify proper notificati
ons are sent out. | 293 // NetworkChangeNotifierAutoDetect.Observer used to verify proper notificati
ons are sent out. |
294 // Notifications come back on UI thread. assertLastChange() called on test t
hread. | 294 // Notifications come back on UI thread. assertLastChange() called on test t
hread. |
295 private static class TestNetworkChangeNotifierAutoDetectObserver | 295 private static class TestNetworkChangeNotifierAutoDetectObserver |
296 implements NetworkChangeNotifierAutoDetect.Observer { | 296 implements NetworkChangeNotifierAutoDetect.Observer { |
297 // The list of network changes that have been witnessed. | 297 // The list of network changes that have been witnessed. |
298 final ArrayList<ChangeInfo> mChanges = new ArrayList<ChangeInfo>(); | 298 final ArrayList<ChangeInfo> mChanges = new ArrayList<ChangeInfo>(); |
299 | 299 |
300 @Override | 300 @Override |
301 public void onConnectionTypeChanged(int newConnectionType) {} | 301 public void onConnectionTypeChanged(int newConnectionType) {} |
302 @Override | 302 @Override |
303 public void onMaxBandwidthChanged(double maxBandwidthMbps) {} | 303 public void onMaxBandwidthChanged(double maxBandwidthMbps) {} |
304 | 304 |
305 @Override | 305 @Override |
306 public void onNetworkConnect(int netId, int connectionType) { | 306 public void onNetworkConnect(long netId, int connectionType) { |
307 ThreadUtils.assertOnUiThread(); | 307 ThreadUtils.assertOnUiThread(); |
308 mChanges.add(new ChangeInfo(ChangeType.CONNECT, netId)); | 308 mChanges.add(new ChangeInfo(ChangeType.CONNECT, netId)); |
309 } | 309 } |
310 | 310 |
311 @Override | 311 @Override |
312 public void onNetworkSoonToDisconnect(int netId) { | 312 public void onNetworkSoonToDisconnect(long netId) { |
313 ThreadUtils.assertOnUiThread(); | 313 ThreadUtils.assertOnUiThread(); |
314 mChanges.add(new ChangeInfo(ChangeType.SOON_TO_DISCONNECT, netId)); | 314 mChanges.add(new ChangeInfo(ChangeType.SOON_TO_DISCONNECT, netId)); |
315 } | 315 } |
316 | 316 |
317 @Override | 317 @Override |
318 public void onNetworkDisconnect(int netId) { | 318 public void onNetworkDisconnect(long netId) { |
319 ThreadUtils.assertOnUiThread(); | 319 ThreadUtils.assertOnUiThread(); |
320 mChanges.add(new ChangeInfo(ChangeType.DISCONNECT, netId)); | 320 mChanges.add(new ChangeInfo(ChangeType.DISCONNECT, netId)); |
321 } | 321 } |
322 | 322 |
323 @Override | 323 @Override |
324 public void purgeActiveNetworkList(int[] activeNetIds) { | 324 public void purgeActiveNetworkList(long[] activeNetIds) { |
325 ThreadUtils.assertOnUiThread(); | 325 ThreadUtils.assertOnUiThread(); |
326 if (activeNetIds.length == 1) { | 326 if (activeNetIds.length == 1) { |
327 mChanges.add(new ChangeInfo(ChangeType.PURGE_LIST, activeNetIds[
0])); | 327 mChanges.add(new ChangeInfo(ChangeType.PURGE_LIST, activeNetIds[
0])); |
328 } else { | 328 } else { |
329 mChanges.add(new ChangeInfo(ChangeType.PURGE_LIST, NetId.INVALID
)); | 329 mChanges.add(new ChangeInfo(ChangeType.PURGE_LIST, NetId.INVALID
)); |
330 } | 330 } |
331 } | 331 } |
332 | 332 |
333 // Verify last notification was the expected one. | 333 // Verify last notification was the expected one. |
334 public void assertLastChange(ChangeType type, int netId) throws Exceptio
n { | 334 public void assertLastChange(ChangeType type, int netId) throws Exceptio
n { |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 ncn.setConnectivityManagerDelegateForTests(new ConnectivityManagerDelega
te() { | 759 ncn.setConnectivityManagerDelegateForTests(new ConnectivityManagerDelega
te() { |
760 public final Network[] mNetworks = | 760 public final Network[] mNetworks = |
761 new Network[] {netIdToNetwork(111), netIdToNetwork(333)}; | 761 new Network[] {netIdToNetwork(111), netIdToNetwork(333)}; |
762 | 762 |
763 @Override | 763 @Override |
764 protected Network[] getAllNetworksUnfiltered() { | 764 protected Network[] getAllNetworksUnfiltered() { |
765 return mNetworks; | 765 return mNetworks; |
766 } | 766 } |
767 | 767 |
768 @Override | 768 @Override |
769 int getDefaultNetId() { | 769 long getDefaultNetId() { |
770 return Integer.parseInt(mNetworks[1].toString()); | 770 return Integer.parseInt(mNetworks[1].toString()); |
771 } | 771 } |
772 | 772 |
773 @Override | 773 @Override |
774 protected NetworkCapabilities getNetworkCapabilities(Network network
) { | 774 protected NetworkCapabilities getNetworkCapabilities(Network network
) { |
775 return getCapabilities(TRANSPORT_WIFI); | 775 return getCapabilities(TRANSPORT_WIFI); |
776 } | 776 } |
777 | 777 |
778 @Override | 778 @Override |
779 public NetworkState getNetworkState(Network network) { | 779 public NetworkState getNetworkState(Network network) { |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 mConnectivityDelegate.setActiveNetworkExists(true); | 927 mConnectivityDelegate.setActiveNetworkExists(true); |
928 mConnectivityDelegate.setNetworkType(i); | 928 mConnectivityDelegate.setNetworkType(i); |
929 mReceiver.onReceive(getInstrumentation().getTargetContext(), intent)
; | 929 mReceiver.onReceive(getInstrumentation().getTargetContext(), intent)
; |
930 assertTrue(NetworkChangeNotifier.isOnline()); | 930 assertTrue(NetworkChangeNotifier.isOnline()); |
931 } | 931 } |
932 mConnectivityDelegate.setActiveNetworkExists(false); | 932 mConnectivityDelegate.setActiveNetworkExists(false); |
933 mReceiver.onReceive(getInstrumentation().getTargetContext(), intent); | 933 mReceiver.onReceive(getInstrumentation().getTargetContext(), intent); |
934 assertFalse(NetworkChangeNotifier.isOnline()); | 934 assertFalse(NetworkChangeNotifier.isOnline()); |
935 } | 935 } |
936 } | 936 } |
OLD | NEW |