X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4c493e0bc5b3f4fff578d89893dc92d03a58e571..bbd55ff9564dcaf1a5d2ee93d789c4d656baabef:/tests/xml/xmltest.cpp?ds=inline
diff --git a/tests/xml/xmltest.cpp b/tests/xml/xmltest.cpp
index 600650360e..9f3d6056a5 100644
--- a/tests/xml/xmltest.cpp
+++ b/tests/xml/xmltest.cpp
@@ -75,11 +75,13 @@ private:
CPPUNIT_TEST( InsertChild );
CPPUNIT_TEST( InsertChildAfter );
CPPUNIT_TEST( LoadSave );
+ CPPUNIT_TEST( CDATA );
CPPUNIT_TEST_SUITE_END();
void InsertChild();
void InsertChildAfter();
void LoadSave();
+ void CDATA();
DECLARE_NO_COPY_CLASS(XmlTestCase)
};
@@ -163,5 +165,53 @@ void XmlTestCase::LoadSave()
CPPUNIT_ASSERT( doc.Save(sos) );
CPPUNIT_ASSERT_EQUAL( xmlText, sos.GetString() );
+
+
+ const char *utf8xmlText =
+"\n"
+"\n"
+" \xc3\xa9t\xc3\xa9\n"
+" \xd0\xbb\xd0\xb5\xd1\x82\xd0\xbe\n"
+"\n"
+ ;
+
+ wxStringInputStream sis8(wxString::FromUTF8(utf8xmlText));
+ CPPUNIT_ASSERT( doc.Load(sis8) );
+
+ // this contents can't be represented in Latin-1 as it contains Cyrillic
+ // letters
+ doc.SetFileEncoding("ISO-8859-1");
+ CPPUNIT_ASSERT( !doc.Save(sos) );
+
+ // but it should work in UTF-8
+ wxStringOutputStream sos8;
+ doc.SetFileEncoding("UTF-8");
+ CPPUNIT_ASSERT( doc.Save(sos8) );
+ CPPUNIT_ASSERT_EQUAL( wxString(utf8xmlText),
+ wxString(sos8.GetString().ToUTF8()) );
}
+void XmlTestCase::CDATA()
+{
+ const char *xmlText =
+ "\n"
+ "\n"
+ " \n"
+ "\n"
+ ;
+
+ wxStringInputStream sis(xmlText);
+ wxXmlDocument doc;
+ CPPUNIT_ASSERT( doc.Load(sis) );
+
+ wxXmlNode *n = doc.GetRoot();
+ CPPUNIT_ASSERT( n );
+
+ n = n->GetChildren();
+ CPPUNIT_ASSERT( n );
+
+ // check that both leading (" ") and trailing white space is not part of
+ // the node contents when CDATA is used and wxXMLDOC_KEEP_WHITESPACE_NODES
+ // is not
+ CPPUNIT_ASSERT_EQUAL( "Giovanni Mittone", n->GetContent() );
+}