Home | History | Annotate | Download | only in google_now
      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
      3 // found in the LICENSE file.
      4 
      5 /**
      6  * Test fixture for cards.js.
      7  * @constructor
      8  * @extends {testing.Test}
      9  */
     10 function GoogleNowCardsUnitTest () {
     11   testing.Test.call(this);
     12 }
     13 
     14 GoogleNowCardsUnitTest.prototype = {
     15   __proto__: testing.Test.prototype,
     16 
     17   /** @override */
     18   extraLibraries: [
     19     'cards.js'
     20   ]
     21 };
     22 
     23 var testCardId = 'TEST CARD ID';
     24 var testNotification = {testNotificationField: 'TEST NOTIFICATION VALUE'};
     25 var expectedShowAlarmId = 'card-show-TEST CARD ID';
     26 var expectedHideAlarmId = 'card-hide-TEST CARD ID';
     27 var testActionUrls = {testField: 'TEST VALUE'};
     28 var testDismissals = [
     29   {testDismissalField: 'TEST DISMISSAL VALUE 1'},
     30   {testDismissalField: 'TEST DISMISSAL VALUE 2'}
     31 ];
     32 var testGroupRank = 271;
     33 var LOCATION_CARDS_LINK_THRESHOLD = 10;
     34 var localStorage = {locationCardsShown: 0};
     35 
     36 function setUpCardManagerTest(fixture) {
     37   fixture.makeAndRegisterMockApis([
     38       'chrome.alarms.clear',
     39       'chrome.alarms.create',
     40       'chrome.notifications.clear',
     41       'chrome.storage.local.set',
     42       'countLocationCard',
     43       'instrumented.alarms.onAlarm.addListener',
     44       'instrumented.notifications.create',
     45       'instrumented.notifications.update',
     46       'instrumented.storage.local.get',
     47       'tasks.add'
     48   ]);
     49 
     50   chrome.runtime = {}; // No error.
     51 
     52   var onAlarmSavedArgs = new SaveMockArguments();
     53   fixture.mockApis.expects(once()).
     54       instrumented_alarms_onAlarm_addListener(
     55           onAlarmSavedArgs.match(ANYTHING));
     56 
     57   var cardSet = buildCardSet();
     58 
     59   Mock4JS.verifyAllMocks();
     60 
     61   Date.now = function() { return 300000; };
     62 
     63   var test = {
     64     cardSet: cardSet,
     65     alarmCallback: onAlarmSavedArgs.arguments [0]
     66   };
     67 
     68   return test;
     69 }
     70 
     71 TEST_F('GoogleNowCardsUnitTest', 'BuildCardManager', function() {
     72   // Tests that buildCardSet() call completes with no problems.
     73   var test = setUpCardManagerTest(this);
     74 
     75   assertEquals('object', typeof test.cardSet);
     76   assertEquals('function', typeof test.alarmCallback);
     77 });
     78 
     79 TEST_F('GoogleNowCardsUnitTest', 'onAlarmUnrecognized', function() {
     80   // Tests onAlarm does nothing on an unrelated alarm.
     81   var test = setUpCardManagerTest(this);
     82 
     83   // Call tested method.
     84   test.alarmCallback({name: 'unrelated'});
     85 });
     86