blob: d19529369a8f0a2e4086479527ab94ff6db719e8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.taskdefs.optional.junit;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.net.URL;
import org.apache.tools.ant.BuildFileTest;
import org.apache.tools.ant.util.FileUtils;
/**
* Small testcase for the junitreporttask.
* First test added to reproduce an fault, still a lot to improve
*
*/
public class JUnitReportTest extends BuildFileTest {
public JUnitReportTest(String name){
super(name);
}
protected void setUp() {
configureProject("src/etc/testcases/taskdefs/optional/junitreport.xml");
}
protected void tearDown() {
executeTarget("clean");
}
/**
* Verifies that no empty junit-noframes.html is generated when frames
* output is selected via the default.
* Needs reports1 task from junitreport.xml.
*/
public void testNoFileJUnitNoFrames() {
executeTarget("reports1");
if (new File(System.getProperty("root"), "src/etc/testcases/taskdefs/optional/junitreport/test/html/junit-noframes.html").exists())
{
fail("No file junit-noframes.html expected");
}
}
public void assertIndexCreated() {
if (!new File(System.getProperty("root"),
"src/etc/testcases/taskdefs/optional/junitreport/test/html/index.html").exists()) {
fail("No file index file found");
}
}
/**
* run a target, assert the index file is there, look for text in the log
* @param targetName target
* @param text optional text to look for
*/
private void expectReportWithText(String targetName, String text) {
executeTarget(targetName);
assertIndexCreated();
if(text!=null) {
assertLogContaining(text);
}
}
public void testEmptyFile() throws Exception {
expectReportWithText("testEmptyFile",
XMLResultAggregator.WARNING_EMPTY_FILE);
}
public void testIncompleteFile() throws Exception {
expectReportWithText("testIncompleteFile",
XMLResultAggregator.WARNING_IS_POSSIBLY_CORRUPTED);
}
public void testWrongElement() throws Exception {
expectReportWithText("testWrongElement",
XMLResultAggregator.WARNING_INVALID_ROOT_ELEMENT);
}
// Bugzilla Report 34963
public void testStackTraceLineBreaks() throws Exception {
expectReportWithText("testStackTraceLineBreaks", null);
FileReader r = null;
try {
r = new FileReader(new File(System.getProperty("root"),
"src/etc/testcases/taskdefs/optional/junitreport/test/html/sampleproject/coins/0_CoinTest.html"));
String report = FileUtils.readFully(r);
assertTrue("output must contain <br>",
report.indexOf("junit.framework.AssertionFailedError: DOEG<br/>")
> -1);
} finally {
FileUtils.close(r);
}
}
// Bugzilla Report 38477
public void testSpecialSignsInSrcPath() throws Exception {
executeTarget("testSpecialSignsInSrcPath");
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 testSpecialSignsInHtmlPath() throws Exception {
executeTarget("testSpecialSignsInHtmlPath");
File reportFile = new File(System.getProperty("root"), "src/etc/testcases/taskdefs/optional/junitreport/test/html# $%\u00A7&-!report/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);
}
//Bugzilla Report 39708
public void testWithStyleFromDir() throws Exception {
executeTarget("testWithStyleFromDir");
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);
}
//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");
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");
// 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 testWithParams() throws Exception {
expectLogContaining("testWithParams", "key1=value1,key2=value2");
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);
}
}