OLD | NEW |
---|---|
(Empty) | |
1 <script src="framework.js"> | |
battre
2011/10/10 13:47:03
as some tests are blocking, there is a certain cha
| |
2 </script> | |
3 <script> | |
4 function getURLAuthRequired() { | |
5 return getServerURL('auth-basic'); | |
6 } | |
7 | |
8 runTests([ | |
9 // onAuthRequired is not a blocking function in this variant. | |
10 function authRequiredNonBlocking() { | |
11 expect( | |
12 [ // events | |
13 { label: "onBeforeRequest", | |
14 event: "onBeforeRequest", | |
15 details: { | |
16 url: getURLAuthRequired(), | |
17 frameUrl: getURLAuthRequired() | |
18 } | |
19 }, | |
20 { label: "onBeforeSendHeaders", | |
21 event: "onBeforeSendHeaders", | |
22 details: { | |
23 url: getURLAuthRequired(), | |
24 // Note: no requestHeaders because we don't ask for them. | |
25 }, | |
26 }, | |
27 { label: "onSendHeaders", | |
28 event: "onSendHeaders", | |
29 details: { | |
30 url: getURLAuthRequired(), | |
31 } | |
32 }, | |
33 { label: "onHeadersReceived", | |
34 event: "onHeadersReceived", | |
35 details: { | |
36 url: getURLAuthRequired(), | |
37 responseHeadersExist: true, | |
38 statusLine: "HTTP/1.0 401 Unauthorized" | |
39 } | |
40 }, | |
41 { label: "onAuthRequired", | |
42 event: "onAuthRequired", | |
43 details: { | |
44 url: getURLAuthRequired(), | |
45 isProxy: false, | |
46 scheme: "basic", | |
47 realm: "testrealm", | |
48 challenger: {host: testServer, port: testServerPort}, | |
49 responseHeadersExist: true, | |
50 statusLine: "HTTP/1.0 401 Unauthorized", | |
51 } | |
52 }, | |
53 { label: "onResponseStarted", | |
54 event: "onResponseStarted", | |
55 details: { | |
56 url: getURLAuthRequired(), | |
57 fromCache: false, | |
58 statusCode: 401, | |
59 ip: "127.0.0.1", | |
60 responseHeadersExist: true, | |
61 statusLine: "HTTP/1.0 401 Unauthorized", | |
62 } | |
63 }, | |
64 { label: "onCompleted", | |
65 event: "onCompleted", | |
66 details: { | |
67 url: getURLAuthRequired(), | |
68 fromCache: false, | |
69 statusCode: 401, | |
70 ip: "127.0.0.1", | |
71 responseHeadersExist: true, | |
72 statusLine: "HTTP/1.0 401 Unauthorized", | |
73 } | |
74 }, | |
75 ], | |
76 [ // event order | |
77 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
78 "onHeadersReceived", "onAuthRequired", "onResponseStarted", | |
79 "onCompleted"] | |
80 ], | |
81 {}, ["responseHeaders"]); | |
82 navigateAndWait(getURLAuthRequired()); | |
83 }, | |
84 | |
85 // onAuthRequired is a blocking function but takes no action in this variant. | |
86 function authRequiredNoAction() { | |
87 expect( | |
88 [ // events | |
89 { label: "onBeforeRequest", | |
90 event: "onBeforeRequest", | |
91 details: { | |
92 url: getURLAuthRequired(), | |
93 frameUrl: getURLAuthRequired() | |
94 } | |
95 }, | |
96 { label: "onBeforeSendHeaders", | |
97 event: "onBeforeSendHeaders", | |
98 details: { | |
99 url: getURLAuthRequired(), | |
100 // Note: no requestHeaders because we don't ask for them. | |
101 }, | |
102 }, | |
103 { label: "onSendHeaders", | |
104 event: "onSendHeaders", | |
105 details: { | |
106 url: getURLAuthRequired(), | |
107 } | |
108 }, | |
109 { label: "onHeadersReceived", | |
110 event: "onHeadersReceived", | |
111 details: { | |
112 url: getURLAuthRequired(), | |
113 responseHeadersExist: true, | |
114 statusLine: "HTTP/1.0 401 Unauthorized" | |
115 } | |
116 }, | |
117 { label: "onAuthRequired", | |
118 event: "onAuthRequired", | |
119 details: { | |
120 url: getURLAuthRequired(), | |
121 isProxy: false, | |
122 scheme: "basic", | |
123 realm: "testrealm", | |
124 challenger: {host: testServer, port: testServerPort}, | |
125 responseHeadersExist: true, | |
126 statusLine: "HTTP/1.0 401 Unauthorized", | |
127 } | |
128 }, | |
129 { label: "onResponseStarted", | |
130 event: "onResponseStarted", | |
131 details: { | |
132 url: getURLAuthRequired(), | |
133 fromCache: false, | |
134 statusCode: 401, | |
135 ip: "127.0.0.1", | |
136 responseHeadersExist: true, | |
137 statusLine: "HTTP/1.0 401 Unauthorized", | |
138 } | |
139 }, | |
140 { label: "onCompleted", | |
141 event: "onCompleted", | |
142 details: { | |
143 url: getURLAuthRequired(), | |
144 fromCache: false, | |
145 statusCode: 401, | |
146 ip: "127.0.0.1", | |
147 responseHeadersExist: true, | |
148 statusLine: "HTTP/1.0 401 Unauthorized", | |
149 } | |
150 }, | |
151 ], | |
152 [ // event order | |
153 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
154 "onHeadersReceived", "onAuthRequired", "onResponseStarted", | |
155 "onCompleted"] | |
156 ], | |
157 {}, ["responseHeaders"]); | |
battre
2011/10/10 13:47:03
forgot "blocking"?
cbentzel
2011/10/10 13:59:54
Oops! Thanks.
| |
158 navigateAndWait(getURLAuthRequired()); | |
159 }, | |
160 | |
161 // onAuthRequired is a blocking function that cancels the auth attempt. | |
162 function authRequiredCancelAuth() { | |
163 expect( | |
164 [ // events | |
165 { label: "onBeforeRequest", | |
166 event: "onBeforeRequest", | |
167 details: { | |
168 url: getURLAuthRequired(), | |
169 frameUrl: getURLAuthRequired() | |
170 }, | |
171 retval: {} | |
172 }, | |
173 { label: "onBeforeSendHeaders", | |
174 event: "onBeforeSendHeaders", | |
175 details: { | |
176 url: getURLAuthRequired(), | |
177 // Note: no requestHeaders because we don't ask for them. | |
178 }, | |
179 retval: {} | |
180 }, | |
181 { label: "onSendHeaders", | |
182 event: "onSendHeaders", | |
183 details: { | |
184 url: getURLAuthRequired(), | |
185 } | |
186 }, | |
187 { label: "onHeadersReceived", | |
188 event: "onHeadersReceived", | |
189 details: { | |
190 url: getURLAuthRequired(), | |
191 responseHeadersExist: true, | |
192 statusLine: "HTTP/1.0 401 Unauthorized" | |
193 } | |
194 }, | |
195 { label: "onAuthRequired", | |
196 event: "onAuthRequired", | |
197 details: { | |
198 url: getURLAuthRequired(), | |
199 isProxy: false, | |
200 scheme: "basic", | |
201 realm: "testrealm", | |
202 challenger: {host: testServer, port: testServerPort}, | |
203 responseHeadersExist: true, | |
204 statusLine: "HTTP/1.0 401 Unauthorized", | |
205 }, | |
206 retval: {cancel: true} | |
battre
2011/10/10 13:47:03
in all other handlers, {cancel: true} leads to "on
cbentzel
2011/10/10 13:59:54
Good question. I mentioned overloading "cancel" on
battre
2011/10/10 14:32:13
I guess I am OK with either approach.
| |
207 }, | |
208 { label: "onResponseStarted", | |
209 event: "onResponseStarted", | |
210 details: { | |
211 url: getURLAuthRequired(), | |
212 fromCache: false, | |
213 statusCode: 401, | |
214 ip: "127.0.0.1", | |
215 responseHeadersExist: true, | |
216 statusLine: "HTTP/1.0 401 Unauthorized", | |
217 } | |
218 }, | |
219 { label: "onCompleted", | |
220 event: "onCompleted", | |
221 details: { | |
222 url: getURLAuthRequired(), | |
223 fromCache: false, | |
224 statusCode: 401, | |
225 ip: "127.0.0.1", | |
226 responseHeadersExist: true, | |
227 statusLine: "HTTP/1.0 401 Unauthorized", | |
228 } | |
229 }, | |
230 ], | |
231 [ // event order | |
232 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
233 "onHeadersReceived", "onAuthRequired", "onResponseStarted", | |
234 "onCompleted"] | |
235 ], | |
236 {}, | |
237 ["responseHeaders", "blocking"]); | |
238 navigateAndWait(getURLAuthRequired()); | |
239 }, | |
240 | |
241 // onAuthRequired is a blocking function that sets authentication credentials. | |
242 // This needs to be done last, otherwise the authentication | |
243 // credentials will be cached and the other tests will fail. | |
244 function authRequiredSetAuth() { | |
245 expect( | |
246 [ // events | |
247 { label: "onBeforeRequest", | |
248 event: "onBeforeRequest", | |
249 details: { | |
250 url: getURLAuthRequired(), | |
251 frameUrl: getURLAuthRequired() | |
252 }, | |
253 retval: {} | |
254 }, | |
255 { label: "onBeforeSendHeaders", | |
256 event: "onBeforeSendHeaders", | |
257 details: { | |
258 url: getURLAuthRequired(), | |
259 // Note: no requestHeaders because we don't ask for them. | |
260 }, | |
261 retval: {} | |
262 }, | |
263 { label: "onSendHeaders", | |
264 event: "onSendHeaders", | |
265 details: { | |
266 url: getURLAuthRequired(), | |
267 } | |
268 }, | |
269 { label: "onHeadersReceived", | |
270 event: "onHeadersReceived", | |
271 details: { | |
272 url: getURLAuthRequired(), | |
273 responseHeadersExist: true, | |
274 statusLine: "HTTP/1.0 401 Unauthorized" | |
275 } | |
276 }, | |
277 { label: "onAuthRequired", | |
278 event: "onAuthRequired", | |
279 details: { | |
280 url: getURLAuthRequired(), | |
281 isProxy: false, | |
282 scheme: "basic", | |
283 realm: "testrealm", | |
284 challenger: {host: testServer, port: testServerPort}, | |
285 responseHeadersExist: true, | |
286 statusLine: "HTTP/1.0 401 Unauthorized", | |
287 }, | |
288 retval: {authCredentials: {username: "foo", password: "secret"}} | |
battre
2011/10/10 13:47:03
we could add a test case where we specify the wron
cbentzel
2011/10/10 13:59:54
Yes, we're asked again. I'll add a test case.
battre
2011/10/10 14:32:13
How about adding a counter "authorizationAttempt"?
cbentzel
2011/10/10 14:38:06
Arguably the extension author could maintain that
battre
2011/10/10 14:47:10
Ok, but then we should highlight this problem in t
cbentzel
2011/10/10 15:09:19
SGTM.
| |
289 }, | |
290 { label: "onResponseStarted", | |
291 event: "onResponseStarted", | |
292 details: { | |
293 url: getURLAuthRequired(), | |
294 fromCache: false, | |
295 statusCode: 200, | |
296 ip: "127.0.0.1", | |
297 responseHeadersExist: true, | |
298 statusLine: "HTTP/1.1 200 OK", | |
299 } | |
300 }, | |
301 { label: "onCompleted", | |
302 event: "onCompleted", | |
303 details: { | |
304 url: getURLAuthRequired(), | |
305 fromCache: false, | |
306 statusCode: 200, | |
307 ip: "127.0.0.1", | |
308 responseHeadersExist: true, | |
309 statusLine: "HTTP/1.1 200 OK", | |
310 } | |
311 }, | |
312 ], | |
313 [ // event order | |
314 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
315 "onHeadersReceived", "onAuthRequired", "onResponseStarted", | |
316 "onCompleted"] | |
317 ], | |
318 {}, | |
319 ["responseHeaders", "blocking"]); | |
320 navigateAndWait(getURLAuthRequired()); | |
321 }, | |
322 ]); | |
323 </script> | |
OLD | NEW |