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 me...@apache.org on 2012/06/11 16:36:00 UTC

svn commit: r1348871 [2/2] - in /xmlgraphics/fop/branches/Temp_URI_Unification: src/java/org/apache/fop/afp/ src/java/org/apache/fop/afp/fonts/ src/java/org/apache/fop/afp/modca/ src/java/org/apache/fop/afp/util/ src/java/org/apache/fop/apps/ src/java/...

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGDocumentHandler.java Mon Jun 11 14:35:57 2012
@@ -20,6 +20,7 @@
 package org.apache.fop.render.bitmap;
 
 import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.render.bitmap.PNGRendererConfig.PNGRendererConfigParser;
 import org.apache.fop.render.intermediate.IFContext;
 import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
@@ -47,8 +48,7 @@ public class PNGDocumentHandler extends 
 
     /** {@inheritDoc} */
     public IFDocumentHandlerConfigurator getConfigurator() {
-        // TODO what constructir params?
-        return new BitmapRendererConfigurator(getUserAgent());
+        return new BitmapRendererConfigurator(getUserAgent(), new PNGRendererConfigParser());
     }
 
 }

Added: xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGRendererConfig.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGRendererConfig.java?rev=1348871&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGRendererConfig.java (added)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGRendererConfig.java Mon Jun 11 14:35:57 2012
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+package org.apache.fop.render.bitmap;
+
+import org.apache.avalon.framework.configuration.Configuration;
+
+import org.apache.xmlgraphics.util.MimeConstants;
+
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.fonts.DefaultFontConfig;
+import org.apache.fop.fonts.DefaultFontConfig.DefaultFontConfigParser;
+
+public final class PNGRendererConfig extends BitmapRendererConfig {
+
+    private PNGRendererConfig(DefaultFontConfig fontConfig) {
+        super(fontConfig);
+    }
+
+    public static class PNGRendererConfigParser implements RendererConfigParser {
+
+        public PNGRendererConfig build(FOUserAgent userAgent, Configuration cfg)
+                throws FOPException {
+            return new PNGRendererConfig(new DefaultFontConfigParser().parse(cfg,
+                    userAgent.validateStrictly()));
+        }
+
+        public String getMimeType() {
+            return MimeConstants.MIME_PNG;
+        }
+    }
+}

Propchange: xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/bitmap/PNGRendererConfig.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/java2d/Java2DGraphicsState.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/java2d/Java2DGraphicsState.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/java2d/Java2DGraphicsState.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/render/java2d/Java2DGraphicsState.java Mon Jun 11 14:35:57 2012
@@ -130,7 +130,7 @@ public class Java2DGraphicsState {
      */
     public boolean updateFont(String name, int size) {
 
-        FontMetricsMapper mapper = (FontMetricsMapper)fontInfo.getMetricsFor(name);
+        FontMetricsMapper mapper = (FontMetricsMapper) fontInfo.getMetricsFor(name);
         boolean updateName = (!mapper.getFontName().equals(
                                     getGraph().getFont().getFontName()));
         boolean updateSize = (size != (getGraph().getFont().getSize() * 1000));

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/src/java/org/apache/fop/svg/PDFDocumentGraphics2DConfigurator.java Mon Jun 11 14:35:57 2012
@@ -25,7 +25,7 @@ import org.apache.avalon.framework.confi
 import org.apache.avalon.framework.configuration.ConfigurationException;
 
 import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.io.DefaultResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.apps.io.URIResolverWrapper;
 import org.apache.fop.fonts.DefaultFontConfig;
 import org.apache.fop.fonts.DefaultFontConfigurator;
@@ -85,8 +85,7 @@ public class PDFDocumentGraphics2DConfig
         FontInfo fontInfo = new FontInfo();
         final boolean strict = false;
         if (cfg != null) {
-            //TODO Wire in the FontEventListener
-            URIResolverWrapper resolver = DefaultResourceResolver.createDefaultWrapper();
+            URIResolverWrapper resolver = ResourceResolverFactory.createDefaultWrapper();
             //TODO The following could be optimized by retaining the FontManager somewhere
             FontManager fontManager = new FontManager(resolver, FontDetectorFactory.createDefault(),
                     FontCacheManagerFactory.createDefault());

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/URIResolutionTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/URIResolutionTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/URIResolutionTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/URIResolutionTestCase.java Mon Jun 11 14:35:57 2012
@@ -52,9 +52,9 @@ import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
 import org.apache.fop.apps.FopFactoryBuilder;
 import org.apache.fop.apps.MimeConstants;
-import org.apache.fop.apps.io.DefaultResourceResolver;
 import org.apache.fop.apps.io.Resource;
 import org.apache.fop.apps.io.ResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.render.xml.XMLRenderer;
 
 import static org.apache.fop.FOPTestUtils.getBaseDir;
@@ -177,7 +177,7 @@ public class URIResolutionTestCase {
     }
 
     private static final class CustomURIResolver implements ResourceResolver {
-        private final DefaultResourceResolver defaultImpl = new DefaultResourceResolver();
+        private final ResourceResolver defaultImpl =  ResourceResolverFactory.createDefaultResourceResolver();
 
         public Resource getResource(URI uri) throws IOException {
             if (uri.getScheme().equals("funky") && uri.getSchemeSpecificPart().equals("myimage123")) {

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/afp/AFPResourceManagerTestCase.java Mon Jun 11 14:35:57 2012
@@ -19,9 +19,6 @@
 
 package org.apache.fop.afp;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
@@ -30,6 +27,11 @@ import org.junit.Test;
 
 import org.apache.xmlgraphics.util.MimeConstants;
 
+import org.apache.fop.apps.io.ResourceResolverFactory;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Test case for {@link AFPResourceManager}.
  */
@@ -39,7 +41,7 @@ public class AFPResourceManagerTestCase 
 
     @Before
     public void setUp() throws IOException {
-        sut = new AFPResourceManager();
+        sut = new AFPResourceManager(ResourceResolverFactory.createDefaultWrapper());
         AFPPaintingState paintingState = new AFPPaintingState();
         ByteArrayOutputStream outStream = new ByteArrayOutputStream();
         DataStream stream = sut.createDataStream(paintingState, outStream);

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/AFPRendererConfBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/AFPRendererConfBuilder.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/AFPRendererConfBuilder.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/AFPRendererConfBuilder.java Mon Jun 11 14:35:57 2012
@@ -20,6 +20,7 @@
 package org.apache.fop.apps;
 
 
+import java.net.URI;
 import java.util.Map;
 
 import org.w3c.dom.Element;
@@ -33,11 +34,17 @@ import static org.apache.fop.render.afp.
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.DEFAULT_RESOURCE_LEVELS;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_DITHERING_QUALITY;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_FS45;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_JPEG;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_MAPPING_OPTION;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_MODE;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_NATIVE;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.IMAGES_WRAP_PSEG;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.JPEG_ALLOW_JPEG_EMBEDDING;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.JPEG_BITMAP_ENCODING_QUALITY;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.RENDERER_RESOLUTION;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.LINE_WIDTH_CORRECTION;
-import static org.apache.fop.render.afp.AFPRendererConfig.Options.RESOURCE_GROUP_FILE;
+import static org.apache.fop.render.afp.AFPRendererConfig.Options.RESOURCE_GROUP_URI;
 import static org.apache.fop.render.afp.AFPRendererConfig.Options.SHADING;
 
 /**
@@ -82,12 +89,12 @@ public final class AFPRendererConfBuilde
         return this;
     }
 
-    public AFPRendererConfBuilder setResourceGroupFile(String value) {
-        createTextElement(RESOURCE_GROUP_FILE, value);
+    public AFPRendererConfBuilder setResourceGroupUri(String uri) {
+        createTextElement(RESOURCE_GROUP_URI, uri);
         return this;
     }
 
-    public AFPRendererConfBuilder setResourceResourceLevels(Map<String, String> levels) {
+    public AFPRendererConfBuilder setDefaultResourceLevels(Map<String, String> levels) {
         Element e = createElement(DEFAULT_RESOURCE_LEVELS.getName());
         for (String key : levels.keySet()) {
             e.setAttribute(key, levels.get(key));
@@ -99,6 +106,8 @@ public final class AFPRendererConfBuilde
 
         private final Element el;
 
+        private Element jpeg;
+
         private ImagesBuilder(AFPRendererConfig.ImagesModeOptions mode) {
             el = createElement(IMAGES.getName());
             setAttribute(IMAGES_MODE, mode.getName());
@@ -108,29 +117,58 @@ public final class AFPRendererConfBuilde
             return setAttribute(name, value);
         }
 
+        public ImagesBuilder setAllowJpegEmbedding(boolean value) {
+            getJpeg().setAttribute(JPEG_ALLOW_JPEG_EMBEDDING.getName(), String.valueOf(value));
+            return this;
+        }
+
+        public ImagesBuilder setBitmapEncodingQuality(float value) {
+            getJpeg().setAttribute(JPEG_BITMAP_ENCODING_QUALITY.getName(), String.valueOf(value));
+            return this;
+        }
+
         public ImagesBuilder setDitheringQuality(String value) {
             return setAttribute(IMAGES_DITHERING_QUALITY, value);
         }
 
         public ImagesBuilder setDitheringQuality(float value) {
-            return setAttribute(IMAGES_DITHERING_QUALITY, String.valueOf(value));
+            return setAttribute(IMAGES_DITHERING_QUALITY, value);
+        }
+
+        public ImagesBuilder setFs45(boolean value) {
+            return setAttribute(IMAGES_FS45, value);
+        }
+
+        public ImagesBuilder setMappingOption(String value) {
+            return setAttribute(IMAGES_MAPPING_OPTION, value);
+        }
+
+        public ImagesBuilder setWrapPseg(boolean value) {
+            return setAttribute(IMAGES_WRAP_PSEG, value);
         }
 
         public ImagesBuilder setNativeImageSupport(boolean value) {
-            return setAttribute(IMAGES_NATIVE, String.valueOf(value));
+            return setAttribute(IMAGES_NATIVE, value);
         }
 
         public AFPRendererConfBuilder endImages() {
             return AFPRendererConfBuilder.this.endImages();
         }
 
-        private ImagesBuilder setAttribute(Options options, String value) {
+        private ImagesBuilder setAttribute(Options options, Object value) {
             return setAttribute(options.getName(), value);
         }
 
-        private ImagesBuilder setAttribute(String name, String value) {
-            el.setAttribute(name, value);
+        private ImagesBuilder setAttribute(String name, Object value) {
+            el.setAttribute(name, String.valueOf(value));
             return this;
         }
+
+        private Element getJpeg() {
+            if (jpeg == null) {
+                jpeg = createElement(IMAGES_JPEG.getName(), el);
+            }
+            return jpeg;
+        }
     }
 }

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/FopFactoryBuilderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/FopFactoryBuilderTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/FopFactoryBuilderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/FopFactoryBuilderTestCase.java Mon Jun 11 14:35:57 2012
@@ -27,7 +27,7 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.fop.apps.io.DefaultResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.area.AreaTreeHandler;
 import org.apache.fop.area.Block;
 import org.apache.fop.fo.FONode;
@@ -67,7 +67,7 @@ public class FopFactoryBuilderTestCase {
 
     @Test(expected = IllegalArgumentException.class)
     public void testNullParamsInConstructor() throws URISyntaxException {
-        new FopFactoryBuilder(null, new DefaultResourceResolver());
+        new FopFactoryBuilder(null, ResourceResolverFactory.createDefaultResourceResolver());
     }
 
     @Test

Added: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/io/ResourceResolverFactoryTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/io/ResourceResolverFactoryTestCase.java?rev=1348871&view=auto
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/io/ResourceResolverFactoryTestCase.java (added)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/io/ResourceResolverFactoryTestCase.java Mon Jun 11 14:35:57 2012
@@ -0,0 +1,212 @@
+/*
+ * 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.apps.io;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+public class ResourceResolverFactoryTestCase {
+
+    private static final byte[] DATA = new byte[]{(byte) 0, (byte) 1, (byte) 2};
+
+    private void writeDataTo(File f) throws IOException {
+        writeDataTo(new FileOutputStream(f));
+    }
+
+    private void writeDataTo(OutputStream os) throws IOException {
+        os.write(DATA);
+        os.close();
+    }
+
+    private void checkStream(InputStream inputStream) throws IOException {
+        byte[] actual = new byte[DATA.length];
+        for (int i = 0; i < DATA.length; i++) {
+            actual[i] = (byte) inputStream.read();
+        }
+        assertEquals(-1, inputStream.read());
+        assertArrayEquals(DATA, actual);
+    }
+
+    @Test
+    public void testDefaultResourceResolverGetResource() throws Exception {
+        ResourceResolver sut = ResourceResolverFactory.createDefaultResourceResolver();
+        File inputFile = File.createTempFile("prefix", "suffix");
+        InputStream is = null;
+        try {
+            writeDataTo(inputFile);
+            is = sut.getResource(inputFile.toURI());
+            checkStream(is);
+        } finally {
+            if (is != null) {
+                is.close();
+            }
+            inputFile.delete();
+        }
+    }
+
+    @Test
+    public void testDefaultResourceResolverGetOutput() throws Exception {
+        ResourceResolver sut = ResourceResolverFactory.createDefaultResourceResolver();
+        File outputFile = File.createTempFile("prefix", "suffix");
+        writeDataTo(sut.getOutputStream(outputFile.toURI()));
+        InputStream is = new FileInputStream(outputFile);
+        try {
+            checkStream(is);
+        } finally {
+            is.close();
+        }
+    }
+
+    private static class TestCreateTempAwareResourceResolverHelper implements ResourceResolver {
+
+        final TempResourceResolver tempResourceResolver = mock(TempResourceResolver.class);
+
+        final ResourceResolver defaultResourceResolver = mock(ResourceResolver.class);
+
+        final ResourceResolver sut = ResourceResolverFactory.createTempAwareResourceResolver(
+                tempResourceResolver, defaultResourceResolver);
+
+        public Resource getResource(URI uri) throws IOException {
+            return sut.getResource(uri);
+        }
+        public OutputStream getOutputStream(URI uri) throws IOException {
+            return sut.getOutputStream(uri);
+        }
+    }
+
+    @Test
+    public void testCreateTempAwareResourceResolverForTmpResource() throws Exception {
+        URI uri = URI.create("tmp:///id");
+        TestCreateTempAwareResourceResolverHelper helper = new TestCreateTempAwareResourceResolverHelper();
+        helper.getResource(uri);
+        verify(helper.tempResourceResolver, times(1)).getResource(uri.getPath());
+        verify(helper.defaultResourceResolver, never()).getResource(uri);
+    }
+
+    @Test
+    public void testCreateTempAwareResourceResolverForRegularResource() throws Exception {
+        URI uri = URI.create("file:///path/to/file");
+        TestCreateTempAwareResourceResolverHelper helper = new TestCreateTempAwareResourceResolverHelper();
+        helper.getResource(uri);
+        verify(helper.tempResourceResolver, never()).getResource(uri.getPath());
+        verify(helper.defaultResourceResolver, times(1)).getResource(uri);
+    }
+
+    @Test
+    public void testCreateTempAwareResourceResolverForTmpOuput() throws Exception {
+        URI uri = URI.create("tmp:///id");
+        TestCreateTempAwareResourceResolverHelper helper = new TestCreateTempAwareResourceResolverHelper();
+        helper.getOutputStream(uri);
+        verify(helper.tempResourceResolver, times(1)).getOutputStream(uri.getPath());
+        verify(helper.defaultResourceResolver, never()).getOutputStream(uri);
+    }
+
+    @Test
+    public void testCreateTempAwareResourceResolverForRegularOutput() throws Exception {
+        URI uri = URI.create("file:///path/to/file");
+        TestCreateTempAwareResourceResolverHelper helper = new TestCreateTempAwareResourceResolverHelper();
+        helper.getOutputStream(uri);
+        verify(helper.tempResourceResolver, never()).getOutputStream(uri.getPath());
+        verify(helper.defaultResourceResolver, times(1)).getOutputStream(uri);
+    }
+
+    @Test
+    public void testCreateSchemaAwareResourceResolverForDefaultResource() throws Exception {
+        URI uri = URI.create("file:///path/to/file");
+        TestCreateSchemaAwareResourceResolverBuilderHelper helper
+        = new TestCreateSchemaAwareResourceResolverBuilderHelper();
+        helper.getResource(uri);
+        verify(helper.registedResourceResolver, never()).getResource(uri);
+        verify(helper.defaultResourceResolver, times(1)).getResource(uri);
+    }
+
+    @Test
+    public void testCreateSchemaAwareResourceResolverForRegisteredResource() throws Exception {
+        URI uri = URI.create(TestCreateSchemaAwareResourceResolverBuilderHelper.SCHEMA + ":///path");
+        TestCreateSchemaAwareResourceResolverBuilderHelper helper
+        = new TestCreateSchemaAwareResourceResolverBuilderHelper();
+        helper.getResource(uri);
+        verify(helper.registedResourceResolver, times(1)).getResource(uri);
+        verify(helper.defaultResourceResolver, never()).getResource(uri);
+    }
+
+    @Test
+    public void testCreateSchemaAwareResourceResolverForDefaultOutput() throws Exception {
+        URI uri = URI.create("file:///path/to/file");
+        TestCreateSchemaAwareResourceResolverBuilderHelper helper
+        = new TestCreateSchemaAwareResourceResolverBuilderHelper();
+        helper.getOutputStream(uri);
+        verify(helper.registedResourceResolver, never()).getOutputStream(uri);
+        verify(helper.defaultResourceResolver, times(1)).getOutputStream(uri);
+    }
+
+    @Test
+    public void testCreateSchemaAwareResourceResolverForRegisteredOutput() throws Exception {
+        URI uri = URI.create(TestCreateSchemaAwareResourceResolverBuilderHelper.SCHEMA + ":///path");
+        TestCreateSchemaAwareResourceResolverBuilderHelper helper
+        = new TestCreateSchemaAwareResourceResolverBuilderHelper();
+        helper.getOutputStream(uri);
+        verify(helper.registedResourceResolver, times(1)).getOutputStream(uri);
+        verify(helper.defaultResourceResolver, never()).getOutputStream(uri);
+    }
+
+    private static class TestCreateSchemaAwareResourceResolverBuilderHelper implements ResourceResolver {
+
+        private static final String SCHEMA = "protocol";
+
+        final ResourceResolver registedResourceResolver = mock(ResourceResolver.class);
+
+        final ResourceResolver defaultResourceResolver = mock(ResourceResolver.class);
+
+        final ResourceResolver sut;
+
+        TestCreateSchemaAwareResourceResolverBuilderHelper() {
+            ResourceResolverFactory.SchemaAwareResourceResolverBuilder builder
+                    = ResourceResolverFactory.createSchemaAwareResourceResolverBuilder(
+                            defaultResourceResolver);
+            builder.registerResourceResolverForSchema(SCHEMA, registedResourceResolver);
+            sut = builder.build();
+
+        }
+
+        public Resource getResource(URI uri) throws IOException {
+            return sut.getResource(uri);
+        }
+        public OutputStream getOutputStream(URI uri) throws IOException {
+            return sut.getOutputStream(uri);
+        }
+    }
+
+}
+

Propchange: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/apps/io/ResourceResolverFactoryTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/DejaVuLGCSerifTestCase.java Mon Jun 11 14:35:57 2012
@@ -24,7 +24,7 @@ import java.io.File;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.fop.apps.io.DefaultResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.apps.io.URIResolverWrapper;
 
 import static org.junit.Assert.assertEquals;
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertEqu
 public class DejaVuLGCSerifTestCase {
 
     private URIResolverWrapper resolver = new URIResolverWrapper(new File(".").toURI(),
-            new DefaultResourceResolver());
+            ResourceResolverFactory.createDefaultResourceResolver());
     private CustomFont font;
 
     /**

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/fonts/truetype/TTFFontLoaderTestCase.java Mon Jun 11 14:35:57 2012
@@ -25,7 +25,7 @@ import java.net.URI;
 
 import org.junit.Test;
 
-import org.apache.fop.apps.io.DefaultResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.apps.io.URIResolverWrapper;
 import org.apache.fop.fonts.EncodingMode;
 
@@ -42,7 +42,7 @@ public class TTFFontLoaderTestCase {
         boolean useComplexScriptFeatures = false;
         File file = new File("test/resources/fonts/ttf/DejaVuLGCSerif.ttf");
         URI absoluteFilePath = file.toURI();
-        URIResolverWrapper resolver = DefaultResourceResolver.createDefaultWrapper();
+        URIResolverWrapper resolver = ResourceResolverFactory.createDefaultWrapper();
         String fontName = "Deja Vu";
         boolean embedded = false;
         boolean useKerning = true;

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/pdf/PDFFactoryTestCase.java Mon Jun 11 14:35:57 2012
@@ -19,15 +19,15 @@
 
 package org.apache.fop.pdf;
 
-import static org.junit.Assert.assertEquals;
-
 import org.junit.Test;
 
-import org.apache.fop.apps.io.DefaultResourceResolver;
+import org.apache.fop.apps.io.ResourceResolverFactory;
 import org.apache.fop.apps.io.URIResolverWrapper;
 import org.apache.fop.fonts.CIDSubset;
 import org.apache.fop.fonts.MultiByteFont;
 
+import static org.junit.Assert.assertEquals;
+
 /**
  * Test case for {@link PDFFactory}.
  */
@@ -56,7 +56,7 @@ public class PDFFactoryTestCase {
         }
         PDFDocument doc = new PDFDocument("Test");
         PDFFactory pdfFactory = new PDFFactory(doc);
-        MockedFont font = new MockedFont(DefaultResourceResolver.createDefaultWrapper());
+        MockedFont font = new MockedFont(ResourceResolverFactory.createDefaultWrapper());
 
         PDFFont pdfDejaVu = pdfFactory.makeFont("DejaVu", "DejaVu", "TTF", font, font);
         assertEquals("/EAAAAA+DejaVu", pdfDejaVu.getBaseFont().toString());

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfigParserTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfigParserTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfigParserTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfigParserTestCase.java Mon Jun 11 14:35:57 2012
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertNull;
 
 public class AFPRendererConfigParserTestCase
-extends AbstractRendererConfigParserTester<AFPRendererConfBuilder, AFPRendererConfig> {
+        extends AbstractRendererConfigParserTester<AFPRendererConfBuilder, AFPRendererConfig> {
 
     public AFPRendererConfigParserTestCase() {
         super(new AFPRendererConfigParser(), AFPRendererConfBuilder.class);
@@ -63,21 +63,22 @@ extends AbstractRendererConfigParserTest
     @Test
     public void testLineWidthCorrection() throws Exception {
         parseConfig(createRenderer());
-        assertEquals(AFPConstants.LINE_WIDTH_CORRECTION, conf.getLineWidthCorrection().floatValue(), 0.0001f);
+        assertEquals(AFPConstants.LINE_WIDTH_CORRECTION,
+                conf.getLineWidthCorrection().floatValue(), 0.0001f);
         parseConfig(createRenderer().setLineWidthCorrection(1f));
         assertEquals(Float.valueOf(1f), conf.getLineWidthCorrection());
     }
 
     @Test
-    public void testResourceGroupFile() throws Exception {
+    public void testResourceGroupUri() throws Exception {
         parseConfig(createRenderer());
-        assertEquals(null, conf.getDefaultResourceGroupFilePath());
+        assertEquals(null, conf.getDefaultResourceGroupUri());
         // TODO yuck!
         File file = File.createTempFile("AFPRendererConfigParserTestCase", "");
         try {
             file.delete();
-            parseConfig(createRenderer().setResourceGroupFile(file.getAbsolutePath()));
-            assertEquals(file.getAbsolutePath(), conf.getDefaultResourceGroupFilePath());
+            parseConfig(createRenderer().setResourceGroupUri(file.toURI().toASCIIString()));
+            assertEquals(file.toURI(), conf.getDefaultResourceGroupUri());
         } finally {
             file.delete();
         }
@@ -89,7 +90,7 @@ extends AbstractRendererConfigParserTest
         assertNull(conf.getResourceLevelDefaults());
         Map<String, String> levels = new HashMap<String, String>();
         levels.put("goca", "page");
-        parseConfig(createRenderer().setResourceResourceLevels(levels));
+        parseConfig(createRenderer().setDefaultResourceLevels(levels));
         assertNotNull(conf.getResourceLevelDefaults());
     }
 
@@ -99,23 +100,22 @@ extends AbstractRendererConfigParserTest
         assertEquals(false, conf.isColorImages());
         assertEquals(Integer.valueOf(8), conf.getBitsPerPixel());
         ImagesModeOptions mode = MODE_GRAYSCALE;
-        parseConfig(createRenderer()
-                .startImages(mode)
-                .setModeAttribute(mode.getModeAttribute(), String.valueOf(1))
-                .endImages());
+        parseConfig(createRenderer().startImages(mode)
+                                    .setModeAttribute(mode.getModeAttribute(), String.valueOf(1))
+                                    .endImages());
         assertEquals(false, conf.isColorImages());
         assertEquals(Integer.valueOf(1), conf.getBitsPerPixel());
         mode = MODE_COLOR;
         parseConfig(createRenderer()
-                .startImages(mode)
-                .setModeAttribute(mode.getModeAttribute(), String.valueOf(false))
-                .endImages());
+                                    .startImages(mode)
+                                    .setModeAttribute(mode.getModeAttribute(),
+                                            String.valueOf(false))
+                                    .endImages());
         assertEquals(true, conf.isColorImages());
         assertEquals(false, conf.isCmykImagesSupported());
-        parseConfig(createRenderer()
-                .startImages(mode)
-                .setModeAttribute(mode.getModeAttribute(), String.valueOf(true))
-                .endImages());
+        parseConfig(createRenderer().startImages(mode)
+                                    .setModeAttribute(mode.getModeAttribute(), String.valueOf(true))
+                                    .endImages());
         assertEquals(true, conf.isColorImages());
         assertEquals(true, conf.isCmykImagesSupported());
     }
@@ -152,6 +152,39 @@ extends AbstractRendererConfigParserTest
         assertEquals(0.25f, conf.getDitheringQuality(), 0.001f);
     }
 
+    @Test
+    public void testAllowJpegEmbedding() throws Exception {
+        parseConfig();
+        assertEquals(false, conf.allowJpegEmbedding());
+
+        parseConfig(createRenderer().startImages().setAllowJpegEmbedding(true).endImages());
+        assertEquals(true, conf.allowJpegEmbedding());
+    }
+
+    @Test
+    public void testBitmapEncodingQuality() throws Exception {
+        parseConfig();
+        assertEquals(1.0f, conf.getBitmapEncodingQuality(), 0.001f);
+        parseConfig(createRenderer().startImages().setBitmapEncodingQuality(0.5f).endImages());
+        assertEquals(0.5f, conf.getBitmapEncodingQuality(), 0.001f);
+    }
+
+    @Test
+    public void testFS45() throws Exception {
+        parseConfig();
+        assertEquals(false, conf.isFs45());
+        parseConfig(createRenderer().startImages().setFs45(true).endImages());
+        assertEquals(true, conf.isFs45());
+    }
+
+    @Test
+    public void tesPseg() throws Exception {
+        parseConfig();
+        assertEquals(false, conf.isWrapPseg());
+        parseConfig(createRenderer().startImages().setWrapPseg(true).endImages());
+        assertEquals(true, conf.isWrapPseg());
+    }
+
     @Test(expected = IllegalArgumentException.class)
     public void testForNameException() throws Exception {
         ImagesModeOptions.forName("_");

Modified: xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfiguratorTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfiguratorTestCase.java?rev=1348871&r1=1348870&r2=1348871&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfiguratorTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_URI_Unification/test/java/org/apache/fop/render/afp/AFPRendererConfiguratorTestCase.java Mon Jun 11 14:35:57 2012
@@ -15,72 +15,199 @@
  * limitations under the License.
  */
 
-/* $Id$ */
-
 package org.apache.fop.render.afp;
 
-import java.io.File;
-import java.io.IOException;
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.junit.Test;
-import org.xml.sax.SAXException;
+import org.mockito.ArgumentCaptor;
 
-import org.apache.fop.afp.AFPPaintingState;
-import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.FopFactory;
+import org.apache.fop.afp.AFPResourceLevel;
+import org.apache.fop.afp.AFPResourceLevel.ResourceType;
+import org.apache.fop.afp.AFPResourceLevelDefaults;
+import org.apache.fop.apps.AFPRendererConfBuilder;
+import org.apache.fop.apps.AbstractRendererConfiguratorTest;
+import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.render.afp.AFPRendererConfig.AFPRendererConfigParser;
-import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.afp.AFPRendererConfig.ImagesModeOptions;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.mockito.Mockito.verify;
 
-/**
- * Test case for {@link AFPRendererConfigurator}.
- */
-public class AFPRendererConfiguratorTestCase {
-    private FOUserAgent userAgent;
+public class AFPRendererConfiguratorTestCase extends
+        AbstractRendererConfiguratorTest<AFPRendererConfigurator, AFPRendererConfBuilder> {
+
+    public AFPRendererConfiguratorTestCase() {
+        super(MimeConstants.MIME_AFP, AFPRendererConfBuilder.class, AFPDocumentHandler.class);
+    }
+
+    @Override
+    public void setUpDocumentHandler() {
+    }
+
+    @Override
+    protected AFPRendererConfigurator createConfigurator() {
+        return new AFPRendererConfigurator(userAgent, new AFPRendererConfigParser());
+    }
+
+    private AFPDocumentHandler getDocHandler() {
+        return (AFPDocumentHandler) docHandler;
+    }
+
+    @Test
+    public void testColorImages() throws Exception {
+        parseConfig(createBuilder().startImages(ImagesModeOptions.MODE_COLOR)
+                                   .endImages());
+        verify(getDocHandler()).setColorImages(true);
+
+        parseConfig(createBuilder().startImages(ImagesModeOptions.MODE_GRAYSCALE)
+                                   .endImages());
+        verify(getDocHandler()).setColorImages(false);
+    }
+
+    @Test
+    public void testCMYKImagesSupport() throws Exception {
+        parseConfig(createBuilder().startImages(ImagesModeOptions.MODE_COLOR)
+                                       .setModeAttribute("cmyk", "true")
+                                   .endImages());
+        verify(getDocHandler()).setCMYKImagesSupported(true);
+
+        parseConfig(createBuilder().startImages(ImagesModeOptions.MODE_COLOR)
+                                       .setModeAttribute("cmyk", "false")
+                                   .endImages());
+        verify(getDocHandler()).setCMYKImagesSupported(false);
+    }
 
-    private AFPRendererConfigurator sut;
+    @Test
+    public void testBitsPerPixel() throws Exception {
+        for (int bpp = 0; bpp < 40; bpp += 8) {
+            parseConfig(createBuilder().startImages()
+                                       .setModeAttribute("bits-per-pixel", String.valueOf(bpp))
+                                       .endImages());
+            verify(getDocHandler()).setBitsPerPixel(bpp);
+        }
+    }
+
+    @Test
+    public void testDitheringQuality() throws Exception {
+        float ditheringQuality = 100f;
+        parseConfig(createBuilder().startImages()
+                                       .setDitheringQuality(ditheringQuality)
+                                   .endImages());
+        verify(getDocHandler()).setDitheringQuality(ditheringQuality);
+
+        ditheringQuality = 1000f;
+        parseConfig(createBuilder().startImages()
+                                       .setDitheringQuality(ditheringQuality)
+                                   .endImages());
+        verify(getDocHandler()).setDitheringQuality(ditheringQuality);
+    }
+
+    @Test
+    public void testNativeImagesSupported() throws Exception {
+        parseConfig(createBuilder().startImages()
+                                       .setNativeImageSupport(true)
+                                   .endImages());
+        verify(getDocHandler()).setNativeImagesSupported(true);
+
+        parseConfig(createBuilder().startImages()
+                                       .setNativeImageSupport(false)
+                                   .endImages());
+        verify(getDocHandler()).setNativeImagesSupported(false);
+    }
+
+    @Test
+    public void testShadingMode() throws Exception {
+        for (AFPShadingMode mode : AFPShadingMode.values()) {
+            parseConfig(createBuilder().setShading(mode));
+            verify(getDocHandler()).setShadingMode(mode);
+        }
+    }
+
+    @Test
+    public void testRendererResolution() throws Exception {
+        for (int resolution = 0; resolution < 1000; resolution += 100) {
+            parseConfig(createBuilder().setRenderingResolution(resolution));
+            verify(getDocHandler()).setResolution(resolution);
+        }
+    }
 
-    /**
-     * Assigns an FOUserAgen with a config file at <code>uri</code>
-     *
-     * @param uri the URI of the config file
-     */
-    private void setConfigFile(String uri) {
-        String confTestsDir = "test/resources/conf/afp/";
-        try {
-            userAgent = FopFactory.newInstance(new File(confTestsDir + uri)).newFOUserAgent();
-            sut = new AFPRendererConfigurator(userAgent, new AFPRendererConfigParser());
-        } catch (IOException ioe) {
-            fail("IOException: " + ioe);
-        } catch (SAXException se) {
-            fail("SAXException: " + se);
+    @Test
+    public void testLineWidthCorrection() throws Exception {
+        for (float resolution = 0; resolution < 50; resolution += 5) {
+            parseConfig(createBuilder().setLineWidthCorrection(resolution));
+            verify(getDocHandler()).setLineWidthCorrection(resolution);
         }
     }
 
-    /**
-     * Test several config files relating to JPEG images in AFP.
-     *
-     * @throws FOPException if an error is thrown
-     */
-    @Test
-    public void testJpegImageConfig() throws FOPException {
-        testJpegSettings("no_image_config.xconf", 1.0f, false);
-        testJpegSettings("can_embed_jpeg.xconf", 1.0f, true);
-        testJpegSettings("bitmap_encode_quality.xconf", 0.5f, false);
-    }
-
-    private void testJpegSettings(String uri, float bitmapEncodingQual, boolean canEmbed)
-            throws FOPException {
-        AFPDocumentHandler docHandler = new AFPDocumentHandler(new IFContext(userAgent));
-
-        setConfigFile(uri);
-        sut.configure(docHandler);
-
-        AFPPaintingState paintingState = docHandler.getPaintingState();
-        assertEquals(bitmapEncodingQual, paintingState.getBitmapEncodingQuality(), 0.01f);
-        assertEquals(canEmbed, paintingState.canEmbedJpeg());
+    @Test
+    public void testResourceGroupURI() throws Exception {
+        URI uri = URI.create("test://URI/just/used/for/testing");
+        parseConfig(createBuilder().setResourceGroupUri(uri.toASCIIString()));
+        verify(getDocHandler()).setDefaultResourceGroupUri(uri);
+    }
+
+    @Test
+    public void testResourceLevelDefaults() throws Exception {
+        testResourceLevelDefault(ResourceType.DOCUMENT);
+    }
+
+    private void testResourceLevelDefault(ResourceType resType) throws Exception {
+        Map<String, String> resourceLevels = new HashMap<String, String>();
+        resourceLevels.put("goca", resType.getName());
+        parseConfig(createBuilder().setDefaultResourceLevels(resourceLevels));
+        ArgumentCaptor<AFPResourceLevelDefaults> argument = ArgumentCaptor.forClass(AFPResourceLevelDefaults.class);
+        verify(getDocHandler()).setResourceLevelDefaults(argument.capture());
+        AFPResourceLevel expectedLevel = new AFPResourceLevel(resType);
+        assertEquals(expectedLevel, argument.getValue().getDefaultResourceLevel((byte) 3));
+    }
+
+    @Test
+    public void testExternalResourceDefault() throws Exception {
+        testResourceLevelDefault(ResourceType.EXTERNAL);
+    }
+
+    @Test
+    public void testInlineResourceDefault() throws Exception {
+        testResourceLevelDefault(ResourceType.INLINE);
     }
+
+    @Test
+    public void testPageResourceDefault() throws Exception {
+        testResourceLevelDefault(ResourceType.PAGE);
+    }
+
+    @Test
+    public void testPageGroupResourceDefault() throws Exception {
+        testResourceLevelDefault(ResourceType.PAGE_GROUP);
+    }
+
+    @Test
+    public void testPrintFileResourceDefault() throws Exception {
+        testResourceLevelDefault(ResourceType.PRINT_FILE);
+    }
+
+    @Test
+    public void testBitmapEncodeQuality() throws Exception {
+        parseConfig(createBuilder().startImages()
+                                       .setBitmapEncodingQuality(0.5f)
+                                   .endImages());
+        verify(getDocHandler()).setBitmapEncodingQuality(0.5f);
+    }
+
+    @Test
+    public void testCanEmbedJpeg() throws Exception {
+        parseConfig(createBuilder().startImages()
+                                       .setAllowJpegEmbedding(true)
+                                   .endImages());
+        verify(getDocHandler()).canEmbedJpeg(true);
+
+        parseConfig(createBuilder().startImages()
+                                       .setAllowJpegEmbedding(false)
+                                   .endImages());
+        verify(getDocHandler()).canEmbedJpeg(false);
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org