@Test public void testQueryStringIsBeingPassedThroughExample() { // GIVEN mapping.setFromURI("/news/(.*)"); mapping.setToURI("http://noviny.cz/$1"); final String inputUri = "/news/news.html"; final String inputQueryString = "local=true&history=false&sport=true"; // WHEN final VirtualURIMapping.MappingResult res = queryAwareMapping.mapURI(inputUri, inputQueryString); // THEN assertNotNull(res); assertEquals("http://noviny.cz/news.html?local=true&history=false&sport=true", res.getToURI()); assertEquals(2, res.getLevel()); }
@Test public void testMapURIWithQueryToHost() { // GIVEN hostBasedMapping.addHost("host1=/path1/$1"); hostBasedMapping.setFromURI("/news/news.html?(.*)"); hostBasedMapping.setToURI("http://noviny.cz$1"); final String inputUri = "/news/news.html"; final String inputQueryString = "attribute=1"; // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI(inputUri, inputQueryString); // THEN assertNotNull(res); assertEquals("/path1/?attribute=1", res.getToURI()); }
@Test public void mapURIWhenHostMappingIsNull() throws Exception { // GIVEN hostBasedMapping.addMapping(new HostURIMapping(null, null)); // WHEN VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); } }
@Test public void testMapURIWithHostThatDoesMatch() { // GIVEN hostBasedMapping.addHost("host1=/path1"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void testMappingThatDoesMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host1", "/path1")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@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()); }
@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 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 testMapURIWithHostsWhereOneDoesMatch() { // GIVEN hostBasedMapping.addHost("host0=/path0"); hostBasedMapping.addHost("host1=/path1"); hostBasedMapping.addHost("host2=/path2"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void testMapURI() { // GIVEN hostBasedMapping.addHost("host1=/path1"); hostBasedMapping.setFromURI("/products/([0-9a-z]+)\\.html"); hostBasedMapping.setToURI("/product/detail.html?productId=$1"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products/magnolia.html"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@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 mapURIWhenHostMappingIsNull() throws Exception { // GIVEN hostBasedMapping.addMapping(new HostBasedVirtualURIMapping.HostURIMapping(null, null)); hostBasedMapping.setFromURI("/products/([0-9a-z]+)\\.html"); hostBasedMapping.setToURI("/product/detail.html?productId=$1"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products/magnolia.html"); // THEN assertNotNull(res); assertEquals("/product/detail.html?productId=magnolia", res.getToURI()); } }
@Test public void testMapURIWithHostThatDoesNotMatch() { // GIVEN hostBasedMapping.addHost("host2=/path1"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); }
@Test public void testMappingThatBestMatchWinsPart2() { // GIVEN setUpContextAndHost("subdomain.host.com"); hostBasedMapping.addMapping(new HostURIMapping("subdomain.host.com", "/path-com-subdomain")); hostBasedMapping.addMapping(new HostURIMapping("host.com", "/path-com")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path-com-subdomain", res.getToURI()); }
@Test public void testMappingThatBestMatchWinsPart1() { // GIVEN setUpContextAndHost("subdomain.host.com"); hostBasedMapping.addMapping(new HostURIMapping("host.com", "/path-com")); hostBasedMapping.addMapping(new HostURIMapping("subdomain.host.com", "/path-com-subdomain")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path-com-subdomain", res.getToURI()); }
@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 testMappingWhereOneDoesMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host0", "/path0")); hostBasedMapping.addMapping(new HostURIMapping("host1", "/path1")); hostBasedMapping.addMapping(new HostURIMapping("host2", "/path2")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void testMapURIWithNoHosts() { // GIVEN // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", 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 testMappingThatDoesNotMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host2", "/path1")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); }