Skip to content

Commit

Permalink
Fix the "must convert input to uppercase" scripting integration test
Browse files Browse the repository at this point in the history
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 mozilla#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.
  • Loading branch information
timvandermeij committed Nov 3, 2024
1 parent 20fbb4d commit 3adf8b6
Showing 1 changed file with 12 additions and 28 deletions.
40 changes: 12 additions & 28 deletions test/integration/scripting_spec.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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 "`
);
})
);
});
Expand Down

0 comments on commit 3adf8b6

Please sign in to comment.