From bf042df7ec488399fe7db09e73454320f27b8ef1 Mon Sep 17 00:00:00 2001 From: Antoine Levy-Lambert Date: Wed, 12 Jul 2006 17:18:06 +0000 Subject: [PATCH] Bug Report 40021. The noframes option was not working at all. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@421327 13f79535-47bb-0310-9956-ffa450edef68 --- .../taskdefs/optional/junitreport.xml | 12 ++++++- .../optional/junit/AggregateTransformer.java | 31 ++++++++++++------- .../ant/types/resources/FileResource.java | 2 +- .../optional/junit/JUnitReportTest.java | 13 ++++++++ 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/etc/testcases/taskdefs/optional/junitreport.xml b/src/etc/testcases/taskdefs/optional/junitreport.xml index 0b0ce2039..1d5e8494f 100644 --- a/src/etc/testcases/taskdefs/optional/junitreport.xml +++ b/src/etc/testcases/taskdefs/optional/junitreport.xml @@ -115,6 +115,16 @@ + + + + + + + + + + @@ -126,7 +136,7 @@ format="frames"/> - + diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java index b99783d4e..ed6e9d2e3 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java @@ -224,12 +224,6 @@ public class AggregateTransformer { TempFile tempFileTask = new TempFile(); tempFileTask.bindToOwner(task); - String tempFileProperty = getClass().getName() + String.valueOf(counter++); - File tmp = FILE_UTILS.resolveFile(project.getBaseDir(), - project.getProperty("java.io.tmpdir")); - tempFileTask.setDestDir(tmp); - tempFileTask.setProperty(tempFileProperty); - tempFileTask.execute(); XSLTProcess xsltTask = new XSLTProcess(); xsltTask.bindToOwner(task); @@ -237,8 +231,19 @@ public class AggregateTransformer { xsltTask.addConfigured(getStylesheet()); // acrobatic cast. xsltTask.setIn(((XMLResultAggregator) task).getDestinationFile()); - File dummyFile = new File(project.getProperty(tempFileProperty)); - xsltTask.setOut(dummyFile); + File outputFile = null; + if (format.equals(FRAMES)) { + String tempFileProperty = getClass().getName() + String.valueOf(counter++); + File tmp = FILE_UTILS.resolveFile(project.getBaseDir(), + project.getProperty("java.io.tmpdir")); + tempFileTask.setDestDir(tmp); + tempFileTask.setProperty(tempFileProperty); + tempFileTask.execute(); + outputFile = new File(project.getProperty(tempFileProperty)); + } else { + outputFile = new File(toDir, "junit-noframes.html"); + } + xsltTask.setOut(outputFile); for (Iterator i = params.iterator(); i.hasNext();) { XSLTProcess.Param param = (XSLTProcess.Param) i.next(); XSLTProcess.Param newParam = xsltTask.createParam(); @@ -259,10 +264,12 @@ public class AggregateTransformer { } final long dt = System.currentTimeMillis() - t0; task.log("Transform time: " + dt + "ms"); - Delete delete = new Delete(); - delete.bindToOwner(task); - delete.setFile(dummyFile); - delete.execute(); + if (format.equals(FRAMES)) { + Delete delete = new Delete(); + delete.bindToOwner(task); + delete.setFile(outputFile); + delete.execute(); + } } /** diff --git a/src/main/org/apache/tools/ant/types/resources/FileResource.java b/src/main/org/apache/tools/ant/types/resources/FileResource.java index 7381fbf4e..8dbba8596 100644 --- a/src/main/org/apache/tools/ant/types/resources/FileResource.java +++ b/src/main/org/apache/tools/ant/types/resources/FileResource.java @@ -38,7 +38,7 @@ public class FileResource extends Resource implements Touchable { private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); private static final int NULL_FILE = Resource.getMagicNumber("null file".getBytes()); - + private File file; private File baseDir; diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitReportTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitReportTest.java index 8500d484d..cd147ef5d 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitReportTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/junit/JUnitReportTest.java @@ -150,6 +150,19 @@ public class JUnitReportTest extends BuildFileTest { assertTrue("This shouldnt be an empty stream.", reportStream.available() > 0); } + //Bugzilla Report 40021 + public void testNoFrames() throws Exception { + executeTarget("testNoFrames"); + File reportFile = new File(System.getProperty("root"), "src/etc/testcases/taskdefs/optional/junitreport/test/html/junit-noframes.html"); + // tests one the file object + assertTrue("No junit-noframes.html present. Not generated?", reportFile.exists() ); + assertTrue("Cant read the report file.", reportFile.canRead() ); + assertTrue("File shouldnt be empty.", reportFile.length() > 0 ); + // conversion to URL via FileUtils like in XMLResultAggregator, not as suggested in the bug report + URL reportUrl = new URL( FileUtils.getFileUtils().toURI(reportFile.getAbsolutePath()) ); + InputStream reportStream = reportUrl.openStream(); + assertTrue("This shouldnt be an empty stream.", reportStream.available() > 0); + } //Bugzilla Report 39708 public void testWithStyleFromDirAndXslImport() throws Exception { executeTarget("testWithStyleFromDirAndXslImport");