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 vh...@apache.org on 2012/04/05 18:20:17 UTC
svn commit: r1309921 [40/42] - in
/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript: ./ examples/embedding/
examples/embedding/java/embedding/ examples/embedding/java/embedding/atxml/
examples/embedding/java/embedding/tools/ examples/plan/src/org/apa...
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/config/UserConfigTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/config/UserConfigTestSuite.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/config/UserConfigTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/config/UserConfigTestSuite.java Thu Apr 5 16:19:19 2012
@@ -19,35 +19,25 @@
package org.apache.fop.config;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
/**
* Test suite for font configuration.
*/
+@RunWith(Suite.class)
+@SuiteClasses({
+ FontBaseBadTestCase.class,
+ FontAttributesMissingTestCase.class,
+ FontTripletAttributeMissingTestCase.class,
+ FontMetricsUrlBadTestCase.class,
+ FontEmbedUrlBadTestCase.class,
+ FontMetricsUrlMalformedTestCase.class,
+ FontsDirectoryRecursiveTestCase.class,
+ FontsAutoDetectTestCase.class,
+ FontsSubstitutionTestCase.class,
+ FOURIResolverTestCase.class
+})
public class UserConfigTestSuite {
-
- /**
- * Builds the test suite
- * @return the test suite
- */
- public static Test suite() {
- TestSuite suite = new TestSuite(
- "Basic functionality test suite for user configuration");
- //$JUnit-BEGIN$
- suite.addTest(new TestSuite(FontBaseBadTestCase.class));
- suite.addTest(new TestSuite(FontAttributesMissingTestCase.class));
- suite.addTest(new TestSuite(FontTripletAttributeMissingTestCase.class));
- suite.addTest(new TestSuite(FontMetricsUrlBadTestCase.class));
- suite.addTest(new TestSuite(FontEmbedUrlBadTestCase.class));
- suite.addTest(new TestSuite(FontMetricsUrlMalformedTestCase.class));
- suite.addTest(new TestSuite(FontEmbedUrlMalformedTestCase.class));
- suite.addTest(new TestSuite(FontsDirectoryRecursiveTestCase.class));
- suite.addTest(new TestSuite(FontsAutoDetectTestCase.class));
- suite.addTest(new TestSuite(FontsSubstitutionTestCase.class));
- suite.addTest(new TestSuite(FOURIResolverTestCase.class));
- //$JUnit-END$
- return suite;
- }
-
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/datatypes/URISpecificationTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,13 +19,16 @@
package org.apache.fop.datatypes;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
/**
* Tests for URISpecification.
*/
-public class URISpecificationTestCase extends TestCase {
+public class URISpecificationTestCase {
+ @Test
public void testGetURL() throws Exception {
String actual;
@@ -42,6 +45,7 @@ public class URISpecificationTestCase ex
assertEquals("http://localhost/test", actual);
}
+ @Test
public void testEscapeURI() throws Exception {
String actual;
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/BasicEventTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/BasicEventTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/BasicEventTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/BasicEventTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,12 +19,18 @@
package org.apache.fop.events;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import org.apache.fop.events.model.EventSeverity;
+import org.junit.Test;
-public class BasicEventTestCase extends TestCase {
+public class BasicEventTestCase {
+ @Test
public void testBasics() throws Exception {
MyEventListener listener = new MyEventListener();
@@ -54,6 +60,7 @@ public class BasicEventTestCase extends
broadcaster.broadcastEvent(ev);
}
+ @Test
public void testEventProducer() throws Exception {
MyEventListener listener = new MyEventListener();
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventChecker.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventChecker.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventChecker.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventChecker.java Thu Apr 5 16:19:19 2012
@@ -19,12 +19,12 @@
package org.apache.fop.events;
-import junit.framework.Assert;
+import static org.junit.Assert.fail;
/**
* Class that checks that an expected event is produced, and only this one.
*/
-class EventChecker extends Assert implements EventListener {
+class EventChecker implements EventListener {
private final String expectedEventID;
@@ -36,11 +36,9 @@ class EventChecker extends Assert implem
public void processEvent(Event event) {
// Always create the message to make sure there is no error in the formatting process
- String msg = EventFormatter.format(event);
- if (event.getEventID().equals(expectedEventID)) {
+ String id = event.getEventID();
+ if (id.equals(expectedEventID)) {
eventReceived = true;
- } else {
- fail("Unexpected event: id = " + event.getEventID() + ": " + msg);
}
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventProcessingTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventProcessingTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventProcessingTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/events/EventProcessingTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,7 +19,9 @@
package org.apache.fop.events;
-import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
@@ -29,9 +31,8 @@ import javax.xml.transform.TransformerFa
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.Test;
+import org.xml.sax.SAXException;
import org.apache.commons.io.output.NullOutputStream;
@@ -39,87 +40,88 @@ import org.apache.xmlgraphics.util.MimeC
import org.apache.fop.ResourceEventProducer;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.area.AreaEventProducer;
import org.apache.fop.fo.FOValidationEventProducer;
import org.apache.fop.fo.flow.table.TableEventProducer;
-import org.apache.fop.fonts.FontEventProducer;
import org.apache.fop.layoutmgr.BlockLevelEventProducer;
import org.apache.fop.layoutmgr.inline.InlineLevelEventProducer;
/**
* Tests that the event notification system runs smoothly.
*/
-public class EventProcessingTestCase extends TestCase {
+public class EventProcessingTestCase {
private final FopFactory fopFactory = FopFactory.newInstance();
private final TransformerFactory tFactory = TransformerFactory.newInstance();
- private final File basedir;
+ private static final String BASE_DIR = "test/events/";
- public EventProcessingTestCase(String name) {
- super(name);
- String base = System.getProperty("basedir");
- if (base != null) {
- basedir = new File(base);
- } else {
- basedir = new File(".");
- }
- }
+ /** The base directory of configuration files */
+ public static final String CONFIG_BASE_DIR = "test/config/";
- private void doTest(String filename, String expectedEventID)
- throws FOPException, TransformerException {
- Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, new NullOutputStream());
+ public void doTest(InputStream inStream, String fopConf, String expectedEventID, String mimeType)
+ throws FOPException, TransformerException, IOException, SAXException {
EventChecker eventChecker = new EventChecker(expectedEventID);
- fop.getUserAgent().getEventBroadcaster().addEventListener(eventChecker);
+ if (fopConf != null) {
+ fopFactory.setUserConfig(fopConf);
+ }
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+ userAgent.getEventBroadcaster().addEventListener(eventChecker);
+ Fop fop = fopFactory.newFop(mimeType, userAgent, new NullOutputStream());
Transformer transformer = tFactory.newTransformer();
- Source src = new StreamSource(new File(basedir, filename));
+ Source src = new StreamSource(inStream);
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(src, res);
eventChecker.end();
}
- public void testArea() throws FOPException, TransformerException {
+ public void doTest(String filename, String expectedEventID) throws
+ FOPException, TransformerException, IOException, SAXException {
+ doTest(new FileInputStream(BASE_DIR + filename), null, expectedEventID,
+ MimeConstants.MIME_PDF);
+ }
+
+ @Test
+ public void testArea() throws TransformerException, IOException, SAXException {
doTest("area.fo",
AreaEventProducer.class.getName() + ".unresolvedIDReferenceOnPage");
}
- public void testResource() throws FOPException, TransformerException {
+ @Test
+ public void testResource() throws FOPException, TransformerException, IOException,
+ SAXException {
doTest("resource.fo",
ResourceEventProducer.class.getName() + ".imageNotFound");
}
- public void testValidation() throws FOPException, TransformerException {
+ @Test
+ public void testValidation() throws FOPException, TransformerException, IOException,
+ SAXException {
doTest("validation.fo",
FOValidationEventProducer.class.getName() + ".invalidPropertyValue");
}
- public void testTable() throws FOPException, TransformerException {
+ @Test
+ public void testTable() throws FOPException, TransformerException, IOException, SAXException {
doTest("table.fo",
TableEventProducer.class.getName() + ".noTablePaddingWithCollapsingBorderModel");
}
- public void testBlockLevel() throws FOPException, TransformerException {
+ @Test
+ public void testBlockLevel() throws FOPException, TransformerException, IOException,
+ SAXException {
doTest("block-level.fo",
BlockLevelEventProducer.class.getName() + ".overconstrainedAdjustEndIndent");
}
- public void testInlineLevel() throws FOPException, TransformerException {
+ @Test
+ public void testInlineLevel() throws FOPException, TransformerException, IOException,
+ SAXException {
doTest("inline-level.fo",
InlineLevelEventProducer.class.getName() + ".lineOverflows");
}
-
- public void testFont() throws FOPException, TransformerException {
- doTest("font.fo",
- FontEventProducer.class.getName() + ".fontSubstituted");
- }
-
-
- public static Test suite() {
- TestSuite suite = new TestSuite();
- suite.addTestSuite(EventProcessingTestCase.class);
- return suite;
- }
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/CollapsedConditionalBorderTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,10 +19,14 @@
package org.apache.fop.fo.flow.table;
+import static org.junit.Assert.assertEquals;
+
import java.awt.Color;
import java.util.Iterator;
import java.util.List;
+import org.junit.Test;
+
import org.apache.fop.fo.Constants;
import org.apache.fop.fo.FONode.FONodeIterator;
import org.apache.fop.fo.properties.CommonBorderPaddingBackground.BorderInfo;
@@ -32,7 +36,7 @@ import org.apache.fop.fo.properties.Comm
* conditionality into account. The resolved borders are generated by the
* collapsed-conditional-borders_test-generator.py Python script.
*/
-public class CollapsedConditionalBorderTestCase extends AbstractTableTestCase {
+public class CollapsedConditionalBorderTestCase extends AbstractTableTest {
private final Integer border0pt = new Integer(0);
@@ -104,10 +108,6 @@ public class CollapsedConditionalBorderT
{{border8pt, Color.black}, {border6pt, Color.blue}, {border8pt, Color.black}, {border6pt, Color.blue}, {border4pt, Color.black}, {border4pt, Color.black}, {border4pt, Color.red}, {border8pt, Color.black}, {border8pt, Color.black}, {border8pt, Color.black}, {border8pt, Color.black}, {border4pt, Color.blue}, {border4pt, Color.red}, {border6pt, Color.magenta}, {border6pt, Color.magenta}, {border6pt, Color.magenta}}
};
- public CollapsedConditionalBorderTestCase() throws Exception {
- super();
- }
-
private static GridUnit getGridUnit(TablePart part) {
return (GridUnit) ((List) ((List) part.getRowGroups().get(0)).get(0)).get(0);
}
@@ -130,6 +130,7 @@ public class CollapsedConditionalBorderT
(Color) resolvedBorder[1]);
}
+ @Test
public void testCollapsedConditionalBorders() throws Exception {
setUp("table/collapsed-conditional-borders.fo");
int tableNum = 0;
@@ -154,6 +155,7 @@ public class CollapsedConditionalBorderT
} while (tableIterator.hasNext());
}
+ @Test
public void testCollapsedConditionalBordersHeaderFooter() throws Exception {
setUp("table/collapsed-conditional-borders_header-footer.fo");
int tableNum = 0;
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/IllegalRowSpanTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,28 +19,30 @@
package org.apache.fop.fo.flow.table;
+import org.junit.Test;
+
/**
* Testcase checking that cells spanning further than their parent element aren't
* accepted.
*/
-public class IllegalRowSpanTestCase extends ErrorCheckTestCase {
-
- public IllegalRowSpanTestCase() throws Exception {
- super();
- }
+public class IllegalRowSpanTestCase extends ErrorCheckTest {
+ @Test
public void testBody1() throws Exception {
launchTest("table/illegal-row-span_body_1.fo");
}
+ @Test
public void testBody2() throws Exception {
launchTest("table/illegal-row-span_body_2.fo");
}
+ @Test
public void testHeader() throws Exception {
launchTest("table/illegal-row-span_header.fo");
}
+ @Test
public void testFooter() throws Exception {
launchTest("table/illegal-row-span_footer.fo");
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/RowGroupBuilderTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,18 +19,21 @@
package org.apache.fop.fo.flow.table;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import java.util.Iterator;
import java.util.List;
+import org.junit.Test;
+
/**
* Tests that RowGroupBuilder returns, for each part of a table, the expected number of
* row-groups with the expected number or rows in each.
*/
-public class RowGroupBuilderTestCase extends AbstractTableTestCase {
-
- public RowGroupBuilderTestCase() throws Exception {
- super();
- }
+public class RowGroupBuilderTestCase extends AbstractTableTest {
/**
* Checks that the given table-body(header,footer) will return row groups as expected.
@@ -137,34 +140,42 @@ public class RowGroupBuilderTestCase ext
checkNextTableRowGroups(tableIter, new int[] {2}, new int[] {1, 3}, new int[][] {{2, 1, 3}});
}
+ @Test
public void testWithRowsSimple() throws Exception {
checkSimple("table/RowGroupBuilder_simple.fo");
}
+ @Test
public void testWithRowsSpans() throws Exception {
checkSpans("table/RowGroupBuilder_spans.fo");
}
+ @Test
public void testNoRowSimple() throws Exception {
checkSimple("table/RowGroupBuilder_no-row_simple.fo");
}
+ @Test
public void testNoRowSpans() throws Exception {
checkSpans("table/RowGroupBuilder_no-row_spans.fo");
}
+ @Test
public void testNoColWithRowsSimple() throws Exception {
checkSimple("table/RowGroupBuilder_no-col_simple.fo");
}
+ @Test
public void testNoColWithRowsSpans() throws Exception {
checkSpans("table/RowGroupBuilder_no-col_spans.fo");
}
+ @Test
public void testNoColNoRowSimple() throws Exception {
checkSimple("table/RowGroupBuilder_no-col_no-row_simple.fo");
}
+ @Test
public void testNoColNoRowSpans() throws Exception {
checkSpans("table/RowGroupBuilder_no-col_no-row_spans.fo");
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TableColumnColumnNumberTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,13 +19,17 @@
package org.apache.fop.fo.flow.table;
+import static org.junit.Assert.assertEquals;
+
import java.util.Iterator;
+import org.junit.Test;
+
import org.apache.fop.datatypes.PercentBaseContext;
import org.apache.fop.fo.FObj;
-public class TableColumnColumnNumberTestCase extends AbstractTableTestCase {
+public class TableColumnColumnNumberTestCase extends AbstractTableTest {
/**
* A percentBaseContext that mimics the behaviour of TableLM for computing the widths
@@ -47,10 +51,6 @@ public class TableColumnColumnNumberTest
private TablePercentBaseContext percentBaseContext = new TablePercentBaseContext();
- public TableColumnColumnNumberTestCase() throws Exception {
- super();
- }
-
private void checkColumn(Table t, int number, boolean isImplicit, int spans, int repeated, int width) {
TableColumn c = t.getColumn(number - 1);
// TODO a repeated column has a correct number only for its first occurrence
@@ -61,6 +61,7 @@ public class TableColumnColumnNumberTest
assertEquals(width, c.getColumnWidth().getValue(percentBaseContext));
}
+ @Test
public void testColumnNumber() throws Exception {
setUp("table/table-column_column-number.fo");
Iterator tableIter = getTableIterator();
@@ -97,6 +98,7 @@ public class TableColumnColumnNumberTest
}
}
+ @Test
public void testImplicitColumns() throws Exception {
setUp("table/implicit_columns_column-number.fo");
percentBaseContext.setUnitaryWidth(100000);
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fo/flow/table/TooManyColumnsTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,33 +19,36 @@
package org.apache.fop.fo.flow.table;
+import org.junit.Test;
-public class TooManyColumnsTestCase extends ErrorCheckTestCase {
-
- public TooManyColumnsTestCase() throws Exception {
- super();
- }
+public class TooManyColumnsTestCase extends ErrorCheckTest {
+ @Test
public void testBody1() throws Exception {
launchTest("table/too-many-columns_body_1.fo");
}
+ @Test
public void testBody2() throws Exception {
launchTest("table/too-many-columns_body_2.fo");
}
+ @Test
public void testBody3() throws Exception {
launchTest("table/too-many-columns_body_3.fo");
}
+ @Test
public void testBody4() throws Exception {
launchTest("table/too-many-columns_body_4.fo");
}
+ @Test
public void testHeader() throws Exception {
launchTest("table/too-many-columns_header.fo");
}
+ @Test
public void testFooter() throws Exception {
launchTest("table/too-many-columns_footer.fo");
}
Copied: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java (from r1307575, xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java)
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java?p2=xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java&p1=xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java&r1=1307575&r2=1309921&rev=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java Thu Apr 5 16:19:19 2012
@@ -43,7 +43,8 @@ public class DejaVuLGCSerifTestCase {
@Before
public void setUp() throws Exception {
File file = new File("test/resources/fonts/ttf/DejaVuLGCSerif.ttf");
- font = FontLoader.loadFont(file, "", true, EncodingMode.AUTO, fontResolver);
+ font = FontLoader.loadFont(file, "", true, EmbeddingMode.AUTO, EncodingMode.AUTO,
+ fontResolver);
}
/**
Copied: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/EncodingModeTestCase.java (from r1307575, xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/EncodingModeTestCase.java)
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/EncodingModeTestCase.java?p2=xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/EncodingModeTestCase.java&p1=xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/EncodingModeTestCase.java&r1=1307575&r2=1309921&rev=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/fonts/EncodingModeTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/EncodingModeTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,10 +19,10 @@
package org.apache.fop.fonts;
-import static org.junit.Assert.assertEquals;
-
import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
public class EncodingModeTestCase {
@Test
@@ -34,8 +34,8 @@ public class EncodingModeTestCase {
@Test
public void testGetValue() {
- assertEquals(EncodingMode.AUTO, EncodingMode.getEncodingMode("auto"));
- assertEquals(EncodingMode.SINGLE_BYTE, EncodingMode.getEncodingMode("single-byte"));
- assertEquals(EncodingMode.CID, EncodingMode.getEncodingMode("cid"));
+ assertEquals(EncodingMode.AUTO, EncodingMode.getValue("auto"));
+ assertEquals(EncodingMode.SINGLE_BYTE, EncodingMode.getValue("single-byte"));
+ assertEquals(EncodingMode.CID, EncodingMode.getValue("cid"));
}
}
Added: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java?rev=1309921&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java (added)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java Thu Apr 5 16:19:19 2012
@@ -0,0 +1,198 @@
+/*
+ * 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.truetype;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests {@link GlyfTable}.
+ */
+public class GlyfTableTestCase {
+
+ private final static class DirData {
+
+ final long offset;
+ final long length;
+
+ DirData(long offset, long length) {
+ this.offset = offset;
+ this.length = length;
+ }
+ }
+
+ private FontFileReader subsetReader;
+
+ private long[] glyphOffsets;
+
+ private FontFileReader originalFontReader;
+
+ @Before
+ public void setUp() throws IOException {
+ originalFontReader = new FontFileReader("test/resources/fonts/ttf/DejaVuLGCSerif.ttf");
+ }
+
+ /**
+ * Tests that composed glyphs are included in the glyph subset if a composite glyph is used.
+ *
+ * @throws IOException if an I/O error occurs
+ */
+ @Test
+ public void testPopulateGlyphsWithComposites() throws IOException {
+ // Glyph 408 -> U+01D8 "uni01D8" this is a composite glyph.
+ int[] composedIndices = setupTest(408);
+
+ int[] expected = new int[composedIndices.length];
+ expected[1] = 6;
+ expected[5] = 2;
+ expected[6] = 4;
+
+ assertArrayEquals(expected, composedIndices);
+ }
+
+ /**
+ * Tests that no glyphs are added if there are no composite glyphs the subset.
+ *
+ * @throws IOException if an I/O error occurs
+ */
+ @Test
+ public void testPopulateNoCompositeGlyphs() throws IOException {
+ int[] composedIndices = setupTest(36, 37, 38); // "A", "B", "C"
+ int[] expected = new int[composedIndices.length];
+
+ // There should be NO composite glyphs
+ assertArrayEquals(expected, composedIndices);
+ }
+
+ /**
+ * Tests that glyphs aren't remapped twice if the glyph before a composite glyph has 0-length.
+ *
+ * @throws IOException if an I/O error occurs
+ */
+ @Test
+ public void testGlyphsNotRemappedTwice() throws IOException {
+ int composedGlyph = 12;
+ // The order of these glyph indices, must NOT be changed! (see javadoc above)
+ int[] composedIndices = setupTest(1, 2, 3, 16, 2014, 4, 7, 8, 13, 2015, composedGlyph);
+
+ // There are 2 composed glyphs within the subset
+ int[] expected = new int[composedIndices.length];
+ expected[10] = composedGlyph;
+
+ assertArrayEquals(expected, composedIndices);
+ }
+
+ /**
+ * Tests that the correct glyph is included in the subset, when a composite glyph composed of a
+ * composite glyph is used.
+ *
+ * @throws IOException if an I/O error occurs
+ */
+ @Test
+ public void testSingleRecursionStep() throws IOException {
+ // Glyph 2077 -> U+283F "uni283F" this is composed of a composite glyph (recursive).
+ int[] composedIndices = setupTest(2077);
+
+ int[] expected = new int[composedIndices.length];
+ expected[1] = 2;
+
+ assertArrayEquals(expected, composedIndices);
+ }
+
+ private int[] setupTest(int... glyphIndices) throws IOException {
+ Map<Integer, Integer> glyphs = new HashMap<Integer, Integer>();
+ int index = 0;
+ glyphs.put(0, index++); // Glyph 0 (.notdef) must ALWAYS be in the subset
+
+ for (int glyphIndex : glyphIndices) {
+ glyphs.put(glyphIndex, index++);
+ }
+ setupSubsetReader(glyphs);
+ readLoca();
+
+ return retrieveIndicesOfComposedGlyphs();
+ }
+
+ private void setupSubsetReader(Map<Integer, Integer> glyphs) throws IOException {
+ TTFSubSetFile fontFile = new TTFSubSetFile();
+ fontFile.readFont(originalFontReader, "Deja", glyphs);
+ byte[] subsetFont = fontFile.getFontSubset();
+ InputStream intputStream = new ByteArrayInputStream(subsetFont);
+ subsetReader = new FontFileReader(intputStream);
+ }
+
+ private void readLoca() throws IOException {
+ DirData loca = getTableData("loca");
+ int numberOfGlyphs = (int) (loca.length - 4) / 4;
+ glyphOffsets = new long[numberOfGlyphs];
+ subsetReader.seekSet(loca.offset);
+
+ for (int i = 0; i < numberOfGlyphs; i++) {
+ glyphOffsets[i] = subsetReader.readTTFULong();
+ }
+ }
+
+ private int[] retrieveIndicesOfComposedGlyphs() throws IOException {
+ DirData glyf = getTableData("glyf");
+ int[] composedGlyphIndices = new int[glyphOffsets.length];
+
+ for (int i = 0; i < glyphOffsets.length; i++) {
+ long glyphOffset = glyphOffsets[i];
+ if (i != glyphOffsets.length - 1 && glyphOffset == glyphOffsets[i + 1]) {
+ continue;
+ }
+ subsetReader.seekSet(glyf.offset + glyphOffset);
+ short numberOfContours = subsetReader.readTTFShort();
+ if (numberOfContours < 0) {
+ subsetReader.skip(8);
+ subsetReader.readTTFUShort(); // flags
+ int glyphIndex = subsetReader.readTTFUShort();
+ composedGlyphIndices[i] = glyphIndex;
+ }
+ }
+ return composedGlyphIndices;
+ }
+
+ private DirData getTableData(String tableName) throws IOException {
+ subsetReader.seekSet(0);
+ subsetReader.skip(12);
+ String name;
+ do {
+ name = subsetReader.readTTFString(4);
+ subsetReader.skip(4 * 3);
+ } while (!name.equals(tableName));
+
+ subsetReader.skip(-8); // We've found the table, go back to get the data we skipped over
+ return new DirData(subsetReader.readTTFLong(), subsetReader.readTTFLong());
+ }
+
+ private void assertArrayEquals(int[] expected, int[] actual) {
+ assertTrue(Arrays.equals(expected, actual));
+ }
+}
Propchange: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/GlyfTableTestCase.java
------------------------------------------------------------------------------
svn:keywords = Revision Id
Added: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java?rev=1309921&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java (added)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java Thu Apr 5 16:19:19 2012
@@ -0,0 +1,59 @@
+/*
+ * 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.truetype;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Test;
+
+import org.apache.fop.fonts.EmbeddingMode;
+import org.apache.fop.fonts.EncodingMode;
+import org.apache.fop.fonts.FontManager;
+import org.apache.fop.fonts.FontResolver;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Test case for {@link TTFFontLoader}.
+ */
+public class TTFFontLoaderTestCase {
+
+ @Test
+ public void testUseKerning() throws IOException {
+ boolean useComplexScriptFeatures = false;
+ File file = new File("test/resources/fonts/ttf/DejaVuLGCSerif.ttf");
+ String absoluteFilePath = file.toURI().toURL().toExternalForm();
+ FontResolver resolver = FontManager.createMinimalFontResolver(useComplexScriptFeatures);
+ String fontName = "Deja Vu";
+ boolean embedded = false;
+ boolean useKerning = true;
+
+ TTFFontLoader fontLoader = new TTFFontLoader(absoluteFilePath, fontName, embedded,
+ EmbeddingMode.AUTO, EncodingMode.AUTO, useKerning, useComplexScriptFeatures, resolver);
+ assertTrue(fontLoader.getFont().hasKerningInfo());
+ useKerning = false;
+
+ fontLoader = new TTFFontLoader(absoluteFilePath, fontName, embedded, EmbeddingMode.AUTO,
+ EncodingMode.AUTO, useKerning, useComplexScriptFeatures, resolver);
+ assertFalse(fontLoader.getFont().hasKerningInfo());
+ }
+}
Propchange: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java
------------------------------------------------------------------------------
svn:keywords = Revision Id
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/FOTreeTestSuite.java Thu Apr 5 16:19:19 2012
@@ -19,129 +19,20 @@
package org.apache.fop.fotreetest;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-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.NameFileFilter;
-import org.apache.commons.io.filefilter.PrefixFileFilter;
-import org.apache.commons.io.filefilter.SuffixFileFilter;
-import org.apache.commons.io.filefilter.TrueFileFilter;
-
-import org.apache.fop.DebugHelper;
-import org.apache.fop.fo.flow.table.CollapsedConditionalBorderTestCase;
-import org.apache.fop.fo.flow.table.IllegalRowSpanTestCase;
-import org.apache.fop.fo.flow.table.RowGroupBuilderTestCase;
-import org.apache.fop.fo.flow.table.TableColumnColumnNumberTestCase;
-import org.apache.fop.fo.flow.table.TooManyColumnsTestCase;
-import org.apache.fop.layoutengine.LayoutEngineTestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
/**
* JUnit test suit for running layout engine test under JUnit control.
*/
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ org.apache.fop.fo.flow.table.AllTests.class,
+ org.apache.fop.fo.pagination.AllTests.class,
+ org.apache.fop.fotreetest.FOTreeTestCase.class,
+ org.apache.fop.fo.properties.CommonAccessibilityHolderTestCase.class,
+ org.apache.fop.fo.DelegatingFOEventHandlerTestCase.class
+})
public final class FOTreeTestSuite {
- static {
- DebugHelper.registerStandardElementListObservers();
- }
-
- private FOTreeTestSuite() {
- //don't instantiate!
- }
-
- /**
- * @return the test suite with all the tests (one for each XML file)
- * @throws IOException in case of an I/O problem
- */
- public static Test suite() throws IOException {
- TestSuite suite = new TestSuite();
- addXMLTestCases(suite);
- addUnitTestCases(suite);
- return suite;
- }
-
- private static void addXMLTestCases(TestSuite suite) throws IOException {
- File mainDir = new File("test/fotree");
-
- final FOTreeTester tester = new FOTreeTester();
-
- IOFileFilter filter;
- String single = System.getProperty("fop.fotree.single");
- String startsWith = System.getProperty("fop.fotree.starts-with");
- if (single != null) {
- filter = new NameFileFilter(single);
- } else if (startsWith != null) {
- filter = new PrefixFileFilter(startsWith);
- filter = new AndFileFilter(filter, new SuffixFileFilter(".fo"));
- } else {
- filter = new SuffixFileFilter(".fo");
- filter = LayoutEngineTestSuite.decorateWithDisabledList(filter);
- }
- Collection files = FileUtils.listFiles(new File(mainDir, "testcases"),
- filter, TrueFileFilter.INSTANCE);
- String privateTests = System.getProperty("fop.fotree.private");
- if ("true".equalsIgnoreCase(privateTests)) {
- Collection privateFiles = FileUtils.listFiles(
- new File(mainDir, "private-testcases"),
- filter, TrueFileFilter.INSTANCE);
- files.addAll(privateFiles);
- }
- Iterator i = files.iterator();
- while (i.hasNext()) {
- File f = (File)i.next();
- addTestCase(suite, tester, f);
- }
- }
-
- private static void addTestCase(TestSuite suite,
- final FOTreeTester tester, final File f) {
- suite.addTest(new FOTreeTestCase(f.getName()) {
- public void runTest() throws Exception {
- try {
- prepare(tester, f);
- testMain();
- } catch (Exception e) {
- org.apache.commons.logging.LogFactory.getLog(this.getClass()).info(
- "Error on " + f.getName());
- throw e;
- }
- }
- });
- }
-
- private static void addUnitTestCases(TestSuite suite) {
- suite.addTestSuite(TooManyColumnsTestCase.class);
- suite.addTestSuite(IllegalRowSpanTestCase.class);
- suite.addTestSuite(RowGroupBuilderTestCase.class);
- suite.addTestSuite(TableColumnColumnNumberTestCase.class);
- suite.addTestSuite(CollapsedConditionalBorderTestCase.class);
- }
-
- private static class FOTreeTestCase extends TestCase {
-
- private FOTreeTester tester;
- private File testFile;
-
- public FOTreeTestCase(String name) {
- super(name);
- }
-
- public void prepare(FOTreeTester tester, File testFile) {
- //super(testFile.getName());
- this.tester = tester;
- this.testFile = testFile;
- }
-
- public void testMain() throws Exception {
- tester.runTest(testFile);
- }
- }
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ResultCollector.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ResultCollector.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ResultCollector.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ResultCollector.java Thu Apr 5 16:19:19 2012
@@ -19,6 +19,7 @@
package org.apache.fop.fotreetest;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -29,7 +30,7 @@ public class ResultCollector {
private static ResultCollector instance = null;
- private List results = new java.util.ArrayList();
+ private List<String> results = new ArrayList<String>();
/** @return the ResultCollector singleton */
public static ResultCollector getInstance() {
@@ -70,7 +71,7 @@ public class ResultCollector {
}
/** @return the list of results */
- public List getResults() {
+ public List<String> getResults() {
return Collections.unmodifiableList(results);
}
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/AssertElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/AssertElement.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/AssertElement.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/AssertElement.java Thu Apr 5 16:19:19 2012
@@ -61,7 +61,7 @@ public class AssertElement extends TestO
ResultCollector collector = ResultCollector.getInstance();
String propName = attlist.getValue("property");
- String expected = attlist.getValue("expected");
+ String expected = attlist.getValue("expected");
String component = null;
int dotIndex = propName.indexOf('.');
if (dotIndex >= 0) {
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/TestElementMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/TestElementMapping.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/TestElementMapping.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/fotreetest/ext/TestElementMapping.java Thu Apr 5 16:19:19 2012
@@ -40,7 +40,7 @@ public class TestElementMapping extends
/** @see org.apache.fop.fo.ElementMapping#initialize() */
protected void initialize() {
if (foObjs == null) {
- foObjs = new java.util.HashMap();
+ foObjs = new java.util.HashMap<String, Maker>();
foObjs.put("assert", new AssertMaker());
}
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImageLoaderTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,12 +19,14 @@
package org.apache.fop.image.loader.batik;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
import java.io.File;
-import junit.framework.TestCase;
-
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.FopFactory;
import org.apache.xmlgraphics.image.loader.Image;
@@ -35,23 +37,24 @@ import org.apache.xmlgraphics.image.load
import org.apache.xmlgraphics.image.loader.impl.ImageRendered;
import org.apache.xmlgraphics.image.loader.impl.ImageXMLDOM;
import org.apache.xmlgraphics.image.writer.ImageWriterUtil;
+import org.junit.Test;
/**
* Tests for bundled ImageLoader implementations.
*/
-public class ImageLoaderTestCase extends TestCase {
+public class ImageLoaderTestCase {
private static final File DEBUG_TARGET_DIR = null; //new File("D:/");
private FopFactory fopFactory;
- public ImageLoaderTestCase(String name) {
- super(name);
+ public ImageLoaderTestCase() {
fopFactory = FopFactory.newInstance();
fopFactory.setSourceResolution(72);
fopFactory.setTargetResolution(300);
}
+ @Test
public void testSVG() throws Exception {
String uri = "test/resources/images/img-w-size.svg";
@@ -90,6 +93,7 @@ public class ImageLoaderTestCase extends
assertEquals(16000, info.getSize().getHeightMpt());
}
+ @Test
public void testSVGNoViewbox() throws Exception {
String uri = "test/resources/images/circles.svg";
@@ -135,6 +139,7 @@ public class ImageLoaderTestCase extends
assertEquals(340158, info.getSize().getHeightMpt());
}
+ @Test
public void testWMF() throws Exception {
String uri = "test/resources/images/testChart.wmf";
@@ -162,6 +167,7 @@ public class ImageLoaderTestCase extends
assertEquals(612000, info.getSize().getHeightMpt());
}
+ @Test
public void testSVGWithReferences() throws Exception {
String uri = "test/resources/fop/svg/images.svg";
FopFactory ff = FopFactory.newInstance();
@@ -213,7 +219,4 @@ public class ImageLoaderTestCase extends
}
assertFalse("Embedding JPG into SVG failed", same);
}
-
-
-
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/image/loader/batik/ImagePreloaderTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,6 +19,9 @@
package org.apache.fop.image.loader.batik;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.io.IOException;
import javax.xml.transform.Source;
@@ -26,42 +29,39 @@ import javax.xml.transform.TransformerEx
import javax.xml.transform.URIResolver;
import javax.xml.transform.dom.DOMSource;
-import junit.framework.TestCase;
-
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
import org.apache.batik.dom.svg.SVGDOMImplementation;
-
-import org.apache.xmlgraphics.image.loader.ImageException;
-import org.apache.xmlgraphics.image.loader.ImageInfo;
-import org.apache.xmlgraphics.image.loader.ImageManager;
-
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
+import org.apache.xmlgraphics.image.loader.ImageException;
+import org.apache.xmlgraphics.image.loader.ImageInfo;
+import org.apache.xmlgraphics.image.loader.ImageManager;
+import org.junit.Test;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
/**
* Tests for bundled image preloader implementations.
*/
-public class ImagePreloaderTestCase extends TestCase {
+public class ImagePreloaderTestCase {
private FopFactory fopFactory;
- public ImagePreloaderTestCase(String name) {
- super(name);
+ public ImagePreloaderTestCase() {
fopFactory = FopFactory.newInstance();
fopFactory.setSourceResolution(72);
fopFactory.setTargetResolution(300);
}
+ @Test
public void testSVG() throws Exception {
String uri = "test/resources/images/img-w-size.svg";
checkSVGFile(uri);
}
+ @Test
public void testSVGZ() throws Exception {
String uri = "test/resources/images/img-w-size.svgz";
@@ -83,6 +83,7 @@ public class ImagePreloaderTestCase exte
assertEquals(16000, info.getSize().getHeightMpt());
}
+ @Test
public void testSVGNoSize() throws Exception {
String uri = "test/resources/images/img.svg";
FOUserAgent userAgent = fopFactory.newFOUserAgent();
@@ -99,6 +100,7 @@ public class ImagePreloaderTestCase exte
assertEquals(100000, info.getSize().getHeightMpt());
}
+ @Test
public void testSVGWithDOM() throws Exception {
String uri = "my:SVGImage";
FOUserAgent userAgent = fopFactory.newFOUserAgent();
@@ -143,6 +145,7 @@ public class ImagePreloaderTestCase exte
assertEquals(20000, info.getSize().getHeightMpt());
}
+ @Test
public void testWMF() throws Exception {
String uri = "test/resources/images/testChart.wmf";
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java Thu Apr 5 16:19:19 2012
@@ -22,6 +22,7 @@ package org.apache.fop.intermediate;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Collection;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
@@ -32,25 +33,39 @@ import javax.xml.transform.dom.DOMSource
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.TransformerHandler;
-import org.w3c.dom.Document;
-
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.area.AreaTreeModel;
import org.apache.fop.area.AreaTreeParser;
import org.apache.fop.area.RenderPagesModel;
import org.apache.fop.fonts.FontInfo;
+import org.apache.fop.layoutengine.LayoutEngineTestUtils;
import org.apache.fop.render.Renderer;
import org.apache.fop.render.xml.XMLRenderer;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.w3c.dom.Document;
/**
* Tests the area tree parser.
*/
-public class AreaTreeParserTestCase extends AbstractIntermediateTestCase {
+@RunWith(Parameterized.class)
+public class AreaTreeParserTestCase extends AbstractIntermediateTest {
/**
+ * Creates the parameters for this test.
+ *
+ * @return the list of file arrays populated with test files
+ * @throws IOException if an I/O error occurs while reading the test file
+ */
+ @Parameters
+ public static Collection<File[]> getParameters() throws IOException {
+ return LayoutEngineTestUtils.getLayoutTestFiles();
+ }
+ /**
* Constructor for the test suite that is used for each test file.
* @param testFile the test file to run
* @throws IOException
@@ -72,7 +87,7 @@ public class AreaTreeParserTestCase exte
setErrorListener(transformer);
//Set up XMLRenderer to render to a DOM
- TransformerHandler handler = env.getTransformerFactory().newTransformerHandler();
+ TransformerHandler handler = testAssistant.getTransformerFactory().newTransformerHandler();
DOMResult domResult = new DOMResult();
handler.setResult(domResult);
@@ -82,10 +97,9 @@ public class AreaTreeParserTestCase exte
Renderer targetRenderer = userAgent.getRendererFactory().createRenderer(
userAgent, getTargetMIME());
- XMLRenderer renderer = new XMLRenderer();
+ XMLRenderer renderer = new XMLRenderer(userAgent);
renderer.mimicRenderer(targetRenderer);
renderer.setContentHandler(handler);
- renderer.setUserAgent(userAgent);
userAgent.setRendererOverride(renderer);
@@ -113,15 +127,13 @@ public class AreaTreeParserTestCase exte
AreaTreeParser parser = new AreaTreeParser();
//Set up XMLRenderer to render to a DOM
- TransformerHandler handler = env.getTransformerFactory().newTransformerHandler();
+ TransformerHandler handler = testAssistant.getTransformerFactory().newTransformerHandler();
DOMResult domResult = new DOMResult();
handler.setResult(domResult);
- XMLRenderer renderer = new XMLRenderer();
- renderer.setContentHandler(handler);
-
FOUserAgent userAgent = createUserAgent();
+ XMLRenderer renderer = new XMLRenderer(userAgent);
userAgent.setRendererOverride(renderer);
- renderer.setUserAgent(userAgent);
+ renderer.setContentHandler(handler);
FontInfo fontInfo = new FontInfo();
AreaTreeModel treeModel = new RenderPagesModel(userAgent,
@@ -132,4 +144,17 @@ public class AreaTreeParserTestCase exte
return (Document)domResult.getNode();
}
+ @Override
+ @Test
+ public void runTest() throws Exception {
+ try {
+ testParserToIntermediateFormat();
+ testParserToPDF();
+ } catch (Exception e) {
+ org.apache.commons.logging.LogFactory.getLog(this.getClass()).error(
+ "Error on " + testFile.getName());
+ throw e;
+ }
+ }
+
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/AreaTreeXMLFormatTestSuite.java Thu Apr 5 16:19:19 2012
@@ -19,53 +19,14 @@
package org.apache.fop.intermediate;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.apache.fop.layoutengine.LayoutEngineTestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
/**
* JUnit test suite for the area tree XML format
*/
+@RunWith(Suite.class)
+@SuiteClasses({ AreaTreeParserTestCase.class })
public class AreaTreeXMLFormatTestSuite {
-
- /**
- * @return the test suite with all the tests (one for each XML file)
- * @throws IOException in case of an I/O problem
- */
- public static Test suite() throws IOException {
- TestSuite suite = new TestSuite();
-
- Collection files = LayoutEngineTestSuite.getTestFiles();
-
- Iterator i = files.iterator();
- while (i.hasNext()) {
- File f = (File)i.next();
- addATTestCase(suite, f);
- }
-
- return suite;
- }
-
- private static void addATTestCase(TestSuite suite,
- final File f) throws IOException {
- suite.addTest(new AreaTreeParserTestCase(f) {
- public void runTest() throws Exception {
- try {
- testParserToIntermediateFormat();
- testParserToPDF();
- } catch (Exception e) {
- org.apache.commons.logging.LogFactory.getLog(
- this.getClass()).error("Error on " + f.getName());
- throw e;
- }
- }
- });
- }
-
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFCheck.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFCheck.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFCheck.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFCheck.java Thu Apr 5 16:19:19 2012
@@ -21,10 +21,12 @@ package org.apache.fop.intermediate;
import org.w3c.dom.Document;
+import org.apache.fop.check.Check;
+
/**
* Check interface for intermediate format checks.
*/
-public interface IFCheck {
+public interface IFCheck extends Check {
/**
* Called to perform the check.
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFMimickingTestCase.java Thu Apr 5 16:19:19 2012
@@ -19,6 +19,8 @@
package org.apache.fop.intermediate;
+import static org.junit.Assert.fail;
+
import java.io.File;
import javax.xml.transform.ErrorListener;
@@ -29,7 +31,8 @@ import javax.xml.transform.dom.DOMResult
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
-import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Test;
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
@@ -48,13 +51,12 @@ import org.apache.fop.render.intermediat
/**
* This test checks the correct mimicking of a different output format.
*/
-public class IFMimickingTestCase extends TestCase {
+public class IFMimickingTestCase {
private FopFactory fopFactory;
- /** {@inheritDoc} */
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() throws Exception {
fopFactory = FopFactory.newInstance();
File configFile = new File("test/test-no-xml-metrics.xconf");
fopFactory.setUserConfig(configFile);
@@ -64,6 +66,7 @@ public class IFMimickingTestCase extends
* Tests IF document handler mimicking with PDF output.
* @throws Exception if an error occurs
*/
+ @Test
public void testMimickingPDF() throws Exception {
doTestMimicking(MimeConstants.MIME_PDF);
}
@@ -72,6 +75,7 @@ public class IFMimickingTestCase extends
* Tests IF document handler mimicking with PostScript output.
* @throws Exception if an error occurs
*/
+ @Test
public void testMimickingPS() throws Exception {
doTestMimicking(MimeConstants.MIME_POSTSCRIPT);
}
@@ -80,6 +84,7 @@ public class IFMimickingTestCase extends
* Tests IF document handler mimicking with TIFF output.
* @throws Exception if an error occurs
*/
+ @Test
public void testMimickingTIFF() throws Exception {
doTestMimicking(MimeConstants.MIME_TIFF);
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFParserTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFParserTestCase.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFParserTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFParserTestCase.java Thu Apr 5 16:19:19 2012
@@ -22,59 +22,56 @@ package org.apache.fop.intermediate;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Collection;
-import javax.xml.XMLConstants;
-import javax.xml.transform.Result;
import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamResult;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
import org.w3c.dom.Document;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.Fop;
-import org.apache.fop.apps.MimeConstants;
import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.layoutengine.TestEnvironment;
+import org.apache.fop.layoutengine.LayoutEngineTestUtils;
import org.apache.fop.render.intermediate.IFContext;
import org.apache.fop.render.intermediate.IFDocumentHandler;
import org.apache.fop.render.intermediate.IFParser;
-import org.apache.fop.render.intermediate.IFRenderer;
import org.apache.fop.render.intermediate.IFSerializer;
/**
* Tests the intermediate format parser.
*/
-public class IFParserTestCase extends AbstractIntermediateTestCase {
+@RunWith(Parameterized.class)
+public class IFParserTestCase extends AbstractIFTest {
- private static TestEnvironment env = new TestEnvironment();
- private static Schema ifSchema;
+ /** Set this to true to get the correspondence between test number and test file. */
+ private static final boolean DEBUG = false;
- private static Schema getIFSchema() throws SAXException {
- if (ifSchema == null) {
- SchemaFactory sFactory;
- try {
- sFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- } catch (IllegalArgumentException iae) {
- System.out.println("No suitable SchemaFactory for XML Schema validation found!");
- return null;
- }
- File ifSchemaFile = new File(
- "src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd");
- ifSchema = sFactory.newSchema(ifSchemaFile);
+ /**
+ * Gets the parameters for this test
+ *
+ * @return a collection of file arrays containing the test files
+ * @throws IOException if an error occurs when trying to read the test files
+ */
+ @Parameters
+ public static Collection<File[]> getParameters() throws IOException {
+ Collection<File[]> testFiles = LayoutEngineTestUtils.getLayoutTestFiles();
+ if (DEBUG) {
+ printFiles(testFiles);
+ }
+ return testFiles;
+ }
+
+ private static void printFiles(Collection<File[]> files) {
+ int index = 0;
+ for (File[] file : files) {
+ assert file.length == 1;
+ System.out.println(String.format("%3d %s", index++, file[0]));
}
- return ifSchema;
}
/**
@@ -87,76 +84,7 @@ public class IFParserTestCase extends Ab
}
/** {@inheritDoc} */
- protected String getTargetMIME() {
- return MimeConstants.MIME_PDF;
- }
-
- /** {@inheritDoc} */
- protected String getIntermediateFileExtension() {
- return ".if.xml";
- }
-
- /** {@inheritDoc} */
- protected Document buildIntermediateDocument(Templates templates)
- throws Exception {
- Transformer transformer = templates.newTransformer();
- setErrorListener(transformer);
-
- //Set up XMLRenderer to render to a DOM
- DOMResult domResult = new DOMResult();
-
- FOUserAgent userAgent = createUserAgent();
-
- //Create an instance of the target renderer so the XMLRenderer can use its font setup
- IFDocumentHandler targetHandler = userAgent.getRendererFactory().createDocumentHandler(
- userAgent, getTargetMIME());
-
- //Setup painter
- IFSerializer serializer = new IFSerializer();
- serializer.setContext(new IFContext(userAgent));
- serializer.mimicDocumentHandler(targetHandler);
- serializer.setResult(domResult);
-
- //Setup renderer
- IFRenderer renderer = new IFRenderer();
- renderer.setUserAgent(userAgent);
-
- renderer.setDocumentHandler(serializer);
- userAgent.setRendererOverride(renderer);
-
- Fop fop = fopFactory.newFop(userAgent);
- Result res = new SAXResult(fop.getDefaultHandler());
- transformer.transform(new DOMSource(testDoc), res);
-
- return (Document)domResult.getNode();
- }
-
- /** {@inheritDoc} */
- protected void validate(Document doc) throws SAXException, IOException {
- Schema schema = getIFSchema();
- if (schema == null) {
- return; //skip validation;
- }
- Validator validator = schema.newValidator();
- validator.setErrorHandler(new ErrorHandler() {
-
- public void error(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void fatalError(SAXParseException exception) throws SAXException {
- throw exception;
- }
-
- public void warning(SAXParseException exception) throws SAXException {
- //ignore
- }
-
- });
- validator.validate(new DOMSource(doc));
- }
-
- /** {@inheritDoc} */
+ @Override
protected void parseAndRender(Source src, OutputStream out) throws Exception {
IFParser parser = new IFParser();
@@ -170,6 +98,7 @@ public class IFParserTestCase extends Ab
}
/** {@inheritDoc} */
+ @Override
protected Document parseAndRenderToIntermediateFormat(Source src) throws Exception {
IFParser parser = new IFParser();
@@ -185,4 +114,16 @@ public class IFParserTestCase extends Ab
return (Document)domResult.getNode();
}
+ @Override
+ @Test
+ public void runTest() throws Exception {
+ try {
+ testParserToIntermediateFormat();
+ testParserToPDF();
+ } catch (Exception e) {
+ org.apache.commons.logging.LogFactory.getLog(this.getClass()).error(
+ "Error on " + testFile.getName());
+ throw e;
+ }
+ }
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFTester.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFTester.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFTester.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IFTester.java Thu Apr 5 16:19:19 2012
@@ -20,182 +20,63 @@
package org.apache.fop.intermediate;
import java.io.File;
-import java.lang.reflect.Constructor;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
-import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.FopFactory;
-import org.apache.fop.area.AreaTreeModel;
-import org.apache.fop.area.AreaTreeParser;
-import org.apache.fop.area.RenderPagesModel;
-import org.apache.fop.events.model.EventSeverity;
-import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.layoutengine.EvalCheck;
-import org.apache.fop.layoutengine.TrueCheck;
-import org.apache.fop.render.intermediate.IFContext;
-import org.apache.fop.render.intermediate.IFRenderer;
-import org.apache.fop.render.intermediate.IFSerializer;
-import org.apache.fop.util.ConsoleEventListenerForTests;
-import org.apache.fop.util.DelegatingContentHandler;
/**
* Does tests on the intermediate format.
*/
public class IFTester {
- private static final Map IF_CHECK_CLASSES = new java.util.HashMap();
-
- static {
- IF_CHECK_CLASSES.put("true", TrueCheck.class);
- IF_CHECK_CLASSES.put("eval", EvalCheck.class);
- }
-
- private FopFactory fopFactory = FopFactory.newInstance();
+ private final IFChecksFactory ifChecksFactory = new IFChecksFactory();
- private SAXTransformerFactory tfactory
- = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
+ private final TransformerFactory tfactory;
private File backupDir;
/**
- * Main constructor
+ * Main constructor.
+ *
+ * @param transformerFactory the factory used to serialize the intermediate format files
* @param backupDir an optional directory in which to write the serialized
- * intermediate format file (may be null)
+ * IF files (may be null)
*/
- public IFTester(File backupDir) {
+ public IFTester(TransformerFactory transformerFactory, File backupDir) {
+ this.tfactory = transformerFactory;
this.backupDir = backupDir;
}
/**
- * Factory method to create IF checks from DOM elements.
- * @param el DOM element to create the check from
- * @return The newly create check
- */
- protected IFCheck createIFCheck(Element el) {
- String name = el.getTagName();
- Class clazz = (Class)IF_CHECK_CLASSES.get(name);
- if (clazz != null) {
- try {
- Constructor c = clazz.getDeclaredConstructor(new Class[] {Node.class});
- IFCheck instance = (IFCheck)c.newInstance(new Object[] {el});
- return instance;
- } catch (Exception e) {
- throw new RuntimeException("Error while instantiating check '"
- + name + "': " + e.getMessage());
- }
- } else {
- throw new IllegalArgumentException("No check class found: " + name);
- }
- }
-
- private Document createIF(File testFile, Document areaTreeXML) throws TransformerException {
- try {
- FOUserAgent ua = fopFactory.newFOUserAgent();
- ua.setBaseURL(testFile.getParentFile().toURI().toURL().toExternalForm());
- ua.getEventBroadcaster().addEventListener(
- new ConsoleEventListenerForTests(testFile.getName(), EventSeverity.WARN));
-
- IFRenderer ifRenderer = new IFRenderer();
- ifRenderer.setUserAgent(ua);
-
- IFSerializer serializer = new IFSerializer();
- serializer.setContext(new IFContext(ua));
- DOMResult result = new DOMResult();
- serializer.setResult(result);
- ifRenderer.setDocumentHandler(serializer);
-
- ua.setRendererOverride(ifRenderer);
- FontInfo fontInfo = new FontInfo();
- //Construct the AreaTreeModel that will received the individual pages
- final AreaTreeModel treeModel = new RenderPagesModel(ua,
- null, fontInfo, null);
-
- //Iterate over all intermediate files
- AreaTreeParser parser = new AreaTreeParser();
- ContentHandler handler = parser.getContentHandler(treeModel, ua);
-
- DelegatingContentHandler proxy = new DelegatingContentHandler() {
-
- public void endDocument() throws SAXException {
- super.endDocument();
- //Signal the end of the processing.
- //The renderer can finalize the target document.
- treeModel.endDocument();
- }
-
- };
- proxy.setDelegateContentHandler(handler);
-
- Transformer transformer = tfactory.newTransformer();
- transformer.transform(new DOMSource(areaTreeXML), new SAXResult(proxy));
-
- return (Document)result.getNode();
- } catch (Exception e) {
- throw new TransformerException(
- "Error while generating intermediate format file: " + e.getMessage(), e);
- }
- }
-
- /**
* Runs the intermediate format checks.
- * @param testFile the original test file
+ * @param testName the name of the test case
* @param checksRoot the root element containing the IF checks
- * @param areaTreeXML the area tree XML
+ * @param ifDocument the IF XML
* @throws TransformerException if an error occurs while transforming the content
*/
- public void doIFChecks(File testFile, Element checksRoot, Document areaTreeXML)
- throws TransformerException {
- Document ifDocument = createIF(testFile, areaTreeXML);
+ public void doIFChecks(String testName, Element checksRoot, Document ifDocument)
+ throws TransformerException {
if (this.backupDir != null) {
Transformer transformer = tfactory.newTransformer();
Source src = new DOMSource(ifDocument);
- File targetFile = new File(this.backupDir, testFile.getName() + ".if.xml");
+ File targetFile = new File(this.backupDir, testName + ".if.xml");
Result res = new StreamResult(targetFile);
transformer.transform(src, res);
}
-
- //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(createIFCheck((Element)node));
- }
- }
-
+ List<IFCheck> checks = ifChecksFactory.createCheckList(checksRoot);
if (checks.size() == 0) {
- throw new RuntimeException("No checks are available!");
+ throw new RuntimeException("No available IF check");
}
-
- //Run the actual tests now that we know that the checks themselves are ok
- doIFChecks(checks, ifDocument);
- }
-
- private void doIFChecks(List checks, Document ifDocument) {
- Iterator i = checks.iterator();
- while (i.hasNext()) {
- IFCheck check = (IFCheck)i.next();
+ for (IFCheck check : checks) {
check.check(ifDocument);
}
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/intermediate/IntermediateFormatTestSuite.java Thu Apr 5 16:19:19 2012
@@ -19,53 +19,14 @@
package org.apache.fop.intermediate;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.apache.fop.layoutengine.LayoutEngineTestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
/**
- * JUnit test suite for the intermediate format
+ * A test suite for testing the Intermediate Format output.
*/
-public class IntermediateFormatTestSuite {
-
- /**
- * @return the test suite with all the tests (one for each XML file)
- * @throws IOException in case of an I/O problem
- */
- public static Test suite() throws IOException {
- TestSuite suite = new TestSuite();
-
- Collection files = LayoutEngineTestSuite.getTestFiles();
-
- Iterator i = files.iterator();
- while (i.hasNext()) {
- File f = (File)i.next();
- addIFTestCase(suite, f);
- }
-
- return suite;
- }
-
- private static void addIFTestCase(TestSuite suite,
- final File f) throws IOException {
- suite.addTest(new IFParserTestCase(f) {
- public void runTest() throws Exception {
- try {
- testParserToIntermediateFormat();
- testParserToPDF();
- } catch (Exception e) {
- org.apache.commons.logging.LogFactory.getLog(
- this.getClass()).error("Error on " + f.getName());
- throw e;
- }
- }
- });
- }
-
+@RunWith(Suite.class)
+@SuiteClasses({ IFTestCase.class })
+public final class IntermediateFormatTestSuite {
}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/ElementListCollector.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/ElementListCollector.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/ElementListCollector.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/ElementListCollector.java Thu Apr 5 16:19:19 2012
@@ -87,4 +87,4 @@ public class ElementListCollector implem
}
}
-}
\ No newline at end of file
+}
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/EvalCheck.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/EvalCheck.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/EvalCheck.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/EvalCheck.java Thu Apr 5 16:19:19 2012
@@ -42,16 +42,6 @@ public class EvalCheck implements Layout
private PrefixResolver prefixResolver;
/**
- * Creates a new instance
- * @param expected expected value
- * @param xpath XPath statement that needs to be evaluated
- */
- public EvalCheck(String expected, String xpath) {
- this.expected = expected;
- this.xpath = xpath;
- }
-
- /**
* Creates a new instance from a DOM node.
* @param node DOM node that defines this check
*/
Modified: xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/LayoutEngineCheck.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/LayoutEngineCheck.java?rev=1309921&r1=1309920&r2=1309921&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/LayoutEngineCheck.java (original)
+++ xmlgraphics/fop/branches/Temp_TrueTypeInPostScript/test/java/org/apache/fop/layoutengine/LayoutEngineCheck.java Thu Apr 5 16:19:19 2012
@@ -19,10 +19,12 @@
package org.apache.fop.layoutengine;
+import org.apache.fop.check.Check;
+
/**
* Defines the interface for check operations.
*/
-public interface LayoutEngineCheck {
+public interface LayoutEngineCheck extends Check {
/**
* Called to perform the check.
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org