| 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 |