From 1b69ef334c2ce3898714914cbb10eccfc44cc0fc Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Mon, 23 Feb 2026 12:31:43 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(frontend)=20add=20wopi=20editor=20e2e?= =?UTF-8?q?=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verify that a docx file opens in the Collabora editor, the canvas renders correctly via visual regression, and clipboard copy-paste works within the iframe. The iframe clipboard policy now uses wildcards to allow cross-origin clipboard access needed by Collabora. --- .../__tests__/app-drive/assets/empty_doc.docx | Bin 0 -> 7389 bytes .../apps/e2e/__tests__/app-drive/wopi.spec.ts | 86 ++++++++++++++++++ ...doc-canvas-after-paste-chromium-darwin.png | Bin 0 -> 11054 bytes .../empty-doc-canvas-chromium-darwin.png | Bin 0 -> 9868 bytes .../empty-doc-canvas-after-paste-chromium.png | Bin 0 -> 11072 bytes .../__tests__/empty-doc-canvas-chromium.png | Bin 0 -> 10263 bytes 6 files changed, 86 insertions(+) create mode 100644 src/frontend/apps/e2e/__tests__/app-drive/assets/empty_doc.docx create mode 100644 src/frontend/apps/e2e/__tests__/app-drive/wopi.spec.ts create mode 100644 src/frontend/apps/e2e/__tests__/app-drive/wopi.spec.ts-snapshots/empty-doc-canvas-after-paste-chromium-darwin.png create mode 100644 src/frontend/apps/e2e/__tests__/app-drive/wopi.spec.ts-snapshots/empty-doc-canvas-chromium-darwin.png create mode 100644 src/frontend/apps/e2e/__tests__/empty-doc-canvas-after-paste-chromium.png create mode 100644 src/frontend/apps/e2e/__tests__/empty-doc-canvas-chromium.png diff --git a/src/frontend/apps/e2e/__tests__/app-drive/assets/empty_doc.docx b/src/frontend/apps/e2e/__tests__/app-drive/assets/empty_doc.docx new file mode 100644 index 0000000000000000000000000000000000000000..288dcfcfa9a372b3b6b8334023265ff1a30891cf GIT binary patch literal 7389 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 { + test.skip(browserName !== "chromium", "Only runs on chromium"); + grantClipboardPermissions(browserName, context); + await clearDb(); + await login(page, "drive@example.com"); + await page.goto("/"); + await clickToMyFiles(page); + await expect(page.getByText("This tab is empty")).toBeVisible(); + + // Start waiting for file chooser before clicking. Note no await. + await uploadFile(page, path.join(__dirname, "/assets/empty_doc.docx")); + + // Wait for the file to be uploaded and visible in the list + await expect(page.getByText("Drop your files here")).not.toBeVisible(); + await expect(page.getByRole("cell", { name: "empty_doc.docx" })).toBeVisible({ + timeout: 10000, + }); + + // Click on the HEIC file to open the preview + await page.getByRole("cell", { name: "empty_doc.docx" }).dblclick(); + + // Check that the file preview is visible + const filePreview = page.getByTestId("file-preview"); + await expect(filePreview).toBeVisible(); + + const wopiIframe = filePreview.locator('iframe[name="office_frame"]'); + await expect(wopiIframe).toBeVisible(); + + await expect( + page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator('iframe[name="iframe-welcome-form"]') + .contentFrame() + .getByRole("heading", { name: "Explore The New" }), + ).toBeVisible(); + + await page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator('iframe[name="iframe-welcome-form"]') + .contentFrame() + .getByRole("button", { name: "Close" }) + .click(); + + const canvas = page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator('canvas[id="document-canvas"]'); + await expect(canvas).toBeVisible(); + await expect(canvas).toHaveScreenshot("empty-doc-canvas.png", { + maxDiffPixelRatio: 0.01, + }); + await page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator(".leaflet-layer") + .click(); + await page.waitForTimeout(1000); + await page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator("#clipboard-area") + .press("ControlOrMeta+a"); + await page.waitForTimeout(1000); + await page.keyboard.press(`ControlOrMeta+KeyC`); + await page.waitForTimeout(1000); + await page + .locator('iframe[name="office_frame"]') + .contentFrame() + .locator("#clipboard-area") + .press("ArrowRight"); + await page.waitForTimeout(1000); + await page.keyboard.press(`ControlOrMeta+KeyV`); + await page.waitForTimeout(1000); + await expect(canvas).toHaveScreenshot("empty-doc-canvas-after-paste.png", { + maxDiffPixelRatio: 0.01, + }); +}); diff --git a/src/frontend/apps/e2e/__tests__/app-drive/wopi.spec.ts-snapshots/empty-doc-canvas-after-paste-chromium-darwin.png b/src/frontend/apps/e2e/__tests__/app-drive/wopi.spec.ts-snapshots/empty-doc-canvas-after-paste-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb78d3da0eb1841e0980db89a2cf7a80508a76a GIT binary patch literal 11054 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 L+$g$c_v}9aPD#Wj literal 0 HcmV?d00001 diff --git a/src/frontend/apps/e2e/__tests__/empty-doc-canvas-after-paste-chromium.png b/src/frontend/apps/e2e/__tests__/empty-doc-canvas-after-paste-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..c092eddd159b83b920ebcbf9b00a64ba3569427a GIT binary patch literal 11072 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