|
Lines 14-27
Link Here
|
| 14 |
|
14 |
|
| 15 |
import junit.framework.TestCase; |
15 |
import junit.framework.TestCase; |
| 16 |
|
16 |
|
|
|
17 |
import org.eclipse.core.runtime.IAdaptable; |
| 17 |
import org.eclipse.jface.text.Document; |
18 |
import org.eclipse.jface.text.Document; |
| 18 |
import org.eclipse.jface.text.IDocument; |
19 |
import org.eclipse.jface.text.IDocument; |
| 19 |
import org.eclipse.jface.text.Region; |
20 |
import org.eclipse.jface.text.Region; |
| 20 |
import org.eclipse.jface.text.TextViewer; |
21 |
import org.eclipse.jface.text.TextViewer; |
| 21 |
import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector; |
22 |
import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector; |
| 22 |
import org.eclipse.jface.text.hyperlink.IHyperlink; |
23 |
import org.eclipse.jface.text.hyperlink.IHyperlink; |
|
|
24 |
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; |
| 23 |
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink; |
25 |
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlink; |
| 24 |
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlinkDetector; |
26 |
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskUrlHyperlinkDetector; |
|
|
27 |
import org.eclipse.mylyn.tasks.core.TaskRepository; |
| 28 |
import org.eclipse.mylyn.tasks.tests.TaskTestUtil; |
| 29 |
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; |
| 30 |
import org.eclipse.mylyn.tasks.ui.TasksUi; |
| 25 |
|
31 |
|
| 26 |
/** |
32 |
/** |
| 27 |
* @author Steffen Pingel |
33 |
* @author Steffen Pingel |
|
Lines 29-36
Link Here
|
| 29 |
*/ |
35 |
*/ |
| 30 |
public class TaskUrlHyperlinkDetectorTest extends TestCase { |
36 |
public class TaskUrlHyperlinkDetectorTest extends TestCase { |
| 31 |
|
37 |
|
|
|
38 |
private TaskRepository repository; |
| 39 |
|
| 40 |
@Override |
| 41 |
protected void setUp() throws Exception { |
| 42 |
repository = TaskTestUtil.createMockRepository(); |
| 43 |
} |
| 44 |
|
| 32 |
protected IHyperlink[] detect(final String text, int start, int length) { |
45 |
protected IHyperlink[] detect(final String text, int start, int length) { |
| 33 |
AbstractHyperlinkDetector detector = new TaskUrlHyperlinkDetector(); |
46 |
AbstractHyperlinkDetector detector = new TaskUrlHyperlinkDetector(); |
|
|
47 |
detector.setContext(new IAdaptable() { |
| 48 |
@SuppressWarnings("rawtypes") |
| 49 |
public Object getAdapter(Class adapter) { |
| 50 |
return repository; |
| 51 |
} |
| 52 |
}); |
| 34 |
return detector.detectHyperlinks(new TextViewer() { |
53 |
return detector.detectHyperlinks(new TextViewer() { |
| 35 |
@Override |
54 |
@Override |
| 36 |
public IDocument getDocument() { |
55 |
public IDocument getDocument() { |
|
Lines 123-126
Link Here
|
| 123 |
assertEquals(new Region(0, 22), hyperlinks[0].getHyperlinkRegion()); |
142 |
assertEquals(new Region(0, 22), hyperlinks[0].getHyperlinkRegion()); |
| 124 |
} |
143 |
} |
| 125 |
|
144 |
|
|
|
145 |
public void testDetectionNoRepositoryRegularUrl() { |
| 146 |
repository = null; |
| 147 |
IHyperlink[] hyperlinks = detect("aa http://www.eclipse.org test", 4, 0); |
| 148 |
assertNull(hyperlinks); |
| 149 |
} |
| 150 |
|
| 151 |
/** |
| 152 |
* Tests hyperlink detector in mode outside of task editor. |
| 153 |
*/ |
| 154 |
public void testDetectionNoRepositoryRepositoryUrl() { |
| 155 |
repository = null; |
| 156 |
TaskRepository repository1 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, |
| 157 |
"http://repo1.test/foo"); |
| 158 |
try { |
| 159 |
TasksUi.getRepositoryManager().addRepository(repository1); |
| 160 |
|
| 161 |
String text = "aa http://repo1.test/foo http://www.eclipse.org test"; |
| 162 |
IHyperlink[] hyperlinks = detect(text, 0, text.length()); |
| 163 |
assertNotNull(hyperlinks); |
| 164 |
assertEquals(1, hyperlinks.length); |
| 165 |
assertEquals(new Region(3, 21), hyperlinks[0].getHyperlinkRegion()); |
| 166 |
} finally { |
| 167 |
TasksUiPlugin.getRepositoryManager().removeRepository(repository1); |
| 168 |
} |
| 169 |
} |
| 170 |
|
| 171 |
/** |
| 172 |
* Tests hyperlink detector in mode outside of task editor with multiple task URLs. |
| 173 |
*/ |
| 174 |
public void testDetectionNoRepositoryMultipleRepositoryUrls() { |
| 175 |
repository = null; |
| 176 |
TaskRepository repository1 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, |
| 177 |
"http://repo1.test/foo"); |
| 178 |
TaskRepository repository2 = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, "http://repo2.test"); |
| 179 |
try { |
| 180 |
TasksUi.getRepositoryManager().addRepository(repository1); |
| 181 |
TasksUi.getRepositoryManager().addRepository(repository2); |
| 182 |
|
| 183 |
String text = "aa http://repo2.test http://repo1.test/foo http://repo1.test/bar http://www.eclipse.org test"; |
| 184 |
IHyperlink[] hyperlinks = detect(text, 0, text.length()); |
| 185 |
assertNotNull(hyperlinks); |
| 186 |
assertEquals(2, hyperlinks.length); |
| 187 |
} finally { |
| 188 |
TasksUiPlugin.getRepositoryManager().removeRepository(repository1); |
| 189 |
TasksUiPlugin.getRepositoryManager().removeRepository(repository2); |
| 190 |
} |
| 191 |
} |
| 192 |
|
| 126 |
} |
193 |
} |