Merge pull request #18383 from calixteman/fix_print_test

Fix the integration tests related to printing
This commit is contained in:
Tim van der Meij 2024-07-04 11:34:06 +02:00 committed by GitHub
commit 790470c1aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -17,6 +17,7 @@ import {
awaitPromise, awaitPromise,
clearInput, clearInput,
closePages, closePages,
closeSinglePage,
getAnnotationStorage, getAnnotationStorage,
getComputedStyleSelector, getComputedStyleSelector,
getFirstSerialized, getFirstSerialized,
@ -418,16 +419,12 @@ describe("Interaction", () => {
pages = await loadAndWait("doc_actions.pdf", getSelector("47R")); pages = await loadAndWait("doc_actions.pdf", getSelector("47R"));
}); });
afterAll(async () => {
await closePages(pages);
});
it("must execute WillPrint and DidPrint actions", async () => { it("must execute WillPrint and DidPrint actions", async () => {
await Promise.all( // Run the tests sequentially to avoid to use the same printer at the same
pages.map(async ([browserName, page]) => { // time.
if (process.platform === "win32" && browserName === "firefox") { // And to make sure that a printer isn't locked by a process we close the
pending("Disabled in Firefox on Windows, because of bug 1662471."); // page before running the next test.
} for (const [browserName, page] of pages) {
await page.waitForFunction( await page.waitForFunction(
"window.PDFViewerApplication.scriptingReady === true" "window.PDFViewerApplication.scriptingReady === true"
); );
@ -438,7 +435,7 @@ describe("Interaction", () => {
}); });
await page.waitForFunction(`${getQuerySelector("47R")}.value === ""`); await page.waitForFunction(`${getQuerySelector("47R")}.value === ""`);
let text = await actAndWaitForInput( const text = await actAndWaitForInput(
page, page,
getSelector("47R"), getSelector("47R"),
async () => { async () => {
@ -446,13 +443,13 @@ describe("Interaction", () => {
} }
); );
expect(text).withContext(`In ${browserName}`).toEqual("WillPrint"); expect(text).withContext(`In ${browserName}`).toEqual("WillPrint");
await page.keyboard.press("Escape");
await page.waitForFunction(`${getQuerySelector("50R")}.value !== ""`); await page.waitForFunction(
`${getQuerySelector("50R")}.value === "DidPrint"`
text = await page.$eval(getSelector("50R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("DidPrint");
})
); );
await closeSinglePage(page);
}
}); });
}); });
@ -1789,17 +1786,19 @@ describe("Interaction", () => {
pages = await loadAndWait( pages = await loadAndWait(
"autoprint.pdf", "autoprint.pdf",
"", "",
null /* pageSetup = */, null /* zoom = */,
async page => { async page => {
printHandles.set( printHandles.set(
page, page,
await page.evaluateHandle(() => [ page.evaluateHandle(() => [
new Promise(resolve => { new Promise(resolve => {
globalThis.printResolve = resolve; globalThis.printResolve = resolve;
}), }),
]) ])
); );
await page.waitForFunction(() => { await page.waitForFunction(() => {
// We don't really need to print the document.
window.print = () => {};
if (!window.PDFViewerApplication?.eventBus) { if (!window.PDFViewerApplication?.eventBus) {
return false; return false;
} }
@ -1826,7 +1825,7 @@ describe("Interaction", () => {
it("must check if printing is triggered when the document is open", async () => { it("must check if printing is triggered when the document is open", async () => {
await Promise.all( await Promise.all(
pages.map(async ([browserName, page]) => { pages.map(async ([browserName, page]) => {
await awaitPromise(printHandles.get(page)); await awaitPromise(await printHandles.get(page));
}) })
); );
}); });