You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2014/02/11 22:44:23 UTC

svn commit: r1567404 - /tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java

Author: kkolinko
Date: Tue Feb 11 21:44:23 2014
New Revision: 1567404

URL: http://svn.apache.org/r1567404
Log:
Followup to r1567148
Expand validation tests for merged web.xml:
add default conf/web.xml into the merged one.

Modified:
    tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java?rev=1567404&r1=1567403&r2=1567404&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/descriptor/web/TestWebXml.java Tue Feb 11 21:44:23 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.tomcat.util.descriptor.web;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.StringReader;
 import java.util.HashSet;
@@ -29,7 +30,6 @@ import org.apache.tomcat.util.descriptor
 import org.apache.tomcat.util.descriptor.XmlErrorHandler;
 import org.apache.tomcat.util.descriptor.XmlIdentifiers;
 import org.apache.tomcat.util.digester.Digester;
-
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
@@ -171,12 +171,19 @@ public class TestWebXml {
             webxml.setVersion(version);
         }
 
+        // Merged web.xml that is published as MERGED_WEB_XML context attribute
+        // in the simplest case consists of webapp's web.xml file
+        // plus the default conf/web.xml one.
+        Set<WebXml> defaults = new HashSet<>();
+        defaults.add(getDefaultWebXmlFragment());
+        webxml.merge(defaults);
+
         Digester digester = DigesterFactory.newDigester(true, true, new WebRuleSet(), true);
 
         XmlErrorHandler handler = new XmlErrorHandler();
         digester.setErrorHandler(handler);
 
-        System.out.print(webxml.toXml() + "\n\n\n");
+        // System.out.print(webxml.toXml() + "\n\n\n");
 
         InputSource is = new InputSource(new StringReader(webxml.toXml()));
         digester.push(new WebXml());
@@ -186,6 +193,33 @@ public class TestWebXml {
         Assert.assertEquals(0, handler.getWarnings().size());
     }
 
+    // A simplified copy of ContextConfig.getDefaultWebXmlFragment().
+    // Assuming that global web.xml exists, host-specific web.xml does not exist.
+    private WebXml getDefaultWebXmlFragment() throws IOException, SAXException {
+        InputSource globalWebXml = new InputSource(new File("conf/web.xml")
+                .getAbsoluteFile().toURI().toString());
+
+        WebXml webXmlDefaultFragment = new WebXml();
+        webXmlDefaultFragment.setOverridable(true);
+        webXmlDefaultFragment.setDistributable(true);
+        webXmlDefaultFragment.setAlwaysAddWelcomeFiles(false);
+
+        Digester digester = DigesterFactory.newDigester(true, true, new WebRuleSet(), true);
+        XmlErrorHandler handler = new XmlErrorHandler();
+        digester.setErrorHandler(handler);
+        digester.push(webXmlDefaultFragment);
+        digester.parse(globalWebXml);
+        Assert.assertEquals(0, handler.getErrors().size());
+        Assert.assertEquals(0, handler.getWarnings().size());
+
+        webXmlDefaultFragment.setReplaceWelcomeFiles(true);
+
+        // Assert that web.xml was parsed and is not empty. Default servlet is known to be there.
+        Assert.assertNotNull(webXmlDefaultFragment.getServlets().get("default"));
+
+        return webXmlDefaultFragment;
+    }
+
     @Test
     public void testLifecycleMethodsWebXml() {
         WebXml webxml = new WebXml();



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org