浏览代码

Some tests for Base64 encoding.

Luke Taylor 14 年之前
父节点
当前提交
45d938566c

+ 3 - 3
crypto/src/main/java/org/springframework/security/crypto/codec/Base64.java

@@ -484,8 +484,8 @@ public final class Base64 {
      * @since 1.3
      */
     private static int decode4to3(
-    byte[] source, int srcOffset,
-    byte[] destination, int destOffset, int options ) {
+    final byte[] source, final int srcOffset,
+    final byte[] destination, final int destOffset, final int options ) {
 
         // Lots of error checking and exception throwing
         if( source == null ){
@@ -570,7 +570,7 @@ public final class Base64 {
      * @return decoded data
      * @throws IllegalArgumentException If bogus characters exist in source data
      */
-    private static byte[] decode( byte[] source, int off, int len, int options ) {
+    private static byte[] decode(final byte[] source, final int off, final int len, final int options ) {
 
         // Lots of error checking and exception throwing
         if( source == null ){

+ 34 - 0
crypto/src/test/java/org/springframework/security/crypto/codec/Base64Tests.java

@@ -0,0 +1,34 @@
+package org.springframework.security.crypto.codec;
+
+import static org.junit.Assert.*;
+
+import org.junit.*;
+
+/**
+ * @author Luke Taylor
+ */
+public class Base64Tests {
+
+    @Test
+    public void isBase64ReturnsTrueForValidBase64() {
+        new Base64(); // unused
+
+        assertTrue(Base64.isBase64(new byte[]{ (byte)'A',(byte)'B',(byte)'C',(byte)'D'}));
+    }
+
+    @Test
+    public void isBase64ReturnsFalseForInvalidBase64() throws Exception {
+        // Include invalid '`' character
+        assertFalse(Base64.isBase64(new byte[]{ (byte)'A',(byte)'B',(byte)'C',(byte)'`'}));
+    }
+
+    @Test(expected = NullPointerException.class)
+    public void isBase64RejectsNull() {
+        Base64.isBase64(null);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void isBase64RejectsInvalidLength() {
+        Base64.isBase64(new byte[]{ (byte)'A'});
+    }
+}