From c6fb57972be639605e32c12812142ed5cf48e234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Paulsen?= Date: Mon, 16 Sep 2024 15:20:19 +0200 Subject: [PATCH] Trim whitespace in encoder values Added `trim()` method to clean up input encoder values before processing in `ContentTransferEncoding.java`. Updated test cases in `ContentTransferEncodingTest.java` to cover the new behavior. --- .../org/simplejavamail/api/email/ContentTransferEncoding.java | 4 ++-- .../simplejavamail/api/email/ContentTransferEncodingTest.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/core-module/src/main/java/org/simplejavamail/api/email/ContentTransferEncoding.java b/modules/core-module/src/main/java/org/simplejavamail/api/email/ContentTransferEncoding.java index 969fc980..78c8bf14 100644 --- a/modules/core-module/src/main/java/org/simplejavamail/api/email/ContentTransferEncoding.java +++ b/modules/core-module/src/main/java/org/simplejavamail/api/email/ContentTransferEncoding.java @@ -32,10 +32,10 @@ public enum ContentTransferEncoding { public static ContentTransferEncoding byEncoder(@NotNull final String encoder) { try { - return ContentTransferEncoding.valueOf(encoder.replaceAll("-", "_").toUpperCase()); + return ContentTransferEncoding.valueOf(encoder.trim().replaceAll("-", "_").toUpperCase()); } catch (IllegalArgumentException e) { return Arrays.stream(values()) - .filter(c -> c.encoder.equalsIgnoreCase(encoder.replaceAll("_", "-"))) + .filter(c -> c.encoder.equalsIgnoreCase(encoder.trim().replaceAll("_", "-"))) .findFirst() .orElseThrow(() -> new IllegalArgumentException("unknown content transfer encoder: " + encoder)); } diff --git a/modules/simple-java-mail/src/test/java/org/simplejavamail/api/email/ContentTransferEncodingTest.java b/modules/simple-java-mail/src/test/java/org/simplejavamail/api/email/ContentTransferEncodingTest.java index c7318be4..1307c52b 100644 --- a/modules/simple-java-mail/src/test/java/org/simplejavamail/api/email/ContentTransferEncodingTest.java +++ b/modules/simple-java-mail/src/test/java/org/simplejavamail/api/email/ContentTransferEncodingTest.java @@ -13,6 +13,7 @@ public void byEncoder() { assertThat(ContentTransferEncoding.byEncoder("B")).isEqualTo(ContentTransferEncoding.B); assertThat(ContentTransferEncoding.byEncoder("b")).isEqualTo(ContentTransferEncoding.B); assertThat(ContentTransferEncoding.byEncoder("8bit")).isEqualTo(ContentTransferEncoding.BIT8); + assertThat(ContentTransferEncoding.byEncoder("7bit ")).isEqualTo(ContentTransferEncoding.BIT7); assertThat(ContentTransferEncoding.byEncoder("x-uuencode")).isEqualTo(ContentTransferEncoding.X_UU); assertThat(ContentTransferEncoding.byEncoder("x_uuencode")).isEqualTo(ContentTransferEncoding.X_UU); assertThat(ContentTransferEncoding.byEncoder("QUOTED-PRINTABLE")).isEqualTo(ContentTransferEncoding.QUOTED_PRINTABLE);