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