Author: veithen Date: Sun Apr 25 14:42:56 2010 New Revision: 937807 URL: http://svn.apache.org/viewvc?rev=937807&view=rev Log: Preparing WSCOMMONS-517: Moved some declareDefaultNamespace related test cases to OMElementTestBase to extend their scope to DOOM.
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/DefaultNSHandlingTest.java webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/NamespaceTest.java Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java?rev=937807&r1=937806&r2=937807&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java Sun Apr 25 14:42:56 2010 @@ -19,12 +19,17 @@ package org.apache.axiom.om; +import java.io.ByteArrayInputStream; import java.util.Iterator; import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import org.apache.axiom.om.impl.builder.StAXOMBuilder; import org.apache.axiom.om.util.AXIOMUtil; +import org.apache.axiom.om.util.StAXUtils; import org.apache.axiom.soap.SOAP11Constants; public abstract class OMElementTestBase extends AbstractTestCase { @@ -372,4 +377,140 @@ public abstract class OMElementTestBase assertEquals(ns1, it.next()); assertFalse(it.hasNext()); } + + private int getNumberOfOccurrences(String xml, String pattern) { + int index = -1; + int count = 0; + while ((index = xml.indexOf(pattern, index + 1)) != -1) { + count++; + } + + return count; + } + + public void testDeclareDefaultNamespace1() throws XMLStreamException { + + /** + * <RootElement xmlns="http://one.org"> + * <ns2:ChildElementOne xmlns:ns2="http://ws.apache.org/axis2" xmlns="http://two.org"> + * <ChildElementTwo xmlns="http://one.org" /> + * </ns2:ChildElementOne> + * </RootElement> + */ + + OMFactory omFac = omMetaFactory.getOMFactory(); + + OMElement documentElement = omFac.createOMElement("RootElement", null); + documentElement.declareDefaultNamespace("http://one.org"); + + OMNamespace ns = omFac.createOMNamespace("http://ws.apache.org/axis2", "ns2"); + OMElement childOne = omFac.createOMElement("ChildElementOne", ns, documentElement); + childOne.declareDefaultNamespace("http://two.org"); + + OMElement childTwo = omFac.createOMElement("ChildElementTwo", null, childOne); + childTwo.declareDefaultNamespace("http://one.org"); + + + assertEquals(2, getNumberOfOccurrences(documentElement.toStringWithConsume(), + "xmlns=\"http://one.org\"")); + } + + public void testDeclareDefaultNamespace2() throws XMLStreamException { + + /** + * <RootElement xmlns:ns1="http://one.org" xmlns:ns2="http://one.org"> + * <ns2:ChildElementOne xmlns="http://one.org"> + * <ns2:ChildElementTwo /> + * </ns2:ChildElementOne> + * </RootElement> + */ + + OMFactory omFac = omMetaFactory.getOMFactory(); + + OMElement documentElement = omFac.createOMElement("RootElement", null); + OMNamespace ns1 = documentElement.declareNamespace("http://one.org", "ns1"); + OMNamespace ns2 = documentElement.declareNamespace("http://one.org", "ns2"); + + OMElement childOne = omFac.createOMElement("ChildElementOne", ns2, documentElement); + childOne.declareDefaultNamespace("http://one.org"); + + OMElement childTwo = omFac.createOMElement("ChildElementTwo", ns1, childOne); + + assertEquals(1, getNumberOfOccurrences(documentElement.toStringWithConsume(), + "xmlns:ns2=\"http://one.org\"")); + } + + public void testMultipleDefaultNS() { + OMFactory omFactory = omMetaFactory.getOMFactory(); + OMNamespace defaultNS1 = omFactory.createOMNamespace("http://defaultNS1.org", null); + OMNamespace defaultNS2 = omFactory.createOMNamespace("http://defaultNS2.org", null); + + OMElement omElementOne = omFactory.createOMElement("DocumentElement", null); + omElementOne.declareDefaultNamespace("http://defaultNS1.org"); + OMElement omElementOneChild = omFactory.createOMElement("ChildOne", null, omElementOne); + + + OMElement omElementTwo = omFactory.createOMElement("Foo", defaultNS2, omElementOne); + omElementTwo.declareDefaultNamespace("http://defaultNS2.org"); + OMElement omElementTwoChild = omFactory.createOMElement("ChildOne", null, omElementTwo); + + OMElement omElementThree = omFactory.createOMElement("Bar", defaultNS1, omElementTwo); + omElementThree.declareDefaultNamespace("http://defaultNS1.org"); + + OMNamespace omElementOneChildNS = omElementOneChild.getNamespace(); + OMNamespace omElementTwoChildNS = omElementTwoChild.getNamespace(); + // TODO: LLOM's and DOOM's behaviors are slightly different here; need to check if both are allowed + assertTrue(omElementOneChildNS == null || "".equals(omElementOneChildNS.getNamespaceURI())); + assertTrue(omElementTwoChildNS == null || "".equals(omElementTwoChildNS.getNamespaceURI())); + } + + public void testChildReDeclaringParentsDefaultNSWithPrefix() throws Exception { + OMFactory fac = omMetaFactory.getOMFactory(); + OMElement elem = fac.createOMElement("RequestSecurityToken", null); + elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust"); + fac.createOMElement(new QName("TokenType"), elem).setText("test"); + fac.createOMElement(new QName("RequestType"), elem).setText("test1"); + + fac.createOMElement( + new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"), + elem); + String xml = elem.toString(); + + XMLStreamReader reader = StAXUtils.createXMLStreamReader( + new ByteArrayInputStream(xml.getBytes())); + + StAXOMBuilder builder = new StAXOMBuilder(omMetaFactory.getOMFactory(), reader); + builder.getDocumentElement().build(); + + // The StAX implementation may or may not have a trailing blank in the tag + String assertText1 = + "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\" />"; + String assertText2 = + "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"/>"; + String assertText3 = + "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"></wst:Entropy>"; + + assertTrue((xml.indexOf(assertText1) != -1) || + (xml.indexOf(assertText2) != -1) || + (xml.indexOf(assertText3) != -1)); + } + + public void testChildReDeclaringGrandParentsDefaultNSWithPrefix() { + OMFactory fac = omMetaFactory.getOMFactory(); + OMElement elem = fac.createOMElement("RequestSecurityToken", null); + elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust"); + fac.createOMElement(new QName("TokenType"), elem).setText("test"); + fac.createOMElement(new QName("RequestType"), elem).setText("test1"); + + OMElement entElem = fac.createOMElement( + new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"), + elem); + OMElement binSecElem = fac.createOMElement( + new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Binarysecret", "wst"), + entElem); + binSecElem.setText("secret value"); + String xml = elem.toString(); + assertTrue("Binarysecret element should have \'wst\' ns prefix", + xml.indexOf("<wst:Binarysecret") != -1); + } } Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/DefaultNSHandlingTest.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/DefaultNSHandlingTest.java?rev=937807&r1=937806&r2=937807&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/DefaultNSHandlingTest.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/DefaultNSHandlingTest.java Sun Apr 25 14:42:56 2010 @@ -27,9 +27,7 @@ import org.jaxen.JaxenException; import org.jaxen.SimpleNamespaceContext; import org.jaxen.XPath; -import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import java.io.ByteArrayInputStream; import java.util.Iterator; @@ -69,77 +67,6 @@ public class DefaultNSHandlingTest exten "http://www.w3.org/TR/REC-html40".equals(element.getNamespace().getNamespaceURI())); } - public void testMultipleDefaultNS() { - OMFactory omFactory = OMAbstractFactory.getOMFactory(); - OMNamespace defaultNS1 = omFactory.createOMNamespace("http://defaultNS1.org", null); - OMNamespace defaultNS2 = omFactory.createOMNamespace("http://defaultNS2.org", null); - - OMElement omElementOne = omFactory.createOMElement("DocumentElement", null); - omElementOne.declareDefaultNamespace("http://defaultNS1.org"); - OMElement omElementOneChild = omFactory.createOMElement("ChildOne", null, omElementOne); - - - OMElement omElementTwo = omFactory.createOMElement("Foo", defaultNS2, omElementOne); - omElementTwo.declareDefaultNamespace("http://defaultNS2.org"); - OMElement omElementTwoChild = omFactory.createOMElement("ChildOne", null, omElementTwo); - - OMElement omElementThree = omFactory.createOMElement("Bar", defaultNS1, omElementTwo); - omElementThree.declareDefaultNamespace("http://defaultNS1.org"); - - assertTrue("".equals(omElementOneChild.getNamespace().getNamespaceURI())); - assertTrue("".equals(omElementTwoChild.getNamespace().getNamespaceURI())); - } - - public void testChildReDeclaringParentsDefaultNSWithPrefix() throws Exception { - OMFactory fac = OMAbstractFactory.getOMFactory(); - OMElement elem = fac.createOMElement("RequestSecurityToken", null); - elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust"); - fac.createOMElement(new QName("TokenType"), elem).setText("test"); - fac.createOMElement(new QName("RequestType"), elem).setText("test1"); - - fac.createOMElement( - new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"), - elem); - String xml = elem.toString(); - - XMLStreamReader reader = StAXUtils.createXMLStreamReader( - new ByteArrayInputStream(xml.getBytes())); - - StAXOMBuilder builder = new StAXOMBuilder(reader); - builder.getDocumentElement().build(); - - // The StAX implementation may or may not have a trailing blank in the tag - String assertText1 = - "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\" />"; - String assertText2 = - "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"/>"; - String assertText3 = - "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"></wst:Entropy>"; - - assertTrue((xml.indexOf(assertText1) != -1) || - (xml.indexOf(assertText2) != -1) || - (xml.indexOf(assertText3) != -1)); - } - - public void testChildReDeclaringGrandParentsDefaultNSWithPrefix() { - OMFactory fac = OMAbstractFactory.getOMFactory(); - OMElement elem = fac.createOMElement("RequestSecurityToken", null); - elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust"); - fac.createOMElement(new QName("TokenType"), elem).setText("test"); - fac.createOMElement(new QName("RequestType"), elem).setText("test1"); - - OMElement entElem = fac.createOMElement( - new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"), - elem); - OMElement binSecElem = fac.createOMElement( - new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Binarysecret", "wst"), - entElem); - binSecElem.setText("secret value"); - String xml = elem.toString(); - assertTrue("Binarysecret element should have \'wst\' ns prefix", - xml.indexOf("<wst:Binarysecret") != -1); - } - // public void testForIssueWSCOMMONS119() { // // try { Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/NamespaceTest.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/NamespaceTest.java?rev=937807&r1=937806&r2=937807&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/NamespaceTest.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/NamespaceTest.java Sun Apr 25 14:42:56 2010 @@ -119,59 +119,6 @@ public class NamespaceTest extends XMLTe assertTrue(documentElement.toStringWithConsume().indexOf("ns2:ChildElement") > -1); } - public void testNamespaceProblem2() throws XMLStreamException { - - /** - * <RootElement xmlns="http://one.org"> - * <ns2:ChildElementOne xmlns:ns2="http://ws.apache.org/axis2" xmlns="http://two.org"> - * <ChildElementTwo xmlns="http://one.org" /> - * </ns2:ChildElementOne> - * </RootElement> - */ - - OMFactory omFac = OMAbstractFactory.getOMFactory(); - - OMElement documentElement = omFac.createOMElement("RootElement", null); - documentElement.declareDefaultNamespace("http://one.org"); - - OMNamespace ns = omFac.createOMNamespace("http://ws.apache.org/axis2", "ns2"); - OMElement childOne = omFac.createOMElement("ChildElementOne", ns, documentElement); - childOne.declareDefaultNamespace("http://two.org"); - - OMElement childTwo = omFac.createOMElement("ChildElementTwo", null, childOne); - childTwo.declareDefaultNamespace("http://one.org"); - - - assertEquals(2, getNumberOfOccurrences(documentElement.toStringWithConsume(), - "xmlns=\"http://one.org\"")); - } - - public void testNamespaceProblem3() throws XMLStreamException { - - /** - * <RootElement xmlns:ns1="http://one.org" xmlns:ns2="http://one.org"> - * <ns2:ChildElementOne xmlns="http://one.org"> - * <ns2:ChildElementTwo /> - * </ns2:ChildElementOne> - * </RootElement> - */ - - OMFactory omFac = OMAbstractFactory.getOMFactory(); - - OMElement documentElement = omFac.createOMElement("RootElement", null); - OMNamespace ns1 = documentElement.declareNamespace("http://one.org", "ns1"); - OMNamespace ns2 = documentElement.declareNamespace("http://one.org", "ns2"); - - OMElement childOne = omFac.createOMElement("ChildElementOne", ns2, documentElement); - childOne.declareDefaultNamespace("http://one.org"); - - OMElement childTwo = omFac.createOMElement("ChildElementTwo", ns1, childOne); - - assertEquals(1, getNumberOfOccurrences(documentElement.toStringWithConsume(), - "xmlns:ns2=\"http://one.org\"")); - } - - public void testNamespaceProblem4() throws Exception { String xml = "<getCreditScoreResponse xmlns=\"http://www.example.org/creditscore/doclitwrapped/\"><score xmlns=\"\">750</score></getCreditScoreResponse>"; @@ -200,16 +147,6 @@ public class NamespaceTest extends XMLTe } } - private int getNumberOfOccurrences(String xml, String pattern) { - int index = -1; - int count = 0; - while ((index = xml.indexOf(pattern, index + 1)) != -1) { - count++; - } - - return count; - } - public void testNamespaceProblem6() { OMFactory fac = OMAbstractFactory.getOMFactory(); //TODO: Find the constants for "Parameter" and "name"