/** * @param mapping in the form host=path * @Deprecated since 4.5.18, Use {@link #addMapping(HostURIMapping))} instead. * Adds a host mapping (used by content2bean). */ @Deprecated public void addHost(String mapping) { String[] hostToPath = StringUtils.split(mapping, "="); if (hostToPath != null && hostToPath.length == 2) { synchronized (hosts) { hosts.add(new HostURIMapping(hostToPath[0], hostToPath[1])); } } }
@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 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 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 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 validateUriWhenToURIIsNotSetButHostMappingIsSet() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setFromURI("/products"); hostBasedMapping.addMapping(new HostURIMapping("test.com", "/somewhere")); // WHEN - THEN assertTrue(hostBasedMapping.isValid()); }
@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 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()); }