From 48cac37914db16e514c7c85649443e89abaf50d7 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 11 Feb 2025 14:21:14 -0400 Subject: [PATCH] Strip spaces from IBAN values before attempting to validate and transform them. --- .../transfer/details/BankTransferDetailsFragment.kt | 4 +++- .../donate/transfer/details/IBANValidatorTest.kt | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsFragment.kt index 7ff0845c37..9ebf02ea83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsFragment.kt @@ -243,7 +243,9 @@ private fun BankTransferDetailsContent( item { TextField( value = state.iban, - onValueChange = onIBANChanged, + onValueChange = { value -> + onIBANChanged(value.replace(" ", "")) + }, label = { Text(text = stringResource(id = R.string.BankTransferDetailsFragment__iban)) }, diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidatorTest.kt b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidatorTest.kt index bf927277f0..af99c6e13a 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidatorTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidatorTest.kt @@ -10,11 +10,19 @@ import org.junit.Test class IBANValidatorTest { companion object { + private const val FI_IBAN = "FI2112345600000785" private const val VALID_IBAN = "GB82WEST12345698765432" private const val INVALID_IBAN = "GB82WEST12335698765432" private const val INVALID_COUNTRY = "US82WEST12335698765432" } + @Test + fun `Given a finnish IBAN, when I validate, then I expect POTENTIALLY_VALID`() { + val actual = IBANValidator.validate(FI_IBAN, false) + + assertEquals(IBANValidator.Validity.COMPLETELY_VALID, actual) + } + @Test fun `Given a blank IBAN, when I validate, then I expect POTENTIALLY_VALID`() { val actual = IBANValidator.validate("", false)