diff options
author | mkersten | 2006-11-10 02:29:21 +0000 |
---|---|---|
committer | mkersten | 2006-11-10 02:29:21 +0000 |
commit | bee1d1cbf79ee03083f0d51dfc0998e1f7c990b8 (patch) | |
tree | b65a3adf294e0bb3646674f11134d6055fedac7d /org.eclipse.mylyn.tasks.tests | |
parent | 69f4b9209fb15a7de6fa7566b0ff7bda23b6af6c (diff) | |
download | org.eclipse.mylyn.tasks-bee1d1cbf79ee03083f0d51dfc0998e1f7c990b8.tar.gz org.eclipse.mylyn.tasks-bee1d1cbf79ee03083f0d51dfc0998e1f7c990b8.tar.xz org.eclipse.mylyn.tasks-bee1d1cbf79ee03083f0d51dfc0998e1f7c990b8.zip |
NEW - bug 158976: Mylar dev sandbox web connector has dependency on focused ui
https://bugs.eclipse.org/bugs/show_bug.cgi?id=158976
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests')
3 files changed, 96 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF index 44f3c513d..90d1b60ba 100644 --- a/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF +++ b/org.eclipse.mylyn.tasks.tests/META-INF/MANIFEST.MF @@ -18,7 +18,8 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.mylar.tasks.core, org.eclipse.mylar.monitor, org.eclipse.ui.forms, - org.eclipse.mylar.resources.tests + org.eclipse.mylar.resources.tests, + org.eclipse.mylar.tasks.web Eclipse-AutoStart: true Bundle-ClassPath: mylar-tasklist-tests.jar Export-Package: org.eclipse.mylar.tasks.tests, diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java index 2e337cc37..3b6383ebe 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java @@ -23,6 +23,7 @@ public class AllTasksTests { TestSuite suite = new TestSuite("Test for org.eclipse.mylar.tasklist.tests"); // $JUnit-BEGIN$ + suite.addTestSuite(WebRepositoryConnectorTest.class); suite.addTestSuite(CopyDetailsActionTest.class); suite.addTestSuite(TaskListTest.class); suite.addTestSuite(ProjectRepositoryAssociationTest.class); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/WebRepositoryConnectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/WebRepositoryConnectorTest.java new file mode 100644 index 000000000..032946979 --- /dev/null +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/WebRepositoryConnectorTest.java @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright (c) 2006 - 2006 Mylar eclipse.org project 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: + * Mylar project committers - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylar.tasks.tests; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import junit.extensions.ActiveTestSuite; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.mylar.internal.tasks.web.WebRepositoryConnector; +import org.eclipse.mylar.tasks.core.AbstractQueryHit; +import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; +import org.eclipse.mylar.tasks.core.QueryHitCollector; +import org.eclipse.mylar.tasks.core.RepositoryTemplate; +import org.eclipse.mylar.tasks.core.TaskRepository; +import org.eclipse.mylar.tasks.ui.TasksUiPlugin; + +/** + * @author Eugene Kuleshov + */ +public class WebRepositoryConnectorTest extends TestCase { + + private final RepositoryTemplate template; + + public WebRepositoryConnectorTest(RepositoryTemplate template) { + super("testRepositoryTemplate"); + this.template = template; + } + + public void testRepositoryTemplate() throws Exception { + IProgressMonitor monitor = new NullProgressMonitor(); + MultiStatus queryStatus = new MultiStatus(TasksUiPlugin.PLUGIN_ID, IStatus.OK, "Query result", null); + final List<AbstractQueryHit> hits = new ArrayList<AbstractQueryHit>(); + QueryHitCollector collector = new QueryHitCollector(TasksUiPlugin.getTaskListManager().getTaskList()) { + @Override + public void addMatch(AbstractQueryHit hit) { + hits.add(hit); + } + }; + + Map<String, String> params = new HashMap<String, String>(); + Map<String, String> attributes = new HashMap<String, String>(template.getAttributes()); + for(Map.Entry<String, String> e : attributes.entrySet()) { + String key = e.getKey(); + if(key.startsWith(WebRepositoryConnector.PARAM_PREFIX)) { + params.put(key, e.getValue()); + } + } + + TaskRepository repository = new TaskRepository(WebRepositoryConnector.REPOSITORY_TYPE, template.repositoryUrl, params); + repository.setAuthenticationCredentials("user", "pwd"); + + String taskQueryUrl = WebRepositoryConnector.evaluateParams(template.taskQueryUrl, repository); + String regexp = WebRepositoryConnector.evaluateParams(template.getAttribute(WebRepositoryConnector.PROPERTY_QUERY_REGEXP), repository); + String buffer = WebRepositoryConnector.fetchResource(taskQueryUrl, null, null); + IStatus resultingStatus = WebRepositoryConnector.performQuery(buffer, regexp, null, null, monitor, collector); + assertTrue("Query failed\n"+taskQueryUrl+"\n"+regexp+"\n"+resultingStatus.toString(), queryStatus.isOK()); + assertTrue("Expected non-empty query result\n"+taskQueryUrl+"\n"+regexp, hits.size()>0); + } + + public String getName() { + return template.label; + } + + public static TestSuite suite() { + TestSuite suite = new ActiveTestSuite(WebRepositoryConnectorTest.class.getName()); + + AbstractRepositoryConnector repositoryConnector = TasksUiPlugin.getRepositoryManager().getRepositoryConnector(WebRepositoryConnector.REPOSITORY_TYPE); + for (RepositoryTemplate template : repositoryConnector.getTemplates()) { + suite.addTest(new WebRepositoryConnectorTest(template)); + } + + return suite; + } + +} |