/******************************************************************************* * Copyright (c) 2009, 2014 Tasktop Technologies 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: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.tasks.tests; import java.net.MalformedURLException; import java.net.URL; import org.eclipse.mylyn.commons.ui.ClipboardCopier; import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction; import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction.Mode; import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.IRepositoryElement; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; import org.eclipse.mylyn.tasks.tests.connector.MockTask; import org.eclipse.mylyn.tasks.ui.TasksUi; import junit.framework.TestCase; /** * @author Steffen Pingel * @author Thomas Ehrnhoefer */ public class CopyDetailsActionTest extends TestCase { // public void testIdLabelIncluded() { // MockRepositoryConnector connector = MockRepositoryConnector.getDefault(); // String oldPrefix = connector.getTaskIdPrefix(); // try { // MockTask task = new MockTask("123"); // task.setSummary("abc"); // // task.setTaskKey("123"); // connector.setTaskIdPrefix("task"); // String text = CopyTaskDetailsAction.getTextForTask(task); // //assertEquals("task 123: abc", text); // assertEquals("123: abc", text); // // connector.setTaskIdPrefix("#"); // assertEquals("#123: abc", CopyTaskDetailsAction.getTextForTask(task)); // // connector.setTaskIdPrefix(""); // assertEquals("123: abc", CopyTaskDetailsAction.getTextForTask(task)); // // task.setTaskKey(null); // assertEquals("abc", CopyTaskDetailsAction.getTextForTask(task)); // } finally { // connector.setTaskIdPrefix(oldPrefix); // } // } public void testGetTextForTask() { MockTask task = new MockTask("123"); task.setSummary("abc"); task.setTaskKey("123"); String text = CopyTaskDetailsAction.getTextForTask(task); assertEquals("123: abc", text); task.setTaskKey(null); assertEquals("abc", CopyTaskDetailsAction.getTextForTask(task)); } public void testGetSummaryAndUrl() { MockTask task = new MockTask("321"); task.setSummary("s321"); task.setTaskKey("321"); MockRepositoryConnector connector = new MockRepositoryConnector() { @Override public String getTaskUrl(String repositoryUrl, String taskId) { return "http://321.com"; } }; AbstractRepositoryConnector oldConnector = TasksUi.getRepositoryManager() .getRepositoryConnector(MockRepositoryConnector.CONNECTOR_KIND); try { ((TaskRepositoryManager) TasksUi.getRepositoryManager()).addRepositoryConnector(connector); assertEquals("321: s321" + ClipboardCopier.LINE_SEPARATOR + "http://321.com", CopyTaskDetailsAction.getTextForTask(task, Mode.ID_SUMMARY_URL)); } finally { if (oldConnector != null) { ((TaskRepositoryManager) TasksUi.getRepositoryManager()).addRepositoryConnector(oldConnector); } } } public void testGetBrowseableUrl() { MockTask task = new MockTask("123"); task.setSummary("Ticket 123"); MockRepositoryConnector connector = new MockRepositoryConnector() { @Override public String getTaskUrl(String repositoryUrl, String taskId) { return "URI://mock-repo/id/123"; } @Override public URL getBrowserUrl(TaskRepository repository, IRepositoryElement element) { try { return new URL("http://mock-repo-evolved.com/tickets/123"); } catch (MalformedURLException e) { return null; } } }; AbstractRepositoryConnector oldConnector = TasksUi.getRepositoryManager() .getRepositoryConnector(MockRepositoryConnector.CONNECTOR_KIND); try { ((TaskRepositoryManager) TasksUi.getRepositoryManager()).addRepositoryConnector(connector); assertEquals( "123: Ticket 123" + ClipboardCopier.LINE_SEPARATOR + "http://mock-repo-evolved.com/tickets/123", CopyTaskDetailsAction.getTextForTask(task, Mode.ID_SUMMARY_URL)); assertEquals("http://mock-repo-evolved.com/tickets/123", CopyTaskDetailsAction.getTextForTask(task, Mode.URL)); } finally { if (oldConnector != null) { ((TaskRepositoryManager) TasksUi.getRepositoryManager()).addRepositoryConnector(oldConnector); } } } }