OLD | NEW |
---|---|
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 Loading... | |
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']); | |
rgustafson
2014/03/19 00:24:31
Just an FYI, 403 being here was a product of a pre
robliao
2014/03/19 00:43:39
If we're forbidden to accessing this resource, it'
| |
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 Loading... | |
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 }); |
OLD | NEW |