CPPUNIT_TEST( DetachRoot );
CPPUNIT_TEST( AppendToProlog );
CPPUNIT_TEST( SetRoot );
+ CPPUNIT_TEST( CopyNode );
CPPUNIT_TEST_SUITE_END();
void InsertChild();
void DetachRoot();
void AppendToProlog();
void SetRoot();
+ void CopyNode();
DECLARE_NO_COPY_CLASS(XmlTestCase)
};
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( XmlTestCase );
-// also include in it's own registry so that these tests can be run alone
+// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( XmlTestCase, "XmlTestCase" );
void XmlTestCase::InsertChild()
doc.SetRoot(root);
CPPUNIT_ASSERT( doc.IsOk() );
}
+
+void XmlTestCase::CopyNode()
+{
+ const char *xmlText =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<root>\n"
+" <first><sub1/><sub2/><sub3/></first>\n"
+" <second/>\n"
+"</root>\n"
+ ;
+ wxXmlDocument doc;
+ wxStringInputStream sis(xmlText);
+ CPPUNIT_ASSERT( doc.Load(sis) );
+
+ wxXmlNode* const root = doc.GetRoot();
+ CPPUNIT_ASSERT( root );
+
+ wxXmlNode* const first = root->GetChildren();
+ CPPUNIT_ASSERT( first );
+
+ wxXmlNode* const second = first->GetNext();
+ CPPUNIT_ASSERT( second );
+
+ *first = *second;
+
+ wxStringOutputStream sos;
+ CPPUNIT_ASSERT( doc.Save(sos) );
+
+ const char *xmlTextResult =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<root>\n"
+" <second/>\n"
+" <second/>\n"
+"</root>\n"
+ ;
+ CPPUNIT_ASSERT_EQUAL( xmlTextResult, sos.GetString() );
+}