[cargo-dev] [cargo] r3230 - in core/trunk/api/module/src: main/java/org/codehaus/cargo/module/webapp main/java/org/codehaus/cargo/module/webapp/elements main/java/org/codehaus/cargo/module/webapp/merge test/java/org/codehaus/cargo/module/webapp/merge
Author: alitokmen
Date: 2012-02-02 15:51:01 -0600 (Thu, 02 Feb 2012)
New Revision: 3230
Added:
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
Modified:
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java
core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
Log:
Fix: CARGO-1078 - Duplicate entries when merging <filter-mapping>
Fix: CARGO-1079 - Add support for merging <mime-mapping>
Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml22Type.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -28,6 +28,7 <at> <at>
import org.codehaus.cargo.module.webapp.elements.FilterMapping;
import org.codehaus.cargo.module.webapp.elements.InitParam;
import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
import org.codehaus.cargo.module.webapp.elements.SecurityConstraint;
import org.codehaus.cargo.module.webapp.elements.Servlet;
<at> <at> -72,7 +73,7 <at> <at>
new WebXmlTag(this, "servlet-mapping"),
new WebXmlTag(this, "url-pattern"),
new WebXmlTag(this, "session-config", false),
- new WebXmlTag(this, "mime-mapping"),
+ new WebXmlTag(this, "mime-mapping", false, null, MimeMapping.class),
new WebXmlTag(this, "welcome-file-list", false),
new WebXmlTag(this, "error-page", true, new Identifier(
"concat(error-code,'>',exception-type)"), null), new WebXmlTag(this, "taglib"),
Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXml24Type.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -33,6 +33,7 <at> <at>
import org.codehaus.cargo.module.webapp.elements.FilterMapping;
import org.codehaus.cargo.module.webapp.elements.InitParam;
import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
import org.codehaus.cargo.module.webapp.elements.SecurityConstraint;
import org.codehaus.cargo.module.webapp.elements.Servlet;
<at> <at> -99,7 +100,7 <at> <at>
new WebXmlTag(this, "servlet-mapping"),
new WebXmlTag(this, "url-pattern"),
new WebXmlTag(this, "session-config", false),
- new WebXmlTag(this, "mime-mapping"),
+ new WebXmlTag(this, "mime-mapping", false, null, MimeMapping.class),
new WebXmlTag(this, "welcome-file-list", false),
new WebXmlTag(this, "error-page", true, new Identifier(
"concat(error-code,'>',exception-type)"), null),
Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlType.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -148,6 +148,16 <at> <at>
public static final String MIME_MAPPING = "mime-mapping";
/**
+ * Element name 'extension'.
+ */
+ public static final String EXTENSION = "extension";
+
+ /**
+ * Element name 'mime-type'.
+ */
+ public static final String MIME_TYPE = "mime-type";
+
+ /**
* Element name 'welcome-file-list'.
*/
public static final String WELCOME_FILE_LIST = "welcome-file-list";
Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/WebXmlUtils.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -20,6 +20,7 <at> <at>
package org.codehaus.cargo.module.webapp;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.codehaus.cargo.module.Descriptor;
<at> <at> -857,39 +858,70 <at> <at>
throw new IllegalStateException("Filter '" + filterName + "' not defined");
}
- FilterMapping filterMappingElement = (FilterMapping) webXml.getDescriptorType()
- .getTagByName(WebXmlType.FILTER_MAPPING).create();
+ List<FilterMapping> mappings = WebXmlUtils.getFilterMappingElements(webXml,
+ filterName);
- filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
- WebXmlType.FILTER_NAME).create().setText(
- filterName));
+ FilterMapping filterMappingElement = null;
+ for (FilterMapping mapping : mappings)
+ {
+ if (rhs.getUrlPattern() != null)
+ {
+ if (rhs.getUrlPattern().equals(mapping.getUrlPattern()))
+ {
+ filterMappingElement = mapping;
+ break;
+ }
+ }
+ else if (rhs.getServletName() != null)
+ {
+ if (rhs.getServletName().equals(mapping.getServletName()))
+ {
+ filterMappingElement = mapping;
+ break;
+ }
+ }
+ }
- String urlPattern = rhs.getUrlPattern();
+ if (filterMappingElement == null)
+ {
+ filterMappingElement = (FilterMapping) webXml.getDescriptorType()
+ .getTagByName(WebXmlType.FILTER_MAPPING).create();
- if (urlPattern != null)
- {
filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
- WebXmlType.URL_PATTERN).create().setText(urlPattern));
- }
- else
- {
- // must be servlet name instead
- String servletName = rhs.getServletName();
- if (servletName == null)
+ WebXmlType.FILTER_NAME).create().setText(filterName));
+
+ String urlPattern = rhs.getUrlPattern();
+
+ if (urlPattern != null)
{
- throw new IllegalStateException("Filter '" + filterName
- + "' has neither a servlet-name nor a url-pattern.");
+ filterMappingElement.addContent(webXml.getDescriptorType().getTagByName(
+ WebXmlType.URL_PATTERN).create().setText(urlPattern));
}
- filterMappingElement.setServletName(servletName);
+ else
+ {
+ // must be servlet name instead
+ String servletName = rhs.getServletName();
+ if (servletName == null)
+ {
+ throw new IllegalStateException("Filter '" + filterName
+ + "' has neither a servlet-name nor a url-pattern.");
+ }
+ filterMappingElement.setServletName(servletName);
+ }
}
String[] dispatchers = rhs.getDispatchers();
+ List<String> filterMappingElementDispatchers =
+ Arrays.asList(filterMappingElement.getDispatchers());
if (dispatchers != null)
{
for (String dispatcher : dispatchers)
{
- filterMappingElement.addDispatcher(dispatcher);
+ if (!filterMappingElementDispatchers.contains(dispatcher))
+ {
+ filterMappingElement.addDispatcher(dispatcher);
+ }
}
}
<at> <at> -1006,7 +1038,6 <at> <at>
}
return initParam.getParamValue();
-
}
/**
Added: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java (rev 0)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -0,0 +1,79 <at> <at>
+/*
+ * ========================================================================
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.elements;
+
+import org.codehaus.cargo.module.webapp.WebXmlTag;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.jdom.Element;
+
+/**
+ * <at> version $Id$
+ */
+public class MimeMapping extends WebXmlElement
+{
+ /**
+ * Constructor.
+ * <at> param tag Web Xml Tag definition
+ */
+ public MimeMapping(WebXmlTag tag)
+ {
+ super(tag);
+ }
+
+ /**
+ * Get the Extension.
+ * <at> return Extension
+ */
+ public String getExtension()
+ {
+ Element e = getChild(WebXmlType.EXTENSION, this.getNamespace());
+ return e.getText();
+ }
+
+ /**
+ * Set the Extension.
+ * <at> param extension The Extension
+ */
+ public void setExtension(String extension)
+ {
+ Element e = child(WebXmlType.EXTENSION);
+ e.setText(extension);
+ }
+
+ /**
+ * Get the mime type.
+ * <at> return The mime type
+ */
+ public String getMimeType()
+ {
+ Element e = getChild(WebXmlType.MIME_TYPE, this.getNamespace());
+ return e.getText();
+ }
+
+ /**
+ * Set the mime type.
+ * <at> param mimeType The mime type
+ */
+ public void setMimeType(String mimeType)
+ {
+ Element e = child(WebXmlType.MIME_TYPE);
+ e.setText(mimeType);
+ }
+}
Property changes on: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/elements/MimeMapping.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java
===================================================================
--- core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/main/java/org/codehaus/cargo/module/webapp/merge/WebXmlMerger.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -35,7 +35,9 <at> <at>
import org.codehaus.cargo.module.webapp.WebXmlUtils;
import org.codehaus.cargo.module.webapp.WebXmlVersion;
import org.codehaus.cargo.module.webapp.elements.FilterMapping;
+import org.codehaus.cargo.module.webapp.elements.MimeMapping;
import org.codehaus.cargo.util.CargoException;
+import org.jdom.Element;
/**
* Helper class that can merge two web deployment descriptors.
<at> <at> -70,6 +72,8 <at> <at>
WebXmlType.FILTER_MAPPING, DescriptorMergerByTag.IGNORE);
descriptorMergerByTag.setStrategy(
WebXmlType.SERVLET, DescriptorMergerByTag.IGNORE);
+ descriptorMergerByTag.setStrategy(
+ WebXmlType.MIME_MAPPING, DescriptorMergerByTag.IGNORE);
addMerger(descriptorMergerByTag);
}
<at> <at> -129,6 +133,7 <at> <at>
mergeSecurityRoles(theMergeWebXml);
+ mergeMimeMappings(theMergeWebXml);
}
catch (Exception e)
{
<at> <at> -312,4 +317,53 <at> <at>
this.getClass().getName());
}
}
+
+ /**
+ * Merges the servlet definitions from the specified descriptor into the original descriptor.
+ *
+ * <at> param theWebXml The descriptor that contains the filter definitions that are to be merged
+ * into the original descriptor
+ */
+ protected final void mergeMimeMappings(WebXml theWebXml)
+ {
+ int count = 0;
+
+ List<Element> srcItems = webXml.getTags(WebXmlType.MIME_MAPPING);
+ List<Element> targetItems = theWebXml.getTags(WebXmlType.MIME_MAPPING);
+
+ for (Element targetItem : targetItems)
+ {
+ boolean foundItem = false;
+
+ MimeMapping targetMimeMapping = (MimeMapping) targetItem;
+
+ for (Element srcItem : srcItems)
+ {
+ MimeMapping srcMimeMapping = (MimeMapping) srcItem;
+
+ if (targetMimeMapping.getExtension().equals(srcMimeMapping.getExtension()))
+ {
+ foundItem = true;
+ break;
+ }
+ }
+
+ if (!foundItem)
+ {
+ MimeMapping mimeMappingElement = (MimeMapping) webXml.getDescriptorType().
+ getTagByName(WebXmlType.MIME_MAPPING).create();
+
+ mimeMappingElement.setExtension(targetMimeMapping.getExtension());
+ mimeMappingElement.setMimeType(targetMimeMapping.getMimeType());
+
+ this.webXml.addElement(mimeMappingElement.getTag(), mimeMappingElement,
+ this.webXml.getRootElement());
+ this.webXml.addTag(mimeMappingElement);
+ }
+ }
+
+ getLogger().debug("Merged " + count + " mime mapping definition"
+ + (count != 1 ? "s " : " ") + "into the descriptor",
+ this.getClass().getName());
+ }
}
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,421 +1,421 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.merge.DescriptorMergerByTag;
-import org.codehaus.cargo.module.merge.tagstrategy.NodeMergeStrategy;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlType;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger} with merge strategies.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlContextParamMergeStrategyMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Creates WebXml with given context parameter.
- *
- * <at> param name parameter name
- * <at> param value parameter value
- * <at> return corresponding WebXml object
- * <at> throws Exception If an unexpected error occurs
- */
- private WebXml getWebXml(String name, String value) throws Exception
- {
- String xml = "<web-app>"
- + " <context-param>"
- + " <param-name>" + name + "</param-name>"
- + " <param-value>" + value + "</param-value>"
- + " </context-param>"
- + "</web-app>";
- return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null);
- }
-
- /**
- * Creates JDOM element with given context parameter.
- *
- * <at> param name parameter name
- * <at> param value parameter value
- * <at> return JDOM object
- * <at> throws Exception If an unexpected error occurs
- */
- private Element getContextParamElement(String name, String value) throws Exception
- {
- String xml = "<context-param>"
- + " <param-name>" + name + "</param-name>"
- + " <param-value>" + value + "</param-value>"
- + "</context-param>";
- return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null)
- .getRootElement();
- }
-
- /**
- * Retrieves parameter value from "context-param" element.
- *
- * <at> param param element to inspect
- * <at> return parameter value, null for null input
- */
- private String getContextParamValue(Element param)
- {
- if (param == null)
- {
- return null;
- }
- return param.getChild(WebXmlType.PARAM_VALUE).getText();
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
- * assumes that only initial descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInLeftWithPreserveStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("other", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
- * assumes that only overlay descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInRightWithPreserveStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("other", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
- * assumes that both descriptors have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithPreserveStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
- * assumes that only initial descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInLeftWithOverwiteStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("other", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
- * assumes that only overlay descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInRightWithOverwiteStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("other", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
- * assumes that both descriptors have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithOverwiteStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
- * assumes that only initial descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInLeftWithIgnoreStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("other", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
- * assumes that only overlay descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInRightWithIgnoreStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("other", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
- merger.merge(mergeWebXml);
- assertFalse(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- }
-
- /**
- * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
- * assumes that both descriptors have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithIgnoreStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. This test assumes that only initial
- * descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInLeftWithNodeMergeStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("other", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "$left:param-value $right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. This test assumes that only overlay
- * descriptor have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInRightWithNodeMergeStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("other", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "$left:param-value $right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. This test assumes that both descriptors
- * have the parameter under test.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategy() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "$left:param-value $right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1 value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. In this test merge descriptor uses left
- * value only.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategyWithLeftValueOnly() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name", "$left:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. In this test merge descriptor uses right
- * value only.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategyWithRightValueOnly() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name", "$right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. In this test merge descriptor contains
- * static text in addition to dynamic values.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategyWithMixedContent() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "111 $left:param-value 222 $right:param-value 333");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("111 value1 222 value2 333",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. In this test one of the values to be
- * replaced contains dollar sign.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategyWithDollarSignInValue() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "${value2}");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "$left:param-value $right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1 ${value2}",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
- /**
- * Tests NodeMerge merge strategy. In this test target pattern contains
- * comma as a delimiter.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeInBothWithNodeMergeStrategyWithCommaInPattern() throws Exception
- {
- WebXml srcWebXml = getWebXml("param", "value1");
- WebXml mergeWebXml = getWebXml("param", "value2");
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- Element format = getContextParamElement("$left:param-name",
- "$left:param-value,$right:param-value");
- NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
- merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- assertEquals("value1,value2",
- getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.merge.DescriptorMergerByTag;
+import org.codehaus.cargo.module.merge.tagstrategy.NodeMergeStrategy;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger} with merge strategies.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlContextParamMergeStrategyMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Creates WebXml with given context parameter.
+ *
+ * <at> param name parameter name
+ * <at> param value parameter value
+ * <at> return corresponding WebXml object
+ * <at> throws Exception If an unexpected error occurs
+ */
+ private WebXml getWebXml(String name, String value) throws Exception
+ {
+ String xml = "<web-app>"
+ + " <context-param>"
+ + " <param-name>" + name + "</param-name>"
+ + " <param-value>" + value + "</param-value>"
+ + " </context-param>"
+ + "</web-app>";
+ return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null);
+ }
+
+ /**
+ * Creates JDOM element with given context parameter.
+ *
+ * <at> param name parameter name
+ * <at> param value parameter value
+ * <at> return JDOM object
+ * <at> throws Exception If an unexpected error occurs
+ */
+ private Element getContextParamElement(String name, String value) throws Exception
+ {
+ String xml = "<context-param>"
+ + " <param-name>" + name + "</param-name>"
+ + " <param-value>" + value + "</param-value>"
+ + "</context-param>";
+ return WebXmlIo.parseWebXml(new ByteArrayInputStream(xml.getBytes("UTF-8")), null)
+ .getRootElement();
+ }
+
+ /**
+ * Retrieves parameter value from "context-param" element.
+ *
+ * <at> param param element to inspect
+ * <at> return parameter value, null for null input
+ */
+ private String getContextParamValue(Element param)
+ {
+ if (param == null)
+ {
+ return null;
+ }
+ return param.getChild(WebXmlType.PARAM_VALUE).getText();
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+ * assumes that only initial descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInLeftWithPreserveStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("other", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+ * assumes that only overlay descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInRightWithPreserveStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("other", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#PRESERVE} merge strategy. This test
+ * assumes that both descriptors have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithPreserveStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.PRESERVE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+ * assumes that only initial descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInLeftWithOverwiteStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("other", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+ * assumes that only overlay descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInRightWithOverwiteStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("other", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#OVERWRITE} merge strategy. This test
+ * assumes that both descriptors have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithOverwiteStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.OVERWRITE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+ * assumes that only initial descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInLeftWithIgnoreStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("other", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+ * assumes that only overlay descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInRightWithIgnoreStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("other", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+ merger.merge(mergeWebXml);
+ assertFalse(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ }
+
+ /**
+ * Tests { <at> link DescriptorMergerByTag#IGNORE} merge strategy. This test
+ * assumes that both descriptors have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithIgnoreStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, DescriptorMergerByTag.IGNORE);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. This test assumes that only initial
+ * descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInLeftWithNodeMergeStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("other", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "$left:param-value $right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. This test assumes that only overlay
+ * descriptor have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInRightWithNodeMergeStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("other", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "$left:param-value $right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. This test assumes that both descriptors
+ * have the parameter under test.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategy() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "$left:param-value $right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1 value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. In this test merge descriptor uses left
+ * value only.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategyWithLeftValueOnly() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name", "$left:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. In this test merge descriptor uses right
+ * value only.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategyWithRightValueOnly() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name", "$right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. In this test merge descriptor contains
+ * static text in addition to dynamic values.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategyWithMixedContent() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "111 $left:param-value 222 $right:param-value 333");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("111 value1 222 value2 333",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. In this test one of the values to be
+ * replaced contains dollar sign.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategyWithDollarSignInValue() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "${value2}");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "$left:param-value $right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1 ${value2}",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+ /**
+ * Tests NodeMerge merge strategy. In this test target pattern contains
+ * comma as a delimiter.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeInBothWithNodeMergeStrategyWithCommaInPattern() throws Exception
+ {
+ WebXml srcWebXml = getWebXml("param", "value1");
+ WebXml mergeWebXml = getWebXml("param", "value2");
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ Element format = getContextParamElement("$left:param-name",
+ "$left:param-value,$right:param-value");
+ NodeMergeStrategy strategy = new NodeMergeStrategy(null, format);
+ merger.setMergeStrategy(WebXmlType.CONTEXT_PARAM, strategy);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ assertEquals("value1,value2",
+ getContextParamValue(WebXmlUtils.getContextParam(srcWebXml, "param")));
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergeStrategyMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,116 +1,116 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlContextParamMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Tests whether a single context param is correctly merged into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneContextParamIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
-
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <context-param>"
- + " <param-name>param</param-name>"
- + " <param-value>value</param-value>"
- + " </context-param>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- }
-
- /**
- * Tests whether a single context param is correctly merged into a descriptor that already
- * contains another context param.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneContextParamIntoDocumentWithAnotherContextParam() throws Exception
- {
- String srcXml = "<web-app>"
- + " <context-param>"
- + " <param-name>param1</param-name>"
- + " <param-value>value1</param-value>"
- + " </context-param>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <context-param>"
- + " <param-name>param2</param-name>"
- + " <param-value>value2</param-value>"
- + " </context-param>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param1"));
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param2"));
- }
-
- /**
- * Tests whether a single context param in the merge descriptor is ignored because a context
- * param with the same name already exists in the source descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneContextParamIntoDocumentWithSameContextParam() throws Exception
- {
- String srcXml = "<web-app>"
- + " <context-param>"
- + " <param-name>param</param-name>"
- + " <param-value>value</param-value>"
- + " </context-param>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.merge(mergeWebXml);
- assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlContextParamMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Tests whether a single context param is correctly merged into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneContextParamIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <context-param>"
+ + " <param-name>param</param-name>"
+ + " <param-value>value</param-value>"
+ + " </context-param>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ }
+
+ /**
+ * Tests whether a single context param is correctly merged into a descriptor that already
+ * contains another context param.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneContextParamIntoDocumentWithAnotherContextParam() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <context-param>"
+ + " <param-name>param1</param-name>"
+ + " <param-value>value1</param-value>"
+ + " </context-param>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <context-param>"
+ + " <param-name>param2</param-name>"
+ + " <param-value>value2</param-value>"
+ + " </context-param>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param1"));
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param2"));
+ }
+
+ /**
+ * Tests whether a single context param in the merge descriptor is ignored because a context
+ * param with the same name already exists in the source descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneContextParamIntoDocumentWithSameContextParam() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <context-param>"
+ + " <param-name>param</param-name>"
+ + " <param-value>value</param-value>"
+ + " </context-param>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.merge(mergeWebXml);
+ assertTrue(WebXmlUtils.hasContextParam(srcWebXml, "param"));
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlContextParamMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,68 +1,68 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlType;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlEjbRefMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Tests whether a single EJB reference is correctly inserted into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneEjbRefIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <ejb-ref>"
- + " <ejb-ref-name>ejbref1</ejb-ref-name>"
- + " <ejb-ref-type>ejbref1.type</ejb-ref-type>"
- + " <home>ejbref1.homeInterface</home>"
- + " <remote>ejbref1.remoteInterface</remote>"
- + " </ejb-ref>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.merge(mergeWebXml);
- List<Element> ejbRefs = srcWebXml.getElements(WebXmlType.EJB_REF);
- assertEquals(1, ejbRefs.size());
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlType;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlEjbRefMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Tests whether a single EJB reference is correctly inserted into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneEjbRefIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <ejb-ref>"
+ + " <ejb-ref-name>ejbref1</ejb-ref-name>"
+ + " <ejb-ref-type>ejbref1.type</ejb-ref-type>"
+ + " <home>ejbref1.homeInterface</home>"
+ + " <remote>ejbref1.remoteInterface</remote>"
+ + " </ejb-ref>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.merge(mergeWebXml);
+ List<Element> ejbRefs = srcWebXml.getElements(WebXmlType.EJB_REF);
+ assertEquals(1, ejbRefs.size());
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlEjbRefMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,302 +1,341 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlFilterMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Tests whether a single filter is correctly merged into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + "</web-app>";
-
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
-
- // WebXml mergeWebXml = new WebXml(mergeDoc);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- }
-
- /**
- * Tests whether a single filter is correctly merged into a descriptor that already contains
- * another filter.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterIntoDocumentWithAnotherFilter() throws Exception
- {
- String srcXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f2</filter-name>"
- + " <filter-class>fclass2</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f2"));
- }
-
- /**
- * Tests whether a single filter in the merge descriptor is ignored because a filter with the
- * same name already exists in the source descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterIntoDocumentWithSameFilter() throws Exception
- {
- String srcXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- WebXml mergeWebXml = WebXmlIo
- .parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- }
-
- /**
- * Tests whether a single filter is correctly merged into a descriptor that already contains
- * multiple other filter definitions.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterIntoDocumentWithMultipleFilters() throws Exception
- {
- String srcXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + " <filter>"
- + " <filter-name>f2</filter-name>"
- + " <filter-class>fclass2</filter-class>"
- + " </filter>"
- + " <filter>"
- + " <filter-name>f3</filter-name>"
- + " <filter-class>fclass3</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f4</filter-name>"
- + " <filter-class>fclass4</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
- assertEquals(4, filterNames.size());
- assertEquals("f1", filterNames.get(0));
- assertEquals("f2", filterNames.get(1));
- assertEquals("f3", filterNames.get(2));
- assertEquals("f4", filterNames.get(3));
- }
-
- /**
- * Tests whether multiple filters are correctly merged into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeMultipleFiltersIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + " <filter>"
- + " <filter-name>f2</filter-name>"
- + " <filter-class>fclass2</filter-class>"
- + " </filter>"
- + " <filter>"
- + " <filter-name>f3</filter-name>"
- + " <filter-class>fclass3</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
- assertEquals(3, filterNames.size());
- assertEquals("f1", filterNames.get(0));
- assertEquals("f2", filterNames.get(1));
- assertEquals("f3", filterNames.get(2));
- }
-
- /**
- * Tests whether a filter with one mapping is correctly merged into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterWithOneMappingIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + " <filter-mapping>"
- + " <filter-name>f1</filter-name>"
- + " <url-pattern>/f1mapping1</url-pattern>"
- + " </filter-mapping>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
- assertEquals(1, filterMappings.size());
- assertEquals("/f1mapping1", filterMappings.get(0));
- }
-
- /**
- * Tests wether a single filter with multiple mappings is correctly merged into an empty
- * descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterWithMultipleMappingsIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + " <filter-mapping>"
- + " <filter-name>f1</filter-name>"
- + " <url-pattern>/f1mapping1</url-pattern>"
- + " </filter-mapping>"
- + " <filter-mapping>"
- + " <filter-name>f1</filter-name>"
- + " <url-pattern>/f1mapping2</url-pattern>"
- + " </filter-mapping>"
- + " <filter-mapping>"
- + " <filter-name>f1</filter-name>"
- + " <url-pattern>/f1mapping3</url-pattern>"
- + " </filter-mapping>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
- assertEquals(3, filterMappings.size());
- assertEquals("/f1mapping1", filterMappings.get(0));
- assertEquals("/f1mapping2", filterMappings.get(1));
- assertEquals("/f1mapping3", filterMappings.get(2));
- }
-
- /**
- * Tests whether a filter initialization parameter is merged into the descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneFilterIntoDocumentWithSameFilterAndParam() throws Exception
- {
- String srcXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " </filter>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <filter>"
- + " <filter-name>f1</filter-name>"
- + " <filter-class>fclass1</filter-class>"
- + " <init-param>"
- + " <param-name>f1param1</param-name>"
- + " <param-value>f1param1value</param-value>"
- + " </init-param>"
- + " </filter>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeFilters(mergeWebXml);
- assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
- List<String> initParams = WebXmlUtils.getFilterInitParamNames(srcWebXml, "f1");
- assertEquals(1, initParams.size());
- assertEquals("f1param1", initParams.get(0));
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlFilterMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Tests whether a single filter is correctly merged into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+
+ // WebXml mergeWebXml = new WebXml(mergeDoc);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ }
+
+ /**
+ * Tests whether a single filter is correctly merged into a descriptor that already contains
+ * another filter.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterIntoDocumentWithAnotherFilter() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f2</filter-name>"
+ + " <filter-class>fclass2</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f2"));
+ }
+
+ /**
+ * Tests whether a single filter in the merge descriptor is ignored because a filter with the
+ * same name already exists in the source descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterIntoDocumentWithSameFilter() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ WebXml mergeWebXml = WebXmlIo
+ .parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ }
+
+ /**
+ * Tests whether a single filter is correctly merged into a descriptor that already contains
+ * multiple other filter definitions.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterIntoDocumentWithMultipleFilters() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter>"
+ + " <filter-name>f2</filter-name>"
+ + " <filter-class>fclass2</filter-class>"
+ + " </filter>"
+ + " <filter>"
+ + " <filter-name>f3</filter-name>"
+ + " <filter-class>fclass3</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f4</filter-name>"
+ + " <filter-class>fclass4</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
+ assertEquals(4, filterNames.size());
+ assertEquals("f1", filterNames.get(0));
+ assertEquals("f2", filterNames.get(1));
+ assertEquals("f3", filterNames.get(2));
+ assertEquals("f4", filterNames.get(3));
+ }
+
+ /**
+ * Tests whether multiple filters are correctly merged into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeMultipleFiltersIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter>"
+ + " <filter-name>f2</filter-name>"
+ + " <filter-class>fclass2</filter-class>"
+ + " </filter>"
+ + " <filter>"
+ + " <filter-name>f3</filter-name>"
+ + " <filter-class>fclass3</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ List<String> filterNames = WebXmlUtils.getFilterNames(srcWebXml);
+ assertEquals(3, filterNames.size());
+ assertEquals("f1", filterNames.get(0));
+ assertEquals("f2", filterNames.get(1));
+ assertEquals("f3", filterNames.get(2));
+ }
+
+ /**
+ * Tests whether a filter with one mapping is correctly merged into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterWithOneMappingIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping1</url-pattern>"
+ + " </filter-mapping>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+ assertEquals(1, filterMappings.size());
+ assertEquals("/f1mapping1", filterMappings.get(0));
+ }
+
+ /**
+ * Tests whether a single filter with multiple mappings is correctly merged into an empty
+ * descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterWithMultipleMappingsIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping1</url-pattern>"
+ + " </filter-mapping>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping2</url-pattern>"
+ + " </filter-mapping>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping3</url-pattern>"
+ + " </filter-mapping>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+ assertEquals(3, filterMappings.size());
+ assertEquals("/f1mapping1", filterMappings.get(0));
+ assertEquals("/f1mapping2", filterMappings.get(1));
+ assertEquals("/f1mapping3", filterMappings.get(2));
+ }
+
+ /**
+ * Tests whether the same filter in two different files is mapped correctly (i.e., once).
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeSameFilterInTwoDocuments() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping1</url-pattern>"
+ + " </filter-mapping>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + " <filter-mapping>"
+ + " <filter-name>f1</filter-name>"
+ + " <url-pattern>/f1mapping1</url-pattern>"
+ + " </filter-mapping>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ List<String> filterMappings = WebXmlUtils.getFilterMappings(srcWebXml, "f1");
+ assertEquals(1, filterMappings.size());
+ assertEquals("/f1mapping1", filterMappings.get(0));
+ }
+
+ /**
+ * Tests whether a filter initialization parameter is merged into the descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneFilterIntoDocumentWithSameFilterAndParam() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <filter>"
+ + " <filter-name>f1</filter-name>"
+ + " <filter-class>fclass1</filter-class>"
+ + " <init-param>"
+ + " <param-name>f1param1</param-name>"
+ + " <param-value>f1param1value</param-value>"
+ + " </init-param>"
+ + " </filter>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeFilters(mergeWebXml);
+ assertTrue(WebXmlUtils.hasFilter(srcWebXml, "f1"));
+ List<String> initParams = WebXmlUtils.getFilterInitParamNames(srcWebXml, "f1");
+ assertEquals(1, initParams.size());
+ assertEquals("f1param1", initParams.get(0));
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlFilterMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,110 +1,110 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.elements.Listener;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlListenerMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Test for CARGO-409 that merging listeners does not mess with the order.
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeListeners() throws Exception
- {
- String file1 = "<web-app>\r\n"
- + " <context-param>\r\n"
- + " <param-name>file1-c1</param-name>\r\n"
- + " <param-value>file1-v1</param-value>\r\n"
- + " </context-param>\r\n"
- + "\r\n"
- + "\r\n"
- + " <listener>\r\n"
- + " <listener-class>file1-lc1</listener-class>\r\n"
- + " </listener>\r\n"
- + "\r\n"
- + " <listener>\r\n"
- + " <listener-class>file1-lc2</listener-class>\r\n"
- + " </listener>\r\n"
- + "\r\n"
- + "\r\n"
- + " <servlet>\r\n"
- + " <servlet-name>file1-S1</servlet-name>\r\n"
- + " <servlet-class>file1-C2</servlet-class>\r\n"
- + " <load-on-startup>file1-los</load-on-startup>\r\n"
- + " </servlet>\r\n"
- + "</web-app>\r\n";
-
- String file2 = "<web-app>\r\n"
- + " <context-param>\r\n"
- + " <param-name>file2-c1</param-name>\r\n"
- + " <param-value>file2-v1</param-value>\r\n"
- + " </context-param>\r\n"
- + "\r\n"
- + "\r\n"
- + " <listener>\r\n"
- + " <listener-class>file2-lc1</listener-class>\r\n"
- + " </listener>\r\n"
- + "\r\n"
- + " <listener>\r\n"
- + " <listener-class>file2-lc2</listener-class>\r\n"
- + " </listener>\r\n"
- + "\r\n"
- + "\r\n"
- + " <servlet>\r\n"
- + " <servlet-name>file2-S1</servlet-name>\r\n"
- + " <servlet-class>file2-C2</servlet-class>\r\n"
- + " <load-on-startup>file2-los</load-on-startup>\r\n"
- + " </servlet>\r\n"
- + "</web-app>\r\n"
- + "";
-
- WebXml file1WebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(file1.getBytes("UTF-8")), null);
- WebXml file2WebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(file2.getBytes("UTF-8")), null);
-
- WebXmlMerger merger = new WebXmlMerger(file1WebXml);
- merger.merge(file2WebXml);
-
- List<Element> ejbRefs = file1WebXml.getElements("listener");
- assertEquals(4, ejbRefs.size());
- assertEquals(((Listener) ejbRefs.get(0)).getListenerClass(), "file1-lc1");
- assertEquals(((Listener) ejbRefs.get(1)).getListenerClass(), "file1-lc2");
- assertEquals(((Listener) ejbRefs.get(2)).getListenerClass(), "file2-lc1");
- assertEquals(((Listener) ejbRefs.get(3)).getListenerClass(), "file2-lc2");
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.elements.Listener;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlListenerMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Test for CARGO-409 that merging listeners does not mess with the order.
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeListeners() throws Exception
+ {
+ String file1 = "<web-app>\r\n"
+ + " <context-param>\r\n"
+ + " <param-name>file1-c1</param-name>\r\n"
+ + " <param-value>file1-v1</param-value>\r\n"
+ + " </context-param>\r\n"
+ + "\r\n"
+ + "\r\n"
+ + " <listener>\r\n"
+ + " <listener-class>file1-lc1</listener-class>\r\n"
+ + " </listener>\r\n"
+ + "\r\n"
+ + " <listener>\r\n"
+ + " <listener-class>file1-lc2</listener-class>\r\n"
+ + " </listener>\r\n"
+ + "\r\n"
+ + "\r\n"
+ + " <servlet>\r\n"
+ + " <servlet-name>file1-S1</servlet-name>\r\n"
+ + " <servlet-class>file1-C2</servlet-class>\r\n"
+ + " <load-on-startup>file1-los</load-on-startup>\r\n"
+ + " </servlet>\r\n"
+ + "</web-app>\r\n";
+
+ String file2 = "<web-app>\r\n"
+ + " <context-param>\r\n"
+ + " <param-name>file2-c1</param-name>\r\n"
+ + " <param-value>file2-v1</param-value>\r\n"
+ + " </context-param>\r\n"
+ + "\r\n"
+ + "\r\n"
+ + " <listener>\r\n"
+ + " <listener-class>file2-lc1</listener-class>\r\n"
+ + " </listener>\r\n"
+ + "\r\n"
+ + " <listener>\r\n"
+ + " <listener-class>file2-lc2</listener-class>\r\n"
+ + " </listener>\r\n"
+ + "\r\n"
+ + "\r\n"
+ + " <servlet>\r\n"
+ + " <servlet-name>file2-S1</servlet-name>\r\n"
+ + " <servlet-class>file2-C2</servlet-class>\r\n"
+ + " <load-on-startup>file2-los</load-on-startup>\r\n"
+ + " </servlet>\r\n"
+ + "</web-app>\r\n"
+ + "";
+
+ WebXml file1WebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(file1.getBytes("UTF-8")), null);
+ WebXml file2WebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(file2.getBytes("UTF-8")), null);
+
+ WebXmlMerger merger = new WebXmlMerger(file1WebXml);
+ merger.merge(file2WebXml);
+
+ List<Element> ejbRefs = file1WebXml.getElements("listener");
+ assertEquals(4, ejbRefs.size());
+ assertEquals(((Listener) ejbRefs.get(0)).getListenerClass(), "file1-lc1");
+ assertEquals(((Listener) ejbRefs.get(1)).getListenerClass(), "file1-lc2");
+ assertEquals(((Listener) ejbRefs.get(2)).getListenerClass(), "file2-lc1");
+ assertEquals(((Listener) ejbRefs.get(3)).getListenerClass(), "file2-lc2");
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlListenerMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,94 +1,94 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlSecurityRoleMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Tests whether a single security role is correctly inserted into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeSecurityRoleIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <security-role>"
- + " <role-name>role1</role-name>"
- + " </security-role>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeSecurityRoles(mergeWebXml);
- List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
- assertEquals(1, securityRoleNames.size());
- assertEquals("role1", securityRoleNames.get(0));
- }
-
- /**
- * Tests whether a single security role is ignored when the source descriptor already contains a
- * role with the same name.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeSecurityRoleIntoDocumentWithSameRole() throws Exception
- {
- String srcXml = "<web-app>"
- + " <security-role>"
- + " <description>A role</description>"
- + " <role-name>role1</role-name>"
- + " </security-role>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <security-role>"
- + " <role-name>role1</role-name>"
- + " </security-role>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeSecurityRoles(mergeWebXml);
- List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
- assertEquals(1, securityRoleNames.size());
- assertEquals("role1", securityRoleNames.get(0));
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlSecurityRoleMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Tests whether a single security role is correctly inserted into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeSecurityRoleIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <security-role>"
+ + " <role-name>role1</role-name>"
+ + " </security-role>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeSecurityRoles(mergeWebXml);
+ List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
+ assertEquals(1, securityRoleNames.size());
+ assertEquals("role1", securityRoleNames.get(0));
+ }
+
+ /**
+ * Tests whether a single security role is ignored when the source descriptor already contains a
+ * role with the same name.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeSecurityRoleIntoDocumentWithSameRole() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <security-role>"
+ + " <description>A role</description>"
+ + " <role-name>role1</role-name>"
+ + " </security-role>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <security-role>"
+ + " <role-name>role1</role-name>"
+ + " </security-role>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeSecurityRoles(mergeWebXml);
+ List<String> securityRoleNames = WebXmlUtils.getSecurityRoleNames(srcWebXml);
+ assertEquals(1, securityRoleNames.size());
+ assertEquals("role1", securityRoleNames.get(0));
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlSecurityRoleMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
Modified: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
===================================================================
--- core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java 2012-02-01 21:02:47 UTC (rev 3229)
+++ core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java 2012-02-02 21:51:01 UTC (rev 3230)
<at> <at> -1,347 +1,347 <at> <at>
-/*
- * ========================================================================
- *
- * Copyright 2003 The Apache Software Foundation. Code from this file
- * was originally imported from the Jakarta Cactus project.
- *
- * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
- *
- * Licensed 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.codehaus.cargo.module.webapp.merge;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
-import org.codehaus.cargo.module.webapp.WebXml;
-import org.codehaus.cargo.module.webapp.WebXmlIo;
-import org.codehaus.cargo.module.webapp.WebXmlUtils;
-import org.jdom.Element;
-
-/**
- * Unit tests for { <at> link WebXmlMerger}.
- *
- * <at> version $Id: WebXmlMergerTest.java 2760 2011-03-19 17:33:47Z alitokmen $
- */
-public final class WebXmlServletMergerTest extends AbstractDocumentBuilderTest
-{
- /**
- * Tests whether a single servlet is correctly merged into an empty descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- }
-
- /**
- * Tests whether a single servlet is correctly merged into a descriptor that already contains
- * the definition of an other servlet.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletIntoDocumentWithAnotherServlet() throws Exception
- {
- String srcXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s2</servlet-name>"
- + " <servlet-class>sclass2</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s2"));
- }
-
- /**
- * Tests whether a single servlet is correctly merged into a descriptor that already contains
- * the definition of a servlet with the same name.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletIntoDocumentWithSameServlet() throws Exception
- {
- String srcXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- }
-
- /**
- * Tets whether a servlet with an initialization parameter is correctly merged into a descriptor
- * that contains the definition of a servlet with the same name.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletIntoDocumentWithSameServletAndParam() throws Exception
- {
- String srcXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " <init-param>"
- + " <param-name>s1param1</param-name>"
- + " <param-value>s1param1value</param-value>"
- + " </init-param>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- List<String> initParams = WebXmlUtils.getServletInitParamNames(srcWebXml, "s1");
- assertEquals(1, initParams.size());
- assertEquals("s1param1", initParams.get(0));
- assertEquals("s1param1value",
- WebXmlUtils.getServletInitParam(srcWebXml, "s1", "s1param1"));
- }
-
- /**
- * Tests whether a single servlet is correctly merged into a descriptor with multiple servlets.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletIntoDocumentWithMultipleServlets() throws Exception
- {
- String srcXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + " <servlet>"
- + " <servlet-name>s2</servlet-name>"
- + " <servlet-class>sclass2</servlet-class>"
- + " </servlet>"
- + " <servlet>"
- + " <servlet-name>s3</servlet-name>"
- + " <servlet-class>sclass3</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s4</servlet-name>"
- + " <servlet-class>sclass4</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
- assertEquals(4, servletNames.size());
- assertEquals("s1", servletNames.get(0));
- assertEquals("s2", servletNames.get(1));
- assertEquals("s3", servletNames.get(2));
- assertEquals("s4", servletNames.get(3));
- }
-
- /**
- * Verifies that servlet init parameters are added after the load-on-startup element of an
- * already existing servlet definition.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergingServletWithInitParamsThatIsAlreadyDefined() throws Exception
- {
- String srcXml = "<web-app>".trim()
- + " <servlet>".trim()
- + " <servlet-name>s1</servlet-name>".trim()
- + " <servlet-class>sclass1</servlet-class>".trim()
- + " <load-on-startup>1</load-on-startup>".trim()
- + " </servlet>".trim()
- + "</web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>".trim()
- + " <servlet-name>s1</servlet-name>".trim()
- + " <servlet-class>sclass1</servlet-class>".trim()
- + " <init-param>".trim()
- + " <param-name>s1param1</param-name>".trim()
- + " <param-value>s1param1value</param-value>".trim()
- + " </init-param>".trim()
- + " </servlet>".trim()
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- Element servletElement = WebXmlUtils.getServlet(srcWebXml, "s1");
- assertEquals("load-on-startup",
- ((Element) servletElement.getChildren().get(servletElement.getChildren().size() - 1))
- .getName());
- }
-
- /**
- * Tests whether multiple servlet in the merge file are correctly inserted into an empty
- * descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeMultipleServletsIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + " <servlet>"
- + " <servlet-name>s2</servlet-name>"
- + " <servlet-class>sclass2</servlet-class>"
- + " </servlet>"
- + " <servlet>"
- + " <servlet-name>s3</servlet-name>"
- + " <servlet-class>sclass3</servlet-class>"
- + " </servlet>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
- assertEquals(3, servletNames.size());
- assertEquals("s1", servletNames.get(0));
- assertEquals("s2", servletNames.get(1));
- assertEquals("s3", servletNames.get(2));
- }
-
- /**
- * Tests whether a single servlet with one mapping is correctly inserted into an empty
- * descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletWithOneMappingIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + " <servlet-mapping>"
- + " <servlet-name>s1</servlet-name>"
- + " <url-pattern>/s1mapping1</url-pattern>"
- + " </servlet-mapping>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
- assertEquals(1, servletMappings.size());
- assertEquals("/s1mapping1", servletMappings.get(0));
- }
-
- /**
- * Tests whether a single servlet with multiple mappings is correctly inserted into an empty
- * descriptor.
- *
- * <at> throws Exception If an unexpected error occurs
- */
- public void testMergeOneServletWithMultipleMappingsIntoEmptyDocument() throws Exception
- {
- String srcXml = "<web-app></web-app>";
- WebXml srcWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
- String mergeXml = "<web-app>"
- + " <servlet>"
- + " <servlet-name>s1</servlet-name>"
- + " <servlet-class>sclass1</servlet-class>"
- + " </servlet>"
- + " <servlet-mapping>"
- + " <servlet-name>s1</servlet-name>"
- + " <url-pattern>/s1mapping1</url-pattern>"
- + " </servlet-mapping>"
- + " <servlet-mapping>"
- + " <servlet-name>s1</servlet-name>"
- + " <url-pattern>/s1mapping2</url-pattern>"
- + " </servlet-mapping>"
- + " <servlet-mapping>"
- + " <servlet-name>s1</servlet-name>"
- + " <url-pattern>/s1mapping3</url-pattern>"
- + " </servlet-mapping>"
- + "</web-app>";
- WebXml mergeWebXml =
- WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
- WebXmlMerger merger = new WebXmlMerger(srcWebXml);
- merger.mergeServlets(mergeWebXml);
- assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
- List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
- assertEquals(3, servletMappings.size());
- assertEquals("/s1mapping1", servletMappings.get(0));
- assertEquals("/s1mapping2", servletMappings.get(1));
- assertEquals("/s1mapping3", servletMappings.get(2));
- }
-
-}
+/*
+ * ========================================================================
+ *
+ * Copyright 2003 The Apache Software Foundation. Code from this file
+ * was originally imported from the Jakarta Cactus project.
+ *
+ * Codehaus CARGO, copyright 2004-2011 Vincent Massol.
+ *
+ * Licensed 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.codehaus.cargo.module.webapp.merge;
+
+import java.io.ByteArrayInputStream;
+import java.util.List;
+
+import org.codehaus.cargo.module.AbstractDocumentBuilderTest;
+import org.codehaus.cargo.module.webapp.WebXml;
+import org.codehaus.cargo.module.webapp.WebXmlIo;
+import org.codehaus.cargo.module.webapp.WebXmlUtils;
+import org.jdom.Element;
+
+/**
+ * Unit tests for { <at> link WebXmlMerger}.
+ *
+ * <at> version $Id$
+ */
+public final class WebXmlServletMergerTest extends AbstractDocumentBuilderTest
+{
+ /**
+ * Tests whether a single servlet is correctly merged into an empty descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ }
+
+ /**
+ * Tests whether a single servlet is correctly merged into a descriptor that already contains
+ * the definition of an other servlet.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletIntoDocumentWithAnotherServlet() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s2</servlet-name>"
+ + " <servlet-class>sclass2</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s2"));
+ }
+
+ /**
+ * Tests whether a single servlet is correctly merged into a descriptor that already contains
+ * the definition of a servlet with the same name.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletIntoDocumentWithSameServlet() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ }
+
+ /**
+ * Tets whether a servlet with an initialization parameter is correctly merged into a descriptor
+ * that contains the definition of a servlet with the same name.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletIntoDocumentWithSameServletAndParam() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " <init-param>"
+ + " <param-name>s1param1</param-name>"
+ + " <param-value>s1param1value</param-value>"
+ + " </init-param>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ List<String> initParams = WebXmlUtils.getServletInitParamNames(srcWebXml, "s1");
+ assertEquals(1, initParams.size());
+ assertEquals("s1param1", initParams.get(0));
+ assertEquals("s1param1value",
+ WebXmlUtils.getServletInitParam(srcWebXml, "s1", "s1param1"));
+ }
+
+ /**
+ * Tests whether a single servlet is correctly merged into a descriptor with multiple servlets.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletIntoDocumentWithMultipleServlets() throws Exception
+ {
+ String srcXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + " <servlet>"
+ + " <servlet-name>s2</servlet-name>"
+ + " <servlet-class>sclass2</servlet-class>"
+ + " </servlet>"
+ + " <servlet>"
+ + " <servlet-name>s3</servlet-name>"
+ + " <servlet-class>sclass3</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s4</servlet-name>"
+ + " <servlet-class>sclass4</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
+ assertEquals(4, servletNames.size());
+ assertEquals("s1", servletNames.get(0));
+ assertEquals("s2", servletNames.get(1));
+ assertEquals("s3", servletNames.get(2));
+ assertEquals("s4", servletNames.get(3));
+ }
+
+ /**
+ * Verifies that servlet init parameters are added after the load-on-startup element of an
+ * already existing servlet definition.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergingServletWithInitParamsThatIsAlreadyDefined() throws Exception
+ {
+ String srcXml = "<web-app>".trim()
+ + " <servlet>".trim()
+ + " <servlet-name>s1</servlet-name>".trim()
+ + " <servlet-class>sclass1</servlet-class>".trim()
+ + " <load-on-startup>1</load-on-startup>".trim()
+ + " </servlet>".trim()
+ + "</web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>".trim()
+ + " <servlet-name>s1</servlet-name>".trim()
+ + " <servlet-class>sclass1</servlet-class>".trim()
+ + " <init-param>".trim()
+ + " <param-name>s1param1</param-name>".trim()
+ + " <param-value>s1param1value</param-value>".trim()
+ + " </init-param>".trim()
+ + " </servlet>".trim()
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ Element servletElement = WebXmlUtils.getServlet(srcWebXml, "s1");
+ assertEquals("load-on-startup",
+ ((Element) servletElement.getChildren().get(servletElement.getChildren().size() - 1))
+ .getName());
+ }
+
+ /**
+ * Tests whether multiple servlet in the merge file are correctly inserted into an empty
+ * descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeMultipleServletsIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + " <servlet>"
+ + " <servlet-name>s2</servlet-name>"
+ + " <servlet-class>sclass2</servlet-class>"
+ + " </servlet>"
+ + " <servlet>"
+ + " <servlet-name>s3</servlet-name>"
+ + " <servlet-class>sclass3</servlet-class>"
+ + " </servlet>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ List<String> servletNames = WebXmlUtils.getServletNames(srcWebXml);
+ assertEquals(3, servletNames.size());
+ assertEquals("s1", servletNames.get(0));
+ assertEquals("s2", servletNames.get(1));
+ assertEquals("s3", servletNames.get(2));
+ }
+
+ /**
+ * Tests whether a single servlet with one mapping is correctly inserted into an empty
+ * descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletWithOneMappingIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + " <servlet-mapping>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <url-pattern>/s1mapping1</url-pattern>"
+ + " </servlet-mapping>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
+ assertEquals(1, servletMappings.size());
+ assertEquals("/s1mapping1", servletMappings.get(0));
+ }
+
+ /**
+ * Tests whether a single servlet with multiple mappings is correctly inserted into an empty
+ * descriptor.
+ *
+ * <at> throws Exception If an unexpected error occurs
+ */
+ public void testMergeOneServletWithMultipleMappingsIntoEmptyDocument() throws Exception
+ {
+ String srcXml = "<web-app></web-app>";
+ WebXml srcWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(srcXml.getBytes("UTF-8")), null);
+ String mergeXml = "<web-app>"
+ + " <servlet>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <servlet-class>sclass1</servlet-class>"
+ + " </servlet>"
+ + " <servlet-mapping>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <url-pattern>/s1mapping1</url-pattern>"
+ + " </servlet-mapping>"
+ + " <servlet-mapping>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <url-pattern>/s1mapping2</url-pattern>"
+ + " </servlet-mapping>"
+ + " <servlet-mapping>"
+ + " <servlet-name>s1</servlet-name>"
+ + " <url-pattern>/s1mapping3</url-pattern>"
+ + " </servlet-mapping>"
+ + "</web-app>";
+ WebXml mergeWebXml =
+ WebXmlIo.parseWebXml(new ByteArrayInputStream(mergeXml.getBytes("UTF-8")), null);
+ WebXmlMerger merger = new WebXmlMerger(srcWebXml);
+ merger.mergeServlets(mergeWebXml);
+ assertTrue(WebXmlUtils.hasServlet(srcWebXml, "s1"));
+ List<String> servletMappings = WebXmlUtils.getServletMappings(srcWebXml, "s1");
+ assertEquals(3, servletMappings.size());
+ assertEquals("/s1mapping1", servletMappings.get(0));
+ assertEquals("/s1mapping2", servletMappings.get(1));
+ assertEquals("/s1mapping3", servletMappings.get(2));
+ }
+
+}
Property changes on: core/trunk/api/module/src/test/java/org/codehaus/cargo/module/webapp/merge/WebXmlServletMergerTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision"
Added: svn:eol-style
+ native
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email