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

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

Issue 202293003: Server Request Tests and Mock Promise Enhancements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CR Feedback Created 6 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/resources/google_now/common_test_util.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 testTaskPair(RETRY_DISMISS_TASK_NAME, RETRY_DISMISS_TASK_NAME, true); 45 testTaskPair(RETRY_DISMISS_TASK_NAME, RETRY_DISMISS_TASK_NAME, true);
46 testTaskPair(RETRY_DISMISS_TASK_NAME, STATE_CHANGED_TASK_NAME, false); 46 testTaskPair(RETRY_DISMISS_TASK_NAME, STATE_CHANGED_TASK_NAME, false);
47 47
48 testTaskPair(STATE_CHANGED_TASK_NAME, UPDATE_CARDS_TASK_NAME, false); 48 testTaskPair(STATE_CHANGED_TASK_NAME, UPDATE_CARDS_TASK_NAME, false);
49 testTaskPair(STATE_CHANGED_TASK_NAME, DISMISS_CARD_TASK_NAME, false); 49 testTaskPair(STATE_CHANGED_TASK_NAME, DISMISS_CARD_TASK_NAME, false);
50 testTaskPair(STATE_CHANGED_TASK_NAME, RETRY_DISMISS_TASK_NAME, false); 50 testTaskPair(STATE_CHANGED_TASK_NAME, RETRY_DISMISS_TASK_NAME, false);
51 testTaskPair(STATE_CHANGED_TASK_NAME, STATE_CHANGED_TASK_NAME, false); 51 testTaskPair(STATE_CHANGED_TASK_NAME, STATE_CHANGED_TASK_NAME, false);
52 }); 52 });
53 53
54 /** 54 /**
55 * Server Request Tests
56 */
57 TEST_F('GoogleNowBackgroundUnitTest', 'AuthServerRequestSuccess', function() {
58 expectServerRequests(this, 200, '{}');
59 var callbackCalled = false;
60 requestFromServer('GET', 'test/target').then(function(request) {
61 callbackCalled = true;
62 assertTrue(request.status === 200);
63 assertTrue(request.responseText === '{}');
64 });
65 assertTrue(callbackCalled);
66 });
67
68 TEST_F('GoogleNowBackgroundUnitTest', 'AuthServerRequestForbidden', function() {
69 this.makeAndRegisterMockApis(['authenticationManager.removeToken']);
70 this.mockApis.expects(once()).authenticationManager_removeToken(ANYTHING);
71
72 expectServerRequests(this, 403, '');
73
74 var callbackCalled = false;
75 requestFromServer('GET', 'test/target').then(function(request) {
76 // The promise is resolved even on HTTP failures.
77 callbackCalled = true;
78 assertTrue(request.status === 403);
79 });
80 assertTrue(callbackCalled);
81 });
82
83 TEST_F('GoogleNowBackgroundUnitTest', 'AuthServerRequestNoAuth', function() {
84 this.makeAndRegisterMockApis(['authenticationManager.removeToken']);
85 this.mockApis.expects(once()).authenticationManager_removeToken(ANYTHING);
86
87 expectServerRequests(this, 401, '');
88
89 var callbackCalled = false;
90 requestFromServer('GET', 'test/target').then(function(request) {
91 // The promise is resolved even on HTTP failures.
92 callbackCalled = true;
93 assertTrue(request.status === 401);
94 });
95 assertTrue(callbackCalled);
96 });
97
98 function expectServerRequests(fixture, httpStatus, responseText) {
99 fixture.makeAndRegisterMockApis([
100 'authenticationManager.getAuthToken',
101 'buildServerRequest'
102 ]);
103
104 function XMLHttpRequest() {}
105
106 XMLHttpRequest.prototype = {
107 addEventListener: function(type, listener, wantsUntrusted) {},
108 setRequestHeader: function(header, value) {},
109 send: function() {}
110 }
111
112 fixture.mockApis.expects(once()).authenticationManager_getAuthToken()
113 .will(returnValue(Promise.resolve('token')));
114
115 var mockXMLHttpRequest = mock(XMLHttpRequest);
116 var mockXMLHttpRequestProxy = mockXMLHttpRequest.proxy();
117 fixture.mockApis.expects(once())
118 .buildServerRequest(ANYTHING, ANYTHING, ANYTHING)
119 .will(returnValue(mockXMLHttpRequestProxy));
120
121 mockXMLHttpRequest.expects(once())
122 .setRequestHeader('Authorization', 'Bearer token');
123
124 var loadEndSavedArgs = new SaveMockArguments();
125 mockXMLHttpRequest.expects(once())
126 .addEventListener(
127 loadEndSavedArgs.match(eq('loadend')),
128 loadEndSavedArgs.match(ANYTHING),
129 loadEndSavedArgs.match(eq(false)));
130
131 mockXMLHttpRequestProxy.status = httpStatus;
132 mockXMLHttpRequestProxy.response = responseText;
133 mockXMLHttpRequestProxy.responseText = responseText;
134
135 mockXMLHttpRequest.expects(once()).send()
136 .will(invokeCallback(loadEndSavedArgs, 1, mockXMLHttpRequestProxy));
137 }
138
139 TEST_F('GoogleNowBackgroundUnitTest', 'AuthServerRequestNoToken', function() {
140 this.makeAndRegisterMockApis([
141 'authenticationManager.getAuthToken',
142 'buildServerRequest'
143 ]);
144
145 this.mockApis.expects(once()).authenticationManager_getAuthToken()
146 .will(returnValue(Promise.reject()));
147 this.mockApis.expects(never()).buildServerRequest()
148
149 var thenCalled = false;
150 var catchCalled = false;
151 requestFromServer('GET', 'test/target').then(function(request) {
152 thenCalled = true;
153 }).catch(function() {
154 catchCalled = true;
155 });
156 assertFalse(thenCalled);
157 assertTrue(catchCalled);
158 })
159
160 /**
55 * Mocks global functions and APIs that initialize() depends upon. 161 * Mocks global functions and APIs that initialize() depends upon.
56 * @param {Test} fixture Test fixture. 162 * @param {Test} fixture Test fixture.
57 */ 163 */
58 function mockInitializeDependencies(fixture) { 164 function mockInitializeDependencies(fixture) {
59 fixture.makeAndRegisterMockGlobals([ 165 fixture.makeAndRegisterMockGlobals([
60 'recordEvent', 166 'recordEvent',
61 'setBackgroundEnable', 167 'setBackgroundEnable',
62 'startPollingCards' 168 'startPollingCards'
63 ]); 169 ]);
64 fixture.makeAndRegisterMockApis([ 170 fixture.makeAndRegisterMockApis([
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 eqJSON({ 874 eqJSON({
769 notificationGroups: expectedUpdatedGroups, 875 notificationGroups: expectedUpdatedGroups,
770 recentDismissals: {}})); 876 recentDismissals: {}}));
771 877
772 this.mockGlobals.expects(once()). 878 this.mockGlobals.expects(once()).
773 recordEvent(GoogleNowEvent.CARDS_PARSE_SUCCESS); 879 recordEvent(GoogleNowEvent.CARDS_PARSE_SUCCESS);
774 880
775 // Invoking the tested function. 881 // Invoking the tested function.
776 processServerResponse(serverResponse, fakeOnCardShownFunction); 882 processServerResponse(serverResponse, fakeOnCardShownFunction);
777 }); 883 });
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/google_now/common_test_util.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698