/* * Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved. */ package jsystem.extensions.report.html; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.logging.Level; import jsystem.utils.StringUtils; /** * Html base class for test reports and links */ public class TestReport extends Report { /** * */ private static final long serialVersionUID = -3105616111390882858L; private Object message = null; private boolean isStatement = false; public TestReport(){ super(); } public TestReport(String title, String message, int isSuccess, boolean bold, boolean ignore) { super(title, isSuccess, bold); this.message = message; this.ignore = ignore; this.cssClass = "test_report"; } public TestReport(String title, String message, int isSuccess, boolean bold, boolean ignore, String directory) { this(title,message,isSuccess,bold,ignore); this.directory = directory; } public TestReport(String title, String message, int isSuccess, boolean bold, boolean ignore, String directory,String cssClass) { this(title,message,isSuccess,bold,ignore,directory); this.cssClass = cssClass; } public void toFile(NameGenerator generator) throws IOException { if (getMessage() != null) { StringBuffer toFile = new StringBuffer(); if (String.valueOf(getMessage()).indexOf("!DOCTYPE HTML") >= 0 || isHtmlMessage()) { toFile.append(String.valueOf(getMessage())); } else { // Add css for pass\fail toFile.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n"); toFile.append("<html><head>"); toFile.append(CssUtils.cssPropertyToHtmlHeader(getDirectory()!=null)); toFile.append("</head><body class=\""); toFile.append(getCssClassCanonicalValue()); toFile.append("\"><FONT face=\"Courier New\" size=2>"); toFile.append(StringUtils.toHtmlString(String.valueOf(getMessage()))); toFile.append("</FONT></body></html>"); } if (fileName == null) { fileName = generator.getName(); } String baseDir; if (directory == null) { baseDir = logDirectory; } else { baseDir = logDirectory + File.separator + directory; } File listFile = new File(baseDir, fileName); listFile.getParentFile().mkdirs(); if (!listFile.getParentFile().exists()) { log.log(Level.INFO, "Fail to create log directory: " + listFile.getParent()); } BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(listFile),"UTF-8")); bw.write(toFile.toString().toCharArray()); bw.flush(); bw.close(); bw = null; } setChangedStatus(isSuccess); updateParents(generator); } public void setMessage(String message) { this.message = message; } public Object getMessage() { return message; } public boolean isStatement() { return isStatement; } public void setStatement(boolean statement) { isStatement = statement; } }