Differential Revision: https://phabricator.services.mozilla.com/D294007
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const { require } = ChromeUtils.importESModule(
|
|
"resource://devtools/shared/loader/Loader.sys.mjs"
|
|
);
|
|
const {
|
|
fetchHeaders,
|
|
} = require("resource://devtools/client/netmonitor/src/utils/request-utils.js");
|
|
|
|
add_task(async function test_fetchHeaders_resolves_long_string_values() {
|
|
const longCookieValue = "a=1; ".repeat(2001);
|
|
|
|
const mockLongStringGrip = {
|
|
type: "longString",
|
|
initial: longCookieValue.substring(0, 1000),
|
|
length: longCookieValue.length,
|
|
};
|
|
|
|
const headers = {
|
|
headers: [
|
|
{ name: "User-Agent", value: "Mozilla/5.0" },
|
|
{ name: "Cookie", value: mockLongStringGrip },
|
|
],
|
|
headersSize: 12345,
|
|
};
|
|
|
|
async function mockGetLongString(value) {
|
|
if (typeof value === "object" && value.type === "longString") {
|
|
return longCookieValue;
|
|
}
|
|
return value;
|
|
}
|
|
|
|
const result = await fetchHeaders(headers, mockGetLongString);
|
|
|
|
equal(
|
|
result.headers[0].value,
|
|
"Mozilla/5.0",
|
|
"Short string header value is preserved"
|
|
);
|
|
equal(
|
|
typeof result.headers[1].value,
|
|
"string",
|
|
"Long string Cookie header value is resolved to a string"
|
|
);
|
|
equal(
|
|
result.headers[1].value,
|
|
longCookieValue,
|
|
"Long string Cookie header value is correctly resolved to its full content"
|
|
);
|
|
});
|