summaryrefslogtreecommitdiffstats
path: root/remote/test/browser/network/head.js
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/browser/network/head.js')
-rw-r--r--remote/test/browser/network/head.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/remote/test/browser/network/head.js b/remote/test/browser/network/head.js
new file mode 100644
index 0000000000..d3a9786a4b
--- /dev/null
+++ b/remote/test/browser/network/head.js
@@ -0,0 +1,101 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* import-globals-from ../head.js */
+
+Services.scriptloader.loadSubScript(
+ "chrome://mochitests/content/browser/remote/test/browser/head.js",
+ this
+);
+
+function assertCookie(cookie, expected = {}) {
+ const {
+ name = "",
+ value = "",
+ domain = "example.org",
+ path = "/",
+ expires = -1,
+ size = name.length + value.length,
+ httpOnly = false,
+ secure = false,
+ session = true,
+ sameSite,
+ } = expected;
+
+ const expectedCookie = {
+ name,
+ value,
+ domain,
+ path,
+ expires,
+ size,
+ httpOnly,
+ secure,
+ session,
+ };
+
+ if (sameSite) {
+ expectedCookie.sameSite = sameSite;
+ }
+
+ Assert.deepEqual(cookie, expectedCookie);
+}
+
+function assertEventOrder(first, second, options = {}) {
+ const { ignoreTimestamps = false } = options;
+
+ const firstDescription = getDescriptionForEvent(first);
+ const secondDescription = getDescriptionForEvent(second);
+
+ ok(
+ first.index < second.index,
+ `${firstDescription} received before ${secondDescription})`
+ );
+
+ if (!ignoreTimestamps) {
+ ok(
+ first.payload.timestamp <= second.payload.timestamp,
+ `Timestamp of ${firstDescription}) is earlier than ${secondDescription})`
+ );
+ }
+}
+
+function filterEventsByType(history, type) {
+ return history.filter(event => event.payload.type == type);
+}
+
+function getCookies() {
+ return Services.cookies.cookies.map(cookie => {
+ const data = {
+ name: cookie.name,
+ value: cookie.value,
+ domain: cookie.host,
+ path: cookie.path,
+ expires: cookie.isSession ? -1 : cookie.expiry,
+ // The size is the combined length of both the cookie name and value
+ size: cookie.name.length + cookie.value.length,
+ httpOnly: cookie.isHttpOnly,
+ secure: cookie.isSecure,
+ session: cookie.isSession,
+ };
+
+ if (cookie.sameSite) {
+ const sameSiteMap = new Map([
+ [Ci.nsICookie.SAMESITE_LAX, "Lax"],
+ [Ci.nsICookie.SAMESITE_STRICT, "Strict"],
+ ]);
+
+ data.sameSite = sameSiteMap.get(cookie.sameSite);
+ }
+
+ return data;
+ });
+}
+
+function getDescriptionForEvent(event) {
+ const { eventName, payload } = event;
+
+ return `${eventName}(${payload.type || payload.name || payload.frameId})`;
+}