RFR: 8298500: Create test to initially show stage with various attributes (iconified, maximized, full screen)
Kevin Rushforth
kcr at openjdk.org
Thu Sep 14 17:57:54 UTC 2023
On Wed, 13 Sep 2023 14:57:54 GMT, Andy Goryachev <angorya at 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 46:
>
>> 44: import test.robot.testharness.VisualTestBase;
>> 45:
>> 46: import static test.util.Util.TIMEOUT;
>
> this might be my personal preference - I think it's easier to read Util.TIMEOUT in the code rather to use a static import (especially since it's used only twice)
I prefer the static import in this case. More to the point, this is what most other tests do.
> tests/system/src/test/java/test/robot/javafx/stage/AttributesTest.java line 146:
>
>> 144: // wait a little bit between getColor() calls - on macOS the below one
>> 145: // would fail without this wait
>> 146: sleep(100);
>
> same - waitForIdle?
I don't think so. This is a small sleep that isn't intended to wait for idle.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1240#discussion_r1326307042
PR Review Comment: https://git.openjdk.org/jfx/pull/1240#discussion_r1326316769
More information about the openjfx-dev
mailing list