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

Side by Side Diff: chrome/browser/resources/google_now/background_unittest.gtestjs

Issue 37083004: Start/Stop Cards Polling Depending on Notification Center State (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR Feedback Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/google_now/background_test_util.js ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // TODO(robliao,vadimt): Determine the granularity of testing to perform. 5 // TODO(robliao,vadimt): Determine the granularity of testing to perform.
6 6
7 /** 7 /**
8 * Test fixture for background.js. 8 * Test fixture for background.js.
9 * @constructor 9 * @constructor
10 * @extends {testing.Test} 10 * @extends {testing.Test}
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 'recordEvent', 460 'recordEvent',
461 'setBackgroundEnable', 461 'setBackgroundEnable',
462 'startPollingCards' 462 'startPollingCards'
463 ]); 463 ]);
464 fixture.makeAndRegisterMockApis([ 464 fixture.makeAndRegisterMockApis([
465 'authenticationManager.isSignedIn', 465 'authenticationManager.isSignedIn',
466 'chrome.location.clearWatch', 466 'chrome.location.clearWatch',
467 'chrome.storage.local.remove', 467 'chrome.storage.local.remove',
468 'instrumented.metricsPrivate.getVariationParams', 468 'instrumented.metricsPrivate.getVariationParams',
469 'instrumented.notifications.getAll', 469 'instrumented.notifications.getAll',
470 'instrumented.notifications.getPermissionLevel',
470 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get', 471 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get',
471 'instrumented.storage.local.get', 472 'instrumented.storage.local.get',
472 'tasks.add', 473 'tasks.add',
473 'updateCardsAttempts.isRunning', 474 'updateCardsAttempts.isRunning',
474 'updateCardsAttempts.stop' 475 'updateCardsAttempts.stop'
475 ]); 476 ]);
476 } 477 }
477 478
478 /** 479 /**
479 * Sets up the test to expect the state machine calls and send 480 * Sets up the test to expect the state machine calls and send
480 * the specified state machine state. Currently used to test initialize(). 481 * the specified state machine state. Currently used to test initialize().
481 * Note that this CAN NOT be used if any of the methods below are called 482 * Note that this CAN NOT be used if any of the methods below are called
482 * outside of this context with the same argument matchers. 483 * outside of this context with the same argument matchers.
483 * expects() calls cannot be chained with the same argument matchers. 484 * expects() calls cannot be chained with the same argument matchers.
484 * @param {object} fixture Test fixture. 485 * @param {object} fixture Test fixture.
485 * @param {string} testIdentityToken getAuthToken callback token. 486 * @param {string} testIdentityToken getAuthToken callback token.
486 * @param {boolean} testGeolocationPref Geolocation Preference callback value. 487 * @param {boolean} testGeolocationPref Geolocation Preference callback value.
487 * @param {object} testExperimentVariationParams Response of 488 * @param {object} testExperimentVariationParams Response of
488 * metricsPrivate.getVariationParams 489 * metricsPrivate.getVariationParams.
490 * @param {string} testExperimentVariationParams Response of
491 * notifications.getPermissionLevel.
489 */ 492 */
490 function expectStateMachineCalls( 493 function expectStateMachineCalls(
491 fixture, 494 fixture,
492 testIdentityToken, 495 testIdentityToken,
493 testGeolocationPref, 496 testGeolocationPref,
494 testExperimentVariationParams) { 497 testExperimentVariationParams,
498 testNotificationPermissionLevel) {
495 var authenticationManagerIsSignedInSavedArgs = new SaveMockArguments(); 499 var authenticationManagerIsSignedInSavedArgs = new SaveMockArguments();
496 fixture.mockApis.expects(once()). 500 fixture.mockApis.expects(once()).
497 authenticationManager_isSignedIn( 501 authenticationManager_isSignedIn(
498 authenticationManagerIsSignedInSavedArgs.match(ANYTHING)). 502 authenticationManagerIsSignedInSavedArgs.match(ANYTHING)).
499 will(invokeCallback( 503 will(invokeCallback(
500 authenticationManagerIsSignedInSavedArgs, 504 authenticationManagerIsSignedInSavedArgs,
501 0, 505 0,
502 testIdentityToken)); 506 testIdentityToken));
503 507
504 var getVariationParamsSavedArgs = new SaveMockArguments(); 508 var getVariationParamsSavedArgs = new SaveMockArguments();
505 fixture.mockApis.expects(once()). 509 fixture.mockApis.expects(once()).
506 instrumented_metricsPrivate_getVariationParams( 510 instrumented_metricsPrivate_getVariationParams(
507 getVariationParamsSavedArgs.match(ANYTHING), 511 getVariationParamsSavedArgs.match(ANYTHING),
508 getVariationParamsSavedArgs.match(ANYTHING)). 512 getVariationParamsSavedArgs.match(ANYTHING)).
509 will(invokeCallback( 513 will(invokeCallback(
510 getVariationParamsSavedArgs, 1, testExperimentVariationParams)); 514 getVariationParamsSavedArgs, 1, testExperimentVariationParams));
511 515
512 var googleGeolocationPrefGetSavedArgs = new SaveMockArguments(); 516 var googleGeolocationPrefGetSavedArgs = new SaveMockArguments();
513 fixture.mockApis.expects(once()). 517 fixture.mockApis.expects(once()).
514 instrumented_preferencesPrivate_googleGeolocationAccessEnabled_get( 518 instrumented_preferencesPrivate_googleGeolocationAccessEnabled_get(
515 googleGeolocationPrefGetSavedArgs.match(eqJSON({})), 519 googleGeolocationPrefGetSavedArgs.match(eqJSON({})),
516 googleGeolocationPrefGetSavedArgs.match(ANYTHING)). 520 googleGeolocationPrefGetSavedArgs.match(ANYTHING)).
517 will(invokeCallback( 521 will(invokeCallback(
518 googleGeolocationPrefGetSavedArgs, 1, {value: testGeolocationPref})); 522 googleGeolocationPrefGetSavedArgs, 1, {value: testGeolocationPref}));
519 523
524 var notificationGetPermissionLevelSavedArgs = new SaveMockArguments();
525 fixture.mockApis.expects(once()).
526 instrumented_notifications_getPermissionLevel(
527 notificationGetPermissionLevelSavedArgs.match(ANYTHING)).
528 will(invokeCallback(
529 notificationGetPermissionLevelSavedArgs,
530 0,
531 testNotificationPermissionLevel))
532
520 fixture.mockGlobals.expects(once()). 533 fixture.mockGlobals.expects(once()).
521 setBackgroundEnable(ANYTHING); 534 setBackgroundEnable(ANYTHING);
522 } 535 }
523 536
524 /** 537 /**
525 * Sets up the test to expect the initialization calls that 538 * Sets up the test to expect the initialization calls that
526 * initialize() invokes. 539 * initialize() invokes.
527 * Note that this CAN NOT be used if any of the methods below are called 540 * Note that this CAN NOT be used if any of the methods below are called
528 * outside of this context with the same argument matchers. 541 * outside of this context with the same argument matchers.
529 * expects() calls cannot be chained with the same argument matchers. 542 * expects() calls cannot be chained with the same argument matchers.
(...skipping 19 matching lines...) Expand all
549 'Initialize_ToastStateEmpty', 562 'Initialize_ToastStateEmpty',
550 function() { 563 function() {
551 // Tests the case when getAuthToken fails most likely because the user is 564 // Tests the case when getAuthToken fails most likely because the user is
552 // not signed in. In this case, the function should quietly exit after 565 // not signed in. In this case, the function should quietly exit after
553 // finding out that getAuthToken fails. 566 // finding out that getAuthToken fails.
554 567
555 // Setup and expectations. 568 // Setup and expectations.
556 var testIdentityToken = undefined; 569 var testIdentityToken = undefined;
557 var testGeolocationPref = false; 570 var testGeolocationPref = false;
558 var testExperimentVariationParams = {}; 571 var testExperimentVariationParams = {};
572 var testNotificationPermissionLevel = 'denied';
559 573
560 mockInitializeDependencies(this); 574 mockInitializeDependencies(this);
561 575
562 this.mockGlobals.expects(once()).recordEvent( 576 this.mockGlobals.expects(once()).recordEvent(
563 GoogleNowEvent.EXTENSION_START); 577 GoogleNowEvent.EXTENSION_START);
564 578
565 this.mockGlobals.expects(once()).recordEvent( 579 this.mockGlobals.expects(once()).recordEvent(
566 GoogleNowEvent.STOPPED); 580 GoogleNowEvent.STOPPED);
567 581
568 expectInitialization(this.mockApis); 582 expectInitialization(this.mockApis);
569 583
570 expectStateMachineCalls( 584 expectStateMachineCalls(
571 this, 585 this,
572 testIdentityToken, 586 testIdentityToken,
573 testGeolocationPref, 587 testGeolocationPref,
574 testExperimentVariationParams); 588 testExperimentVariationParams,
589 testNotificationPermissionLevel);
575 590
576 // Invoking the tested function. 591 // Invoking the tested function.
577 initialize(); 592 initialize();
578 }); 593 });
579 594
580 TEST_F( 595 TEST_F(
581 'GoogleNowBackgroundUnitTest', 596 'GoogleNowBackgroundUnitTest',
582 'DISABLED_Initialize_ToastStateEmpty2', 597 'DISABLED_Initialize_ToastStateEmpty2',
583 function() { 598 function() {
584 // Tests the case when getAuthToken succeeds, and the user has never 599 // Tests the case when getAuthToken succeeds, and the user has never
585 // responded to the toast. 600 // responded to the toast.
586 // In this case, the function should invoke showWelcomeToast(). 601 // In this case, the function should invoke showWelcomeToast().
587 602
588 // Setup and expectations. 603 // Setup and expectations.
589 var testIdentityToken = 'some identity token'; 604 var testIdentityToken = 'some identity token';
590 var testGeolocationPref = false; 605 var testGeolocationPref = false;
591 var testExperimentVariationParams = {}; 606 var testExperimentVariationParams = {};
607 var testNotificationPermissionLevel = 'denied';
592 608
593 mockInitializeDependencies(this); 609 mockInitializeDependencies(this);
594 610
595 this.mockGlobals.expects(once()).recordEvent( 611 this.mockGlobals.expects(once()).recordEvent(
596 GoogleNowEvent.EXTENSION_START); 612 GoogleNowEvent.EXTENSION_START);
597 613
598 expectInitialization(this.mockApis); 614 expectInitialization(this.mockApis);
599 615
600 expectStateMachineCalls( 616 expectStateMachineCalls(
601 this, 617 this,
602 testIdentityToken, 618 testIdentityToken,
603 testGeolocationPref, 619 testGeolocationPref,
604 testExperimentVariationParams); 620 testExperimentVariationParams,
621 testNotificationPermissionLevel);
605 622
606 var chromeNotificationGetAllSavedArgs = new SaveMockArguments(); 623 var chromeNotificationGetAllSavedArgs = new SaveMockArguments();
607 this.mockApis.expects(exactly(1)). 624 this.mockApis.expects(exactly(1)).
608 instrumented_notifications_getAll( 625 instrumented_notifications_getAll(
609 chromeNotificationGetAllSavedArgs.match(ANYTHING)). 626 chromeNotificationGetAllSavedArgs.match(ANYTHING)).
610 will( 627 will(
611 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}), 628 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}),
612 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {})); 629 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}));
613 630
614 // Invoking the tested function. 631 // Invoking the tested function.
615 initialize(); 632 initialize();
616 }); 633 });
617 634
618 TEST_F('GoogleNowBackgroundUnitTest', 'Initialize_RunGoogleNow', function() { 635 TEST_F('GoogleNowBackgroundUnitTest', 'Initialize_RunGoogleNow', function() {
619 // Tests if Google Now will invoke startPollingCards when all 636 // Tests if Google Now will invoke startPollingCards when all
620 // of the required state is fulfilled. 637 // of the required state is fulfilled.
621 638
622 // Setup and expectations. 639 // Setup and expectations.
623 var testIdentityToken = 'some identity token'; 640 var testIdentityToken = 'some identity token';
624 var testGeolocationPref = true; 641 var testGeolocationPref = true;
625 var testExperimentVariationParams = {}; 642 var testExperimentVariationParams = {};
643 var testNotificationPermissionLevel = 'granted';
626 644
627 mockInitializeDependencies(this); 645 mockInitializeDependencies(this);
628 646
629 this.mockGlobals.expects(once()).recordEvent( 647 this.mockGlobals.expects(once()).recordEvent(
630 GoogleNowEvent.EXTENSION_START); 648 GoogleNowEvent.EXTENSION_START);
631 649
632 expectInitialization(this.mockApis); 650 expectInitialization(this.mockApis);
633 651
634 expectStateMachineCalls( 652 expectStateMachineCalls(
635 this, 653 this,
636 testIdentityToken, 654 testIdentityToken,
637 testGeolocationPref, 655 testGeolocationPref,
638 testExperimentVariationParams); 656 testExperimentVariationParams,
657 testNotificationPermissionLevel);
639 658
640 this.mockGlobals.expects(once()).startPollingCards(); 659 this.mockGlobals.expects(once()).startPollingCards();
641 660
642 // Invoking the tested function. 661 // Invoking the tested function.
643 initialize(); 662 initialize();
644 }); 663 });
645 664
646 TEST_F( 665 TEST_F(
647 'GoogleNowBackgroundUnitTest', 666 'GoogleNowBackgroundUnitTest',
648 'DISABLED_Initialize_NoGeolocation', 667 'DISABLED_Initialize_NoGeolocation',
649 function() { 668 function() {
650 // Tests the case where everything is in place except for the 669 // Tests the case where everything is in place except for the
651 // Geolocation Preference after the user responded to the toast. 670 // Geolocation Preference after the user responded to the toast.
652 671
653 // Setup and expectations. 672 // Setup and expectations.
654 var testIdentityToken = 'some identity token'; 673 var testIdentityToken = 'some identity token';
655 var testGeolocationPref = false; 674 var testGeolocationPref = false;
656 var testExperimentVariationParams = {}; 675 var testExperimentVariationParams = {};
676 var testNotificationPermissionLevel = 'denied';
657 677
658 mockInitializeDependencies(this); 678 mockInitializeDependencies(this);
659 679
660 this.mockGlobals.expects(once()).recordEvent( 680 this.mockGlobals.expects(once()).recordEvent(
661 GoogleNowEvent.EXTENSION_START); 681 GoogleNowEvent.EXTENSION_START);
662 682
663 this.mockGlobals.expects(once()).recordEvent( 683 this.mockGlobals.expects(once()).recordEvent(
664 GoogleNowEvent.USER_SUPPRESSED); 684 GoogleNowEvent.USER_SUPPRESSED);
665 685
666 expectInitialization(this.mockApis); 686 expectInitialization(this.mockApis);
667 687
668 expectStateMachineCalls( 688 expectStateMachineCalls(
669 this, 689 this,
670 testIdentityToken, 690 testIdentityToken,
671 testGeolocationPref, 691 testGeolocationPref,
672 testExperimentVariationParams); 692 testExperimentVariationParams,
693 testNotificationPermissionLevel,
694 testNotificationPermissionLevel);
673 695
674 var chromeNotificationGetAllSavedArgs = new SaveMockArguments(); 696 var chromeNotificationGetAllSavedArgs = new SaveMockArguments();
675 this.mockApis.expects(exactly(2)). 697 this.mockApis.expects(exactly(2)).
676 instrumented_notifications_getAll( 698 instrumented_notifications_getAll(
677 chromeNotificationGetAllSavedArgs.match(ANYTHING)). 699 chromeNotificationGetAllSavedArgs.match(ANYTHING)).
678 will( 700 will(
679 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}), 701 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}),
680 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {})); 702 invokeCallback(chromeNotificationGetAllSavedArgs, 0, {}));
681 703
682 // Invoking the tested function. 704 // Invoking the tested function.
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 chromeTabsCreateSavedArgs.match(eqJSON({url: testActionUrl})), 850 chromeTabsCreateSavedArgs.match(eqJSON({url: testActionUrl})),
829 chromeTabsCreateSavedArgs.match(ANYTHING)). 851 chromeTabsCreateSavedArgs.match(ANYTHING)).
830 will(invokeCallback(chromeTabsCreateSavedArgs, 1, testCreatedTab)); 852 will(invokeCallback(chromeTabsCreateSavedArgs, 1, testCreatedTab));
831 this.mockApis.expects(once()).chrome_windows_create( 853 this.mockApis.expects(once()).chrome_windows_create(
832 eqJSON({url: testActionUrl, focused: true})); 854 eqJSON({url: testActionUrl, focused: true}));
833 855
834 // Invoking the tested function. 856 // Invoking the tested function.
835 onNotificationClicked( 857 onNotificationClicked(
836 testNotificationId, this.mockLocalFunctions.functions().selector); 858 testNotificationId, this.mockLocalFunctions.functions().selector);
837 }); 859 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/google_now/background_test_util.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698