diff options
-rw-r--r-- | common/src/main/kotlin/TalerCommon.kt | 2 | ||||
-rw-r--r-- | common/src/test/kotlin/PaytoTest.kt | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/common/src/main/kotlin/TalerCommon.kt b/common/src/main/kotlin/TalerCommon.kt index 676bb5a1..7ff59968 100644 --- a/common/src/main/kotlin/TalerCommon.kt +++ b/common/src/main/kotlin/TalerCommon.kt @@ -275,7 +275,7 @@ sealed class Payto { } if (parsed.scheme != "payto") throw CommonError.Payto("expect a payto URI got '${parsed.scheme}'") - val params = (parsed.query ?: "").parseUrlEncodedParameters() + val params = parseQueryString(parsed.query ?: "") val amount = params["amount"]?.run { TalerAmount(this) } val message = params["message"] val receiverName = params["receiver-name"] diff --git a/common/src/test/kotlin/PaytoTest.kt b/common/src/test/kotlin/PaytoTest.kt index cfb33ada..18a0b365 100644 --- a/common/src/test/kotlin/PaytoTest.kt +++ b/common/src/test/kotlin/PaytoTest.kt @@ -38,11 +38,14 @@ class PaytoTest { val withBic = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=The%20Name").expectIban() assertEquals(withBic.iban.value, "CH9300762011623852957") assertEquals(withBic.receiverName, "The Name") - val complete = Payto.parse("payto://iban/BIC123/CH9300762011623852957?sender-name=The%20Name&amount=EUR:1&message=donation").expectIban() - assertEquals(withBic.iban.value, "CH9300762011623852957") - assertEquals(withBic.receiverName, "The Name") + val complete = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=The%20Name&amount=EUR:1&message=donation").expectIban() + assertEquals(complete.iban.value, "CH9300762011623852957") + assertEquals(complete.receiverName, "The Name") assertEquals(complete.message, "donation") assertEquals(complete.amount.toString(), "EUR:1") + val plusEncode = Payto.parse("payto://iban/BIC123/CH9300762011623852957?receiver-name=Santa+Claus&amount=EUR:1&message=donation").expectIban() + assertEquals(plusEncode.iban.value, "CH9300762011623852957") + assertEquals(plusEncode.receiverName, "Santa Claus") val withoutOptionals = Payto.parse("payto://iban/CH9300762011623852957").expectIban() assertNull(withoutOptionals.message) assertNull(withoutOptionals.receiverName) |