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

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

Issue 24924002: Switching getting/dismissing cards to new protocol (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Typo Created 7 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 | Annotate | Revision Log
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 /** 5 /**
6 * Test fixture for background.js. 6 * Test fixture for background.js.
7 * @constructor 7 * @constructor
8 * @extends {testing.Test} 8 * @extends {testing.Test}
9 */ 9 */
10 function GoogleNowBackgroundUnitTest () { 10 function GoogleNowBackgroundUnitTest () {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 testTaskPair(RETRY_DISMISS_TASK_NAME, DISMISS_CARD_TASK_NAME, true); 42 testTaskPair(RETRY_DISMISS_TASK_NAME, DISMISS_CARD_TASK_NAME, true);
43 testTaskPair(RETRY_DISMISS_TASK_NAME, RETRY_DISMISS_TASK_NAME, true); 43 testTaskPair(RETRY_DISMISS_TASK_NAME, RETRY_DISMISS_TASK_NAME, true);
44 testTaskPair(RETRY_DISMISS_TASK_NAME, STATE_CHANGED_TASK_NAME, false); 44 testTaskPair(RETRY_DISMISS_TASK_NAME, STATE_CHANGED_TASK_NAME, false);
45 45
46 testTaskPair(STATE_CHANGED_TASK_NAME, UPDATE_CARDS_TASK_NAME, false); 46 testTaskPair(STATE_CHANGED_TASK_NAME, UPDATE_CARDS_TASK_NAME, false);
47 testTaskPair(STATE_CHANGED_TASK_NAME, DISMISS_CARD_TASK_NAME, false); 47 testTaskPair(STATE_CHANGED_TASK_NAME, DISMISS_CARD_TASK_NAME, false);
48 testTaskPair(STATE_CHANGED_TASK_NAME, RETRY_DISMISS_TASK_NAME, false); 48 testTaskPair(STATE_CHANGED_TASK_NAME, RETRY_DISMISS_TASK_NAME, false);
49 testTaskPair(STATE_CHANGED_TASK_NAME, STATE_CHANGED_TASK_NAME, false); 49 testTaskPair(STATE_CHANGED_TASK_NAME, STATE_CHANGED_TASK_NAME, false);
50 }); 50 });
51 51
52 var testNotificationId = 'TEST GROUP-SOME TEST ID';
53 var testChromeNotificationId = 'TEST CARD ID';
54 var testNotification1 =
55 {testNotificationField: 'TEST NOTIFICATION VALUE1', priority: -1};
56 var testNotification2 =
57 {testNotificationField: 'TEST NOTIFICATION VALUE2', priority: 0};
58 var testActionUrls1 = {testField: 'TEST VALUE1'};
59 var testActionUrls2 = {testField: 'TEST VALUE2'};
60 var testDismissal1 = {testDismissalField: 'TEST DISMISSAL VALUE 1'};
61 var testDismissal2 = {testDismissalField: 'TEST DISMISSAL VALUE 2'};
62 var testVersion = 7;
63 var testTimestamp1 = 300000;
64 var testTimestamp2 = 600000;
65 var testGroupRank1 = 19;
66 var testGroupRank2 = 23;
67 var testTriggerWire = {showTimeSec: 100, hideTimeSec: 200};
68 var testTriggerMerged = {showTime: 300007, hideTime: 300011};
69 var testVersion1 = 29;
70 var testVersion2 = 31;
71
72 TEST_F(
73 'GoogleNowBackgroundUnitTest',
74 'MergeCardsEmptyNoTrigger',
75 function() {
76 // Tests merging a card with an empty trigger into an 'undefined' merged
77 // card. This should start a new card.
78
79 // Invoking the tested function.
80 var resultingMergedCard = mergeCards(undefined, {
81 notificationId: testNotificationId,
82 chromeNotificationId: testChromeNotificationId,
83 version: testVersion1,
84 chromeNotificationOptions: testNotification1,
85 actionUrls: testActionUrls1,
86 dismissal: testDismissal1
87 }, testTimestamp1, testGroupRank1);
88
89 // Check the return value.
90 assertEquals(
91 JSON.stringify({
92 dismissals: [{notificationId: testNotificationId, parameters: testDi smissal1}],
robliao 2013/09/27 19:41:55 Add Linebreak
vadimt 2013/09/27 21:06:00 Done.
93 groupRank: testGroupRank1,
94 trigger: {},
95 timestamp: testTimestamp1,
96 notification: testNotification1,
97 actionUrls: testActionUrls1,
98 version: testVersion1
99 }),
100 JSON.stringify(resultingMergedCard));
101 });
102
103 TEST_F(
104 'GoogleNowBackgroundUnitTest',
105 'MergeCards1',
106 function() {
107 // Tests merging a wire card into a merged card.
108 // Wire card priority is greater than merged card one. Wire card rank is
robliao 2013/09/27 19:41:55 Do we have a case where wire card priority == merg
vadimt 2013/09/27 21:06:00 No; I just didn't think it's an interesting case t
robliao 2013/09/27 21:17:22 It may be interesting if the merged card changed i
vadimt 2013/09/30 17:07:04 Well, here we know that priority is not used for d
109 // less than merged card one, and it's older.
110
111 // Setup.
112 var mergedCard = {
113 trigger: testTriggerMerged,
114 version: testVersion1,
115 timestamp: testTimestamp2,
116 notification: testNotification1,
117 actionUrls: testActionUrls1,
118 groupRank: testGroupRank2,
119 dismissals:
120 [{notificationId: testNotificationId, parameters: testDismissal1}]
121 };
122
123 var unmergedNotification = {
124 notificationId: testNotificationId,
125 chromeNotificationId: testChromeNotificationId,
126 version: testVersion2,
127 chromeNotificationOptions: testNotification2,
128 actionUrls: testActionUrls2,
129 dismissal: testDismissal2,
130 trigger: testTriggerWire
131 };
132
133 // Invoking the tested function.
134 var resultingMergedCard = mergeCards(
135 mergedCard, unmergedNotification, testTimestamp1, testGroupRank1);
136
137 // Check the return value.
138 assertEquals(
139 JSON.stringify({
140 trigger: testTriggerMerged,
141 version: testVersion1,
142 timestamp: testTimestamp2,
143 notification: {
144 testNotificationField: 'TEST NOTIFICATION VALUE1',
145 priority: 0
146 },
147 actionUrls: testActionUrls1,
148 groupRank: testGroupRank2,
149 dismissals: [
150 {notificationId: testNotificationId, parameters: testDismissal1},
151 {notificationId: testNotificationId, parameters: testDismissal2}
152 ]
153 }),
154 JSON.stringify(resultingMergedCard));
155 });
156
157 TEST_F(
158 'GoogleNowBackgroundUnitTest',
159 'MergeCards2',
160 function() {
161 // Tests merging a wire card into a merged card.
162 // Wire card priority is less than merged card one. Wire card rank is
163 // greater than merged card one, and it's older.
164
165 // Setup.
166 var mergedCard = {
167 trigger: testTriggerMerged,
168 version: testVersion1,
169 timestamp: testTimestamp2,
170 notification: testNotification2,
171 actionUrls: testActionUrls1,
172 groupRank: testGroupRank1,
173 dismissals:
174 [{notificationId: testNotificationId, parameters: testDismissal1}]
175 };
176
177 var unmergedNotification = {
178 notificationId: testNotificationId,
179 chromeNotificationId: testChromeNotificationId,
180 version: testVersion2,
181 chromeNotificationOptions: testNotification1,
182 actionUrls: testActionUrls2,
183 dismissal: testDismissal2,
184 trigger: testTriggerWire
185 };
186
187 // Invoking the tested function.
188 var resultingMergedCard = mergeCards(
189 mergedCard, unmergedNotification, testTimestamp1, testGroupRank2);
190
191 // Check the return value.
192 assertEquals(
193 JSON.stringify({
194 trigger: {showTime: 400000, hideTime: 500000},
195 version: testVersion1,
196 timestamp: testTimestamp2,
197 notification: {
198 testNotificationField: 'TEST NOTIFICATION VALUE2',
199 priority: 0
200 },
201 actionUrls: testActionUrls1,
202 groupRank: testGroupRank2,
203 dismissals: [
204 {notificationId: testNotificationId, parameters: testDismissal1},
205 {notificationId: testNotificationId, parameters: testDismissal2}
206 ]
207 }),
208 JSON.stringify(resultingMergedCard));
209 });
210
211 TEST_F(
212 'GoogleNowBackgroundUnitTest',
213 'MergeCards3',
214 function() {
215 // Tests merging a wire card into a merged card.
216 // Wire card priority is less than merged card one. Wire card rank is
217 // less than merged card one, and it's newer.
218
219 // Setup.
220 var mergedCard = {
221 trigger: testTriggerMerged,
222 version: testVersion1,
223 timestamp: testTimestamp1,
224 notification: testNotification2,
225 actionUrls: testActionUrls1,
226 groupRank: testGroupRank2,
227 dismissals:
228 [{notificationId: testNotificationId, parameters: testDismissal1}]
229 };
230
231 var unmergedNotification = {
232 notificationId: testNotificationId,
233 chromeNotificationId: testChromeNotificationId,
234 version: testVersion2,
235 chromeNotificationOptions: testNotification1,
236 actionUrls: testActionUrls2,
237 dismissal: testDismissal2,
238 trigger: testTriggerWire
239 };
240
241 // Invoking the tested function.
242 var resultingMergedCard = mergeCards(
243 mergedCard, unmergedNotification, testTimestamp2, testGroupRank1);
244
245 // Check the return value.
246 assertEquals(
247 JSON.stringify({
248 trigger: testTriggerMerged,
249 version: testVersion2,
250 timestamp: testTimestamp2,
251 notification: {
252 testNotificationField: 'TEST NOTIFICATION VALUE1',
253 priority: 0
254 },
255 actionUrls: testActionUrls2,
256 groupRank: testGroupRank2,
257 dismissals: [
258 {notificationId: testNotificationId, parameters: testDismissal1},
259 {notificationId: testNotificationId, parameters: testDismissal2}
260 ]
261 }),
262 JSON.stringify(resultingMergedCard));
263 });
264
265 TEST_F(
266 'GoogleNowBackgroundUnitTest',
267 'MergeGroup',
268 function() {
269 // Tests mergeGroup method.
270
271 // Setup.
272 this.makeAndRegisterMockGlobals(['mergeCards']);
273
274 this.mockGlobals.expects(once()).
275 mergeCards(
276 undefined,
277 eqJSON({chromeNotificationId: 'ID 1', testField: 'TEST_FIELD1'}),
278 300000,
279 17).
280 will(returnValue({testField: 'RESULT 1'}));
281 this.mockGlobals.expects(once()).
282 mergeCards(
283 eqJSON({testField: 'TEST_FIELD22'}),
284 eqJSON({chromeNotificationId: 'ID 2', testField: 'TEST_FIELD2'}),
285 300000,
286 17).
287 will(returnValue({testField: 'RESULT 2'}));
288
289 var group = {
290 cards: [
291 {chromeNotificationId: 'ID 1', testField: 'TEST_FIELD1'},
292 {chromeNotificationId: 'ID 2', testField: 'TEST_FIELD2'}
293 ],
294 cardsTimestamp: 300000,
295 nextPollTime: 600000,
296 rank: 17
297 };
298
299 var mergedCards = {
300 'ID 2': { testField: 'TEST_FIELD22' },
301 'ID 3': { testField: 'TEST_FIELD3' }
302 };
303
304 // Invoking the tested function.
305 mergeGroup(mergedCards, group);
306
307 // Check the output parameter.
308 assertEquals(
309 JSON.stringify({
310 'ID 2': { testField: 'RESULT 2' },
311 'ID 3': { testField: 'TEST_FIELD3'},
312 'ID 1': { testField: 'RESULT 1' }}),
313 JSON.stringify(mergedCards));
314 });
315
52 /** 316 /**
53 * Mocks global functions and APIs that initialize() depends upon. 317 * Mocks global functions and APIs that initialize() depends upon.
54 * @param {Test} fixture Test fixture. 318 * @param {Test} fixture Test fixture.
55 */ 319 */
56 function mockInitializeDependencies(fixture) { 320 function mockInitializeDependencies(fixture) {
57 fixture.makeAndRegisterMockGlobals([ 321 fixture.makeAndRegisterMockGlobals([
58 'recordEvent', 322 'recordEvent',
59 'setBackgroundEnable', 323 'setBackgroundEnable',
60 'showWelcomeToast', 324 'showWelcomeToast',
61 'startPollingCards' 325 'startPollingCards'
62 ]); 326 ]);
63 fixture.makeAndRegisterMockApis([ 327 fixture.makeAndRegisterMockApis([
64 'authenticationManager.isSignedIn', 328 'authenticationManager.isSignedIn',
65 'chrome.location.clearWatch', 329 'chrome.location.clearWatch',
66 'chrome.storage.local.set', 330 'chrome.storage.local.remove',
67 'instrumented.metricsPrivate.getVariationParams', 331 'instrumented.metricsPrivate.getVariationParams',
68 'instrumented.notifications.getAll', 332 'instrumented.notifications.getAll',
69 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get', 333 'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get',
70 'instrumented.storage.local.get', 334 'instrumented.storage.local.get',
71 'tasks.add', 335 'tasks.add',
72 'updateCardsAttempts.isRunning', 336 'updateCardsAttempts.isRunning',
73 'updateCardsAttempts.stop' 337 'updateCardsAttempts.stop'
74 ]); 338 ]);
75 } 339 }
76 340
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 * Note that this CAN NOT be used if any of the methods below are called 405 * Note that this CAN NOT be used if any of the methods below are called
142 * outside of this context with the same argument matchers. 406 * outside of this context with the same argument matchers.
143 * expects() calls cannot be chained with the same argument matchers. 407 * expects() calls cannot be chained with the same argument matchers.
144 */ 408 */
145 function expectInitialization(mockApisObj) { 409 function expectInitialization(mockApisObj) {
146 mockApisObj.expects(once()). 410 mockApisObj.expects(once()).
147 chrome_location_clearWatch(ANYTHING); 411 chrome_location_clearWatch(ANYTHING);
148 mockApisObj.expects(once()). 412 mockApisObj.expects(once()).
149 updateCardsAttempts_stop(); 413 updateCardsAttempts_stop();
150 mockApisObj.expects(once()). 414 mockApisObj.expects(once()).
151 chrome_storage_local_set(eqJSON({notificationsData: {}})); 415 chrome_storage_local_remove(
416 eqJSON(['notificationsData', 'notificationGroups']));
152 var tasksAddSavedArgs = new SaveMockArguments(); 417 var tasksAddSavedArgs = new SaveMockArguments();
153 mockApisObj.expects(once()). 418 mockApisObj.expects(once()).
154 tasks_add( 419 tasks_add(
155 tasksAddSavedArgs.match(ANYTHING), 420 tasksAddSavedArgs.match(ANYTHING),
156 tasksAddSavedArgs.match(ANYTHING)). 421 tasksAddSavedArgs.match(ANYTHING)).
157 will(invokeCallback(tasksAddSavedArgs, 1, function() {})); 422 will(invokeCallback(tasksAddSavedArgs, 1, function() {}));
158 var updateCardsAttemptsIsRunningSavedArgs = new SaveMockArguments(); 423 var updateCardsAttemptsIsRunningSavedArgs = new SaveMockArguments();
159 mockApisObj.expects(once()). 424 mockApisObj.expects(once()).
160 updateCardsAttempts_isRunning( 425 updateCardsAttempts_isRunning(
161 updateCardsAttemptsIsRunningSavedArgs.match(ANYTHING)). 426 updateCardsAttemptsIsRunningSavedArgs.match(ANYTHING)).
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 chromeTabsCreateSavedArgs.match(eqJSON({url: testActionUrl})), 784 chromeTabsCreateSavedArgs.match(eqJSON({url: testActionUrl})),
520 chromeTabsCreateSavedArgs.match(ANYTHING)). 785 chromeTabsCreateSavedArgs.match(ANYTHING)).
521 will(invokeCallback(chromeTabsCreateSavedArgs, 1, testCreatedTab)); 786 will(invokeCallback(chromeTabsCreateSavedArgs, 1, testCreatedTab));
522 this.mockApis.expects(once()).chrome_windows_create( 787 this.mockApis.expects(once()).chrome_windows_create(
523 eqJSON({url: testActionUrl, focused: true})); 788 eqJSON({url: testActionUrl, focused: true}));
524 789
525 // Invoking the tested function. 790 // Invoking the tested function.
526 onNotificationClicked( 791 onNotificationClicked(
527 testNotificationId, this.mockLocalFunctions.functions().selector); 792 testNotificationId, this.mockLocalFunctions.functions().selector);
528 }); 793 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698