Merge pull request #19069 from calixteman/stamp_test

Fix 'must load a SVG, delete it and undo' integration test
This commit is contained in:
Tim van der Meij 2024-11-19 20:42:12 +01:00 committed by GitHub
commit 07765e993e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 7 deletions

View File

@ -195,14 +195,14 @@ describe("Stamp Editor", () => {
); );
const editorSelector = getEditorSelector(0); const editorSelector = getEditorSelector(0);
await waitForImage(page, editorSelector); await waitForImage(page, editorSelector);
await waitForSerialized(page, 1); await waitForSerialized(page, 1);
await page.waitForSelector(`${editorSelector} button.delete`); await page.waitForSelector(`${editorSelector} button.delete`);
await page.click(`${editorSelector} button.delete`); await page.click(`${editorSelector} button.delete`);
await waitForSerialized(page, 0); await waitForSerialized(page, 0);
await kbUndo(page); await kbUndo(page);
await waitForImage(page, editorSelector);
await waitForSerialized(page, 1); await waitForSerialized(page, 1);
await waitForSelectedEditor(page, editorSelector); await waitForSelectedEditor(page, editorSelector);
@ -654,8 +654,8 @@ describe("Stamp Editor", () => {
await waitForSerialized(page, 0); await waitForSerialized(page, 0);
await kbUndo(page); await kbUndo(page);
await waitForImage(page, selector);
await waitForSerialized(page, 1); await waitForSerialized(page, 1);
await page.waitForSelector(`${selector} canvas`);
} }
}); });
}); });
@ -739,8 +739,8 @@ describe("Stamp Editor", () => {
} }
await kbUndo(page); await kbUndo(page);
await waitForImage(page, selector);
await waitForSerialized(page, 1); await waitForSerialized(page, 1);
await page.waitForSelector(`${selector} canvas`);
} }
}); });
}); });

View File

@ -327,9 +327,18 @@ async function waitForStorageEntries(page, nEntries) {
async function waitForSerialized(page, nEntries) { async function waitForSerialized(page, nEntries) {
return page.waitForFunction( return page.waitForFunction(
n => n => {
(window.PDFViewerApplication.pdfDocument.annotationStorage.serializable try {
.map?.size ?? 0) === n, return (
(window.PDFViewerApplication.pdfDocument.annotationStorage
.serializable.map?.size ?? 0) === n
);
} catch {
// When serializing a stamp annotation with a SVG, the transfer
// can fail because of the SVG, so we just retry.
return false;
}
},
{}, {},
nEntries nEntries
); );