curcuru     01/10/09 07:02:37

  Modified:    test/java/src/org/apache/qetest/trax ErrorListenerTest.java
               test/java/src/org/apache/qetest/xalanj2
                        SmoketestOuttakes.java
  Log:
  Moved several tests from ErrorListenerTest to SmoketestOuttakes so
  we can include the former in the daily smoketest
  
  Revision  Changes    Path
  1.5       +28 -23    
xml-xalan/test/java/src/org/apache/qetest/trax/ErrorListenerTest.java
  
  Index: ErrorListenerTest.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/trax/ErrorListenerTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ErrorListenerTest.java    2001/09/27 10:33:08     1.4
  +++ ErrorListenerTest.java    2001/10/09 14:02:36     1.5
  @@ -89,8 +89,17 @@
   
   /**
    * Verify that ErrorListeners are called properly from Transformers.
  + * Also verifies basic Transformer behavior after a stylesheet 
  + * with errors has been built.
  + * Note: parts of this test may rely on specific Xalan functionality, 
  + * in that with the specific errors I've chosen, Xalan can actually 
  + * continue to process the stylesheet, even though it had an error.
  + * XSLTC mode may either throw slighly different kinds of errors, or 
  + * may not be able to continue after the error (we should 
  + * investigate changing this test to just verify common things, 
  + * and then check the rest into the xalanj2 directory).
    * @author [EMAIL PROTECTED]
  - * @version $Id: ErrorListenerTest.java,v 1.4 2001/09/27 10:33:08 curcuru 
Exp $
  + * @version $Id: ErrorListenerTest.java,v 1.5 2001/10/09 14:02:36 curcuru 
Exp $
    */
   public class ErrorListenerTest extends XSLProcessorTestBase
   {
  @@ -240,14 +249,10 @@
   
               // Validate the actual output file as well: in this case, 
               //  the stylesheet should still work
  -            if (Logger.PASS_RESULT
  -                != fileChecker.check(reporter, 
  +            fileChecker.check(reporter, 
                       new File(outNames.currentName()), 
                       new File(testFileInfo.goldName), 
  -                    "transform of error xsl into: " + outNames.currentName())
  -               )
  -                reporter.logInfoMsg("transform of error xsl failure reason:" 
+ fileChecker.getExtendedInfo());
  -            
  +                    "transform of error xsl into: " + 
outNames.currentName());
           }
           catch (Throwable t)
           {
  @@ -331,13 +336,13 @@
   
               // Validate the actual output file as well: in this case, 
               //  the stylesheet should still work
  -            if (Logger.PASS_RESULT
  -                != fileChecker.check(reporter, 
  +            reporter.logErrorMsg("Output file validation Moved to 
SmoketestOuttakes.java.testCase3 Oct-01 -sc Bugzilla#4044");
  +/* **** Moved to SmoketestOuttakes.java.testCase3 Oct-01 -sc 
  +            fileChecker.check(reporter, 
                       new File(outNames.currentName()), 
                       new File(testFileInfo.goldName), 
  -                    "SAX transform of error xsl into: " + 
outNames.currentName())
  -               )
  -                reporter.logInfoMsg("SAX transform of error xsl failure 
reason:" + fileChecker.getExtendedInfo());
  +                    "SAX transform of error xsl into: " + 
outNames.currentName());
  +**** Moved to SmoketestOuttakes.java.testCase3 Oct-01 -sc **** */
               
           }
           catch (Throwable t)
  @@ -400,6 +405,9 @@
               //  were detected during it's building.  Note that 
               //  future versions of Xalan or other processors may 
               //  not be able to continue here...
  +            reporter.logErrorMsg("DOM templates/validation Moved to 
SmoketestOuttakes.java.testCase3 Oct-01 -sc Bugzilla#1062");
  +/* **** Moved to SmoketestOuttakes.java.testCase4 Oct-01 -sc 
  +            
               transformer = templates.newTransformer();
   
               reporter.logTraceMsg("default transformer's getErrorListener is: 
" + transformer.getErrorListener());
  @@ -420,13 +428,11 @@
   
               // Validate the actual output file as well: in this case, 
               //  the stylesheet should still work
  -            if (Logger.PASS_RESULT
  -                != fileChecker.check(reporter, 
  +            fileChecker.check(reporter, 
                       new File(outNames.currentName()), 
                       new File(testFileInfo.goldName), 
  -                    "DOM transform of error xsl into: " + 
outNames.currentName())
  -               )
  -                reporter.logInfoMsg("DOM transform of error xsl failure 
reason:" + fileChecker.getExtendedInfo());
  +                    "DOM transform of error xsl into: " + 
outNames.currentName());
  +**** Moved to SmoketestOuttakes.java.testCase4 Oct-01 -sc **** */
               
           }
           catch (Throwable t)
  @@ -480,18 +486,17 @@
   
               // Validate that one warning (about illegal-encoding-value) 
should have been reported
               int[] errCtr = loggingErrorListener.getCounters();
  +            reporter.logErrorMsg("Validation of warning throw Moved to 
Bugzilla1266.java Oct-01 -sc");
  +/* **** Moved to Bugzilla1266.java Oct-01 -sc
               reporter.check((errCtr[LoggingErrorListener.TYPE_WARNING] > 0), 
true, "At least one Warning listned to for illegal-encoding-value");
  +**** Moved to Bugzilla1266.java Oct-01 -sc **** */
               
               // Validate the actual output file as well: in this case, 
               //  the stylesheet should still work
  -            if (Logger.PASS_RESULT
  -                != fileChecker.check(reporter, 
  +            fileChecker.check(reporter, 
                       new File(outNames.currentName()), 
                       new File(goodFileInfo.goldName), 
  -                    "transform of good xsl w/bad output props into: " + 
outNames.currentName())
  -               )
  -                reporter.logInfoMsg("transform of error xsl failure reason:" 
+ fileChecker.getExtendedInfo());
  -            
  +                    "transform of good xsl w/bad output props into: " + 
outNames.currentName());
           }
           catch (Throwable t)
           {
  
  
  
  1.2       +219 -7    
xml-xalan/test/java/src/org/apache/qetest/xalanj2/SmoketestOuttakes.java
  
  Index: SmoketestOuttakes.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/xalanj2/SmoketestOuttakes.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SmoketestOuttakes.java    2001/06/28 01:47:16     1.1
  +++ SmoketestOuttakes.java    2001/10/09 14:02:37     1.2
  @@ -64,6 +64,7 @@
   
   // Support for test reporting and harness classes
   import org.apache.qetest.*;
  +import org.apache.qetest.trax.*;
   import org.apache.qetest.xsl.*;
   
   // Import all relevant TRAX packages
  @@ -78,9 +79,7 @@
   import org.apache.xalan.templates.OutputProperties;
   
   // Needed SAX, DOM, JAXP classes
  -import javax.xml.parsers.DocumentBuilder;
  -import javax.xml.parsers.DocumentBuilderFactory;
  -import javax.xml.parsers.ParserConfigurationException;
  +import javax.xml.parsers.*;
   // Needed SAX classes
   import org.xml.sax.InputSource;
   import org.xml.sax.SAXException;
  @@ -96,7 +95,6 @@
   // Needed DOM classes
   import org.w3c.dom.Node;
   
  -
   // java classes
   import java.io.File;
   import java.io.FileInputStream;
  @@ -122,7 +120,7 @@
    * due to recent changes you have made).
    *
    * @author [EMAIL PROTECTED]
  - * @version $Id: SmoketestOuttakes.java,v 1.1 2001/06/28 01:47:16 curcuru 
Exp $
  + * @version $Id: SmoketestOuttakes.java,v 1.2 2001/10/09 14:02:37 curcuru 
Exp $
    */
   public class SmoketestOuttakes extends XSLProcessorTestBase
   {
  @@ -134,7 +132,7 @@
       /** Just initialize test name, comment, numTestCases. */
       public SmoketestOuttakes()
       {
  -        numTestCases = 2;  // REPLACE_num
  +        numTestCases = 4;  // REPLACE_num
           testName = "SmoketestOuttakes";
           testComment = "Individual test points taken out of other automation 
files";
       }
  @@ -376,7 +374,8 @@
   
   
       /**
  -    * Serialize a node to System.out.
  +    * Serialize a node to System.out; 
  +    * used in ExamplesTest; testCase1, testCase2 above
       */
       public void exampleSerializeNode(Node node)
           throws TransformerException, TransformerConfigurationException, 
  @@ -395,6 +394,219 @@
           reporter.logStatusMsg("Test-output-to: new StreamResult(" + 
outNames.currentName());
           // TEST UPDATE - Caller must validate outNames.currentName()
       }  
  +
  +
  +    /**
  +     * From ErrorListenerTest.java testCase2
  +     * Build a bad stylesheet/do a transform with SAX.
  +     * Verify that the ErrorListener is called properly.
  +     * Primarily using SAXSources.
  +     * @return false if we should abort the test; true otherwise
  +     */
  +    public boolean testCase3()
  +    {
  +        reporter.testCaseInit("Build a bad stylesheet/do a transform with 
SAX");
  +        XSLTestfileInfo testFileInfo = new XSLTestfileInfo();
  +        testFileInfo.inputName = inputDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.xsl";
  +        testFileInfo.xmlName = inputDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.xml";
  +        testFileInfo.goldName = goldDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.out";
  +        int templatesExpectedType = LoggingErrorListener.TYPE_FATALERROR;
  +        String templatesExpectedValue = "decimal-format names must be 
unique. Name \"myminus\" has been duplicated";
  +        int transformExpectedType = LoggingErrorListener.TYPE_WARNING;
  +        String transformExpectedValue = "ExpectedMessage from:list1";
  +        
  +        
  +        LoggingErrorListener loggingErrorListener = new 
LoggingErrorListener(reporter);
  +        loggingErrorListener.setThrowWhen(LoggingErrorListener.THROW_NEVER);
  +        reporter.logTraceMsg("loggingErrorListener originally setup:" + 
loggingErrorListener.getQuickCounters());
  +
  +        TransformerFactory factory = null;
  +        SAXTransformerFactory saxFactory = null;
  +        XMLReader reader = null;
  +        Templates templates = null;
  +        Transformer transformer = null;
  +        TransformerHandler handler = null;
  +        try
  +        {
  +            factory = TransformerFactory.newInstance();
  +            saxFactory = (SAXTransformerFactory)factory; // assumes 
SAXSource.feature!
  +
  +            // Set the errorListener and validate it
  +            saxFactory.setErrorListener(loggingErrorListener);
  +            reporter.check((saxFactory.getErrorListener() == 
loggingErrorListener),
  +                           true, "set/getErrorListener on saxFactory");
  +
  +            // Use the JAXP way to get an XMLReader
  +            reader = 
SAXParserFactory.newInstance().newSAXParser().getXMLReader();
  +            InputSource is = new 
InputSource(QetestUtils.filenameToURL(testFileInfo.inputName));
  +
  +            // Attempt to build templates from known-bad stylesheet
  +            // Validate known errors in stylesheet building 
  +            loggingErrorListener.setExpected(templatesExpectedType, 
  +                                             templatesExpectedValue);
  +            reporter.logTraceMsg("About to 
factory.newTransformerHandler(SAX:" + 
QetestUtils.filenameToURL(testFileInfo.inputName) + ")");
  +            handler = saxFactory.newTransformerHandler(new SAXSource(is));
  +            reporter.logTraceMsg("loggingErrorListener after 
newTransformerHandler:" + loggingErrorListener.getQuickCounters());
  +            // Clear out any setExpected or counters
  +            loggingErrorListener.reset();
  +            reporter.checkPass("set ErrorListener prevented any exceptions 
in newTransformerHandler()");
  +
  +            // This stylesheet will still work, even though errors 
  +            //  were detected during it's building.  Note that 
  +            //  future versions of Xalan or other processors may 
  +            //  not be able to continue here...
  +
  +            // Create a result and setup SAX parsing 'tree'
  +            Result result = new StreamResult(outNames.nextName());
  +            handler.setResult(result);
  +            reader.setContentHandler(handler);
  +
  +            LoggingSAXErrorHandler loggingSAXErrorHandler = new 
LoggingSAXErrorHandler(reporter);
  +            
loggingSAXErrorHandler.setThrowWhen(LoggingSAXErrorHandler.THROW_NEVER);
  +            reporter.logTraceMsg("LoggingSAXErrorHandler originally setup:" 
+ loggingSAXErrorHandler.getQuickCounters());
  +            reader.setErrorHandler(loggingSAXErrorHandler);
  +            
  +            // Validate the first xsl:message call in the stylesheet
  +            loggingErrorListener.setExpected(transformExpectedType, 
  +                                             transformExpectedValue);
  +            reporter.logInfoMsg("about to parse/transform(" + 
QetestUtils.filenameToURL(testFileInfo.xmlName) + ")");
  +            reader.parse(QetestUtils.filenameToURL(testFileInfo.xmlName));
  +            reporter.logTraceMsg("LoggingSAXErrorHandler after parse:" + 
loggingSAXErrorHandler.getQuickCounters());
  +            // Clear out any setExpected or counters
  +            loggingErrorListener.reset();
  +            loggingSAXErrorHandler.reset();
  +
  +            // Validate the actual output file as well: in this case, 
  +            //  the stylesheet should still work
  +            fileChecker.check(reporter, 
  +                    new File(outNames.currentName()), 
  +                    new File(testFileInfo.goldName), 
  +                    "Bugzilla#4044 SAX transform of error xsl into: " + 
outNames.currentName());
  +        }
  +        catch (Throwable t)
  +        {
  +            reporter.checkFail("errorListener-SAX unexpectedly threw: " + 
t.toString());
  +            reporter.logThrowable(Logger.ERRORMSG, t, "errorListener-SAX 
unexpectedly threw");
  +        }
  +
  +        reporter.testCaseClose();
  +        return true;
  +    }
  +
  +
  +    /**
  +     * From ErrorListenerTest.java testCase3
  +     * Build a bad stylesheet/do a transform with DOMs.
  +     * Verify that the ErrorListener is called properly.
  +     * Primarily using DOMSources.
  +     * @return false if we should abort the test; true otherwise
  +     */
  +    public boolean testCase4()
  +    {
  +        reporter.testCaseInit("Build a bad stylesheet/do a transform with 
DOMs");
  +        XSLTestfileInfo testFileInfo = new XSLTestfileInfo();
  +        testFileInfo.inputName = inputDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.xsl";
  +        testFileInfo.xmlName = inputDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.xml";
  +        testFileInfo.goldName = goldDir 
  +                              + File.separator 
  +                              + "err"
  +                              + File.separator + "ErrorListenerTest.out";
  +        int templatesExpectedType = LoggingErrorListener.TYPE_FATALERROR;
  +        String templatesExpectedValue = "decimal-format names must be 
unique. Name \"myminus\" has been duplicated";
  +        int transformExpectedType = LoggingErrorListener.TYPE_WARNING;
  +        String transformExpectedValue = "ExpectedMessage from:list1";
  +
  +        LoggingErrorListener loggingErrorListener = new 
LoggingErrorListener(reporter);
  +        loggingErrorListener.setThrowWhen(LoggingErrorListener.THROW_NEVER);
  +        reporter.logTraceMsg("loggingErrorListener originally setup:" + 
loggingErrorListener.getQuickCounters());
  +
  +        TransformerFactory factory = null;
  +        Templates templates = null;
  +        Transformer transformer = null;
  +        DocumentBuilderFactory dfactory = null;
  +        DocumentBuilder docBuilder = null;
  +        Node xmlNode = null;
  +        Node xslNode = null;
  +        try
  +        {
  +            // Startup a DOM factory, create some nodes/DOMs
  +            dfactory = DocumentBuilderFactory.newInstance();
  +            dfactory.setNamespaceAware(true);
  +            docBuilder = dfactory.newDocumentBuilder();
  +            reporter.logInfoMsg("parsing xml, xsl files to DOMs");
  +            xslNode = docBuilder.parse(new 
InputSource(QetestUtils.filenameToURL(testFileInfo.inputName)));
  +            xmlNode = docBuilder.parse(new 
InputSource(QetestUtils.filenameToURL(testFileInfo.xmlName)));
  +
  +            // Create a transformer factory with an error listener
  +            factory = TransformerFactory.newInstance();
  +            factory.setErrorListener(loggingErrorListener);
  +
  +            // Attempt to build templates from known-bad stylesheet
  +            // Validate known errors in stylesheet building 
  +            loggingErrorListener.setExpected(templatesExpectedType, 
  +                                             templatesExpectedValue);
  +            reporter.logTraceMsg("About to factory.newTemplates(DOM:" + 
QetestUtils.filenameToURL(testFileInfo.inputName) + ")");
  +            templates = factory.newTemplates(new DOMSource(xslNode));
  +            reporter.logTraceMsg("loggingErrorListener after newTemplates:" 
+ loggingErrorListener.getQuickCounters());
  +            // Clear out any setExpected or counters
  +            loggingErrorListener.reset();
  +            reporter.checkPass("set ErrorListener prevented any exceptions 
in newTemplates()");
  +
  +            // This stylesheet will still work, even though errors 
  +            //  were detected during it's building.  Note that 
  +            //  future versions of Xalan or other processors may 
  +            //  not be able to continue here...
  +            reporter.logErrorMsg("Bugzilla#1062 throws NPE below at 
templates.newTransformer()");
  +            transformer = templates.newTransformer();
  +
  +            reporter.logTraceMsg("default transformer's getErrorListener is: 
" + transformer.getErrorListener());
  +            // Set the errorListener and validate it
  +            transformer.setErrorListener(loggingErrorListener);
  +            reporter.check((transformer.getErrorListener() == 
loggingErrorListener),
  +                           true, "set/getErrorListener on transformer");
  +
  +            // Validate the first xsl:message call in the stylesheet
  +            loggingErrorListener.setExpected(transformExpectedType, 
  +                                             transformExpectedValue);
  +            reporter.logInfoMsg("about to transform(DOM, StreamResult)");
  +            transformer.transform(new DOMSource(xmlNode), 
  +                                  new StreamResult(outNames.nextName()));
  +            reporter.logTraceMsg("after transform(...)");
  +            // Clear out any setExpected or counters
  +            loggingErrorListener.reset();
  +
  +            // Validate the actual output file as well: in this case, 
  +            //  the stylesheet should still work
  +            fileChecker.check(reporter, 
  +                    new File(outNames.currentName()), 
  +                    new File(testFileInfo.goldName), 
  +                    "DOM transform of error xsl into: " + 
outNames.currentName());
  +            
  +        }
  +        catch (Throwable t)
  +        {
  +            reporter.checkFail("errorListener-DOM unexpectedly threw: " + 
t.toString());
  +            reporter.logThrowable(Logger.ERRORMSG, t, "errorListener-DOM 
unexpectedly threw");
  +        }
  +
  +        reporter.testCaseClose();
  +        return true;
  +    }
   
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to