diff --git a/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl b/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl
new file mode 100644
index 000000000..5376cdd24
--- /dev/null
+++ b/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-frames.xsl
@@ -0,0 +1,877 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unit Test Results. key1=,key2=
+
+
+
+
+
+
+
+
+body {
+ font:normal 68% verdana,arial,helvetica;
+ color:#000000;
+}
+table tr td, table tr th {
+ font-size: 68%;
+}
+table.details tr th{
+ font-weight: bold;
+ text-align:left;
+ background:#a6caf0;
+}
+table.details tr td{
+ background:#eeeee0;
+}
+
+p {
+ line-height:1.5em;
+ margin-top:0.5em; margin-bottom:1.0em;
+}
+h1 {
+ margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
+}
+h2 {
+ margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
+}
+h3 {
+ margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
+}
+h4 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h5 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+h6 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+}
+.Error {
+ font-weight:bold; color:red;
+}
+.Failure {
+ font-weight:bold; color:purple;
+}
+.Properties {
+ text-align:right;
+}
+
+
+
+
+
+
+
+
+
+ All Failures
+
+
+ All Errors
+
+
+ All Tests
+
+
+
+
+ Unit Test Results:
+
+
+
+
+
+ open('allclasses-frame.html','classListFrame')
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+ Unit Test Results:
+
+
+
+
+
+
+
+
+ Class
+
+
+
+
+
+
+ Failures
+
+
+ Errors
+
+
+ Tests
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cur = TestCases['.'] = new Array();
+
+
+ cur[''] = '';
+
+
+
+
+
+
+
+
+
+
+ Unit Test Classes:
+
+
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+ All Unit Test Classes
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+ /
+ _.html
+
+
+
+ |
+
+
+
+
+
+
+
+
+ All Unit Test Packages
+
+
+
+
+
+
+ Packages
+
+
+
+
+
+
+
+
+
+
+ <none>
+
+ |
+
+
+
+
+
+
+
+ Unit Test Results: Summary
+
+
+
+
+
+ open('allclasses-frame.html','classListFrame')
+
+ Summary
+
+
+
+
+
+
+
+ Tests |
+ Failures |
+ Errors |
+ Success rate |
+ Time |
+
+
+
+
+ Error
+ Failure
+ Pass
+
+
+ |
+ |
+ |
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+
+ Note: failures are anticipated and checked for with assertions while errors are unanticipated.
+ |
+
+
+
+ Packages
+
+
+
+
+
+
+
+
+
+
+ Error
+ Failure
+ Pass
+
+
+
+
+ <none>
+ |
+ |
+ |
+ |
+
+
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ open('package-frame.html','classListFrame')
+
+ Package
+
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../
+
+
+
+
+
+ ../
+
+
+
+
+
+
+
+ stylesheet.css
+
+
+
+
+
+ Unit Test Results
+
+
+ |
+ Designed for use with JUnit and Ant. |
+
+
+
+
+
+
+
+ Name |
+ Tests |
+ Errors |
+ Failures |
+ Time(s) |
+ Time Stamp |
+ Host |
+
+
+
+
+
+
+
+ Class |
+
+ Name |
+ Status |
+ Type |
+ Time(s) |
+
+
+
+
+
+
+
+
+
+ Error
+ Failure
+ Pass
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+ Error
+ Failure
+ TableRowColor
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+ Failure |
+ |
+
+
+ Error |
+ |
+
+
+ Success |
+ |
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ N/A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl b/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl
new file mode 100644
index 000000000..e5d74731c
--- /dev/null
+++ b/src/etc/testcases/taskdefs/optional/junitreport-with-include/junit-import.xsl
@@ -0,0 +1,22 @@
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/optional/junitreport.xml b/src/etc/testcases/taskdefs/optional/junitreport.xml
index dedf44f3f..0b0ce2039 100644
--- a/src/etc/testcases/taskdefs/optional/junitreport.xml
+++ b/src/etc/testcases/taskdefs/optional/junitreport.xml
@@ -126,6 +126,19 @@
format="frames"/>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
index 448fe8172..38d509130 100644
--- a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
+++ b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
@@ -709,6 +709,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* @return the XML catalog for the task.
*/
public XMLCatalog getXMLCatalog() {
+ xmlCatalog.setProject(getProject());
return xmlCatalog;
}
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 bb99beeba..8500d484d 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,20 @@ public class JUnitReportTest extends BuildFileTest {
assertTrue("This shouldnt be an empty stream.", reportStream.available() > 0);
}
+ //Bugzilla Report 39708
+ public void testWithStyleFromDirAndXslImport() throws Exception {
+ executeTarget("testWithStyleFromDirAndXslImport");
+ File reportFile = new File(System.getProperty("root"), "src/etc/testcases/taskdefs/optional/junitreport/test/html/index.html");
+ // tests one the file object
+ assertTrue("No index.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);
+ }
+
public void testWithStyleFromClasspath() throws Exception {
executeTarget("testWithStyleFromClasspath");
File reportFile = new File(System.getProperty("root"), "src/etc/testcases/taskdefs/optional/junitreport/test/html/index.html");