OLD | NEW |
| (Empty) |
1 <script src="framework.js"> | |
2 </script> | |
3 <script> | |
4 // Constants as functions, not to be called until after runTests. | |
5 function getURLAuthRequired() { | |
6 return getServerURL('auth-basic'); | |
7 } | |
8 function getURLHttpXHR() { | |
9 return getServerURL('files/extensions/api_test/webrequest/xhr/a.html'); | |
10 } | |
11 function getURLHttpXHRData() { | |
12 return getServerURL('files/extensions/api_test/webrequest/xhr/data.json'); | |
13 } | |
14 | |
15 runTests([ | |
16 // Navigates to a page with subresources. | |
17 function complexLoad() { | |
18 expect( | |
19 [ // events | |
20 { label: "a.html-onBeforeRequest", | |
21 event: "onBeforeRequest", | |
22 details: { | |
23 method: "GET", | |
24 tabId: tabId, | |
25 type: "main_frame", | |
26 url: getURL("complexLoad/a.html"), | |
27 frameUrl: getURL("complexLoad/a.html") | |
28 } | |
29 }, | |
30 { label: "b.html-onBeforeRequest", | |
31 event: "onBeforeRequest", | |
32 details: { | |
33 method: "GET", | |
34 tabId: tabId, | |
35 type: "sub_frame", | |
36 url: getURL("complexLoad/b.html"), | |
37 frameUrl: getURL("complexLoad/b.html") | |
38 } | |
39 }, | |
40 { label: "b.jpg-onBeforeRequest", | |
41 event: "onBeforeRequest", | |
42 details: { | |
43 method: "GET", | |
44 tabId: tabId, | |
45 type: "image", | |
46 url: getURL("complexLoad/b.jpg"), | |
47 frameUrl: getURL("complexLoad/b.html") | |
48 } | |
49 }, | |
50 { label: "a.html-onResponseStarted", | |
51 event: "onResponseStarted", | |
52 details: { | |
53 url: getURL("complexLoad/a.html"), | |
54 fromCache: false, | |
55 statusCode: 200 | |
56 // Request to chrome-extension:// url has no IP. | |
57 } | |
58 }, | |
59 { label: "b.html-onResponseStarted", | |
60 event: "onResponseStarted", | |
61 details: { | |
62 url: getURL("complexLoad/b.html"), | |
63 fromCache: false, | |
64 statusCode: 200 | |
65 // Request to chrome-extension:// url has no IP. | |
66 } | |
67 }, | |
68 { label: "b.jpg-onResponseStarted", | |
69 event: "onResponseStarted", | |
70 details: { | |
71 url: getURL("complexLoad/b.jpg"), | |
72 fromCache: false, | |
73 statusCode: 200 | |
74 // Request to chrome-extension:// url has no IP. | |
75 } | |
76 }, | |
77 { label: "a.html-onCompleted", | |
78 event: "onCompleted", | |
79 details: { | |
80 url: getURL("complexLoad/a.html"), | |
81 fromCache: false, | |
82 statusCode: 200 | |
83 // Request to chrome-extension:// url has no IP. | |
84 } | |
85 }, | |
86 { label: "b.html-onCompleted", | |
87 event: "onCompleted", | |
88 details: { | |
89 url: getURL("complexLoad/b.html"), | |
90 fromCache: false, | |
91 statusCode: 200 | |
92 // Request to chrome-extension:// url has no IP. | |
93 } | |
94 }, | |
95 { label: "b.jpg-onCompleted", | |
96 event: "onCompleted", | |
97 details: { | |
98 url: getURL("complexLoad/b.jpg"), | |
99 fromCache: false, | |
100 statusCode: 200 | |
101 // Request to chrome-extension:// url has no IP. | |
102 } | |
103 }, | |
104 ], | |
105 [ // event order | |
106 ["a.html-onBeforeRequest", "a.html-onResponseStarted", | |
107 "b.html-onBeforeRequest", "b.html-onResponseStarted", | |
108 "b.jpg-onBeforeRequest", "b.jpg-onResponseStarted" ], | |
109 ["a.html-onResponseStarted", "a.html-onCompleted"], | |
110 ["b.html-onResponseStarted", "b.html-onCompleted"], | |
111 ["b.jpg-onResponseStarted", "b.jpg-onCompleted"] ] | |
112 ); | |
113 navigateAndWait(getURL("complexLoad/a.html")); | |
114 }, | |
115 | |
116 // Loads several resources, but should only see the complexLoad main_frame | |
117 // and image due to the filter. | |
118 function complexLoadFiltered() { | |
119 expect( | |
120 [ // events | |
121 { label: "a-onBeforeRequest", | |
122 event: "onBeforeRequest", | |
123 details: { | |
124 method: "GET", | |
125 tabId: tabId, | |
126 type: "main_frame", | |
127 url: getURL("complexLoad/a.html"), | |
128 frameUrl: getURL("complexLoad/a.html") | |
129 } | |
130 }, | |
131 { label: "b-onBeforeRequest", | |
132 event: "onBeforeRequest", | |
133 details: { | |
134 method: "GET", | |
135 tabId: tabId, | |
136 type: "image", | |
137 url: getURL("complexLoad/b.jpg"), | |
138 // As we do not listed to sub-frames we do not know the frameUrl. | |
139 frameUrl: "unknown frame URL" | |
140 } | |
141 }, | |
142 { label: "a-onResponseStarted", | |
143 event: "onResponseStarted", | |
144 details: { | |
145 url: getURL("complexLoad/a.html"), | |
146 fromCache: false, | |
147 statusCode: 200 | |
148 // Request to chrome-extension:// url has no IP. | |
149 } | |
150 }, | |
151 { label: "b-onResponseStarted", | |
152 event: "onResponseStarted", | |
153 details: { | |
154 url: getURL("complexLoad/b.jpg"), | |
155 fromCache: false, | |
156 statusCode: 200 | |
157 // Request to chrome-extension:// url has no IP. | |
158 } | |
159 }, | |
160 { label: "a-onCompleted", | |
161 event: "onCompleted", | |
162 details: { | |
163 url: getURL("complexLoad/a.html"), | |
164 fromCache: false, | |
165 statusCode: 200 | |
166 // Request to chrome-extension:// url has no IP. | |
167 } | |
168 }, | |
169 { label: "b-onCompleted", | |
170 event: "onCompleted", | |
171 details: { | |
172 url: getURL("complexLoad/b.jpg"), | |
173 fromCache: false, | |
174 statusCode: 200 | |
175 // Request to chrome-extension:// url has no IP. | |
176 } | |
177 }, | |
178 ], | |
179 [ // event order | |
180 ["a-onBeforeRequest", "a-onResponseStarted", | |
181 "b-onBeforeRequest", "b-onResponseStarted"], | |
182 ["a-onResponseStarted", "a-onCompleted"], | |
183 ["b-onResponseStarted", "b-onCompleted"] ], | |
184 { // filters | |
185 urls: [getURL("complexLoad/*")], | |
186 types: ["main_frame", "image"], | |
187 tabId: tabId | |
188 }); | |
189 chrome.tabs.create({ url: getURL("simpleLoad/a.html") }, | |
190 function(newTab) { | |
191 chrome.tabs.remove(newTab.id); | |
192 navigateAndWait(getURL("complexLoad/a.html")); | |
193 }); | |
194 }, | |
195 | |
196 // Loads a testserver page that requires authentication. | |
197 function authRequired() { | |
198 expect( | |
199 [ // events | |
200 { label: "onBeforeRequest", | |
201 event: "onBeforeRequest", | |
202 details: { | |
203 method: "GET", | |
204 tabId: tabId, | |
205 type: "main_frame", | |
206 url: getURLAuthRequired(), | |
207 frameUrl: getURLAuthRequired() | |
208 } | |
209 }, | |
210 { label: "onBeforeSendHeaders", | |
211 event: "onBeforeSendHeaders", | |
212 details: { | |
213 url: getURLAuthRequired(), | |
214 // Note: no requestHeaders because we don't ask for them. | |
215 }, | |
216 }, | |
217 { label: "onSendHeaders", | |
218 event: "onSendHeaders", | |
219 details: { | |
220 url: getURLAuthRequired(), | |
221 } | |
222 }, | |
223 { label: "onAuthRequired", | |
224 event: "onAuthRequired", | |
225 details: { | |
226 url: getURLAuthRequired(), | |
227 isProxy: false, | |
228 scheme: "basic", | |
229 realm: "testrealm", | |
230 } | |
231 }, | |
232 { label: "onResponseStarted", | |
233 event: "onResponseStarted", | |
234 details: { | |
235 url: getURLAuthRequired(), | |
236 fromCache: false, | |
237 statusCode: 401, | |
238 ip: "127.0.0.1" | |
239 } | |
240 }, | |
241 { label: "onCompleted", | |
242 event: "onCompleted", | |
243 details: { | |
244 url: getURLAuthRequired(), | |
245 fromCache: false, | |
246 statusCode: 401, | |
247 ip: "127.0.0.1" | |
248 } | |
249 }, | |
250 ], | |
251 [ // event order | |
252 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
253 "onAuthRequired", "onResponseStarted", "onCompleted"] | |
254 ], | |
255 {}, []); | |
256 navigateAndWait(getURLAuthRequired()); | |
257 }, | |
258 | |
259 // Navigates to a page to generates an XHR. | |
260 function xhrLoad() { | |
261 expect( | |
262 [ // events | |
263 { label: "onBeforeRequest-1", | |
264 event: "onBeforeRequest", | |
265 details: { | |
266 method: "GET", | |
267 tabId: tabId, | |
268 type: "main_frame", | |
269 url: getURLHttpXHR(), | |
270 frameUrl: getURLHttpXHR() | |
271 } | |
272 }, | |
273 { label: "onBeforeSendHeaders-1", | |
274 event: "onBeforeSendHeaders", | |
275 details: { | |
276 url: getURLHttpXHR(), | |
277 } | |
278 }, | |
279 { label: "onSendHeaders-1", | |
280 event: "onSendHeaders", | |
281 details: { | |
282 url: getURLHttpXHR(), | |
283 } | |
284 }, | |
285 { label: "onResponseStarted-1", | |
286 event: "onResponseStarted", | |
287 details: { | |
288 url: getURLHttpXHR(), | |
289 statusCode: 200, | |
290 ip: "127.0.0.1", | |
291 fromCache: false, | |
292 } | |
293 }, | |
294 { label: "onCompleted-1", | |
295 event: "onCompleted", | |
296 details: { | |
297 url: getURLHttpXHR(), | |
298 statusCode: 200, | |
299 ip: "127.0.0.1", | |
300 fromCache: false, | |
301 } | |
302 }, | |
303 { label: "onBeforeRequest-2", | |
304 event: "onBeforeRequest", | |
305 details: { | |
306 method: "GET", | |
307 tabId: tabId, | |
308 type: "xmlhttprequest", | |
309 url: getURLHttpXHRData(), | |
310 frameUrl: getURLHttpXHR() | |
311 } | |
312 }, | |
313 { label: "onBeforeSendHeaders-2", | |
314 event: "onBeforeSendHeaders", | |
315 details: { | |
316 url: getURLHttpXHRData(), | |
317 } | |
318 }, | |
319 { label: "onSendHeaders-2", | |
320 event: "onSendHeaders", | |
321 details: { | |
322 url: getURLHttpXHRData(), | |
323 } | |
324 }, | |
325 { label: "onResponseStarted-2", | |
326 event: "onResponseStarted", | |
327 details: { | |
328 url: getURLHttpXHRData(), | |
329 statusCode: 200, | |
330 ip: "127.0.0.1", | |
331 fromCache: false, | |
332 } | |
333 }, | |
334 { label: "onCompleted-2", | |
335 event: "onCompleted", | |
336 details: { | |
337 url: getURLHttpXHRData(), | |
338 statusCode: 200, | |
339 ip: "127.0.0.1", | |
340 fromCache: false, | |
341 } | |
342 } | |
343 ], | |
344 [ // event order | |
345 ["onBeforeRequest-1", "onBeforeSendHeaders-1", "onSendHeaders-1", | |
346 "onResponseStarted-1", "onCompleted-1", | |
347 "onBeforeRequest-2", "onBeforeSendHeaders-2", "onSendHeaders-2", | |
348 "onResponseStarted-2", "onCompleted-2"] ], | |
349 {}, []); | |
350 navigateAndWait(getURLHttpXHR()); | |
351 }, | |
352 ]); | |
353 </script> | |
OLD | NEW |