@Override public MappingResult mapURI(String uri) { MappingResult result = super.mapURI(uri); if (result != null) { String destination = toURI; String hostMapping = this.tryToMapHost(); if (hostMapping != null) { destination = hostMapping; } result.setToURI(destination); return result; } return null; }
@Test public void testGracefullyFailingOnIncompleteConfig() { // GIVEN mapping.setFromURI(""); mapping.setToURI("/foo.action?param=$0&id=$5"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/foo/bar.html"); // THEN assertNull(res); }
@Test public void testGracefullyFailingOnWrongRegexGroup() { // GIVEN mapping.setFromURI("/foo/([a-z]+)/detail/([0-9]+)\\.html"); mapping.setToURI("/foo.action?param=$0&id=$5"); final String inputUri = "/foo/bar/detail/123.html"; // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI(inputUri); // THEN assertNull(res); }
@Test public void testExample2() { // GIVEN mapping.setFromURI("^/stk-resources/comics/resources/comics/css/(.*)\\.css$"); mapping.setToURI("forward:/docroot/comics/css/$1.css"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/stk-resources/comics/resources/comics/css/style.css"); // THEN assertNotNull(res); assertEquals("forward:/docroot/comics/css/style.css", res.getToURI()); }
@Test public void testExample3() { // GIVEN mapping.setFromURI("^/stk-resources/comics/resources/comics/css(.*)/(.*)\\.css$"); mapping.setToURI("forward:/docroot/comics/css/$2.css"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/stk-resources/comics/resources/comics/css\b/style.css"); // THEN assertNotNull(res); assertEquals("forward:/docroot/comics/css/style.css", res.getToURI()); }
@Test public void testRegexSubstitutionWorksAndLevelIsSetToGroupCountPlusOne() { // GIVEN mapping.setFromURI("/foo/(.*?)-([1-9]).html"); mapping.setToURI("/bar.action?foo=$1&id=$2"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/foo/chalala-6.html"); // THEN assertNotNull(res); assertEquals("/bar.action?foo=chalala&id=6", res.getToURI()); assertEquals(3, res.getLevel()); }
@Test public void testSupportsMoreThan9Groups() { // GIVEN mapping.setFromURI("/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z).html"); mapping.setToURI("/bar.action?param=$9-$266$10"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/abcdefghijklmnopqrstuvwxyz.html"); // THEN assertNotNull(res); // there is no group #266, so we expect group 9, "-", group 26, followed by "6", followed by group 10 assertEquals("/bar.action?param=i-z6j", res.getToURI()); assertEquals(27, res.getLevel()); }
@Test public void testExample() { // GIVEN mapping.setFromURI("/products/([0-9a-z]+)\\.html"); mapping.setToURI("/product/detail.html?productId=$1"); // WHEN final VirtualURIMapping.MappingResult res = mapping.mapURI("/products/magnolia.html"); // THEN assertNotNull(res); assertEquals("/product/detail.html?productId=magnolia", res.getToURI()); assertEquals(2, res.getLevel()); }
@Test public void mapURI() throws Exception { // GIVEN mapping.setFromURI("/ActivationHandler"); mapping.setToURI("/.magnolia/activation"); // WHEN VirtualURIMapping.MappingResult result = mapping.mapURI("/ActivationHandler"); // THEN assertNotNull(result); assertEquals("/.magnolia/activation", result.getToURI()); assertEquals(18, result.getLevel()); }