Author: markt Date: Tue Oct 5 15:32:41 2010 New Revision: 1004671 URL: http://svn.apache.org/viewvc?rev=1004671&view=rev Log: Turn the commented out test code into a unit test.
Added: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/ tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java (with props) Modified: tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java Modified: tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java?rev=1004671&r1=1004670&r2=1004671&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java Tue Oct 5 15:32:41 2010 @@ -1480,117 +1480,4 @@ public final class Mapper { public String path = null; public boolean jspWildCard = false; } - - - // -------------------------------------------------------- Testing Methods - - // FIXME: Externalize this - /* - public static void main(String args[]) { - - try { - - Mapper mapper = new Mapper(); - System.out.println("Start"); - - mapper.addHost("sjbjdvwsbvhrb", new String[0], "blah1"); - mapper.addHost("sjbjdvwsbvhr/", new String[0], "blah1"); - mapper.addHost("wekhfewuifweuibf", new String[0], "blah2"); - mapper.addHost("ylwrehirkuewh", new String[0], "blah3"); - mapper.addHost("iohgeoihro", new String[0], "blah4"); - mapper.addHost("fwehoihoihwfeo", new String[0], "blah5"); - mapper.addHost("owefojiwefoi", new String[0], "blah6"); - mapper.addHost("iowejoiejfoiew", new String[0], "blah7"); - mapper.addHost("iowejoiejfoiew", new String[0], "blah17"); - mapper.addHost("ohewoihfewoih", new String[0], "blah8"); - mapper.addHost("fewohfoweoih", new String[0], "blah9"); - mapper.addHost("ttthtiuhwoih", new String[0], "blah10"); - mapper.addHost("lkwefjwojweffewoih", new String[0], "blah11"); - mapper.addHost("zzzuyopjvewpovewjhfewoih", new String[0], "blah12"); - mapper.addHost("xxxxgqwiwoih", new String[0], "blah13"); - mapper.addHost("qwigqwiwoih", new String[0], "blah14"); - - System.out.println("Map:"); - for (int i = 0; i < mapper.hosts.length; i++) { - System.out.println(mapper.hosts[i].name); - } - - mapper.setDefaultHostName("ylwrehirkuewh"); - - String[] welcomes = new String[2]; - welcomes[0] = "boo/baba"; - welcomes[1] = "bobou"; - - mapper.addContext("iowejoiejfoiew", "", "context0", new String[0], null); - mapper.addContext("iowejoiejfoiew", "/foo", "context1", new String[0], null); - mapper.addContext("iowejoiejfoiew", "/foo/bar", "context2", welcomes, null); - mapper.addContext("iowejoiejfoiew", "/foo/bar/bla", "context3", new String[0], null); - - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/fo/*", "wrapper0"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/", "wrapper1"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blh", "wrapper2"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.jsp", "wrapper3"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bou/*", "wrapper4"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bobou/*", "wrapper5"); - mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.htm", "wrapper6"); - - MappingData mappingData = new MappingData(); - MessageBytes host = MessageBytes.newInstance(); - host.setString("iowejoiejfoiew"); - MessageBytes uri = MessageBytes.newInstance(); - uri.setString("/foo/bar/blah/bobou/foo"); - uri.toChars(); - uri.getCharChunk().setLimit(-1); - - mapper.map(host, uri, mappingData); - System.out.println("MD Host:" + mappingData.host); - System.out.println("MD Context:" + mappingData.context); - System.out.println("MD Wrapper:" + mappingData.wrapper); - - System.out.println("contextPath:" + mappingData.contextPath); - System.out.println("wrapperPath:" + mappingData.wrapperPath); - System.out.println("pathInfo:" + mappingData.pathInfo); - System.out.println("redirectPath:" + mappingData.redirectPath); - - mappingData.recycle(); - mapper.map(host, uri, mappingData); - System.out.println("MD Host:" + mappingData.host); - System.out.println("MD Context:" + mappingData.context); - System.out.println("MD Wrapper:" + mappingData.wrapper); - - System.out.println("contextPath:" + mappingData.contextPath); - System.out.println("wrapperPath:" + mappingData.wrapperPath); - System.out.println("pathInfo:" + mappingData.pathInfo); - System.out.println("redirectPath:" + mappingData.redirectPath); - - for (int i = 0; i < 1000000; i++) { - mappingData.recycle(); - mapper.map(host, uri, mappingData); - } - - long time = System.currentTimeMillis(); - for (int i = 0; i < 1000000; i++) { - mappingData.recycle(); - mapper.map(host, uri, mappingData); - } - System.out.println("Elapsed:" + (System.currentTimeMillis() - time)); - - System.out.println("MD Host:" + mappingData.host); - System.out.println("MD Context:" + mappingData.context); - System.out.println("MD Wrapper:" + mappingData.wrapper); - - System.out.println("contextPath:" + mappingData.contextPath); - System.out.println("wrapperPath:" + mappingData.wrapperPath); - System.out.println("requestPath:" + mappingData.requestPath); - System.out.println("pathInfo:" + mappingData.pathInfo); - System.out.println("redirectPath:" + mappingData.redirectPath); - - } catch (Exception e) { - e.printStackTrace(); - } - - } - */ - - } Added: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java?rev=1004671&view=auto ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java (added) +++ tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java Tue Oct 5 15:32:41 2010 @@ -0,0 +1,147 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.http.mapper; + +import junit.framework.TestCase; + +import org.apache.tomcat.util.buf.MessageBytes; + +public class TestMapper extends TestCase { + + private Mapper mapper; + + @Override + protected void setUp() throws Exception { + mapper = new Mapper(); + + mapper.addHost("sjbjdvwsbvhrb", new String[0], "blah1"); + mapper.addHost("sjbjdvwsbvhr/", new String[0], "blah1"); + mapper.addHost("wekhfewuifweuibf", new String[0], "blah2"); + mapper.addHost("ylwrehirkuewh", new String[0], "blah3"); + mapper.addHost("iohgeoihro", new String[0], "blah4"); + mapper.addHost("fwehoihoihwfeo", new String[0], "blah5"); + mapper.addHost("owefojiwefoi", new String[0], "blah6"); + mapper.addHost("iowejoiejfoiew", new String[0], "blah7"); + mapper.addHost("iowejoiejfoiew", new String[0], "blah17"); + mapper.addHost("ohewoihfewoih", new String[0], "blah8"); + mapper.addHost("fewohfoweoih", new String[0], "blah9"); + mapper.addHost("ttthtiuhwoih", new String[0], "blah10"); + mapper.addHost("lkwefjwojweffewoih", new String[0], "blah11"); + mapper.addHost("zzzuyopjvewpovewjhfewoih", new String[0], "blah12"); + mapper.addHost("xxxxgqwiwoih", new String[0], "blah13"); + mapper.addHost("qwigqwiwoih", new String[0], "blah14"); + + mapper.setDefaultHostName("ylwrehirkuewh"); + + String[] welcomes = new String[2]; + welcomes[0] = "boo/baba"; + welcomes[1] = "bobou"; + + mapper.addContext("iowejoiejfoiew", "blah7", "", + "context0", new String[0], null); + mapper.addContext("iowejoiejfoiew", "blah7", "/foo", + "context1", new String[0], null); + mapper.addContext("iowejoiejfoiew", "blah7", "/foo/bar", + "context2", welcomes, null); + mapper.addContext("iowejoiejfoiew", "blah7", "/foo/bar/bla", + "context3", new String[0], null); + + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/fo/*", "wrapper0"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/", "wrapper1"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blh", "wrapper2"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.jsp", "wrapper3"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bou/*", "wrapper4"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bobou/*", "wrapper5"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.htm", "wrapper6"); + mapper.addWrapper("iowejoiejfoiew", "/foo/bar/bla", "/bobou/*", "wrapper7"); + } + + + public void testAddHost() throws Exception { + // Check we have the right number (add 16 but one is a duplicate) + assertEquals(15, mapper.hosts.length); + + // Make sure adding a duplicate *does not* overwrite + assertEquals("blah7", mapper.hosts[3].object); + + // Check for alphabetical order of host names + String previous; + String current = mapper.hosts[0].name; + for (int i = 1; i < mapper.hosts.length; i++) { + previous = current; + current = mapper.hosts[i].name; + assertTrue(previous.compareTo(current) < 0); + } + } + + + public void testMap() throws Exception { + MappingData mappingData = new MappingData(); + MessageBytes host = MessageBytes.newInstance(); + host.setString("iowejoiejfoiew"); + MessageBytes uri = MessageBytes.newInstance(); + uri.setString("/foo/bar/blah/bobou/foo"); + uri.toChars(); + uri.getCharChunk().setLimit(-1); + + mapper.map(host, uri, mappingData); + assertEquals("blah7", mappingData.host); + assertEquals("context2", mappingData.context); + assertEquals("wrapper5", mappingData.wrapper); + assertEquals("/foo/bar", mappingData.contextPath.toString()); + assertEquals("/blah/bobou", mappingData.wrapperPath.toString()); + assertEquals("/foo", mappingData.pathInfo.toString()); + assertTrue(mappingData.redirectPath.isNull()); + + mappingData.recycle(); + uri.recycle(); + uri.setString("/foo/bar/bla/bobou/foo"); + uri.toChars(); + uri.getCharChunk().setLimit(-1); + mapper.map(host, uri, mappingData); + assertEquals("blah7", mappingData.host); + assertEquals("context3", mappingData.context); + assertEquals("wrapper7", mappingData.wrapper); + assertEquals("/foo/bar/bla", mappingData.contextPath.toString()); + assertEquals("/bobou", mappingData.wrapperPath.toString()); + assertEquals("/foo", mappingData.pathInfo.toString()); + assertTrue(mappingData.redirectPath.isNull()); + } + + + public void testPerformance() throws Exception { + MappingData mappingData = new MappingData(); + MessageBytes host = MessageBytes.newInstance(); + host.setString("iowejoiejfoiew"); + MessageBytes uri = MessageBytes.newInstance(); + uri.setString("/foo/bar/blah/bobou/foo"); + uri.toChars(); + uri.getCharChunk().setLimit(-1); + + long start = System.currentTimeMillis(); + for (int i = 0; i < 1000000; i++) { + mappingData.recycle(); + mapper.map(host, uri, mappingData); + } + long time = System.currentTimeMillis() - start; + + // Takes ~1s on markt's laptop. If this takes more than 3s something + // probably needs looking at. If this fails repeatedly then we may need + // to increase this limit. + assertTrue(time < 3000); + } +} Propchange: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org