diff --git a/spring-core/src/main/java/org/springframework/util/Base64Utils.java b/spring-core/src/main/java/org/springframework/util/Base64Utils.java index aabd743904..ec6aaa6e16 100644 --- a/spring-core/src/main/java/org/springframework/util/Base64Utils.java +++ b/spring-core/src/main/java/org/springframework/util/Base64Utils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,7 +125,7 @@ public abstract class Base64Utils { } - private interface Base64Delegate { + interface Base64Delegate { byte[] encode(byte[] src); @@ -134,7 +134,7 @@ public abstract class Base64Utils { @UsesJava8 - private static class JdkBase64Delegate implements Base64Delegate { + static class JdkBase64Delegate implements Base64Delegate { public byte[] encode(byte[] src) { if (src == null || src.length == 0) { @@ -152,7 +152,7 @@ public abstract class Base64Utils { } - private static class CommonsCodecBase64Delegate implements Base64Delegate { + static class CommonsCodecBase64Delegate implements Base64Delegate { private final org.apache.commons.codec.binary.Base64 base64 = new org.apache.commons.codec.binary.Base64(); diff --git a/spring-core/src/test/java/org/springframework/util/Base64UtilsTests.java b/spring-core/src/test/java/org/springframework/util/Base64UtilsTests.java new file mode 100644 index 0000000000..357707d641 --- /dev/null +++ b/spring-core/src/test/java/org/springframework/util/Base64UtilsTests.java @@ -0,0 +1,49 @@ +/* + * Copyright 2002-2015 the original author or authors. + * + * Licensed 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.springframework.util; + +import java.io.UnsupportedEncodingException; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * @author Juergen Hoeller + */ +public class Base64UtilsTests { + + @Test + public void jdk8VsCommonsCodec() throws UnsupportedEncodingException { + Base64Utils.Base64Delegate jdkDelegate = new Base64Utils.JdkBase64Delegate(); + Base64Utils.Base64Delegate commonsDelegate = new Base64Utils.CommonsCodecBase64Delegate(); + + byte[] bytes = new byte[] + {-0x4f, 0xa, -0x73, -0x4f, 0x64, -0x20, 0x75, 0x41, 0x5, -0x49, -0x57, -0x65, -0x19, 0x2e, 0x3f, -0x1b}; + assertArrayEquals(jdkDelegate.encode(bytes), commonsDelegate.encode(bytes)); + + bytes = "Hello World".getBytes("UTF-8"); + assertArrayEquals(jdkDelegate.encode(bytes), commonsDelegate.encode(bytes)); + + bytes = "Hello World\r\nSecond Line".getBytes("UTF-8"); + assertArrayEquals(jdkDelegate.encode(bytes), commonsDelegate.encode(bytes)); + + bytes = "Hello World\r\nSecond Line\r\n".getBytes("UTF-8"); + assertArrayEquals(jdkDelegate.encode(bytes), commonsDelegate.encode(bytes)); + } + +} diff --git a/spring-core/src/test/java/org/springframework/util/DigestUtilsTests.java b/spring-core/src/test/java/org/springframework/util/DigestUtilsTests.java index 4617098112..6842bfee1d 100644 --- a/spring-core/src/test/java/org/springframework/util/DigestUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/DigestUtilsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,20 +23,25 @@ import org.junit.Test; import static org.junit.Assert.*; +/** + * @author Arjen Poutsma + */ public class DigestUtilsTests { private byte[] bytes; + @Before public void createBytes() throws UnsupportedEncodingException { bytes = "Hello World".getBytes("UTF-8"); } + @Test public void md5() { byte[] result = DigestUtils.md5Digest(bytes); - byte[] expected = new byte[]{-0x4f, 0xa, -0x73, -0x4f, 0x64, -0x20, 0x75, 0x41, 0x5, -0x49, -0x57, -0x65, -0x19, - 0x2e, 0x3f, -0x1b}; + byte[] expected = new byte[] + {-0x4f, 0xa, -0x73, -0x4f, 0x64, -0x20, 0x75, 0x41, 0x5, -0x49, -0x57, -0x65, -0x19, 0x2e, 0x3f, -0x1b}; assertArrayEquals("Invalid hash", expected, result); } @@ -53,5 +58,4 @@ public class DigestUtilsTests { assertEquals("Invalid hash", "b10a8db164e0754105b7a99be72e3fe5", builder.toString()); } - -} \ No newline at end of file +}