📄 xmlwritertest.cpp
字号:
writer.setNewLine("\n"); writer.startDocument(); writer.processingInstruction("target", "a processing instruction"); writer.startElement("", "", "r"); writer.processingInstruction("target", "another processing instruction"); writer.dataElement("", "", "d", "data"); writer.endElement("", "", "r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<?target a processing instruction?>\n<r>\n\t<?target another processing instruction?>\n\t<d>data</d>\n</r>\n");}void XMLWriterTest::testCharacters(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("", "", "r"); writer.characters("some \"chars\" that <must> be & escaped"); writer.endElement("", "", "r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<r>some "chars" that <must> be & escaped</r>");}void XMLWriterTest::testCDATA(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("", "", "r"); writer.startCDATA(); writer.characters("some \"chars\" that <must> be & escaped"); writer.endCDATA(); writer.endElement("", "", "r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<r><![CDATA[some \"chars\" that <must> be & escaped]]></r>");}void XMLWriterTest::testRawCharacters(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("", "", "r"); writer.startCDATA(); writer.rawCharacters("some \"chars\" that <must> be & escaped"); writer.endCDATA(); writer.endElement("", "", "r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<r><![CDATA[some \"chars\" that <must> be & escaped]]></r>");}void XMLWriterTest::testDefaultNamespace(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startPrefixMapping("", "urn:ns"); writer.startElement("", "", "r"); writer.characters("data"); writer.endElement("", "", "r"); writer.endPrefixMapping(""); writer.endDocument(); std::string xml = str.str(); assert (xml == "<r xmlns=\"urn:ns\">data</r>");}void XMLWriterTest::testQNamespaces(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("urn:ns", "r", "p:r"); writer.characters("data"); writer.endElement("urn:ns", "r", "p:r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<p:r xmlns:p=\"urn:ns\">data</p:r>");}void XMLWriterTest::testQNamespacesNested(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("urn:ns", "r", "p:r"); writer.startElement("urn:ns", "e", "p:e"); writer.endElement("urn:ns", "e", "p:e"); writer.endElement("urn:ns", "r", "p:r"); writer.endDocument(); std::string xml = str.str(); assert (xml == "<p:r xmlns:p=\"urn:ns\"><p:e/></p:r>");}void XMLWriterTest::testNamespaces(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("urn:ns", "r", ""); writer.characters("data"); writer.endElement("urn:ns", "r", ""); writer.endDocument(); std::string xml = str.str(); assert (xml == "<ns1:r xmlns:ns1=\"urn:ns\">data</ns1:r>");}void XMLWriterTest::testAttributeNamespaces(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); Poco::XML::AttributesImpl attrs; attrs.addAttribute("urn:other", "myattr", "", "", "attrValue"); attrs.addAttribute("urn:ns", "myattr2", "", "", "attrValue2"); writer.startDocument(); writer.startElement("urn:ns", "r", "", attrs); writer.characters("data"); writer.endElement("urn:ns", "r", ""); writer.endDocument(); std::string xml = str.str(); assert (xml == "<ns1:r myattr2=\"attrValue2\" ns2:myattr=\"attrValue\" xmlns:ns1=\"urn:ns\" xmlns:ns2=\"urn:other\">data</ns1:r>");}void XMLWriterTest::testNamespacesNested(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("urn:ns1", "r", ""); writer.startElement("urn:ns1", "e", ""); writer.endElement("urn:ns1", "e", ""); writer.startElement("urn:ns2", "f", ""); writer.endElement("urn:ns2", "f", ""); writer.endElement("urn:ns1", "r", ""); writer.endDocument(); std::string xml = str.str(); assert (xml == "<ns1:r xmlns:ns1=\"urn:ns1\"><ns1:e/><ns2:f xmlns:ns2=\"urn:ns2\"/></ns1:r>");}void XMLWriterTest::testExplicitNamespaces(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startPrefixMapping("p1", "urn:ns1"); writer.startPrefixMapping("p2", "urn:ns2"); writer.startElement("urn:ns1", "r", ""); writer.startElement("urn:ns2", "e", ""); writer.endElement("urn:ns2", "e", ""); writer.startPrefixMapping("p3", "urn:ns3"); writer.startElement("urn:ns2", "e", ""); writer.startElement("urn:ns3", "f", ""); writer.endElement("urn:ns3", "f", ""); writer.endElement("urn:ns2", "e", ""); writer.endElement("urn:ns1", "r", ""); writer.endDocument(); std::string xml = str.str(); assert (xml == "<p1:r xmlns:p1=\"urn:ns1\" xmlns:p2=\"urn:ns2\"><p2:e/><p2:e xmlns:p3=\"urn:ns3\"><p3:f/></p2:e></p1:r>");}void XMLWriterTest::testWellformed(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("", "", "foo"); try { writer.endElement("", "", "bar"); fail("not wellformed - must throw exception"); } catch (Poco::Exception&) { }}void XMLWriterTest::testWellformedNested(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("", "", "foo"); writer.startElement("", "", "bar"); try { writer.endElement("", "", "foo"); fail("not wellformed - must throw exception"); } catch (Poco::Exception&) { }}void XMLWriterTest::testWellformedNamespace(){ std::ostringstream str; XMLWriter writer(str, XMLWriter::CANONICAL); writer.startDocument(); writer.startElement("urn:ns1", "foo", ""); writer.startElement("urn:ns2", "bar", ""); try { writer.endElement("urn:ns1", "bar", ""); fail("not wellformed - must throw exception"); } catch (Poco::Exception&) { }}void XMLWriterTest::setUp(){}void XMLWriterTest::tearDown(){}CppUnit::Test* XMLWriterTest::suite(){ CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("XMLWriterTest"); CppUnit_addTest(pSuite, XMLWriterTest, testTrivial); CppUnit_addTest(pSuite, XMLWriterTest, testTrivialDecl); CppUnit_addTest(pSuite, XMLWriterTest, testTrivialDeclPretty); CppUnit_addTest(pSuite, XMLWriterTest, testTrivialFragment); CppUnit_addTest(pSuite, XMLWriterTest, testTrivialFragmentPretty); CppUnit_addTest(pSuite, XMLWriterTest, testDTDPretty); CppUnit_addTest(pSuite, XMLWriterTest, testDTD); CppUnit_addTest(pSuite, XMLWriterTest, testDTDNotation); CppUnit_addTest(pSuite, XMLWriterTest, testDTDEntity); CppUnit_addTest(pSuite, XMLWriterTest, testAttributes); CppUnit_addTest(pSuite, XMLWriterTest, testData); CppUnit_addTest(pSuite, XMLWriterTest, testDataPretty); CppUnit_addTest(pSuite, XMLWriterTest, testComment); CppUnit_addTest(pSuite, XMLWriterTest, testPI); CppUnit_addTest(pSuite, XMLWriterTest, testCharacters); CppUnit_addTest(pSuite, XMLWriterTest, testCDATA); CppUnit_addTest(pSuite, XMLWriterTest, testRawCharacters); CppUnit_addTest(pSuite, XMLWriterTest, testDefaultNamespace); CppUnit_addTest(pSuite, XMLWriterTest, testQNamespaces); CppUnit_addTest(pSuite, XMLWriterTest, testQNamespacesNested); CppUnit_addTest(pSuite, XMLWriterTest, testNamespaces); CppUnit_addTest(pSuite, XMLWriterTest, testAttributeNamespaces); CppUnit_addTest(pSuite, XMLWriterTest, testNamespacesNested); CppUnit_addTest(pSuite, XMLWriterTest, testExplicitNamespaces); CppUnit_addTest(pSuite, XMLWriterTest, testWellformed); CppUnit_addTest(pSuite, XMLWriterTest, testWellformedNested); CppUnit_addTest(pSuite, XMLWriterTest, testWellformedNamespace); return pSuite;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -