1
0
Fork 0
firefox/docshell/test/browser/browser_viewsource_multipart.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

47 lines
1.8 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const TEST_PATH = getRootDirectory(gTestPath).replace(
"chrome://mochitests/content",
"https://example.com"
);
const MULTIPART_URI = `${TEST_PATH}file_basic_multipart.sjs`;
add_task(async function viewsource_multipart_uri() {
await BrowserTestUtils.withNewTab("about:blank", async browser => {
BrowserTestUtils.startLoadingURIString(browser, MULTIPART_URI);
await BrowserTestUtils.browserLoaded(browser);
is(browser.currentURI.spec, MULTIPART_URI);
// Continue probing the URL until we find the h1 we're expecting. This
// should handle cases where we somehow beat the second document having
// loaded.
await TestUtils.waitForCondition(async () => {
let value = await SpecialPowers.spawn(browser, [], async () => {
let headers = content.document.querySelectorAll("h1");
is(headers.length, 1, "only one h1 should be present");
return headers[0].textContent;
});
ok(value == "First" || value == "Second", "some other value was found?");
return value == "Second";
});
// Load a view-source version of the page, which should show the full
// content, not handling multipart.
BrowserTestUtils.startLoadingURIString(
browser,
`view-source:${MULTIPART_URI}`
);
await BrowserTestUtils.browserLoaded(browser);
let viewSourceContent = await SpecialPowers.spawn(browser, [], async () => {
return content.document.body.textContent;
});
ok(viewSourceContent.includes("<h1>First</h1>"), "first header");
ok(viewSourceContent.includes("<h1>Second</h1>"), "second header");
ok(viewSourceContent.includes("BOUNDARY"), "boundary");
});
});