1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 14:48:08 +02:00

Fix the "must convert input to uppercase" scripting integration test

This integration test fails intermittently because we're not
(correctly) awaiting the sandbox actions. The `27R` field in
`issue14862.pdf` triggers sandbox events for every typing action, but
for the backspace and "a" character typing actions we weren't awaiting
the sandbox trip at all, and for other places we weren't awaiting it
fully (causing some characters to be missed in the assertion).

This commit fixes the issues by using the appropriate helper functions,
similar to what we did in PR #18399. Not only is this shorter in terms
of code, but it also fixed the near-permafail for this test with newer
versions of Puppeteer.
This commit is contained in:
Tim van der Meij 2024-11-03 15:00:35 +01:00
parent 20fbb4d661
commit 3adf8b6be0
No known key found for this signature in database
GPG key ID: 8C3FD2925A5F2762

View file

@ -1229,59 +1229,43 @@ describe("Interaction", () => {
await typeAndWaitForSandbox(page, getSelector("27R"), "Hello");
await page.waitForFunction(
`${getQuerySelector("27R")}.value !== "Hello"`
`${getQuerySelector("27R")}.value === "HELLO"`
);
let text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HELLO");
await typeAndWaitForSandbox(page, getSelector("27R"), " world");
await page.waitForFunction(
`${getQuerySelector("27R")}.value !== "HELLO world"`
`${getQuerySelector("27R")}.value === "HELLO WORLD"`
);
text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HELLO WORLD");
await page.keyboard.press("Backspace");
await waitForSandboxTrip(page);
await page.keyboard.press("Backspace");
await waitForSandboxTrip(page);
await page.waitForFunction(
`${getQuerySelector("27R")}.value !== "HELLO WORLD"`
`${getQuerySelector("27R")}.value === "HELLO WOR"`
);
text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HELLO WOR");
await typeAndWaitForSandbox(page, getSelector("27R"), "12.dL");
await page.waitForFunction(
`${getQuerySelector("27R")}.value !== "HELLO WOR"`
`${getQuerySelector("27R")}.value === "HELLO WORDL"`
);
text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HELLO WORDL");
await typeAndWaitForSandbox(page, getSelector("27R"), " ");
await kbDeleteLastWord(page);
await waitForSandboxTrip(page);
await page.waitForFunction(
`${getQuerySelector("27R")}.value !== "HELLO WORDL "`
`${getQuerySelector("27R")}.value === "HELLO "`
);
text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HELLO ");
await page.$eval(getSelector("27R"), el => {
// Select LL
el.selectionStart = 2;
el.selectionEnd = 4;
});
await page.keyboard.press("a");
text = await page.$eval(getSelector("27R"), el => el.value);
expect(text).withContext(`In ${browserName}`).toEqual("HEAO ");
await typeAndWaitForSandbox(page, getSelector("27R"), "a");
await page.waitForFunction(
`${getQuerySelector("27R")}.value === "HEAO "`
);
})
);
});