diff options
author | Mickael Istria | 2016-10-13 08:54:39 +0000 |
---|---|---|
committer | Mickael Istria | 2016-10-13 09:09:28 +0000 |
commit | 1a9d72873c8c8c2b74bc39442a3a66dc786a9cf2 (patch) | |
tree | ce0a499280a98fb181da4e9f074092b6fc76a506 | |
parent | 8cbe29285e04f0b0e23b0346e953a62f0a8ccd75 (diff) | |
download | eclipse.platform.text-1a9d72873c8c8c2b74bc39442a3a66dc786a9cf2.tar.gz eclipse.platform.text-1a9d72873c8c8c2b74bc39442a3a66dc786a9cf2.tar.xz eclipse.platform.text-1a9d72873c8c8c2b74bc39442a3a66dc786a9cf2.zip |
Bug 505842 - [generic editor] Test failure in HoverTest.testHoverY20161013-1000
Add more pauses to let event process
Change-Id: I5005c4c8879cf07d2cad0ce11aa5057849ced55e
Signed-off-by: Mickael Istria <mistria@redhat.com>
2 files changed, 21 insertions, 11 deletions
diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/HoverTest.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/HoverTest.java index 86f5bae8e44..6d29a391f68 100644 --- a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/HoverTest.java +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/HoverTest.java @@ -96,6 +96,7 @@ public class HoverTest { private Object getHoverData() throws Exception { this.editor.selectAndReveal(2, 0); + waitAndDispatch(); // sending event to trigger hover computation StyledText editorTextWidget = (StyledText) this.editor.getAdapter(Control.class); editorTextWidget.getShell().forceActive(); @@ -111,11 +112,7 @@ public class HoverTest { hoverEvent.doit = true; editorTextWidget.notifyListeners(SWT.MouseHover, hoverEvent); // Events need to be processed for hover listener to work correctly - long timeout = 1000; //ms - long start = System.currentTimeMillis(); - while (start + timeout > System.currentTimeMillis()) { - Display.getDefault().readAndDispatch(); - } + waitAndDispatch(); // retrieving hover content Method getSourceViewerMethod= AbstractTextEditor.class.getDeclaredMethod("getSourceViewer"); getSourceViewerMethod.setAccessible(true); @@ -126,8 +123,16 @@ public class HoverTest { Field informationField = AbstractInformationControlManager.class.getDeclaredField("fInformation"); informationField.setAccessible(true); Object hoverData = informationField.get(hover); - Thread.sleep(500); // hoverData populated asynchronously + waitAndDispatch(); return hoverData; } + private void waitAndDispatch() { + long timeout = 1000; //ms + long start = System.currentTimeMillis(); + while (start + timeout > System.currentTimeMillis()) { + Display.getDefault().readAndDispatch(); + } + } + } diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java index 10a89a3b3da..d5b84b5230f 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java @@ -11,9 +11,10 @@ package org.eclipse.ui.internal.genericeditor; import java.util.Arrays; -import java.util.Iterator; import java.util.LinkedHashSet; +import java.util.LinkedList; import java.util.List; +import java.util.Queue; import java.util.Set; import org.eclipse.core.runtime.Platform; @@ -58,10 +59,14 @@ public final class ExtensionBasedTextViewerConfiguration extends TextSourceViewe private Set<IContentType> getContentTypes() { if (this.contentTypes == null) { this.contentTypes = new LinkedHashSet<>(); - this.contentTypes.addAll(Arrays.asList(Platform.getContentTypeManager().findContentTypesFor(editor.getEditorInput().getName()))); - Iterator<IContentType> it = this.contentTypes.iterator(); - while (it.hasNext()) { - this.contentTypes.add(it.next().getBaseType()); + Queue<IContentType> types = new LinkedList<>(Arrays.asList(Platform.getContentTypeManager().findContentTypesFor(editor.getEditorInput().getName()))); + while (!types.isEmpty()) { + IContentType type = types.poll(); + this.contentTypes.add(type); + IContentType parent = type.getBaseType(); + if (parent != null) { + types.add(parent); + } } } return this.contentTypes; |