diff --git a/src/main/java/jauter/NonorderedRouter.java b/src/main/java/jauter/NonorderedRouter.java index 9f6528f..130da92 100644 --- a/src/main/java/jauter/NonorderedRouter.java +++ b/src/main/java/jauter/NonorderedRouter.java @@ -106,7 +106,7 @@ public Routed route(String path) { if (currToken.length() > 0 && currToken.charAt(0) == ':') { params.put(currToken.substring(1), token); - } else if (!token.equals(token)) { + } else if (!currToken.equals(token)) { matched = false; break; } diff --git a/src/test/scala/jauter/RoutingSpec.scala b/src/test/scala/jauter/RoutingSpec.scala index 30cbbd9..0c385ad 100644 --- a/src/test/scala/jauter/RoutingSpec.scala +++ b/src/test/scala/jauter/RoutingSpec.scala @@ -41,6 +41,11 @@ class RoutingSpec extends FlatSpec with Matchers { routed.params.get("*") should be ("foo/bar.png") } + "A router" should "handle splat in multiple patterns" in { + val routed = router.route(Method.GET, "/upload/foo/bar.png") + routed.target should be ("upload") + } + "A router" should "handle subclasses" in { trait Action class Index extends Action diff --git a/src/test/scala/jauter/StringRouter.scala b/src/test/scala/jauter/StringRouter.scala index 05a29a1..7fc5ce4 100644 --- a/src/test/scala/jauter/StringRouter.scala +++ b/src/test/scala/jauter/StringRouter.scala @@ -30,5 +30,6 @@ object StringMethodRouter { .DELETE ("/articles/:id", "delete") .ANY ("/any", "any") .GET ("/download/:*", "download") + .GET ("/upload/:*", "upload") .notFound ("404") }