diff options
Diffstat (limited to 'org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java')
-rw-r--r-- | org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java | 511 |
1 files changed, 0 insertions, 511 deletions
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java deleted file mode 100644 index 578def8c7..000000000 --- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerTest.java +++ /dev/null @@ -1,511 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2009 Steffen Pingel and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Steffen Pingel - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylyn.trac.tests.core; - -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.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.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.ITaskAttachment; -import org.eclipse.mylyn.tasks.core.RepositoryStatus; -import org.eclipse.mylyn.tasks.core.TaskMapping; -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.TaskOperation; -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; -import org.eclipse.mylyn.trac.tests.support.XmlRpcServer.TestData; - -/** - * @author Steffen Pingel - */ -public class TracTaskDataHandlerTest extends TestCase { - - private TracRepositoryConnector connector; - - private TaskRepository repository; - - private TestData data; - - private TracTaskDataHandler taskDataHandler; - - private ITracClient client; - - public TracTaskDataHandlerTest() { - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - data = TestFixture.init010(); - connector = (TracRepositoryConnector) TasksUi.getRepositoryConnector(TracCorePlugin.CONNECTOR_KIND); - taskDataHandler = connector.getTaskDataHandler(); - } - - protected void init(String url, Version version) { - repository = TracTestUtil.init(url, version); - client = connector.getClientManager().getTracClient(repository); - } - - 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); - ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + ""); - - Set<ITask> tasks = new HashSet<ITask>(); - tasks.add(task); - SynchronizationSession session = createSession(); - session.setTasks(tasks); - - assertEquals(null, repository.getSynchronizationTimeStamp()); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertEquals(null, repository.getSynchronizationTimeStamp()); - // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks()); - assertEquals(null, session.getStaleTasks()); - - int time = (int) (System.currentTimeMillis() / 1000) + 1; - repository.setSynchronizationTimeStamp(time + ""); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks()); - assertEquals(null, session.getStaleTasks()); - } - - public void testMarkStaleTasksXmlRpc010() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - markStaleTasks(); - } - - public void testMarkStaleTasksXmlRpc011() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - markStaleTasks(); - } - - private void markStaleTasks() throws Exception { - SynchronizationSession session; - TracTicket ticket = TracTestUtil.createTicket(client, "markStaleTasks"); - 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); - session = createSession(task); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertNull(repository.getSynchronizationTimeStamp()); - - repository.setSynchronizationTimeStamp(null); - 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 >= - repository.setSynchronizationTimeStamp(lastModified + ""); - 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(session.needsPerformQueries()); - // bug 238043: assertEquals(Collections.emptySet(), session.getStaleTasks()); - assertEquals(null, session.getStaleTasks()); - - repository.setSynchronizationTimeStamp((lastModified + 1) + ""); - 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); - - repository.setSynchronizationTimeStamp((lastModified + 1) + ""); - session = createSession(task); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertEquals(Collections.singleton(task), session.getStaleTasks()); - } - - public void testMarkStaleTasksNoTimeStampXmlRpc010() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - markStaleTasksNoTimeStamp(); - } - - public void testMarkStaleTasksNoTimeStampXmlRpc011() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - markStaleTasksNoTimeStamp(); - } - - private void markStaleTasksNoTimeStamp() throws Exception { - SynchronizationSession session; - ITask task = TracTestUtil.createTask(repository, data.offlineHandlerTicketId + ""); - - session = createSession(task); - repository.setSynchronizationTimeStamp(null); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertEquals(Collections.singleton(task), session.getStaleTasks()); - - session = createSession(task); - repository.setSynchronizationTimeStamp(""); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertEquals(Collections.singleton(task), session.getStaleTasks()); - - session = createSession(task); - repository.setSynchronizationTimeStamp("0"); - connector.preSynchronization(session, null); - assertTrue(session.needsPerformQueries()); - assertEquals(Collections.singleton(task), session.getStaleTasks()); - - session = createSession(task); - repository.setSynchronizationTimeStamp("abc"); - 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(); - // XXX the test case fails when comment == null - attachmentHandler.postContent(repository, task, new TextTaskAttachmentSource("abc"), "comment", 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 testAttachmentUrlEncoding010() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - attachmentUrlEncoding(); - } - - public void testAttachmentUrlEncoding011() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - attachmentUrlEncoding(); - } - - private void attachmentUrlEncoding() throws Exception { - AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler(); - TracTicket ticket = TracTestUtil.createTicket(client, "attachment url test"); - ITask task = TracTestUtil.createTask(repository, ticket.getId() + ""); - attachmentHandler.postContent(repository, task, new TextTaskAttachmentSource("abc") { - @Override - public String getName() { - return "https%3A%2F%2Fbugs.eclipse.org%2Fbugs.xml.zip"; - } - }, "comment", null, null); - - task = TracTestUtil.createTask(repository, ticket.getId() + ""); - List<ITaskAttachment> attachments = TracTestUtil.getTaskAttachments(task); - assertEquals(1, attachments.size()); - assertEquals(repository.getUrl() + "/attachment/ticket/" + ticket.getId() - + "/https%253A%252F%252Fbugs.eclipse.org%252Fbugs.xml.zip", attachments.get(0).getUrl()); - } - - 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 { - 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()); - TaskAttribute attribute = subTaskData.getRoot().getMappedAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKING); - assertEquals(parentTaskData.getTaskId(), attribute.getValue()); - attribute = parentTaskData.getRoot().getMappedAttribute(TracTaskDataHandler.ATTRIBUTE_BLOCKED_BY); - assertEquals("", attribute.getValue()); - } - - public void testGetSubTaskIds() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - TaskData taskData = new TaskData(new TracAttributeMapper(new TaskRepository("", ""), client), - 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; - } - - public void testInitializeTaskData_0_10() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - initializeTaskData(); - } - - public void testInitializeTaskData_0_11() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - initializeTaskData(); - } - - private void initializeTaskData() throws Exception { - TaskData taskData = new TaskData(taskDataHandler.getAttributeMapper(repository), TracCorePlugin.CONNECTOR_KIND, - "", ""); - TaskMapping mapping = new TaskMapping() { - @Override - public String getDescription() { - return "description"; - } - - @Override - public String getSummary() { - return "summary"; - } - }; - taskDataHandler.initializeTaskData(repository, taskData, mapping, new NullProgressMonitor()); - // initializeTaskData() should ignore the initialization data - TaskMapper mapper = new TracTaskMapper(taskData, null); - assertEquals("", mapper.getSummary()); - assertEquals("", mapper.getDescription()); - // check for default values - assertEquals("Defect", mapper.getTaskKind()); - assertEquals("major", mapper.getPriority()); - // empty attributes should not exist - assertNull(taskData.getRoot().getAttribute(TracAttribute.SEVERITY.getTracKey())); - } - - public void testOperations_XmlRpc_0_10() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - operations(false); - } - - public void testOperations_XmlRpc_0_11() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - operations(true); - } - - protected void operations(boolean hasReassign) throws Exception { - TaskData taskData = taskDataHandler.getTaskData(repository, "1", new NullProgressMonitor()); - List<TaskAttribute> operations = taskData.getAttributeMapper().getAttributesByType(taskData, - TaskAttribute.TYPE_OPERATION); - assertEquals((hasReassign ? 5 : 4), operations.size()); - - TaskOperation operation = taskData.getAttributeMapper().getTaskOperation(operations.get(0)); - assertEquals(TaskAttribute.OPERATION, operation.getTaskAttribute().getId()); - - operation = taskData.getAttributeMapper().getTaskOperation(operations.get(1)); - assertEquals("leave", operation.getOperationId()); - assertNotNull(operation.getLabel()); - - operation = taskData.getAttributeMapper().getTaskOperation(operations.get(2)); - assertEquals("resolve", operation.getOperationId()); - assertNotNull(operation.getLabel()); - String associatedId = operation.getTaskAttribute().getMetaData().getValue( - TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID); - assertNotNull(associatedId); - - if (hasReassign) { - operation = taskData.getAttributeMapper().getTaskOperation(operations.get(3)); - assertEquals("reassign", operation.getOperationId()); - assertNotNull(operation.getLabel()); - - operation = taskData.getAttributeMapper().getTaskOperation(operations.get(4)); - assertEquals("accept", operation.getOperationId()); - assertNotNull(operation.getLabel()); - } else { - operation = taskData.getAttributeMapper().getTaskOperation(operations.get(3)); - assertEquals("accept", operation.getOperationId()); - assertNotNull(operation.getLabel()); - } - } - - public void testPostTaskDataUnsetResolutionXmlRpc010() throws Exception { - init(TracTestConstants.TEST_TRAC_010_URL, Version.XML_RPC); - postTaskDataUnsetResolution(); - } - - public void testPostTaskDataUnsetResolutionXmlRpc011() throws Exception { - init(TracTestConstants.TEST_TRAC_011_URL, Version.XML_RPC); - postTaskDataUnsetResolution(); - } - - private void postTaskDataUnsetResolution() throws Exception { - TracTicket ticket = TracTestUtil.createTicket(client, "postTaskDataUnsetResolution"); - TaskData taskData = taskDataHandler.getTaskData(repository, ticket.getId() + "", new NullProgressMonitor()); - TaskAttribute attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION); - attribute.setValue("fixed"); - taskDataHandler.postTaskData(repository, taskData, null, new NullProgressMonitor()); - - // should not set resolution unless resolve operation is selected - taskData = taskDataHandler.getTaskData(repository, ticket.getId() + "", new NullProgressMonitor()); - attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.RESOLUTION); - assertEquals("", attribute.getValue()); - } -} |