diff options
author | Mickael Istria | 2017-05-18 12:47:18 +0000 |
---|---|---|
committer | Mickael Istria | 2017-09-08 11:02:12 +0000 |
commit | 4c519144c9f59cb4c5b40bc9b375d94fdf9fd285 (patch) | |
tree | 822ea88aa02ef418e7a85c1aaed762619a2364f7 /org.eclipse.ui.genericeditor.tests | |
parent | c40615d48f10a760873dd7857883fac588438d39 (diff) | |
download | eclipse.platform.text-4c519144c9f59cb4c5b40bc9b375d94fdf9fd285.tar.gz eclipse.platform.text-4c519144c9f59cb4c5b40bc9b375d94fdf9fd285.tar.xz eclipse.platform.text-4c519144c9f59cb4c5b40bc9b375d94fdf9fd285.zip |
Bug 513321 - Aggregate mutliple hover sourcesS4_8_0_M2I20170913-2000I20170913-1120I20170913-0800I20170913-0420I20170913-0220I20170912-2255I20170912-2000I20170912-0800I20170911-2000I20170911-0800I20170911-0405I20170910-2000I20170910-1055I20170910-0800I20170909-1500I20170909-0920I20170909-0800I20170909-0510I20170908-2345I20170908-2000
Including API fix
Change-Id: Ieb35e68eef0f67ea3610645505843c5060ab3d31
Signed-off-by: Mickael Istria <mistria@redhat.com>
Diffstat (limited to 'org.eclipse.ui.genericeditor.tests')
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/plugin.xml | 22 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/AbstratGenericEditorTest.java | 41 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/HoverTest.java | 39 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/AlrightyHoverProvider.java (renamed from org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/MagicHoverProvider.java) | 2 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/HelloHoverProvider.java | 38 |
5 files changed, 120 insertions, 22 deletions
diff --git a/org.eclipse.ui.genericeditor.tests/plugin.xml b/org.eclipse.ui.genericeditor.tests/plugin.xml index d2c3f4580ae..c7ce8e9b8de 100644 --- a/org.eclipse.ui.genericeditor.tests/plugin.xml +++ b/org.eclipse.ui.genericeditor.tests/plugin.xml @@ -26,9 +26,13 @@ <extension point="org.eclipse.ui.genericeditor.hoverProviders"> <hoverProvider - class="org.eclipse.ui.genericeditor.tests.contributions.MagicHoverProvider" + class="org.eclipse.ui.genericeditor.tests.contributions.AlrightyHoverProvider" contentType="org.eclipse.ui.genericeditor.tests.content-type"> </hoverProvider> + <hoverProvider + class="org.eclipse.ui.genericeditor.tests.contributions.HelloHoverProvider" + contentType="org.eclipse.ui.genericeditor.tests.specialized-content-type-bartxt"> + </hoverProvider> </extension> <extension point="org.eclipse.ui.genericeditor.reconcilers"> @@ -36,11 +40,11 @@ class="org.eclipse.ui.genericeditor.tests.contributions.TheReconcilerFirst" contentType="org.eclipse.core.runtime.text"> </reconciler> - <reconciler - class="org.eclipse.ui.genericeditor.tests.contributions.TheReconcilerSecond" - contentType="org.eclipse.ui.genericeditor.tests.reconciled-content-type"> - </reconciler> - </extension> + <reconciler + class="org.eclipse.ui.genericeditor.tests.contributions.TheReconcilerSecond" + contentType="org.eclipse.ui.genericeditor.tests.specialized-content-type-bartxt"> + </reconciler> + </extension> <extension point="org.eclipse.ui.genericeditor.presentationReconcilers"> <presentationReconciler @@ -80,10 +84,10 @@ priority="normal"> </content-type> <content-type - base-type="org.eclipse.core.runtime.text" + base-type="org.eclipse.ui.genericeditor.tests.content-type" file-names="bar.txt" - id="org.eclipse.ui.genericeditor.tests.reconciled-content-type" - name="Generic Editor Reconciler Test content-type" + id="org.eclipse.ui.genericeditor.tests.specialized-content-type-bartxt" + name="Specialized Generic Editor content-type for 'bar.txt'" priority="normal"> </content-type> </extension> diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/AbstratGenericEditorTest.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/AbstratGenericEditorTest.java index 6d12a6f548a..2d31f0ad00e 100644 --- a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/AbstratGenericEditorTest.java +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/AbstratGenericEditorTest.java @@ -17,6 +17,8 @@ import org.junit.Before; import org.eclipse.swt.widgets.Display; +import org.eclipse.core.runtime.NullProgressMonitor; + import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; @@ -47,17 +49,42 @@ public class AbstratGenericEditorTest { project = ResourcesPlugin.getWorkspace().getRoot().getProject(getClass().getName() + System.currentTimeMillis()); project.create(null); project.open(null); - file = project.getFile("foo.txt"); - file.create(new ByteArrayInputStream("bar 'bar'".getBytes()), true, null); - editor = (ExtensionBasedTextEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() - .getActivePage().openEditor(new FileEditorInput(this.file), "org.eclipse.ui.genericeditor.GenericEditor"); + createAndOpenFile("foo.txt", "bar 'bar'"); } + + /** + * Creates a new file in the project, opens it, and associate that file with the test state + * @param name name of the file in the project + * @param contents content of the file + * @throws Exception ex + * @since 1.1 + */ + protected void createAndOpenFile(String name, String contents) throws Exception { + this.file = project.getFile(name); + this.file.create(new ByteArrayInputStream(contents.getBytes()), true, null); + this.editor = (ExtensionBasedTextEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().openEditor(new FileEditorInput(this.file), "org.eclipse.ui.genericeditor.GenericEditor"); + } - @After - public void tearDown() throws Exception { + /** + * Closes editor and delete file. Keeps project open. + * @throws Exception ex + * @since 1.1 + */ + protected void cleanFileAndEditor() throws Exception { + if (editor != null) { + editor.close(false); + editor = null; + } if (file != null) { - file.delete(true, null); + file.delete(true, new NullProgressMonitor()); + file = null; } + } + + @After + public void tearDown() throws Exception { + cleanFileAndEditor(); if (project != null) { project.delete(true, null); } 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 a92fea66910..e234e340a9b 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 @@ -10,13 +10,14 @@ *******************************************************************************/ package org.eclipse.ui.genericeditor.tests; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Collections; +import java.util.Map; import org.junit.Assume; import org.junit.Before; @@ -46,7 +47,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.TextViewer; import org.eclipse.jface.text.tests.util.DisplayHelper; -import org.eclipse.ui.genericeditor.tests.contributions.MagicHoverProvider; +import org.eclipse.ui.genericeditor.tests.contributions.AlrightyHoverProvider; +import org.eclipse.ui.genericeditor.tests.contributions.HelloHoverProvider; import org.eclipse.ui.genericeditor.tests.contributions.MarkerResolutionGenerator; import org.eclipse.ui.workbench.texteditor.tests.ScreenshotTest; @@ -67,9 +69,23 @@ public class HoverTest extends AbstratGenericEditorTest { } @Test - public void testHover() throws Exception { + public void testSingleHover() throws Exception { Shell shell = getHoverShell(triggerCompletionAndRetrieveInformationControlManager()); - assertNotNull(findControl(shell, StyledText.class, MagicHoverProvider.LABEL)); + assertNotNull(findControl(shell, StyledText.class, AlrightyHoverProvider.LABEL)); + assertNull(findControl(shell, StyledText.class, HelloHoverProvider.LABEL)); + } + + /** + * @throws Exception ex + * @since 1.1 + */ + @Test + public void testMultipleHover() throws Exception { + cleanFileAndEditor(); + createAndOpenFile("bar.txt", "Hi"); + Shell shell = getHoverShell(triggerCompletionAndRetrieveInformationControlManager()); + assertNotNull(findControl(shell, StyledText.class, AlrightyHoverProvider.LABEL)); + assertNotNull(findControl(shell, StyledText.class, HelloHoverProvider.LABEL)); } @Test @@ -85,10 +101,17 @@ public class HoverTest extends AbstratGenericEditorTest { marker.setAttribute(IMarker.MESSAGE, problemMessage); marker.setAttribute(MarkerResolutionGenerator.FIXME, true); AbstractInformationControlManager manager = triggerCompletionAndRetrieveInformationControlManager(); - assertEquals(Collections.singletonList(marker), getHoverData(manager)); + Object hoverData = getHoverData(manager); + assertTrue(hoverData instanceof Map); + assertTrue(((Map<?,?>)hoverData).containsValue(Collections.singletonList(marker))); + assertTrue(((Map<?,?>)hoverData).containsValue(AlrightyHoverProvider.LABEL)); + assertFalse(((Map<?,?>)hoverData).containsValue(HelloHoverProvider.LABEL)); // check dialog content Shell shell= getHoverShell(manager); assertNotNull(findControl(shell, Label.class, marker.getAttribute(IMarker.MESSAGE, "NONE"))); + assertNotNull(findControl(shell, StyledText.class, AlrightyHoverProvider.LABEL)); + assertNull(findControl(shell, StyledText.class, HelloHoverProvider.LABEL)); + // check quick-fix works Link link = findControl(shell, Link.class, MarkerResolutionGenerator.FIXME); assertNotNull(link); Event event = new Event(); @@ -126,6 +149,12 @@ public class HoverTest extends AbstratGenericEditorTest { fail(); } Shell shell = (Shell)new Accessor(control[0], AbstractInformationControl.class).get("fShell"); + new DisplayHelper() { + @Override + protected boolean condition() { + return shell.isVisible(); + } + }.waitForCondition(this.editor.getSite().getShell().getDisplay(), 2000); assertTrue(shell.isVisible()); return shell; } diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/MagicHoverProvider.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/AlrightyHoverProvider.java index 0bba76cf9d4..726036e6dc4 100644 --- a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/MagicHoverProvider.java +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/AlrightyHoverProvider.java @@ -16,7 +16,7 @@ import org.eclipse.jface.text.ITextHoverExtension2; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.Region; -public class MagicHoverProvider implements ITextHover,ITextHoverExtension2 { +public class AlrightyHoverProvider implements ITextHover,ITextHoverExtension2 { public static final String LABEL= "Alrighty!"; diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/HelloHoverProvider.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/HelloHoverProvider.java new file mode 100644 index 00000000000..12f53196eda --- /dev/null +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/contributions/HelloHoverProvider.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2017 Red Hat Inc. and others + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Mickael Istria (Red Hat Inc.) + *******************************************************************************/ +package org.eclipse.ui.genericeditor.tests.contributions; + +import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.ITextHover; +import org.eclipse.jface.text.ITextHoverExtension2; +import org.eclipse.jface.text.ITextViewer; +import org.eclipse.jface.text.Region; + +public class HelloHoverProvider implements ITextHover, ITextHoverExtension2 { + + public static final String LABEL= "Hello!"; + + @Deprecated + @Override + public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { + return null; + } + + @Override + public IRegion getHoverRegion(ITextViewer textViewer, int offset) { + return new Region(0, textViewer.getTextWidget().getText().length()); + } + + @Override + public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion) { + return LABEL; + } +} |