On Fri, 3 Jul 2020 00:01:10 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> Oliver Schmidtmer has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Change to Math.ceil and add test
>
> tests/system/src/test/java/test/javafx/embed/swing/JDK8220484Test.java line 
> 90:
> 
>> 89:         Field fpixelsIm = JFXPanel.class.getDeclaredField("pixelsIm");
>> 90:         fpixelsIm.setAccessible(true);
>> 91:         BufferedImage pixelsIm = (BufferedImage) 
>> fpixelsIm.get(myApp.jfxPanel);
> 
> This isn't the pattern we use to access internal fields of a JavaFX class, 
> and won't work.
> 
> We typically use the "shim" pattern for such white-box testing. Can you look 
> into adding shims to the `javafx.swing`
> module? Many of the other modules already have shims, so you can use that as 
> a pattern. It will require adding a
> package-scope `test_getPixelsIm` method to `JFXPanel`.  Alternatively, you 
> can use AWT `Robot` to read the JFXPanel
> pixels.

I've added a shim. I would like to check the backing image directly.

> tests/system/src/test/java/test/javafx/embed/swing/JDK8220484Test.java line 
> 103:
> 
>> 102:             for (int y = 90; y < 115; y++) {
>> 103:                 if(colorOfDiagonal == pixelsIm.getRGB( x, y )) {
>> 104:                     fail( "image is skewed" );
> 
> Are you sure that an equality test will work on all platforms and 
> configurations? We usually use a tolerance when
> comparing colors whose components are other than 0 or 255.
> Somewhat related to this, is the expected value of `181` coming from the 
> default value of the button border? It might
> be more robust to fill the Scene with a stroked rectangle whose color you 
> control (e.g. set to black). Either that or
> set the color of the button border using an inline CSS style so you aren't 
> dependent on the default inherited from the
> `modena.css` style sheet.  Minor: add a space after the `if` and remove the 
> extra spaces surrounding the function
> arguments `x, y`.

done, a rectangle with a defined background & border color. That is definitely 
more stable.

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

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

Reply via email to