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 a837bfe4bf67c7ac720d5da2e6c18b34aefff1c4..0099576f4a1e4c67b983095e34186f27dff82e50 100644 |
--- a/chrome/browser/resources/google_now/background_unittest.gtestjs |
+++ b/chrome/browser/resources/google_now/background_unittest.gtestjs |
@@ -51,406 +51,6 @@ TEST_F('GoogleNowBackgroundUnitTest', 'AreTasksConflicting', function() { |
testTaskPair(STATE_CHANGED_TASK_NAME, STATE_CHANGED_TASK_NAME, false); |
}); |
-var testNotificationId = 'TEST GROUP-SOME TEST ID'; |
-var testChromeNotificationId = 'TEST CARD ID'; |
-var testNotification1 = |
- {testNotificationField: 'TEST NOTIFICATION VALUE1', priority: -1}; |
-var testNotification2 = |
- {testNotificationField: 'TEST NOTIFICATION VALUE2', priority: 0}; |
-var testActionUrls1 = {testField: 'TEST VALUE1'}; |
-var testActionUrls2 = {testField: 'TEST VALUE2'}; |
-var testDismissal1 = {testDismissalField: 'TEST DISMISSAL VALUE 1'}; |
-var testDismissal2 = {testDismissalField: 'TEST DISMISSAL VALUE 2'}; |
-var testVersion = 7; |
-var testTimestamp1 = 300000; |
-var testTimestamp2 = 600000; |
-var testGroupRank1 = 19; |
-var testGroupRank2 = 23; |
-var testTriggerUnmerged = {showTimeSec: 100, hideTimeSec: 200}; |
-var testTriggerMerged = {showTime: 300007, hideTime: 300011}; |
-var testVersion1 = 29; |
-var testVersion2 = 31; |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeCardsEmptyNoTrigger', |
- function() { |
- // Tests merging a card with an empty trigger into an 'undefined' merged |
- // card. This should start a new card. |
- |
- // Invoking the tested function. |
- var resultingMergedCard = mergeCards(undefined, { |
- notificationId: testNotificationId, |
- chromeNotificationId: testChromeNotificationId, |
- version: testVersion1, |
- chromeNotificationOptions: testNotification1, |
- actionUrls: testActionUrls1, |
- dismissal: testDismissal1 |
- }, testTimestamp1, testGroupRank1); |
- |
- // Check the return value. |
- assertEquals( |
- JSON.stringify({ |
- dismissals: [ |
- { |
- notificationId: testNotificationId, |
- parameters: testDismissal1 |
- } |
- ], |
- groupRank: testGroupRank1, |
- trigger: {}, |
- timestamp: testTimestamp1, |
- notification: testNotification1, |
- actionUrls: testActionUrls1, |
- version: testVersion1 |
- }), |
- JSON.stringify(resultingMergedCard)); |
- }); |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeCards1', |
- function() { |
- // Tests merging a unmerged card into a merged card. |
- // Unmerged card priority is greater than merged card one. Unmerged card |
- // rank is less than merged card one, and it's older. |
- |
- // Setup. |
- var mergedCard = { |
- trigger: testTriggerMerged, |
- version: testVersion1, |
- timestamp: testTimestamp2, |
- notification: testNotification1, |
- actionUrls: testActionUrls1, |
- groupRank: testGroupRank2, |
- dismissals: |
- [{notificationId: testNotificationId, parameters: testDismissal1}] |
- }; |
- |
- var unmergedNotification = { |
- notificationId: testNotificationId, |
- chromeNotificationId: testChromeNotificationId, |
- version: testVersion2, |
- chromeNotificationOptions: testNotification2, |
- actionUrls: testActionUrls2, |
- dismissal: testDismissal2, |
- trigger: testTriggerUnmerged |
- }; |
- |
- // Invoking the tested function. |
- var resultingMergedCard = mergeCards( |
- mergedCard, unmergedNotification, testTimestamp1, testGroupRank1); |
- |
- // Check the return value. |
- assertEquals( |
- JSON.stringify({ |
- trigger: testTriggerMerged, |
- version: testVersion1, |
- timestamp: testTimestamp2, |
- notification: { |
- testNotificationField: 'TEST NOTIFICATION VALUE1', |
- priority: 0 |
- }, |
- actionUrls: testActionUrls1, |
- groupRank: testGroupRank2, |
- dismissals: [ |
- {notificationId: testNotificationId, parameters: testDismissal1}, |
- {notificationId: testNotificationId, parameters: testDismissal2} |
- ] |
- }), |
- JSON.stringify(resultingMergedCard)); |
- }); |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeCards2', |
- function() { |
- // Tests merging a unmerged card into a merged card. |
- // Unmerged card priority is less than merged card one. Unmerged card rank |
- // is greater than merged card one, and it's older. |
- |
- // Setup. |
- var mergedCard = { |
- trigger: testTriggerMerged, |
- version: testVersion1, |
- timestamp: testTimestamp2, |
- notification: testNotification2, |
- actionUrls: testActionUrls1, |
- groupRank: testGroupRank1, |
- dismissals: |
- [{notificationId: testNotificationId, parameters: testDismissal1}] |
- }; |
- |
- var unmergedNotification = { |
- notificationId: testNotificationId, |
- chromeNotificationId: testChromeNotificationId, |
- version: testVersion2, |
- chromeNotificationOptions: testNotification1, |
- actionUrls: testActionUrls2, |
- dismissal: testDismissal2, |
- trigger: testTriggerUnmerged |
- }; |
- |
- // Invoking the tested function. |
- var resultingMergedCard = mergeCards( |
- mergedCard, unmergedNotification, testTimestamp1, testGroupRank2); |
- |
- // Check the return value. |
- assertEquals( |
- JSON.stringify({ |
- trigger: {showTime: 400000, hideTime: 500000}, |
- version: testVersion1, |
- timestamp: testTimestamp2, |
- notification: { |
- testNotificationField: 'TEST NOTIFICATION VALUE2', |
- priority: 0 |
- }, |
- actionUrls: testActionUrls1, |
- groupRank: testGroupRank2, |
- dismissals: [ |
- {notificationId: testNotificationId, parameters: testDismissal1}, |
- {notificationId: testNotificationId, parameters: testDismissal2} |
- ] |
- }), |
- JSON.stringify(resultingMergedCard)); |
- }); |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeCards3', |
- function() { |
- // Tests merging a unmerged card into a merged card. |
- // Unmerged card priority is less than merged card one. Unmerged card rank |
- // is less than merged card one, and it's newer. |
- |
- // Setup. |
- var mergedCard = { |
- trigger: testTriggerMerged, |
- version: testVersion1, |
- timestamp: testTimestamp1, |
- notification: testNotification2, |
- actionUrls: testActionUrls1, |
- groupRank: testGroupRank2, |
- dismissals: |
- [{notificationId: testNotificationId, parameters: testDismissal1}] |
- }; |
- |
- var unmergedNotification = { |
- notificationId: testNotificationId, |
- chromeNotificationId: testChromeNotificationId, |
- version: testVersion2, |
- chromeNotificationOptions: testNotification1, |
- actionUrls: testActionUrls2, |
- dismissal: testDismissal2, |
- trigger: testTriggerUnmerged |
- }; |
- |
- // Invoking the tested function. |
- var resultingMergedCard = mergeCards( |
- mergedCard, unmergedNotification, testTimestamp2, testGroupRank1); |
- |
- // Check the return value. |
- assertEquals( |
- JSON.stringify({ |
- trigger: testTriggerMerged, |
- version: testVersion2, |
- timestamp: testTimestamp2, |
- notification: { |
- testNotificationField: 'TEST NOTIFICATION VALUE1', |
- priority: 0 |
- }, |
- actionUrls: testActionUrls2, |
- groupRank: testGroupRank2, |
- dismissals: [ |
- {notificationId: testNotificationId, parameters: testDismissal1}, |
- {notificationId: testNotificationId, parameters: testDismissal2} |
- ] |
- }), |
- JSON.stringify(resultingMergedCard)); |
- }); |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeGroup', |
- function() { |
- // Tests mergeGroup method. |
- |
- // Setup. |
- this.makeAndRegisterMockGlobals(['mergeCards']); |
- |
- this.mockGlobals.expects(once()). |
- mergeCards( |
- undefined, |
- eqJSON({chromeNotificationId: 'ID 1', testField: 'TEST_FIELD1'}), |
- 300000, |
- 17). |
- will(returnValue({testField: 'RESULT 1'})); |
- this.mockGlobals.expects(once()). |
- mergeCards( |
- eqJSON({testField: 'TEST_FIELD22'}), |
- eqJSON({chromeNotificationId: 'ID 2', testField: 'TEST_FIELD2'}), |
- 300000, |
- 17). |
- will(returnValue({testField: 'RESULT 2'})); |
- |
- var group = { |
- cards: [ |
- {chromeNotificationId: 'ID 1', testField: 'TEST_FIELD1'}, |
- {chromeNotificationId: 'ID 2', testField: 'TEST_FIELD2'} |
- ], |
- cardsTimestamp: 300000, |
- nextPollTime: 600000, |
- rank: 17 |
- }; |
- |
- var mergedCards = { |
- 'ID 2': { testField: 'TEST_FIELD22' }, |
- 'ID 3': { testField: 'TEST_FIELD3' } |
- }; |
- |
- // Invoking the tested function. |
- mergeGroup(mergedCards, group); |
- |
- // Check the output parameter. |
- assertEquals( |
- JSON.stringify({ |
- 'ID 2': { testField: 'RESULT 2' }, |
- 'ID 3': { testField: 'TEST_FIELD3'}, |
- 'ID 1': { testField: 'RESULT 1' }}), |
- JSON.stringify(mergedCards)); |
- }); |
- |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'MergeAndShowNotificationCards', |
- function() { |
- // Tests mergeAndShowNotificationCards function. |
- // The test passes 2 groups to mergeAndShowNotificationCards, checks that |
- // it calls mergeGroup() for each of these groups and calls |
- // showNotificationCards() with the results of these mergeGroup() calls. |
- |
- // Setup and expectations. |
- var testGroups = { |
- 'TEST GROUP 1': {testField: 'TEST VALUE 1'}, |
- 'TEST GROUP 2': {testField: 'TEST VALUE 2'} |
- }; |
- |
- this.makeAndRegisterMockGlobals(['mergeGroup', 'showNotificationCards']); |
- |
- var mergeGroupSavedArgs = new SaveMockArguments(); |
- this.mockGlobals.expects(once()). |
- mergeGroup( |
- mergeGroupSavedArgs.match(eqJSON({})), |
- mergeGroupSavedArgs.match(eqJSON({testField: 'TEST VALUE 1'}))). |
- will(callFunction(function() { |
- mergeGroupSavedArgs.arguments[0].card1 = { |
- testValue: 'TEST CARD VALUE 1' |
- }; |
- })); |
- this.mockGlobals.expects(once()). |
- mergeGroup( |
- mergeGroupSavedArgs.match( |
- eqJSON({card1: {testValue: 'TEST CARD VALUE 1'}})), |
- mergeGroupSavedArgs.match( |
- eqJSON({testField: 'TEST VALUE 2'}))). |
- will(callFunction(function() { |
- mergeGroupSavedArgs.arguments[0].card2 = { |
- testValue: 'TEST CARD VALUE 2' |
- }; |
- })); |
- this.mockGlobals.expects(once()). |
- showNotificationCards( |
- eqJSON({ |
- card1: {testValue: 'TEST CARD VALUE 1'}, |
- card2: {testValue: 'TEST CARD VALUE 2'} |
- }), |
- ANYTHING); |
- |
- // Invoking the tested function. |
- mergeAndShowNotificationCards(testGroups, function() {}); |
- }); |
- |
-// TODO(vadimt): Add more tests for parseAndShowNotificationCards(). |
-TEST_F( |
- 'GoogleNowBackgroundUnitTest', |
- 'ParseAndShowNotificationCardsAdd1Remove1', |
- function() { |
- // Tests parseAndShowNotificationCards function for the case when the |
- // extension has 2 groups, and the server sends update with 2 groups, one |
- // of which is new, and another one matches a stored group. The client |
- // has to delete the group that didn't receive an update, keep the |
- // existing group that received an update, and add a new stored group for |
- // the new group from the server. |
- |
- // Setup and expectations. |
- var serverResponse = { |
- groups: { |
- GROUP1: {}, |
- GROUP2: {} |
- } |
- }; |
- |
- var storedGroups = { |
- GROUP2: { |
- cards: ['c2'], |
- cardsTimestamp: 239, |
- nextPollTime: 10000, |
- rank: 1 |
- }, |
- GROUP3: { |
- cards: ['c3'], |
- cardsTimestamp: 240, |
- nextPollTime: 10001, |
- rank: 2 |
- } |
- }; |
- |
- var expectedUpdatedGroups = { |
- GROUP1: { |
- cards: [] |
- }, |
- GROUP2: { |
- cards: ['c2'], |
- cardsTimestamp: 239, |
- nextPollTime: 10000, |
- rank: 1 |
- } |
- }; |
- |
- this.makeAndRegisterMockGlobals( |
- ['scheduleNextPoll', 'mergeAndShowNotificationCards', 'recordEvent']); |
- |
- this.makeAndRegisterMockApis([ |
- 'chrome.storage.local.set', |
- 'instrumented.storage.local.get' |
- ]); |
- |
- var storageGetSavedArgs = new SaveMockArguments(); |
- this.mockApis.expects(once()). |
- instrumented_storage_local_get( |
- storageGetSavedArgs.match(eq('notificationGroups')), |
- storageGetSavedArgs.match(ANYTHING)). |
- will(invokeCallback( |
- storageGetSavedArgs, 1, {notificationGroups: storedGroups})); |
- |
- this.mockGlobals.expects(once()). |
- scheduleNextPoll(eqJSON(expectedUpdatedGroups), true); |
- |
- this.mockApis.expects(once()). |
- chrome_storage_local_set( |
- eqJSON({notificationGroups: expectedUpdatedGroups})); |
- |
- this.mockGlobals.expects(once()). |
- mergeAndShowNotificationCards( |
- eqJSON(expectedUpdatedGroups), ANYTHING); |
- |
- this.mockGlobals.expects(once()). |
- recordEvent(GoogleNowEvent.CARDS_PARSE_SUCCESS); |
- |
- // Invoking the tested function. |
- parseAndShowNotificationCards(JSON.stringify(serverResponse)); |
- }); |
- |
/** |
* Mocks global functions and APIs that initialize() depends upon. |
* @param {Test} fixture Test fixture. |