summaryrefslogtreecommitdiffstats
path: root/devtools/shared/webconsole/test/chrome/test_network_get.html
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/webconsole/test/chrome/test_network_get.html')
-rw-r--r--devtools/shared/webconsole/test/chrome/test_network_get.html132
1 files changed, 132 insertions, 0 deletions
diff --git a/devtools/shared/webconsole/test/chrome/test_network_get.html b/devtools/shared/webconsole/test/chrome/test_network_get.html
new file mode 100644
index 0000000000..1394941ec3
--- /dev/null
+++ b/devtools/shared/webconsole/test/chrome/test_network_get.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+ <meta charset="utf8">
+ <title>Test for the network actor (GET request)</title>
+ <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript" src="common.js"></script>
+ <!-- Any copyright is dedicated to the Public Domain.
+ - http://creativecommons.org/publicdomain/zero/1.0/ -->
+</head>
+<body>
+<p>Test for the network actor (GET request)</p>
+
+<iframe src="http://example.com/chrome/devtools/shared/webconsole/test/chrome/network_requests_iframe.html"></iframe>
+
+<script class="testbody" type="text/javascript">
+"use strict";
+
+SimpleTest.waitForExplicitFinish();
+
+async function startTest()
+{
+ await SpecialPowers.pushPrefEnv({
+ 'set': [
+ // Bug 1617611: Fix all the tests broken by "cookies SameSite=lax by default"
+ ['network.cookie.sameSite.laxByDefault', false],
+ ]
+ });
+
+ const commands = await createCommandsForTab();
+ const resourceCommand = commands.resourceCommand;
+
+ info("test network GET request");
+ const resource = await new Promise(resolve => {
+ resourceCommand
+ .watchResources([resourceCommand.TYPES.NETWORK_EVENT], {
+ onAvailable: () => {},
+ onUpdated: resourceUpdate => {
+ resolve(resourceUpdate[0].resource);
+ },
+ })
+ .then(() => {
+ // Spawn the network request after we started watching
+ const iframe = document.querySelector("iframe").contentWindow;
+ iframe.wrappedJSObject.testXhrGet(null, "data.json?" + Date.now());
+ });
+ });
+
+ const { client } = commands;
+ const netActor = resource.actor;
+
+ info("checking request headers");
+ const requestHeadersPacket = await client.request({ to: netActor, type: "getRequestHeaders" });
+ ok(!!requestHeadersPacket.headers.length, `request headers > 0 (${requestHeadersPacket.headers.length})`);
+ ok(requestHeadersPacket.headersSize > 0, `request headersSize > 0 (${requestHeadersPacket.headersSize})`);
+ ok(!!requestHeadersPacket.rawHeaders, "request rawHeaders available");
+
+ checkHeadersOrCookies(requestHeadersPacket.headers, {
+ Referer: /network_requests_iframe\.html/,
+ Cookie: /bug768096/,
+ });
+
+ checkRawHeaders(requestHeadersPacket.rawHeaders, {
+ Referer: /network_requests_iframe\.html/,
+ Cookie: /bug768096/,
+ });
+
+ info("checking request cookies");
+
+ const requestCookiesPacket = await client.request({ to: netActor, type: "getRequestCookies" });
+ is(requestCookiesPacket.cookies.length, 3, "request cookies length");
+
+ checkHeadersOrCookies(requestCookiesPacket.cookies, {
+ foobar: "fooval",
+ omgfoo: "bug768096",
+ badcookie: "bug826798=st3fan",
+ });
+
+ info("checking request POST data");
+ const postDataPacket = await client.request({ to: netActor, type: "getRequestPostData" });
+ ok(!postDataPacket.postData.text, "no request POST data");
+ ok(!postDataPacket.postDataDiscarded, "request POST data was not discarded");
+
+ info("checking response headers");
+ const responseHeaderPacket = await client.request({ to: netActor, type: "getResponseHeaders" });
+
+ ok(!!responseHeaderPacket.headers.length, "response headers > 0");
+ ok(responseHeaderPacket.headersSize > 0, "response headersSize > 0");
+ ok(!!responseHeaderPacket.rawHeaders, "response rawHeaders available");
+
+ checkHeadersOrCookies(responseHeaderPacket.headers, {
+ "content-type": /^application\/(json|octet-stream)$/,
+ "content-length": /^\d+$/,
+ });
+
+ checkRawHeaders(responseHeaderPacket.rawHeaders, {
+ "content-type": /^application\/(json|octet-stream)$/,
+ "content-length": /^\d+$/,
+ });
+
+ info("checking response cookies");
+ const responseCookiesPacket = await client.request({ to: netActor, type: "getResponseCookies" });
+ is(responseCookiesPacket.cookies.length, 0, "response cookies length");
+
+ info("checking response content");
+ const responseContentPacket = await client.request({ to: netActor, type: "getResponseContent" });
+ ok(responseContentPacket.content.text, "response content text");
+ ok(!responseContentPacket.contentDiscarded, "response content was not discarded");
+
+ info("checking event timings");
+ const eventTimingPacket = await client.request({ to: netActor, type: "getEventTimings" });
+ checkObject(eventTimingPacket, {
+ timings: {
+ blocked: /^-1|\d+$/,
+ dns: /^-1|\d+$/,
+ connect: /^-1|\d+$/,
+ send: /^-1|\d+$/,
+ wait: /^-1|\d+$/,
+ receive: /^-1|\d+$/,
+ },
+ totalTime: /^\d+$/,
+ });
+
+ await commands.destroy();
+ SpecialPowers.clearUserPref("network.cookie.sameSite.laxByDefault");
+ SimpleTest.finish();
+}
+
+addEventListener("load", startTest, { once: true});
+</script>
+</body>
+</html>