OLD | NEW |
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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 ]); | 63 ]); |
64 fixture.makeAndRegisterMockApis([ | 64 fixture.makeAndRegisterMockApis([ |
65 'authenticationManager.isSignedIn', | 65 'authenticationManager.isSignedIn', |
66 'chrome.location.clearWatch', | 66 'chrome.location.clearWatch', |
67 'chrome.storage.local.remove', | 67 'chrome.storage.local.remove', |
68 'instrumented.metricsPrivate.getVariationParams', | 68 'instrumented.metricsPrivate.getVariationParams', |
69 'instrumented.notifications.getAll', | 69 'instrumented.notifications.getAll', |
70 'instrumented.notifications.getPermissionLevel', | 70 'instrumented.notifications.getPermissionLevel', |
71 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get', | 71 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get', |
72 'instrumented.storage.local.get', | 72 'instrumented.storage.local.get', |
| 73 'instrumented.webstorePrivate.getBrowserLogin', |
73 'tasks.add', | 74 'tasks.add', |
74 'updateCardsAttempts.isRunning', | 75 'updateCardsAttempts.isRunning', |
75 'updateCardsAttempts.stop' | 76 'updateCardsAttempts.stop' |
76 ]); | 77 ]); |
77 } | 78 } |
78 | 79 |
79 /** | 80 /** |
80 * Sets up the test to expect the state machine calls and send | 81 * Sets up the test to expect the state machine calls and send |
81 * the specified state machine state. Currently used to test initialize(). | 82 * the specified state machine state. Currently used to test initialize(). |
82 * Note that this CAN NOT be used if any of the methods below are called | 83 * Note that this CAN NOT be used if any of the methods below are called |
83 * outside of this context with the same argument matchers. | 84 * outside of this context with the same argument matchers. |
84 * expects() calls cannot be chained with the same argument matchers. | 85 * expects() calls cannot be chained with the same argument matchers. |
85 * @param {object} fixture Test fixture. | 86 * @param {object} fixture Test fixture. |
86 * @param {string} testIdentityToken getAuthToken callback token. | 87 * @param {string} testIdentityToken getAuthToken callback token. |
87 * @param {boolean} testGeolocationPref Geolocation Preference callback value. | 88 * @param {boolean} testGeolocationPref Geolocation Preference callback value. |
88 * @param {object} testExperimentVariationParams Response of | 89 * @param {object} testExperimentVariationParams Response of |
89 * metricsPrivate.getVariationParams. | 90 * metricsPrivate.getVariationParams. |
90 * @param {string} testExperimentVariationParams Response of | 91 * @param {string} testExperimentVariationParams Response of |
91 * notifications.getPermissionLevel. | 92 * notifications.getPermissionLevel. |
92 * @param {boolean} testGoogleNowEnabled True if the user is opted in to Google | 93 * @param {boolean} testGoogleNowEnabled True if the user is opted in to Google |
93 * Now. | 94 * Now. |
94 */ | 95 */ |
95 function expectStateMachineCalls( | 96 function expectStateMachineCalls( |
96 fixture, | 97 fixture, |
97 testIdentityToken, | 98 testIdentityToken, |
98 testGeolocationPref, | 99 testGeolocationPref, |
99 testExperimentVariationParams, | 100 testExperimentVariationParams, |
100 testNotificationPermissionLevel, | 101 testNotificationPermissionLevel, |
101 testGoogleNowEnabled) { | 102 testGoogleNowEnabled) { |
102 var authenticationManagerIsSignedInSavedArgs = new SaveMockArguments(); | |
103 fixture.mockApis.expects(once()). | 103 fixture.mockApis.expects(once()). |
104 authenticationManager_isSignedIn( | 104 authenticationManager_isSignedIn(). |
105 authenticationManagerIsSignedInSavedArgs.match(ANYTHING)). | 105 will(returnValue(new Promise(function(resolve) { |
106 will(invokeCallback( | 106 resolve(!!testIdentityToken); |
107 authenticationManagerIsSignedInSavedArgs, | 107 }))); |
108 0, | |
109 testIdentityToken)); | |
110 | 108 |
111 var getVariationParamsSavedArgs = new SaveMockArguments(); | 109 var getVariationParamsSavedArgs = new SaveMockArguments(); |
112 fixture.mockApis.expects(once()). | 110 fixture.mockApis.expects(once()). |
113 instrumented_metricsPrivate_getVariationParams( | 111 instrumented_metricsPrivate_getVariationParams( |
114 getVariationParamsSavedArgs.match(ANYTHING), | 112 getVariationParamsSavedArgs.match(ANYTHING), |
115 getVariationParamsSavedArgs.match(ANYTHING)). | 113 getVariationParamsSavedArgs.match(ANYTHING)). |
116 will(invokeCallback( | 114 will(invokeCallback( |
117 getVariationParamsSavedArgs, 1, testExperimentVariationParams)); | 115 getVariationParamsSavedArgs, 1, testExperimentVariationParams)); |
118 | 116 |
119 var googleGeolocationPrefGetSavedArgs = new SaveMockArguments(); | 117 var googleGeolocationPrefGetSavedArgs = new SaveMockArguments(); |
120 fixture.mockApis.expects(once()). | 118 fixture.mockApis.expects(once()). |
121 instrumented_preferencesPrivate_googleGeolocationAccessEnabled_get( | 119 instrumented_preferencesPrivate_googleGeolocationAccessEnabled_get( |
122 googleGeolocationPrefGetSavedArgs.match(eqJSON({})), | 120 googleGeolocationPrefGetSavedArgs.match(eqJSON({})), |
123 googleGeolocationPrefGetSavedArgs.match(ANYTHING)). | 121 googleGeolocationPrefGetSavedArgs.match(ANYTHING)). |
124 will(invokeCallback( | 122 will(invokeCallback( |
125 googleGeolocationPrefGetSavedArgs, 1, {value: testGeolocationPref})); | 123 googleGeolocationPrefGetSavedArgs, 1, {value: testGeolocationPref})); |
126 | 124 |
127 var notificationGetPermissionLevelSavedArgs = new SaveMockArguments(); | 125 var notificationGetPermissionLevelSavedArgs = new SaveMockArguments(); |
128 fixture.mockApis.expects(once()). | 126 fixture.mockApis.expects(once()). |
129 instrumented_notifications_getPermissionLevel( | 127 instrumented_notifications_getPermissionLevel( |
130 notificationGetPermissionLevelSavedArgs.match(ANYTHING)). | 128 notificationGetPermissionLevelSavedArgs.match(ANYTHING)). |
131 will(invokeCallback( | 129 will(invokeCallback( |
132 notificationGetPermissionLevelSavedArgs, | 130 notificationGetPermissionLevelSavedArgs, |
133 0, | 131 0, |
134 testNotificationPermissionLevel)) | 132 testNotificationPermissionLevel)) |
135 | 133 |
136 var storageGetSavedArgs = new SaveMockArguments();» | 134 var storageGetSavedArgs = new SaveMockArguments(); |
137 fixture.mockApis.expects(once()).» | 135 fixture.mockApis.expects(once()). |
138 instrumented_storage_local_get(» | 136 instrumented_storage_local_get( |
139 storageGetSavedArgs.match(eq('googleNowEnabled')),» | 137 storageGetSavedArgs.match(eq('googleNowEnabled')), |
140 storageGetSavedArgs.match(ANYTHING)).» | 138 storageGetSavedArgs.match(ANYTHING)). |
141 will(invokeCallback( | 139 will(invokeCallback( |
142 storageGetSavedArgs, 1, {googleNowEnabled: testGoogleNowEnabled}));»
| 140 storageGetSavedArgs, 1, {googleNowEnabled: testGoogleNowEnabled})); |
143 | 141 |
144 fixture.mockGlobals.expects(once()). | 142 fixture.mockGlobals.expects(once()). |
145 setBackgroundEnable(ANYTHING); | 143 setBackgroundEnable(ANYTHING); |
146 } | 144 } |
147 | 145 |
148 /** | 146 /** |
149 * Sets up the test to expect the initialization calls that | 147 * Sets up the test to expect the initialization calls that |
150 * initialize() invokes. | 148 * initialize() invokes. |
151 * Note that this CAN NOT be used if any of the methods below are called | 149 * Note that this CAN NOT be used if any of the methods below are called |
152 * outside of this context with the same argument matchers. | 150 * outside of this context with the same argument matchers. |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 receivedNotificationWithShowTime | 588 receivedNotificationWithShowTime |
591 ] | 589 ] |
592 }; | 590 }; |
593 | 591 |
594 // Invoking the tested function. | 592 // Invoking the tested function. |
595 combineGroup(combinedCards, storedGroup); | 593 combineGroup(combinedCards, storedGroup); |
596 | 594 |
597 // Check the output value. | 595 // Check the output value. |
598 var expectedCombinedCards = { | 596 var expectedCombinedCards = { |
599 'EXISTING CARD': [ | 597 'EXISTING CARD': [ |
600 1, | 598 1, |
601 { | 599 { |
602 receivedNotification: receivedNotificationNoShowTime, | 600 receivedNotification: receivedNotificationNoShowTime, |
603 hideTime: 11000 | 601 hideTime: 11000 |
604 } | 602 } |
605 ], | 603 ], |
606 'NEW CARD': [ | 604 'NEW CARD': [ |
607 { | 605 { |
608 receivedNotification: receivedNotificationWithShowTime, | 606 receivedNotification: receivedNotificationWithShowTime, |
609 showTime: 12000, | 607 showTime: 12000, |
610 hideTime: 13000 | 608 hideTime: 13000 |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 eqJSON({ | 887 eqJSON({ |
890 notificationGroups: expectedUpdatedGroups, | 888 notificationGroups: expectedUpdatedGroups, |
891 recentDismissals: {}})); | 889 recentDismissals: {}})); |
892 | 890 |
893 this.mockGlobals.expects(once()). | 891 this.mockGlobals.expects(once()). |
894 recordEvent(GoogleNowEvent.CARDS_PARSE_SUCCESS); | 892 recordEvent(GoogleNowEvent.CARDS_PARSE_SUCCESS); |
895 | 893 |
896 // Invoking the tested function. | 894 // Invoking the tested function. |
897 processServerResponse(serverResponse, fakeOnCardShownFunction); | 895 processServerResponse(serverResponse, fakeOnCardShownFunction); |
898 }); | 896 }); |
OLD | NEW |