| /******************************************************************************* |
| * 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"))); |
| } |
| } |