On Thu, 25 Mar 2021 13:32:53 GMT, Nir Lisker <nlis...@openjdk.org> wrote:

>> Simple fix to add a missing closing bracket to `PickResult::toString`. This 
>> includes a unit test that fails without the fix and passes with the fix.
>
> modules/javafx.graphics/src/test/java/test/javafx/scene/input/MouseEventTest.java
>  line 139:
> 
>> 137:                 case ']':
>> 138:                     --bracketCount;
>> 139:                     assertTrue("Too many closing brackets: " + str, 
>> bracketCount >= 0);
> 
> This test can fail due to a malformed `toString` result in the node 
> (`getIntersectedNode()`), which I would think is outside the scope of this 
> test. In practice, this test's result is dependent on what node I choose to 
> test.
> 
> Shouldn't we be testing the structure of the string and not its contents?

On the one hand, I can see your point that it's somewhat tangential that 
Rectangle has matched brackets, but you could say the same about the Point3D. 
Here is the result of MouseEvent.toString for the test:

MouseEvent [source = javafx.event.Event$$Lambda$110/0x0000000800c52fa8@461111c0,
target = javafx.event.Event$$Lambda$110/0x0000000800c52fa8@461111c0, eventType 
= MOUSE_PRESSED,
consumed = false, x = 18.0, y = 27.0, z = 150.0, button = PRIMARY, 
primaryButtonDown,
pickResult = PickResult [node = Rectangle[x=0.0, y=0.0, width=0.0, height=0.0, 
fill=0x000000ff],
point = Point3D [x = 15.0, y = 25.0, z = 100.0], distance = 33.0]]

The test would be more complicated if it were changed to ignore the results of 
the `toString()` of both the  intersected node and the point. If I were to go 
down this path, I would likely just change it to do match a regex of 
`"^MouseEvent [.*PickResult [.*]]$"`, which would be simple. Do you think it's 
worth it?

Maybe instead I could add a comment that this test checks for matching brackets 
in the entire composed string returned by `MouseEvent::toString`, including 
`PickResult::toString`, which in turn includes `Node::toString` for the 
intersected node?

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

PR: https://git.openjdk.java.net/jfx/pull/443

Reply via email to