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