public boolean testCase4()

in java/src/org/apache/qetest/xalanj2/TraceListenerTest.java [364:457]


    public boolean testCase4()
    {
        reporter.testCaseInit("Test TraceListener with XalanProperties.SOURCE_LOCATION");
        reporter.logWarningMsg("Note: limited validation: partly just a crash test so far.");

        try
        {
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(testFileInfo.getXSLSource());

            TraceManager traceManager = ((TransformerImpl)transformer).getTraceManager();
            reporter.logTraceMsg("getTraceManager is:" + traceManager);

            LoggingTraceListener ltl = new LoggingTraceListener(reporter);
            ltl.setLoggingLevel(Logger.INFOMSG + 1);
            
            reporter.logInfoMsg("Transformer created, addTraceListener(LoggingTraceListener)..."); 
            traceManager.addTraceListener((TraceListener)ltl);
            
            // Verify new Xalan-J 2.x specific property as true (non-default value)
            reporter.logInfoMsg("About to run with Source Location Property ON"); 
            ((TransformerImpl)transformer).setProperty(XalanProperties.SOURCE_LOCATION, Boolean.TRUE);
            reporter.logInfoMsg("About to create output: " + outNames.nextName()); 
            transformer.transform(testFileInfo.getXMLSource(),
                                  new StreamResult(outNames.currentName()));
            reporter.logInfoMsg("Done creating output: " + outNames.currentName());

            int[] tracedEvents = ltl.getCounters();
            reporter.logStatusMsg("Last event traced(LPTL):" + ltl.getLast());
            reporter.logStatusMsg("Events traced(LPTL):" + tracedEvents[LoggingPrintTraceListener.TYPE_TRACE]
                                  + " events generated:" + tracedEvents[LoggingPrintTraceListener.TYPE_GENERATED]
                                  + " events selected:" + tracedEvents[LoggingPrintTraceListener.TYPE_SELECTED]);
            reporter.checkPass("Crash test: completed transformations with SOURCE_LOCATION just ON");
        }
        catch (Throwable t)
        {
            reporter.logThrowable(Logger.ERRORMSG, t, "testCase4a-XalanProperties.SOURCE_LOCATION threw: ");
            reporter.checkFail("testCase4a-XalanProperties.SOURCE_LOCATION threw: " + t.toString());
        }

        try
        {
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(testFileInfo.getXSLSource());

            TraceManager traceManager = ((TransformerImpl)transformer).getTraceManager();
            reporter.logTraceMsg("getTraceManager is:" + traceManager);

            LoggingTraceListener ltl = new LoggingTraceListener(reporter);
            ltl.setLoggingLevel(Logger.INFOMSG + 1);
            
            reporter.logInfoMsg("Transformer created, addTraceListener(LoggingTraceListener)..."); 
            traceManager.addTraceListener((TraceListener)ltl);
            
            // Verify new Xalan-J 2.x specific property; false then true
            reporter.logInfoMsg("About to run with Source Location Property OFF"); 
            ((TransformerImpl)transformer).setProperty(XalanProperties.SOURCE_LOCATION, Boolean.FALSE);
            reporter.logInfoMsg("About to create output: " + outNames.nextName()); 
            transformer.transform(testFileInfo.getXMLSource(),
                                  new StreamResult(outNames.currentName()));
            reporter.logInfoMsg("Done creating output: " + outNames.currentName());

            int[] tracedEvents1 = ltl.getCounters();
            reporter.logStatusMsg("Last event traced(LPTL):" + ltl.getLast());
            reporter.logStatusMsg("Events traced(LPTL):" + tracedEvents1[LoggingPrintTraceListener.TYPE_TRACE]
                                  + " events generated:" + tracedEvents1[LoggingPrintTraceListener.TYPE_GENERATED]
                                  + " events selected:" + tracedEvents1[LoggingPrintTraceListener.TYPE_SELECTED]);

            ltl.reset();

            // Verify new Xalan-J 2.x specific property; false then true
            reporter.logInfoMsg("About to run with Source Location Property ON"); 
            ((TransformerImpl)transformer).setProperty(XalanProperties.SOURCE_LOCATION, Boolean.TRUE);
            reporter.logInfoMsg("About to create output: " + outNames.nextName()); 
            transformer.transform(testFileInfo.getXMLSource(),
                                  new StreamResult(outNames.currentName()));
            reporter.logInfoMsg("Done creating output: " + outNames.currentName());

            int[] tracedEvents2 = ltl.getCounters();
            reporter.logStatusMsg("Last event traced(LPTL):" + ltl.getLast());
            reporter.logStatusMsg("Events traced(LPTL):" + tracedEvents2[LoggingPrintTraceListener.TYPE_TRACE]
                                  + " events generated:" + tracedEvents2[LoggingPrintTraceListener.TYPE_GENERATED]
                                  + " events selected:" + tracedEvents2[LoggingPrintTraceListener.TYPE_SELECTED]);
            reporter.checkPass("Crash test: completed transformations with SOURCE_LOCATION OFF and ON");
        }
        catch (Throwable t)
        {
            reporter.logThrowable(Logger.ERRORMSG, t, "testCase4b-XalanProperties.SOURCE_LOCATION threw: ");
            reporter.checkFail("testCase4b-XalanProperties.SOURCE_LOCATION threw: " + t.toString());
        }

        reporter.testCaseClose();
        return true;
    }