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

Unified 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: More rgustafson's comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/google_now/background.js ('k') | chrome/browser/resources/google_now/cards.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f0c5674abc2f844509eda4549a4f616d651de244..6763c31cafc16e89cb5e004cf221fcab30b70ed0 100644
--- a/chrome/browser/resources/google_now/background_unittest.gtestjs
+++ b/chrome/browser/resources/google_now/background_unittest.gtestjs
@@ -49,6 +49,275 @@ 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));
+ });
+
/**
* Mocks global functions and APIs that initialize() depends upon.
* @param {Test} fixture Test fixture.
@@ -63,7 +332,7 @@ function mockInitializeDependencies(fixture) {
fixture.makeAndRegisterMockApis([
'authenticationManager.isSignedIn',
'chrome.location.clearWatch',
- 'chrome.storage.local.set',
+ 'chrome.storage.local.remove',
'instrumented.metricsPrivate.getVariationParams',
'instrumented.notifications.getAll',
'instrumented.preferencesPrivate.googleGeolocationAccessEnabled.get',
@@ -148,7 +417,8 @@ function expectInitialization(mockApisObj) {
mockApisObj.expects(once()).
updateCardsAttempts_stop();
mockApisObj.expects(once()).
- chrome_storage_local_set(eqJSON({notificationsData: {}}));
+ chrome_storage_local_remove(
+ eqJSON(['notificationsData', 'notificationGroups']));
var tasksAddSavedArgs = new SaveMockArguments();
mockApisObj.expects(once()).
tasks_add(
@@ -416,14 +686,14 @@ TEST_F(
TEST_F(
'GoogleNowBackgroundUnitTest',
- 'OnNotificationClicked_ActionUrlsNotObject',
+ 'OnNotificationClicked_ActionUrlsUndefined',
function() {
- // Tests the case when the data associated with notification id is not an
- // object, probably because of a malformed server response.
+ // Tests the case when the data associated with notification id is
+ // 'undefined'.
// In this case, the function should do nothing.
// Setup and expectations.
- var testActionUrls = 'string, not object';
+ var testActionUrls = undefined;
var testNotificationId = 'TEST_ID';
var testNotificationData = {
notificationsData: {'TEST_ID': {actionUrls: testActionUrls}}
@@ -438,6 +708,8 @@ TEST_F(
storageGetSavedArgs.match(eq('notificationsData')),
storageGetSavedArgs.match(ANYTHING)).
will(invokeCallback(storageGetSavedArgs, 1, testNotificationData));
+ this.mockLocalFunctions.expects(once()).selector(undefined).will(
+ returnValue(undefined));
// Invoking the tested function.
onNotificationClicked(
« no previous file with comments | « chrome/browser/resources/google_now/background.js ('k') | chrome/browser/resources/google_now/cards.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698