You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by cu...@apache.org on 2002/01/14 21:38:29 UTC
cvs commit: xml-xalan/test/java/src/org/apache/qetest/xsl ExtensionTestlet.java
curcuru 02/01/14 12:38:29
Modified: test/java/src/org/apache/qetest/xsl ExtensionTestlet.java
Log:
Simplify, simplify, simplify! Now inherits from StylesheetTestlet and only
overrides needed methods; functionality is identical
Revision Changes Path
1.2 +26 -164 xml-xalan/test/java/src/org/apache/qetest/xsl/ExtensionTestlet.java
Index: ExtensionTestlet.java
===================================================================
RCS file: /home/cvs/xml-xalan/test/java/src/org/apache/qetest/xsl/ExtensionTestlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExtensionTestlet.java 8 Aug 2001 13:29:18 -0000 1.1
+++ ExtensionTestlet.java 14 Jan 2002 20:38:29 -0000 1.2
@@ -68,6 +68,7 @@
import org.apache.qetest.QetestUtils;
import org.apache.qetest.TestletImpl;
import org.apache.qetest.xsl.StylesheetDatalet;
+import org.apache.qetest.xsl.StylesheetTestlet;
import org.apache.qetest.xsl.XHTFileCheckService;
import org.apache.qetest.xslwrapper.TransformWrapper;
import org.apache.qetest.xslwrapper.TransformWrapperFactory;
@@ -88,9 +89,9 @@
* extension classes to verify themselves and log out info.
*
* @author Shane_Curcuru@lotus.com
- * @version $Id: ExtensionTestlet.java,v 1.1 2001/08/08 13:29:18 curcuru Exp $
+ * @version $Id: ExtensionTestlet.java,v 1.2 2002/01/14 20:38:29 curcuru Exp $
*/
-public class ExtensionTestlet extends TestletImpl
+public class ExtensionTestlet extends StylesheetTestlet
{
// Initialize our classname for TestletImpl's main() method
static { thisClassName = "org.apache.qetest.xsl.ExtensionTestlet"; }
@@ -114,76 +115,21 @@
}
- /**
- * Run this ExtensionTestlet: execute it's test and return.
+ /**
+ * Worker method to perform any pre-processing needed.
*
- * @param Datalet to use as data point for the test.
- */
- public void execute(Datalet d)
- {
- // Common: ensure cast to StylesheetDatalet
- StylesheetDatalet datalet = null;
- try
- {
- datalet = (StylesheetDatalet)d;
- }
- catch (ClassCastException e)
- {
- logger.checkErr("Datalet provided is not a StylesheetDatalet; cannot continue with " + d);
- return;
- }
-
- // Common: generic pre-logging
- logger.logMsg(Logger.STATUSMSG, "About to test: "
- + (null == datalet.inputName
- ? datalet.xmlName
- : datalet.inputName));
-
- // Continue if our Datalet is OK, and after we've performed
- // any other pre-transform steps...
- if (preCheck(datalet))
- {
- // ... then just perform a transform ...
- if (doTransform(datalet))
- {
- // ... and if that's OK, then do verification
- postCheck(datalet);
- }
- }
- }
-
-
- /**
- * Perform any pre-transform validation or logging.
* This optionally does deleteOutFile, then attempts to load
* a matching TestableExtension class that matches the datalet's
* stylesheet. If one is found, we call preCheck on that too.
- *
- * @param d datalet to use for testing
+ *
+ * @param datalet to test with
*/
- protected boolean preCheck(StylesheetDatalet datalet)
+ protected void testletInit(StylesheetDatalet datalet)
{
- //@todo validate our Datalet - ensure it has valid
- // and/or existing files available.
+ // Simply grab any superclass functionality first
+ super.testletInit(datalet);
- // Cleanup outName only if asked to - delete the file on disk
- // Optimization: this takes extra time and often is not
- // needed, so only do this if the option is set
- if ("true".equalsIgnoreCase(datalet.options.getProperty("deleteOutFile")))
- {
- try
- {
- boolean btmp = (new File(datalet.outputName)).delete();
- logger.logMsg(Logger.TRACEMSG, "Deleting OutFile of::" + datalet.outputName
- + " status: " + btmp);
- }
- catch (SecurityException se)
- {
- logger.logMsg(Logger.WARNINGMSG, "Deleting OutFile of::" + datalet.outputName
- + " threw: " + se.toString());
- // But continue anyways...
- }
- }
+ // Now do custom initialization for extensions
// See if we have a Java-based extension class
// Side effect: fills in datalet.options
@@ -193,123 +139,39 @@
Class extensionClazz = (Class)datalet.options.get(TESTABLE_EXTENSION);
if (null != extensionClazz)
{
- return invokeMethodOn(extensionClazz, "preCheck", datalet);
+ boolean ignored = invokeMethodOn(extensionClazz, "preCheck", datalet);
}
else
{
logger.logMsg(Logger.TRACEMSG, "No extension class found");
- return true; // This currently isn't fatal; you can
- // still run these tests
}
}
- /**
- * Perform just the transformation itself.
- * This is generic to most testlets and was just copied from
- * the body of StylesheetTestlet.
- *
- * Accesses our class member logger.
- * @param d datalet to use for testing
- */
- protected boolean doTransform(StylesheetDatalet datalet)
- {
- // Just perform the transform and log it; don't verify yet
- TransformWrapper transformWrapper = null;
- try
- {
- transformWrapper = TransformWrapperFactory.newWrapper(datalet.flavor);
- // Set our datalet's options as options in the wrapper
- transformWrapper.newProcessor(datalet.options);
- }
- catch (Throwable t)
- {
- logger.logThrowable(Logger.ERRORMSG, t, getDescription() + " newWrapper/newProcessor threw");
- logger.checkErr(getDescription() + " newWrapper/newProcessor threw: " + t.toString());
- return false;
- }
-
- // Transform our supplied input file
- try
- {
- logger.logMsg(Logger.TRACEMSG, "executing with: inputName=" + datalet.inputName
- + " xmlName=" + datalet.xmlName + " outputName=" + datalet.outputName
- + " goldName=" + datalet.goldName + " flavor=" + datalet.flavor);
-
- // Simply have the wrapper do all the transforming
- // or processing for us - we handle either normal .xsl
- // stylesheet tests or just .xml embedded tests
- long retVal = 0L;
- if (null == datalet.inputName)
- {
- // presume it's an embedded test
- long [] times = transformWrapper.transformEmbedded(datalet.xmlName, datalet.outputName);
- retVal = times[TransformWrapper.IDX_OVERALL];
- }
- else
- {
- // presume it's a normal stylesheet test
- long[] times = transformWrapper.transform(datalet.xmlName, datalet.inputName, datalet.outputName);
- retVal = times[TransformWrapper.IDX_OVERALL];
- }
- return true;
- }
- catch (Throwable t)
- {
- // Put the logThrowable first, so it appears before
- // the Fail record, and gets color-coded
- logger.logThrowable(Logger.ERRORMSG, t, getDescription() + " " + datalet.getDescription());
- logger.checkFail(getDescription() + " " + datalet.getDescription()
- + " threw: " + t.toString());
- return false;
- }
- }
-
-
- /**
- * Perform any post-transform validation or logging.
- *
- * Accesses our class member logger.
- * @param d datalet to use for testing
+ /**
+ * Worker method to validate output file with gold.
+ *
+ * Logs out applicable info while validating output file.
+ * Most commonly will call the underlying TestableExtension's
+ * postCheck method to get validation done.
+ *
+ * @param datalet to test with
+ * @throws allows any underlying exception to be thrown
*/
- protected boolean postCheck(StylesheetDatalet datalet)
+ protected void checkDatalet(StylesheetDatalet datalet)
+ throws Exception
{
// If we have an associated extension class, call postCheck
// If found, ask the class to validate
Class extensionClazz = (Class)datalet.options.get(TESTABLE_EXTENSION);
if (null != extensionClazz)
{
- return invokeMethodOn(extensionClazz, "postCheck", datalet);
+ boolean ignored = invokeMethodOn(extensionClazz, "postCheck", datalet);
}
else
{
- // Simply validate the output files ourselves, as normal
- CheckService fileChecker = (CheckService)datalet.options.get("fileCheckerImpl");
- // Supply default value
- if (null == fileChecker)
- fileChecker = new XHTFileCheckService();
- if (Logger.PASS_RESULT
- != fileChecker.check(logger,
- new File(datalet.outputName),
- new File(datalet.goldName),
- "Extension test of " + datalet.getDescription())
- )
- {
- // Log a custom element with all the file refs first
- // Closely related to viewResults.xsl select='fileref"
- //@todo check that these links are valid when base
- // paths are either relative or absolute!
- Hashtable attrs = new Hashtable();
- attrs.put("idref", (new File(datalet.inputName)).getName());
- attrs.put("inputName", datalet.inputName);
- attrs.put("xmlName", datalet.xmlName);
- attrs.put("outputName", datalet.outputName);
- attrs.put("goldName", datalet.goldName);
- logger.logElement(Logger.STATUSMSG, "fileref", attrs, "Extension test file references");
- }
-
- return true; // This currently isn't fatal; you can
- // still run these tests
+ // Have our parent class do it's own validation
+ super.checkDatalet(datalet);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org