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.sive...@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