| Index: chrome/browser/resources/google_now/background_unittest.gtestjs
|
| diff --git a/chrome/browser/resources/google_now/background_unittest.gtestjs b/chrome/browser/resources/google_now/background_unittest.gtestjs
|
| index 20d9455e11e35332dade5372670a3273388551d9..22ac6152ee48a9b51d069a8efa3cc29a8d8d1e4b 100644
|
| --- a/chrome/browser/resources/google_now/background_unittest.gtestjs
|
| +++ b/chrome/browser/resources/google_now/background_unittest.gtestjs
|
| @@ -336,9 +336,7 @@ TEST_F(TEST_NAME, 'RequestNotificationGroupsFromServerFailure', function() {
|
| TEST_F(TEST_NAME, 'RequestAndUpdateOptInOptedIn', function() {
|
| this.makeAndRegisterMockApis([
|
| 'chrome.storage.local.set',
|
| - 'onStateChange',
|
| - 'requestFromServer',
|
| - 'scheduleNextPoll'
|
| + 'requestFromServer'
|
| ]);
|
|
|
| this.mockApis.expects(once()).requestFromServer('GET', 'settings/optin')
|
| @@ -349,14 +347,11 @@ TEST_F(TEST_NAME, 'RequestAndUpdateOptInOptedIn', function() {
|
| this.mockApis.expects(once())
|
| .chrome_storage_local_set(eqJSON({googleNowEnabled: true}));
|
|
|
| - this.mockApis.expects(once()).onStateChange();
|
| -
|
| - this.mockApis.expects(never()).scheduleNextPoll();
|
| -
|
| var thenCalled = false;
|
| var catchCalled = false;
|
| - requestAndUpdateOptedIn().then(function() {
|
| + requestAndUpdateOptedIn().then(function(optedIn) {
|
| thenCalled = true;
|
| + assertTrue(optedIn);
|
| }).catch(function() {
|
| catchCalled = true;
|
| });
|
| @@ -367,9 +362,7 @@ TEST_F(TEST_NAME, 'RequestAndUpdateOptInOptedIn', function() {
|
| TEST_F(TEST_NAME, 'RequestAndUpdateOptInOptedOut', function() {
|
| this.makeAndRegisterMockApis([
|
| 'chrome.storage.local.set',
|
| - 'onStateChange',
|
| - 'requestFromServer',
|
| - 'scheduleNextPoll'
|
| + 'requestFromServer'
|
| ]);
|
|
|
| this.mockApis.expects(once()).requestFromServer('GET', 'settings/optin')
|
| @@ -377,29 +370,25 @@ TEST_F(TEST_NAME, 'RequestAndUpdateOptInOptedOut', function() {
|
| status: 200,
|
| responseText: '{"value": false}'})));
|
|
|
| - this.mockApis.expects(never()).chrome_storage_local_set();
|
| -
|
| - this.mockApis.expects(never()).onStateChange();
|
| -
|
| - this.mockApis.expects(once()).scheduleNextPoll(eqJSON({}), false);
|
| + this.mockApis.expects(once())
|
| + .chrome_storage_local_set(eqJSON({googleNowEnabled: false}));
|
|
|
| var thenCalled = false;
|
| var catchCalled = false;
|
| - requestAndUpdateOptedIn().then(function() {
|
| + requestAndUpdateOptedIn().then(function(optedIn) {
|
| thenCalled = true;
|
| + assertFalse(optedIn);
|
| }).catch(function() {
|
| catchCalled = true;
|
| });
|
| - assertFalse(thenCalled);
|
| - assertTrue(catchCalled);
|
| + assertTrue(thenCalled);
|
| + assertFalse(catchCalled);
|
| });
|
|
|
| TEST_F(TEST_NAME, 'RequestAndUpdateOptInFailure', function() {
|
| this.makeAndRegisterMockApis([
|
| 'chrome.storage.local.set',
|
| - 'onStateChange',
|
| - 'requestFromServer',
|
| - 'scheduleNextPoll'
|
| + 'requestFromServer'
|
| ]);
|
|
|
| this.mockApis.expects(once()).requestFromServer('GET', 'settings/optin')
|
| @@ -407,10 +396,6 @@ TEST_F(TEST_NAME, 'RequestAndUpdateOptInFailure', function() {
|
|
|
| this.mockApis.expects(never()).chrome_storage_local_set();
|
|
|
| - this.mockApis.expects(never()).onStateChange();
|
| -
|
| - this.mockApis.expects(never()).scheduleNextPoll();
|
| -
|
| var thenCalled = false;
|
| var catchCalled = false;
|
| requestAndUpdateOptedIn().then(function() {
|
| @@ -423,6 +408,73 @@ TEST_F(TEST_NAME, 'RequestAndUpdateOptInFailure', function() {
|
| });
|
|
|
| /**
|
| + * pollOptedInNoImmediateRecheck Tests
|
| + */
|
| +TEST_F(TEST_NAME, 'pollOptedInNoImmediateRecheckOptedIn', function() {
|
| + this.makeAndRegisterMockApis([
|
| + 'requestAndUpdateOptedIn',
|
| + 'instrumented.metricsPrivate.getVariationParams',
|
| + 'optInPollAttempts.start'
|
| + ]);
|
| +
|
| + this.mockApis.expects(once()).requestAndUpdateOptedIn()
|
| + .will(returnValue(Promise.resolve(true)));
|
| +
|
| + this.mockApis.expects(never())
|
| + .instrumented_metricsPrivate_getVariationParams();
|
| +
|
| + this.mockApis.expects(never()).optInPollAttempts_start();
|
| +
|
| + pollOptedInNoImmediateRecheck();
|
| +});
|
| +
|
| +TEST_F(TEST_NAME, 'pollOptedInNoImmediateRecheckOptedOut', function() {
|
| + this.makeAndRegisterMockApis([
|
| + 'requestAndUpdateOptedIn',
|
| + 'instrumented.metricsPrivate.getVariationParams',
|
| + 'optInPollAttempts.start'
|
| + ]);
|
| +
|
| + this.mockApis.expects(once()).requestAndUpdateOptedIn()
|
| + .will(returnValue(Promise.resolve(false)));
|
| +
|
| + var getVariationParamsSavedArgs = new SaveMockArguments();
|
| + this.mockApis.expects(once())
|
| + .instrumented_metricsPrivate_getVariationParams(
|
| + getVariationParamsSavedArgs.match(eq('GoogleNow')),
|
| + getVariationParamsSavedArgs.match(ANYTHING))
|
| + .will(invokeCallback(getVariationParamsSavedArgs, 1, {}));
|
| +
|
| + this.mockApis.expects(once())
|
| + .optInPollAttempts_start(DEFAULT_OPTIN_CHECK_PERIOD_SECONDS);
|
| +
|
| + pollOptedInNoImmediateRecheck();
|
| +});
|
| +
|
| +TEST_F(TEST_NAME, 'pollOptedInNoImmediateRecheckFailure', function() {
|
| + this.makeAndRegisterMockApis([
|
| + 'requestAndUpdateOptedIn',
|
| + 'instrumented.metricsPrivate.getVariationParams',
|
| + 'optInPollAttempts.start'
|
| + ]);
|
| +
|
| + this.mockApis.expects(once()).requestAndUpdateOptedIn()
|
| + .will(returnValue(Promise.reject()));
|
| +
|
| + var getVariationParamsSavedArgs = new SaveMockArguments();
|
| + this.mockApis.expects(once())
|
| + .instrumented_metricsPrivate_getVariationParams(
|
| + getVariationParamsSavedArgs.match(eq('GoogleNow')),
|
| + getVariationParamsSavedArgs.match(ANYTHING))
|
| + .will(invokeCallback(getVariationParamsSavedArgs, 1, {}));
|
| +
|
| + this.mockApis.expects(once())
|
| + .optInPollAttempts_start(DEFAULT_OPTIN_CHECK_PERIOD_SECONDS);
|
| +
|
| + pollOptedInNoImmediateRecheck();
|
| +});
|
| +
|
| +/**
|
| * getGroupsToRequest Tests
|
| */
|
| TEST_F(TEST_NAME, 'GetGroupsToRequestNone', function() {
|
| @@ -531,6 +583,7 @@ TEST_F(TEST_NAME, 'CombineGroup', function() {
|
| */
|
| function mockInitializeDependencies(fixture) {
|
| fixture.makeAndRegisterMockGlobals([
|
| + 'pollOptedInNoImmediateRecheck',
|
| 'recordEvent',
|
| 'removeAllCards',
|
| 'setBackgroundEnable',
|
| @@ -545,6 +598,8 @@ function mockInitializeDependencies(fixture) {
|
| 'instrumented.notifications.getAll',
|
| 'instrumented.notifications.getPermissionLevel',
|
| 'instrumented.webstorePrivate.getBrowserLogin',
|
| + 'optInPollAttempts.isRunning',
|
| + 'optInPollAttempts.stop',
|
| 'tasks.add',
|
| 'updateCardsAttempts.isRunning',
|
| 'updateCardsAttempts.stop'
|
| @@ -607,6 +662,14 @@ function expectStateMachineCalls(
|
| will(
|
| invokeCallback(
|
| updateCardsAttemptsIsRunningSavedArgs, 0, undefined));
|
| +
|
| + var optInPollAttemptsIsRunningSavedArgs = new SaveMockArguments();
|
| + fixture.mockApis.expects(once()).
|
| + optInPollAttempts_isRunning(
|
| + optInPollAttemptsIsRunningSavedArgs.match(ANYTHING)).
|
| + will(
|
| + invokeCallback(
|
| + optInPollAttemptsIsRunningSavedArgs, 0, undefined));
|
| }
|
|
|
| /**
|
| @@ -659,6 +722,8 @@ TEST_F(TEST_NAME,'Initialize_SignedOut', function() {
|
| this.mockGlobals.expects(never()).startPollingCards();
|
| this.mockGlobals.expects(once()).stopPollingCards();
|
| this.mockGlobals.expects(once()).removeAllCards();
|
| + this.mockGlobals.expects(never()).pollOptedInNoImmediateRecheck();
|
| + this.mockApis.expects(once()).optInPollAttempts_stop();
|
|
|
| // Invoking the tested function.
|
| initialize();
|
| @@ -688,6 +753,8 @@ TEST_F(TEST_NAME,'Initialize_NotificationDisabled', function() {
|
| this.mockGlobals.expects(never()).startPollingCards();
|
| this.mockGlobals.expects(once()).stopPollingCards();
|
| this.mockGlobals.expects(once()).removeAllCards();
|
| + this.mockGlobals.expects(never()).pollOptedInNoImmediateRecheck();
|
| + this.mockApis.expects(once()).optInPollAttempts_stop();
|
|
|
| // Invoking the tested function.
|
| initialize();
|
| @@ -717,6 +784,8 @@ TEST_F(TEST_NAME, 'Initialize_NoBackground', function() {
|
| this.mockGlobals.expects(once()).startPollingCards();
|
| this.mockGlobals.expects(never()).stopPollingCards();
|
| this.mockGlobals.expects(never()).removeAllCards();
|
| + this.mockGlobals.expects(never()).pollOptedInNoImmediateRecheck();
|
| + this.mockApis.expects(once()).optInPollAttempts_stop();
|
|
|
| // Invoking the tested function.
|
| initialize();
|
| @@ -743,9 +812,11 @@ TEST_F(TEST_NAME, 'Initialize_GoogleNowDisabled', function() {
|
| testGoogleNowEnabled);
|
|
|
| this.mockGlobals.expects(once()).setBackgroundEnable(false);
|
| - this.mockGlobals.expects(once()).startPollingCards();
|
| - this.mockGlobals.expects(never()).stopPollingCards();
|
| + this.mockGlobals.expects(never()).startPollingCards();
|
| + this.mockGlobals.expects(once()).stopPollingCards();
|
| this.mockGlobals.expects(once()).removeAllCards();
|
| + this.mockGlobals.expects(once()).pollOptedInNoImmediateRecheck();
|
| + this.mockApis.expects(never()).optInPollAttempts_stop();
|
|
|
| // Invoking the tested function.
|
| initialize();
|
| @@ -776,6 +847,8 @@ TEST_F(TEST_NAME, 'Initialize_RunGoogleNow', function() {
|
| this.mockGlobals.expects(once()).startPollingCards();
|
| this.mockGlobals.expects(never()).stopPollingCards();
|
| this.mockGlobals.expects(never()).removeAllCards();
|
| + this.mockGlobals.expects(never()).pollOptedInNoImmediateRecheck();
|
| + this.mockApis.expects(once()).optInPollAttempts_stop();
|
|
|
| // Invoking the tested function.
|
| initialize();
|
| @@ -792,11 +865,13 @@ TEST_F(TEST_NAME, 'NoCardsSignedOut', function() {
|
| 'recordEvent',
|
| 'removeAllCards',
|
| 'setBackgroundEnable',
|
| - 'setShouldPollCards']);
|
| + 'setShouldPollCards',
|
| + 'setShouldPollOptInStatus']);
|
|
|
| this.mockGlobals.stubs().removeAllCards();
|
| this.mockGlobals.stubs().setBackgroundEnable(ANYTHING);
|
| this.mockGlobals.stubs().setShouldPollCards(ANYTHING);
|
| + this.mockGlobals.stubs().setShouldPollOptInStatus(ANYTHING);
|
|
|
| this.mockGlobals.expects(once()).recordEvent(
|
| GoogleNowEvent.STOPPED);
|
| @@ -817,11 +892,13 @@ TEST_F(TEST_NAME, 'NoCardsNotificationsDisabled', function() {
|
| 'recordEvent',
|
| 'removeAllCards',
|
| 'setBackgroundEnable',
|
| - 'setShouldPollCards']);
|
| + 'setShouldPollCards',
|
| + 'setShouldPollOptInStatus']);
|
|
|
| this.mockGlobals.stubs().removeAllCards();
|
| this.mockGlobals.stubs().setBackgroundEnable(ANYTHING);
|
| this.mockGlobals.stubs().setShouldPollCards(ANYTHING);
|
| + this.mockGlobals.stubs().setShouldPollOptInStatus(ANYTHING);
|
|
|
| this.mockGlobals.expects(once()).recordEvent(
|
| GoogleNowEvent.STOPPED);
|
| @@ -842,11 +919,13 @@ TEST_F(TEST_NAME, 'NoCardsGoogleNowDisabled', function() {
|
| 'recordEvent',
|
| 'removeAllCards',
|
| 'setBackgroundEnable',
|
| - 'setShouldPollCards']);
|
| + 'setShouldPollCards',
|
| + 'setShouldPollOptInStatus']);
|
|
|
| this.mockGlobals.stubs().removeAllCards();
|
| this.mockGlobals.stubs().setBackgroundEnable(ANYTHING);
|
| this.mockGlobals.stubs().setShouldPollCards(ANYTHING);
|
| + this.mockGlobals.stubs().setShouldPollOptInStatus(ANYTHING);
|
|
|
| this.mockGlobals.expects(never()).recordEvent(
|
| GoogleNowEvent.STOPPED);
|
| @@ -867,11 +946,13 @@ TEST_F(TEST_NAME, 'NoCardsEverythingEnabled', function() {
|
| 'recordEvent',
|
| 'removeAllCards',
|
| 'setBackgroundEnable',
|
| - 'setShouldPollCards']);
|
| + 'setShouldPollCards',
|
| + 'setShouldPollOptInStatus']);
|
|
|
| this.mockGlobals.stubs().removeAllCards();
|
| this.mockGlobals.stubs().setBackgroundEnable(ANYTHING);
|
| this.mockGlobals.stubs().setShouldPollCards(ANYTHING);
|
| + this.mockGlobals.stubs().setShouldPollOptInStatus(ANYTHING);
|
|
|
| this.mockGlobals.expects(never()).recordEvent(
|
| GoogleNowEvent.STOPPED);
|
| @@ -1195,7 +1276,7 @@ TEST_F(TEST_NAME, 'ProcessServerResponse', function() {
|
| };
|
|
|
| this.makeAndRegisterMockGlobals([
|
| - 'scheduleNextPoll'
|
| + 'scheduleNextCardsPoll'
|
| ]);
|
|
|
| this.makeAndRegisterMockApis([
|
| @@ -1213,8 +1294,8 @@ TEST_F(TEST_NAME, 'ProcessServerResponse', function() {
|
| recentDismissals: recentDismissals
|
| });
|
|
|
| - this.mockGlobals.expects(once()).
|
| - scheduleNextPoll(eqJSON(expectedUpdatedGroups), true);
|
| + this.mockGlobals.expects(once())
|
| + .scheduleNextCardsPoll(eqJSON(expectedUpdatedGroups));
|
|
|
| // Invoking the tested function.
|
| processServerResponse(serverResponse);
|
| @@ -1231,8 +1312,7 @@ TEST_F(TEST_NAME, 'ProcessServerResponseGoogleNowDisabled', function() {
|
| };
|
|
|
| this.makeAndRegisterMockGlobals([
|
| - 'onStateChange',
|
| - 'scheduleNextPoll',
|
| + 'scheduleNextCardsPoll'
|
| ]);
|
|
|
| this.makeAndRegisterMockApis([
|
| @@ -1243,9 +1323,7 @@ TEST_F(TEST_NAME, 'ProcessServerResponseGoogleNowDisabled', function() {
|
| this.mockApis.expects(once()).
|
| chrome_storage_local_set(eqJSON({googleNowEnabled: false}));
|
|
|
| - this.mockGlobals.expects(once()).onStateChange();
|
| -
|
| - this.mockGlobals.expects(once()).scheduleNextPoll(eqJSON({}), false);
|
| + this.mockGlobals.expects(never()).scheduleNextCardsPoll();
|
|
|
| // Invoking the tested function.
|
| processServerResponse(serverResponse);
|
|
|