You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2009/06/08 14:49:39 UTC

svn commit: r782608 - in /maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src: main/java/org/apache/maven/doxia/module/itext/ITextUtil.java test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java

Author: vsiveton
Date: Mon Jun  8 12:49:39 2009
New Revision: 782608

URL: http://svn.apache.org/viewvc?rev=782608&view=rev
Log:
o improved getPageSize
o added test cases

Added:
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java   (with props)
Modified:
    maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java

Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java?rev=782608&r1=782607&r2=782608&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java Mon Jun  8 12:49:39 2009
@@ -29,7 +29,6 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.util.Locale;
 
 /**
@@ -63,35 +62,50 @@
     /**
      * Return a page size as String.
      *
-     * @param rect a Rectangle
-     * @return a page size as String
+     * @param rect a Rectangle defined in {@link PageSize}.
+     * @return a page size as String or A4 if not found.
      * @see com.lowagie.text.PageSize
      */
     public static String getPageSize( Rectangle rect )
     {
-        if ( ( rect.width() == PageSize.LETTER.width() ) && ( rect.height() == PageSize.LETTER.height() ) )
+        Field[] fields = PageSize.class.getFields();
+        for ( int i = 0; i < fields.length; i++ )
         {
-            return "LETTER";
+            Field currentField = fields[i];
+            try
+            {
+                if ( currentField.getType().equals( Rectangle.class ) )
+                {
+                    Rectangle fPageSize = (Rectangle) currentField.get( null );
+                    if ( ( rect.width() == fPageSize.width() ) && ( rect.height() == fPageSize.height() ) )
+                    {
+                        return currentField.getName();
+                    }
+                }
+            }
+            catch ( Exception e )
+            {
+                // nop
+            }
         }
 
         return "A4";
     }
 
     /**
-     * Return true if the page size is supported by <code>PageSize</code> class, false otherwise
+     * Return <code>true</code> if the page size is supported by {@link PageSize} class, <code>false</code> otherwise.
      *
      * @param aPageSize a page size
-     * @return true if the page size is supported, false otherwise
+     * @return <code>true</code> if the page size is supported, <code>false</code> otherwise
      * @see com.lowagie.text.PageSize
      */
     public static boolean isPageSizeSupported( String aPageSize )
     {
-        Field[] sizes = PageSize.class.getDeclaredFields();
-        for ( int i = 0; i < sizes.length; i++ )
+        Field[] fields = PageSize.class.getFields();
+        for ( int i = 0; i < fields.length; i++ )
         {
-            Field currentField = sizes[i];
+            Field currentField = fields[i];
             if ( ( currentField.getName().equalsIgnoreCase( aPageSize ) )
-                && ( Modifier.isStatic( currentField.getModifiers() ) )
                 && ( currentField.getType().equals( Rectangle.class ) ) )
             {
                 return true;

Added: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java?rev=782608&view=auto
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java (added)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java Mon Jun  8 12:49:39 2009
@@ -0,0 +1,94 @@
+package org.apache.maven.doxia.module.itext;
+
+/*
+ * 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.
+ */
+
+import java.util.Locale;
+
+import junit.framework.TestCase;
+
+import com.lowagie.text.PageSize;
+
+/**
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ */
+public class ITextUtilTest
+    extends TestCase
+{
+    public void testGetDefaultPageSize()
+        throws Exception
+    {
+        Locale oldLocale = Locale.getDefault();
+
+        try
+        {
+            Locale.setDefault( Locale.US );
+            assertEquals( PageSize.LETTER, ITextUtil.getDefaultPageSize() );
+
+            Locale.setDefault( Locale.CANADA );
+            assertEquals( PageSize.LETTER, ITextUtil.getDefaultPageSize() );
+
+            Locale.setDefault( Locale.FRANCE );
+            assertEquals( PageSize.A4, ITextUtil.getDefaultPageSize() );
+        }
+        finally
+        {
+            Locale.setDefault( oldLocale );
+        }
+    }
+
+    public void testGetPageSize()
+        throws Exception
+    {
+        assertEquals( "A0", ITextUtil.getPageSize( PageSize.A0 ) );
+        assertEquals( "A1", ITextUtil.getPageSize( PageSize.A1 ) );
+        assertEquals( "A2", ITextUtil.getPageSize( PageSize.A2 ) );
+        assertEquals( "A3", ITextUtil.getPageSize( PageSize.A3 ) );
+        assertEquals( "A4", ITextUtil.getPageSize( PageSize.A4 ) );
+        assertEquals( "A5", ITextUtil.getPageSize( PageSize.A5 ) );
+        assertEquals( "A6", ITextUtil.getPageSize( PageSize.A6 ) );
+        assertEquals( "A7", ITextUtil.getPageSize( PageSize.A7 ) );
+        assertEquals( "A8", ITextUtil.getPageSize( PageSize.A8 ) );
+        assertEquals( "A9", ITextUtil.getPageSize( PageSize.A9 ) );
+        assertEquals( "A10", ITextUtil.getPageSize( PageSize.A10 ) );
+        assertEquals( "LETTER", ITextUtil.getPageSize( PageSize.LETTER ) );
+        assertEquals( "LEGAL", ITextUtil.getPageSize( PageSize.LEGAL ) );
+    }
+
+    public void testIsPageSupported()
+        throws Exception
+    {
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A0" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A1" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A2" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A3" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A4" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A5" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A6" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A7" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A8" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A9" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "A10" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "LETTER" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "letter" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "LEGAL" ) );
+        assertEquals( true, ITextUtil.isPageSizeSupported( "legal" ) );
+    }
+}

Propchange: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/doxia/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextUtilTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision