blob: 9334a2801a516658642cda7b1a880a8309f322d7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2015 Tasktop Technologies.
*
* 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;
import junit.framework.TestCase;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.mylyn.commons.notifications.feed.ServiceMessageEvent;
import org.eclipse.mylyn.commons.notifications.feed.ServiceMessageEvent.Kind;
import org.eclipse.mylyn.commons.workbench.WorkbenchUtil;
import org.eclipse.mylyn.internal.commons.notifications.feed.ServiceMessage;
import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.notifications.TaskListServiceMessageControl;
import org.eclipse.swt.widgets.Composite;
import com.google.common.collect.ImmutableList;
/**
* @author Steffen Pingel
*/
public class TaskListServiceMessageControlTest extends TestCase {
private final class TestTaskListServiceMessageControl extends TaskListServiceMessageControl {
private TestTaskListServiceMessageControl(Composite parent) {
super(parent);
}
@Override
protected void closeMessage() {
super.closeMessage();
}
}
@Override
protected void setUp() throws Exception {
TasksUiPlugin.getDefault()
.getPreferenceStore()
.setValue(ITasksUiPreferenceConstants.LAST_SERVICE_MESSAGE_ID, "");
}
public void testGetAction() {
assertEquals("abc", TaskListServiceMessageControl.getAction("ABC"));
assertEquals("abc", TaskListServiceMessageControl.getAction("abc"));
assertEquals("def", TaskListServiceMessageControl.getAction("http://eclipse.org?action=DEF"));
assertEquals("defg", TaskListServiceMessageControl.getAction("http://eclipse.org?action=defg&foo=bar"));
assertEquals(null, TaskListServiceMessageControl.getAction("http://eclipse.org?foo=bar&action=defg"));
}
public void testCloseMessageWithNoId() {
TestTaskListServiceMessageControl control = new TestTaskListServiceMessageControl(WorkbenchUtil.getShell());
control.setMessage(new ServiceMessage("123"));
control.closeMessage();
assertEquals("", getLastMessageId());
}
public void testCloseMessageWithId() {
TestTaskListServiceMessageControl control = new TestTaskListServiceMessageControl(WorkbenchUtil.getShell());
ServiceMessage message = new ServiceMessage("123");
message.setId("300");
control.setMessage(message);
control.closeMessage();
assertEquals("300", getLastMessageId());
}
public void testHandleEvent() throws Exception {
TestTaskListServiceMessageControl control = new TestTaskListServiceMessageControl(WorkbenchUtil.getShell());
handleMessage(control, "123");
control.closeMessage();
assertEquals("123", getLastMessageId());
handleMessage(control, "100");
control.closeMessage();
assertEquals("123", getLastMessageId());
handleMessage(control, "200");
control.closeMessage();
assertEquals("200", getLastMessageId());
handleMessage(control, "org.eclipse.mylyn.reset.1");
control.closeMessage();
assertEquals("", getLastMessageId());
handleMessage(control, "hello");
control.closeMessage();
assertEquals("hello", getLastMessageId());
}
private String getLastMessageId() {
return TasksUiPlugin.getDefault()
.getPreferenceStore()
.getString(ITasksUiPreferenceConstants.LAST_SERVICE_MESSAGE_ID);
}
private void handleMessage(TestTaskListServiceMessageControl control, String id) {
ServiceMessage message = new ServiceMessage("123");
message.setTitle("Title");
message.setDescription("Description");
message.setImage(Dialog.DLG_IMG_HELP);
message.setId(id);
control.handleEvent(new ServiceMessageEvent(TasksUiPlugin.getDefault().getServiceMessageManager(),
Kind.MESSAGE_UPDATE, ImmutableList.of(message)));
}
}