Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 5664 Details for
Bug 36352
[JUnit] Support to generate a report
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
fix
36352.txt (text/plain), 13.63 KB, created by
Sebastian Davids
on 2003-08-06 18:37:29 EDT
(
hide
)
Description:
fix
Filename:
MIME Type:
Creator:
Sebastian Davids
Created:
2003-08-06 18:37:29 EDT
Size:
13.63 KB
patch
obsolete
>Index: src/org/eclipse/jdt/internal/junit/ui/HierarchyRunView.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/HierarchyRunView.java,v >retrieving revision 1.20 >diff -u -r1.20 HierarchyRunView.java >--- src/org/eclipse/jdt/internal/junit/ui/HierarchyRunView.java 16 Jul 2003 16:43:39 -0000 1.20 >+++ src/org/eclipse/jdt/internal/junit/ui/HierarchyRunView.java 6 Aug 2003 22:24:40 -0000 >@@ -7,11 +7,12 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >- * Sebastian Davids - sdavids@gmx.de bug 26754 >+ * Sebastian Davids - sdavids@gmx.de bugs 26754, 36352 > *******************************************************************************/ > package org.eclipse.jdt.internal.junit.ui; > > import java.util.HashMap; >+import java.util.Iterator; > import java.util.Map; > import java.util.Vector; > >@@ -24,6 +25,7 @@ > import org.eclipse.swt.SWT; > import org.eclipse.swt.custom.CTabFolder; > import org.eclipse.swt.custom.CTabItem; >+import org.eclipse.swt.dnd.Clipboard; > import org.eclipse.swt.events.DisposeEvent; > import org.eclipse.swt.events.DisposeListener; > import org.eclipse.swt.events.MouseAdapter; >@@ -67,7 +69,133 @@ > } > } > >- >+ class PlainTextFormatter { >+ private StringBuffer fBuffer; >+ private Vector fSuitInfos; >+ int fExecuted; >+ int fErrors; >+ int fFailures; >+ >+ public PlainTextFormatter( >+ Vector suitInfos, >+ int executed, >+ int errors, >+ int failures) { >+ >+ fSuitInfos= suitInfos; >+ fExecuted= executed; >+ fErrors= errors; >+ fFailures= failures; >+ } >+ >+ private TestRunInfo getTestRunInfo(TreeItem item) { >+ return (TestRunInfo) item.getData(); >+ } >+ >+ protected void append(String s) { >+ fBuffer.append(s); >+ } >+ >+ protected void append(char c) { >+ fBuffer.append(c); >+ } >+ >+ protected void append(int i) { >+ fBuffer.append(i); >+ } >+ >+ private void writeSuite(TreeItem item) { >+ writeSuiteHead(getTestRunInfo(item)); >+ TreeItem[] testCases = item.getItems(); >+ for (int i= 0, n = testCases.length; i < n; ++i) >+ writeTestCase(item.getItems()[i]); >+ } >+ >+ protected void writeSuiteHead(TestRunInfo testCase) { >+ append("\n\n"); //$NON-NLS-1$ >+ writeNameAndStatus(testCase); >+ } >+ >+ private void writeSingleTestCase(Iterator iterator, TreeItem item) { >+ writeTestCase(item); >+ for (;iterator.hasNext();) >+ writeTestCase(((SuiteInfo) iterator.next()).fTreeItem); >+ } >+ >+ private void writeTestCase(TreeItem item) { >+ writeTestCaseHead(getTestRunInfo(item)); >+ TreeItem[] methods= item.getItems(); >+ for (int i= 0, n= methods.length; i < n; ++i) >+ writeTestMethod(getTestRunInfo(methods[i])); >+ } >+ >+ protected void writeTestCaseHead(TestRunInfo testCase) { >+ append("\n\n"); //$NON-NLS-1$ >+ writeNameAndStatus(testCase); >+ } >+ >+ protected void writeNameAndStatus(TestRunInfo info) { >+ append(info.getTestMethodName()); >+ append(' '); >+ append(getStatus(info)); >+ } >+ >+ protected void writeTestMethod(TestRunInfo testCase) { >+ append("\n\t"); //$NON-NLS-1$ >+ writeNameAndStatus(testCase); >+ writeTrace(testCase); >+ } >+ >+ protected void writeTrace(TestRunInfo testMethod) { >+ String trace = testMethod.getTrace(); >+ if (trace == null) >+ return; >+ append("\n\t\t"); //$NON-NLS-1$ >+ append(trace.replaceAll("\t", "\t\t")); //$NON-NLS-1$ >+ } >+ >+ protected void writeHead() { >+ append(JUnitMessages.getString("CounterPanel.label.runs")); //$NON-NLS-1$ >+ append(fExecuted); >+ append(' '); >+ append(JUnitMessages.getString("CounterPanel.label.errors")); //$NON-NLS-1$ >+ append(fErrors); >+ append(' '); >+ append(JUnitMessages.getString("CounterPanel.label.failures")); //$NON-NLS-1$ >+ append(fFailures); >+ } >+ >+ private boolean isSuite(TreeItem item) { >+ TreeItem[] items= item.getItems(); >+ if (items.length == 0) >+ return false; >+ return items[0].getItemCount() > 0; >+ } >+ >+ protected String getStatus(TestRunInfo info) { >+ int status = info.getStatus(); >+ if (status == ITestRunListener.STATUS_FAILURE) >+ return JUnitMessages.getString("CopyHierachy.failure"); //$NON-NLS-1$ >+ if (status == ITestRunListener.STATUS_ERROR) >+ return JUnitMessages.getString("CopyHierachy.error"); //$NON-NLS-1$ >+ if (status == ITestRunListener.STATUS_OK) >+ return JUnitMessages.getString("CopyHierachy.ok"); //$NON-NLS-1$ >+ return JUnitMessages.getString("CopyHierachy.unknown"); //$NON-NLS-1$ >+ } >+ >+ public String format() { >+ fBuffer= new StringBuffer(); >+ writeHead(); >+ Iterator it= fSuitInfos.iterator(); >+ TreeItem item= ((SuiteInfo) it.next()).fTreeItem; >+ if (isSuite(item)) >+ writeSuite(item); >+ else >+ writeSingleTestCase(it, item); >+ return fBuffer.toString(); >+ } >+ } >+ > /** > * Vector of SuiteInfo items > */ >@@ -78,6 +206,7 @@ > private Map fTreeItemMap= new HashMap(); > > private TestRunnerViewPart fTestRunnerPart; >+ private final Clipboard fClipboard; > > private final Image fOkIcon= TestRunnerViewPart.createImage("obj16/testok.gif"); //$NON-NLS-1$ > private final Image fErrorIcon= TestRunnerViewPart.createImage("obj16/testerr.gif"); //$NON-NLS-1$ >@@ -99,8 +228,9 @@ > expandAll(); > } > } >- public HierarchyRunView(CTabFolder tabFolder, TestRunnerViewPart runner) { >+ public HierarchyRunView(CTabFolder tabFolder, Clipboard clipboard, TestRunnerViewPart runner) { > fTestRunnerPart= runner; >+ fClipboard= clipboard; > > CTabItem hierarchyTab= new CTabItem(tabFolder, SWT.NONE); > hierarchyTab.setText(getName()); >@@ -353,20 +483,34 @@ > } > > public void menuAboutToShow(IMenuManager manager) { >- if (fTree.getSelectionCount() > 0) { >+ boolean selection= fTree.getSelectionCount() > 0; >+ if (selection) { > TreeItem treeItem= fTree.getSelection()[0]; > TestRunInfo testInfo= (TestRunInfo) treeItem.getData(); > String testLabel= testInfo.getTestName(); >- if (isSuiteSelected()) { >+ if (isSuiteSelected()) > manager.add(new OpenTestAction(fTestRunnerPart, testLabel)); >- } else { >- manager.add(new OpenTestAction(fTestRunnerPart, getClassName(), getTestMethod())); >- manager.add(new RerunAction(fTestRunnerPart, getSelectedTestId(), getClassName(), getTestMethod())); >+ else { >+ manager.add( >+ new OpenTestAction( >+ fTestRunnerPart, >+ getClassName(), >+ getTestMethod())); >+ manager.add( >+ new RerunAction( >+ fTestRunnerPart, >+ getSelectedTestId(), >+ getClassName(), >+ getTestMethod())); > } >+ } >+ if (fTree.getItemCount() > 0) { > manager.add(new Separator()); >- manager.add(new ExpandAllAction()); >+ manager.add(new CopyHierachyAction(fTestRunnerPart, this, fClipboard)); > } >- } >+ if (selection) >+ manager.add(new ExpandAllAction()); >+ } > > public void newTreeEntry(String treeEntry) { > // format: testId","testName","isSuite","testcount >@@ -595,4 +739,14 @@ > expandAll(items[i]); > } > } >+ >+ String getHierachyAsString() { >+ PlainTextFormatter formatter= >+ new PlainTextFormatter( >+ fSuiteInfos, >+ fTestRunnerPart.fExecutedTests, >+ fTestRunnerPart.fErrorCount, >+ fTestRunnerPart.fFailureCount); >+ return formatter.format(); >+ } > } >Index: src/org/eclipse/jdt/internal/junit/ui/IJUnitHelpContextIds.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/IJUnitHelpContextIds.java,v >retrieving revision 1.7 >diff -u -r1.7 IJUnitHelpContextIds.java >--- src/org/eclipse/jdt/internal/junit/ui/IJUnitHelpContextIds.java 11 May 2003 21:20:04 -0000 1.7 >+++ src/org/eclipse/jdt/internal/junit/ui/IJUnitHelpContextIds.java 6 Aug 2003 22:24:40 -0000 >@@ -18,6 +18,7 @@ > > // Actions > public static final String COPYTRACE_ACTION= PREFIX + "copy_trace_action_context"; //$NON-NLS-1$ >+ public static final String COPYHIERACHY_ACTION= PREFIX + "copy_hierachy_action_context"; //$NON-NLS-1$ > public static final String COPYFAILURELIST_ACTION= PREFIX + "copy_failure_list_action_context"; //$NON-NLS-1$ > public static final String ENABLEFILTER_ACTION= PREFIX + "enable_filter_action_context"; //$NON-NLS-1$ > public static final String OPENEDITORATLINE_ACTION= PREFIX + "open_editor_atline_action_context"; //$NON-NLS-1$ >Index: src/org/eclipse/jdt/internal/junit/ui/JUnitMessages.properties >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/JUnitMessages.properties,v >retrieving revision 1.31 >diff -u -r1.31 JUnitMessages.properties >--- src/org/eclipse/jdt/internal/junit/ui/JUnitMessages.properties 16 Jul 2003 09:47:15 -0000 1.31 >+++ src/org/eclipse/jdt/internal/junit/ui/JUnitMessages.properties 6 Aug 2003 22:24:41 -0000 >@@ -16,6 +16,14 @@ > CopyFailureList.problem=Problem Copying Failure List to Clipboard > CopyFailureList.clipboard_busy=There was a problem when accessing the system clipboard. Retry? > >+CopyHierachy.action.label=Copy Hierachy >+CopyHierachy.problem=Problem Copying Hierachy to Clipboard >+CopyHierachy.clipboard_busy=There was a problem when accessing the system clipboard. Retry? >+CopyHierachy.error=Error >+CopyHierachy.failure=Failure >+CopyHierachy.ok=Success >+CopyHierachy.unknown=Unknown >+ > CounterPanel.label.runs=Runs: > CounterPanel.label.errors=Errors: > CounterPanel.label.failures=Failures: >Index: src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java,v >retrieving revision 1.50 >diff -u -r1.50 TestRunnerViewPart.java >--- src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java 5 Jun 2003 16:37:18 -0000 1.50 >+++ src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java 6 Aug 2003 22:24:41 -0000 >@@ -758,7 +758,7 @@ > tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL)); > > ITestRunView failureRunView= new FailureRunView(tabFolder, fClipboard, this); >- ITestRunView testHierarchyRunView= new HierarchyRunView(tabFolder, this); >+ ITestRunView testHierarchyRunView= new HierarchyRunView(tabFolder, fClipboard, this); > > fTestRunViews.addElement(failureRunView); > fTestRunViews.addElement(testHierarchyRunView); >Index: src/org/eclipse/jdt/internal/junit/ui/CopyHierachyAction.java >=================================================================== >RCS file: src/org/eclipse/jdt/internal/junit/ui/CopyHierachyAction.java >diff -N src/org/eclipse/jdt/internal/junit/ui/CopyHierachyAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jdt/internal/junit/ui/CopyHierachyAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2003 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Common Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/cpl-v10.html >+ * >+ * Contributors: >+ * Sebastian Davids - sdavids@gmx.de; initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.junit.ui; >+ >+import java.io.BufferedReader; >+import java.io.IOException; >+import java.io.PrintWriter; >+import java.io.StringReader; >+import java.io.StringWriter; >+ >+import org.eclipse.jdt.internal.ui.JavaPlugin; >+import org.eclipse.jface.action.Action; >+import org.eclipse.jface.dialogs.MessageDialog; >+import org.eclipse.swt.SWTError; >+import org.eclipse.swt.dnd.Clipboard; >+import org.eclipse.swt.dnd.DND; >+import org.eclipse.swt.dnd.TextTransfer; >+import org.eclipse.swt.dnd.Transfer; >+import org.eclipse.ui.help.WorkbenchHelp; >+ >+/** >+ * Copies the test hierachy to the clipboard. >+ */ >+public class CopyHierachyAction extends Action { >+ private HierarchyRunView fView; >+ >+ private final Clipboard fClipboard; >+ >+ /** >+ * Constructor for CopyHierachyAction. >+ */ >+ public CopyHierachyAction(TestRunnerViewPart runner, HierarchyRunView view, Clipboard clipboard) { >+ super(JUnitMessages.getString("CopyHierachy.action.label")); //$NON-NLS-1$ >+ WorkbenchHelp.setHelp(this, IJUnitHelpContextIds.COPYHIERACHY_ACTION); >+ fView= view; >+ fClipboard= clipboard; >+ } >+ >+ /* >+ * @see IAction#run() >+ */ >+ public void run() { >+ TextTransfer plainTextTransfer = TextTransfer.getInstance(); >+ try{ >+ fClipboard.setContents( >+ new String[]{ convertLineTerminators(fView.getHierachyAsString())}, >+ new Transfer[]{ plainTextTransfer }); >+ } catch (SWTError e){ >+ if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) >+ throw e; >+ if (MessageDialog.openQuestion(JavaPlugin.getActiveWorkbenchShell(), JUnitMessages.getString("CopyHierachy.problem"), JUnitMessages.getString("CopyHierachy.clipboard_busy"))) //$NON-NLS-1$ //$NON-NLS-2$ >+ run(); >+ } >+ } >+ >+ private String convertLineTerminators(String in) { >+ StringWriter stringWriter= new StringWriter(); >+ PrintWriter printWriter= new PrintWriter(stringWriter); >+ StringReader stringReader= new StringReader(in); >+ BufferedReader bufferedReader= new BufferedReader(stringReader); >+ String line; >+ try { >+ while ((line= bufferedReader.readLine()) != null) >+ printWriter.println(line); >+ } catch (IOException e) { >+ return in; // return the hierachy unfiltered >+ } >+ return stringWriter.toString(); >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 36352
:
5660
|
5661
| 5664