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

Side by Side Diff: chrome/test/data/extensions/api_test/webrequest/test_websocket_auth.js

Issue 2449913002: Support WebSocket in WebRequest API. (Closed)
Patch Set: git cl format Created 3 years, 10 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
OLDNEW
(Empty)
1 // Copyright 2017 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 chrome.tabs.getCurrent(function(tab) {
6 runTestsForTab([
7 // onAuthRequired is not a blocking function.
8 function webSocketAuthRequiredNonBlocking() {
9 var url = getWSTestURL(testWebSocketPort);
10 expect(
11 [ //events
12 { label: 'onBeforeRequest',
13 event: 'onBeforeRequest',
14 details: {
15 url: url,
16 type: 'websocket',
17 frameUrl: 'unknown frame URL',
18 },
19 },
20 { label: 'onBeforeSendHeaders',
21 event: 'onBeforeSendHeaders',
22 details: {
23 url: url,
24 type: 'websocket',
25 },
26 },
27 { label: 'onSendHeaders',
28 event: 'onSendHeaders',
29 details: {
30 url: url,
31 type: 'websocket',
32 },
33 },
34 { label: 'onHeadersReceived',
35 event: 'onHeadersReceived',
36 details: {
37 url: url,
38 type: 'websocket',
39 statusCode: 401,
40 statusLine: 'HTTP/1.0 401 Unauthorized',
41 responseHeadersExist: true,
42 }
43 },
44 { label: 'onAuthRequired',
45 event: 'onAuthRequired',
46 details: {
47 url: url,
48 type: 'websocket',
49 isProxy: false,
50 scheme: 'basic',
51 realm: 'Pywebsocket',
52 challenger: {host: 'localhost', port: testWebSocketPort},
53 statusCode: 401,
54 statusLine: 'HTTP/1.0 401 Unauthorized',
55 responseHeadersExist: true,
56 }
57 },
58 { label: 'onResponseStarted',
59 event: 'onResponseStarted',
60 details: {
61 url: url,
62 type: 'websocket',
63 ip: '127.0.0.1',
64 fromCache: false,
65 statusCode: 401,
66 statusLine: 'HTTP/1.0 401 Unauthorized',
67 responseHeadersExist: true,
68 }
69 },
70 { label: 'onErrorOccurred',
71 event: 'onErrorOccurred',
72 details: {
73 url: url,
74 type: 'websocket',
75 fromCache: false,
76 error: 'net::ERR_ABORTED',
77 }
78 },
79 ],
80 [ // event order
81 ['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
82 'onHeadersReceived', 'onAuthRequired', 'onResponseStarted',
83 'onErrorOccurred']
84 ],
85 {urls: ['<all_urls>']}, // filter
86 ['responseHeaders'] // extraInfoSpec
87 );
88 testWebSocketConnection(url, false /* expectedToConnect*/);
89 },
90
91 // onAuthRequired is a blocking function but takes no action.
92 function webSocketAuthRequiredSyncNoAction() {
93 var url = getWSTestURL(testWebSocketPort);
94 expect(
95 [ // events
96 { label: 'onBeforeRequest',
97 event: 'onBeforeRequest',
98 details: {
99 url: url,
100 type: 'websocket',
101 frameUrl: 'unknown frame URL',
102 }
103 },
104 { label: 'onBeforeSendHeaders',
105 event: 'onBeforeSendHeaders',
106 details: {
107 url: url,
108 type: 'websocket',
109 },
110 },
111 { label: 'onSendHeaders',
112 event: 'onSendHeaders',
113 details: {
114 url: url,
115 type: 'websocket',
116 }
117 },
118 { label: 'onHeadersReceived',
119 event: 'onHeadersReceived',
120 details: {
121 url: url,
122 type: 'websocket',
123 statusCode: 401,
124 statusLine: 'HTTP/1.0 401 Unauthorized',
125 }
126 },
127 { label: 'onAuthRequired',
128 event: 'onAuthRequired',
129 details: {
130 url: url,
131 type: 'websocket',
132 isProxy: false,
133 scheme: 'basic',
134 realm: 'Pywebsocket',
135 challenger: {host: 'localhost', port: testWebSocketPort},
136 statusCode: 401,
137 statusLine: 'HTTP/1.0 401 Unauthorized',
138 }
139 },
140 { label: 'onResponseStarted',
141 event: 'onResponseStarted',
142 details: {
143 url: url,
144 type: 'websocket',
145 fromCache: false,
146 ip: '127.0.0.1',
147 statusCode: 401,
148 statusLine: 'HTTP/1.0 401 Unauthorized',
149 }
150 },
151 { label: 'onErrorOccurred',
152 event: 'onErrorOccurred',
153 details: {
154 url: url,
155 type: 'websocket',
156 fromCache: false,
157 error: 'net::ERR_ABORTED',
158 }
159 },
160 ],
161 [ // event order
162 ['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
163 'onHeadersReceived', 'onAuthRequired', 'onResponseStarted',
164 'onErrorOccurred']
165 ],
166 {urls: ['<all_urls>']}, ['blocking']);
167 testWebSocketConnection(url, false /* expectedToConnect*/);
168 },
169
170 // onAuthRequired is a blocking function that cancels the auth attempt.
171 function webSocketAuthRequiredSyncCancelAuth() {
172 var url = getWSTestURL(testWebSocketPort);
173 expect(
174 [ // events
175 { label: 'onBeforeRequest',
176 event: 'onBeforeRequest',
177 details: {
178 url: url,
179 type: 'websocket',
180 frameUrl: 'unknown frame URL',
181 }
182 },
183 { label: 'onBeforeSendHeaders',
184 event: 'onBeforeSendHeaders',
185 details: {
186 url: url,
187 type: 'websocket',
188 },
189 },
190 { label: 'onSendHeaders',
191 event: 'onSendHeaders',
192 details: {
193 url: url,
194 type: 'websocket',
195 }
196 },
197 { label: 'onHeadersReceived',
198 event: 'onHeadersReceived',
199 details: {
200 url: url,
201 type: 'websocket',
202 statusCode: 401,
203 statusLine: 'HTTP/1.0 401 Unauthorized',
204 }
205 },
206 { label: 'onAuthRequired',
207 event: 'onAuthRequired',
208 details: {
209 url: url,
210 type: 'websocket',
211 isProxy: false,
212 scheme: 'basic',
213 realm: 'Pywebsocket',
214 challenger: {host: 'localhost', port: testWebSocketPort},
215 statusCode: 401,
216 statusLine: 'HTTP/1.0 401 Unauthorized',
217 },
218 retval: {cancel: true}
219 },
220 { label: 'onResponseStarted',
221 event: 'onResponseStarted',
222 details: {
223 url: url,
224 type: 'websocket',
225 fromCache: false,
226 ip: '127.0.0.1',
227 statusCode: 401,
228 statusLine: 'HTTP/1.0 401 Unauthorized',
229 }
230 },
231 { label: 'onErrorOccurred',
232 event: 'onErrorOccurred',
233 details: {
234 url: url,
235 type: 'websocket',
236 fromCache: false,
237 error: 'net::ERR_ABORTED',
238 }
239 },
240 ],
241 [ // event order
242 ['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
243 'onHeadersReceived', 'onAuthRequired', 'onResponseStarted',
244 'onErrorOccurred']
245 ],
246 {urls: ['<all_urls>']}, ['blocking']);
247 testWebSocketConnection(url, false /* expectedToConnect*/);
248 },
249
250 // onAuthRequired is a blocking function setting authentication credentials.
251 function webSocketAuthRequiredSyncSetAuth() {
252 var url = getWSTestURL(testWebSocketPort);
253 expect(
254 [ // events
255 { label: 'onBeforeRequest',
256 event: 'onBeforeRequest',
257 details: {
258 url: url,
259 type: 'websocket',
260 frameUrl: 'unknown frame URL',
261 }
262 },
263 { label: 'onBeforeSendHeaders',
264 event: 'onBeforeSendHeaders',
265 details: {
266 url: url,
267 type: 'websocket',
268 },
269 },
270 { label: 'onSendHeaders',
271 event: 'onSendHeaders',
272 details: {
273 url: url,
274 type: 'websocket',
275 }
276 },
277 { label: 'onHeadersReceived',
278 event: 'onHeadersReceived',
279 details: {
280 url: url,
281 type: 'websocket',
282 statusCode: 401,
283 statusLine: 'HTTP/1.0 401 Unauthorized',
284 }
285 },
286 { label: 'onAuthRequired',
287 event: 'onAuthRequired',
288 details: {
289 url: url,
290 type: 'websocket',
291 isProxy: false,
292 scheme: 'basic',
293 realm: 'Pywebsocket',
294 challenger: {host: 'localhost', port: testWebSocketPort},
295 statusCode: 401,
296 statusLine: 'HTTP/1.0 401 Unauthorized',
297 },
298 // Note: The test WebSocket server accepts only these credentials.
299 retval: {authCredentials: {username: 'test', password: 'test'}}
300 },
301 { label: 'onResponseStarted',
302 event: 'onResponseStarted',
303 details: {
304 url: url,
305 type: 'websocket',
306 ip: '127.0.0.1',
307 fromCache: false,
308 statusCode: 101,
309 statusLine: 'HTTP/1.1 101 Switching Protocols',
310 },
311 },
312 { label: 'onCompleted',
313 event: 'onCompleted',
314 details: {
315 url: url,
316 type: 'websocket',
317 fromCache: false,
318 statusCode: 101,
319 statusLine: 'HTTP/1.1 101 Switching Protocols',
320 }
321 },
322 ],
323 [ // event order
324 ['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
325 'onHeadersReceived', 'onAuthRequired', 'onResponseStarted',
326 'onCompleted']
327 ],
328 {urls: ['<all_urls>']}, ['blocking']);
329 testWebSocketConnection(url, true /* expectedToConnect*/);
330 },
331 ], tab);
332 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698