Delivers the following enhancements:
- wires the manual tests to the main gradle build 
https://bugs.openjdk.org/browse/JDK-8296441
- removes the limitation of single source file for manual tests
- provides the `ManualTestWindow` base class for manual tests with pass/fail 
buttons and instruction text area
- modified EmojiTest to showcase the new `ManualTestWindow`
- provides the manual test runner `TestRunnerApp` which allows for running 
manual tests in sequence or any order

At the moment, the new code is placed in the `tests/manual2` directory (we 
might decide to move it back to tests/manual once all the tests are migrated 
and placed in their own packages).

The `gradle manualApps` builds the classes in the `tests/manual2/build/classes` 
dir and generates a jar file containing all the tests, `ManualTestWindow`, 
`TestRunnerApp`, and the related test infrastructure (utilities etc.) in the 
`tests/manual2/dist/ManualTests.jar`.

## Gradle Build

`gradle clean manualApps`


## ManualTestWindow

This class simplifies writing manual tests.  Example:


public class ManualTestExample extends ManualTestWindow {
    public ManualTestExample() {
        super(
            "Manual Test Example",
            """
            Instructions:
            1. you will see a button named "Test"
            2. press the button
            3. verify that the button can be pressed""",
            400, 250
        );
     }

     @Override
     protected Node createContent() {
         return new Button("Test");
     }
}


![Screenshot 2025-03-28 at 11 50 
16](https://github.com/user-attachments/assets/b44a7eb1-d98f-44a5-b13e-612b31c94c60)

## TestRunnerApp

<img width="890" height="456" alt="Screenshot 2026-04-20 at 13 24 41" 
src="https://github.com/user-attachments/assets/1bd6b694-83cc-43b5-8b09-703f5f3b9d68";
 />


Features:

- loads default test plan
- allows to load a test plan from file

Possible improvements:

- execute single test within tests/manual2 without writing a test plan
- generating report


## Migrating Manual Tests

Migrating existing tests is simple:
- the tests must not use the default package
- `TestRunnerApp` allows to drop the `main()` method.
- FQCN of the test added to the default test plan
- the test can optionally extend the `ManualTestWindow`


---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

-------------

Commit messages:
 - ws
 - ws
 - manual2

Changes: https://git.openjdk.org/jfx/pull/2156/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2156&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319555
  Stats: 812 lines in 13 files changed: 803 ins; 1 del; 8 mod
  Patch: https://git.openjdk.org/jfx/pull/2156.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2156/head:pull/2156

PR: https://git.openjdk.org/jfx/pull/2156

Reply via email to