Multi-line svn commit, see body.
[shibboleth/cpp-xmltooling.git] / xmltoolingtest / ComplexXMLObjectTest.h
index 45af7a9..908e4d4 100644 (file)
@@ -36,12 +36,13 @@ public:
         ifstream fs(path.c_str());\r
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(fs);\r
         TS_ASSERT(doc!=NULL);\r
+        XercesJanitor<DOMDocument> janitor(doc);\r
 \r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
         TS_ASSERT(b!=NULL);\r
 \r
         auto_ptr<ElementProxy> wcObject(\r
-            dynamic_cast<ElementProxy*>(b->buildFromDocument(doc))\r
+            dynamic_cast<ElementProxy*>(b->buildFromDocument(doc, false))\r
             );\r
         TS_ASSERT(wcObject.get()!=NULL);\r
         \r
@@ -59,6 +60,10 @@ public:
         ListOf(XMLObject)::const_iterator it=wc2->getXMLObjects().begin();\r
         ++it; ++it;\r
         TSM_ASSERT_EQUALS("Element QName unexpected", it->getElementQName(),q);\r
+\r
+        DOMElement* rebuilt = wcObject->marshall(XMLToolingConfig::getConfig().getParser().newDocument());\r
+        wcObject->setDocument(rebuilt->getOwnerDocument());\r
+        TS_ASSERT(rebuilt->isEqualNode(doc->getDocumentElement()));\r
     }\r
 \r
 };\r