summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/src/main/kotlin/TalerCommon.kt2
-rw-r--r--common/src/test/kotlin/PaytoTest.kt9
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)