Skip to content

Commit 2173fd3

Browse files
Aditi-1400ryzokuken
authored andcommitted
Add tests for annotation delete popup
1 parent 334bbf9 commit 2173fd3

File tree

5 files changed

+733
-0
lines changed

5 files changed

+733
-0
lines changed

test/integration/freetext_editor_spec.mjs

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3688,4 +3688,130 @@ describe("FreeText Editor", () => {
36883688
);
36893689
});
36903690
});
3691+
3692+
describe("Undo deletion popup has the expected behaviour", () => {
3693+
let pages;
3694+
3695+
beforeEach(async () => {
3696+
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
3697+
});
3698+
3699+
afterEach(async () => {
3700+
await closePages(pages);
3701+
});
3702+
3703+
it("must check that deleting a FreeText editor can be undone using the undo button", async () => {
3704+
await Promise.all(
3705+
pages.map(async ([browserName, page]) => {
3706+
await switchToFreeText(page);
3707+
3708+
const rect = await getRect(page, ".annotationEditorLayer");
3709+
const data = "Hello PDF.js World !!";
3710+
await page.mouse.click(rect.x + 100, rect.y + 100);
3711+
await page.waitForSelector(getEditorSelector(0), {
3712+
visible: true,
3713+
});
3714+
await page.type(`${getEditorSelector(0)} .internal`, data);
3715+
3716+
// Commit.
3717+
await page.keyboard.press("Escape");
3718+
await page.waitForSelector(
3719+
`${getEditorSelector(0)} .overlay.enabled`
3720+
);
3721+
await waitForSerialized(page, 1);
3722+
3723+
await page.waitForSelector(`${getEditorSelector(0)} button.delete`);
3724+
await page.click(`${getEditorSelector(0)} button.delete`);
3725+
await waitForSerialized(page, 0);
3726+
3727+
await page.waitForSelector("#editorUndoBar:not([hidden])");
3728+
await page.click("#editorUndoBarUndoButton");
3729+
await waitForSerialized(page, 1);
3730+
await page.waitForSelector(getEditorSelector(0));
3731+
})
3732+
);
3733+
});
3734+
3735+
it("must check that the undo deletion popup displays the correct message", async () => {
3736+
await Promise.all(
3737+
pages.map(async ([browserName, page]) => {
3738+
await switchToFreeText(page);
3739+
3740+
const rect = await getRect(page, ".annotationEditorLayer");
3741+
const data = "Hello PDF.js World !!";
3742+
await page.mouse.click(rect.x + 100, rect.y + 100);
3743+
await page.waitForSelector(getEditorSelector(0), {
3744+
visible: true,
3745+
});
3746+
await page.type(`${getEditorSelector(0)} .internal`, data);
3747+
3748+
// Commit.
3749+
await page.keyboard.press("Escape");
3750+
await page.waitForSelector(
3751+
`${getEditorSelector(0)} .overlay.enabled`
3752+
);
3753+
await waitForSerialized(page, 1);
3754+
3755+
await page.waitForSelector(`${getEditorSelector(0)} button.delete`);
3756+
await page.click(`${getEditorSelector(0)} button.delete`);
3757+
await waitForSerialized(page, 0);
3758+
3759+
await page.waitForFunction(() => {
3760+
const messageElement = document.querySelector(
3761+
"#editorUndoBarMessage"
3762+
);
3763+
return messageElement && messageElement.textContent.trim() !== "";
3764+
});
3765+
const message = await page.waitForSelector("#editorUndoBarMessage");
3766+
const messageText = await page.evaluate(
3767+
el => el.textContent,
3768+
message
3769+
);
3770+
expect(messageText).toContain("Text removed");
3771+
})
3772+
);
3773+
});
3774+
3775+
it("must check that the popup disappears when a new textbox is created", async () => {
3776+
await Promise.all(
3777+
pages.map(async ([browserName, page]) => {
3778+
await switchToFreeText(page);
3779+
3780+
let rect = await getRect(page, ".annotationEditorLayer");
3781+
const data = "Hello PDF.js World !!";
3782+
await page.mouse.click(rect.x + 100, rect.y + 100);
3783+
await page.waitForSelector(getEditorSelector(0), {
3784+
visible: true,
3785+
});
3786+
await page.type(`${getEditorSelector(0)} .internal`, data);
3787+
3788+
await page.keyboard.press("Escape");
3789+
await page.waitForSelector(
3790+
`${getEditorSelector(0)} .overlay.enabled`
3791+
);
3792+
await waitForSerialized(page, 1);
3793+
3794+
await page.waitForSelector(`${getEditorSelector(0)} button.delete`);
3795+
await page.click(`${getEditorSelector(0)} button.delete`);
3796+
await waitForSerialized(page, 0);
3797+
3798+
await page.waitForSelector("#editorUndoBar:not([hidden])");
3799+
rect = await getRect(page, ".annotationEditorLayer");
3800+
const newData = "This is a new text box!";
3801+
await page.mouse.click(rect.x + 150, rect.y + 150);
3802+
await page.waitForSelector(getEditorSelector(1), {
3803+
visible: true,
3804+
});
3805+
await page.type(`${getEditorSelector(1)} .internal`, newData);
3806+
3807+
await page.keyboard.press("Escape");
3808+
await page.waitForSelector(
3809+
`${getEditorSelector(1)} .overlay.enabled`
3810+
);
3811+
await waitForSerialized(page, 1);
3812+
await page.waitForSelector("#editorUndoBar", { hidden: true });
3813+
})
3814+
);
3815+
});
3816+
});
36913817
});

0 commit comments

Comments
 (0)