Files
2026-09-09 19:58:49 +02:00

2.5 KiB

Firefox browser acceptance

The firefoxAcceptance Gradle task executes every browser-tagged scenario in the work, habits, identity and UX feature files using the real Firefox engine supplied by Playwright. The same browser steps and assertions are used for Chromium and Firefox. Each scenario owns its application, database, captured mail and browser contexts. Failure screenshots are separated by browser engine.

Firefox uses desktop contexts at both 1280px and 360px width. Playwright does not support mobile Firefox emulation; narrow desktop windows establish responsive-layout behavior, not physical Android acceptance. Android PWA installation and actual background notification delivery remain separate open checks.

tools/ci-jvm runs this suite after the JVM/Chromium and frontend checks and before the production smoke and release packaging. Undefined or failed Firefox scenarios fail the pipeline. The pinned Werkdock image already installs both browser engines and their system dependencies. Its report is build/reports/cucumber/firefox.json.

The first full Firefox run passed 17 of 19 examples and exposed two differences. Calendar selection now explicitly opens the picker before confirming the grid date. Firefox's offline Flow fallback uses a same-origin iframe: Spring Security now permits SAMEORIGIN framing only for the public offline documents, retaining DENY elsewhere. HTML entities preserve the punctuation through Vaadin's generated offline stub. The regression verifies both the offline stub header and the unchanged login framing restriction. A targeted rerun of both failing scenarios passed.

The final run exposed a redundant JVM test execution in the second Gradle invocation. The pipeline now excludes test only from that second invocation, after the mandatory first full JVM test command has succeeded. Standalone acceptance tasks retain their dependency on test.

Final verification on 0.1.68-SNAPSHOT: all 19 Firefox examples (127 steps), all 19 Chromium examples, 193 executed JVM tests (41 filtered reports), 68 operations tests, 17 frontend tests and the production/admin-recovery smoke passed. The shell wrapper was edited during this local run and consequently failed when resuming after Gradle; the unchanged packaging tail was then executed successfully against the passing smoke report. Shell syntax, operations tests and a Gradle dry run verified the final exclusion of the duplicate test task. The final optimized wrapper still requires its CI execution; no claim of a green CI run for this change is made. Completion version: 0.1.69-SNAPSHOT.