Loading app/core/src/main/java/com/fsck/k9/message/IdentityHeaderBuilder.java +3 −1 Original line number Diff line number Diff line package com.fsck.k9.message; import java.util.Objects; import android.net.Uri; import android.net.Uri.Builder; Loading Loading @@ -87,7 +89,7 @@ public class IdentityHeaderBuilder { } if (identityChanged) { appendValue(IdentityField.NAME, identity.getName()); appendValue(IdentityField.NAME, Objects.requireNonNullElse(identity.getName(), "")); appendValue(IdentityField.EMAIL, identity.getEmail()); } Loading app/core/src/test/java/com/fsck/k9/message/IdentityHeaderBuilderTest.kt +26 −0 Original line number Diff line number Diff line package com.fsck.k9.message import android.net.Uri import app.k9mail.core.android.testing.RobolectricTest import assertk.Assert import assertk.assertThat import assertk.assertions.contains import assertk.assertions.isGreaterThan import com.fsck.k9.Account.QuoteStyle import com.fsck.k9.Identity Loading Loading @@ -35,6 +38,21 @@ class IdentityHeaderBuilderTest : RobolectricTest() { assertIsValidHeader(identityHeader) } @Test fun `identity header without identity name`() { val identityHeader = IdentityHeaderBuilder() .setIdentity(createIdentity(email = "test@domain.example", name = null)) .setIdentityChanged(true) .setBody(TextBody("irrelevant")) .setQuoteStyle(QuoteStyle.PREFIX) .setMessageFormat(SimpleMessageFormat.TEXT) .setQuoteTextMode(QuotedTextMode.NONE) .build() assertThat(identityHeader).containsParameter(IdentityField.EMAIL, "test@domain.example") assertThat(identityHeader).containsParameter(IdentityField.NAME, "") } private fun assertIsValidHeader(identityHeader: String) { try { MimeHeaderChecker.checkHeader(IDENTITY_HEADER, identityHeader) Loading @@ -55,3 +73,11 @@ class IdentityHeaderBuilderTest : RobolectricTest() { return Identity(description, name, email, signature, signatureUse, replyTo) } } private fun Assert<String>.containsParameter(identityField: IdentityField, value: String) = given { actual -> assertThat("&${unfold(actual)}&").contains("&${identityField.value()}=${Uri.encode(value)}&") } private fun unfold(headerValue: String): String { return headerValue.replace(Regex("\r?\n "), "") } Loading
app/core/src/main/java/com/fsck/k9/message/IdentityHeaderBuilder.java +3 −1 Original line number Diff line number Diff line package com.fsck.k9.message; import java.util.Objects; import android.net.Uri; import android.net.Uri.Builder; Loading Loading @@ -87,7 +89,7 @@ public class IdentityHeaderBuilder { } if (identityChanged) { appendValue(IdentityField.NAME, identity.getName()); appendValue(IdentityField.NAME, Objects.requireNonNullElse(identity.getName(), "")); appendValue(IdentityField.EMAIL, identity.getEmail()); } Loading
app/core/src/test/java/com/fsck/k9/message/IdentityHeaderBuilderTest.kt +26 −0 Original line number Diff line number Diff line package com.fsck.k9.message import android.net.Uri import app.k9mail.core.android.testing.RobolectricTest import assertk.Assert import assertk.assertThat import assertk.assertions.contains import assertk.assertions.isGreaterThan import com.fsck.k9.Account.QuoteStyle import com.fsck.k9.Identity Loading Loading @@ -35,6 +38,21 @@ class IdentityHeaderBuilderTest : RobolectricTest() { assertIsValidHeader(identityHeader) } @Test fun `identity header without identity name`() { val identityHeader = IdentityHeaderBuilder() .setIdentity(createIdentity(email = "test@domain.example", name = null)) .setIdentityChanged(true) .setBody(TextBody("irrelevant")) .setQuoteStyle(QuoteStyle.PREFIX) .setMessageFormat(SimpleMessageFormat.TEXT) .setQuoteTextMode(QuotedTextMode.NONE) .build() assertThat(identityHeader).containsParameter(IdentityField.EMAIL, "test@domain.example") assertThat(identityHeader).containsParameter(IdentityField.NAME, "") } private fun assertIsValidHeader(identityHeader: String) { try { MimeHeaderChecker.checkHeader(IDENTITY_HEADER, identityHeader) Loading @@ -55,3 +73,11 @@ class IdentityHeaderBuilderTest : RobolectricTest() { return Identity(description, name, email, signature, signatureUse, replyTo) } } private fun Assert<String>.containsParameter(identityField: IdentityField, value: String) = given { actual -> assertThat("&${unfold(actual)}&").contains("&${identityField.value()}=${Uri.encode(value)}&") } private fun unfold(headerValue: String): String { return headerValue.replace(Regex("\r?\n "), "") }