Hi devs,
I think this was touched on in the past but never formally decided, so I’d like to re-verify we all agree.
Context / problem
While working on XWIKI-20411 (automated coverage for the Name Strategies feature), I needed a functional (@UITest, Docker-based) test that verifies a shipped default: that the standard flavor selects the “Character replacement” entity name strategy and forbids / and \ out of the box.
That default ships in xwiki-platform-distribution-ui-base (XWiki.EntityNameValidation.Configuration), not in the feature module (xwiki-platform-model-validation). So it can’t be tested from a per-feature *-test-docker module (e.g. xwiki-platform-model-validation-test-docker): those modules install only the feature’s own UI, not the flavor’s default configuration documents.
More generally, today we have:
- Per-feature Docker tests in core modules:
xwiki-platform-<feature>-test/xwiki-platform-<feature>-test-docker(JUnit5@UITest). - Distribution/flavor functional tests under
xwiki-platform-distribution-flavor-test/, but only the legacy ones (JUnit4 /xwiki-platform-test-ui:…-test-ui,…-test-misc, etc.). There is no JUnit5 Docker (@UITest) module at the distribution/flavor level.
=> There’s currently no natural home for a Docker test that needs the full standard flavor (shipped defaults, the set of extensions actually delivered to users, cross-feature/distribution behaviour).
Proposal
Add a new module:
xwiki-platform-distribution/xwiki-platform-distribution-flavor/
xwiki-platform-distribution-flavor-test/
xwiki-platform-distribution-flavor-test-docker
jarpackaging,src/test/it, JUnit5@UITest, following the exact same conventions as the existing core*-test-dockermodules.- Purpose: functional Docker tests that need distribution/flavor-level context (shipped default configuration provided by
xwiki-platform-distribution-ui-base/ the flavor, cross-feature integration of the assembled distribution) — as opposed to a single feature’s UI. - It becomes the home for new distribution-level Docker tests, and a target to progressively migrate the remaining legacy
xwiki-platform-distribution-flavor-test-ui(JUnit4) tests that genuinely need the flavor.
Guideline: “where does a Docker test go?”
- Tests a single feature → that feature’s
xwiki-platform-<feature>-test-dockermodule (install just that feature’s UI). This stays the default and the large majority of cases. - Tests a shipped default / the assembled flavor / cross-feature distribution behaviour →
xwiki-platform-distribution-flavor-test-docker.
WDYT?
Thanks!