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/02/12 19:38:16 UTC
cvs commit: xml-xalan/test/tests/bugzilla BugzillaNodeInfo.java BugzillaNodeInfo.xml BugzillaNodeInfo.xsl
curcuru 02/02/12 10:38:16
Added: test/tests/bugzilla BugzillaNodeInfo.java
BugzillaNodeInfo.xml BugzillaNodeInfo.xsl
Log:
Simple test of NodeInfo extension test; not really a bugzilla
test but this is the easiest place to automate it
Revision Changes Path
1.1 xml-xalan/test/tests/bugzilla/BugzillaNodeInfo.java
Index: BugzillaNodeInfo.java
===================================================================
/*
* Covered by The Apache Software License, Version 1.1
* See xml-xalan/License
*/
// Common Qetest / Xalan testing imports
import org.apache.qetest.Datalet;
import org.apache.qetest.Logger;
import org.apache.qetest.TestletImpl;
import org.apache.qetest.CheckService;
import org.apache.qetest.xsl.XHTFileCheckService;
import org.apache.xalan.processor.TransformerFactoryImpl;
import org.apache.xalan.transformer.TransformerImpl;
import org.apache.xalan.transformer.XalanProperties;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
/**
* Custom Testlet for testing NodeInfo extension.
*
* @author shane_curcuru@us.ibm.com
*/
public class BugzillaNodeInfo extends TestletImpl
{
// Initialize our classname for TestletImpl's main() method - must be updated!
static { thisClassName = "BugzillaNodeInfo"; }
/**
* Write Minimal code to reproduce your Bugzilla bug report.
* Many Bugzilla tests won't bother with a datalet; they'll
* just have the data to reproduce the bug encoded by default.
* @param d (optional) Datalet to use as data point for the test.
*/
public void execute(Datalet d)
{
// Use logger.logMsg(...) instead of System.out.println(...)
logger.logMsg(Logger.STATUSMSG, getDescription());
String xslName = "BugzillaNodeInfo.xsl";
String xmlName = "BugzillaNodeInfo.xml";
String outputName = "BugzillaNodeInfo.output";
String goldName = "BugzillaNodeInfo.gold";
try
{
TransformerFactory factory = TransformerFactory.newInstance();
// Must set on both the factory impl..
TransformerFactoryImpl factoryImpl = (TransformerFactoryImpl)factory;
factoryImpl.setAttribute(XalanProperties.SOURCE_LOCATION, Boolean.TRUE);
Transformer transformer = factory.newTransformer(new StreamSource(xslName));
// ..and the transformer impl
TransformerImpl impl = ((TransformerImpl) transformer);
impl.setProperty(XalanProperties.SOURCE_LOCATION, Boolean.TRUE);
transformer.transform(new StreamSource(xmlName),
new StreamResult(outputName));
}
catch (Throwable t)
{
logger.logThrowable(logger.ERRORMSG, t, "Unexpectedly threw");
logger.checkErr("Unexpectedly threw: " + t.toString());
return;
}
// CheckService fileChecker = new XHTFileCheckService();
// fileChecker.check(logger,
// new File(outputName),
// new File(goldName),
// getDescription());
// Since the gold data isn't nailed down yet, do a simple validation
// Just ensure the systemId of the xml file was included somewhere in the file
checkFileContains(outputName, xmlName, "NodeInfo got partial systemID correct");
}
/**
* Checks and reports if a file contains a certain string
* (all within one line).
*
* @param fName local path/name of file to check
* @param checkStr String to look for in the file
* @param comment to log with the check() call
* @return true if pass, false otherwise
*/
protected boolean checkFileContains(String fName, String checkStr,
String comment)
{
boolean passFail = false;
File f = new File(fName);
if (!f.exists())
{
logger.checkFail("checkFileContains(" + fName
+ ") does not exist: " + comment);
return false;
}
try
{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
for (;;)
{
String inbuf = br.readLine();
if (inbuf == null)
break;
if (inbuf.indexOf(checkStr) >= 0)
{
passFail = true;
logger.logMsg(logger.TRACEMSG,
"checkFileContains passes with line: " + inbuf);
break;
}
}
}
catch (IOException ioe)
{
logger.checkFail("checkFileContains(" + fName + ") threw: "
+ ioe.toString() + " for: " + comment);
return false;
}
if (passFail)
{
logger.checkPass(comment);
}
else
{
logger.logMsg(logger.ERRORMSG, "checkFileContains failed to find: " + checkStr);
logger.checkFail(comment);
}
return passFail;
}
/**
* @return Xalan custom extension NodeInfo.
*/
public String getDescription()
{
return "Xalan custom extension NodeInfo";
}
} // end of class BugzillaNodeInfo
1.1 xml-xalan/test/tests/bugzilla/BugzillaNodeInfo.xml
Index: BugzillaNodeInfo.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<!-- NOTE: when editing this file, you may need to update gold line/col values below! -->
<elem line="4" col="29" />
<elem line="5" col="41" multi="true" >
<subelem line="6" col="34" />
</elem>
</doc>
1.1 xml-xalan/test/tests/bugzilla/BugzillaNodeInfo.xsl
Index: BugzillaNodeInfo.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:java="http://xml.apache.org/xslt/java"
xmlns:xalan="http://xml.apache.org/xalan"
exclude-result-prefixes="java">
<!-- FileName: javaNodeInfo01 -->
<!-- Document: http://www.w3.org/TR/xslt -->
<!-- DocVersion: 19991116 -->
<!-- Section: 14 Extensions -->
<!-- Purpose: Testing Xalan custom extension "NodeInfo", implemented in lib/NodeInfo.java. -->
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<xsl:template match="/">
<out>
<xsl:variable name="rtf">
<docelem>
<elem1/>
<elem2>
<elem3>content</elem3>
</elem2>
</docelem>
</xsl:variable>
<global>
<xsl:element name="lineNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.lineNumber()"/>
</xsl:element>
<xsl:element name="columnNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.columnNumber()"/>
</xsl:element>
<xsl:element name="systemId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.systemId()"/>
</xsl:element>
<xsl:element name="publicId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.publicId()"/>
</xsl:element>
</global>
<rtf>
<xsl:element name="lineNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.lineNumber((xalan:nodeset($rtf)))"/>
</xsl:element>
<xsl:element name="columnNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.columnNumber((xalan:nodeset($rtf)))"/>
</xsl:element>
<xsl:element name="systemId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.systemId((xalan:nodeset($rtf)))"/>
</xsl:element>
<xsl:element name="publicId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.publicId((xalan:nodeset($rtf)))"/>
</xsl:element>
</rtf>
<elems>
<xsl:apply-templates />
</elems>
</out>
</xsl:template>
<xsl:template match="elem | subelem">
<elem>
<xsl:element name="lineNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.lineNumber(.)"/>
</xsl:element>
<xsl:element name="columnNumber">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.columnNumber(.)"/>
</xsl:element>
<xsl:element name="systemId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.systemId(.)"/>
</xsl:element>
<xsl:element name="publicId">
<xsl:value-of select="java:org.apache.xalan.lib.NodeInfo.publicId(.)"/>
</xsl:element>
</elem>
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org