commit 62524595abb1ae49ce456d7e3547c383e1fbb21d
parent d2140959109061ff57a71270c95b729ca8205355
Author: Antoine A <>
Date: Wed, 24 Apr 2024 13:22:00 +0900
Fix receiver-name parsing
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git 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
@@ -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)