Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(424)

Side by Side Diff: net/android/javatests/src/org/chromium/net/NetworkChangeNotifierTest.java

Issue 1358163004: [Android] Introduce RegistrationPolicy for NetworkChangeNotifier. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix compile of tests Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.net.ConnectivityManager; 10 import android.net.ConnectivityManager;
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 @UiThreadTest 293 @UiThreadTest
294 @MediumTest 294 @MediumTest
295 @Feature({"Android-AppBase"}) 295 @Feature({"Android-AppBase"})
296 public void testNetworkChangeNotifierRegistersInConstructor() throws Interru ptedException { 296 public void testNetworkChangeNotifierRegistersInConstructor() throws Interru ptedException {
297 Context context = getInstrumentation().getTargetContext(); 297 Context context = getInstrumentation().getTargetContext();
298 298
299 NetworkChangeNotifierAutoDetect.Observer observer = 299 NetworkChangeNotifierAutoDetect.Observer observer =
300 new TestNetworkChangeNotifierAutoDetectObserver(); 300 new TestNetworkChangeNotifierAutoDetectObserver();
301 301
302 NetworkChangeNotifierAutoDetect receiver = new NetworkChangeNotifierAuto Detect( 302 NetworkChangeNotifierAutoDetect receiver = new NetworkChangeNotifierAuto Detect(
303 observer, context, false /* always watch for changes */) { 303 observer, context, new RegistrationPolicyApplicationStatus() {
304 @Override 304 @Override
305 int getApplicationState() { 305 int getApplicationState() {
306 return ApplicationState.HAS_RUNNING_ACTIVITIES; 306 return ApplicationState.HAS_RUNNING_ACTIVITIES;
307 } 307 }
308 }; 308 });
309 309
310 assertTrue(receiver.isReceiverRegisteredForTesting()); 310 assertTrue(receiver.isReceiverRegisteredForTesting());
311 } 311 }
312 312
313 /** 313 /**
314 * Tests that the receiver toggles registration for connectivity intents bas ed on activity 314 * Tests that the receiver toggles registration for connectivity intents bas ed on activity
315 * state. 315 * state.
316 */ 316 */
317 @UiThreadTest 317 @UiThreadTest
318 @MediumTest 318 @MediumTest
319 @Feature({"Android-AppBase"}) 319 @Feature({"Android-AppBase"})
320 public void testNetworkChangeNotifierRegistersForIntents() throws Interrupte dException { 320 public void testNetworkChangeNotifierRegistersForIntents() throws Interrupte dException {
321 mReceiver.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITI ES); 321 RegistrationPolicyApplicationStatus policy =
322 (RegistrationPolicyApplicationStatus) mReceiver.getRegistrationP olicy();
323 policy.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES) ;
322 assertTrue(mReceiver.isReceiverRegisteredForTesting()); 324 assertTrue(mReceiver.isReceiverRegisteredForTesting());
323 325
324 mReceiver.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIE S); 326 policy.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
325 assertFalse(mReceiver.isReceiverRegisteredForTesting()); 327 assertFalse(mReceiver.isReceiverRegisteredForTesting());
326 328
327 mReceiver.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITI ES); 329 policy.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES) ;
328 assertTrue(mReceiver.isReceiverRegisteredForTesting()); 330 assertTrue(mReceiver.isReceiverRegisteredForTesting());
329 } 331 }
330 332
331 /** 333 /**
332 * Tests that changing the RSSI_CHANGED_ACTION intent updates MaxBandwidth. 334 * Tests that changing the RSSI_CHANGED_ACTION intent updates MaxBandwidth.
333 */ 335 */
334 @UiThreadTest 336 @UiThreadTest
335 @MediumTest 337 @MediumTest
336 @Feature({"Android-AppBase"}) 338 @Feature({"Android-AppBase"})
337 public void testNetworkChangeNotifierRSSIEventUpdatesMaxBandwidthForWiFi() 339 public void testNetworkChangeNotifierRSSIEventUpdatesMaxBandwidthForWiFi()
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 assertFalse(observer.hasReceivedNotification()); 455 assertFalse(observer.hasReceivedNotification());
454 456
455 // Mimic that connectivity has been lost and ensure that Chrome notifies our observer. 457 // Mimic that connectivity has been lost and ensure that Chrome notifies our observer.
456 mConnectivityDelegate.setActiveNetworkExists(false); 458 mConnectivityDelegate.setActiveNetworkExists(false);
457 Intent noConnectivityIntent = new Intent(ConnectivityManager.CONNECTIVIT Y_ACTION); 459 Intent noConnectivityIntent = new Intent(ConnectivityManager.CONNECTIVIT Y_ACTION);
458 mReceiver.onReceive(getInstrumentation().getTargetContext(), noConnectiv ityIntent); 460 mReceiver.onReceive(getInstrumentation().getTargetContext(), noConnectiv ityIntent);
459 assertTrue(observer.hasReceivedNotification()); 461 assertTrue(observer.hasReceivedNotification());
460 462
461 observer.resetHasReceivedNotification(); 463 observer.resetHasReceivedNotification();
462 // Pretend we got moved to the background. 464 // Pretend we got moved to the background.
463 mReceiver.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIE S); 465 final RegistrationPolicyApplicationStatus policy =
466 (RegistrationPolicyApplicationStatus) mReceiver.getRegistrationP olicy();
467 policy.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
464 // Change the state. 468 // Change the state.
465 mConnectivityDelegate.setActiveNetworkExists(true); 469 mConnectivityDelegate.setActiveNetworkExists(true);
466 mConnectivityDelegate.setNetworkType(ConnectivityManager.TYPE_WIFI); 470 mConnectivityDelegate.setNetworkType(ConnectivityManager.TYPE_WIFI);
467 // The NetworkChangeNotifierAutoDetect doesn't receive any notification while we are in the 471 // The NetworkChangeNotifierAutoDetect doesn't receive any notification while we are in the
468 // background, but when we get back to the foreground the state changed should be detected 472 // background, but when we get back to the foreground the state changed should be detected
469 // and a notification sent. 473 // and a notification sent.
470 mReceiver.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITI ES); 474 policy.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES) ;
471 assertTrue(observer.hasReceivedNotification()); 475 assertTrue(observer.hasReceivedNotification());
472 } 476 }
473 477
474 /** 478 /**
475 * Tests that when setting {@code registerToReceiveNotificationsAlways()}, 479 * Tests that when setting {@code registerToReceiveNotificationsAlways()},
476 * a NetworkChangeNotifierAutoDetect object is successfully created. 480 * a NetworkChangeNotifierAutoDetect object is successfully created.
477 */ 481 */
478 @UiThreadTest 482 @UiThreadTest
479 @MediumTest 483 @MediumTest
480 @Feature({"Android-AppBase"}) 484 @Feature({"Android-AppBase"})
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 * Tests that NetworkChangeNotifierAutoDetect queryable APIs don't crash. Th is test cannot rely 524 * Tests that NetworkChangeNotifierAutoDetect queryable APIs don't crash. Th is test cannot rely
521 * on having any active network connections so it cannot usefully check resu lts, but it can at 525 * on having any active network connections so it cannot usefully check resu lts, but it can at
522 * least check that the functions don't crash. 526 * least check that the functions don't crash.
523 */ 527 */
524 @UiThreadTest 528 @UiThreadTest
525 @MediumTest 529 @MediumTest
526 @Feature({"Android-AppBase"}) 530 @Feature({"Android-AppBase"})
527 public void testQueryableAPIsDoNotCrash() { 531 public void testQueryableAPIsDoNotCrash() {
528 NetworkChangeNotifierAutoDetect.Observer observer = 532 NetworkChangeNotifierAutoDetect.Observer observer =
529 new TestNetworkChangeNotifierAutoDetectObserver(); 533 new TestNetworkChangeNotifierAutoDetectObserver();
530 NetworkChangeNotifierAutoDetect ncn = new NetworkChangeNotifierAutoDetec t( 534 NetworkChangeNotifierAutoDetect ncn = new NetworkChangeNotifierAutoDetec t(observer,
531 observer, getInstrumentation().getTargetContext(), true); 535 getInstrumentation().getTargetContext(), new RegistrationPolicyA lwaysRegister());
532 ncn.getNetworksAndTypes(); 536 ncn.getNetworksAndTypes();
533 ncn.getDefaultNetId(); 537 ncn.getDefaultNetId();
534 } 538 }
535 539
536 /** 540 /**
537 * Tests that callbacks are issued to Observers when NetworkChangeNotifierAu toDetect receives 541 * Tests that callbacks are issued to Observers when NetworkChangeNotifierAu toDetect receives
538 * the right signals (via its NetworkCallback). 542 * the right signals (via its NetworkCallback).
539 */ 543 */
540 @MediumTest 544 @MediumTest
541 @Feature({"Android-AppBase"}) 545 @Feature({"Android-AppBase"})
542 public void testNetworkCallbacks() throws Exception { 546 public void testNetworkCallbacks() throws Exception {
543 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 547 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
544 return; 548 return;
545 } 549 }
546 // Setup NetworkChangeNotifierAutoDetect 550 // Setup NetworkChangeNotifierAutoDetect
547 final Context context = getInstrumentation().getTargetContext(); 551 final Context context = getInstrumentation().getTargetContext();
548 final TestNetworkChangeNotifierAutoDetectObserver observer = 552 final TestNetworkChangeNotifierAutoDetectObserver observer =
549 new TestNetworkChangeNotifierAutoDetectObserver(); 553 new TestNetworkChangeNotifierAutoDetectObserver();
550 Callable<NetworkChangeNotifierAutoDetect> callable = 554 Callable<NetworkChangeNotifierAutoDetect> callable =
551 new Callable<NetworkChangeNotifierAutoDetect>() { 555 new Callable<NetworkChangeNotifierAutoDetect>() {
552 public NetworkChangeNotifierAutoDetect call() { 556 public NetworkChangeNotifierAutoDetect call() {
553 return new NetworkChangeNotifierAutoDetect( 557 return new NetworkChangeNotifierAutoDetect(
554 observer, context, false /* always watch for cha nges */) { 558 observer, context, new RegistrationPolicyApplica tionStatus() {
555 // This override prevents NetworkChangeNotifierAutoD etect from 559 // This override prevents NetworkChangeNotif ierAutoDetect from
556 // registering for events right off the bat. We'll d elay this 560 // registering for events right off the bat. We'll delay this
557 // until our MockConnectivityManagerDelegate is firs t installed 561 // until our MockConnectivityManagerDelegate is first installed
558 // to prevent inadvertent communication with the rea l 562 // to prevent inadvertent communication with the real
559 // ConnectivityManager. 563 // ConnectivityManager.
560 @Override 564 @Override
561 int getApplicationState() { 565 int getApplicationState() {
562 return ApplicationState.HAS_PAUSED_ACTIVITIES; 566 return ApplicationState.HAS_PAUSED_ACTIV ITIES;
563 } 567 }
564 }; 568 });
565 } 569 }
566 }; 570 };
567 FutureTask<NetworkChangeNotifierAutoDetect> task = 571 FutureTask<NetworkChangeNotifierAutoDetect> task =
568 new FutureTask<NetworkChangeNotifierAutoDetect>(callable); 572 new FutureTask<NetworkChangeNotifierAutoDetect>(callable);
569 ThreadUtils.postOnUiThread(task); 573 ThreadUtils.postOnUiThread(task);
570 NetworkChangeNotifierAutoDetect ncn = task.get(); 574 NetworkChangeNotifierAutoDetect ncn = task.get();
571 575
572 // Insert mock ConnectivityDelegate 576 // Insert mock ConnectivityDelegate
573 mConnectivityDelegate = new MockConnectivityManagerDelegate(); 577 mConnectivityDelegate = new MockConnectivityManagerDelegate();
574 ncn.setConnectivityManagerDelegateForTests(mConnectivityDelegate); 578 ncn.setConnectivityManagerDelegateForTests(mConnectivityDelegate);
575 // Now that mock ConnectivityDelegate is inserted, pretend app is foregr ounded 579 // Now that mock ConnectivityDelegate is inserted, pretend app is foregr ounded
576 // so NetworkChangeNotifierAutoDetect will register its NetworkCallback. 580 // so NetworkChangeNotifierAutoDetect will register its NetworkCallback.
577 assertFalse(ncn.isReceiverRegisteredForTesting()); 581 assertFalse(ncn.isReceiverRegisteredForTesting());
578 ncn.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES); 582
583 RegistrationPolicyApplicationStatus policy =
584 (RegistrationPolicyApplicationStatus) mReceiver.getRegistrationP olicy();
585 policy.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES) ;
579 assertTrue(ncn.isReceiverRegisteredForTesting()); 586 assertTrue(ncn.isReceiverRegisteredForTesting());
580 587
581 // Find NetworkChangeNotifierAutoDetect's NetworkCallback, which should have been registered 588 // Find NetworkChangeNotifierAutoDetect's NetworkCallback, which should have been registered
582 // with mConnectivityDelegate. 589 // with mConnectivityDelegate.
583 NetworkCallback networkCallback = mConnectivityDelegate.getLastRegistere dNetworkCallback(); 590 NetworkCallback networkCallback = mConnectivityDelegate.getLastRegistere dNetworkCallback();
584 assertNotNull(networkCallback); 591 assertNotNull(networkCallback);
585 592
586 // First thing we'll receive is a purge to initialize any network lists. 593 // First thing we'll receive is a purge to initialize any network lists.
587 observer.assertLastChange(ChangeType.PURGE_LIST, NetId.INVALID); 594 observer.assertLastChange(ChangeType.PURGE_LIST, NetId.INVALID);
588 595
589 // Test connected signal is passed along. 596 // Test connected signal is passed along.
590 networkCallback.onAvailable(netIdToNetwork(100)); 597 networkCallback.onAvailable(netIdToNetwork(100));
591 observer.assertLastChange(ChangeType.CONNECT, 100); 598 observer.assertLastChange(ChangeType.CONNECT, 100);
592 599
593 // Test soon-to-be-disconnected signal is passed along. 600 // Test soon-to-be-disconnected signal is passed along.
594 networkCallback.onLosing(netIdToNetwork(101), 30); 601 networkCallback.onLosing(netIdToNetwork(101), 30);
595 observer.assertLastChange(ChangeType.SOON_TO_DISCONNECT, 101); 602 observer.assertLastChange(ChangeType.SOON_TO_DISCONNECT, 101);
596 603
597 // Test connected signal is passed along. 604 // Test connected signal is passed along.
598 networkCallback.onLost(netIdToNetwork(102)); 605 networkCallback.onLost(netIdToNetwork(102));
599 observer.assertLastChange(ChangeType.DISCONNECT, 102); 606 observer.assertLastChange(ChangeType.DISCONNECT, 102);
600 607
601 // Simulate app backgrounding then foregrounding. 608 // Simulate app backgrounding then foregrounding.
602 assertTrue(ncn.isReceiverRegisteredForTesting()); 609 assertTrue(ncn.isReceiverRegisteredForTesting());
603 ncn.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES); 610 policy.onApplicationStateChange(ApplicationState.HAS_PAUSED_ACTIVITIES);
604 assertFalse(ncn.isReceiverRegisteredForTesting()); 611 assertFalse(ncn.isReceiverRegisteredForTesting());
605 ncn.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES); 612 policy.onApplicationStateChange(ApplicationState.HAS_RUNNING_ACTIVITIES) ;
606 assertTrue(ncn.isReceiverRegisteredForTesting()); 613 assertTrue(ncn.isReceiverRegisteredForTesting());
607 // Verify network list purged. 614 // Verify network list purged.
608 observer.assertLastChange(ChangeType.PURGE_LIST, NetId.INVALID); 615 observer.assertLastChange(ChangeType.PURGE_LIST, NetId.INVALID);
609 } 616 }
610 } 617 }
OLDNEW
« no previous file with comments | « net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698