aboutsummaryrefslogtreecommitdiffstats
path: root/test/java
diff options
context:
space:
mode:
authorJeremias Maerki <jeremias@apache.org>2008-06-09 14:01:53 +0000
committerJeremias Maerki <jeremias@apache.org>2008-06-09 14:01:53 +0000
commit925425a93e4c22c3ef81850f5f4256e6ae8790f8 (patch)
tree11b291d1c909032f6ec5cb21e23e6596f480219f /test/java
parentff51233ed95afb0a54a6e47c6bed5890af5b5304 (diff)
downloadxmlgraphics-fop-925425a93e4c22c3ef81850f5f4256e6ae8790f8.tar.gz
xmlgraphics-fop-925425a93e4c22c3ef81850f5f4256e6ae8790f8.zip
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/trunk@665691 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/java')
-rw-r--r--test/java/org/apache/fop/StandardTestSuite.java2
-rw-r--r--test/java/org/apache/fop/fonts/TrueTypeAnsiTestCase.java107
-rw-r--r--test/java/org/apache/fop/fonts/fonttest.xsl24
3 files changed, 133 insertions, 0 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>