Skip to content

Commit bc3b476

Browse files
author
Constantino Cronemberger
committed
using a special Layout instance to make sure this test is more robust
1 parent a543edb commit bc3b476

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

src/test/java/org/owasp/esapi/reference/Log4JLoggerTest.java

+27-13
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,24 @@
1515
*/
1616
package org.owasp.esapi.reference;
1717

18-
import java.io.IOException;
19-
import java.io.StringWriter;
20-
import java.util.Arrays;
21-
2218
import junit.framework.Test;
2319
import junit.framework.TestCase;
2420
import junit.framework.TestSuite;
25-
26-
import org.apache.log4j.*;
27-
import org.apache.log4j.xml.XMLLayout;
21+
import org.apache.log4j.Appender;
22+
import org.apache.log4j.Layout;
23+
import org.apache.log4j.WriterAppender;
24+
import org.apache.log4j.spi.LoggingEvent;
2825
import org.owasp.esapi.ESAPI;
2926
import org.owasp.esapi.Logger;
3027
import org.owasp.esapi.errors.AuthenticationException;
3128
import org.owasp.esapi.errors.ValidationException;
3229
import org.owasp.esapi.http.MockHttpServletRequest;
3330
import org.owasp.esapi.http.MockHttpServletResponse;
3431

32+
import java.io.IOException;
33+
import java.io.StringWriter;
34+
import java.util.Arrays;
35+
3536
/**
3637
* The Class LoggerTest.
3738
*
@@ -468,17 +469,30 @@ public void testAlways() {
468469
* Line number must be the line of the caller and not of the wrapper.
469470
*/
470471
public void testLine() {
472+
final String message = "testing only";
471473
StringWriter sw = new StringWriter();
472-
Layout layout = new PatternLayout("%d{ISO8601}%5p [%t] %C:%L - %m%n");
474+
Layout layout = new Layout() {
475+
@Override
476+
public String format(LoggingEvent event) {
477+
assertEquals("the calling class is this test class", Log4JLoggerTest.class.getName(),event.getLocationInformation().getClassName());
478+
return message;
479+
}
480+
481+
@Override
482+
public boolean ignoresThrowable() {
483+
return false;
484+
}
485+
486+
@Override
487+
public void activateOptions() {
488+
489+
}
490+
};
473491
Appender appender = new WriterAppender(layout, sw);
474492
log4JLogger.addAppender(appender);
475493
try {
476494
log4JLogger.fatal("testLine");
477-
String generatedLine = sw.toString();
478-
System.out.println("-> " + generatedLine + " <-");
479-
assertTrue("generated line should not have the name of the wrapper class",
480-
// need to add the ":" sufix otherwise the test would also fail with this test class name
481-
!generatedLine.contains(Log4JLogger.class.getName()+":"));
495+
assertEquals("message not generated as expected", message, sw.toString());
482496
} finally {
483497
log4JLogger.removeAppender(appender);
484498
}

0 commit comments

Comments
 (0)