diff options
Diffstat (limited to 'org.eclipse.egit.ui.test/src/org')
-rw-r--r-- | org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/StagingViewTester.java | 7 | ||||
-rw-r--r-- | org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/TestUtil.java | 20 |
2 files changed, 27 insertions, 0 deletions
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/StagingViewTester.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/StagingViewTester.java index 35db1d2cfa..e7ce95c0d2 100644 --- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/StagingViewTester.java +++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/StagingViewTester.java @@ -40,6 +40,7 @@ public class StagingViewTester { SWTBotView view = TestUtil.showView(StagingView.VIEW_ID); TestUtil.joinJobs(org.eclipse.egit.core.JobFamilies.INDEX_DIFF_CACHE_UPDATE); + TestUtil.processUIEvents(); return new StagingViewTester(view); } @@ -61,13 +62,19 @@ public class StagingViewTester { public void stageFile(String path) { SWTBotTree unstagedTree = stagingView.bot().tree(0); + + TestUtil.waitUntilTreeHasNodeContainsText(stagingView.bot(), + unstagedTree, path, 10000); + TestUtil.getNode(unstagedTree.getAllItems(), path).select(); JobJoiner jobJoiner = JobJoiner.startListening( org.eclipse.egit.core.JobFamilies.INDEX_DIFF_CACHE_UPDATE, 30, TimeUnit.SECONDS); + ContextMenuHelper.clickContextMenu(unstagedTree, UIText.StagingView_StageItemMenuLabel); + jobJoiner.join(); } diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/TestUtil.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/TestUtil.java index b71c1da62f..36b5c27886 100644 --- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/TestUtil.java +++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/TestUtil.java @@ -167,6 +167,25 @@ public class TestUtil { } /** + * Process all queued UI events. If called from background thread, blocks + * until all pending events are processed in UI thread. + */ + public static void processUIEvents() { + if (Display.getCurrent() != null) { + while (Display.getCurrent().readAndDispatch()) { + // process queued ui events + } + } else { + // synchronously refresh UI + PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { + public void run() { + processUIEvents(); + } + }); + } + } + + /** * Appends content to given file. * * @param file @@ -569,6 +588,7 @@ public class TestUtil { IWorkbenchPage workbenchPage = workbenchWindow.getActivePage(); try { workbenchPage.showView(viewId); + processUIEvents(); } catch (PartInitException e) { throw new RuntimeException("Showing view with ID " + viewId + " failed.", e); |