You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/10/05 17:32:42 UTC

svn commit: r1004671 - in /tomcat/trunk: java/org/apache/tomcat/util/http/mapper/Mapper.java test/org/apache/tomcat/util/http/mapper/ test/org/apache/tomcat/util/http/mapper/TestMapper.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org