Skip to content

Commit e7f0195

Browse files
committed
Fix: Improve UI event processing in AbstractTargetEditorTest
Stabilizes flaky UI tests by ensuring all pending UI events are processed during editor activation. The event loop in now drains the event queue completely in each iteration and includes a short sleep to allow asynchronous operations to complete.
1 parent 5d4bf0c commit e7f0195

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/AbstractTargetEditorTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.eclipse.jface.text.ITextViewer;
4141
import org.eclipse.jface.text.contentassist.ICompletionProposal;
4242
import org.eclipse.pde.internal.genericeditor.target.extension.autocomplete.TargetDefinitionContentAssist;
43+
import org.eclipse.swt.widgets.Display;
4344
import org.eclipse.ui.IEditorPart;
4445
import org.eclipse.ui.PlatformUI;
4546
import org.eclipse.ui.ide.IDE;
@@ -76,6 +77,19 @@ protected ITextViewer getTextViewerForTarget(String name) throws Exception {
7677
targetFile.create(normalizedStream, true, new NullProgressMonitor());
7778
IEditorPart editor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
7879
targetFile, "org.eclipse.ui.genericeditor.GenericEditor");
80+
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().activate(editor);
81+
// Process UI events to ensure editor activation is complete
82+
Display display = PlatformUI.getWorkbench().getDisplay();
83+
for (int i = 0; i < 20; i++) {
84+
while (display.readAndDispatch()) {
85+
// Drain the event queue
86+
}
87+
try {
88+
Thread.sleep(10);
89+
} catch (InterruptedException e) {
90+
// Ignore
91+
}
92+
}
7993
return (ITextViewer) editor.getAdapter(ITextOperationTarget.class);
8094
}
8195
}

0 commit comments

Comments
 (0)