blob: 937a5aead46ff783503f4d5ee12d74838059e7e9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 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.java.tests;
import java.io.File;
import java.io.IOException;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.mylyn.commons.sdk.util.CommonTestUtil;
import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.internal.context.core.InteractionContextScaling;
import org.eclipse.mylyn.internal.java.ui.JavaStackTraceContextComputationStrategy;
import org.eclipse.mylyn.internal.java.ui.JavaStackTraceContextComputationStrategy.Element;
/**
* Test for {@link JavaStackTraceContextComputationStrategy}.
*
* @author David Green
*/
public class JavaStackTraceContextComputationStrategyTest extends TestCase {
@SuppressWarnings("unused")
private InteractionContext context;
private JavaStackTraceContextComputationStrategy stackTraceDetector;
@Override
protected void setUp() throws Exception {
context = new InteractionContext("test", new InteractionContextScaling());
stackTraceDetector = new JavaStackTraceContextComputationStrategy();
}
public void testStackTrace() throws IOException {
File file = CommonTestUtil.getFile(this, "testdata/taskDescription1.txt");
List<Element> contextObjects = stackTraceDetector.computeElements(CommonTestUtil.read(file));
assertFalse(contextObjects.isEmpty());
assertTrue(contextObjects.contains(new Element("java.lang.NullPointerException", null)));
assertTrue(contextObjects.contains(new Element(
"org.eclipse.mylyn.internal.tasks.ui.editors.AttachmentTableLabelProvider", "getAttachmentId")));
assertTrue(contextObjects.contains(new Element(
"org.eclipse.mylyn.internal.tasks.ui.editors.AttachmentTableLabelProvider", "getColumnText")));
assertTrue(contextObjects.contains(new Element(
"org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable", "run")));
}
/**
* bug 354184
*/
public void testStackTracePopulatedWithoutEclipseErrorHeaderElements() throws IOException {
File file = CommonTestUtil.getFile(this, "testdata/taskDescription2.txt");
List<Element> contextObjects = stackTraceDetector.computeElements(CommonTestUtil.read(file));
assertFalse(contextObjects.isEmpty());
// don't want
// Element [fqn=Date, methodName=null]
// Element [fqn=Message, methodName=null]
// Element [fqn=Severity, methodName=null]
// Element [fqn=Product, methodName=null]
// Element [fqn=Plugin, methodName=null]
// do want
// Element [fqn=org.eclipse.swt.SWTException, methodName=null]
// Element [fqn=org.eclipse.swt.SWT, methodName=error]
// Element [fqn=org.eclipse.swt.SWT, methodName=error]
// Element [fqn=org.eclipse.swt.SWT, methodName=error]
// Element [fqn=org.eclipse.swt.graphics.Image, methodName=getBounds]
//
assertFalse(contextObjects.contains(new Element("Date", null)));
assertFalse(contextObjects.contains(new Element("Message", null)));
assertFalse(contextObjects.contains(new Element("Severity", null)));
assertFalse(contextObjects.contains(new Element("Product", null)));
assertFalse(contextObjects.contains(new Element("Plugin", null)));
assertTrue(contextObjects.contains(new Element("org.eclipse.swt.SWTException", null)));
assertTrue(contextObjects.contains(new Element("org.eclipse.swt.SWT", "error")));
assertTrue(contextObjects.contains(new Element("org.eclipse.swt.graphics.Image", "getBounds")));
}
}