HTMLLayoutTestpublic class HTMLLayoutTest extends LayoutTest
Constructors Summary |
---|
public HTMLLayoutTest(String testName)Construct new instance of XMLLayoutTest.
super(testName, "text/html", false, null, null);
|
Methods Summary |
---|
protected org.apache.log4j.Layout | createLayout()
return new HTMLLayout();
| private org.w3c.dom.Document | parse(java.lang.String source)Parses the string as the body of an XML document and returns the document element.
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(false);
factory.setCoalescing(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Reader reader = new StringReader(source);
return builder.parse(new InputSource(reader));
| public void | testActivateOptions()Tests activateOptions().
HTMLLayout layout = new HTMLLayout();
layout.activateOptions();
| public void | testFormat()Tests formatted results.
Logger logger = Logger.getLogger("org.apache.log4j.xml.HTMLLayoutTest");
NDC.push("NDC goes here");
LoggingEvent event =
new LoggingEvent(
"org.apache.log4j.Logger", logger, Level.INFO, "Hello, World", null);
HTMLLayout layout = (HTMLLayout) createLayout();
layout.setLocationInfo(true);
String result = layout.format(event);
NDC.pop();
String src =
"<!DOCTYPE body [ <!ENTITY nbsp ' '>]><body>" + result + "</body>";
Document doc = parse(src);
| public void | testFormatResize()Tests buffer downsizing and DEBUG and WARN colorization code paths.
Logger logger = Logger.getLogger("org.apache.log4j.xml.HTMLLayoutTest");
NDC.clear();
char[] msg = new char[2000];
for (int i = 0; i < msg.length; i++) {
msg[i] = 'A";
}
LoggingEvent event1 =
new LoggingEvent(
"org.apache.log4j.Logger", logger, Level.DEBUG, new String(msg), null);
HTMLLayout layout = (HTMLLayout) createLayout();
layout.setLocationInfo(true);
String result = layout.format(event1);
Exception ex = new IllegalArgumentException("'foo' is not a valid value.");
LoggingEvent event2 =
new LoggingEvent(
"org.apache.log4j.Logger", logger, Level.WARN, "Hello, World", ex);
result = layout.format(event2);
assertEquals(
Layout.LINE_SEP + "<tr>",
result.substring(0, Layout.LINE_SEP.length() + 4));
| public void | testGetFooter()Tests getFooter.
assertEquals("</table>", createLayout().getFooter().substring(0, 8));
| public void | testGetHeader()Tests getHeader.
assertEquals("<!DOCTYPE", createLayout().getHeader().substring(0, 9));
| public void | testGetHeaderWithLocation()Tests getHeader with locationInfo = true.
HTMLLayout layout = (HTMLLayout) createLayout();
layout.setLocationInfo(true);
assertEquals("<!DOCTYPE", layout.getHeader().substring(0, 9));
| public void | testGetSetLocationInfo()Tests getLocationInfo and setLocationInfo.
HTMLLayout layout = new HTMLLayout();
assertEquals(false, layout.getLocationInfo());
layout.setLocationInfo(true);
assertEquals(true, layout.getLocationInfo());
layout.setLocationInfo(false);
assertEquals(false, layout.getLocationInfo());
| public void | testGetSetTitle()Tests getTitle and setTitle.
HTMLLayout layout = new HTMLLayout();
assertEquals("Log4J Log Messages", layout.getTitle());
layout.setTitle(null);
assertNull(layout.getTitle());
String newTitle = "A treatise on messages of log persuasion";
layout.setTitle(newTitle);
assertEquals(newTitle, layout.getTitle());
| public void | testProblemCharacters()Tests problematic characters in multiple fields.
String problemName = "com.example.bar<>&\"'";
Logger logger = Logger.getLogger(problemName);
Level level = new ProblemLevel(problemName);
Exception ex = new IllegalArgumentException(problemName);
String threadName = Thread.currentThread().getName();
Thread.currentThread().setName(problemName);
NDC.push(problemName);
Hashtable mdcMap = MDC.getContext();
if (mdcMap != null) {
mdcMap.clear();
}
MDC.put(problemName, problemName);
LoggingEvent event =
new LoggingEvent(
problemName, logger, level, problemName, ex);
HTMLLayout layout = (HTMLLayout) createLayout();
String result = layout.format(event);
mdcMap = MDC.getContext();
if (mdcMap != null) {
mdcMap.clear();
}
Thread.currentThread().setName(threadName);
//
// do a little fixup to make output XHTML
//
StringBuffer buf = new StringBuffer(
"<!DOCTYPE table [<!ENTITY nbsp ' '>]><table>");
buf.append(result);
buf.append("</table>");
String doc = buf.toString();
for(int i = doc.lastIndexOf("<br>");
i != -1;
i = doc.lastIndexOf("<br>", i - 1)) {
buf.replace(i, i + 4, "<br/>");
}
parse(buf.toString());
|
|