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

Side by Side Diff: content/public/android/junit/src/org/chromium/content/browser/BindingManagerImplTest.java

Issue 2195143002: [Android] Update all Robolectric tests to Robolectric 3.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Convert newly added webapk_shell_apk_junit_tests to Robo 3.0 Created 4 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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.content.browser; 5 package org.chromium.content.browser;
6 6
7 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL; 7 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL;
8 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW; 8 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW;
9 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE; 9 import static android.content.ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE;
10 10
11 import android.app.Activity; 11 import android.app.Activity;
12 import android.app.Application; 12 import android.app.Application;
13 import android.os.Bundle; 13 import android.os.Bundle;
14 import android.util.Pair; 14 import android.util.Pair;
15 15
16 import org.chromium.base.test.util.Feature; 16 import org.chromium.base.test.util.Feature;
17 import org.chromium.content.common.IChildProcessCallback; 17 import org.chromium.content.common.IChildProcessCallback;
18 import org.chromium.content.common.IChildProcessService; 18 import org.chromium.content.common.IChildProcessService;
19 import org.chromium.testing.local.LocalRobolectricTestRunner; 19 import org.chromium.testing.local.LocalRobolectricTestRunner;
20 import org.junit.Assert; 20 import org.junit.Assert;
21 import org.junit.Before; 21 import org.junit.Before;
22 import org.junit.Test; 22 import org.junit.Test;
23 import org.junit.runner.RunWith; 23 import org.junit.runner.RunWith;
24 import org.robolectric.Robolectric; 24 import org.robolectric.Robolectric;
25 import org.robolectric.annotation.Config; 25 import org.robolectric.annotation.Config;
26 import org.robolectric.shadows.ShadowLooper;
26 27
27 import java.util.ArrayList; 28 import java.util.ArrayList;
28 29
29 /** 30 /**
30 * Unit tests for BindingManagerImpl. The tests run agains mock ChildProcessConn ection 31 * Unit tests for BindingManagerImpl. The tests run agains mock ChildProcessConn ection
31 * implementation, thus testing only the BindingManagerImpl itself. 32 * implementation, thus testing only the BindingManagerImpl itself.
32 * 33 *
33 * Default property of being low-end device is overriden, so that both low-end a nd high-end policies 34 * Default property of being low-end device is overriden, so that both low-end a nd high-end policies
34 * are tested. 35 * are tested.
35 */ 36 */
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 Assert.assertTrue(connection.isInitialBindingBound()); 272 Assert.assertTrue(connection.isInitialBindingBound());
272 273
273 // Remove the strong binding, verify that the strong binding is not remo ved 274 // Remove the strong binding, verify that the strong binding is not remo ved
274 // immediately. 275 // immediately.
275 manager.setInForeground(connection.getPid(), false); 276 manager.setInForeground(connection.getPid(), false);
276 Assert.assertTrue(connection.isStrongBindingBound()); 277 Assert.assertTrue(connection.isStrongBindingBound());
277 Assert.assertTrue(connection.isInitialBindingBound()); 278 Assert.assertTrue(connection.isInitialBindingBound());
278 279
279 // Wait until the posted unbinding tasks get executed and verify that th e strong binding was 280 // Wait until the posted unbinding tasks get executed and verify that th e strong binding was
280 // removed while the initial binding is not affected. 281 // removed while the initial binding is not affected.
281 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 282 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
282 Assert.assertFalse(connection.isStrongBindingBound()); 283 Assert.assertFalse(connection.isStrongBindingBound());
283 Assert.assertTrue(connection.isInitialBindingBound()); 284 Assert.assertTrue(connection.isInitialBindingBound());
284 } 285 }
285 286
286 /** 287 /**
287 * Verifies the strong binding removal policies with moderate binding manage ment, where the 288 * Verifies the strong binding removal policies with moderate binding manage ment, where the
288 * moderate binding should be bound. 289 * moderate binding should be bound.
289 */ 290 */
290 @Test 291 @Test
291 @Feature({"ProcessManagement"}) 292 @Feature({"ProcessManagement"})
(...skipping 16 matching lines...) Expand all
308 309
309 // Remove the strong binding, verify that the strong binding is not remo ved 310 // Remove the strong binding, verify that the strong binding is not remo ved
310 // immediately. 311 // immediately.
311 manager.setInForeground(connection.getPid(), false); 312 manager.setInForeground(connection.getPid(), false);
312 Assert.assertTrue(connection.isStrongBindingBound()); 313 Assert.assertTrue(connection.isStrongBindingBound());
313 Assert.assertTrue(connection.isInitialBindingBound()); 314 Assert.assertTrue(connection.isInitialBindingBound());
314 Assert.assertFalse(connection.isModerateBindingBound()); 315 Assert.assertFalse(connection.isModerateBindingBound());
315 316
316 // Wait until the posted unbinding tasks get executed and verify that th e strong binding was 317 // Wait until the posted unbinding tasks get executed and verify that th e strong binding was
317 // removed while the initial binding is not affected, and the moderate b inding is bound. 318 // removed while the initial binding is not affected, and the moderate b inding is bound.
318 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 319 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
319 Assert.assertFalse(connection.isStrongBindingBound()); 320 Assert.assertFalse(connection.isStrongBindingBound());
320 Assert.assertTrue(connection.isInitialBindingBound()); 321 Assert.assertTrue(connection.isInitialBindingBound());
321 Assert.assertTrue(connection.isModerateBindingBound()); 322 Assert.assertTrue(connection.isModerateBindingBound());
322 } 323 }
323 324
324 /** 325 /**
325 * Verifies that the initial binding is removed after determinedVisibility() is called. 326 * Verifies that the initial binding is removed after determinedVisibility() is called.
326 */ 327 */
327 @Test 328 @Test
328 @Feature({"ProcessManagement"}) 329 @Feature({"ProcessManagement"})
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 // Add a connection to the manager. 366 // Add a connection to the manager.
366 MockChildProcessConnection connection = new MockChildProcessConnecti on(1); 367 MockChildProcessConnection connection = new MockChildProcessConnecti on(1);
367 manager.addNewConnection(connection.getPid(), connection); 368 manager.addNewConnection(connection.getPid(), connection);
368 369
369 // Initial binding is an oom binding. 370 // Initial binding is an oom binding.
370 Assert.assertTrue(message, manager.isOomProtected(connection.getPid( ))); 371 Assert.assertTrue(message, manager.isOomProtected(connection.getPid( )));
371 372
372 // After initial binding is removed, the connection is no longer oom protected. 373 // After initial binding is removed, the connection is no longer oom protected.
373 manager.setInForeground(connection.getPid(), false); 374 manager.setInForeground(connection.getPid(), false);
374 manager.determinedVisibility(connection.getPid()); 375 manager.determinedVisibility(connection.getPid());
375 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 376 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
376 Assert.assertFalse(message, manager.isOomProtected(connection.getPid ())); 377 Assert.assertFalse(message, manager.isOomProtected(connection.getPid ()));
377 378
378 // Add a strong binding, restoring the oom protection. 379 // Add a strong binding, restoring the oom protection.
379 manager.setInForeground(connection.getPid(), true); 380 manager.setInForeground(connection.getPid(), true);
380 Assert.assertTrue(message, manager.isOomProtected(connection.getPid( ))); 381 Assert.assertTrue(message, manager.isOomProtected(connection.getPid( )));
381 382
382 // Simulate a process crash - clear a connection in binding manager and remove the 383 // Simulate a process crash - clear a connection in binding manager and remove the
383 // bindings. 384 // bindings.
384 Assert.assertFalse(manager.isConnectionCleared(connection.getPid())) ; 385 Assert.assertFalse(manager.isConnectionCleared(connection.getPid())) ;
385 manager.clearConnection(connection.getPid()); 386 manager.clearConnection(connection.getPid());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 manager.addNewConnection(secondConnection.getPid(), secondConnection ); 423 manager.addNewConnection(secondConnection.getPid(), secondConnection );
423 manager.setInForeground(secondConnection.getPid(), true); 424 manager.setInForeground(secondConnection.getPid(), true);
424 manager.setInForeground(secondConnection.getPid(), false); 425 manager.setInForeground(secondConnection.getPid(), false);
425 426
426 // Add third connection, do not bind it. 427 // Add third connection, do not bind it.
427 MockChildProcessConnection thirdConnection = new MockChildProcessCon nection(3); 428 MockChildProcessConnection thirdConnection = new MockChildProcessCon nection(3);
428 manager.addNewConnection(thirdConnection.getPid(), thirdConnection); 429 manager.addNewConnection(thirdConnection.getPid(), thirdConnection);
429 manager.setInForeground(thirdConnection.getPid(), false); 430 manager.setInForeground(thirdConnection.getPid(), false);
430 431
431 // Sanity check: verify that no connection has a strong binding. 432 // Sanity check: verify that no connection has a strong binding.
432 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 433 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
433 Assert.assertFalse(message, firstConnection.isStrongBindingBound()); 434 Assert.assertFalse(message, firstConnection.isStrongBindingBound());
434 Assert.assertFalse(message, secondConnection.isStrongBindingBound()) ; 435 Assert.assertFalse(message, secondConnection.isStrongBindingBound()) ;
435 Assert.assertFalse(message, thirdConnection.isStrongBindingBound()); 436 Assert.assertFalse(message, thirdConnection.isStrongBindingBound());
436 437
437 // Call onSentToBackground() and verify that a strong binding was ad ded for the second 438 // Call onSentToBackground() and verify that a strong binding was ad ded for the second
438 // connection: 439 // connection:
439 // - not the first one, because it was bound earlier than the second 440 // - not the first one, because it was bound earlier than the second
440 // - not the thirs one, because it was never bound at all 441 // - not the thirs one, because it was never bound at all
441 manager.onSentToBackground(); 442 manager.onSentToBackground();
442 Assert.assertFalse(message, firstConnection.isStrongBindingBound()); 443 Assert.assertFalse(message, firstConnection.isStrongBindingBound());
443 Assert.assertTrue(message, secondConnection.isStrongBindingBound()); 444 Assert.assertTrue(message, secondConnection.isStrongBindingBound());
444 Assert.assertFalse(message, thirdConnection.isStrongBindingBound()); 445 Assert.assertFalse(message, thirdConnection.isStrongBindingBound());
445 446
446 // Call onBroughtToForeground() and verify that the strong binding w as removed. 447 // Call onBroughtToForeground() and verify that the strong binding w as removed.
447 manager.onBroughtToForeground(); 448 manager.onBroughtToForeground();
448 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 449 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
449 Assert.assertFalse(message, firstConnection.isStrongBindingBound()); 450 Assert.assertFalse(message, firstConnection.isStrongBindingBound());
450 Assert.assertFalse(message, secondConnection.isStrongBindingBound()) ; 451 Assert.assertFalse(message, secondConnection.isStrongBindingBound()) ;
451 Assert.assertFalse(message, thirdConnection.isStrongBindingBound()); 452 Assert.assertFalse(message, thirdConnection.isStrongBindingBound());
452 } 453 }
453 } 454 }
454 455
455 /** 456 /**
456 * Verifies that onSentToBackground() drops all the moderate bindings after some delay, and 457 * Verifies that onSentToBackground() drops all the moderate bindings after some delay, and
457 * onBroughtToForeground() doesn't recover them. 458 * onBroughtToForeground() doesn't recover them.
458 */ 459 */
459 @Test 460 @Test
460 @Feature({"ProcessManagement"}) 461 @Feature({"ProcessManagement"})
461 public void testModerateBindingDropOnBackground() { 462 public void testModerateBindingDropOnBackground() {
462 // This test applies only to the moderate-binding manager. 463 // This test applies only to the moderate-binding manager.
463 final BindingManagerImpl manager = mModerateBindingManager; 464 final BindingManagerImpl manager = mModerateBindingManager;
464 465
465 MockChildProcessConnection[] connections = new MockChildProcessConnectio n[3]; 466 MockChildProcessConnection[] connections = new MockChildProcessConnectio n[3];
466 for (int i = 0; i < connections.length; i++) { 467 for (int i = 0; i < connections.length; i++) {
467 connections[i] = new MockChildProcessConnection(i + 1); 468 connections[i] = new MockChildProcessConnection(i + 1);
468 manager.addNewConnection(connections[i].getPid(), connections[i]); 469 manager.addNewConnection(connections[i].getPid(), connections[i]);
469 } 470 }
470 471
471 // Verify that each connection has a moderate binding after binding and releasing a strong 472 // Verify that each connection has a moderate binding after binding and releasing a strong
472 // binding. 473 // binding.
473 for (MockChildProcessConnection connection : connections) { 474 for (MockChildProcessConnection connection : connections) {
474 manager.setInForeground(connection.getPid(), true); 475 manager.setInForeground(connection.getPid(), true);
475 manager.setInForeground(connection.getPid(), false); 476 manager.setInForeground(connection.getPid(), false);
476 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 477 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
477 Assert.assertTrue(connection.isModerateBindingBound()); 478 Assert.assertTrue(connection.isModerateBindingBound());
478 } 479 }
479 480
480 // Exclude lastInForeground because it will be kept in foreground when o nSentToBackground() 481 // Exclude lastInForeground because it will be kept in foreground when o nSentToBackground()
481 // is called as |mLastInForeground|. 482 // is called as |mLastInForeground|.
482 MockChildProcessConnection lastInForeground = new MockChildProcessConnec tion(0); 483 MockChildProcessConnection lastInForeground = new MockChildProcessConnec tion(0);
483 manager.addNewConnection(lastInForeground.getPid(), lastInForeground); 484 manager.addNewConnection(lastInForeground.getPid(), lastInForeground);
484 manager.setInForeground(lastInForeground.getPid(), true); 485 manager.setInForeground(lastInForeground.getPid(), true);
485 manager.setInForeground(lastInForeground.getPid(), false); 486 manager.setInForeground(lastInForeground.getPid(), false);
486 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 487 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
487 488
488 // Verify that leaving the application for a short time doesn't clear th e moderate bindings. 489 // Verify that leaving the application for a short time doesn't clear th e moderate bindings.
489 manager.onSentToBackground(); 490 manager.onSentToBackground();
490 for (MockChildProcessConnection connection : connections) { 491 for (MockChildProcessConnection connection : connections) {
491 Assert.assertTrue(connection.isModerateBindingBound()); 492 Assert.assertTrue(connection.isModerateBindingBound());
492 } 493 }
493 Assert.assertTrue(lastInForeground.isStrongBindingBound()); 494 Assert.assertTrue(lastInForeground.isStrongBindingBound());
494 Assert.assertFalse(lastInForeground.isModerateBindingBound()); 495 Assert.assertFalse(lastInForeground.isModerateBindingBound());
495 manager.onBroughtToForeground(); 496 manager.onBroughtToForeground();
496 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 497 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
497 for (MockChildProcessConnection connection : connections) { 498 for (MockChildProcessConnection connection : connections) {
498 Assert.assertTrue(connection.isModerateBindingBound()); 499 Assert.assertTrue(connection.isModerateBindingBound());
499 } 500 }
500 501
501 // Call onSentToBackground() and verify that all the moderate bindings d rop after some 502 // Call onSentToBackground() and verify that all the moderate bindings d rop after some
502 // delay. 503 // delay.
503 manager.onSentToBackground(); 504 manager.onSentToBackground();
504 for (MockChildProcessConnection connection : connections) { 505 for (MockChildProcessConnection connection : connections) {
505 Assert.assertTrue(connection.isModerateBindingBound()); 506 Assert.assertTrue(connection.isModerateBindingBound());
506 } 507 }
507 Assert.assertTrue(lastInForeground.isStrongBindingBound()); 508 Assert.assertTrue(lastInForeground.isStrongBindingBound());
508 Assert.assertFalse(lastInForeground.isModerateBindingBound()); 509 Assert.assertFalse(lastInForeground.isModerateBindingBound());
509 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 510 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
510 for (MockChildProcessConnection connection : connections) { 511 for (MockChildProcessConnection connection : connections) {
511 Assert.assertFalse(connection.isModerateBindingBound()); 512 Assert.assertFalse(connection.isModerateBindingBound());
512 } 513 }
513 514
514 // Call onBroughtToForeground() and verify that the previous moderate bi ndings aren't 515 // Call onBroughtToForeground() and verify that the previous moderate bi ndings aren't
515 // recovered. 516 // recovered.
516 manager.onBroughtToForeground(); 517 manager.onBroughtToForeground();
517 for (MockChildProcessConnection connection : connections) { 518 for (MockChildProcessConnection connection : connections) {
518 Assert.assertFalse(connection.isModerateBindingBound()); 519 Assert.assertFalse(connection.isModerateBindingBound());
519 } 520 }
(...skipping 12 matching lines...) Expand all
532 for (int i = 0; i < connections.length; i++) { 533 for (int i = 0; i < connections.length; i++) {
533 connections[i] = new MockChildProcessConnection(i + 1); 534 connections[i] = new MockChildProcessConnection(i + 1);
534 manager.addNewConnection(connections[i].getPid(), connections[i]); 535 manager.addNewConnection(connections[i].getPid(), connections[i]);
535 } 536 }
536 537
537 // Verify that each connection has a moderate binding after binding and releasing a strong 538 // Verify that each connection has a moderate binding after binding and releasing a strong
538 // binding. 539 // binding.
539 for (MockChildProcessConnection connection : connections) { 540 for (MockChildProcessConnection connection : connections) {
540 manager.setInForeground(connection.getPid(), true); 541 manager.setInForeground(connection.getPid(), true);
541 manager.setInForeground(connection.getPid(), false); 542 manager.setInForeground(connection.getPid(), false);
542 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 543 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
543 Assert.assertTrue(connection.isModerateBindingBound()); 544 Assert.assertTrue(connection.isModerateBindingBound());
544 } 545 }
545 546
546 // Call onLowMemory() and verify that all the moderate bindings drop. 547 // Call onLowMemory() and verify that all the moderate bindings drop.
547 app.onLowMemory(); 548 app.onLowMemory();
548 for (MockChildProcessConnection connection : connections) { 549 for (MockChildProcessConnection connection : connections) {
549 Assert.assertFalse(connection.isModerateBindingBound()); 550 Assert.assertFalse(connection.isModerateBindingBound());
550 } 551 }
551 } 552 }
552 553
(...skipping 21 matching lines...) Expand all
574 manager.addNewConnection(connections[i].getPid(), connections[i]); 575 manager.addNewConnection(connections[i].getPid(), connections[i]);
575 } 576 }
576 577
577 for (Pair<Integer, Integer> pair : levelAndExpectedVictimCountList) { 578 for (Pair<Integer, Integer> pair : levelAndExpectedVictimCountList) {
578 String message = "Failed for the level=" + pair.first; 579 String message = "Failed for the level=" + pair.first;
579 // Verify that each connection has a moderate binding after binding and releasing a 580 // Verify that each connection has a moderate binding after binding and releasing a
580 // strong binding. 581 // strong binding.
581 for (MockChildProcessConnection connection : connections) { 582 for (MockChildProcessConnection connection : connections) {
582 manager.setInForeground(connection.getPid(), true); 583 manager.setInForeground(connection.getPid(), true);
583 manager.setInForeground(connection.getPid(), false); 584 manager.setInForeground(connection.getPid(), false);
584 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 585 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
585 Assert.assertTrue(message, connection.isModerateBindingBound()); 586 Assert.assertTrue(message, connection.isModerateBindingBound());
586 } 587 }
587 588
588 app.onTrimMemory(pair.first); 589 app.onTrimMemory(pair.first);
589 // Verify that some of moderate bindings drop. 590 // Verify that some of moderate bindings drop.
590 for (int i = 0; i < connections.length; i++) { 591 for (int i = 0; i < connections.length; i++) {
591 Assert.assertEquals( 592 Assert.assertEquals(
592 message, i >= pair.second, connections[i].isModerateBind ingBound()); 593 message, i >= pair.second, connections[i].isModerateBind ingBound());
593 } 594 }
594 } 595 }
(...skipping 12 matching lines...) Expand all
607 for (int i = 0; i < connections.length; i++) { 608 for (int i = 0; i < connections.length; i++) {
608 connections[i] = new MockChildProcessConnection(i + 1); 609 connections[i] = new MockChildProcessConnection(i + 1);
609 manager.addNewConnection(connections[i].getPid(), connections[i]); 610 manager.addNewConnection(connections[i].getPid(), connections[i]);
610 } 611 }
611 612
612 // Verify that each connection has a moderate binding after binding and releasing a strong 613 // Verify that each connection has a moderate binding after binding and releasing a strong
613 // binding. 614 // binding.
614 for (MockChildProcessConnection connection : connections) { 615 for (MockChildProcessConnection connection : connections) {
615 manager.setInForeground(connection.getPid(), true); 616 manager.setInForeground(connection.getPid(), true);
616 manager.setInForeground(connection.getPid(), false); 617 manager.setInForeground(connection.getPid(), false);
617 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 618 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
618 Assert.assertTrue(connection.isModerateBindingBound()); 619 Assert.assertTrue(connection.isModerateBindingBound());
619 } 620 }
620 621
621 // Call BindingManager.releaseAllModerateBindings() and verify that all the moderate 622 // Call BindingManager.releaseAllModerateBindings() and verify that all the moderate
622 // bindings drop. 623 // bindings drop.
623 manager.releaseAllModerateBindings(); 624 manager.releaseAllModerateBindings();
624 for (MockChildProcessConnection connection : connections) { 625 for (MockChildProcessConnection connection : connections) {
625 Assert.assertFalse(connection.isModerateBindingBound()); 626 Assert.assertFalse(connection.isModerateBindingBound());
626 } 627 }
627 } 628 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 BindingManagerImpl manager = BindingManagerImpl.createBindingManagerForT esting(false); 704 BindingManagerImpl manager = BindingManagerImpl.createBindingManagerForT esting(false);
704 manager.startModerateBindingManagement(mActivity, 4, true); 705 manager.startModerateBindingManagement(mActivity, 4, true);
705 706
706 MockChildProcessConnection connection = new MockChildProcessConnection(0 ); 707 MockChildProcessConnection connection = new MockChildProcessConnection(0 );
707 manager.addNewConnection(connection.getPid(), connection); 708 manager.addNewConnection(connection.getPid(), connection);
708 manager.setInForeground(connection.getPid(), false); 709 manager.setInForeground(connection.getPid(), false);
709 manager.determinedVisibility(connection.getPid()); 710 manager.determinedVisibility(connection.getPid());
710 Assert.assertTrue(connection.isModerateBindingBound()); 711 Assert.assertTrue(connection.isModerateBindingBound());
711 712
712 manager.onSentToBackground(); 713 manager.onSentToBackground();
713 Robolectric.runUiThreadTasksIncludingDelayedTasks(); 714 ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
714 Assert.assertFalse(connection.isModerateBindingBound()); 715 Assert.assertFalse(connection.isModerateBindingBound());
715 716
716 // Bringing Chrome to the foreground should not re-add the moderate bind ings. 717 // Bringing Chrome to the foreground should not re-add the moderate bind ings.
717 manager.onBroughtToForeground(); 718 manager.onBroughtToForeground();
718 Assert.assertFalse(connection.isModerateBindingBound()); 719 Assert.assertFalse(connection.isModerateBindingBound());
719 } 720 }
720 } 721 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698