From 73cf9661ac52c4545f80b665e301b0f8104dbd9c Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Sat, 3 Oct 2015 04:00:08 +0900 Subject: [PATCH] Fix url encoding to encode whitespace to %20 --- src/main/scala/gitbucket/core/util/StringUtil.scala | 2 +- .../scala/gitbucket/core/util/StringUtilSpec.scala | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/scala/gitbucket/core/util/StringUtil.scala b/src/main/scala/gitbucket/core/util/StringUtil.scala index 5633598b2..d288d4991 100644 --- a/src/main/scala/gitbucket/core/util/StringUtil.scala +++ b/src/main/scala/gitbucket/core/util/StringUtil.scala @@ -20,7 +20,7 @@ object StringUtil { md.digest.map(b => "%02x".format(b)).mkString } - def urlEncode(value: String): String = URLEncoder.encode(value, "UTF-8") + def urlEncode(value: String): String = URLEncoder.encode(value, "UTF-8").replace("+", "%20") def urlDecode(value: String): String = URLDecoder.decode(value, "UTF-8") diff --git a/src/test/scala/gitbucket/core/util/StringUtilSpec.scala b/src/test/scala/gitbucket/core/util/StringUtilSpec.scala index a0632eb86..29fb0a79f 100644 --- a/src/test/scala/gitbucket/core/util/StringUtilSpec.scala +++ b/src/test/scala/gitbucket/core/util/StringUtilSpec.scala @@ -4,11 +4,21 @@ import org.specs2.mutable._ class StringUtilSpec extends Specification { + "urlEncode" should { + "encode whitespace to %20" in { + val encoded = StringUtil.urlEncode("aa bb") + encoded mustEqual "aa%20bb" + } + } + "urlDecode" should { "decode encoded string to original string" in { val encoded = StringUtil.urlEncode("あいうえお") StringUtil.urlDecode(encoded) mustEqual "あいうえお" } + "decode en%20 to whitespace" in { + StringUtil.urlDecode("aa%20bb") mustEqual "aa bb" + } } "splitWords" should {