diff options
author | Adrian Cumiskey <acumiskey@apache.org> | 2008-06-09 14:11:16 +0000 |
---|---|---|
committer | Adrian Cumiskey <acumiskey@apache.org> | 2008-06-09 14:11:16 +0000 |
commit | 2ab4f01d9a5bf07e5f2b6ee4bb93dc107ef86eff (patch) | |
tree | ad535a955c5decfdb08fd0602b854f2c67496cc8 /test | |
parent | 7d7910f72b18167d0f5cbc441a99aeeaa97e0838 (diff) | |
download | xmlgraphics-fop-2ab4f01d9a5bf07e5f2b6ee4bb93dc107ef86eff.tar.gz xmlgraphics-fop-2ab4f01d9a5bf07e5f2b6ee4bb93dc107ef86eff.zip |
Merged revisions 665691 via svnmerge from
https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk
................
r665691 | jeremias | 2008-06-09 15:01:53 +0100 (Mon, 09 Jun 2008) | 82 lines
Merged revisions 636407-637074,637076-637118,637120-637790,637792-637856,637858-637992,637994-638047,638049-638307,638309-638315,638318-664698 via svnmerge from
https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-0_95
........
r638937 | jeremias | 2008-03-19 18:08:57 +0100 (Mi, 19 Mrz 2008) | 1 line
A nit.
........
r640889 | vhennebert | 2008-03-25 17:43:55 +0100 (Di, 25 Mrz 2008) | 2 lines
Set the final release date and added a news item about the 0.95beta release (the change was made before updating the website)
........
r642906 | jeremias | 2008-03-31 09:12:40 +0200 (Mo, 31 Mrz 2008) | 3 lines
Added version number to xml-apis-ext (as suggested by Karel Vervaeke).
Moved xml-apis to same version as xml-apis-ext.
Added missing licensing info about xml-apis-ext.
........
r647403 | jeremias | 2008-04-12 11:02:01 +0200 (Sa, 12 Apr 2008) | 1 line
Fixed NullPointerException when loading a TrueType font using XML font metric files.
........
r647537 | jeremias | 2008-04-13 09:36:00 +0200 (So, 13 Apr 2008) | 1 line
Performance improvement when encoding images: Fixed an important hotspot by extending CloseBlocker from ProxyOutputStream instead of FilterOutputStream as the latter routes all write(byte[]) calls through write(int).
........
r648984 | jeremias | 2008-04-17 09:00:22 +0200 (Do, 17 Apr 2008) | 1 line
HeadURL was missing in the properties.
........
r649006 | jeremias | 2008-04-17 10:42:52 +0200 (Do, 17 Apr 2008) | 1 line
Fixed text extraction problem with ZapfDingbats and Symbol font in PDF output. These fonts are symbolic and must not use an Encoding value in PDF. Applies to the built-in base 14 variant and to the case where these fonts are explicitely embedded.
........
r649014 | jeremias | 2008-04-17 11:10:15 +0200 (Do, 17 Apr 2008) | 1 line
Added missing change information.
........
r650550 | vhennebert | 2008-04-22 17:22:31 +0200 (Di, 22 Apr 2008) | 4 lines
Bugzilla 41621:
- length of the penalty now correctly computed;
- AssertionError fixed.
........
r651302 | jeremias | 2008-04-24 18:08:53 +0200 (Do, 24 Apr 2008) | 3 lines
Fixed regression causing bad positioning of block-containers if used as descendant of a table-cell. This was not caught because of the lack of a test case that would have shown the problem in visual testing with BatchDiffer.
See also: http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-users/200804.mbox/%3c20080424164128.973A.DEV@jeremias-maerki.ch%3e
........
r653537 | vhennebert | 2008-05-05 19:47:28 +0200 (Mo, 05 Mai 2008) | 2 lines
Bugfix: the before border of cells below a column-spanning cell had their value taken from the leading case, instead of the normal one.
........
r654453 | jeremias | 2008-05-08 11:14:04 +0200 (Do, 08 Mai 2008) | 2 lines
Added /usr/local/share/fonts as additional possible location for fonts on Unixes.
........
r656286 | jeremias | 2008-05-14 16:16:49 +0200 (Mi, 14 Mai 2008) | 1 line
Restored plug-in API compatibility with FOP 0.94. Fixes a NoSuchMethodError when Barcode4J is run.
........
r656524 | jeremias | 2008-05-15 09:07:18 +0200 (Do, 15 Mai 2008) | 1 line
Fixed rendering of fixed block-containers in AFP output. The break-out was actually never implemented which is necessary for supporting fixed positioned viewports.
........
r657520 | maxberger | 2008-05-18 11:38:45 +0200 (So, 18 Mai 2008) | 1 line
Updated as per suggestions in bug 45019
........
r661580 | maxberger | 2008-05-30 08:42:17 +0200 (Fr, 30 Mai 2008) | 1 line
added my key to KEYS, it is used for signing mvn artifacts
........
r663482 | jeremias | 2008-06-05 09:06:37 +0200 (Do, 05 Jun 2008) | 1 line
Fixed positioning of absolutely positioned block-containers in multi-column documents.
........
r664692 | jeremias | 2008-06-09 14:49:45 +0200 (Mo, 09 Jun 2008) | 1 line
Restored PSImageUtils. I had deleted it prematurely. Extensions like Barcode4J rely on this class.
........
................
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AFPGOCAResources@665697 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
7 files changed, 384 insertions, 1 deletions
diff --git a/test/java/org/apache/fop/StandardTestSuite.java b/test/java/org/apache/fop/StandardTestSuite.java index 33e034de0..6399d3b09 100644 --- a/test/java/org/apache/fop/StandardTestSuite.java +++ b/test/java/org/apache/fop/StandardTestSuite.java @@ -22,6 +22,7 @@ package org.apache.fop; import junit.framework.Test; import junit.framework.TestSuite; +import org.apache.fop.fonts.TrueTypeAnsiTestCase; import org.apache.fop.render.pdf.PDFAConformanceTestCase; import org.apache.fop.render.pdf.PDFCMapTestCase; import org.apache.fop.render.pdf.PDFEncodingTestCase; @@ -47,6 +48,7 @@ public class StandardTestSuite { suite.addTest(new TestSuite(PDFEncodingTestCase.class)); suite.addTest(new TestSuite(PDFCMapTestCase.class)); suite.addTest(new TestSuite(PDFsRGBSettingsTestCase.class)); + suite.addTest(new TestSuite(TrueTypeAnsiTestCase.class)); suite.addTest(RichTextFormatTestSuite.suite()); //$JUnit-END$ return suite; diff --git a/test/java/org/apache/fop/fonts/TrueTypeAnsiTestCase.java b/test/java/org/apache/fop/fonts/TrueTypeAnsiTestCase.java new file mode 100644 index 000000000..dc9890167 --- /dev/null +++ b/test/java/org/apache/fop/fonts/TrueTypeAnsiTestCase.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id$ */ + +package org.apache.fop.fonts; + +import java.io.File; +import java.io.OutputStream; +import java.io.StringReader; +import java.net.URL; +import java.util.List; + +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.TestCase; + +import org.apache.commons.io.output.NullOutputStream; + +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.apps.Fop; +import org.apache.fop.apps.FopFactory; +import org.apache.fop.fonts.apps.TTFReader; +import org.apache.fop.render.pdf.PDFRenderer; + +/** + * Tests XML font metrics file generation and usage for WinAnsi mode. + */ +public class TrueTypeAnsiTestCase extends TestCase { + + /** + * Tests a TrueType font in WinAnsi mode. + * @throws Exception if an error occurs + */ + public void testTrueTypeAnsi() throws Exception { + String fontFamily = "Gladiator Bold"; + File ttfFile = new File("./test/resources/fonts/glb12.ttf"); + File workDir = new File("./build/test-results"); + if (!workDir.isDirectory()) { + assertTrue(workDir.mkdirs()); + } + File metricsFile = new File(workDir, ttfFile.getName() + ".xml"); + if (metricsFile.isFile()) { + assertTrue(metricsFile.delete()); + } + + String[] args = new String[] {"-enc", "ansi", + ttfFile.getCanonicalPath(), metricsFile.getCanonicalPath()}; + TTFReader.main(args); + assertTrue(metricsFile.isFile()); + + FopFactory fopFactory = FopFactory.newInstance(); + FOUserAgent ua = fopFactory.newFOUserAgent(); + PDFRenderer renderer = new PDFRenderer(); + renderer.setUserAgent(ua); + List fontList = new java.util.ArrayList(); + List triplets = new java.util.ArrayList(); + triplets.add(new FontTriplet(fontFamily, "normal", Font.WEIGHT_NORMAL)); + EmbedFontInfo font = new EmbedFontInfo( + metricsFile.toURI().toASCIIString(), + true, triplets, + ttfFile.toURI().toASCIIString(), null); + fontList.add(font); + renderer.addFontList(fontList); + + ua.setRendererOverride(renderer); + OutputStream out = new NullOutputStream(); + + Fop fop = fopFactory.newFop(null, ua, out); + + TransformerFactory tFactory = TransformerFactory.newInstance(); + Source src = new StreamSource(new StringReader( + "<root font-family='" + fontFamily + "'>Test!</root>")); + Result res = new SAXResult(fop.getDefaultHandler()); + Transformer transformer = tFactory.newTransformer( + getSourceForResource(this, "fonttest.xsl")); + transformer.transform(src, res); + } + + private static Source getSourceForResource(Object reference, String name) { + URL url = reference.getClass().getResource(name); + if (url == null) { + throw new NullPointerException("Resource not found: " + name); + } + return new StreamSource(url.toExternalForm()); + } + +} diff --git a/test/java/org/apache/fop/fonts/fonttest.xsl b/test/java/org/apache/fop/fonts/fonttest.xsl new file mode 100644 index 000000000..26c7d72a5 --- /dev/null +++ b/test/java/org/apache/fop/fonts/fonttest.xsl @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <xsl:output method="xml" indent="yes"/> + + <xsl:template match="root"> + <fo:root> + <fo:layout-master-set> + <fo:simple-page-master master-name="A4" page-height="29.7cm" page-width="21cm" + margin="2cm"> + <fo:region-body/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="A4"> + <fo:flow flow-name="xsl-region-body"> + <fo:block font-family="{@font-family}"> + <xsl:value-of select="."/> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </xsl:template> +</xsl:stylesheet> diff --git a/test/layoutengine/standard-testcases/block-container_absolute-position_multi-column.xml b/test/layoutengine/standard-testcases/block-container_absolute-position_multi-column.xml new file mode 100644 index 000000000..e3b6fb4f8 --- /dev/null +++ b/test/layoutengine/standard-testcases/block-container_absolute-position_multi-column.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This test checks absolutely positioned block-containers in multi-column documents. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in" margin="0.1in"> + <fo:region-body column-count="2" column-gap="0.2in"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="normal"> + <fo:flow flow-name="xsl-region-body" text-align="justify"> + <fo:block background-color="yellow"> + This should not have any line floating over it! This should not have any + line floating over it! This should not have any line floating over it! This + should not have any line floating over it! + </fo:block> + <fo:block span="all" background-color="orange"> + <fo:block padding-top="0.5em" padding-bottom="0.5em"> + This should not have any line floating over it! This should not have any + line floating over it! This should not have any line floating over + it!<fo:block /> + </fo:block> + </fo:block> + <fo:block background-color="yellow"> + This should not have any line floating over it! This should not have any + line floating over it! This should not have any line floating over it! This + should not have any line floating over it! + </fo:block> + <fo:block-container absolute-position="absolute" + left="2.5in - 0.1in - 0.025in" top="auto" width="0.05in" height="100%" background-color="red"> + <fo:block/> + </fo:block-container> + <fo:block-container absolute-position="absolute" left="2.5in - 0.1in" top="auto" + reference-orientation="90"> + <fo:block width="100%" line-height="1pt" background-color="black" + height="1pt"> </fo:block> + </fo:block-container> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <!-- + This test is only visually interesting! Visually check that the block container begins + directly under the spanned block! + --> + <eval expected="1" xpath="count(//pageViewport)"/> + </checks> +</testcase> diff --git a/test/layoutengine/standard-testcases/table-cell_bc-child.xml b/test/layoutengine/standard-testcases/table-cell_bc-child.xml new file mode 100644 index 000000000..eb199c73b --- /dev/null +++ b/test/layoutengine/standard-testcases/table-cell_bc-child.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- $Id$ --> +<testcase visual="only"> + <info> + <p> + This test checks the rendering of block viewports in reference areas generated + by table-cells. This does not test the layout engine, only the renderer. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in" margin="20pt"> + <fo:region-body/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="normal"> + <fo:flow flow-name="xsl-region-body"> + <fo:table table-layout="fixed" width="4in" background-color="lightgray" + space-before="2in" space-before.conditionality="retain"> + <fo:table-column column-width="100%"/> + <fo:table-body> + <fo:table-row> + <fo:table-cell background-color="rgb(230, 230, 255)"> + <fo:block-container absolute-position="absolute" width="100%" height="2em"> + <fo:block color="red">No red text should be visible!</fo:block> + </fo:block-container> + <fo:block color="green">No red text should be visible!</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell padding="10pt" background-color="rgb(230, 255, 230)"> + <fo:block-container absolute-position="absolute" width="100%" height="2em" top="10pt"> + <fo:block color="red">No red text should be visible!</fo:block> + </fo:block-container> + <fo:block color="green">No red text should be visible!</fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <!-- Dummy test. This test is only useful with BatchDiffer. --> + <eval expected="1" xpath="count(//pageViewport)"/> + </checks> +</testcase> diff --git a/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_3.xml b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_3.xml new file mode 100644 index 000000000..8d4f42c16 --- /dev/null +++ b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_3.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This test checks tables with collapsing-border model and complex spanning cells. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master master-name="normal" page-width="5in" page-height="4in" margin="0.5in"> + <fo:region-body margin="0pt"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="normal"> + <fo:flow flow-name="xsl-region-body"> + <fo:table table-layout="fixed" width="100%"> + <fo:table-column number-columns-repeated="2" column-width="proportional-column-width(1)"/> + <fo:table-header border-bottom="1pt solid black"> + <fo:table-cell> + <fo:block>Header 1.1</fo:block> + </fo:table-cell> + <fo:table-cell> + <fo:block>Header 1.2</fo:block> + </fo:table-cell> + </fo:table-header> + <fo:table-body> + <fo:table-row> + <fo:table-cell number-columns-spanned="2"> + <fo:block>Cell 1.1</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell> + <fo:block>Cell 2.1</fo:block> + </fo:table-cell> + <fo:table-cell> + <fo:block>Cell 2.2</fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + + <checks> + <eval expected="" xpath="//flow/block[1]/block[1]/@border-before"/> + <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[1]/block[1]/@border-after"/> + <eval expected="" xpath="//flow/block[1]/block[2]/@border-before"/> + <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[1]/block[2]/@border-after"/> + <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[1]/block[3]/@border-before"/> + <eval expected="" xpath="//flow/block[1]/block[3]/@border-after"/> + <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[1]/block[4]/@border-before"/> + <eval expected="" xpath="//flow/block[1]/block[4]/@border-after"/> + <eval expected="" xpath="//flow/block[1]/block[6]/@border-before"/> + <eval expected="" xpath="//flow/block[1]/block[6]/@border-after"/> + <eval expected="" xpath="//flow/block[1]/block[7]/@border-before"/> + <eval expected="" xpath="//flow/block[1]/block[7]/@border-after"/> + </checks> +</testcase> diff --git a/test/layoutengine/standard-testcases/table_bug44621.xml b/test/layoutengine/standard-testcases/table_bug44621.xml index b4b9edbd0..ae04d1903 100644 --- a/test/layoutengine/standard-testcases/table_bug44621.xml +++ b/test/layoutengine/standard-testcases/table_bug44621.xml @@ -66,12 +66,32 @@ </fo:table-row> </fo:table-body> </fo:table> + + <fo:block space-before="20pt" space-after="10pt">The after border of cell 1, in the normal + case, is thicker than in the trailing case.</fo:block> + <fo:table width="100%" table-layout="fixed" + font-size="8pt" line-height="10pt"> + <fo:table-body> + <fo:table-row> + <fo:table-cell border="1pt solid black"> + <fo:block>Cell 1</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell border="2pt solid black"> + <fo:block>Cell 2</fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </fo:flow> </fo:page-sequence> </fo:root> </fo> <checks> + <!-- table 1 --> <eval expected="39000" xpath="//pageViewport//flow/block[2]/@bpd"/> <eval expected="39000" xpath="//pageViewport//flow/block[2]/@bpda"/> <!-- cell 1.1 --> @@ -93,12 +113,27 @@ <eval expected="10000" xpath="//pageViewport//flow/block[2]/block[6]/@bpd"/> <eval expected="18000" xpath="//pageViewport//flow/block[2]/block[6]/@bpda"/> + <!-- table 2 --> + <eval expected="23500" xpath="//pageViewport//flow/block[4]/@bpd"/> + <eval expected="23500" xpath="//pageViewport//flow/block[4]/@bpda"/> + <!-- cell 1 --> + <eval expected="10000" xpath="//pageViewport//flow/block[4]/block[1]/@bpd"/> + <eval expected="13000" xpath="//pageViewport//flow/block[4]/block[1]/@bpda"/> + <!-- cell 2 --> + <eval expected="10000" xpath="//pageViewport//flow/block[4]/block[2]/@bpd"/> + <eval expected="14000" xpath="//pageViewport//flow/block[4]/block[2]/@bpda"/> + <element-list category="breaker"> <skip>4</skip> <box w="12000"/> - <penalty w="14000" p="0"/><!-- should be 15000 --> + <penalty w="15000" p="0"/> <box w="13000"/> <box w="14000"/> + <skip>6</skip> + <box w="11000"/> + <penalty w="0" p="0"/> + <glue w="500"/> + <box w="12000"/> <skip>3</skip> </element-list> </checks> |