Improve graphical editor UI test focus handling - #3004
Draft
lwrage wants to merge 10 commits into
Draft
Conversation
Configure the PDE launch to execute tests on a worker thread. This matches the Tycho UI-test execution model and leaves the SWT display thread available while SWTBot waits for and interacts with widgets.
Copy the selected type tokens before adding them to each edited type set. This prevents EMF containment from moving the same token instances between type sets during multi-selection edits.
Fire palette controls directly and dispatch diagram mouse events asynchronously. This avoids native Robot input and allows modal dialogs opened by JavaFX handlers to be driven from the test thread.
Remember property text controls changed by tests and send their focus-out notification before returning to the diagram. This makes data-binding updates deterministic without depending on native window focus transitions.
Focus the Outline view and explicitly select an item before opening its context menu. This removes reliance on whichever workbench control previously held keyboard focus.
Wait for diagram editors to open, activate and focus them before selection, and retain explicit context-menu targets. This keeps editor and navigator interactions tied to the intended widget instead of incidental workbench focus.
Find visible initialized shells and scope SWTBot widget lookup to the intended workbench window or dialog instead of requiring the OS-active shell. Parent flow dialogs to their editor shell and position nested dialogs relative to their actual parent so background execution does not encounter a null active shell.
Activate the with-ge-tests Maven profile for pull-request and master product builds. This restores org.osate.ge.tests to both Jenkins reactor paths while retaining the existing Xvnc environment for UI execution.
Create the nested point-cloud flow as a source and use that source as the first segment of the enclosing source implementation. The previous test assembled a source implementation beginning with a sink, so validation correctly kept the dialog's OK button disabled.
lwrage
marked this pull request as draft
August 6, 2026 20:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Related to #2018.
Testing
Ran the GE test bundle from the root reactor using the local profile and with-ge-tests profile.
Result: 35 tests run, 33 passed, and 2 errors. PrototypeEndToEndTest, DiagramExporterTest, and TransientViewTest passed. ErrorModelTest.testErrorFlows timed out waiting for the created error-flow element, and PrimaryEndToEndTest timed out because the Create Flow Implementation OK button remained disabled.