Author: markt
Date: Wed Jun  5 11:12:08 2013
New Revision: 1489812

URL: http://svn.apache.org/r1489812
Log:
Add test cases for context level copyXML and fix bug they identified.

Added:
    tomcat/trunk/test/deployment/contextCopyXMLFalse.war   (with props)
    tomcat/trunk/test/deployment/contextCopyXMLTrue.war   (with props)
Modified:
    tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
    
tomcat/trunk/test/org/apache/catalina/startup/TestHostConfigAutomaticDeployment.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1489812&r1=1489811&r2=1489812&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Wed Jun  5 
11:12:08 2013
@@ -894,8 +894,8 @@ public class HostConfig
             }
 
             // If Host is using default value Context can override it.
-            if (!copyXML && context instanceof StandardContext) {
-                copyXML = ((StandardContext) context).getCopyXML();
+            if (!copyThisXml && context instanceof StandardContext) {
+                copyThisXml = ((StandardContext) context).getCopyXML();
             }
 
             if (xmlInWar && copyThisXml) {

Added: tomcat/trunk/test/deployment/contextCopyXMLFalse.war
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/deployment/contextCopyXMLFalse.war?rev=1489812&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tomcat/trunk/test/deployment/contextCopyXMLFalse.war
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tomcat/trunk/test/deployment/contextCopyXMLTrue.war
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/deployment/contextCopyXMLTrue.war?rev=1489812&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tomcat/trunk/test/deployment/contextCopyXMLTrue.war
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: 
tomcat/trunk/test/org/apache/catalina/startup/TestHostConfigAutomaticDeployment.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestHostConfigAutomaticDeployment.java?rev=1489812&r1=1489811&r2=1489812&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/startup/TestHostConfigAutomaticDeployment.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/startup/TestHostConfigAutomaticDeployment.java
 Wed Jun  5 11:12:08 2013
@@ -49,6 +49,10 @@ public class TestHostConfigAutomaticDepl
             new File("test/deployment/context.xml");
     private static final File WAR_XML_SOURCE =
             new File("test/deployment/context.war");
+    private static final File WAR_XML_COPYXML_FALSE_SOURCE =
+            new File("test/deployment/contextCopyXMLFalse.war");
+    private static final File WAR_XML_COPYXML_TRUE_SOURCE =
+            new File("test/deployment/contextCopyXMLTrue.war");
     private static final File WAR_XML_UNPACKWAR_FALSE_SOURCE =
             new File("test/deployment/contextUnpackWARFalse.war");
     private static final File WAR_XML_UNPACKWAR_TRUE_SOURCE =
@@ -1726,4 +1730,87 @@ public class TestHostConfigAutomaticDepl
             return stateHistory.toString();
         }
     }
+
+
+    /*
+     * Test context copyXML setting.
+     * If context.copyXML != Host.copyXML the Host wins.
+     * For external WARs, a context.xml must always already exist
+     */
+    @Test
+    public void testCopyXMLFFF() throws Exception  {
+        doTestCopyXML(false, false, false, false);
+    }
+
+    @Test
+    public void testCopyXMLFFT() throws Exception  {
+        doTestCopyXML(false, false, true, true);
+    }
+
+    @Test
+    public void testCopyXMLFTF() throws Exception  {
+        doTestCopyXML(false, true, false, true);
+    }
+
+    @Test
+    public void testCopyXMLFTT() throws Exception  {
+        doTestCopyXML(false, true, true, true);
+    }
+
+    @Test
+    public void testCopyXMLTFF() throws Exception  {
+        doTestCopyXML(true, false, false, true);
+    }
+
+    @Test
+    public void testCopyXMLTFT() throws Exception  {
+        doTestCopyXML(true, false, true, true);
+    }
+
+    @Test
+    public void testCopyXMLTTF() throws Exception  {
+        doTestCopyXML(true, true, false, true);
+    }
+
+    @Test
+    public void testCopyXMLTTT() throws Exception  {
+        doTestCopyXML(true, true, true, true);
+    }
+
+    private void doTestCopyXML(boolean copyXmlHost, boolean copyXmlWar,
+            boolean external, boolean resultXml) throws Exception {
+
+        Tomcat tomcat = getTomcatInstance();
+        StandardHost host = (StandardHost) tomcat.getHost();
+
+        host.setCopyXML(copyXmlHost);
+
+        tomcat.start();
+
+        File war;
+        if (copyXmlWar) {
+            war = createWar(WAR_XML_COPYXML_TRUE_SOURCE, !external);
+        } else {
+            war = createWar(WAR_XML_COPYXML_FALSE_SOURCE, !external);
+        }
+        if (external) {
+            createXmlInConfigBaseForExternal(war);
+        }
+
+        host.backgroundProcess();
+
+        File xml = new File(host.getConfigBaseFile(),
+                APP_NAME.getBaseName() + ".xml");
+        Assert.assertEquals(
+                Boolean.valueOf(resultXml), Boolean.valueOf(xml.isFile()));
+
+        Context context = (Context) host.findChild(APP_NAME.getName());
+        if (external) {
+            Assert.assertEquals(XML_COOKIE_NAME,
+                    context.getSessionCookieName());
+        } else {
+            Assert.assertEquals(WAR_COOKIE_NAME,
+                    context.getSessionCookieName());
+        }
+    }
 }



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

Reply via email to