On Thu, 14 Sep 2023 17:37:23 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> PR adds tests mentioned in the title - a new `AttributesTest` class is added 
>> testing iconification, maximization and full-screen-ification of a Stage.
>> 
>> All variants are tested with decorated stage style.
>> 
>> Iconification is tested via overlaying two stages on top of one another, and 
>> then iconifying the top one - this is similar to already existing 
>> `IconifyTest.java` but it tests just the iconfication process and nothing 
>> more.
>> 
>> Maximization and FullScreen are both tested by creating two stages _not_ 
>> overlapping each other. After maximization/fullscreen top stage (being 
>> always on top as well) should cover the bottom stage. Moreover, FullScreen 
>> and Maximize are differentiated by checking if window decoration exists - 
>> maximized Stage will have its decoration taking space on top of the screen, 
>> whereas FullScreen one will not.
>> 
>> **NOTE:** on macOS I had issues with `getColor()` returning a valid color 
>> when called a second time. This only happened on macOS and with FullScreen 
>> test (others worked fine). Unfortunately I couldn't figure out why it 
>> returned (0, 0, 0, 255) or (255, 255, 255, 255). To mitigate that I moved 
>> color checks into separate `runAndWait()`-s with a small sleep between them, 
>> which seemed to help `getColor()` return proper values.
>> 
>> Verified to work on Windows 11, macOS and Linux.
>
> tests/system/src/test/java/test/robot/javafx/stage/AttributesTest.java line 
> 111:
> 
>> 109: 
>> 110:             topStage.setIconified(true);
>> 111:         });
> 
> This will show the stage before setting it as iconified. Testing correct 
> behavior for a stage that is initially iconified/maximized/fullScreen prior 
> to showing the stage is the main purpose of this test enhancement, so you 
> will need to do something like split the creation and showing of the stages 
> into separate methods or pass flags for the initial state of those three 
> attributes as arguments to the setupStages method.

Seems like testing both pre- and post-show behaviors would be the best option. 
I'll expand this to test both paths.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1240#discussion_r1327210433

Reply via email to