On Tue, 15 Apr 2025 07:18:44 GMT, Ambarish Rapte <ara...@openjdk.org> wrote:

>> tests/system/src/test/java/test/robot/javafx/scene/MouseLocationOnScreenTest.java
>>  line 123:
>> 
>>> 121:         try {
>>> 122:             Util.sleep(DELAY_TIME);
>>> 123:             Assertions.assertEquals(x, (int) robot.getMouseX());
>> 
>> this works also, though I'd simply use `if`.
>> 
>> A bigger question is why are we using `int` coordinates?  Wouldn't it make 
>> the test depend on the scale (and also on the screen resolution and window 
>> position)?
>> 
>> Should we instead use the double coordinates and `Assertions.equals(double, 
>> double, double)` ?
>
> I would recommend to use a for loop as below. 
> 
>     private static int VALIDATE_COUNT = 3;
>     static void validate(Robot robot, int x, int y) {
>         for (int i = 0; i < VALIDATE_COUNT; i++) {
>             Util.sleep(DELAY_TIME);
>             if (x == (int)robot.getMouseX() &&
>                 y == (int)robot.getMouseY()) {
>                 break;
>             }
>         }
>         Assertions.assertEquals(x, (int) robot.getMouseX());
>         Assertions.assertEquals(y, (int) robot.getMouseY());
>     }

Good idea. As a (minor) suggestion, I might loop "5" times before calling it a 
failure.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1772#discussion_r2044928480

Reply via email to