Conversation
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 00:06
a3830c8 to
8e2fcd9
Compare
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 12:46
8e2fcd9 to
5e262ad
Compare
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 13:31
5e262ad to
4c73d77
Compare
mraible
force-pushed
the
feature/playwright-tests
branch
2 times, most recently
from
August 12, 2026 14:36
3419644 to
0559663
Compare
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 15:05
0559663 to
a7e0abb
Compare
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 15:48
a7e0abb to
588bb89
Compare
…ll auth methods The it-playwright directory holds Java Playwright tests that point at a running Roller and adapt to its configuration: the old Selenium journey (register, create a weblog, publish and read an entry), OIDC sign-in as administrator and regular user including publishing while signed in, and a login-page check that the offered sign-in mechanisms match the configured authentication method. Passing -Droller.expectedAuth turns mismatches and unexpected skips into failures instead. It is deliberately not a reactor module since it needs a browser and a running instance. CI runs the suite three ways: db on Jetty with Derby, and oidc plus db-oidc against the Docker Compose stack via an AUTHENTICATION_METHOD matrix, driving Roller's auto-installer on the fresh database and uploading Playwright traces on failure. Failed tests record a trace to target/playwright-traces.
The journey now enables file uploads from the server admin page (they ship disabled, and the first registered user is the admin), uploads a generated PNG, and asserts the success page appears and the stored image is served back with the right content type. This guards the Struts 7 UploadedFilesAware upload path, which broke silently during the migration until Greg Huber caught it on dev@roller.
…port WebServicesIT is the only coverage of the servlets forked from javax-only libraries during the migration: it enables both APIs from the server admin page, lists the journey user's weblogs and publishes an entry over Blogger/MetaWeblog XML-RPC, verifies the entry renders on the blog, and fetches the AtomPub service document over basic auth. The new-user journey now also imports an OPML file and verifies the imported blogroll appears, guarding the second UploadedFilesAware conversion. The AtomPub check immediately caught a pre-existing bug where basic auth always returned 401, fixed in the Jakarta PR.
mraible
force-pushed
the
feature/playwright-tests
branch
from
August 12, 2026 19:37
588bb89 to
1fe4ba8
Compare
Owner
Author
|
Moved to apache#157 now that the whole stack lives in the main repository. Review and discussion continue there. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #4 (3/3 in the stack); review only the top commit.
Removed: the it-selenium module, its Jetty/Derby test harness, and its CI steps. Its user-journey coverage is ported to the new it-playwright module below, so no test scenario is lost — the journey actually grows (media upload, OIDC, login-page checks). The GitHub Actions workflow is rewritten accordingly.
it-playwright holds Java Playwright tests that point at a running Roller and adapt to how it is configured:
NewUserJourneyITports the old Selenium journey and extends it: register the first user, sign in, create a weblog, publish an entry, read it back on the blog, then enable file uploads from the server admin page (they ship disabled; the first user is the admin) and upload an image that is verified to be served back, and import an OPML file whose blogroll must appearOidcLoginITsigns in through the identity provider as an administrator and a regular user, verifies only the administrator reaches server administration, and creates a weblog and publishes an entry while signed in via OIDCLoginPageITchecks the login page offers exactly the sign-in mechanisms of the configured authentication methodWebServicesITis the only coverage of the servlets forked from javax-only libraries during the migration: it enables the APIs from the server admin page, lists weblogs and publishes an entry over Blogger/MetaWeblog XML-RPC, verifies the entry renders, and fetches the AtomPub service document over basic auth. It immediately caught a pre-existing bug where AtomPub basic auth always returned 401 (fixed in the Jakarta PR)Each test skips whatever its instance does not offer, which keeps casual local runs friendly but could let a misconfigured instance pass with everything skipped. Passing
-Droller.expectedAuth=db|oidc|db-oidcturns mismatches and unexpected skips into failures.CI runs the suite three ways: db on Jetty with Derby, plus oidc and db-oidc against the Docker Compose stack through an
AUTHENTICATION_METHODmatrix. The compose jobs drive Roller's auto-installer on the fresh database and upload Playwright traces on failure. All three legs were verified locally against fresh databases before the workflow was wired up.it-playwright is deliberately not a reactor module since it needs a browser and a running instance; see its README for local usage. The ldap and cma methods stay uncovered because neither stack provides a directory server or container-managed realms. Failed tests record a trace to
target/playwright-traces, viewable withnpx playwright show-trace.