RFR: 8294156: Allow PassFailJFrame.Builder to create test UI
Alexey Ivanov
aivanov at openjdk.org
Tue Sep 12 19:54:39 UTC 2023
On Tue, 12 Sep 2023 18:41:23 GMT, Alexander Zvegintsev <azvegint at openjdk.org> wrote:
>>> Sometimes we may need to create more than one window(e.g. some DnD test with two windows). Perhaps we should consider that here by adding `List<Window> createTestUI()`.
>>
>> I thought about it. Yet I couldn't find a simple scenario where multiple windows need to be created. When there are multiple windows, you have to position them. The positions of the windows may depend on the position of the instruction frame. In #12447, Harshitha @honkar-jdk managed many test windows.
>>
>> I decided to handle the most common scenario: *one test window*.
>>
>> This can be extended in the future by creating `WindowListCreator` interface, its `createTestUI` method will return a list or a collection: `List<Window>` or `Collection<Window>`. Changing the signature of the existing `WindowCreator.createTestUI` could also be possible without breaking backwards compatibility.
>>
>> Now that I think about it more, you have a point… *Why not allow passing a list of windows right away?* However, to test this case I'll need a (simple) scenario where multiple windows are created.
>
>> However, to test this case I'll need a (simple) scenario where multiple windows are created.
>
> For example `test/jdk/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java` is not converted to use PassFailJFrame, but shows instruction window and two test windows.
>
> For these test windows, we can safely reduce the width a lot and arrange them in a row.
> 
>
> Probably we could add some other sophisticated layouts later, e.g.:
> 
>
> But this kind of layout seems to be beyond the scope of this PR, I just wish we hadn't missed the option to add multiple windows at once.
But laying out the test windows is really a problem. With one window, the framework already provides a way to position the window, it is applied to the primary test window.
Before showing other windows, they need to be positioned.
There could be a callback so that the test developer is able to position the windows. In the future, we may add simple layouts to perform this task automatically.
> But this kind of layout seems to be beyond the scope of this PR, I just wish we hadn't missed the option to add multiple windows at once.
I agree, it's better to implement it right away. I didn't think about it as viable solution because of positioning issues.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15665#discussion_r1323491246
More information about the client-libs-dev
mailing list