blob: 89d2e76038ac9b655caa2a3ee23c30381c49d1b6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2013 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.context.tasks.tests;
import junit.framework.TestCase;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.mylyn.commons.core.storage.ICommonStorable;
import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.internal.context.tasks.ui.ContextMementoMigrator;
import org.eclipse.mylyn.internal.context.tasks.ui.TaskContextStore;
import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
import org.eclipse.mylyn.internal.context.ui.state.ContextState;
import org.eclipse.mylyn.internal.tasks.core.TaskTask;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
import org.eclipse.ui.IMemento;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* @author Steffen Pingel
*/
public class ContextMementoMigratorTest extends TestCase {
private static final String ID_PLANNING_PERSPECTIVE = "org.eclipse.mylyn.tasks.ui.perspectives.planning";
private TaskTask task;
private ICommonStorable storable;
@Override
@Before
public void setUp() throws Exception {
task = TaskTestUtil.createMockTask("1");
TasksUiPlugin.getTaskList().addTask(task);
storable = ((TaskContextStore) TasksUiPlugin.getContextStore()).getStorable(task);
// ensure that there is no stale data
storable.delete("context-state.xml");
}
@Override
@After
public void tearDown() {
if (storable != null) {
storable.release();
}
}
@Test
public void testMigratePreferencesDelete() throws Exception {
ContextUiPlugin.getDefault()
.getPreferenceStore()
.setValue(ContextMementoMigrator.PREFIX_TASK_TO_PERSPECTIVE + task.getHandleIdentifier(),
ID_PLANNING_PERSPECTIVE);
ContextMementoMigrator migrator = new ContextMementoMigrator(ContextUiPlugin.getDefault().getStateManager());
migrator.setDeleteOldDataEnabled(true);
IStatus status = migrator.migrateContextMementos(SubMonitor.convert(null));
assertEquals(IStatus.OK, status.getSeverity());
assertEquals(
"",
ContextUiPlugin.getDefault()
.getPreferenceStore()
.getString(ContextMementoMigrator.PREFIX_TASK_TO_PERSPECTIVE + task.getHandleIdentifier()));
}
@Test
public void testMigratePreferences() throws Exception {
ContextUiPlugin.getDefault()
.getPreferenceStore()
.setValue(ContextMementoMigrator.PREFIX_TASK_TO_PERSPECTIVE + task.getHandleIdentifier(),
ID_PLANNING_PERSPECTIVE);
IStatus status = new ContextMementoMigrator(ContextUiPlugin.getDefault().getStateManager()).migrateContextMementos(SubMonitor.convert(null));
assertEquals(IStatus.OK, status.getSeverity());
InteractionContext context = new InteractionContext(task.getHandleIdentifier(),
ContextCore.getCommonContextScaling());
ContextState state = ContextUiPlugin.getDefault()
.getStateManager()
.read(context, storable.read("context-state.xml", null));
IMemento memento = state.getMemento("org.eclipse.mylyn.context.ui.perspectives");
assertNotNull(memento);
assertEquals(ID_PLANNING_PERSPECTIVE, memento.getString("activeId"));
assertEquals(
ID_PLANNING_PERSPECTIVE,
ContextUiPlugin.getDefault()
.getPreferenceStore()
.getString(ContextMementoMigrator.PREFIX_TASK_TO_PERSPECTIVE + task.getHandleIdentifier()));
}
}