test_network_get.html (4664B)
1 <!DOCTYPE HTML> 2 <html lang="en"> 3 <head> 4 <meta charset="utf8"> 5 <title>Test for the network actor (GET request)</title> 6 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 7 <script type="text/javascript" src="common.js"></script> 8 <!-- Any copyright is dedicated to the Public Domain. 9 - http://creativecommons.org/publicdomain/zero/1.0/ --> 10 </head> 11 <body> 12 <p>Test for the network actor (GET request)</p> 13 14 <iframe src="http://example.com/chrome/devtools/shared/webconsole/test/chrome/network_requests_iframe.html"></iframe> 15 16 <script class="testbody" type="text/javascript"> 17 "use strict"; 18 19 SimpleTest.waitForExplicitFinish(); 20 21 async function startTest() 22 { 23 await SpecialPowers.pushPrefEnv({ 24 'set': [ 25 // Bug 1617611: Fix all the tests broken by "cookies SameSite=lax by default" 26 ['network.cookie.sameSite.laxByDefault', false], 27 ] 28 }); 29 30 const commands = await createCommandsForTab(); 31 const resourceCommand = commands.resourceCommand; 32 33 info("test network GET request"); 34 const resource = await new Promise(resolve => { 35 resourceCommand 36 .watchResources([resourceCommand.TYPES.NETWORK_EVENT], { 37 onAvailable: () => {}, 38 onUpdated: resourceUpdate => { 39 resolve(resourceUpdate[0].resource); 40 }, 41 }) 42 .then(() => { 43 // Spawn the network request after we started watching 44 const iframe = document.querySelector("iframe").contentWindow; 45 iframe.wrappedJSObject.testXhrGet(null, "data.json?" + Date.now()); 46 }); 47 }); 48 49 const { client } = commands; 50 const netActor = resource.actor; 51 52 info("checking request headers"); 53 const requestHeadersPacket = await client.request({ to: netActor, type: "getRequestHeaders" }); 54 ok(!!requestHeadersPacket.headers.length, `request headers > 0 (${requestHeadersPacket.headers.length})`); 55 ok(requestHeadersPacket.headersSize > 0, `request headersSize > 0 (${requestHeadersPacket.headersSize})`); 56 ok(!!requestHeadersPacket.rawHeaders, "request rawHeaders available"); 57 58 checkHeadersOrCookies(requestHeadersPacket.headers, { 59 Referer: /network_requests_iframe\.html/, 60 Cookie: /bug768096/, 61 }); 62 63 checkRawHeaders(requestHeadersPacket.rawHeaders, { 64 Referer: /network_requests_iframe\.html/, 65 Cookie: /bug768096/, 66 }); 67 68 info("checking request cookies"); 69 70 const requestCookiesPacket = await client.request({ to: netActor, type: "getRequestCookies" }); 71 is(requestCookiesPacket.cookies.length, 3, "request cookies length"); 72 73 checkHeadersOrCookies(requestCookiesPacket.cookies, { 74 foobar: "fooval", 75 omgfoo: "bug768096", 76 badcookie: "bug826798=st3fan", 77 }); 78 79 info("checking request POST data"); 80 const postDataPacket = await client.request({ to: netActor, type: "getRequestPostData" }); 81 ok(!postDataPacket.postData.text, "no request POST data"); 82 ok(!postDataPacket.postDataDiscarded, "request POST data was not discarded"); 83 84 info("checking response headers"); 85 const responseHeaderPacket = await client.request({ to: netActor, type: "getResponseHeaders" }); 86 87 ok(!!responseHeaderPacket.headers.length, "response headers > 0"); 88 ok(responseHeaderPacket.headersSize > 0, "response headersSize > 0"); 89 ok(!!responseHeaderPacket.rawHeaders, "response rawHeaders available"); 90 91 checkHeadersOrCookies(responseHeaderPacket.headers, { 92 "content-type": /^application\/(json|octet-stream)$/, 93 "content-length": /^\d+$/, 94 }); 95 96 checkRawHeaders(responseHeaderPacket.rawHeaders, { 97 "content-type": /^application\/(json|octet-stream)$/, 98 "content-length": /^\d+$/, 99 }); 100 101 info("checking response cookies"); 102 const responseCookiesPacket = await client.request({ to: netActor, type: "getResponseCookies" }); 103 is(responseCookiesPacket.cookies.length, 0, "response cookies length"); 104 105 info("checking response content"); 106 const responseContentPacket = await client.request({ to: netActor, type: "getResponseContent" }); 107 ok(responseContentPacket.content.text, "response content text"); 108 ok(!responseContentPacket.contentDiscarded, "response content was not discarded"); 109 110 info("checking event timings"); 111 const eventTimingPacket = await client.request({ to: netActor, type: "getEventTimings" }); 112 checkObject(eventTimingPacket, { 113 timings: { 114 blocked: /^-1|\d+$/, 115 dns: /^-1|\d+$/, 116 connect: /^-1|\d+$/, 117 send: /^-1|\d+$/, 118 wait: /^-1|\d+$/, 119 receive: /^-1|\d+$/, 120 }, 121 totalTime: /^\d+$/, 122 }); 123 124 await commands.destroy(); 125 SpecialPowers.clearUserPref("network.cookie.sameSite.laxByDefault"); 126 SimpleTest.finish(); 127 } 128 129 addEventListener("load", startTest, { once: true}); 130 </script> 131 </body> 132 </html>