You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ju...@apache.org on 2011/01/25 02:16:50 UTC

svn commit: r1063091 - in /commons/proper/codec/trunk/src: java/org/apache/commons/codec/binary/Base64.java test/org/apache/commons/codec/binary/Base64Test.java

Author: julius
Date: Tue Jan 25 01:16:49 2011
New Revision: 1063091

URL: http://svn.apache.org/viewvc?rev=1063091&view=rev
Log:
CODEC-110 - Add a String version of Base64.isArrayByteBase64()

Modified:
    commons/proper/codec/trunk/src/java/org/apache/commons/codec/binary/Base64.java
    commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64Test.java

Modified: commons/proper/codec/trunk/src/java/org/apache/commons/codec/binary/Base64.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/java/org/apache/commons/codec/binary/Base64.java?rev=1063091&r1=1063090&r2=1063091&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/java/org/apache/commons/codec/binary/Base64.java (original)
+++ commons/proper/codec/trunk/src/java/org/apache/commons/codec/binary/Base64.java Tue Jan 25 01:16:49 2011
@@ -608,6 +608,19 @@ public class Base64 implements BinaryEnc
     }
 
     /**
+     * Tests a given String to see if it contains only valid characters within the Base64 alphabet. Currently the
+     * method treats whitespace as valid.
+     * 
+     * @param base64
+     *            String of (presumably) base64 characters to test
+     * @return <code>true</code> if all characters in the String are valid characters in the Base64 alphabet or if
+     *         the String is empty; false, otherwise
+     */
+    public static boolean isStringBase64(String base64) {
+        return isArrayByteBase64(StringUtils.getBytesUtf8(base64));
+    }
+    
+    /**
      * Tests a given byte array to see if it contains only valid characters within the Base64 alphabet.
      * 
      * @param arrayOctet

Modified: commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64Test.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64Test.java?rev=1063091&r1=1063090&r2=1063091&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64Test.java (original)
+++ commons/proper/codec/trunk/src/test/org/apache/commons/codec/binary/Base64Test.java Tue Jan 25 01:16:49 2011
@@ -56,6 +56,27 @@ public class Base64Test extends TestCase
     }
 
     /**
+     * Test the isStringBase64 method.
+     */
+    public void testIsStringBase64() {
+        String nullString = null;
+        String emptyString = "";
+        String validString = "abc===defg\n\r123456\r789\r\rABC\n\nDEF==GHI\r\nJKL==============";
+        String invalidString = validString + ((char)0); // append null character
+        
+        try {
+            Base64.isStringBase64(nullString);
+            fail("Base64.isStringBase64() should not be null-safe.");
+        } catch (NullPointerException npe) {
+            assertNotNull("Base64.isStringBase64() should not be null-safe.", npe);
+        }
+        
+        assertTrue("Base64.isStringBase64(empty-string) is true", Base64.isStringBase64(emptyString));
+        assertTrue("Base64.isStringBase64(valid-string) is true", Base64.isStringBase64(validString));        
+        assertFalse("Base64.isStringBase64(invalid-string) is false", Base64.isStringBase64(invalidString));        
+    }
+    
+    /**
      * Test the Base64 implementation
      */
     public void testBase64() {