diff --git a/test/integration/freetext_editor_spec.mjs b/test/integration/freetext_editor_spec.mjs index 13afe708d..a14e10762 100644 --- a/test/integration/freetext_editor_spec.mjs +++ b/test/integration/freetext_editor_spec.mjs @@ -138,19 +138,17 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); - await waitForSelectedEditor(page, getEditorSelector(0)); + await waitForSelectedEditor(page, editorSelector); await waitForStorageEntries(page, 1); - let content = await page.$eval(getEditorSelector(0), el => + let content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); expect(content).withContext(`In ${browserName}`).toEqual(data); @@ -158,11 +156,11 @@ describe("FreeText Editor", () => { // Edit again. await page.keyboard.press("Enter"); await page.waitForSelector( - `${getEditorSelector(0)} .overlay:not(.enabled)` + `${editorSelector} .overlay:not(.enabled)` ); await commit(page); - content = await page.$eval(getEditorSelector(0), el => + content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); expect(content).withContext(`In ${browserName}`).toEqual(data); @@ -173,19 +171,19 @@ describe("FreeText Editor", () => { it("must copy/paste", async () => { // Run sequentially to avoid clipboard issues. for (const [browserName, page] of pages) { - await selectEditor(page, getEditorSelector(0)); + const firstEditorSelector = getEditorSelector(0); + await selectEditor(page, firstEditorSelector); await copy(page); await paste(page); - await page.waitForSelector(getEditorSelector(1), { - visible: true, - }); + const secondEditorSelector = getEditorSelector(1); + await page.waitForSelector(secondEditorSelector, { visible: true }); await waitForStorageEntries(page, 2); - const content = await page.$eval(getEditorSelector(0), el => + const content = await page.$eval(firstEditorSelector, el => el.innerText.trimEnd().replaceAll("\xa0", " ") ); - let pastedContent = await page.$eval(getEditorSelector(1), el => + let pastedContent = await page.$eval(secondEditorSelector, el => el.innerText.trimEnd().replaceAll("\xa0", " ") ); @@ -193,12 +191,11 @@ describe("FreeText Editor", () => { await copy(page); await paste(page); - await page.waitForSelector(getEditorSelector(2), { - visible: true, - }); + const thirdEditorSelector = getEditorSelector(2); + await page.waitForSelector(thirdEditorSelector, { visible: true }); await waitForStorageEntries(page, 3); - pastedContent = await page.$eval(getEditorSelector(2), el => + pastedContent = await page.$eval(thirdEditorSelector, el => el.innerText.trimEnd().replaceAll("\xa0", " ") ); expect(pastedContent).withContext(`In ${browserName}`).toEqual(content); @@ -228,27 +225,24 @@ describe("FreeText Editor", () => { // Run sequentially to avoid clipboard issues. for (const [, page] of pages) { const rect = await getRect(page, ".annotationEditorLayer"); - + let editorSelector = getEditorSelector(3); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(3), { - visible: true, - }); - await page.type(`${getEditorSelector(3)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); - await selectEditor(page, getEditorSelector(3)); + await selectEditor(page, editorSelector); await copy(page); await paste(page); - await page.waitForSelector(getEditorSelector(4), { - visible: true, - }); + editorSelector = getEditorSelector(4); + await page.waitForSelector(editorSelector, { visible: true }); await kbUndo(page); await page.waitForFunction( sel => !document.querySelector(sel), {}, - getEditorSelector(4) + editorSelector ); for (let i = 0; i < 2; i++) { @@ -289,15 +283,14 @@ describe("FreeText Editor", () => { expect(oldAriaOwns).withContext(`In ${browserName}`).toEqual(null); + const editorSelector = getEditorSelector(7); const data = "Hello PDF.js World !!"; await page.mouse.click( stacksRect.x + stacksRect.width + 1, stacksRect.y + stacksRect.height / 2 ); - await page.waitForSelector(getEditorSelector(7), { - visible: true, - }); - await page.type(`${getEditorSelector(7)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); const ariaOwns = await page.$eval(".textLayer", el => { @@ -320,12 +313,11 @@ describe("FreeText Editor", () => { await clearAll(page); + const editorSelector = getEditorSelector(8); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(8), { - visible: true, - }); - await page.type(`${getEditorSelector(8)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); expect(await getEditors(page, "selected")) @@ -337,7 +329,7 @@ describe("FreeText Editor", () => { () => !document.querySelector(".selectedEditor") ); - await selectEditor(page, getEditorSelector(8)); + await selectEditor(page, editorSelector); expect(await getEditors(page, "selected")) .withContext(`In ${browserName}`) .toEqual([8]); @@ -368,9 +360,7 @@ describe("FreeText Editor", () => { const editorSelector = getEditorSelector(9); await page.mouse.click(rect.x + 200, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); for (let i = 0; i < 5; i++) { await page.type(`${editorSelector} .internal`, "A"); @@ -430,9 +420,7 @@ describe("FreeText Editor", () => { ); await kbRedo(page); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); text = await getText(); expect(text).withContext(`In ${browserName}`).toEqual("A"); @@ -469,15 +457,14 @@ describe("FreeText Editor", () => { const editorCenters = []; let lastX = rect.x + rect.width / 10; for (let i = 0; i < 4; i++) { + const editorSelector = getEditorSelector(i); const data = `FreeText ${i}`; await page.mouse.click(lastX, rect.y + rect.height / 10); - await page.waitForSelector(getEditorSelector(i), { - visible: true, - }); - await page.type(`${getEditorSelector(i)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); - const editorRect = await getRect(page, getEditorSelector(i)); + const editorRect = await getRect(page, editorSelector); lastX = editorRect.x + editorRect.width + 10; editorCenters.push({ x: editorRect.x + editorRect.width / 2, @@ -517,9 +504,7 @@ describe("FreeText Editor", () => { await copy(page); await paste(page); - await page.waitForSelector(getEditorSelector(6), { - visible: true, - }); + await page.waitForSelector(getEditorSelector(6), { visible: true }); // 0,1,3 are unselected and new pasted editors are selected. expect(await getEditors(page, "selected")) @@ -568,9 +553,7 @@ describe("FreeText Editor", () => { rect.x + (rect.width / 10) * 7, rect.y + rect.height / 10 ); - await page.waitForSelector(getEditorSelector(7), { - visible: true, - }); + await page.waitForSelector(getEditorSelector(7), { visible: true }); expect(await getEditors(page, "selected")) .withContext(`In ${browserName}`) .toEqual([7]); @@ -587,9 +570,7 @@ describe("FreeText Editor", () => { rect.x + (rect.width / 10) * 8, rect.y + rect.height / 10 ); - await page.waitForSelector(getEditorSelector(8), { - visible: true, - }); + await page.waitForSelector(getEditorSelector(8), { visible: true }); expect(await getEditors(page, "selected")) .withContext(`In ${browserName}`) .toEqual([8]); @@ -645,20 +626,18 @@ describe("FreeText Editor", () => { } const rect = await getRect(page, annotationLayerSelector); - + const editorSelector = getEditorSelector(currentId); const data = `Hello PDF.js World !! on page ${pageNumber}`; expected.push(data); await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(currentId), { - visible: true, - }); - await page.type(`${getEditorSelector(currentId)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); - await waitForSelectedEditor(page, getEditorSelector(currentId)); + await waitForSelectedEditor(page, editorSelector); await waitForStorageEntries(page, currentId + 1); - const content = await page.$eval(getEditorSelector(currentId), el => + const content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); expect(content).withContext(`In ${browserName}`).toEqual(data); @@ -778,15 +757,13 @@ describe("FreeText Editor", () => { for (let step = 0; step < 3; step++) { await firstPageOnTop(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(currentId); const data = `Hello ${step}`; const x = Math.max(rect.x + 0.1 * rect.width, 10); const y = Math.max(rect.y + 0.1 * rect.height, 10); await page.mouse.click(x, y); - await page.waitForSelector(getEditorSelector(currentId), { - visible: true, - }); - await page.type(`${getEditorSelector(currentId)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); const promise = await waitForAnnotationEditorLayer(page); @@ -903,19 +880,20 @@ describe("FreeText Editor", () => { let editorIds = await getEditors(page, "freeText"); expect(editorIds.length).withContext(`In ${browserName}`).toEqual(6); - const editorRect = await getRect(page, getEditorSelector(0)); - await selectEditor(page, getEditorSelector(0), /* count = */ 2); + const editorSelector = getEditorSelector(0); + const editorRect = await getRect(page, editorSelector); + await selectEditor(page, editorSelector, /* count = */ 2); await kbGoToEnd(page); await page.waitForFunction( sel => document.getSelection().anchorOffset === document.querySelector(sel).innerText.length, {}, - `${getEditorSelector(0)} .internal` + `${editorSelector} .internal` ); await page.type( - `${getEditorSelector(0)} .internal`, + `${editorSelector} .internal`, " and edited in Firefox" ); await commit(page); @@ -991,15 +969,12 @@ describe("FreeText Editor", () => { await Promise.all( pages.map(async ([browserName, page]) => { // Show the popup on "Hello World from Firefox" - await page.click(`[data-annotation-id='32R']`); - await page.waitForSelector(`[data-annotation-id='popup_32R']`, { - visible: true, - }); + await page.click("[data-annotation-id='32R']"); + const popupSelector = "[data-annotation-id='popup_32R']"; + await page.waitForSelector(popupSelector, { visible: true }); await switchToFreeText(page); - await page.waitForSelector(`[data-annotation-id='popup_32R']`, { - visible: false, - }); + await page.waitForSelector(popupSelector, { visible: false }); const editorSelector = getEditorSelector(1); await selectEditor(page, editorSelector, /* count = */ 2); @@ -1020,13 +995,10 @@ describe("FreeText Editor", () => { // Disable editing mode. await switchToFreeText(page, /* disable = */ true); - - await page.waitForSelector(`[data-annotation-id='popup_32R']`, { - visible: true, - }); + await page.waitForSelector(popupSelector, { visible: true }); const newPopupText = await page.$eval( - "[data-annotation-id='popup_32R'] .popupContent", + `${popupSelector} .popupContent`, el => el.innerText.replaceAll("\xa0", " ") ); expect(newPopupText) @@ -1079,12 +1051,13 @@ describe("FreeText Editor", () => { let editorIds = await getEditors(page, "freeText"); expect(editorIds.length).withContext(`In ${browserName}`).toEqual(6); - await selectEditor(page, getEditorSelector(3)); + const editorSelector = getEditorSelector(3); + await selectEditor(page, editorSelector); await page.keyboard.press("Backspace"); await page.waitForFunction( sel => !document.querySelector(sel), {}, - getEditorSelector(3) + editorSelector ); const serialized = await getSerialized(page); @@ -1142,9 +1115,7 @@ describe("FreeText Editor", () => { await selectEditor(page, getEditorSelector(1)); await copy(page); await paste(page); - await page.waitForSelector(getEditorSelector(6), { - visible: true, - }); + await page.waitForSelector(getEditorSelector(6), { visible: true }); await waitForStorageEntries(page, 7); } }); @@ -1290,13 +1261,11 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); // Make Chrome happy. @@ -1401,13 +1370,11 @@ describe("FreeText Editor", () => { } const rect = await getRect(page, annotationLayerSelector); - + const editorSelector = getEditorSelector(currentId); const data = `Hello PDF.js World !! on page ${pageNumber}`; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(currentId), { - visible: true, - }); - await page.type(`${getEditorSelector(currentId)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); currentId += 1; @@ -1745,13 +1712,11 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); await page.focus("#editorFreeTextColor"); @@ -1760,14 +1725,14 @@ describe("FreeText Editor", () => { await page.waitForFunction( sel => !document.querySelector(sel), {}, - getEditorSelector(0) + editorSelector ); await kbRedo(page); await page.waitForFunction( sel => !!document.querySelector(sel), {}, - getEditorSelector(0) + editorSelector ); }) ); @@ -1795,9 +1760,7 @@ describe("FreeText Editor", () => { const data = "Hello PDF.js World !!"; const editorSelector = getEditorSelector(0); await page.mouse.click(rect.x + 200, rect.y + 200); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); @@ -1889,9 +1852,7 @@ describe("FreeText Editor", () => { const data = "Hello PDF.js World !!"; let editorSelector = getEditorSelector(1); await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); @@ -1900,9 +1861,7 @@ describe("FreeText Editor", () => { await clearAll(page); editorSelector = getEditorSelector(2); await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await moveEditor(page, editorSelector, 20, () => page.keyboard.press("ArrowRight") @@ -1964,14 +1923,12 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); - await cancelFocusIn(page, getEditorSelector(0)); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); + await cancelFocusIn(page, editorSelector); await commit(page); const oneToFourteen = Array.from(new Array(14).keys(), x => x + 1); @@ -2020,58 +1977,56 @@ describe("FreeText Editor", () => { let rect = await getRect(page, ".annotationEditorLayer"); + const firstEditorSelector = getEditorSelector(0); await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, "A"); + await page.waitForSelector(firstEditorSelector, { visible: true }); + await page.type(`${firstEditorSelector} .internal`, "A"); await commit(page); // Create a new editor. - rect = await getRect(page, getEditorSelector(0)); + rect = await getRect(page, firstEditorSelector); + const secondEditorSelector = getEditorSelector(1); await page.mouse.click( rect.x + 5 * rect.width, rect.y + 5 * rect.height ); - await page.waitForSelector(getEditorSelector(1), { - visible: true, - }); - await page.type(`${getEditorSelector(1)} .internal`, "B"); + await page.waitForSelector(secondEditorSelector, { visible: true }); + await page.type(`${secondEditorSelector} .internal`, "B"); await commit(page); // Select the second editor. - await selectEditor(page, getEditorSelector(1)); + await selectEditor(page, secondEditorSelector); - const pos = n => + const pos = selector => page.evaluate(sel => { const editor = document.querySelector(sel); return Array.prototype.indexOf.call( editor.parentNode.childNodes, editor ); - }, getEditorSelector(n)); + }, selector); - expect(await pos(0)) + expect(await pos(firstEditorSelector)) .withContext(`In ${browserName}`) .toEqual(0); - expect(await pos(1)) + expect(await pos(secondEditorSelector)) .withContext(`In ${browserName}`) .toEqual(1); - const { y: y0, height } = await getRect(page, getEditorSelector(0)); - const editorSelector = getEditorSelector(1); + const { y: y0, height } = await getRect(page, firstEditorSelector); + const editorSelector = secondEditorSelector; while ((await getRect(page, editorSelector)).y > y0 - height) { await moveEditor(page, editorSelector, 1, () => kbBigMoveUp(page)); } // The editor must be moved in the DOM and potentially the focus // will be lost, hence there's a callback will get back the focus. - await page.waitForSelector(`${getEditorSelector(1)}:focus`); + await page.waitForSelector(`${secondEditorSelector}:focus`); - expect(await pos(0)) + expect(await pos(firstEditorSelector)) .withContext(`In ${browserName}`) .toEqual(1); - expect(await pos(1)) + expect(await pos(secondEditorSelector)) .withContext(`In ${browserName}`) .toEqual(0); }) @@ -2102,9 +2057,7 @@ describe("FreeText Editor", () => { for (let i = 0; i < 10; i++) { const editorSelector = getEditorSelector(i); await page.mouse.click(rect.x + 10 + 30 * i, rect.y + 100 + 5 * i); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type( `${editorSelector} .internal`, String.fromCharCode(65 + i) @@ -2161,14 +2114,12 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); - await cancelFocusIn(page, getEditorSelector(0)); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); + await cancelFocusIn(page, editorSelector); await commit(page); await page.evaluate(() => { @@ -2216,20 +2167,18 @@ describe("FreeText Editor", () => { const page1Selector = `.page[data-page-number = "1"] > .annotationEditorLayer.freetextEditing`; let rect = await getRect(page, page1Selector); - const editorSelector = getEditorSelector(0); + const firstEditorSelector = getEditorSelector(0); await page.mouse.click(rect.x + 10, rect.y + 10); - await page.waitForSelector(editorSelector, { - visible: true, - }); - await page.type(`${editorSelector} .internal`, "Hello"); - await cancelFocusIn(page, editorSelector); + await page.waitForSelector(firstEditorSelector, { visible: true }); + await page.type(`${firstEditorSelector} .internal`, "Hello"); + await cancelFocusIn(page, firstEditorSelector); await commit(page); // Unselect. - await unselectEditor(page, editorSelector); + await unselectEditor(page, firstEditorSelector); // Select the editor created previously. - await selectEditor(page, editorSelector); + await selectEditor(page, firstEditorSelector); // Go to the last page. await scrollIntoView(page, `.page[data-page-number = "14"]`); @@ -2241,11 +2190,10 @@ describe("FreeText Editor", () => { }); rect = await getRect(page, page14Selector); + const secondEditorSelector = getEditorSelector(1); await page.mouse.click(rect.x + 10, rect.y + 10); - await page.waitForSelector(getEditorSelector(1), { - visible: true, - }); - await page.type(`${getEditorSelector(1)} .internal`, "World"); + await page.waitForSelector(secondEditorSelector, { visible: true }); + await page.type(`${secondEditorSelector} .internal`, "World"); await commit(page); for (let i = 0; i < 13; i++) { @@ -2259,11 +2207,9 @@ describe("FreeText Editor", () => { }); } - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await selectEditor(page, getEditorSelector(0)); - const content = await page.$eval(getEditorSelector(0), el => + await page.waitForSelector(firstEditorSelector, { visible: true }); + await selectEditor(page, firstEditorSelector); + const content = await page.$eval(firstEditorSelector, el => el.innerText.trimEnd() ); expect(content).withContext(`In ${browserName}`).toEqual("Hello"); @@ -2292,9 +2238,7 @@ describe("FreeText Editor", () => { const rect = await getRect(page, page1Selector); const editorSelector = getEditorSelector(0); await page.mouse.click(rect.x + 10, rect.y + 10); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, "Hello"); await cancelFocusIn(page, editorSelector); await commit(page); @@ -2309,10 +2253,7 @@ describe("FreeText Editor", () => { await scrollIntoView(page, `.page[data-page-number = "14"]`); await page.waitForSelector( `.page[data-page-number = "14"] > .annotationEditorLayer.freetextEditing`, - { - visible: true, - timeout: 0, - } + { visible: true, timeout: 0 } ); await clearAll(page); @@ -2330,9 +2271,7 @@ describe("FreeText Editor", () => { await kbUndo(page); await waitForSerialized(page, 1); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); }) ); }); @@ -2355,6 +2294,7 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const parentId = "p3R_mc8"; + const editorSelector = getEditorSelector(0); const rect = await page.evaluate(id => { const parent = document.getElementById(id); let span = null; @@ -2371,10 +2311,8 @@ describe("FreeText Editor", () => { rect.x + rect.width + 5, rect.y + rect.height / 2 ); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, "Hello Wolrd"); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, "Hello Wolrd"); await commit(page); await waitForStorageEntries(page, 1); @@ -2403,19 +2341,17 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - const internalEditorSelector = `${getEditorSelector(0)} .internal`; + await page.waitForSelector(editorSelector, { visible: true }); + const internalEditorSelector = `${editorSelector} .internal`; await page.type(internalEditorSelector, data); await commit(page); - await page.click(getEditorSelector(0), { count: 2 }); + await page.click(editorSelector, { count: 2 }); await page.waitForSelector( - `${getEditorSelector(0)} .overlay:not(.enabled)` + `${editorSelector} .overlay:not(.enabled)` ); await page.click(internalEditorSelector, { count: 3, @@ -2448,9 +2384,7 @@ describe("FreeText Editor", () => { await page.keyboard.press("Enter"); let editorSelector = getEditorSelector(0); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await moveEditor(page, editorSelector, 5, () => kbBigMoveUp(page)); @@ -2470,9 +2404,7 @@ describe("FreeText Editor", () => { await page.focus("#editorFreeTextButton"); await page.keyboard.press(" "); editorSelector = getEditorSelector(1); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await moveEditor(page, editorSelector, 5, () => kbBigMoveDown(page)); @@ -2482,7 +2414,7 @@ describe("FreeText Editor", () => { // Unselect. await unselectEditor(page, editorSelector); - content = await page.$eval(getEditorSelector(1), el => + content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); @@ -2496,9 +2428,7 @@ describe("FreeText Editor", () => { pages.map(async ([browserName, page]) => { await page.keyboard.press("Enter"); let editorSelector = getEditorSelector(2); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await moveEditor(page, editorSelector, 10, () => kbBigMoveLeft(page)); @@ -2509,7 +2439,7 @@ describe("FreeText Editor", () => { // Unselect. await unselectEditor(page, editorSelector); - let content = await page.$eval(getEditorSelector(2), el => + let content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); @@ -2517,9 +2447,7 @@ describe("FreeText Editor", () => { await page.keyboard.press(" "); editorSelector = getEditorSelector(3); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await moveEditor(page, editorSelector, 10, () => kbBigMoveRight(page) @@ -2558,13 +2486,11 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); let handle = await createPromise(page, resolve => { @@ -2588,7 +2514,7 @@ describe("FreeText Editor", () => { ); expect(content).withContext(`In ${browserName}`).toEqual(""); - content = await page.$eval(getEditorSelector(0), el => + content = await page.$eval(editorSelector, el => el.innerText.trimEnd() ); expect(content).withContext(`In ${browserName}`).toEqual(data); @@ -2614,21 +2540,19 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); // Delete it in using the button. - await page.click(`${getEditorSelector(0)} button.delete`); + await page.click(`${editorSelector} button.delete`); await page.waitForFunction( sel => !document.querySelector(sel), {}, - getEditorSelector(0) + editorSelector ); await waitForStorageEntries(page, 0); @@ -2636,9 +2560,7 @@ describe("FreeText Editor", () => { await kbUndo(page); await waitForSerialized(page, 1); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); }) ); }); @@ -2667,39 +2589,32 @@ describe("FreeText Editor", () => { for (let i = 1; i <= 2; i++) { const editorSelector = getEditorSelector(i - 1); await page.mouse.click(rect.x + i * 100, rect.y + i * 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); } // Select the editor created previously. - await selectEditor(page, getEditorSelector(0)); + const editorSelector = getEditorSelector(0); + await selectEditor(page, editorSelector); await selectAll(page); // Delete it in using the button. - await page.focus(`${getEditorSelector(0)} button.delete`); + await page.focus(`${editorSelector} button.delete`); await page.keyboard.press("Enter"); await page.waitForFunction( sel => !document.querySelector(sel), {}, - getEditorSelector(0) + editorSelector ); await waitForStorageEntries(page, 0); // Undo. await kbUndo(page); await waitForSerialized(page, 2); - - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - - await page.waitForSelector(getEditorSelector(1), { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); + await page.waitForSelector(getEditorSelector(1), { visible: true }); }) ); }); @@ -2720,8 +2635,10 @@ describe("FreeText Editor", () => { await Promise.all( pages.map(async ([browserName, page]) => { await switchToFreeText(page); - await page.click(getEditorSelector(0), { count: 2 }); - await page.type(`${getEditorSelector(0)} .internal`, "C"); + + const editorSelector = getEditorSelector(0); + await page.click(editorSelector, { count: 2 }); + await page.type(`${editorSelector} .internal`, "C"); await switchToFreeText(page, /* disable = */ true); @@ -2749,8 +2666,10 @@ describe("FreeText Editor", () => { await Promise.all( pages.map(async ([browserName, page]) => { await switchToFreeText(page); - await page.click(getEditorSelector(0), { count: 2 }); - await page.type(`${getEditorSelector(0)} .internal`, "Z"); + + const editorSelector = getEditorSelector(0); + await page.click(editorSelector, { count: 2 }); + await page.type(`${editorSelector} .internal`, "Z"); await switchToFreeText(page, /* disable = */ true); @@ -2780,13 +2699,11 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello\nPDF.js\nWorld\n!!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); @@ -2816,13 +2733,11 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); await page.evaluate(() => { @@ -2919,18 +2834,16 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); - await page.waitForSelector(`${getEditorSelector(0)} button.delete`); - await page.click(`${getEditorSelector(0)} button.delete`); + await page.waitForSelector(`${editorSelector} button.delete`); + await page.click(`${editorSelector} button.delete`); await waitForSerialized(page, 0); const twoToFourteen = Array.from(new Array(13).keys(), n => n + 2); @@ -2948,7 +2861,7 @@ describe("FreeText Editor", () => { await scrollIntoView(page, pageSelector); } - await page.waitForSelector(getEditorSelector(0)); + await page.waitForSelector(editorSelector); }) ); }); @@ -2971,18 +2884,16 @@ describe("FreeText Editor", () => { await switchToFreeText(page); const rect = await getRect(page, ".annotationEditorLayer"); - + const editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(getEditorSelector(0), { - visible: true, - }); - await page.type(`${getEditorSelector(0)} .internal`, data); + await page.waitForSelector(editorSelector, { visible: true }); + await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); - await page.waitForSelector(`${getEditorSelector(0)} button.delete`); - await page.click(`${getEditorSelector(0)} button.delete`); + await page.waitForSelector(`${editorSelector} button.delete`); + await page.click(`${editorSelector} button.delete`); await waitForSerialized(page, 0); const twoToOne = Array.from(new Array(13).keys(), n => n + 2).concat( @@ -2995,7 +2906,7 @@ describe("FreeText Editor", () => { await kbUndo(page); await waitForSerialized(page, 1); - await page.waitForSelector(getEditorSelector(0)); + await page.waitForSelector(editorSelector); }) ); }); @@ -3022,9 +2933,7 @@ describe("FreeText Editor", () => { let editorSelector = getEditorSelector(0); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); @@ -3110,9 +3019,7 @@ describe("FreeText Editor", () => { editorSelector = getEditorSelector(1); await page.mouse.click(rect.x + 200, rect.y + 200); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); const fooBar = "Foo\nBar\nOof"; await copyToClipboard(page, { @@ -3279,9 +3186,7 @@ describe("FreeText Editor", () => { const data = "Hello\nPDF.js\nWorld\n!!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); for (const line of data.split("\n")) { await page.type(`${editorSelector} .internal`, line); await page.keyboard.down("Shift"); @@ -3318,9 +3223,7 @@ describe("FreeText Editor", () => { const rect = await getRect(page, ".annotationEditorLayer"); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); @@ -3345,9 +3248,7 @@ describe("FreeText Editor", () => { const rect = await getRect(page, ".annotationEditorLayer"); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); @@ -3380,9 +3281,7 @@ describe("FreeText Editor", () => { let rect = await getRect(page, ".annotationEditorLayer"); const data = "Hello PDF.js World !!"; await page.mouse.click(rect.x + 100, rect.y + 100); - await page.waitForSelector(editorSelector, { - visible: true, - }); + await page.waitForSelector(editorSelector, { visible: true }); await page.type(`${editorSelector} .internal`, data); await commit(page); await waitForSerialized(page, 1); @@ -3393,12 +3292,11 @@ describe("FreeText Editor", () => { await page.waitForSelector("#editorUndoBar:not([hidden])"); rect = await getRect(page, ".annotationEditorLayer"); + const secondEditorSelector = getEditorSelector(1); const newData = "This is a new text box!"; await page.mouse.click(rect.x + 150, rect.y + 150); - await page.waitForSelector(getEditorSelector(1), { - visible: true, - }); - await page.type(`${getEditorSelector(1)} .internal`, newData); + await page.waitForSelector(secondEditorSelector, { visible: true }); + await page.type(`${secondEditorSelector} .internal`, newData); await commit(page); await waitForSerialized(page, 1); await page.waitForSelector("#editorUndoBar", { hidden: true }); diff --git a/test/integration/highlight_editor_spec.mjs b/test/integration/highlight_editor_spec.mjs index c2a5da293..9ced1cf50 100644 --- a/test/integration/highlight_editor_spec.mjs +++ b/test/integration/highlight_editor_spec.mjs @@ -105,9 +105,7 @@ describe("Highlight Editor", () => { await page.waitForSelector( `.page[data-page-number = "1"] svg.highlight`, - { - visible: true, - } + { visible: true } ); }) ); diff --git a/test/integration/stamp_editor_spec.mjs b/test/integration/stamp_editor_spec.mjs index bf529fd98..be3780230 100644 --- a/test/integration/stamp_editor_spec.mjs +++ b/test/integration/stamp_editor_spec.mjs @@ -1751,9 +1751,7 @@ describe("Stamp Editor", () => { const pageOneSelector = `.page[data-page-number = "1"]`; const pageTwoSelector = `.page[data-page-number = "2"]`; await scrollIntoView(page, pageTwoSelector); - await page.waitForSelector(pageOneSelector, { - visible: false, - }); + await page.waitForSelector(pageOneSelector, { visible: false }); await switchToStamp(page); await scrollIntoView(page, pageOneSelector);