This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-net.git
commit f91ba4497382935ee47c53278061c01aac9cf391 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Mon May 27 09:48:30 2024 -0400 Add more tests --- src/main/java/org/apache/commons/net/util/Base64.java | 2 +- src/test/java/org/apache/commons/net/util/Base64Test.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/net/util/Base64.java b/src/main/java/org/apache/commons/net/util/Base64.java index c9eff4b3..582e7c34 100644 --- a/src/main/java/org/apache/commons/net/util/Base64.java +++ b/src/main/java/org/apache/commons/net/util/Base64.java @@ -69,7 +69,7 @@ public class Base64 { * * @see <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045 section 2.1</a> */ - private static final byte[] CHUNK_SEPARATOR = { '\r', '\n' }; + static final byte[] CHUNK_SEPARATOR = { '\r', '\n' }; /** * This array is a lookup table that translates 6-bit positive integer index values into their "Base64 Alphabet" equivalents as specified in Table 1 of RFC diff --git a/src/test/java/org/apache/commons/net/util/Base64Test.java b/src/test/java/org/apache/commons/net/util/Base64Test.java index 40d60373..475007cf 100644 --- a/src/test/java/org/apache/commons/net/util/Base64Test.java +++ b/src/test/java/org/apache/commons/net/util/Base64Test.java @@ -30,6 +30,8 @@ import java.nio.charset.StandardCharsets; import java.util.Base64.Decoder; import java.util.Base64.Encoder; +import org.apache.commons.lang3.ArrayFill; +import org.apache.commons.lang3.ArrayUtils; import org.junit.Test; @SuppressWarnings({ "deprecation" }) @@ -217,6 +219,12 @@ public class Base64Test { final byte[] bytesToEncode = { 'f', 'o', 'o', 'b', 'a', 'r' }; final byte[] encodedData = Base64.encodeBase64Chunked(bytesToEncode); assertEquals("Zm9vYmFy\r\n", new String(encodedData, StandardCharsets.UTF_8)); + // > 76 + final byte[] chunkMe = ArrayFill.fill(new byte[Base64.CHUNK_SIZE * 2], (byte) 'A'); + final byte[] chunked = Base64.encodeBase64Chunked(chunkMe); + assertEquals('\r', chunked[chunked.length - 2]); + assertEquals('\n', chunked[chunked.length - 1]); + assertArrayEquals(ArrayUtils.addAll(java.util.Base64.getMimeEncoder().encode(chunkMe), Base64.CHUNK_SEPARATOR), chunked); } @Test @@ -224,6 +232,12 @@ public class Base64Test { final String stringToEncode = "Many hands make light work."; final String encodedData = Base64.encodeBase64String(stringToEncode.getBytes()); assertEquals("TWFueSBoYW5kcyBtYWtlIGxpZ2h0IHdvcmsu\r\n", encodedData); + // > 76 + final byte[] chunkMe = ArrayFill.fill(new byte[Base64.CHUNK_SIZE * 2], (byte) 'A'); + final String chunked = Base64.encodeBase64String(chunkMe); + assertEquals('\r', chunked.charAt(chunked.length() - 2)); + assertEquals('\n', chunked.charAt(chunked.length() - 1)); + assertEquals(java.util.Base64.getMimeEncoder().encodeToString(chunkMe) + "\r\n", chunked); } @Test