@Test public void testComponent() throws Exception { Map<String, String> expectedParameters = new HashMap<String, String>(); expectedParameters.put(Names.GTN_SITENAME, "classic"); expectedParameters.put(Names.GTN_SITETYPE, "portal"); expectedParameters.put(Names.GTN_PATH, "/"); // router.assertRoute(portal, expectedParameters, "/private/portal/classic/"); assertEquals("/private/portal/classic/", portal.matches(expectedParameters).render()); }
@Test public void testPrivateClassicSlash() throws Exception { Map<String, String> expectedParameters = new HashMap<String, String>(); expectedParameters.put(Names.GTN_SITENAME, "classic"); expectedParameters.put(Names.GTN_SITETYPE, "portal"); expectedParameters.put(Names.GTN_PATH, "/"); // router.assertRoute(portal, expectedParameters, "/private/portal/classic/"); assertEquals("/private/portal/classic/", portal.matches(expectedParameters).render()); }
@Test public void testSimplePatternPathParam() throws Exception { Router router = new Router(); Route r = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("a"))); // assertEquals("/a", r.matches(Collections.singletonMap(Names.P, "a")).render()); assertNull(r.matches(Collections.singletonMap(Names.P, "ab"))); }
@Test public void testPathParam() { Router router = new Router(); Route a = router.append("/{a}"); assertNull(a.matches(Collections.<String, String>emptyMap())); assertMatch("/foo", a, Collections.<String, String>singletonMap(Names.A, "foo")); } }
@Test public void testLang() throws Exception { Router router = new Router(); Route r = router.append("/{a}b", Collections.singletonMap(Names.A, PathParam.matching("(([A-Za-z]{2})/)?").preservePath(true))); // assertEquals("/fr/b", r.matches(Collections.singletonMap(Names.A, "fr/")).render()); assertEquals("/b", r.matches(Collections.singletonMap(Names.A, "")).render()); }
@Test public void testLang() throws Exception { Router router = new Router(); Route r = router.append("/{a}b", Collections.singletonMap(Names.A, PathParam.matching("(([A-Za-z]{2})/)?").preservePath(true))); // assertEquals("/fr/b", r.matches(Collections.singletonMap(Names.A, "fr/")).render()); assertEquals("/b", r.matches(Collections.singletonMap(Names.A, "")).render()); }
@Test public void testPath() { Router router = new Router(); Route a = router.append("/a"); RouteMatch match = a.matches(Collections.<String, String>emptyMap()); assertNotNull(match); assertMatch("/a?a=foo", a, Collections.<String, String>singletonMap(Names.A, "foo")); assertMatch("/a?a=foo%26bar", a, Collections.<String, String>singletonMap(Names.A, "foo&bar")); assertMatch("/a?a%26b=foo", a, Collections.<String, String>singletonMap("a&b", "foo")); }
@Test public void testPathParam() { Router router = new Router(); Route a = router.append("/{a}"); assertNull(a.matches(Collections.<String, String>emptyMap())); assertMatch("/foo", a, Collections.<String, String>singletonMap(Names.A, "foo")); } }
@Test public void testBug() throws Exception { Router router = new Router(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^_]+"))); // This is a *known* bug assertNull(router.route("/_")); // This is expected assertEquals("/_", a.matches(Collections.singletonMap(Names.P, "/")).render()); // This is expected assertNull(router.route("/%5F")); assertNull(a.matches(Collections.singletonMap(Names.P, "_"))); }
@Test public void testA() throws Exception { Router router = new Router(); Route r = router.append("/a"); // assertEquals("/a", r.matches(Collections.<String, String>emptyMap()).render()); }
@Test public void testAB() throws Exception { Router router = new Router(); Route r = router.append("/a/b"); // assertEquals("/a/b", r.matches(Collections.<String, String>emptyMap()).render()); }
@Test public void testDisjunction() throws Exception { Router router = new Router(); Route r = router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching("a|b"))); // assertEquals("/b", r.matches(Collections.singletonMap(Names.A, "b")).render()); }
@Test public void testWildcardParamPathWithDefaultForm() throws Exception { Router router = new Router(); Route a= router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching(".*"))); // assertEquals("/_", a.matches(Collections.singletonMap(Names.P, "/")).render()); }
@Test public void testRoot1() throws Exception { Router router = new Router(); Route r = router.append("/"); // assertEquals("/", r.matches(Collections.<String, String>emptyMap()).render()); }
@Test public void testAvoidMatchingPrefix() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/{a}/ab/c", Collections.singletonMap(Names.A, PathParam.matching("a?").preservePath(true))); // Map<String, String> expectedParameters = new HashMap<String, String>(); expectedParameters.put(Names.A, ""); router.assertRoute(a, expectedParameters, "/ab/c"); assertEquals("/ab/c", a.matches(expectedParameters).render()); }
@Test public void testCaptureGroup() throws Exception { Router router = new Router(); Route r = router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching("a(.)c").captureGroup(true))); // assertEquals("/abc", r.matches(Collections.singletonMap(Names.A, "b")).render()); } }
@Test public void testCaptureGroup() throws Exception { Router router = new Router(); Route r = router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching("a(.)c").captureGroup(true))); // assertEquals("/abc", r.matches(Collections.singletonMap(Names.A, "b")).render()); } }
@Test public void testParamPreservePath() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^/]+").preservePath(true))); // Route router.assertRoute(Collections.singletonMap(Names.P, "_"), "/_"); assertNull(router.route("//")); // Render assertNull(a.matches(Collections.singletonMap(Names.P, "/"))); }
@Test public void testParamPreservePath() throws Exception { RouterAssert router = new RouterAssert(); Route a = router.append("/{p}", Collections.singletonMap(Names.P, PathParam.matching("[^/]+").preservePath(true))); // Route router.assertRoute(Collections.singletonMap(Names.P, "_"), "/_"); assertNull(router.route("//")); // Render assertNull(a.matches(Collections.singletonMap(Names.P, "/"))); }