46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
https://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const RESOURCE_URL =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content",
|
|
"https://example.com"
|
|
) + "store_header.sjs";
|
|
|
|
add_task(async function test_fetch_defaults_to_credentialless() {
|
|
// Ensure cookie is set up:
|
|
let expiry = Date.now() / 1000 + 24 * 60 * 60;
|
|
Services.cookies.add(
|
|
"example.com",
|
|
"/",
|
|
"foo",
|
|
"bar",
|
|
false,
|
|
false,
|
|
false,
|
|
expiry,
|
|
{},
|
|
Ci.nsICookie.SAMESITE_NONE,
|
|
Ci.nsICookie.SCHEME_HTTPS
|
|
);
|
|
|
|
// Explicitly send cookie header by using `same-origin` in the init dict, to
|
|
// ensure cookies are stored correctly and can be sent.
|
|
await fetch(RESOURCE_URL + "?checkheader", { credentials: "same-origin" });
|
|
|
|
Assert.equal(
|
|
await fetch(RESOURCE_URL + "?getstate").then(r => r.text()),
|
|
"hasCookie",
|
|
"Should have cookie when explicitly passing credentials info in 'checkheader' request."
|
|
);
|
|
|
|
// Check the default behaviour.
|
|
await fetch(RESOURCE_URL + "?checkheader");
|
|
Assert.equal(
|
|
await fetch(RESOURCE_URL + "?getstate").then(r => r.text()),
|
|
"noCookie",
|
|
"Should not have cookie in the default case (no explicit credentials mode) for chrome privileged requests."
|
|
);
|
|
});
|