jeremias    2003/07/04 13:50:29

  Added:       test/java/org/apache/fop/util
                        ASCII85InputStreamTestCase.java
                        ASCII85OutputStreamTestCase.java
               test/java/org/apache/fop BasicPDFTranscoderTestCase.java
                        AbstractFOPTestCase.java BasicDriverTestSuite.java
                        AbstractBasicTranscoderTestCase.java
                        UtilityCodeTestSuite.java
                        BasicPSTranscoderTestCase.java
                        BasicTranscoderTestSuite.java
                        BasicDriverTestCase.java
  Log:
  Initial set of test cases
  
  Revision  Changes    Path
  1.1                  
xml-fop/test/java/org/apache/fop/util/ASCII85InputStreamTestCase.java
  
  Index: ASCII85InputStreamTestCase.java
  ===================================================================
  /*
   * $Id: ASCII85InputStreamTestCase.java,v 1.1 2003/07/04 20:50:28 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop.util;
  
  import java.io.ByteArrayInputStream;
  import java.io.IOException;
  import java.io.InputStream;
  
  import org.apache.commons.io.IOUtil;
  import org.apache.commons.io.output.ByteArrayOutputStream;
  import org.apache.fop.pdf.PDFText;
  
  import junit.framework.TestCase;
  
  /**
   * Test case for ASCII85InputStream.
   * <p>
   * ATTENTION: Some of the tests here depend on the correct behaviour of
   * ASCII85OutputStream. If something fails here make sure 
   * ASCII85OutputStreamTestCase runs!
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class ASCII85InputStreamTestCase extends TestCase {
  
      private static final boolean DEBUG = false;
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public ASCII85InputStreamTestCase(String name) {
          super(name);
      }
  
      private byte[] decode(String text) throws Exception {
          byte[] ascii85 = text.getBytes("US-ASCII");
          InputStream in = new ByteArrayInputStream(ascii85);
          InputStream decoder = new ASCII85InputStream(in);
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          IOUtil.copy(decoder, baout);
          baout.close();
          return baout.toByteArray();
      }
  
      private byte[] getChunk(int count) {
          byte[] buf = new byte[count];
          System.arraycopy(ASCII85OutputStreamTestCase.DATA, 0, buf, 0, buf.length);
          return buf;
      }
      
      private String encode(byte[] data, int len) throws Exception {
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          java.io.OutputStream out = new ASCII85OutputStream(baout);
          out.write(data, 0, len);
          out.close();
          return new String(baout.toByteArray(), "US-ASCII");
      }
      
      
      private void innerTestDecode(byte[] data) throws Exception {
          String encoded = encode(data, data.length);
          if (DEBUG) {
              if (data[0] == 0) {
                  System.out.println("self-encode: " + data.length + " chunk 
000102030405...");
              } else {
                  System.out.println("self-encode: " + new String(data, "US-ASCII") 
                      + " " + PDFText.toHex(data));
              }
              System.out.println("  ---> " + encoded);
          }
          byte[] decoded = decode(encoded);
          if (DEBUG) {
              if (data[0] == 0) {
                  System.out.println("decoded: " + data.length + " chunk 
000102030405...");
              } else {
                  System.out.println("decoded: " + new String(decoded, "US-ASCII") 
                      + " " + PDFText.toHex(decoded));
              }
          }
          assertEquals(PDFText.toHex(data), PDFText.toHex(decoded));
      }
      
      /**
       * Tests the output of ASCII85.
       * @throws Exception if an error occurs
       */
      public void testDecode() throws Exception {
          byte[] buf;
          innerTestDecode("1. Bodypart".getBytes("US-ASCII"));
          if (DEBUG) {
              System.out.println("===========================================");
          } 
  
          innerTestDecode(getChunk(1));
          innerTestDecode(getChunk(2));
          innerTestDecode(getChunk(3));
          innerTestDecode(getChunk(4));
          innerTestDecode(getChunk(5));
          if (DEBUG) {
              System.out.println("===========================================");
          } 
          
          innerTestDecode(getChunk(10));
          innerTestDecode(getChunk(62));
          innerTestDecode(getChunk(63));
          innerTestDecode(getChunk(64));
          innerTestDecode(getChunk(65));
  
          if (DEBUG) {
              System.out.println("===========================================");
          } 
          String sz;
          sz = PDFText.toHex(decode("zz~>"));
          assertEquals(PDFText.toHex(new byte[] {0, 0, 0, 0, 0, 0, 0, 0}), sz);
          sz = PDFText.toHex(decode("z\t \0z\n~>"));
          assertEquals(PDFText.toHex(new byte[] {0, 0, 0, 0, 0, 0, 0, 0}), sz);
          if (DEBUG) {
              System.out.println("===========================================");
          } 
          try {
              decode("vz~>");
              fail("Illegal character should be detected");
          } catch (IOException ioe) {
              //expected
          }
          /* DISABLED because of try/catch in InputStream.read(byte[], int, int).
           * Only the exception happening on the first byte in a block is being
           * reported. BUG in JDK???
           *
          try {
              decode("zv~>");
              fail("Illegal character should be detected");
          } catch (IOException ioe) {
              //expected
          }*/
      }
      
      private byte[] getFullASCIIRange() {
          java.io.ByteArrayOutputStream baout = new java.io.ByteArrayOutputStream(256);
          for (int i = 254; i < 256; i++) {
              baout.write(i);
          }
          return baout.toByteArray();
      }
  
      /**
       * Tests the full 8-bit ASCII range.
       * @throws Exception if an error occurs
       */
      public void testFullASCIIRange() throws Exception {
          innerTestDecode(getFullASCIIRange());
      }
      
  }
  
  
  
  1.1                  
xml-fop/test/java/org/apache/fop/util/ASCII85OutputStreamTestCase.java
  
  Index: ASCII85OutputStreamTestCase.java
  ===================================================================
  /*
   * $Id: ASCII85OutputStreamTestCase.java,v 1.1 2003/07/04 20:50:28 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop.util;
  
  import java.io.OutputStream;
  
  import org.apache.commons.io.output.ByteArrayOutputStream;
  
  import junit.framework.TestCase;
  
  /**
   * Test case for ASCII85OutputStream
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class ASCII85OutputStreamTestCase extends TestCase {
  
      /** Test data */
      public static final byte[] DATA = new byte[100];
      
      static {
          //Fill in some data
          for (int i = 0; i < 100; i++) {
              DATA[i] = (byte)i;
          }
      }
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public ASCII85OutputStreamTestCase(String name) {
          super(name);
      }
  
      private String encode(int count) throws Exception {
          return encode(DATA, count);
      }
      
      private String encode(byte[] data, int len) throws Exception {
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          OutputStream out = new ASCII85OutputStream(baout);
          out.write(data, 0, len);
          out.close();
          return new String(baout.toByteArray(), "US-ASCII");
      }
  
      /**
       * Tests the output of ASCII85.
       * @throws Exception if an error occurs
       */
      public void testOutput() throws Exception {
          String sz = encode(new byte[] {0, 0, 0, 0, 0, 0, 0, 0}, 8);
          assertEquals("zz~>", sz);
          
          String s3 = encode(3);
          //System.out.println(">>>" + s3 + "<<<");
          assertEquals("!!*-~>", s3);
          
          String s10 = encode(10);
          //System.out.println(">>>" + s10 + "<<<");
          assertEquals("!!*-'\"9eu7#RL~>", s10);
          
          String s62 = encode(62);
          //System.out.println(">>>" + s62 + "<<<");
          assertEquals("!!*-'\"9eu7#RLhG$k3[W&.oNg'GVB\"(`=52*$$(B+<_pR,"
              + "UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?W~>", s62);
          
          String s63 = encode(63);
          //System.out.println(">>>" + s63 + "<<<");
          assertEquals("!!*-'\"9eu7#RLhG$k3[W&.oNg'GVB\"(`=52*$$(B+<_pR,"
              + "UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Yk\n~>", s63);
  
          String s64 = encode(64);
          //System.out.println(">>>" + s64 + "<<<");
          assertEquals("!!*-'\"9eu7#RLhG$k3[W&.oNg'GVB\"(`=52*$$(B+<_pR,"
              + "UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm\n~>", s64);
          
          String s65 = encode(65);
          //System.out.println(">>>" + s65 + "<<<");
          assertEquals("!!*-'\"9eu7#RLhG$k3[W&.oNg'GVB\"(`=52*$$(B+<_pR,"
            + "UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm\n5Q~>", s65);
          
      }
  
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/BasicPDFTranscoderTestCase.java
  
  Index: BasicPDFTranscoderTestCase.java
  ===================================================================
  /*
   * $Id: BasicPDFTranscoderTestCase.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import org.apache.batik.transcoder.Transcoder;
  import org.apache.fop.svg.PDFTranscoder;
  
  /**
   * Basic runtime test for the PDF transcoder. It is used to verify that 
   * nothing obvious is broken after compiling.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class BasicPDFTranscoderTestCase extends AbstractBasicTranscoderTestCase {
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public BasicPDFTranscoderTestCase(String name) {
          super(name);
      }
  
      /**
       * @see org.apache.fop.AbstractBasicTranscoderTestCase#createTranscoder()
       */
      protected Transcoder createTranscoder() {
          return new PDFTranscoder();
      }
  
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/AbstractFOPTestCase.java
  
  Index: AbstractFOPTestCase.java
  ===================================================================
  /*
   * $Id: AbstractFOPTestCase.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import java.io.File;
  
  import junit.framework.TestCase;
  
  /**
   * Abstract base test class for FOP's tests.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public abstract class AbstractFOPTestCase extends TestCase {
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public AbstractFOPTestCase(String name) {
          super(name);
      }
  
      /**
       * Returns the base directory to use for the tests.
       * @return the base directory
       */
      protected File getBaseDir() {
          String basedir = System.getProperty("basedir");
          if (basedir != null) {
              return new File(basedir);
          } else {
              return new File(".");
          }
      }
  
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/BasicDriverTestSuite.java
  
  Index: BasicDriverTestSuite.java
  ===================================================================
  /*
   * $Id: BasicDriverTestSuite.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  /**
   * Test suite for basic functionality of FOP's Driver API.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class BasicDriverTestSuite {
  
      /**
       * Builds the test suite
       * @return the test suite
       */
      public static Test suite() {
          TestSuite suite = new TestSuite(
              "Basic functionality test suite for FOP's Driver API");
          //$JUnit-BEGIN$
          suite.addTest(new TestSuite(BasicDriverTestCase.class));
          //$JUnit-END$
          return suite;
      }
  }
  
  
  
  1.1                  
xml-fop/test/java/org/apache/fop/AbstractBasicTranscoderTestCase.java
  
  Index: AbstractBasicTranscoderTestCase.java
  ===================================================================
  /*
   * $Id: AbstractBasicTranscoderTestCase.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import java.io.File;
  import java.io.InputStream;
  
  import org.apache.batik.transcoder.Transcoder;
  import org.apache.batik.transcoder.TranscoderInput;
  import org.apache.batik.transcoder.TranscoderOutput;
  import org.apache.commons.io.output.ByteArrayOutputStream;
  
  /**
   * Basic runtime test for FOP's transcoders. It is used to verify that 
   * nothing obvious is broken after compiling.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public abstract class AbstractBasicTranscoderTestCase extends AbstractFOPTestCase {
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public AbstractBasicTranscoderTestCase(String name) {
          super(name);
      }
  
      /**
       * Creates the transcoder to test.
       * @return the newly instantiated transcoder
       */
      protected abstract Transcoder createTranscoder();
  
      /**
       * Runs the PDF transcoder as if it were called by Batik's rasterizer. 
       * Without special configuration stuff.
       * @throws Exception if a problem occurs
       */
      public void testGenericPDFTranscoder() throws Exception {
          //Create transcoder
          Transcoder transcoder = createTranscoder();
          
          //Setup input
          File svgFile = new File(getBaseDir(), "test/resources/fop/svg/text.svg");
          InputStream in = new java.io.FileInputStream(svgFile);
          try {
              TranscoderInput input = new TranscoderInput(in);
              
              //Setup output
              ByteArrayOutputStream out = new ByteArrayOutputStream();
              try {
                  TranscoderOutput output = new TranscoderOutput(out);
                  
                  //Do the transformation
                  transcoder.transcode(input, output);
              } finally {
                  out.close();
              }
              assertTrue("Some output expected", out.size() > 0);
          } finally {
              in.close();
          }
      }
  
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/UtilityCodeTestSuite.java
  
  Index: UtilityCodeTestSuite.java
  ===================================================================
  /*
   * $Id: UtilityCodeTestSuite.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import org.apache.fop.util.ASCII85InputStreamTestCase;
  import org.apache.fop.util.ASCII85OutputStreamTestCase;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  /**
   * Test suite for FOP's utility classes.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class UtilityCodeTestSuite {
  
      /**
       * Builds the test suite
       * @return the test suite
       */
      public static Test suite() {
          TestSuite suite = new TestSuite(
              "Test suite for FOP's utility classes");
          //$JUnit-BEGIN$
          suite.addTest(new TestSuite(ASCII85OutputStreamTestCase.class));
          suite.addTest(new TestSuite(ASCII85InputStreamTestCase.class));
          //$JUnit-END$
          return suite;
      }
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/BasicPSTranscoderTestCase.java
  
  Index: BasicPSTranscoderTestCase.java
  ===================================================================
  /*
   * $Id: BasicPSTranscoderTestCase.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import org.apache.batik.transcoder.Transcoder;
  import org.apache.fop.render.ps.PSTranscoder;
  
  /**
   * Basic runtime test for the PS transcoder. It is used to verify that 
   * nothing obvious is broken after compiling.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class BasicPSTranscoderTestCase extends AbstractBasicTranscoderTestCase {
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public BasicPSTranscoderTestCase(String name) {
          super(name);
      }
  
      /**
       * @see org.apache.fop.AbstractBasicTranscoderTestCase#createTranscoder()
       */
      protected Transcoder createTranscoder() {
          return new PSTranscoder();
      }
  
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/BasicTranscoderTestSuite.java
  
  Index: BasicTranscoderTestSuite.java
  ===================================================================
  /*
   * $Id: BasicTranscoderTestSuite.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  /**
   * Test suite for basic functionality of FOP's transcoders.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class BasicTranscoderTestSuite {
  
      /**
       * Builds the test suite
       * @return the test suite
       */
      public static Test suite() {
          TestSuite suite = new TestSuite(
              "Basic functionality test suite for FOP's transcoders");
          //$JUnit-BEGIN$
          suite.addTest(new TestSuite(BasicPDFTranscoderTestCase.class));
          suite.addTest(new TestSuite(BasicPSTranscoderTestCase.class));
          //$JUnit-END$
          return suite;
      }
  }
  
  
  
  1.1                  xml-fop/test/java/org/apache/fop/BasicDriverTestCase.java
  
  Index: BasicDriverTestCase.java
  ===================================================================
  /*
   * $Id: BasicDriverTestCase.java,v 1.1 2003/07/04 20:50:29 jeremias Exp $
   * ============================================================================
   *                    The Apache Software License, Version 1.1
   * ============================================================================
   * 
   * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modifica-
   * tion, are permitted provided that the following conditions are met:
   * 
   * 1. Redistributions of source code must retain the above copyright notice,
   *    this list of conditions and the following disclaimer.
   * 
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   *    this list of conditions and the following disclaimer in the documentation
   *    and/or other materials provided with the distribution.
   * 
   * 3. The end-user documentation included with the redistribution, if any, must
   *    include the following acknowledgment: "This product includes software
   *    developed by the Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself, if
   *    and wherever such third-party acknowledgments normally appear.
   * 
   * 4. The names "FOP" and "Apache Software Foundation" must not be used to
   *    endorse or promote products derived from this software without prior
   *    written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   * 
   * 5. Products derived from this software may not be called "Apache", nor may
   *    "Apache" appear in their name, without prior written permission of the
   *    Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
   * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ============================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation and was originally created by
   * James Tauber <[EMAIL PROTECTED]>. For more information on the Apache
   * Software Foundation, please see <http://www.apache.org/>.
   */ 
  package org.apache.fop;
  
  import java.io.File;
  
  import javax.xml.parsers.SAXParser;
  import javax.xml.parsers.SAXParserFactory;
  import javax.xml.transform.Result;
  import javax.xml.transform.Source;
  import javax.xml.transform.Transformer;
  import javax.xml.transform.TransformerException;
  import javax.xml.transform.TransformerFactory;
  import javax.xml.transform.dom.DOMResult;
  import javax.xml.transform.sax.SAXResult;
  import javax.xml.transform.stream.StreamSource;
  
  import org.xml.sax.InputSource;
  
  import org.apache.avalon.framework.container.ContainerUtil;
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.avalon.framework.logger.NullLogger;
  import org.apache.commons.io.output.ByteArrayOutputStream;
  import org.apache.fop.apps.Driver;
  import org.apache.fop.apps.InputHandler;
  import org.apache.fop.apps.TraxInputHandler;
  import org.apache.fop.apps.XSLTInputHandler;
  import org.w3c.dom.Document;
  
  /**
   * Basic runtime test for the old Driver class. It is used to verify that 
   * nothing obvious is broken after compiling.
   * @author <a href="mailto:[EMAIL PROTECTED]">Jeremias Maerki</a>
   */
  public class BasicDriverTestCase extends AbstractFOPTestCase {
  
      private Logger logger = new NullLogger();
  
      /**
       * @see junit.framework.TestCase#TestCase(String)
       */
      public BasicDriverTestCase(String name) {
          super(name);
      }
  
      /**
       * Tests Driver with its special constructor for FO-->PDF conversion.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithConstructorSetup() throws Exception {
          File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver(
              new InputSource(foFile.toURL().toExternalForm()),
              baout);
          //Use deprecated method with purpose to validate backwards-compatibility.
          driver.setLogger(this.logger);
          driver.setRenderer(Driver.RENDER_PDF);
          driver.run();
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      /**
       * Tests Driver with InputSource and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithInputSource() throws Exception {
          File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          //Use deprecated method with purpose to validate backwards-compatibility.
          driver.setLogger(this.logger);
          driver.setInputSource(new InputSource(foFile.toURL().toExternalForm()));
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          driver.run();
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      private Document loadDocument(File foFile) 
                  throws TransformerException {
          TransformerFactory factory = TransformerFactory.newInstance();
          Transformer transformer = factory.newTransformer();
          Source src = new StreamSource(foFile);
          DOMResult res = new DOMResult();
          transformer.transform(src, res);
          return (Document)res.getNode();                                
      }
  
      /**
       * Tests Driver with Document and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithDOM() throws Exception {
          File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          //Use deprecated method with purpose to validate backwards-compatibility.
          driver.setLogger(this.logger);
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          driver.render(loadDocument(foFile));
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      /**
       * Tests Driver with XMLReader, InputSource and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithXMLReader() throws Exception {
          File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          //Use deprecated method with purpose to validate backwards-compatibility.
          driver.setLogger(this.logger);
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          SAXParserFactory factory = SAXParserFactory.newInstance();
          factory.setNamespaceAware(true);
          factory.setValidating(false);
          SAXParser parser = factory.newSAXParser();
          driver.render(parser.getXMLReader(),
              new InputSource(foFile.toURL().toExternalForm()));
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      /**
       * Tests Driver with JAXP and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithJAXP() throws Exception {
          File foFile = new File(getBaseDir(), "test/xml/bugtests/block.fo");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          ContainerUtil.enableLogging(driver, this.logger);
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          
          TransformerFactory factory = TransformerFactory.newInstance();
          Transformer transformer = factory.newTransformer(); //Identity transf.
          Source src = new StreamSource(foFile);
          Result res = new SAXResult(driver.getContentHandler());
          transformer.transform(src, res);
          
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      /**
       * Tests Driver with XsltInputHandler and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithXSLTInputHandler() throws Exception {
          File xmlFile = new File(getBaseDir(), "test/xml/1.xml");
          File xsltFile = new File(getBaseDir(), "test/xsl/doc.xsl");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          ContainerUtil.enableLogging(driver, this.logger);
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          
          InputHandler handler = new XSLTInputHandler(xmlFile, xsltFile);
          handler.run(driver);
          
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
      /**
       * Tests Driver with TraxInputHandler and OutputStream.
       * @throws Exception if anything fails
       */
      public void testFO2PDFWithTraxInputHandler() throws Exception {
          File xmlFile = new File(getBaseDir(), "test/xml/1.xml");
          File xsltFile = new File(getBaseDir(), "test/xsl/doc.xsl");
          ByteArrayOutputStream baout = new ByteArrayOutputStream();
          Driver driver = new Driver();
          ContainerUtil.enableLogging(driver, this.logger);
          driver.setOutputStream(baout);
          driver.setRenderer(Driver.RENDER_PDF);
          
          InputHandler handler = new TraxInputHandler(xmlFile, xsltFile);
          handler.run(driver);
          
          assertTrue("Generated PDF has zero length", baout.size() > 0);
      }
  
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to