blob: 1ba6cf0c60a3644ff87878e28bf8e6e8a4a36364 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2016 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.tests.ui.editor;
import junit.framework.TestCase;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorExtensions;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorExtension;
/**
* @author Leo Dos Santos
*/
public class TaskEditorExtensionsTest extends TestCase {
private static final String ID_TEXTILE_EXTENSION = "org.eclipse.mylyn.tasks.tests.editor.mock.textile";
private TaskRepository repository;
private TaskData taskData;
@Override
protected void setUp() throws Exception {
repository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, MockRepositoryConnector.REPOSITORY_URL);
TasksUiPlugin.getRepositoryManager().addRepository(repository);
taskData = new TaskData(new TaskAttributeMapper(repository), MockRepositoryConnector.CONNECTOR_KIND,
MockRepositoryConnector.REPOSITORY_URL, "taskId");
}
@Override
protected void tearDown() throws Exception {
TasksUiPlugin.getRepositoryManager().removeRepository(repository);
}
public void testMarkupAssociationFromRepository() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockTextileEditorExtension);
}
public void testMarkupAssociationFromAttribute() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, "none");
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; markup=MockWiki");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockWikiEditorExtension);
}
public void testMarkupAssociationFromBoth() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; markup=MockWiki");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockWikiEditorExtension);
}
public void testMarkupAssociationComplexMediaType() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; markup=MockWiki; charset=iso-8859-1");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockWikiEditorExtension);
}
public void testMarkupAssociationNotMarkupMediaType() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; notreallyamarkup=MockWiki");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockTextileEditorExtension);
}
public void testMarkupAssociationNoAssociation() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, "none");
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertNull(extension);
}
public void testBaseMarkupAssociation() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; markup=SpecialMockWiki; base-markup=MockWiki");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockWikiEditorExtension);
}
public void testBaseMarkupAssociationNoMarkup() {
TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION);
TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION);
attribute.getMetaData().setMediaType("text/plain; base-markup=MockWiki");
AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute);
assertTrue(extension instanceof MockTextileEditorExtension);
}
}