Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests')
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java15
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/MockAttachment.java49
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchTest.java (renamed from org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchQueryTest.java)19
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracAttachmentHandlerTest.java122
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracQueryTest.java34
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java250
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQuery.java57
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java51
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositorySettingsPageTest.java6
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTask.java45
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskDataHandlerTest.java537
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskEditorTest.java74
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskTest.java75
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracUtilTest.java66
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java6
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java4
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java4
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java62
18 files changed, 617 insertions, 859 deletions
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java
index bfa9a1948..20a20c82a 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/AllTracTests.java
@@ -8,6 +8,9 @@
package org.eclipse.mylyn.trac.tests;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
import org.eclipse.mylyn.trac.tests.client.TracClientFactoryTest;
import org.eclipse.mylyn.trac.tests.client.TracClientProxyTest;
import org.eclipse.mylyn.trac.tests.client.TracSearchTest;
@@ -17,10 +20,6 @@ import org.eclipse.mylyn.trac.tests.client.TracWebClientTest;
import org.eclipse.mylyn.trac.tests.client.TracXmlRpcClientSearchTest;
import org.eclipse.mylyn.trac.tests.client.TracXmlRpcClientTest;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
/**
* @author Mik Kersten
* @author Steffen Pingel
@@ -37,16 +36,16 @@ public class AllTracTests {
suite.addTestSuite(TracWebClientTest.class);
suite.addTestSuite(TracWebClientSearchTest.class);
suite.addTestSuite(TracClientFactoryTest.class);
+ suite.addTestSuite(TracClientProxyTest.class);
suite.addTestSuite(TracRepositoryConnectorTest.class);
- suite.addTestSuite(TracQueryTest.class);
+ suite.addTestSuite(TracUtilTest.class);
suite.addTestSuite(TracRepositoryQueryTest.class);
suite.addTestSuite(TracClientManagerTest.class);
suite.addTestSuite(TracAttachmentHandlerTest.class);
- suite.addTestSuite(RepositorySearchQueryTest.class);
+ suite.addTestSuite(RepositorySearchTest.class);
suite.addTestSuite(TracTaskDataHandlerTest.class);
- suite.addTestSuite(TracTaskTest.class);
+ suite.addTestSuite(TracTaskEditorTest.class);
suite.addTestSuite(TracRepositorySettingsPageTest.class);
- suite.addTestSuite(TracClientProxyTest.class);
suite.addTestSuite(TracHyperlinkUtilTest.class);
// $JUnit-END$
return suite;
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/MockAttachment.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/MockAttachment.java
deleted file mode 100644
index cd44fec39..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/MockAttachment.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.mylyn.internal.tasks.core.deprecated.ITaskAttachment;
-
-public class MockAttachment implements ITaskAttachment {
-
- private final byte[] data;
-
- public MockAttachment(byte[] data) {
- this.data = data;
- }
-
- public InputStream createInputStream() throws IOException {
- return new ByteArrayInputStream(data);
- }
-
- public String getContentType() {
- return "application/binary";
- }
-
- public String getDescription() {
- return "description";
- }
-
- public String getFilename() {
- return "filename.txt";
- }
-
- public long getLength() {
- return data.length;
- }
-
- public boolean isPatch() {
- return false;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchQueryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchTest.java
index 4ea97a1e2..73c8673d0 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchQueryTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/RepositorySearchTest.java
@@ -23,8 +23,10 @@ import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
+import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.trac.tests.support.TestFixture;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
@@ -32,17 +34,15 @@ import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
/**
* @author Steffen Pingel
*/
-public class RepositorySearchQueryTest extends TestCase {
+public class RepositorySearchTest extends TestCase {
private TestData data;
private TaskRepositoryManager manager;
-// private TracRepositoryConnector connector;
-
private TaskRepository repository;
- public RepositorySearchQueryTest() {
+ public RepositorySearchTest() {
}
@Override
@@ -52,8 +52,6 @@ public class RepositorySearchQueryTest extends TestCase {
data = TestFixture.init010();
manager = TasksUiPlugin.getRepositoryManager();
manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
-// connector = (TracRepositoryConnector) manager.getRepositoryConnector(TracUiPlugin.REPOSITORY_KIND);
}
protected void init(String url, Version version) {
@@ -74,15 +72,14 @@ public class RepositorySearchQueryTest extends TestCase {
TracSearch search = new TracSearch();
String queryUrl = repository.getRepositoryUrl() + ITracClient.QUERY_URL + search.toUrl();
- TracRepositoryQuery query = new TracRepositoryQuery(repository.getRepositoryUrl(), queryUrl, "description");
- SearchHitCollector collector = new SearchHitCollector(TasksUiPlugin.getTaskList(),
- repository, query);
-
+ IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
+ query.setUrl(queryUrl);
+ SearchHitCollector collector = new SearchHitCollector(TasksUiPlugin.getTaskList(), repository, query);
collector.run(new NullProgressMonitor());
+ assertEquals(data.tickets.size(), collector.getTasks().size());
for (ITask task : collector.getTasks()) {
assertEquals(TracTestConstants.TEST_TRAC_096_URL, task.getRepositoryUrl());
}
- assertEquals(data.tickets.size(), collector.getTasks().size());
}
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracAttachmentHandlerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracAttachmentHandlerTest.java
index e0ec1fce1..7c0cd201d 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracAttachmentHandlerTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracAttachmentHandlerTest.java
@@ -9,34 +9,26 @@
package org.eclipse.mylyn.trac.tests;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.List;
import junit.framework.TestCase;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractAttachmentHandler;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.FileAttachment;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
+import org.eclipse.mylyn.internal.tasks.core.data.FileTaskAttachmentSource;
import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.ITaskAttachment;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.trac.tests.support.TestFixture;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
+import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
/**
@@ -46,45 +38,22 @@ public class TracAttachmentHandlerTest extends TestCase {
private TaskRepository repository;
- private TaskRepositoryManager manager;
-
private TracRepositoryConnector connector;
- private AbstractAttachmentHandler attachmentHandler;
+ private AbstractTaskAttachmentHandler attachmentHandler;
private TestData data;
@Override
protected void setUp() throws Exception {
super.setUp();
-
- manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
data = TestFixture.init010();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
+ connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
+ attachmentHandler = connector.getTaskAttachmentHandler();
}
protected void init(String url, Version version) {
- String kind = TracCorePlugin.CONNECTOR_KIND;
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-
- repository = new TaskRepository(kind, url);
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- repository.setTimeZoneId(ITracClient.TIME_ZONE);
- repository.setCharacterEncoding(ITracClient.CHARSET);
- repository.setVersion(version.name());
-
- manager.addRepository(repository);
-
- AbstractRepositoryConnector abstractConnector = manager.getRepositoryConnector(kind);
- connector = (TracRepositoryConnector) abstractConnector;
-
- // FIXME attachmentHandler = connector.getAttachmentHandler();
+ repository = TracTestUtil.init(url, version);
}
public void testDownloadAttachmentXmlRpc010() throws Exception {
@@ -97,21 +66,12 @@ public class TracAttachmentHandlerTest extends TestCase {
private void downloadAttachmentXmlRpc(String url) throws Exception {
init(url, Version.XML_RPC);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "",
- new NullProgressMonitor());
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
- task.getTaskId());
-
- assertTrue(taskData.getAttachments().size() > 0);
- File file = File.createTempFile("attachment", null);
- file.deleteOnExit();
- attachmentHandler.downloadAttachment(repository, taskData.getAttachments().get(0), new FileOutputStream(file),
- new NullProgressMonitor());
-
- byte[] result = new byte[6];
- InputStream in = new FileInputStream(file);
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
+ assertTrue(attachments.size() > 0);
+ InputStream in = attachmentHandler.getContent(repository, task, attachments.get(0).getTaskAttribute(), null);
try {
+ byte[] result = new byte[6];
in.read(result);
assertEquals("Mylar\n", new String(result));
assertEquals(-1, in.read());
@@ -130,15 +90,10 @@ public class TracAttachmentHandlerTest extends TestCase {
private void getAttachmentDataXmlRpc(String url) throws Exception {
init(url, Version.XML_RPC);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "",
- new NullProgressMonitor());
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
- task.getTaskId());
-
- assertTrue(taskData.getAttachments().size() > 0);
- InputStream in = attachmentHandler.getAttachmentAsStream(repository, taskData.getAttachments().get(0),
- new NullProgressMonitor());
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
+ assertTrue(attachments.size() > 0);
+ InputStream in = attachmentHandler.getContent(repository, task, attachments.get(0).getTaskAttribute(), null);
byte[] result = new byte[6];
try {
in.read(result);
@@ -158,8 +113,7 @@ public class TracAttachmentHandlerTest extends TestCase {
private void uploadAttachmentXmlRpc(String url) throws Exception {
init(url, Version.XML_RPC);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "",
- new NullProgressMonitor());
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
File file = File.createTempFile("attachment", null);
file.deleteOnExit();
OutputStream out = new FileOutputStream(file);
@@ -168,39 +122,41 @@ public class TracAttachmentHandlerTest extends TestCase {
} finally {
out.close();
}
- FileAttachment attachment = new FileAttachment(file);
- attachment.setDescription("");
- attachmentHandler.uploadAttachment(repository, task, attachment, "comment", new NullProgressMonitor());
+ attachmentHandler.postContent(repository, task, new FileTaskAttachmentSource(file), "comment", null, null);
ITracClient client = connector.getClientManager().getTracClient(repository);
InputStream in = client.getAttachmentData(data.attachmentTicketId, file.getName(), null);
- byte[] result = new byte[5];
- in.read(result);
- assertEquals("Mylar", new String(result));
+ try {
+ byte[] result = new byte[5];
+ in.read(result);
+ assertEquals("Mylar", new String(result));
+ } finally {
+ in.close();
+ }
}
- public void testCanUploadAttachmentXmlRpc() throws CoreException {
+ public void testCanUploadAttachmentXmlRpc() throws Exception {
init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
- assertTrue(attachmentHandler.canUploadAttachment(repository, task));
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ assertTrue(attachmentHandler.canPostContent(repository, task));
}
- public void testCanUploadAttachmentWeb() throws CoreException {
+ public void testCanUploadAttachmentWeb() throws Exception {
init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
- assertFalse(attachmentHandler.canUploadAttachment(repository, task));
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ assertFalse(attachmentHandler.canPostContent(repository, task));
}
public void testCanDownloadAttachmentXmlRpc() throws Exception {
init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
- assertTrue(attachmentHandler.canDownloadAttachment(repository, task));
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ assertTrue(attachmentHandler.canGetContent(repository, task));
}
public void testCanDownloadAttachmentWeb() throws Exception {
init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
- assertFalse(attachmentHandler.canDownloadAttachment(repository, task));
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ assertFalse(attachmentHandler.canGetContent(repository, task));
}
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracQueryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracQueryTest.java
deleted file mode 100644
index ac6f80950..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracQueryTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-
-/**
- * @author Steffen Pingel
- */
-public class TracQueryTest extends TestCase {
-
- private TracRepositoryQuery createQuery(String parameter) {
- // FIXME: remove this external depencency
- String url = "http://oss.steffenpingel.de/mylar-trac-connector";
- return new TracRepositoryQuery(url, url + ITracClient.QUERY_URL + parameter, "description");
- }
-
- public void testGetTracSearch() {
- String queryParameter = "&order=priority&status=new&status=assigned&status=reopened&milestone=M1&owner=%7E%C3%A4%C3%B6%C3%BC";
- TracRepositoryQuery query = createQuery(queryParameter);
- TracSearch search = query.getTracSearch();
- assertEquals(queryParameter, search.toUrl());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java
index 8ddd2a0af..49736f899 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java
@@ -21,31 +21,33 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.LegacyTaskDataCollector;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
+import org.eclipse.mylyn.internal.tasks.core.TaskTask;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
+import org.eclipse.mylyn.internal.tasks.ui.util.AttachmentUtil;
import org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard;
import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
+import org.eclipse.mylyn.internal.trac.core.TracTaskDataHandler;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
+import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
+import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
+import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
+import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.ITaskAttachment;
import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.core.data.TaskDataCollector;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.trac.tests.support.TestFixture;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
+import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
@@ -59,52 +61,20 @@ public class TracRepositoryConnectorTest extends TestCase {
private TaskRepository repository;
- private TaskRepositoryManager manager;
-
private TracRepositoryConnector connector;
@Override
protected void setUp() throws Exception {
super.setUp();
-
- TracCorePlugin.getDefault()
- .getConnector()
- .setTaskRepositoryLocationFactory(new TaskRepositoryLocationFactory());
-
- manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
data = TestFixture.init010();
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
-
- // TestFixture.cleanupRepository1();
+ connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
}
protected void init(String url, Version version) {
- String kind = TracCorePlugin.CONNECTOR_KIND;
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-
- repository = new TaskRepository(kind, url);
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- repository.setTimeZoneId(ITracClient.TIME_ZONE);
- repository.setCharacterEncoding(ITracClient.CHARSET);
- repository.setVersion(version.name());
-
- manager.addRepository(repository);
-
- AbstractRepositoryConnector abstractConnector = manager.getRepositoryConnector(kind);
- assertEquals(abstractConnector.getConnectorKind(), kind);
-
- connector = (TracRepositoryConnector) abstractConnector;
+ repository = TracTestUtil.init(url, version);
}
public void testGetRepositoryUrlFromTaskUrl() {
- TracRepositoryConnector connector = new TracRepositoryConnector();
assertEquals("http://host/repo", connector.getRepositoryUrlFromTaskUrl("http://host/repo/ticket/1"));
assertEquals("http://host", connector.getRepositoryUrlFromTaskUrl("http://host/ticket/2342"));
assertEquals(null, connector.getRepositoryUrlFromTaskUrl("http://host/repo/2342"));
@@ -137,26 +107,14 @@ public class TracRepositoryConnectorTest extends TestCase {
}
protected void createTaskFromExistingKey() throws CoreException {
- String id = data.tickets.get(0).getId() + "";
- AbstractTask task = (AbstractTask) TasksUiInternal.createTask(repository, id, null);
+ String taskId = data.tickets.get(0).getId() + "";
+ TaskData taskData = connector.getTaskData(repository, taskId, null);
+ ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
assertNotNull(task);
- assertEquals(TracTask.class, task.getClass());
+ connector.updateTaskFromTaskData(repository, task, taskData);
+ assertEquals(TaskTask.class, task.getClass());
assertTrue(task.getSummary().contains("summary1"));
- assertEquals(repository.getRepositoryUrl() + ITracClient.TICKET_URL + id, task.getUrl());
-
- try {
- task = (AbstractTask) TasksUiInternal.createTask(repository, "does not exist", null);
- fail("Expected CoreException");
- } catch (CoreException e) {
- }
-
- // No longer parsing as an integer
- // try {
- // task = connector.createTaskFromExistingId(repository,
- // Integer.MAX_VALUE + "");
- // fail("Expected CoreException");
- // } catch (CoreException e) {
- // }
+ assertEquals(repository.getRepositoryUrl() + ITracClient.TICKET_URL + taskId, task.getUrl());
}
public void testClientManagerChangeTaskRepositorySettings() throws MalformedURLException {
@@ -207,20 +165,17 @@ public class TracRepositoryConnectorTest extends TestCase {
search.addFilter("milestone", "milestone1");
search.addFilter("milestone", "milestone2");
search.setOrderBy("id");
+ IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
+ query.setUrl(url + ITracClient.QUERY_URL + search.toUrl());
- String queryUrl = url + ITracClient.QUERY_URL + search.toUrl();
- TracRepositoryQuery query = new TracRepositoryQuery(url, queryUrl, "description");
-
- //MultiStatus queryStatus = new MultiStatus(TracUiPlugin.PLUGIN_ID, IStatus.OK, "Query result", null);
- final List<RepositoryTaskData> result = new ArrayList<RepositoryTaskData>();
- LegacyTaskDataCollector hitCollector = new LegacyTaskDataCollector() {
+ final List<TaskData> result = new ArrayList<TaskData>();
+ TaskDataCollector hitCollector = new TaskDataCollector() {
@Override
- public void accept(RepositoryTaskData hit) {
+ public void accept(TaskData hit) {
result.add(hit);
}
};
IStatus queryStatus = connector.performQuery(repository, query, hitCollector, null, new NullProgressMonitor());
-
assertTrue(queryStatus.isOK());
assertEquals(3, result.size());
assertEquals(data.tickets.get(0).getId() + "", result.get(0).getTaskId());
@@ -268,44 +223,135 @@ public class TracRepositoryConnectorTest extends TestCase {
assertEquals("2.0", versions[1].getName());
}
- // FIXME
-// public void testContextXmlRpc010() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-// TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
-// TasksUiInternal.synchronizeTask(connector, task, true, null);
-//
-// //int size = task.getTaskData().getAttachments().size();
-//
-// File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
-// sourceContextFile.createNewFile();
-// sourceContextFile.deleteOnExit();
-//
-// assertTrue(AttachmentUtil.attachContext(connector.getAttachmentHandler(), repository, task, "",
-// new NullProgressMonitor()));
-//
-// TasksUiInternal.synchronizeTask(connector, task, true, null);
-// // TODO attachment may have been overridden therefore size may not have changed
-// //assertEquals(size + 1, task.getTaskData().getAttachments().size());
-//
-// //RepositoryAttachment attachment = task.getTaskData().getAttachments().get(size);
-// //assertTrue(connector.retrieveContext(repository, task, attachment, TasksUiPlugin.getDefault().getProxySettings(), TasksUiPlugin.getDefault().getDataDirectory()));
-// }
+ public void testContextXmlRpc010() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+ String taskId = data.attachmentTicketId + "";
+ ITask task = TracTestUtil.createTask(repository, taskId);
+ File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
+ sourceContextFile.createNewFile();
+ sourceContextFile.deleteOnExit();
+
+ boolean result = AttachmentUtil.postContext(connector, repository, task, "", null, null);
+ assertTrue(result);
+
+ task = TracTestUtil.createTask(repository, taskId);
+ List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task);
+ // TODO attachment may have been overridden therefore size may not have changed
+ //assertEquals(size + 1, task.getTaskData().getAttachments().size());
+ ITaskAttachment attachment = attachments.get(attachments.size() - 1);
+ result = AttachmentUtil.retrieveContext(connector.getTaskAttachmentHandler(), repository, task, attachment,
+ TasksUiPlugin.getDefault().getDataDirectory(), PlatformUI.getWorkbench().getProgressService());
+ assertTrue(result);
+ }
public void testContextWeb096() throws Exception {
init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.attachmentTicketId + "", null);
-
+ String taskId = data.attachmentTicketId + "";
+ ITask task = TracTestUtil.createTask(repository, taskId);
File sourceContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
sourceContextFile.createNewFile();
sourceContextFile.deleteOnExit();
-// try {
- // FIXME
-// AttachmentUtil.attachContext(connector.getAttachmentHandler(), repository, task, "",
-// new NullProgressMonitor());
- fail("expected CoreException"); // operation should not be supported
-// } catch (CoreException e) {
-// }
+ try {
+ AttachmentUtil.postContext(connector, repository, task, "", null, null);
+ fail("expected CoreException"); // operation should not be supported
+ } catch (CoreException e) {
+ }
+ }
+
+ public void testIsCompleted() {
+ assertTrue(TracRepositoryConnector.isCompleted("closed"));
+ assertFalse(TracRepositoryConnector.isCompleted("Closed"));
+ assertFalse(TracRepositoryConnector.isCompleted("new"));
+ assertFalse(TracRepositoryConnector.isCompleted("assigned"));
+ assertFalse(TracRepositoryConnector.isCompleted("reopened"));
+ assertFalse(TracRepositoryConnector.isCompleted("foobar"));
+ assertFalse(TracRepositoryConnector.isCompleted(""));
+ assertFalse(TracRepositoryConnector.isCompleted(null));
+ }
+
+ public void testGetTaskPriority() {
+ assertEquals("P1", TracRepositoryConnector.getTaskPriority("blocker").toString());
+ assertEquals("P2", TracRepositoryConnector.getTaskPriority("critical").toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("major").toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority(null).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("").toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo bar").toString());
+ assertEquals("P4", TracRepositoryConnector.getTaskPriority("minor").toString());
+ assertEquals("P5", TracRepositoryConnector.getTaskPriority("trivial").toString());
+ }
+
+ public void testGetTaskPriorityFromTracPriorities() {
+ TracPriority p1 = new TracPriority("a", 1);
+ TracPriority p2 = new TracPriority("b", 2);
+ TracPriority p3 = new TracPriority("c", 3);
+ TracPriority[] priorities = new TracPriority[] { p1, p2, p3 };
+ assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
+ assertEquals("P5", TracRepositoryConnector.getTaskPriority("c", priorities).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo", priorities).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
+
+ p1 = new TracPriority("a", 10);
+ priorities = new TracPriority[] { p1 };
+ assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
+ assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
+
+ p1 = new TracPriority("1", 10);
+ p2 = new TracPriority("2", 20);
+ p3 = new TracPriority("3", 30);
+ TracPriority p4 = new TracPriority("4", 40);
+ TracPriority p5 = new TracPriority("5", 70);
+ TracPriority p6 = new TracPriority("6", 100);
+ priorities = new TracPriority[] { p1, p2, p3, p4, p5, p6 };
+ assertEquals("P1", TracRepositoryConnector.getTaskPriority("1", priorities).toString());
+ assertEquals("P1", TracRepositoryConnector.getTaskPriority("2", priorities).toString());
+ assertEquals("P2", TracRepositoryConnector.getTaskPriority("3", priorities).toString());
+ assertEquals("P2", TracRepositoryConnector.getTaskPriority("4", priorities).toString());
+ assertEquals("P4", TracRepositoryConnector.getTaskPriority("5", priorities).toString());
+ assertEquals("P5", TracRepositoryConnector.getTaskPriority("6", priorities).toString());
+ }
+
+ public void testUpdateTaskFromTaskData() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
+
+ TracTicket ticket = new TracTicket(123);
+ ticket.putBuiltinValue(Key.DESCRIPTION, "mydescription");
+ ticket.putBuiltinValue(Key.PRIORITY, "mypriority");
+ ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
+ ticket.putBuiltinValue(Key.TYPE, "mytype");
+
+ TracTaskDataHandler taskDataHandler = (TracTaskDataHandler) connector.getTaskDataHandler();
+ ITracClient client = connector.getClientManager().getTracClient(repository);
+ TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
+ ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
+
+ connector.updateTaskFromTaskData(repository, task, taskData);
+ assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl());
+ assertEquals("123", task.getTaskKey());
+ assertEquals("mysummary", task.getSummary());
+ assertEquals("P3", task.getPriority());
+ assertEquals("mytype", task.getTaskKind());
+ }
+
+ public void testUpdateTaskFromTaskDataSummaryOnly() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
+
+ TracTicket ticket = new TracTicket(456);
+ ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
+
+ TracTaskDataHandler taskDataHandler = (TracTaskDataHandler) connector.getTaskDataHandler();
+ ITracClient client = connector.getClientManager().getTracClient(repository);
+ TaskData taskData = taskDataHandler.createTaskDataFromTicket(client, repository, ticket, null);
+ ITask task = TasksUi.getRepositoryModel().createTask(repository, taskData.getTaskId());
+
+ connector.updateTaskFromTaskData(repository, task, taskData);
+ assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "456", task.getUrl());
+ assertEquals("456", task.getTaskKey());
+ assertEquals("mysummary", task.getSummary());
+ assertEquals("P3", task.getPriority());
+ assertEquals(AbstractTask.DEFAULT_TASK_KIND, task.getTaskKind());
}
} \ No newline at end of file
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQuery.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQuery.java
deleted file mode 100644
index efe16b7b4..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQuery.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests;
-
-import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-
-/**
- * @author Steffen Pingel
- */
-@Deprecated
-public class TracRepositoryQuery extends RepositoryQuery {
-
- public TracRepositoryQuery(String repositoryUrl, String queryUrl, String description) {
- super(description);
-
- assert queryUrl.startsWith(repositoryUrl + ITracClient.QUERY_URL);
-
- setRepositoryUrl(repositoryUrl);
- setUrl(queryUrl);
- }
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- public String getQueryParameter() {
- String url = getUrl();
- int i = url.indexOf(ITracClient.QUERY_URL);
- if (i == -1) {
- return null;
- }
- return url.substring(i + ITracClient.QUERY_URL.length());
- }
-
- /**
- * Creates a <code>TracSearch</code> object from this query.
- */
- public TracSearch getTracSearch() {
- TracSearch search = new TracSearch();
- String url = getQueryParameter();
- if (url != null) {
- search.fromUrl(url);
- }
- return search;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java
index 0b48505e5..d36622ca9 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java
@@ -8,21 +8,21 @@
package org.eclipse.mylyn.trac.tests;
-import java.util.Arrays;
-import java.util.List;
-
import junit.framework.TestCase;
import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
+import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery;
import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
+import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
-import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
+import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
+import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
+import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
/**
* @author Steffen Pingel
@@ -30,19 +30,17 @@ import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
public class TracRepositoryQueryTest extends TestCase {
public void testChangeRepositoryUrl() throws Exception {
- TaskRepositoryManager manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- TaskRepository repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND,
- TracTestConstants.TEST_TRAC_096_URL);
- manager.addRepository(repository);
+ TaskRepository repository = TracTestUtil.init(TracTestConstants.TEST_TRAC_096_URL, Version.XML_RPC);
TracSearch search = new TracSearch();
String queryUrl = repository.getRepositoryUrl() + ITracClient.QUERY_URL + search.toUrl();
- TracRepositoryQuery query = new TracRepositoryQuery(repository.getRepositoryUrl(), queryUrl, "description");
- TasksUiPlugin.getTaskList().addQuery(query);
+ IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(repository);
+ query.setUrl(queryUrl);
+ TasksUiPlugin.getTaskList().addQuery((RepositoryQuery) query);
- TracTask task = new TracTask(TracTestConstants.TEST_TRAC_096_URL, "" + 123, "desc");
+ String taskId = "123";
+ ITask task = TasksUi.getRepositoryModel().createTask(repository, taskId);
+ task.setUrl(repository.getRepositoryUrl() + ITracClient.TICKET_URL + taskId);
TasksUiPlugin.getTaskList().addTask(task);
String oldUrl = repository.getRepositoryUrl();
@@ -52,27 +50,6 @@ public class TracRepositoryQueryTest extends TestCase {
assertEquals(newUrl, query.getRepositoryUrl());
assertEquals(newUrl + ITracClient.QUERY_URL + search.toUrl(), query.getUrl());
- assertEquals(newUrl + ITracClient.TICKET_URL + 123, task.getUrl());
- }
-
- public void testGetFilterList() {
- String repositoryUrl = "https://foo.bar/repo";
- String parameterUrl = "&status=new&status=assigned&status=reopened&milestone=0.1";
- String queryUrl = repositoryUrl + ITracClient.QUERY_URL + parameterUrl;
- TracRepositoryQuery query = new TracRepositoryQuery(repositoryUrl, queryUrl, "description");
-
- TracSearch filterList = query.getTracSearch();
-
- assertEquals(parameterUrl, filterList.toUrl());
- assertEquals("&status=new|assigned|reopened&milestone=0.1", filterList.toQuery());
-
- List<TracSearchFilter> list = filterList.getFilters();
- TracSearchFilter filter = list.get(0);
- assertEquals("status", filter.getFieldName());
- assertEquals(Arrays.asList("new", "assigned", "reopened"), filter.getValues());
- filter = list.get(1);
- assertEquals("milestone", filter.getFieldName());
- assertEquals(Arrays.asList("0.1"), filter.getValues());
+ assertEquals(newUrl + ITracClient.TICKET_URL + taskId, task.getUrl());
}
-
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositorySettingsPageTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositorySettingsPageTest.java
index 3413e61d8..56456155f 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositorySettingsPageTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositorySettingsPageTest.java
@@ -11,11 +11,8 @@ package org.eclipse.mylyn.trac.tests;
import java.net.Proxy;
import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
-import org.eclipse.mylyn.internal.trac.ui.TracConnectorUi;
import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage;
import org.eclipse.mylyn.internal.trac.ui.wizard.TracRepositorySettingsPage.TracValidator;
import org.eclipse.mylyn.trac.tests.client.AbstractTracClientTest;
@@ -28,8 +25,6 @@ import org.eclipse.ui.PlatformUI;
*/
public class TracRepositorySettingsPageTest extends AbstractTracClientTest {
- private TracConnectorUi connector;
-
private TracRepositorySettingsPage page;
private TracValidator validator;
@@ -42,7 +37,6 @@ public class TracRepositorySettingsPageTest extends AbstractTracClientTest {
protected void setUp() throws Exception {
super.setUp();
- connector = (TracConnectorUi) TasksUiPlugin.getConnectorUi(TracCorePlugin.CONNECTOR_KIND);
page = new TracRepositorySettingsPage(null);
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTask.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTask.java
deleted file mode 100644
index 5675cce02..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTask.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests;
-
-import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
-import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
-import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
-
-/**
- * @author Steffen Pingel
- */
-@Deprecated
-public class TracTask extends AbstractTask {
- private boolean supportsSubtasks = false;
-
- public TracTask(String repositoryUrl, String id, String label) {
- super(repositoryUrl, id, label);
- setUrl(repositoryUrl + ITracClient.TICKET_URL + id);
- }
-
- @Override
- public String getConnectorKind() {
- return TracCorePlugin.CONNECTOR_KIND;
- }
-
- @Override
- public boolean isLocal() {
- return false;
- }
-
- public boolean getSupportsSubtasks() {
- return supportsSubtasks;
- }
-
- public void setSupportsSubtasks(boolean supportsSubtasks) {
- this.supportsSubtasks = supportsSubtasks;
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskDataHandlerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskDataHandlerTest.java
index 180ab4c27..030ff5c6b 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskDataHandlerTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskDataHandlerTest.java
@@ -8,30 +8,44 @@
package org.eclipse.mylyn.trac.tests;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
import org.eclipse.mylyn.commons.net.AuthenticationType;
-import org.eclipse.mylyn.context.tests.support.TestUtil;
-import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
-import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
+import org.eclipse.mylyn.internal.tasks.core.TaskTask;
+import org.eclipse.mylyn.internal.tasks.core.data.TextTaskAttachmentSource;
import org.eclipse.mylyn.internal.tasks.core.sync.SynchronizationSession;
-import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
+import org.eclipse.mylyn.internal.trac.core.TracAttribute;
+import org.eclipse.mylyn.internal.trac.core.TracAttributeMapper;
import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
import org.eclipse.mylyn.internal.trac.core.TracTaskDataHandler;
+import org.eclipse.mylyn.internal.trac.core.TracTaskMapper;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
+import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.RepositoryStatus;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.core.data.TaskMapper;
+import org.eclipse.mylyn.tasks.core.data.TaskRelation;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.trac.tests.support.TestFixture;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
@@ -46,8 +60,6 @@ public class TracTaskDataHandlerTest extends TestCase {
private TaskRepository repository;
- private TaskRepositoryManager manager;
-
private TestData data;
private TracTaskDataHandler taskDataHandler;
@@ -60,55 +72,47 @@ public class TracTaskDataHandlerTest extends TestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
-
data = TestFixture.init010();
-
- manager = TasksUiPlugin.getRepositoryManager();
- manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- connector = (TracRepositoryConnector) manager.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
- // FIXME
-// taskDataHandler = (TracTaskDataHandler) connector.getLegacyTaskDataHandler();
+ connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
+ taskDataHandler = (TracTaskDataHandler) connector.getTaskDataHandler();
}
protected void init(String url, Version version) {
- Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-
- repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, url);
- repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
- credentials.password), false);
- repository.setTimeZoneId(ITracClient.TIME_ZONE);
- repository.setCharacterEncoding(ITracClient.CHARSET);
- repository.setVersion(version.name());
-
- manager.addRepository(repository);
-
+ repository = TracTestUtil.init(url, version);
client = connector.getClientManager().getTracClient(repository);
}
- public void testGetChangedSinceLastSyncWeb096() throws Exception {
+ private SynchronizationSession createSession(ITask... tasks) {
+ SynchronizationSession session = new SynchronizationSession();
+ session.setNeedsPerformQueries(true);
+ session.setTaskRepository(repository);
+ session.setFullSynchronization(true);
+ session.setTasks(new HashSet<ITask>(Arrays.asList(tasks)));
+ return session;
+ }
+
+ public void testPreSynchronizationWeb096() throws Exception {
init(TracTestConstants.TEST_TRAC_096_URL, Version.TRAC_0_9);
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.offlineHandlerTicketId + "", null);
+ ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
Set<ITask> tasks = new HashSet<ITask>();
tasks.add(task);
- SynchronizationSession event = new SynchronizationSession();
- event.setNeedsPerformQueries(true);
- event.setTaskRepository(repository);
- event.setFullSynchronization(true);
- event.setTasks(tasks);
+ SynchronizationSession session = createSession();
+ session.setTasks(tasks);
assertEquals(null, repository.getSynchronizationTimeStamp());
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
assertEquals(null, repository.getSynchronizationTimeStamp());
- assertFalse(task.isStale());
+ // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
+ assertEquals(null, session.getStaleTasks());
int time = (int) (System.currentTimeMillis() / 1000) + 1;
repository.setSynchronizationTimeStamp(time + "");
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertFalse(task.isStale());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
+ assertEquals(null, session.getStaleTasks());
}
public void testMarkStaleTasksXmlRpc010() throws Exception {
@@ -122,61 +126,51 @@ public class TracTaskDataHandlerTest extends TestCase {
}
private void markStaleTasks() throws Exception {
+ SynchronizationSession session;
TracTicket ticket = TracTestUtil.createTicket(client, "markStaleTasks");
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, ticket.getId() + "", null);
- TasksUiInternal.synchronizeTask(connector, task, true, null);
- RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
- task.getTaskId());
-
- int lastModified = Integer.parseInt(taskData.getLastModified());
-
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(task);
- SynchronizationSession event = new SynchronizationSession();
- event.setNeedsPerformQueries(true);
- event.setTaskRepository(repository);
- event.setFullSynchronization(true);
+ ITask task = TracTestUtil.createTask(repository, ticket.getId() + "");
+ long lastModified = TracUtil.toTracTime(task.getModificationDate());
// an empty set should not cause contact to the repository
repository.setSynchronizationTimeStamp(null);
- event.setTasks(new HashSet<ITask>());
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
+ session = createSession(task);
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
assertNull(repository.getSynchronizationTimeStamp());
repository.setSynchronizationTimeStamp(null);
- event.setTasks(tasks);
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ session = createSession(task);
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
// always returns the ticket because time comparison mode is >=
- task.setStale(false);
repository.setSynchronizationTimeStamp(lastModified + "");
- connector.preSynchronization(event, null);
+ session = createSession(task);
+ connector.preSynchronization(session, null);
// TODO this was fixed so it returns false now but only if the
// query returns a single task
- assertFalse(event.needsPerformQueries());
- assertFalse(task.isStale());
+ assertFalse(session.needsPerformQueries());
+ // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
+ assertEquals(null, session.getStaleTasks());
- task.setStale(false);
repository.setSynchronizationTimeStamp((lastModified + 1) + "");
- event.setNeedsPerformQueries(true);
- connector.preSynchronization(event, null);
- assertFalse(event.needsPerformQueries());
- assertFalse(task.isStale());
+ session = createSession(task);
+ connector.preSynchronization(session, null);
+ assertFalse(session.needsPerformQueries());
+ // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks());
+ assertEquals(null, session.getStaleTasks());
// change ticket making sure it gets a new change time
Thread.sleep(1000);
ticket.putBuiltinValue(Key.DESCRIPTION, lastModified + "");
client.updateTicket(ticket, "comment", null);
- task.setStale(false);
repository.setSynchronizationTimeStamp((lastModified + 1) + "");
- event.setNeedsPerformQueries(true);
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ session = createSession(task);
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
}
public void testMarkStaleTasksNoTimeStampXmlRpc010() throws Exception {
@@ -190,233 +184,190 @@ public class TracTaskDataHandlerTest extends TestCase {
}
private void markStaleTasksNoTimeStamp() throws Exception {
- TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.offlineHandlerTicketId + "", null);
- Set<ITask> tasks = new HashSet<ITask>();
- tasks.add(task);
- SynchronizationSession event = new SynchronizationSession();
- event.setNeedsPerformQueries(true);
- event.setTaskRepository(repository);
- event.setFullSynchronization(true);
- event.setTasks(tasks);
+ SynchronizationSession session;
+ ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
- task.setStale(false);
+ session = createSession(task);
repository.setSynchronizationTimeStamp(null);
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
- task.setStale(false);
+ session = createSession(task);
repository.setSynchronizationTimeStamp("");
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
- task.setStale(false);
+ session = createSession(task);
repository.setSynchronizationTimeStamp("0");
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
- task.setStale(false);
+ session = createSession(task);
repository.setSynchronizationTimeStamp("abc");
- connector.preSynchronization(event, null);
- assertTrue(event.needsPerformQueries());
- assertTrue(task.isStale());
+ connector.preSynchronization(session, null);
+ assertTrue(session.needsPerformQueries());
+ assertEquals(Collections.singleton(task), session.getStaleTasks());
+ }
+
+ public void testNonNumericTaskId() {
+ try {
+ connector.getTaskData(repository, "abc", null);
+ fail("Expected CoreException");
+ } catch (CoreException e) {
+ }
+ }
+
+ public void testAttachmentChangesLastModifiedDate010() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+ attachmentChangesLastModifiedDate();
+ }
+
+ public void testAttachmentChangesLastModifiedDate011() throws Exception {
+ init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
+ attachmentChangesLastModifiedDate();
+ }
+
+ private void attachmentChangesLastModifiedDate() throws Exception {
+ AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
+ ITask task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ Date lastModified = task.getModificationDate();
+ attachmentHandler.postContent(repository, task, new TextTaskAttachmentSource("abc"), null, null, null);
+
+ task = TracTestUtil.createTask(repository, data.attachmentTicketId + "");
+ Date newLastModified = task.getModificationDate();
+ assertTrue("Expected " + newLastModified + " to be more recent than " + lastModified,
+ newLastModified.after(lastModified));
+ }
+
+ public void testPostTaskDataInvalidCredentials010() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+ postTaskDataInvalidCredentials();
+ }
+
+ public void testPostTaskDataInvalidCredentials011() throws Exception {
+ init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
+ postTaskDataInvalidCredentials();
}
- // FIXME
-// public void testNonNumericTaskId() {
-// try {
-// connector.getLegacyTaskDataHandler().getTaskData(repository, "abc", new NullProgressMonitor());
-// fail("Expected CoreException");
-// } catch (CoreException e) {
-// }
-// }
-
-// public void testAttachmentChangesLastModifiedDate010() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-// attachmentChangesLastModifiedDate();
-// }
-//
-// public void testAttachmentChangesLastModifiedDate011() throws Exception {
-// init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
-// attachmentChangesLastModifiedDate();
-// }
-
-// private void attachmentChangesLastModifiedDate() throws Exception {
-// RepositoryTaskData taskData = taskDataHandler.getTaskData(repository, data.attachmentTicketId + "",
-// new NullProgressMonitor());
-// TracTask task = new TracTask(repository.getRepositoryUrl(), data.attachmentTicketId + "", "");
-// connector.updateTaskFromTaskData(repository, task, taskData);
-// Date lastModified = taskDataHandler.getAttributeFactory(taskData).getDateForAttributeType(
-// RepositoryTaskAttribute.DATE_MODIFIED, taskData.getLastModified());
-//
-// AbstractAttachmentHandler attachmentHandler = connector.getAttachmentHandler();
-// ITaskAttachment attachment = new MockAttachment("abc".getBytes());
-// attachmentHandler.uploadAttachment(repository, task, attachment, null, new NullProgressMonitor());
-//
-// taskData = taskDataHandler.getTaskData(repository, data.attachmentTicketId + "", new NullProgressMonitor());
-// Date newLastModified = taskDataHandler.getAttributeFactory(taskData).getDateForAttributeType(
-// RepositoryTaskAttribute.DATE_MODIFIED, taskData.getLastModified());
-// assertTrue("Expected " + newLastModified + " to be more recent than " + lastModified,
-// newLastModified.after(lastModified));
-// }
-//
-// public void testPostTaskDataInvalidCredentials010() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-// postTaskDataInvalidCredentials();
-// }
-//
-// public void testPostTaskDataInvalidCredentials011() throws Exception {
-// init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC);
-// postTaskDataInvalidCredentials();
-// }
-//
-// private void postTaskDataInvalidCredentials() throws Exception {
-// TracTask task = (TracTask) TasksUiInternal.createTask(repository, data.offlineHandlerTicketId + "", null);
-// TasksUiInternal.synchronizeTask(connector, task, true, null);
-// RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(),
-// task.getTaskId());
-//
-// taskData.setNewComment("new comment");
-// repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("foo", "bar"), false);
-// try {
-// taskDataHandler.postTaskData(repository, taskData, new NullProgressMonitor());
-// } catch (CoreException expected) {
-// assertEquals(RepositoryStatus.ERROR_REPOSITORY_LOGIN, expected.getStatus().getCode());
-// }
-// assertEquals("new comment", taskData.getNewComment());
-// }
-//
-// public void testCanInitializeTaskData() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-//
-// TracTask task = new TracTask("", "", "");
-// assertFalse(taskDataHandler.canInitializeSubTaskData(task, null));
-// task.setSupportsSubtasks(true);
-// assertTrue(taskDataHandler.canInitializeSubTaskData(task, null));
-//
-// RepositoryTaskData taskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "",
-// new NullProgressMonitor());
-// assertFalse(taskDataHandler.canInitializeSubTaskData(null, taskData));
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "");
-// assertTrue(taskDataHandler.canInitializeSubTaskData(null, taskData));
-//
-// task.setSupportsSubtasks(false);
-// connector.updateTaskFromTaskData(repository, task, taskData);
-// assertTrue(taskDataHandler.canInitializeSubTaskData(task, null));
-// }
-//
-// public void testInitializeSubTaskData() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-//
-// RepositoryTaskData parentTaskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "",
-// new NullProgressMonitor());
-// try {
-// taskDataHandler.initializeSubTaskData(repository, parentTaskData, parentTaskData, new NullProgressMonitor());
-// fail("expected CoreException");
-// } catch (CoreException expected) {
-// }
-//
-// parentTaskData.setSummary("abc");
-// parentTaskData.setDescription("def");
-// String component = parentTaskData.getAttribute(TracAttribute.COMPONENT.getTracKey()).getOptions().get(0);
-// parentTaskData.setAttributeValue(TracAttribute.COMPONENT.getTracKey(), component);
-// parentTaskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "");
-// RepositoryTaskData subTaskData = new RepositoryTaskData(parentTaskData.getAttributeFactory(),
-// TracCorePlugin.CONNECTOR_KIND, "", "");
-// subTaskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKING, "");
-// taskDataHandler.initializeSubTaskData(repository, subTaskData, parentTaskData, new NullProgressMonitor());
-// assertEquals("", subTaskData.getSummary());
-// assertEquals("", subTaskData.getDescription());
-// assertEquals(component, subTaskData.getAttributeValue(TracAttribute.COMPONENT.getTracKey()));
-// assertEquals(parentTaskData.getTaskId(), subTaskData.getAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKING));
-// assertEquals("", parentTaskData.getAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY));
-// }
-//
-// public void testGetSubTaskIds() throws Exception {
-// RepositoryTaskData taskData = new RepositoryTaskData(new TracAttributeMapper(), TracCorePlugin.CONNECTOR_KIND,
-// "", "");
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "123 456");
-// Set<String> subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(2, subTaskIds.size());
-// assertTrue(subTaskIds.contains("123"));
-// assertTrue(subTaskIds.contains("456"));
-//
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "7,8");
-// subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(2, subTaskIds.size());
-// assertTrue(subTaskIds.contains("7"));
-// assertTrue(subTaskIds.contains("8"));
-//
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, " 7 , 8, ");
-// subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(2, subTaskIds.size());
-// assertTrue(subTaskIds.contains("7"));
-// assertTrue(subTaskIds.contains("8"));
-//
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "7");
-// subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(1, subTaskIds.size());
-// assertTrue(subTaskIds.contains("7"));
-//
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, "");
-// subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(0, subTaskIds.size());
-//
-// taskData.setAttributeValue(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY, " ");
-// subTaskIds = taskDataHandler.getSubTaskIds(taskData);
-// assertEquals(0, subTaskIds.size());
-// }
-//
-// public void testUpdateTaskDetails() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
-//
-// TracTicket ticket = new TracTicket(123);
-// ticket.putBuiltinValue(Key.DESCRIPTION, "mydescription");
-// ticket.putBuiltinValue(Key.PRIORITY, "mypriority");
-// ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
-// ticket.putBuiltinValue(Key.TYPE, "mytype");
-//
-// ITracClient client = connector.getClientManager().getTracClient(repository);
-// RepositoryTaskData taskData = new RepositoryTaskData(IdentityAttributeFactory.getInstance(),
-// TracCorePlugin.CONNECTOR_KIND, repository.getRepositoryUrl(), ticket.getId() + "");
-// taskDataHandler.updateTaskDataFromTicket(taskData, ticket, client);
-//
-// TracTask task = new TracTask(TracTestConstants.TEST_TRAC_010_URL, "" + 123, "desc");
-// assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl());
-// assertEquals("desc", task.getSummary());
-//
-// DefaultTaskSchema schema = new DefaultTaskSchema(taskData);
-// schema.applyTo(task);
-//
-// assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl());
-// assertEquals("123", task.getTaskKey());
-// assertEquals("mysummary", task.getSummary());
-// assertEquals("P3", task.getPriority());
-// assertEquals("mytype", task.getTaskKind());
-// }
-//
-// public void testUpdateTaskDetailsSummaryOnly() throws InvalidTicketException {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.TRAC_0_9);
-//
-// TracTicket ticket = new TracTicket(456);
-// ticket.putBuiltinValue(Key.SUMMARY, "mysummary");
-//
-// TracTask task = new TracTask(TracTestConstants.TEST_TRAC_010_URL, "" + 456, "desc");
-//
-// ITracClient client = connector.getClientManager().getTracClient(repository);
-// RepositoryTaskData taskData = new RepositoryTaskData(IdentityAttributeFactory.getInstance(),
-// TracCorePlugin.CONNECTOR_KIND, repository.getRepositoryUrl(), ticket.getId() + "");
-// taskDataHandler.updateTaskDataFromTicket(taskData, ticket, client);
-// DefaultTaskSchema schema = new DefaultTaskSchema(taskData);
-// schema.applyTo(task);
-//
-// assertEquals(TracTestConstants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "456", task.getUrl());
-// assertEquals("456", task.getTaskKey());
-// assertEquals("mysummary", task.getSummary());
-// assertEquals("P3", task.getPriority());
-// assertEquals(AbstractTask.DEFAULT_TASK_KIND, task.getTaskKind());
-// }
+ private void postTaskDataInvalidCredentials() throws Exception {
+ ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
+ TaskData taskData = TasksUi.getTaskDataManager().getTaskData(task);
+ taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).setValue("new comment");
+ repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("foo", "bar"), false);
+ try {
+ taskDataHandler.postTaskData(repository, taskData, null, null);
+ } catch (CoreException expected) {
+ assertEquals(RepositoryStatus.ERROR_REPOSITORY_LOGIN, expected.getStatus().getCode());
+ }
+ assertEquals("new comment", taskData.getRoot().getMappedAttribute(TaskAttribute.COMMENT_NEW).getValue());
+ }
+
+ public void testCanInitializeTaskData() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+
+ ITask task = new TaskTask(TracCorePlugin.CONNECTOR_KIND, "", "");
+ assertFalse(taskDataHandler.canInitializeSubTaskData(repository, task));
+ task.setAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS, Boolean.TRUE.toString());
+ assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
+
+ task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + "");
+ TaskData taskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "", null);
+ assertFalse(taskDataHandler.canInitializeSubTaskData(repository, task));
+
+ taskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
+ connector.updateTaskFromTaskData(repository, task, taskData);
+ assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
+
+ task.setAttribute(TracRepositoryConnector.TASK_KEY_SUPPORTS_SUBTASKS, Boolean.FALSE.toString());
+ connector.updateTaskFromTaskData(repository, task, taskData);
+ assertTrue(taskDataHandler.canInitializeSubTaskData(repository, task));
+ }
+
+ public void testInitializeSubTaskDataInvalidParent() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+ TaskData parentTaskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "",
+ new NullProgressMonitor());
+ try {
+ taskDataHandler.initializeSubTaskData(repository, parentTaskData, parentTaskData, null);
+ fail("expected CoreException");
+ } catch (CoreException expected) {
+ }
+ }
+
+ public void testInitializeSubTaskData() throws Exception {
+ init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
+ TaskData parentTaskData = taskDataHandler.getTaskData(repository, data.offlineHandlerTicketId + "", null);
+ TaskMapper parentTaskMapper = new TracTaskMapper(parentTaskData, null);
+ parentTaskMapper.setSummary("abc");
+ parentTaskMapper.setDescription("def");
+ String component = parentTaskData.getRoot()
+ .getMappedAttribute(TracAttribute.COMPONENT.getTracKey())
+ .getOptions()
+ .get(0);
+ parentTaskMapper.setComponent(component);
+ parentTaskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
+ TaskData subTaskData = new TaskData(parentTaskData.getAttributeMapper(), TracCorePlugin.CONNECTOR_KIND, "", "");
+ subTaskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKING);
+ taskDataHandler.initializeSubTaskData(repository, subTaskData, parentTaskData, new NullProgressMonitor());
+ TaskMapper subTaskMapper = new TracTaskMapper(subTaskData, null);
+ assertEquals("", subTaskMapper.getSummary());
+ assertEquals("", subTaskMapper.getDescription());
+ assertEquals(component, subTaskMapper.getComponent());
+ assertEquals(parentTaskData.getTaskId(), subTaskData.getRoot().getMappedAttribute(
+ TracTaskDataHandler.ATTRIBUTE_BLOCKING).getValue());
+ assertEquals("", parentTaskData.getRoot()
+ .getMappedAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY)
+ .getValue());
+ }
+
+ public void testGetSubTaskIds() throws Exception {
+ TaskData taskData = new TaskData(new TracAttributeMapper(new TaskRepository("", "")),
+ TracCorePlugin.CONNECTOR_KIND, "", "");
+ TaskAttribute blockedBy = taskData.getRoot().createAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY);
+ Collection<String> subTaskIds;
+
+ blockedBy.setValue("123 456");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(2, subTaskIds.size());
+ assertTrue(subTaskIds.contains("123"));
+ assertTrue(subTaskIds.contains("456"));
+
+ blockedBy.setValue("7,8");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(2, subTaskIds.size());
+ assertTrue(subTaskIds.contains("7"));
+ assertTrue(subTaskIds.contains("8"));
+
+ blockedBy.setValue(" 7 , 8, ");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(2, subTaskIds.size());
+ assertTrue(subTaskIds.contains("7"));
+ assertTrue(subTaskIds.contains("8"));
+
+ blockedBy.setValue("7");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(1, subTaskIds.size());
+ assertTrue(subTaskIds.contains("7"));
+
+ blockedBy.setValue("");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(0, subTaskIds.size());
+
+ blockedBy.setValue(" ");
+ subTaskIds = getSubTaskIds(taskData);
+ assertEquals(0, subTaskIds.size());
+ }
+
+ private Collection<String> getSubTaskIds(TaskData taskData) {
+ List<String> subTaskIds = new ArrayList<String>();
+ Collection<TaskRelation> relations = connector.getTaskRelations(taskData);
+ for (TaskRelation taskRelation : relations) {
+ subTaskIds.add(taskRelation.getTaskId());
+ }
+ return subTaskIds;
+ }
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskEditorTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskEditorTest.java
index df482e883..2c953dffa 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskEditorTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskEditorTest.java
@@ -10,67 +10,37 @@ package org.eclipse.mylyn.trac.tests;
import junit.framework.TestCase;
-import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
-import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractTaskDataHandler;
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
+import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
+import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
+import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
+import org.eclipse.mylyn.trac.tests.support.TracTestUtil;
/**
* @author Steffen Pingel
*/
public class TracTaskEditorTest extends TestCase {
- private TracRepositoryConnector connector;
+ public void testGetSelectedRepository() throws Exception {
+ TaskRepository repository = TracTestUtil.init(TracTestConstants.TEST_TRAC_010_URL,
+ Version.XML_RPC);
- private TaskRepository repository;
+ ITask task = TracTestUtil.createTask(repository, "1");
+ TasksUiPlugin.getTaskList().addTask(task);
+ TasksUiUtil.openTask(task);
- private TaskRepositoryManager manager;
+ TaskListView taskListView = TaskListView.getFromActivePerspective();
+ // force refresh since automatic refresh is delayed
+ taskListView.getViewer().refresh();
+ taskListView.getViewer().expandAll();
+ taskListView.getViewer().setSelection(new StructuredSelection(task));
- private AbstractTaskDataHandler taskDataHandler;
-
- // FIXME
-// @Override
-// protected void setUp() throws Exception {
-// super.setUp();
-//
-// manager = TasksUiPlugin.getRepositoryManager();
-// manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
-//
-// connector = (TracRepositoryConnector) manager.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
-//
-// taskDataHandler = connector.getLegacyTaskDataHandler();
-// }
-//
-// protected void init(String url, Version version) {
-// Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
-//
-// repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, url);
-// repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
-// credentials.password), false);
-// repository.setTimeZoneId(ITracClient.TIME_ZONE);
-// repository.setCharacterEncoding(ITracClient.CHARSET);
-// repository.setVersion(version.name());
-//
-// manager.addRepository(repository);
-// }
-//
-// public void testGetSelectedRepository() throws Exception {
-// init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC);
-//
-// RepositoryTaskData taskData = taskDataHandler.getTaskData(repository, "1", new NullProgressMonitor());
-// AbstractTask task = connector.createTask(repository.getRepositoryUrl(), taskData.getTaskId(), "");
-// connector.updateTaskFromTaskData(repository, task, taskData);
-// TasksUiPlugin.getTaskList().addTask(task);
-// TasksUiUtil.openTask(task);
-//
-// TaskListView taskListView = TaskListView.getFromActivePerspective();
-// // force refresh since automatic reresh is delayed
-// taskListView.getViewer().refresh();
-// taskListView.getViewer().expandAll();
-// taskListView.getViewer().setSelection(new StructuredSelection(task));
-//
-// assertFalse(taskListView.getViewer().getSelection().isEmpty());
-// assertEquals(repository, TasksUiUtil.getSelectedRepository(taskListView.getViewer()));
-// }
+ assertFalse(taskListView.getViewer().getSelection().isEmpty());
+ assertEquals(repository, TasksUiUtil.getSelectedRepository(taskListView.getViewer()));
+ }
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskTest.java
deleted file mode 100644
index 3965a3b27..000000000
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracTaskTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Mylyn project committers 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
- *******************************************************************************/
-
-package org.eclipse.mylyn.trac.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector;
-import org.eclipse.mylyn.internal.trac.core.model.TracPriority;
-
-/**
- * @author Steffen Pingel
- */
-public class TracTaskTest extends TestCase {
-
- public void testIsCompleted() {
- assertTrue(TracRepositoryConnector.isCompleted("closed"));
- assertFalse(TracRepositoryConnector.isCompleted("Closed"));
- assertFalse(TracRepositoryConnector.isCompleted("new"));
- assertFalse(TracRepositoryConnector.isCompleted("assigned"));
- assertFalse(TracRepositoryConnector.isCompleted("reopened"));
- assertFalse(TracRepositoryConnector.isCompleted("foobar"));
- assertFalse(TracRepositoryConnector.isCompleted(""));
- assertFalse(TracRepositoryConnector.isCompleted(null));
- }
-
- public void testGetTaskPriority() {
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("blocker").toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("critical").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("major").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("").toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo bar").toString());
- assertEquals("P4", TracRepositoryConnector.getTaskPriority("minor").toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("trivial").toString());
- }
-
- public void testGetTaskPriorityFromTracPriorities() {
- TracPriority p1 = new TracPriority("a", 1);
- TracPriority p2 = new TracPriority("b", 2);
- TracPriority p3 = new TracPriority("c", 3);
- TracPriority[] priorities = new TracPriority[] { p1, p2, p3 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("c", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("foo", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
-
- p1 = new TracPriority("a", 10);
- priorities = new TracPriority[] { p1 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("a", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority("b", priorities).toString());
- assertEquals("P3", TracRepositoryConnector.getTaskPriority(null, priorities).toString());
-
- p1 = new TracPriority("1", 10);
- p2 = new TracPriority("2", 20);
- p3 = new TracPriority("3", 30);
- TracPriority p4 = new TracPriority("4", 40);
- TracPriority p5 = new TracPriority("5", 70);
- TracPriority p6 = new TracPriority("6", 100);
- priorities = new TracPriority[] { p1, p2, p3, p4, p5, p6 };
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("1", priorities).toString());
- assertEquals("P1", TracRepositoryConnector.getTaskPriority("2", priorities).toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("3", priorities).toString());
- assertEquals("P2", TracRepositoryConnector.getTaskPriority("4", priorities).toString());
- assertEquals("P4", TracRepositoryConnector.getTaskPriority("5", priorities).toString());
- assertEquals("P5", TracRepositoryConnector.getTaskPriority("6", priorities).toString());
- }
-
-}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracUtilTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracUtilTest.java
new file mode 100644
index 000000000..9cf368659
--- /dev/null
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracUtilTest.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Mylyn project committers 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
+ *******************************************************************************/
+
+package org.eclipse.mylyn.trac.tests;
+
+import java.util.Arrays;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
+import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
+import org.eclipse.mylyn.internal.trac.core.model.TracSearch;
+import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter;
+import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
+import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
+import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
+
+/**
+ * @author Steffen Pingel
+ */
+public class TracUtilTest extends TestCase {
+
+ private TaskRepository taskRepository;
+
+ @Override
+ protected void setUp() throws Exception {
+ taskRepository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, TracTestConstants.TEST_TRAC_010_URL);
+ }
+
+ public void testToTracSearch() {
+ String queryParameter = "&order=priority&status=new&status=assigned&status=reopened&milestone=M1&owner=%7E%C3%A4%C3%B6%C3%BC";
+ IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(taskRepository);
+ query.setUrl(taskRepository.getRepositoryUrl() + ITracClient.QUERY_URL + queryParameter);
+
+ TracSearch search = TracUtil.toTracSearch(query);
+ assertNotNull(search);
+ assertEquals(queryParameter, search.toUrl());
+ }
+
+ public void testToTracSearchFilterList() {
+ String parameterUrl = "&status=new&status=assigned&status=reopened&milestone=0.1";
+ String queryUrl = taskRepository.getRepositoryUrl() + ITracClient.QUERY_URL + parameterUrl;
+ IRepositoryQuery query = TasksUi.getRepositoryModel().createRepositoryQuery(taskRepository);
+ query.setUrl(queryUrl);
+
+ TracSearch filterList = TracUtil.toTracSearch(query);
+ assertEquals(parameterUrl, filterList.toUrl());
+ assertEquals("&status=new|assigned|reopened&milestone=0.1", filterList.toQuery());
+
+ List<TracSearchFilter> list = filterList.getFilters();
+ TracSearchFilter filter = list.get(0);
+ assertEquals("status", filter.getFieldName());
+ assertEquals(Arrays.asList("new", "assigned", "reopened"), filter.getValues());
+ filter = list.get(1);
+ assertEquals("milestone", filter.getFieldName());
+ assertEquals(Arrays.asList("0.1"), filter.getValues());
+ }
+}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java
index 5995c2032..506ecec93 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracTicketTest.java
@@ -17,7 +17,7 @@ import junit.framework.TestCase;
import org.eclipse.mylyn.internal.trac.core.client.InvalidTicketException;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
-import org.eclipse.mylyn.internal.trac.core.util.TracUtils;
+import org.eclipse.mylyn.internal.trac.core.util.TracUtil;
/**
* @author Steffen Pingel
@@ -53,13 +53,13 @@ public class TracTicketTest extends TestCase {
public void testSetCreated() throws InvalidTicketException {
TracTicket ticket = new TracTicket(1);
- ticket.setCreated(TracUtils.parseDate(0));
+ ticket.setCreated(TracUtil.parseDate(0));
assertEquals(TimeZone.getTimeZone("GMT").getOffset(0) * 1000, ticket.getCreated().getTime());
Date date = new Date();
Calendar utc = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
utc.setTime(date);
- ticket.setCreated(TracUtils.parseDate((int) (utc.getTimeInMillis() / 1000)));
+ ticket.setCreated(TracUtil.parseDate((int) (utc.getTimeInMillis() / 1000)));
assertEquals(date.getTime() / 1000, ticket.getCreated().getTime() / 1000);
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java
index 4350e29a8..f4d326623 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcClientTest.java
@@ -155,7 +155,7 @@ public class TracXmlRpcClientTest extends AbstractTracClientRepositoryTest {
assertEquals("TestGetPage", page.getPageInfo().getPageName());
assertEquals("tests@mylyn.eclipse.org", page.getPageInfo().getAuthor());
assertEquals(2, page.getPageInfo().getVersion());
- // XXX: The Date returned from Wiki API seems to have a problem with the Time Zone
+ // XXX The Date returned from Wiki API seems to have a problem with the Time Zone
//String date = "Sat Nov 11 18:10:56 EST 2006";
//assertEquals(date, page.getPageVersion().getLastModified().toString());
assertEquals("Version 2", page.getContent());
@@ -334,6 +334,6 @@ public class TracXmlRpcClientTest extends AbstractTracClientRepositoryTest {
}
private void putWikiPage() throws Exception {
- // TODO: testing wiki.putPage()
+ // TODO testing wiki.putPage()
}
}
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java
index be26f61ef..9db518448 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/client/TracXmlRpcTest.java
@@ -30,8 +30,8 @@ import org.eclipse.mylyn.internal.trac.core.util.TracHttpClientTransportFactory;
import org.eclipse.mylyn.trac.tests.support.TracTestConstants;
/**
- * Test cases for <a href="http://trac-hacks.org/wiki/XmlRpcPlugin">Trac XML-RPC Plugin</a> API. Revision 1188 or
- * higher is required.
+ * Test cases for <a href="http://trac-hacks.org/wiki/XmlRpcPlugin">Trac XML-RPC Plugin</a> (revision 1188 or higher is
+ * required).
*
* <p>
* This class does not depend on any Mylar (connector) classes except for TracHttpClientTransportFactory which is needed
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java
index 653374981..3ad404506 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/support/TracTestUtil.java
@@ -8,9 +8,29 @@
package org.eclipse.mylyn.trac.tests.support;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
+import org.eclipse.mylyn.commons.net.AuthenticationType;
+import org.eclipse.mylyn.context.tests.support.TestUtil;
+import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
+import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
+import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
+import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
+import org.eclipse.mylyn.internal.trac.core.TracCorePlugin;
import org.eclipse.mylyn.internal.trac.core.client.ITracClient;
+import org.eclipse.mylyn.internal.trac.core.client.ITracClient.Version;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket;
import org.eclipse.mylyn.internal.trac.core.model.TracTicket.Key;
+import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
+import org.eclipse.mylyn.tasks.core.ITask;
+import org.eclipse.mylyn.tasks.core.ITaskAttachment;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
+import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
+import org.eclipse.mylyn.tasks.core.data.TaskData;
+import org.eclipse.mylyn.tasks.ui.TasksUi;
/**
* @author Steffen Pingel
@@ -25,4 +45,46 @@ public class TracTestUtil {
return client.getTicket(id, null);
}
+ public static ITask createTask(TaskRepository taskRepository, String taskId) throws Exception {
+ AbstractRepositoryConnector connector = TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND);
+ TaskData taskData = connector.getTaskData(taskRepository, taskId, null);
+ ITask task = TasksUi.getRepositoryModel().createTask(taskRepository, taskData.getTaskId());
+ TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true);
+ return task;
+ }
+
+ public static TaskRepository init(String repositoryUrl, Version version) {
+ TracCorePlugin.getDefault().getConnector().getClientManager().writeCache();
+ TaskRepositoryManager manager = TasksUiPlugin.getRepositoryManager();
+ manager.clearRepositories(TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ Credentials credentials = TestUtil.readCredentials(PrivilegeLevel.USER);
+ TaskRepository repository = new TaskRepository(TracCorePlugin.CONNECTOR_KIND, repositoryUrl);
+ repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(credentials.username,
+ credentials.password), false);
+ repository.setTimeZoneId(ITracClient.TIME_ZONE);
+ repository.setCharacterEncoding(ITracClient.CHARSET);
+ repository.setVersion(version.name());
+
+ manager.addRepository(repository);
+ TracCorePlugin.getDefault().getConnector().getClientManager().readCache();
+
+ return repository;
+ }
+
+ public static List<ITaskAttachment> getTaskAttachments(ITask task) throws CoreException {
+ TaskData taskData = TasksUi.getTaskDataManager().getTaskData(task);
+ List<ITaskAttachment> attachments = new ArrayList<ITaskAttachment>();
+ List<TaskAttribute> attributes = taskData.getAttributeMapper().getAttributesByType(taskData,
+ TaskAttribute.TYPE_ATTACHMENT);
+ if (attributes != null) {
+ for (TaskAttribute taskAttribute : attributes) {
+ ITaskAttachment taskAttachment = TasksUiPlugin.getRepositoryModel().createTaskAttachment(taskAttribute);
+ taskData.getAttributeMapper().updateTaskAttachment(taskAttachment, taskAttribute);
+ attachments.add(taskAttachment);
+ }
+ }
+ return attachments;
+ }
+
}

Back to the top