RFR: 8339984: Open source AWT MenuItem related tests [v2]

Abhishek Kumar abhiscxk at openjdk.org
Wed Sep 18 04:30:34 UTC 2024


On Tue, 17 Sep 2024 19:00:55 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> Abhishek Kumar has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Review comment fix
>
> test/jdk/java/awt/MenuItem/LotsOfMenuItemsTest.java line 48:
> 
>> 46:     private static final int NUM_WINDOWS = 400;
>> 47:     private static TestFrame firstFrame, testFrame;
>> 48:     private static Rectangle rect;
> 
> `rect` is never used.

Removed.

> test/jdk/java/awt/MenuItem/LotsOfMenuItemsTest.java line 86:
> 
>> 84:                 testFrame.setTitle("Last Frame");
>> 85:             }
>> 86:         }
> 
> Suggestion:
> 
>         for (int i = 1; i < NUM_WINDOWS - 1; ++i) {
>             testFrame = new TestFrame("Running(" + i + ")...");
>             testFrame.setVisible(false);
>             testFrame.dispose();
>         }
> 
>         testFrame = new TestFrame("Last Frame");
> 
> 
> Doesn't it make the code clearer and shorter?

Yeah.. updated now.

> test/jdk/java/awt/MenuItem/LotsOfMenuItemsTest.java line 98:
> 
>> 96:         firstFrame.setLocation(970, 350);
>> 97:         testFrame.setLocation(970, 510);
>> 98:     }
> 
> Hard-coding coordinates is not the best solution. The workaround is to position the first frame using `PassFailJFrame` and then use the location of the first frame to position the second (test) frame.
> Suggestion:
> 
>     @Override
>     public void componentShown(ComponentEvent e) {
>         PassFailJFrame.positionTestWindow(firstFrame,
>                                           PassFailJFrame.Position.HORIZONTAL);
>         testFrame.setLocation(firstFrame.getX(),
>                               firstFrame.getY() + firstFrame.getWidth() + 8);
>     }

I gave a try to get PassFailFrame position but some error occured and then hard coded. I agree hard-coding is not a best solution and thanks for suggesting the other way around. A bit of correction in setting the testFrame location, y co-ordinate should be firstFrame.getY() + firstFrame.getHeight() + 8 else the gap is more between firstFrame and testFrame.

> test/jdk/java/awt/MenuItem/LotsOfMenuItemsTest.java line 103:
> 
>> 101: }
>> 102: 
>> 103: class TestFrame extends Frame {
> 
> Could you please make `TestFrame` a static nested class inside `LotsOfMenuItemsTest`.
> 
> I avoids conflicts when you mark a folder as Test Source in an IDE and that folder contains multiple tests.
> 
> In fact, you don't need to extend `Frame` at all: create an instance of the `Frame` class and add menu bar and set the size of the frame. However, I agree, keeping this stuff in constructor simplifies test.

Updated.

> test/jdk/java/awt/MenuItem/MenuSetFontTest.java line 54:
> 
>> 52:                 .rows((int) INSTRUCTIONS.lines().count() + 2)
>> 53:                 .columns(40)
>> 54:                 .testTimeOut(5)
> 
> You may omit the default timeout.

Removed from all tests.

>Wouldn't it be better to keep the logical and visual order of the buttons consistent? Or is the intention to set the label to "text" after null followed by ""?

I Just left them as it was before conversion.

> test/jdk/java/awt/MenuItem/UnicodeMenuItemTest.java line 81:
> 
>> 79: 
>> 80:         MenuItem mi6 = new MenuItem("\u012d");
>> 81:         m.add(mi6);
> 
> The numbering is weird here: 2, 6, 7 — but there's no `mi1` or `m3`…

Ok.. Updated.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764371719
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764370259
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764371347
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764369981
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764372023
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764372474
PR Review Comment: https://git.openjdk.org/jdk/pull/21029#discussion_r1764372546


More information about the client-libs-dev mailing list