You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2009/02/22 13:40:55 UTC
svn commit: r746664 [8/8] - in /xmlgraphics/fop/trunk: ./
examples/embedding/java/embedding/atxml/
examples/embedding/java/embedding/intermediate/
examples/embedding/xml/xslt/ examples/plan/src/org/apache/fop/plan/ lib/
src/documentation/content/xdocs/...
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java Sun Feb 22 12:40:44 2009
@@ -19,27 +19,21 @@
package org.apache.fop.intermediate;
-import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.OutputStream;
-import java.net.MalformedURLException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.w3c.dom.Document;
+
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
@@ -50,145 +44,35 @@
import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.Renderer;
import org.apache.fop.render.xml.XMLRenderer;
-import org.apache.fop.util.ConsoleEventListenerForTests;
-
-//XML Unit 1.0: See http://xmlunit.sourceforge.net (BSD-style License)
-import org.custommonkey.xmlunit.XMLTestCase;
-import org.w3c.dom.Document;
/**
* Tests the area tree parser.
*/
-public class AreaTreeParserTestCase extends XMLTestCase {
-
- // configure fopFactory as desired
- private static FopFactory fopFactory = FopFactory.newInstance();
-
- private static SAXTransformerFactory tFactory
- = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
- private static Templates stylesheet = null;
-
- private File mainDir = new File("test/layoutengine");
- private File testDir = new File(mainDir, "standard-testcases");
-
- private String name;
- private File testFile;
-
- private File outputDir;
- private Document intermediate;
-
- /** @see junit.framework.TestCase#TestCase(String) */
- public AreaTreeParserTestCase(String name) {
- super(name);
- }
+public class AreaTreeParserTestCase extends AbstractIntermediateTestCase {
/**
* Constructor for the test suite that is used for each test file.
* @param testFile the test file to run
+ * @throws IOException
+ * @throws IOException if an I/O error occurs while loading the test case
*/
- public AreaTreeParserTestCase(File testFile) {
- super(testFile.getName());
- this.testFile = testFile;
- }
-
- private Templates getStylesheet() throws TransformerConfigurationException {
- if (stylesheet == null) {
- File xsltFile = new File(mainDir, "testcase2fo.xsl");
- stylesheet = tFactory.newTemplates(new StreamSource(xsltFile));
- }
- return stylesheet;
- }
-
- /** @see junit.framework.TestCase#setUp() */
- protected void setUp() throws Exception {
- super.setUp();
- String s = System.getProperty("fop.intermediate.outdir");
- if (s != null && s.length() > 0) {
- outputDir = new File(s);
- outputDir.mkdirs();
- }
- File srcFile;
- if (testFile != null) {
- srcFile = testFile;
- } else {
- srcFile = new File(testDir, "block_font-style.xml");
- }
- this.name = srcFile.getName();
- intermediate = buildAreaTreeXML(new StreamSource(srcFile), getStylesheet());
- if (outputDir != null) {
- saveDOM(intermediate, new File(outputDir, name + ".at1.xml"));
- }
- }
-
-
- /**
- * Tests the area tree parser by running the parsed area tree again through the area tree
- * renderer. The source and result documents are compared to each other.
- * @throws Exception if the test fails
- */
- public void testParserToAT() throws Exception {
-
- Source src = new DOMSource(intermediate);
- Document doc = parseAndRenderToAreaTree(src);
- if (outputDir != null) {
- File tgtFile = new File(outputDir, name + ".at2.xml");
- saveDOM(doc, tgtFile);
- }
-
- assertXMLEqual(intermediate, doc);
- }
-
- private void saveDOM(Document doc, File tgtFile) throws Exception {
- Transformer transformer = tFactory.newTransformer();
- Source src = new DOMSource(doc);
- Result res = new StreamResult(tgtFile);
- transformer.transform(src, res);
- }
-
- /**
- * Tests the area tree parser by sending the parsed area tree to the PDF Renderer. Some
- * errors might be caught by the PDFRenderer.
- * @throws Exception if the test fails
- */
- public void testParserToPDF() throws Exception {
- OutputStream out;
- if (outputDir != null) {
- File tgtFile = new File(outputDir, name + ".pdf");
- out = new FileOutputStream(tgtFile);
- out = new BufferedOutputStream(out);
- } else {
- out = new ByteArrayOutputStream();
- }
- try {
- Source src = new DOMSource(intermediate);
- parseAndRender(src, out, MimeConstants.MIME_PDF);
- } finally {
- IOUtils.closeQuietly(out);
- }
+ public AreaTreeParserTestCase(File testFile) throws IOException {
+ super(testFile);
}
- private FOUserAgent createUserAgent() {
- FOUserAgent userAgent = fopFactory.newFOUserAgent();
- try {
- userAgent.setBaseURL(testDir.toURL().toExternalForm());
- userAgent.getEventBroadcaster().addEventListener(
- new ConsoleEventListenerForTests(testFile.getName()));
- } catch (MalformedURLException e) {
- //ignore, won't happen
- }
- return userAgent;
+ /** {@inheritDoc} */
+ protected String getIntermediateFileExtension() {
+ return ".at.xml";
}
- private Document buildAreaTreeXML(Source src, Templates stylesheet) throws Exception {
- Transformer transformer;
- if (stylesheet != null) {
- transformer = stylesheet.newTransformer();
- } else {
- transformer = tFactory.newTransformer();
- }
+ /** {@inheritDoc} */
+ protected Document buildIntermediateDocument(Templates templates)
+ throws Exception {
+ Transformer transformer = templates.newTransformer();
+ setErrorListener(transformer);
//Set up XMLRenderer to render to a DOM
- TransformerHandler handler = tFactory.newTransformerHandler();
+ TransformerHandler handler = env.getTransformerFactory().newTransformerHandler();
DOMResult domResult = new DOMResult();
handler.setResult(domResult);
@@ -196,7 +80,7 @@
//Create an instance of the target renderer so the XMLRenderer can use its font setup
Renderer targetRenderer = userAgent.getRendererFactory().createRenderer(
- userAgent, MimeConstants.MIME_PDF);
+ userAgent, getTargetMIME());
XMLRenderer renderer = new XMLRenderer();
renderer.mimicRenderer(targetRenderer);
@@ -207,27 +91,29 @@
Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE, userAgent);
Result res = new SAXResult(fop.getDefaultHandler());
- transformer.transform(src, res);
+ transformer.transform(new DOMSource(testDoc), res);
return (Document)domResult.getNode();
}
- private void parseAndRender(Source src, OutputStream out, String mime) throws Exception {
+ /** {@inheritDoc} */
+ protected void parseAndRender(Source src, OutputStream out) throws Exception {
AreaTreeParser parser = new AreaTreeParser();
FOUserAgent userAgent = createUserAgent();
FontInfo fontInfo = new FontInfo();
AreaTreeModel treeModel = new RenderPagesModel(userAgent,
- mime, fontInfo, out);
+ getTargetMIME(), fontInfo, out);
parser.parse(src, treeModel, userAgent);
treeModel.endDocument();
}
- private Document parseAndRenderToAreaTree(Source src) throws Exception {
+ /** {@inheritDoc} */
+ protected Document parseAndRenderToIntermediateFormat(Source src) throws Exception {
AreaTreeParser parser = new AreaTreeParser();
//Set up XMLRenderer to render to a DOM
- TransformerHandler handler = tFactory.newTransformerHandler();
+ TransformerHandler handler = env.getTransformerFactory().newTransformerHandler();
DOMResult domResult = new DOMResult();
handler.setResult(domResult);
XMLRenderer renderer = new XMLRenderer();
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Feb 22 12:40:44 2009
@@ -0,0 +1,2 @@
+/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java:603620-746655
+/xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java:603620-677588
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IFParserTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IFParserTestCase.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IFParserTestCase.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Feb 22 12:40:44 2009
@@ -0,0 +1,2 @@
+/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign/test/java/org/apache/fop/intermediate/IFParserTestCase.java:603620-746655
+/xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java:603620-677588
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java Sun Feb 22 12:40:44 2009
@@ -46,18 +46,18 @@
Iterator i = files.iterator();
while (i.hasNext()) {
File f = (File)i.next();
- addTestCase(suite, f);
+ addIFTestCase(suite, f);
}
return suite;
}
- private static void addTestCase(TestSuite suite,
- final File f) {
- suite.addTest(new AreaTreeParserTestCase(f) {
+ private static void addIFTestCase(TestSuite suite,
+ final File f) throws IOException {
+ suite.addTest(new IFParserTestCase(f) {
public void runTest() throws Exception {
try {
- testParserToAT();
+ testParserToIntermediateFormat();
testParserToPDF();
} catch (Exception e) {
org.apache.commons.logging.LogFactory.getLog(
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/EvalCheck.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/EvalCheck.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/EvalCheck.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/EvalCheck.java Sun Feb 22 12:40:44 2009
@@ -21,16 +21,20 @@
import javax.xml.transform.TransformerException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
import org.apache.xml.utils.PrefixResolver;
import org.apache.xml.utils.PrefixResolverDefault;
import org.apache.xpath.XPathAPI;
import org.apache.xpath.objects.XObject;
-import org.w3c.dom.Node;
+
+import org.apache.fop.intermediate.IFCheck;
/**
* Simple check that requires an XPath expression to evaluate to true.
*/
-public class EvalCheck implements LayoutEngineCheck {
+public class EvalCheck implements LayoutEngineCheck, IFCheck {
private String expected;
private String xpath;
@@ -61,11 +65,20 @@
this.prefixResolver = new PrefixResolverDefault(node);
}
- /** @see org.apache.fop.layoutengine.LayoutEngineCheck */
+ /** {@inheritDoc} */
public void check(LayoutResult result) {
+ doCheck(result.getAreaTree());
+ }
+
+ /** {@inheritDoc} */
+ public void check(Document intermediate) {
+ doCheck(intermediate);
+ }
+
+ private void doCheck(Document doc) {
XObject res;
try {
- res = XPathAPI.eval(result.getAreaTree(), xpath, prefixResolver);
+ res = XPathAPI.eval(doc, xpath, prefixResolver);
} catch (TransformerException e) {
throw new RuntimeException("XPath evaluation failed: " + e.getMessage());
}
@@ -87,7 +100,7 @@
}
}
- /** @see java.lang.Object#toString() */
+ /** {@inheritDoc} */
public String toString() {
return "XPath: " + xpath;
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTester.java Sun Feb 22 12:40:44 2009
@@ -26,21 +26,14 @@
import java.util.List;
import java.util.Map;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Result;
import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.Document;
@@ -50,13 +43,12 @@
import org.xml.sax.SAXException;
-import org.apache.xpath.XPathAPI;
-import org.apache.xpath.objects.XObject;
-
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.FormattingResults;
+import org.apache.fop.events.model.EventSeverity;
+import org.apache.fop.intermediate.IFTester;
import org.apache.fop.layoutmgr.ElementListObserver;
import org.apache.fop.render.xml.XMLRenderer;
import org.apache.fop.util.ConsoleEventListenerForTests;
@@ -67,25 +59,18 @@
*/
public class LayoutEngineTester {
- private static final Map CHECK_CLASSES = new java.util.HashMap();
-
- // configure fopFactory as desired
- private FopFactory fopFactory = FopFactory.newInstance();
- private FopFactory fopFactoryWithBase14Kerning = FopFactory.newInstance();
+ private static final Map AT_CHECK_CLASSES = new java.util.HashMap();
- private SAXTransformerFactory tfactory
- = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
-
- private Templates testcase2fo;
- private Templates testcase2checks;
+ private TestEnvironment env = new TestEnvironment();
private File areaTreeBackupDir;
+ private IFTester ifTester;
static {
- CHECK_CLASSES.put("true", TrueCheck.class);
- CHECK_CLASSES.put("eval", EvalCheck.class);
- CHECK_CLASSES.put("element-list", ElementListCheck.class);
- CHECK_CLASSES.put("result", ResultCheck.class);
+ AT_CHECK_CLASSES.put("true", TrueCheck.class);
+ AT_CHECK_CLASSES.put("eval", EvalCheck.class);
+ AT_CHECK_CLASSES.put("element-list", ElementListCheck.class);
+ AT_CHECK_CLASSES.put("result", ResultCheck.class);
}
/**
@@ -95,26 +80,7 @@
*/
public LayoutEngineTester(File areaTreeBackupDir) {
this.areaTreeBackupDir = areaTreeBackupDir;
- fopFactory.getFontManager().setBase14KerningEnabled(false);
- fopFactoryWithBase14Kerning.getFontManager().setBase14KerningEnabled(true);
- }
-
- private Templates getTestcase2FOStylesheet() throws TransformerConfigurationException {
- if (testcase2fo == null) {
- //Load and cache stylesheet
- Source src = new StreamSource(new File("test/layoutengine/testcase2fo.xsl"));
- testcase2fo = tfactory.newTemplates(src);
- }
- return testcase2fo;
- }
-
- private Templates getTestcase2ChecksStylesheet() throws TransformerConfigurationException {
- if (testcase2checks == null) {
- //Load and cache stylesheet
- Source src = new StreamSource(new File("test/layoutengine/testcase2checks.xsl"));
- testcase2checks = tfactory.newTemplates(src);
- }
- return testcase2checks;
+ this.ifTester = new IFTester(areaTreeBackupDir);
}
/**
@@ -136,30 +102,23 @@
Fop fop;
try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setNamespaceAware(true);
- dbf.setValidating(false);
- DocumentBuilder builder = dbf.newDocumentBuilder();
- Document testDoc = builder.parse(testFile);
-
- XObject xo = XPathAPI.eval(testDoc, "/testcase/cfg/base14kerning");
- String s = xo.str();
- boolean base14kerning = ("true".equalsIgnoreCase(s));
- FopFactory effFactory = (base14kerning ? fopFactoryWithBase14Kerning : fopFactory);
+ Document testDoc = env.loadTestCase(testFile);
+ FopFactory effFactory = env.getFopFactory(testDoc);
//Setup Transformer to convert the testcase XML to XSL-FO
- Transformer transformer = getTestcase2FOStylesheet().newTransformer();
+ Transformer transformer = env.getTestcase2FOStylesheet().newTransformer();
Source src = new DOMSource(testDoc);
//Setup Transformer to convert the area tree to a DOM
- TransformerHandler athandler = tfactory.newTransformerHandler();
+ TransformerHandler athandler;
+ athandler = env.getTransformerFactory().newTransformerHandler();
athandler.setResult(domres);
//Setup FOP for area tree rendering
FOUserAgent ua = effFactory.newFOUserAgent();
ua.setBaseURL(testFile.getParentFile().toURL().toString());
ua.getEventBroadcaster().addEventListener(
- new ConsoleEventListenerForTests(testFile.getName()));
+ new ConsoleEventListenerForTests(testFile.getName(), EventSeverity.WARN));
XMLRenderer atrenderer = new XMLRenderer();
atrenderer.setUserAgent(ua);
@@ -175,7 +134,8 @@
Document doc = (Document)domres.getNode();
if (this.areaTreeBackupDir != null) {
- saveAreaTreeXML(doc, new File(this.areaTreeBackupDir, testFile.getName() + ".at.xml"));
+ env.saveDOM(doc,
+ new File(this.areaTreeBackupDir, testFile.getName() + ".at.xml"));
}
FormattingResults results = fop.getResults();
LayoutResult result = new LayoutResult(doc, elCollector, results);
@@ -183,13 +143,13 @@
}
/**
- * Factory method to create checks from DOM elements.
+ * Factory method to create AT checks from DOM elements.
* @param el DOM element to create the check from
* @return The newly create check
*/
- protected LayoutEngineCheck createCheck(Element el) {
+ protected LayoutEngineCheck createATCheck(Element el) {
String name = el.getTagName();
- Class clazz = (Class)CHECK_CLASSES.get(name);
+ Class clazz = (Class)AT_CHECK_CLASSES.get(name);
if (clazz != null) {
try {
Constructor c = clazz.getDeclaredConstructor(new Class[] {Node.class});
@@ -204,31 +164,58 @@
}
}
+
/**
- * Perform all checks on the area tree.
+ * Perform all checks on the area tree and, optionally, on the intermediate format.
* @param testFile Test case XML file
* @param result The layout results
* @throws TransformerException if a problem occurs in XSLT/JAXP
*/
protected void checkAll(File testFile, LayoutResult result) throws TransformerException {
- Transformer transformer = getTestcase2ChecksStylesheet().newTransformer();
+ Transformer transformer = env.getTestcase2ChecksStylesheet().newTransformer();
Source src = new StreamSource(testFile);
DOMResult res = new DOMResult();
transformer.transform(src, res);
- List checks = new java.util.ArrayList();
Document doc = (Document)res.getNode();
- NodeList nodes = doc.getDocumentElement().getChildNodes();
+ Element root = doc.getDocumentElement();
+
+ NodeList nodes;
+ //AT tests only when checks are available
+ nodes = root.getElementsByTagName("at-checks");
+ if (nodes.getLength() > 0) {
+ Element atChecks = (Element)nodes.item(0);
+ doATChecks(atChecks, result);
+ }
+
+ //IF tests only when checks are available
+ nodes = root.getElementsByTagName("if-checks");
+ if (nodes.getLength() > 0) {
+ Element ifChecks = (Element)nodes.item(0);
+ ifTester.doIFChecks(testFile, ifChecks, result.getAreaTree());
+ }
+ }
+
+ private void doATChecks(Element checksRoot, LayoutResult result) {
+ //First create check before actually running them
+ List checks = new java.util.ArrayList();
+ NodeList nodes = checksRoot.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node instanceof Element) {
- checks.add(createCheck((Element)node));
+ checks.add(createATCheck((Element)node));
}
}
if (checks.size() == 0) {
throw new RuntimeException("No checks are available!");
}
+
+ //Run the actual tests now that we know that the checks themselves are ok
+ doATChecks(checks, result);
+ }
+
+ private void doATChecks(List checks, LayoutResult result) {
Iterator i = checks.iterator();
while (i.hasNext()) {
LayoutEngineCheck check = (LayoutEngineCheck)i.next();
@@ -236,16 +223,4 @@
}
}
- /**
- * Save the area tree XML for later inspection.
- * @param doc area tree as a DOM document
- * @param target target file
- * @throws TransformerException if a problem occurs during serialization
- */
- protected void saveAreaTreeXML(Document doc, File target) throws TransformerException {
- Transformer transformer = tfactory.newTransformer();
- Source src = new DOMSource(doc);
- Result res = new StreamResult(target);
- transformer.transform(src, res);
- }
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/TrueCheck.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/TrueCheck.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/TrueCheck.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/TrueCheck.java Sun Feb 22 12:40:44 2009
@@ -21,17 +21,21 @@
import javax.xml.transform.TransformerException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
import org.apache.xml.utils.PrefixResolver;
import org.apache.xml.utils.PrefixResolverDefault;
import org.apache.xpath.XPathAPI;
import org.apache.xpath.objects.XBoolean;
import org.apache.xpath.objects.XObject;
-import org.w3c.dom.Node;
+
+import org.apache.fop.intermediate.IFCheck;
/**
* Simple check that requires an XPath expression to evaluate to true.
*/
-public class TrueCheck implements LayoutEngineCheck {
+public class TrueCheck implements LayoutEngineCheck, IFCheck {
private String xpath;
private String failureMessage;
@@ -58,11 +62,20 @@
this.prefixResolver = new PrefixResolverDefault(node);
}
- /** @see org.apache.fop.layoutengine.LayoutEngineCheck */
+ /** {@inheritDoc} */
public void check(LayoutResult result) {
+ doCheck(result.getAreaTree());
+ }
+
+ /** {@inheritDoc} */
+ public void check(Document intermediate) {
+ doCheck(intermediate);
+ }
+
+ private void doCheck(Document doc) {
XObject res;
try {
- res = XPathAPI.eval(result.getAreaTree(), xpath, prefixResolver);
+ res = XPathAPI.eval(doc, xpath, prefixResolver);
} catch (TransformerException e) {
throw new RuntimeException("XPath evaluation failed: " + e.getMessage());
}
@@ -78,7 +91,7 @@
}
- /** @see java.lang.Object#toString() */
+ /** {@inheritDoc} */
public String toString() {
return "XPath: " + xpath;
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/pdf/PDFObjectTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/pdf/PDFObjectTestCase.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/pdf/PDFObjectTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/pdf/PDFObjectTestCase.java Sun Feb 22 12:40:44 2009
@@ -56,4 +56,22 @@
}
+ /**
+ * Tests PDF object references.
+ * @throws Exception if an error occurs
+ */
+ public void testReference() throws Exception {
+ PDFDictionary dict = new PDFDictionary();
+ dict.setObjectNumber(7);
+ PDFReference ref = dict.makeReference();
+ assertEquals(ref.getObjectNumber(), 7);
+ assertEquals(ref.getGeneration(), 0);
+ assertEquals(ref.toString(), "7 0 R");
+
+ ref = new PDFReference("8 0 R");
+ assertEquals(ref.getObjectNumber(), 8);
+ assertEquals(ref.getGeneration(), 0);
+ assertEquals(ref.toString(), "8 0 R");
+ }
+
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/util/ConsoleEventListenerForTests.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/util/ConsoleEventListenerForTests.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/util/ConsoleEventListenerForTests.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/util/ConsoleEventListenerForTests.java Sun Feb 22 12:40:44 2009
@@ -28,29 +28,62 @@
public class ConsoleEventListenerForTests implements EventListener {
private String name;
+ private EventSeverity logLevel;
+ /**
+ * Creates a new event listener with console output on severity INFO. This object will
+ * write out the name of the test before the first log message.
+ * @param name the name of the test
+ */
public ConsoleEventListenerForTests(String name) {
+ this(name, EventSeverity.INFO);
+ }
+
+ /**
+ * Creates a new event listener with console output. This object will
+ * write out the name of the test before the first log message.
+ * @param name the name of the test
+ * @param logLevel the logging level
+ */
+ public ConsoleEventListenerForTests(String name, EventSeverity logLevel) {
this.name = name;
+ this.logLevel = logLevel;
}
/** {@inheritDoc} */
public void processEvent(Event event) {
+ EventSeverity severity = event.getSeverity();
+ if (severity == EventSeverity.FATAL) {
+ log("FATAL", event);
+ return;
+ }
+ if (logLevel == EventSeverity.FATAL) {
+ return;
+ }
+ if (severity == EventSeverity.ERROR) {
+ log("ERROR", event);
+ return;
+ }
+ if (logLevel == EventSeverity.ERROR) {
+ return;
+ }
+ if (severity == EventSeverity.WARN) {
+ log("WARN ", event);
+ }
+ if (logLevel == EventSeverity.WARN) {
+ return;
+ }
+ if (severity == EventSeverity.INFO) {
+ log("INFO ", event);
+ }
+ }
+
+ private void log(String levelString, Event event) {
if (this.name != null) {
System.out.println("Test: " + this.name);
this.name = null;
}
String msg = EventFormatter.format(event);
- EventSeverity severity = event.getSeverity();
- if (severity == EventSeverity.INFO) {
- System.out.println(" [INFO ] " + msg);
- } else if (severity == EventSeverity.WARN) {
- System.out.println(" [WARN ] " + msg);
- } else if (severity == EventSeverity.ERROR) {
- System.out.println(" [ERROR] " + msg);
- } else if (severity == EventSeverity.FATAL) {
- System.out.println(" [FATAL] " + msg);
- } else {
- assert false;
- }
+ System.out.println(" [" + levelString + "] " + msg);
}
}
\ No newline at end of file
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/AbstractPSPDFBitmapProducer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/AbstractPSPDFBitmapProducer.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/AbstractPSPDFBitmapProducer.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/AbstractPSPDFBitmapProducer.java Sun Feb 22 12:40:44 2009
@@ -35,9 +35,11 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.commons.io.IOUtils;
+
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
+import org.apache.fop.util.DefaultErrorListener;
/**
* BitmapProducer implementation that uses the PS or PDF renderer and an external converter
@@ -70,11 +72,16 @@
private String converter;
private boolean deleteTempFiles;
+ /** the bitmap producer's target format */
+ protected String targetFormat;
- /** @see org.apache.avalon.framework.configuration.Configurable */
+ /** {@inheritDoc} */
public void configure(Configuration cfg) throws ConfigurationException {
this.converter = cfg.getChild("converter").getValue();
this.deleteTempFiles = cfg.getChild("delete-temp-files").getValueAsBoolean(true);
+ if (cfg.getChild("target-format", false) != null) {
+ this.targetFormat = cfg.getChild("target-format").getValue();
+ }
}
/**
@@ -106,19 +113,21 @@
/**
* @return the output format for the FOP renderer, i.e. a MIME type.
*/
- protected abstract String getTargetFormat();
+ protected String getTargetFormat() {
+ return this.targetFormat;
+ }
- /** @see org.apache.fop.visual.BitmapProducer */
- public BufferedImage produce(File src, ProducerContext context) {
+ /** {@inheritDoc} */
+ public BufferedImage produce(File src, int index, ProducerContext context) {
try {
FOUserAgent userAgent = fopFactory.newFOUserAgent();
userAgent.setTargetResolution(context.getTargetResolution());
userAgent.setBaseURL(src.getParentFile().toURL().toString());
File tempOut = new File(context.getTargetDir(),
- src.getName() + "." + getTargetExtension());
+ src.getName() + "." + index + "." + getTargetExtension());
File tempPNG = new File(context.getTargetDir(),
- src.getName() + "." + getTargetExtension() + ".png");
+ src.getName() + "." + index + "." + getTargetExtension() + ".png");
try {
OutputStream out = new FileOutputStream(tempOut);
out = new BufferedOutputStream(out);
@@ -127,6 +136,7 @@
SAXResult res = new SAXResult(fop.getDefaultHandler());
Transformer transformer = getTransformer(context);
+ transformer.setErrorListener(new DefaultErrorListener(log));
transformer.transform(new StreamSource(src), res);
} finally {
IOUtils.closeQuietly(out);
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BatchDiffer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BatchDiffer.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BatchDiffer.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BatchDiffer.java Sun Feb 22 12:40:44 2009
@@ -35,8 +35,10 @@
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
+import org.apache.commons.io.filefilter.WildcardFileFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -164,6 +166,14 @@
if (cfg.getChild("filter-disabled").getValueAsBoolean(true)) {
filter = LayoutEngineTestSuite.decorateWithDisabledList(filter);
}
+ String manualFilter = cfg.getChild("manual-filter").getValue(null);
+ if (manualFilter != null) {
+ if (manualFilter.indexOf('*') < 0) {
+ manualFilter = manualFilter + '*';
+ }
+ filter = new AndFileFilter(
+ new WildcardFileFilter(manualFilter), filter);
+ }
int maxfiles = cfg.getChild("max-files").getValueAsInteger(-1);
Collection files = FileUtils.listFiles(srcDir, filter, null);
@@ -176,7 +186,7 @@
final BufferedImage[] bitmaps = new BufferedImage[producers.length];
for (int j = 0; j < producers.length; j++) {
times[j] = System.currentTimeMillis();
- bitmaps[j] = producers[j].produce(f, context);
+ bitmaps[j] = producers[j].produce(f, j, context);
times[j] = System.currentTimeMillis() - times[j];
}
if (log.isDebugEnabled()) {
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducer.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducer.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducer.java Sun Feb 22 12:40:44 2009
@@ -31,9 +31,10 @@
* Produces a BufferedImage from the source file by invoking the FO processor and
* converting the generated output file to a bitmap image if necessary.
* @param src the source FO or XML file
+ * @param index the index of the producer inside the test set
* @param context context information for the conversion
* @return the generated BufferedImage
*/
- BufferedImage produce(File src, ProducerContext context);
+ BufferedImage produce(File src, int index, ProducerContext context);
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerJava2D.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerJava2D.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerJava2D.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerJava2D.java Sun Feb 22 12:40:44 2009
@@ -33,10 +33,12 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.commons.io.IOUtils;
+
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.util.DefaultErrorListener;
/**
* BitmapProducer implementation that uses the Java2DRenderer to create bitmaps.
@@ -64,13 +66,14 @@
}
/** @see org.apache.fop.visual.BitmapProducer */
- public BufferedImage produce(File src, ProducerContext context) {
+ public BufferedImage produce(File src, int index, ProducerContext context) {
try {
FOUserAgent userAgent = fopFactory.newFOUserAgent();
userAgent.setTargetResolution(context.getTargetResolution());
userAgent.setBaseURL(src.getParentFile().toURL().toString());
- File outputFile = new File(context.getTargetDir(), src.getName() + ".java2d.png");
+ File outputFile = new File(context.getTargetDir(),
+ src.getName() + "." + index + ".java2d.png");
OutputStream out = new FileOutputStream(outputFile);
out = new BufferedOutputStream(out);
try {
@@ -78,6 +81,7 @@
SAXResult res = new SAXResult(fop.getDefaultHandler());
Transformer transformer = getTransformer(context);
+ transformer.setErrorListener(new DefaultErrorListener(log));
transformer.transform(new StreamSource(src), res);
} finally {
IOUtils.closeQuietly(out);
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPDF.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPDF.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPDF.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPDF.java Sun Feb 22 12:40:44 2009
@@ -29,14 +29,16 @@
*/
public class BitmapProducerPDF extends AbstractPSPDFBitmapProducer {
- /** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetExtension() */
- protected String getTargetExtension() {
- return "pdf";
+ /**
+ * Default constructor.
+ */
+ public BitmapProducerPDF() {
+ this.targetFormat = MimeConstants.MIME_PDF;
}
- /** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetFormat() */
- protected String getTargetFormat() {
- return MimeConstants.MIME_PDF;
+ /** {@inheritDoc} */
+ protected String getTargetExtension() {
+ return "pdf";
}
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPS.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPS.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPS.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/BitmapProducerPS.java Sun Feb 22 12:40:44 2009
@@ -29,15 +29,16 @@
*/
public class BitmapProducerPS extends AbstractPSPDFBitmapProducer {
- /** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetExtension() */
- protected String getTargetExtension() {
- return "ps";
+ /**
+ * Default constructor.
+ */
+ public BitmapProducerPS() {
+ this.targetFormat = MimeConstants.MIME_POSTSCRIPT;
}
- /** @see org.apache.fop.visual.AbstractPSPDFBitmapProducer#getTargetFormat() */
- protected String getTargetFormat() {
- return MimeConstants.MIME_POSTSCRIPT;
+ /** {@inheritDoc} */
+ protected String getTargetExtension() {
+ return "ps";
}
-
}
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/ReferenceBitmapLoader.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/ReferenceBitmapLoader.java?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/ReferenceBitmapLoader.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/visual/ReferenceBitmapLoader.java Sun Feb 22 12:40:44 2009
@@ -51,7 +51,7 @@
}
/** @see org.apache.fop.visual.BitmapProducer */
- public BufferedImage produce(File src, ProducerContext context) {
+ public BufferedImage produce(File src, int index, ProducerContext context) {
try {
File bitmap = new File(bitmapDirectory, src.getName() + ".png");
if (bitmap.exists()) {
Modified: xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/disabled-testcases.xml Sun Feb 22 12:40:44 2009
@@ -216,11 +216,4 @@
<description>A soft hyphen should be a preferred as break compared to a
normal hyphenation point but is not.</description>
</testcase>
- <testcase>
- <name>Borders and padding on page regions</name>
- <file>simple-page-master_borders_padding.xml</file>
- <description>Borders and padding on regions are now implemented but
- relaxed validation must be switched on, otherwise there is a validation
- exception.</description>
- </testcase>
</disabled-testcases>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_background-image.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_background-image.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_background-image.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/basic-link_background-image.xml Sun Feb 22 12:40:44 2009
@@ -46,4 +46,9 @@
<eval expected="88800" xpath="//flow/block/lineArea/inlineparent/@bpd"/>
<eval expected="color=#ffff00,url=../../resources/images/bgimg300dpi.jpg,repeat=no-repeat,horiz=75648,vertical=21360" xpath="//flow/block/lineArea/inlineparent/@background"/>
</checks>
+ <if-checks xmlns:n="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
+ <eval expected="page-trailer" xpath="local-name(//n:link/..)"/>
+ <eval expected="39336 1650 197376 88800" xpath="//n:link/@rect"/>
+ <eval expected="http://xmlgraphics.apache.org/fop" xpath="//n:link/n:goto-uri/@uri"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_letter-spacing.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_letter-spacing.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_letter-spacing.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/block_letter-spacing.xml Sun Feb 22 12:40:44 2009
@@ -62,4 +62,32 @@
<eval expected="2000" xpath="//flow/block[8]/lineArea[3]/text/@tlsadjust"/>
<eval expected="2000" xpath="//flow/block[8]/lineArea[4]/text/@tlsadjust"/>
</checks>
+ <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+ <eval expected="Default space between characters is defined to be 0pt, i.e.," xpath="//if:text[2]"/>
+ <eval expected="0" xpath="//if:text[2]/@x"/>
+ <eval expected="24666" xpath="//if:text[2]/@y"/>
+ <true xpath="not(//if:text[2]/@dx)"/>
+
+ <eval expected="Default space between characters is defined to" xpath="//if:text[14]"/>
+ <eval expected="0" xpath="//if:text[14]/@x"/>
+ <eval expected="197466" xpath="//if:text[14]/@y"/>
+ <eval expected="2000" xpath="//if:text[14]/@letter-spacing"/>
+ <true xpath="not(//if:text[14]/@word-spacing)"/>
+ <true xpath="not(//if:text[14]/@dx)"/>
+
+ <eval expected="Default space between characters is defined to be" xpath="//if:text[20]"/>
+ <eval expected="0" xpath="//if:text[20]/@x"/>
+ <eval expected="283866" xpath="//if:text[20]/@y"/>
+ <eval expected="1938" xpath="//if:text[20]/@letter-spacing"/>
+ <eval expected="-40" xpath="//if:text[20]/@word-spacing"/>
+ <true xpath="not(//if:text[20]/@dx)"/>
+
+ <eval expected="2000" xpath="//if:text[21]/@letter-spacing"/>
+ <true xpath="not(//if:text[21]/@word-spacing)"/>
+ <true xpath="not(//if:text[21]/@dx)"/>
+
+ <eval expected="1364" xpath="//if:text[22]/@letter-spacing"/>
+ <eval expected="-362" xpath="//if:text[22]/@word-spacing"/>
+ <true xpath="not(//if:text[22]/@dx)"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_1.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_1.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_1.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bookmarks_1.xml Sun Feb 22 12:40:44 2009
@@ -43,6 +43,9 @@
<fo:bookmark-title>Section 2</fo:bookmark-title>
</fo:bookmark>
</fo:bookmark>
+ <fo:bookmark internal-destination="bc">
+ <fo:bookmark-title>Fixed Block Container</fo:bookmark-title>
+ </fo:bookmark>
</fo:bookmark-tree>
<fo:page-sequence id="page-sequence" master-reference="normal" white-space-collapse="true">
<fo:flow flow-name="xsl-region-body">
@@ -54,6 +57,11 @@
<fo:block>Blah blah bla.</fo:block>
<fo:block id="chapter2-sec2" font-weight="bold">Section 2</fo:block>
<fo:block>Blah blah bla.</fo:block>
+ <fo:block-container absolute-position="fixed" left="3in" top="3in" width="1.5in" height="1in">
+ <fo:block id="bc">
+ Text in a block-container.
+ </fo:block>
+ </fo:block-container>"
</fo:flow>
</fo:page-sequence>
</fo:root>
@@ -73,6 +81,30 @@
<eval expected="(P2,chapter2)" xpath="//bookmarkTree/bookmark[2]/@internal-link"/>
<eval expected="(P2,chapter2-sec1)" xpath="//bookmarkTree/bookmark[2]/bookmark[1]/@internal-link"/>
<eval expected="(P2,chapter2-sec2)" xpath="//bookmarkTree/bookmark[2]/bookmark[2]/@internal-link"/>
-
</checks>
+ <if-checks xmlns:n="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
+ <eval expected="show" xpath="//n:bookmark-tree/n:bookmark[1]/@starting-state"/>
+ <eval expected="Chapter 1" xpath="//n:bookmark-tree/n:bookmark[1]/@title"/>
+ <eval expected="0" xpath="//n:bookmark-tree/n:bookmark[1]/n:goto-xy/@page-index"/>
+ <eval expected="20000" xpath="//n:bookmark-tree/n:bookmark[1]/n:goto-xy/@x"/>
+ <eval expected="20000" xpath="//n:bookmark-tree/n:bookmark[1]/n:goto-xy/@y"/>
+
+ <eval expected="hide" xpath="//n:bookmark-tree/n:bookmark[2]/@starting-state"/>
+ <eval expected="Chapter 2" xpath="//n:bookmark-tree/n:bookmark[2]/@title"/>
+ <eval expected="1" xpath="//n:bookmark-tree/n:bookmark[2]/n:goto-xy/@page-index"/>
+ <eval expected="20000" xpath="//n:bookmark-tree/n:bookmark[2]/n:goto-xy/@x"/>
+ <eval expected="20000" xpath="//n:bookmark-tree/n:bookmark[2]/n:goto-xy/@y"/>
+
+ <eval expected="show" xpath="//n:bookmark-tree/n:bookmark[2]/n:bookmark[1]/@starting-state"/>
+ <eval expected="Section 1" xpath="//n:bookmark-tree/n:bookmark[2]/n:bookmark[1]/@title"/>
+ <eval expected="1" xpath="//n:bookmark-tree/n:bookmark[2]/n:bookmark[1]/n:goto-xy/@page-index"/>
+ <eval expected="20000" xpath="//n:bookmark-tree/n:bookmark[2]/n:bookmark[1]/n:goto-xy/@x"/>
+ <eval expected="51680" xpath="//n:bookmark-tree/n:bookmark[2]/n:bookmark[1]/n:goto-xy/@y"/>
+
+ <eval expected="show" xpath="//n:bookmark-tree/n:bookmark[3]/@starting-state"/>
+ <eval expected="Fixed Block Container" xpath="//n:bookmark-tree/n:bookmark[3]/@title"/>
+ <eval expected="1" xpath="//n:bookmark-tree/n:bookmark[3]/n:goto-xy/@page-index"/>
+ <eval expected="216000" xpath="//n:bookmark-tree/n:bookmark[3]/n:goto-xy/@x"/>
+ <eval expected="216000" xpath="//n:bookmark-tree/n:bookmark[3]/n:goto-xy/@y"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_destination_1.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_destination_1.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_destination_1.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/fox_destination_1.xml Sun Feb 22 12:40:44 2009
@@ -58,4 +58,21 @@
<eval expected="(P2,chapter2-sec1)" xpath="//destination[3]/@internal-link"/>
<eval expected="(P2,chapter2-sec2)" xpath="//destination[4]/@internal-link"/>
</checks>
+ <if-checks xmlns:n="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
+ <eval expected="0" xpath="//n:named-destination[@name='chapter1']/n:goto-xy/@page-index"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter1']/n:goto-xy/@x"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter1']/n:goto-xy/@y"/>
+
+ <eval expected="1" xpath="//n:named-destination[@name='chapter2']/n:goto-xy/@page-index"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter2']/n:goto-xy/@x"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter2']/n:goto-xy/@y"/>
+
+ <eval expected="1" xpath="//n:named-destination[@name='chapter2-sec1']/n:goto-xy/@page-index"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter2-sec1']/n:goto-xy/@x"/>
+ <eval expected="31680" xpath="//n:named-destination[@name='chapter2-sec1']/n:goto-xy/@y"/>
+
+ <eval expected="1" xpath="//n:named-destination[@name='chapter2-sec2']/n:goto-xy/@page-index"/>
+ <eval expected="0" xpath="//n:named-destination[@name='chapter2-sec2']/n:goto-xy/@x"/>
+ <eval expected="60480" xpath="//n:named-destination[@name='chapter2-sec2']/n:goto-xy/@y"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/kerning_1_on.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/kerning_1_on.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/kerning_1_on.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/kerning_1_on.xml Sun Feb 22 12:40:44 2009
@@ -40,6 +40,12 @@
<fo:block letter-spacing="1pt">
<fo:block><fo:inline>VAVAV</fo:inline> text-text Hello World.</fo:block>
</fo:block>
+ <fo:block word-spacing="5pt">
+ <fo:block><fo:inline>VAVAV</fo:inline> text-text Hello World.</fo:block>
+ </fo:block>
+ <fo:block letter-spacing="1pt" word-spacing="5pt">
+ <fo:block><fo:inline>VAVAV</fo:inline> text-text Hello World.</fo:block>
+ </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
@@ -54,4 +60,60 @@
<eval expected="0" xpath="//flow/block[2]/block[1]/lineArea/inlineparent/text/word/@offset"/>
<eval expected="0 -960 -840 -960 -840" xpath="//flow/block[2]/block[1]/lineArea/inlineparent/text/word/@letter-adjust"/>
</checks>
+ <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+ <eval expected="VAVAV" xpath="//if:text[1]"/>
+ <eval expected="0" xpath="//if:text[1]/@x"/>
+ <eval expected="10266" xpath="//if:text[1]/@y"/>
+ <eval expected="0 -960 -840 -960 -840" xpath="//if:text[1]/@dx"/>
+
+ <eval expected=" text-text Hello World." xpath="//if:text[2]"/>
+ <eval expected="36420" xpath="//if:text[2]/@x"/>
+ <eval expected="10266" xpath="//if:text[2]/@y"/>
+ <true xpath="not(//if:text[2]/@letter-spacing)"/>
+ <true xpath="not(//if:text[2]/@word-spacing)"/>
+ <eval expected="0 0 0 -360 0 0 0 0 -360 0 0 0 0 0 0 0 0 0 -360 0 180" xpath="//if:text[2]/@dx"/>
+
+ <eval expected="VAVAV" xpath="//if:text[3]"/>
+ <eval expected="0" xpath="//if:text[3]/@x"/>
+ <eval expected="24666" xpath="//if:text[3]/@y"/>
+ <eval expected="1000" xpath="//if:text[3]/@letter-spacing"/>
+ <true xpath="not(//if:text[3]/@word-spacing)"/>
+ <eval expected="0 -960 -840 -960 -840" xpath="//if:text[3]/@dx"/>
+
+ <eval expected=" text-text Hello World." xpath="//if:text[4]"/>
+ <eval expected="40420" xpath="//if:text[4]/@x"/>
+ <eval expected="24666" xpath="//if:text[4]/@y"/>
+ <eval expected="1000" xpath="//if:text[4]/@letter-spacing"/>
+ <true xpath="not(//if:text[3]/@word-spacing)"/>
+ <eval expected="0 0 0 -360 0 0 0 0 -360 0 0 0 0 0 0 0 0 0 -360 0 180" xpath="//if:text[4]/@dx"/>
+
+ <eval expected="VAVAV" xpath="//if:text[5]"/>
+ <eval expected="0" xpath="//if:text[5]/@x"/>
+ <eval expected="39066" xpath="//if:text[5]/@y"/>
+ <true xpath="not(//if:text[5]/@letter-spacing)"/>
+ <eval expected="5000" xpath="//if:text[5]/@word-spacing"/>
+ <eval expected="0 -960 -840 -960 -840" xpath="//if:text[5]/@dx"/>
+
+ <eval expected=" text-text Hello World." xpath="//if:text[6]"/>
+ <eval expected="36420" xpath="//if:text[6]/@x"/>
+ <eval expected="39066" xpath="//if:text[6]/@y"/>
+ <true xpath="not(//if:text[5]/@letter-spacing)"/>
+ <eval expected="5000" xpath="//if:text[6]/@word-spacing"/>
+ <eval expected="0 0 0 -360 0 0 0 0 -360 0 0 0 0 0 0 0 0 0 -360 0 180" xpath="//if:text[4]/@dx"/>
+
+ <eval expected="VAVAV" xpath="//if:text[7]"/>
+ <eval expected="0" xpath="//if:text[7]/@x"/>
+ <eval expected="53466" xpath="//if:text[7]/@y"/>
+ <eval expected="1000" xpath="//if:text[7]/@letter-spacing"/>
+ <eval expected="3000" xpath="//if:text[7]/@word-spacing"/> <!-- TODO Not sure that's correct! -->
+ <eval expected="0 -960 -840 -960 -840" xpath="//if:text[7]/@dx"/>
+
+ <eval expected=" text-text Hello World." xpath="//if:text[8]"/>
+ <eval expected="40420" xpath="//if:text[8]/@x"/>
+ <eval expected="53466" xpath="//if:text[8]/@y"/>
+ <eval expected="1000" xpath="//if:text[8]/@letter-spacing"/>
+ <eval expected="3000" xpath="//if:text[8]/@word-spacing"/> <!-- TODO Not sure that's correct! -->
+ <eval expected="0 0 0 -360 0 0 0 0 -360 0 0 0 0 0 0 0 0 0 -360 0 180" xpath="//if:text[8]/@dx"/>
+
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_1.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_1.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_1.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_1.xml Sun Feb 22 12:40:44 2009
@@ -65,4 +65,22 @@
<eval expected="bla" xpath="/areaTree/pageSequence/pageViewport[@nr=2]/page/extension-attachments/child::*[2]/@name"/>
<eval expected="%FOPTestPSPageSetupCode: Blah blah!" xpath="/areaTree/pageSequence/pageViewport[@nr=2]/page/extension-attachments/child::*[2]"/>
</checks>
+ <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+ <eval expected="3" xpath="count(/if:document/if:header/child::*)"/>
+ <eval expected="%FOPTestPSSetupCode: General setup code here!" xpath="/if:document/if:header/child::*[1]"/>
+ <true xpath="contains(/if:document/if:header/child::*[2], '%FOPTestPSSetupCode: Line 1')"/>
+ <eval expected="multi-line" xpath="/if:document/if:header/child::*[2]/@name"/>
+
+ <eval expected="2" xpath="count(//if:page[@index=0]/if:page-header/child::*)"/>
+ <eval expected="media-dict" xpath="//if:page[@index=0]/if:page-header/child::*[1]/@name"/>
+ <eval expected="%FOPTestPSPageSetupCode: MediaDict!" xpath="//if:page[@index=0]/if:page-header/child::*[1]"/>
+ <eval expected="bla" xpath="//if:page[@index=0]/if:page-header/child::*[2]/@name"/>
+ <eval expected="%FOPTestPSPageSetupCode: Blah blah!" xpath="//if:page[@index=0]/if:page-header/child::*[2]"/>
+
+ <eval expected="2" xpath="count(//if:page[@index=1]/if:page-header/child::*)"/>
+ <eval expected="media-dict" xpath="//if:page[@index=1]/if:page-header/child::*[1]/@name"/>
+ <eval expected="%FOPTestPSPageSetupCode: MediaDict!" xpath="//if:page[@index=1]/if:page-header/child::*[1]"/>
+ <eval expected="bla" xpath="//if:page[@index=1]/if:page-header/child::*[2]/@name"/>
+ <eval expected="%FOPTestPSPageSetupCode: Blah blah!" xpath="//if:page[@index=1]/if:page-header/child::*[2]"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_2.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_2.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_2.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/ps-extension_2.xml Sun Feb 22 12:40:44 2009
@@ -92,4 +92,33 @@
<eval expected="A4 before page" xpath="/areaTree/pageSequence/pageViewport[@simple-page-master-name='A4' and @nr=3]/page/extension-attachments/child::*[2]"/>
<eval expected="A4 after page" xpath="/areaTree/pageSequence/pageViewport[@simple-page-master-name='A4' and @nr=3]/page/extension-attachments/child::*[3]"/>
</checks>
+ <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+ <eval expected="1" xpath="count(/if:document/if:page-sequence)"/>
+ <eval expected="6" xpath="count(/if:document/if:header/child::*)"/>
+ <eval expected="autofeed" xpath="/if:document/if:header/child::*[1]/@name"/>
+ <eval expected="header comment 1" xpath="/if:document/if:header/child::*[2]/text()"/>
+ <eval expected="footer comment 1" xpath="/if:document/if:header/child::*[3]/text()"/>
+ <eval expected="header comment 2" xpath="/if:document/if:header/child::*[4]/text()"/>
+ <eval expected="footer comment 2" xpath="/if:document/if:header/child::*[5]/text()"/>
+
+ <eval expected="3" xpath="count(//if:page[@index=0]/if:page-header/child::*)"/>
+ <eval expected="A4" xpath="//if:page[@index=0]/@page-master-name"/>
+ <eval expected="lower tray" xpath="//if:page[@index=0]/if:page-header/child::*[1]/@name"/>
+ <eval expected="A4 before page" xpath="//if:page[@index=0]/if:page-header/child::*[2]"/>
+ <eval expected="A4 after page" xpath="//if:page[@index=0]/if:page-header/child::*[3]"/>
+
+ <eval expected="5" xpath="count(//if:page[@index=1]/if:page-header/child::*)"/>
+ <eval expected="A4a" xpath="//if:page[@index=1]/@page-master-name"/>
+ <eval expected="upper tray" xpath="//if:page[@index=1]/if:page-header/child::*[1]/@name"/>
+ <eval expected="A4a before page 1" xpath="//if:page[@index=1]/if:page-header/child::*[2]"/>
+ <eval expected="A4a after page 1" xpath="//if:page[@index=1]/if:page-header/child::*[3]"/>
+ <eval expected="A4a before page 2" xpath="//if:page[@index=1]/if:page-header/child::*[4]"/>
+ <eval expected="A4a after page 2" xpath="//if:page[@index=1]/if:page-header/child::*[5]"/>
+
+ <eval expected="3" xpath="count(//if:page[@index=2]/if:page-header/child::*)"/>
+ <eval expected="A4" xpath="//if:page[@index=2]/@page-master-name"/>
+ <eval expected="lower tray" xpath="//if:page[@index=2]/if:page-header/child::*[1]/@name"/>
+ <eval expected="A4 before page" xpath="//if:page[@index=2]/if:page-header/child::*[2]"/>
+ <eval expected="A4 after page" xpath="//if:page[@index=2]/if:page-header/child::*[3]"/>
+ </if-checks>
</testcase>
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/simple-page-master_borders_padding.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/simple-page-master_borders_padding.xml?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/simple-page-master_borders_padding.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/simple-page-master_borders_padding.xml Sun Feb 22 12:40:44 2009
@@ -23,6 +23,9 @@
length evaluation using percentages is possible.
</p>
</info>
+ <cfg>
+ <strict-validation>false</strict-validation>
+ </cfg>
<fo>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
<fo:layout-master-set>
@@ -119,8 +122,8 @@
<eval expected="240000" xpath="//regionBody/@bpda"/>
<eval expected="240000" xpath="//regionBody/@ipda"/>
- <eval expected="220000" xpath="//regionBody/@bpda"/>
- <eval expected="220000" xpath="//regionBody/@ipda"/>
+ <eval expected="220000" xpath="//regionBody/@bpd"/>
+ <eval expected="220000" xpath="//regionBody/@ipd"/>
<eval expected="(solid,#808066,1000)" xpath="//regionBody/@border-before"/>
<eval expected="(solid,#808066,3000)" xpath="//regionBody/@border-after"/>
<eval expected="(solid,#808066,4000)" xpath="//regionBody/@border-start"/>
Modified: xmlgraphics/fop/trunk/test/layoutengine/testcase2checks.xsl
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/testcase2checks.xsl?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/testcase2checks.xsl (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/testcase2checks.xsl Sun Feb 22 12:40:44 2009
@@ -22,16 +22,25 @@
<xsl:variable name="basic-checks" select="document('basic-checks.xml')/checks/*" />
<xsl:template match="testcase">
- <xsl:apply-templates select="checks" />
+ <checks>
+ <xsl:apply-templates select="checks"/>
+ <xsl:apply-templates select="if-checks"/>
+ </checks>
</xsl:template>
<xsl:template match="checks">
- <checks>
+ <at-checks>
<xsl:copy-of select="$basic-checks" />
<xsl:copy-of select="*" />
- </checks>
+ </at-checks>
</xsl:template>
+<xsl:template match="if-checks">
+ <if-checks>
+ <xsl:copy-of select="*"/>
+ </if-checks>
+</xsl:template>
+
<xsl:template match="text()" />
</xsl:stylesheet>
Modified: xmlgraphics/fop/trunk/test/test.xconf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/test.xconf?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/test.xconf (original)
+++ xmlgraphics/fop/trunk/test/test.xconf Sun Feb 22 12:40:44 2009
@@ -6,6 +6,18 @@
<renderers>
<renderer mime="application/pdf">
+ <filterList type="tiff">
+ <value>ascii-85</value>
+ </filterList>
+ <filterList type="default">
+ <value>null</value>
+ </filterList>
+ <filterList type="image">
+ <value>null</value>
+ </filterList>
+ <filterList type="content">
+ <value>null</value>
+ </filterList>
<fonts>
<font metrics-url="test/resources/fonts/glb12.ttf.xml" embed-url="test/resources/fonts/glb12.ttf">
<font-triplet name="Gladiator" style="normal" weight="normal"/>
Modified: xmlgraphics/fop/trunk/test/xsl/fo-replicator.xsl
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/xsl/fo-replicator.xsl?rev=746664&r1=746663&r2=746664&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/xsl/fo-replicator.xsl (original)
+++ xmlgraphics/fop/trunk/test/xsl/fo-replicator.xsl Sun Feb 22 12:40:44 2009
@@ -50,15 +50,15 @@
</xsl:call-template>
</xsl:if>
</xsl:template>
- <xsl:template match="@id">
+ <xsl:template match="fo:*/@id">
<xsl:param name="run"/>
<xsl:attribute name="id"><xsl:value-of select="."/>-<xsl:value-of select="$run"/></xsl:attribute>
</xsl:template>
- <xsl:template match="@ref-id">
+ <xsl:template match="fo:*/@ref-id">
<xsl:param name="run"/>
<xsl:attribute name="ref-id"><xsl:value-of select="."/>-<xsl:value-of select="$run"/></xsl:attribute>
</xsl:template>
- <xsl:template match="@internal-destination">
+ <xsl:template match="fo:*/@internal-destination">
<xsl:param name="run"/>
<xsl:attribute name="internal-destination"><xsl:value-of select="."/>-<xsl:value-of select="$run"/></xsl:attribute>
</xsl:template>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org