1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.logging.tests.java.util.logging; 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.BufferedReader; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.File; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.FileReader; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.PrintStream; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.UnsupportedEncodingException; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.ResourceBundle; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.FileHandler; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Handler; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Level; 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.LogRecord; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.Logger; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.logging.XMLFormatter; 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class XMLFormatterTest extends TestCase { 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath XMLFormatter formatter = null; 398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath MockHandler handler = null; 418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath LogRecord lr = null; 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath protected void setUp() throws Exception { 458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super.setUp(); 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath formatter = new XMLFormatter(); 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath handler = new MockHandler(); 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr = new LogRecord(Level.SEVERE, "pattern"); 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testLocalFormat() { 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // if set resource bundle, output will use localized message, 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // but put the original message into the key element 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // further more, if message pattern has no effect 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ResourceBundle rb = ResourceBundle 5684bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller .getBundle("bundles/com/android/java/util/logging/res"); 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundle(rb); 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("pattern"); 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String result = formatter.format(lr); 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<message>" + rb.getString("pattern") 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "</message>") > 0); 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<key>pattern</key>") > 0); 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("msg"); 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result = formatter.format(lr); 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<message>" + rb.getString("msg") 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "</message>") > 0); 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<key>msg</key>") > 0); 698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("pattern {0, number}"); 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result = formatter.format(lr); 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<message>pattern {0, number}</message>") > 0); 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<key>") < 0); 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // if message has no relevant localized message, use the original 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMessage("bad key"); 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result = formatter.format(lr); 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<message>bad key</message>") > 0); 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(result.indexOf("<key>") < 0); 808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testFullFormat() { 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSourceClassName("source class"); 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSourceMethodName("source method"); 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setLoggerName("logger name"); 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setMillis(0); 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setThrown(new Throwable("message")); 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setParameters(new Object[] { "100", "200" }); 898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setSequenceNumber(1); 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ResourceBundle rb = ResourceBundle 9184bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller .getBundle("bundles/com/android/java/util/logging/res"); 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundle(rb); 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr.setResourceBundleName("rbname"); 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String output = formatter.format(lr); 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // System.out.println(output); 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<record>") >= 0); 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<date>") >= 0); 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<millis>0</millis>") >= 0); 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<sequence>") >= 0); 1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<level>SEVERE</level>") >= 0); 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<thread>") >= 0); 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<message>" + rb.getString("pattern") 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + "</message>") >= 0); 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<logger>logger name</logger>") > 0); 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<class>source class</class>") > 0); 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<method>source method</method>") > 0); 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<catalog>rbname</catalog>") > 0); 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<param>100</param>") > 0); 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<param>200</param>") > 0); 1108d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<exception>") > 0); 1118d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<key>pattern</key>") > 0); 1128d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1138d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1148d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testFormat() { 1158d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String output = formatter.format(lr); 1168d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // System.out.println(output); 1178d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<record>") >= 0); 1188d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<date>") >= 0); 1198d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<millis>") >= 0); 1208d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<sequence>") >= 0); 1218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<level>SEVERE</level>") >= 0); 1228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<thread>") >= 0); 1238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<message>pattern</message>") >= 0); 1248d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<logger>") < 0); 1258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<class>") < 0); 1268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<method>") < 0); 1278d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<catalog>") < 0); 1288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<param>") < 0); 1298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<exception>") < 0); 1308d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<key>") < 0); 1318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1338d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetHead() throws SecurityException, 1348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath UnsupportedEncodingException { 1358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String result = formatter.getHead(handler); 1368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(handler.getEncoding()); 1378d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // TODO: where do we get the default encoding from? 1388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // assertTrue(result.indexOf(defaultEncoding)>0); 1398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath handler.setEncoding("ISO-8859-1"); 1418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String head = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"no\"?>"; 1428d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String dtd = "<!DOCTYPE log SYSTEM \"logger.dtd\">"; 1438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String rootELement = "<log>"; 1448d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result = formatter.getHead(handler); 1458d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath int headPos = result.indexOf(head); 1468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath int dtdPos = result.indexOf(dtd); 1478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath int rootPos = result.indexOf(rootELement); 1488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(headPos >= 0); 1498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(dtdPos > headPos); 1508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(rootPos > dtdPos); 1518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath handler.setEncoding(null); 1538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath result = formatter.getHead(handler); 1548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertNull(handler.getEncoding()); 1558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // assertTrue(result.indexOf(defaultEncoding)>0); 1568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // regression test for Harmony-1280 1588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // make sure no NPE is thrown 1598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath formatter.getHead(null); 1608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testGetTail() { 1648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(formatter.getTail(handler).indexOf("/log>") > 0); 1658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void testInvalidParameter() { 1688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath formatter.getTail(null); 1698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath try { 1708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath formatter.format(null); 1718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath fail(); 1728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } catch (NullPointerException e) { 1738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath formatter = new XMLFormatter(); 1768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath lr = new LogRecord(Level.SEVERE, null); 1778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath String output = formatter.format(lr); 1788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // System.out.println(formatter.getHead(handler)+output+formatter.getTail(handler)); 1798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue(output.indexOf("<message") > 0); 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public class TestFileHandlerClass { 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Logger logger = Logger.getLogger(TestFileHandlerClass.class.getName()); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public TestFileHandlerClass(String logFile) throws SecurityException, 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes IOException { 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logger.addHandler(new FileHandler(logFile)); 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes LogRecord logRecord = new LogRecord(Level.INFO, "message:<init>&"); 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logRecord.setLoggerName("<init>&"); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logRecord.setThrown(new Exception("<init>&")); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logRecord.setParameters(new String[] { "<init>&" }); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logger.log(logRecord); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_TestFileHandlerClass_constructor() throws Exception { 19784bf48564a8560403bd77eee23f7fad63e50340eNeil Fuller File logFile = File.createTempFile("TestFileHandlerClass", ".log"); 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes logFile.deleteOnExit(); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes PrintStream out = System.out; 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes PrintStream err = System.err; 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setOut(null); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setErr(null); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new TestFileHandlerClass(logFile.getCanonicalPath()); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes BufferedReader br = new BufferedReader(new FileReader(logFile)); 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String line = null; 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((line = br.readLine()) != null) { 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (line.contains("<init>&")) { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should convert <init> to <init>"); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } finally { 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setOut(out); 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes System.setErr(err); 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2218d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public static class MockHandler extends Handler { 2228d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void close() { 2238d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2258d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void flush() { 2268d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2288d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public void publish(LogRecord record) { 2298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 233