[Libreoffice-commits] core.git: 2 commits - include/test sw/qa test/source
Miklos Vajna
vmiklos at collabora.co.uk
Tue Sep 30 03:08:07 PDT 2014
include/test/xmltesttools.hxx | 4 ++++
sw/qa/extras/inc/swmodeltestbase.hxx | 4 +++-
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 18 ++----------------
test/source/xmltesttools.cxx | 12 ++++++++++++
4 files changed, 21 insertions(+), 17 deletions(-)
New commits:
commit 548b360c0e4693aac0cbdd2fcc1aab433fc54010
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Sep 30 11:48:59 2014 +0200
Factor out duplicated code to XmlTestTools::assertXPathNoAttribute()
Change-Id: I1eb3778e6bcdd8c44ffb9a7548add109331fc83b
diff --git a/include/test/xmltesttools.hxx b/include/test/xmltesttools.hxx
index 6709c1c..a3ac5d6 100644
--- a/include/test/xmltesttools.hxx
+++ b/include/test/xmltesttools.hxx
@@ -76,6 +76,10 @@ protected:
* Useful for checking that we do have a no child nodes to a specific node (nNumberOfChildNodes == 0).
*/
void assertXPathChildren(xmlDocPtr pXmlDoc, const OString& rXPath, int nNumberOfChildNodes);
+ /**
+ * Assert that rXPath exists, has exactly 1 child node and does *not* have an attribute named rAttribute.
+ */
+ void assertXPathNoAttribute(xmlDocPtr pXmlDoc, const OString& rXPath, const OString& rAttribute);
};
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 207970d..d136875 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -134,14 +134,7 @@ DECLARE_OOXMLEXPORT_TEST(testParaShading, "para-shading.docx")
{
// Make sure the themeColor attribute is not written when it would be empty.
if (xmlDocPtr pXmlDoc = parseExport("word/document.xml"))
- {
- xmlXPathObjectPtr pXPath = getXPathNode(pXmlDoc, "/w:document/w:body/w:p/w:pPr/w:shd");
- xmlNodeSetPtr pXmlNodes = pXPath->nodesetval;
- CPPUNIT_ASSERT_EQUAL(1, xmlXPathNodeSetGetLength(pXmlNodes));
- xmlNodePtr pXmlNode = pXmlNodes->nodeTab[0];
- // The attribute existed, so xmlGetProp() returned non-NULL.
- CPPUNIT_ASSERT_EQUAL(static_cast<xmlChar*>(0), xmlGetProp(pXmlNode, BAD_CAST("themeColor")));
- }
+ assertXPathNoAttribute(pXmlDoc, "/w:document/w:body/w:p/w:pPr/w:shd", "themeColor");
}
DECLARE_OOXMLEXPORT_TEST(testFirstHeaderFooter, "first-header-footer.docx")
@@ -294,14 +287,7 @@ DECLARE_OOXMLEXPORT_TEST(testDrawingmlFlipv, "drawingml-flipv.docx")
{
// The problem was that the shape had vertical flip only, but then we added rotation as well on export.
if (xmlDocPtr pXmlDoc = parseExport("word/document.xml"))
- {
- xmlXPathObjectPtr pXPath = getXPathNode(pXmlDoc, "//a:xfrm");
- xmlNodeSetPtr pXmlNodes = pXPath->nodesetval;
- CPPUNIT_ASSERT_EQUAL(1, xmlXPathNodeSetGetLength(pXmlNodes));
- xmlNodePtr pXmlNode = pXmlNodes->nodeTab[0];
- // The attribute existed, so xmlGetProp() returned non-NULL.
- CPPUNIT_ASSERT_EQUAL(static_cast<xmlChar*>(0), xmlGetProp(pXmlNode, BAD_CAST("rot")));
- }
+ assertXPathNoAttribute(pXmlDoc, "//a:xfrm", "rot");
}
DECLARE_OOXMLEXPORT_TEST(testRot90Fliph, "rot90-fliph.docx")
diff --git a/test/source/xmltesttools.cxx b/test/source/xmltesttools.cxx
index 5ba9162..32908a0 100644
--- a/test/source/xmltesttools.cxx
+++ b/test/source/xmltesttools.cxx
@@ -114,6 +114,18 @@ void XmlTestTools::assertXPathChildren(xmlDocPtr pXmlDoc, const OString& rXPath,
#endif
}
+void XmlTestTools::assertXPathNoAttribute(xmlDocPtr pXmlDoc, const OString& rXPath, const OString& rAttribute)
+{
+ xmlXPathObjectPtr pXmlObj = getXPathNode(pXmlDoc, rXPath);
+ xmlNodeSetPtr pXmlNodes = pXmlObj->nodesetval;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(OString("In <" + OString(pXmlDoc->name) + ">, XPath '" + rXPath + "' number of nodes is incorrect").getStr(),
+ 1, xmlXPathNodeSetGetLength(pXmlNodes));
+ xmlNodePtr pXmlNode = pXmlNodes->nodeTab[0];
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(OString("In <" + OString(pXmlDoc->name) + ">, XPath '" + rXPath + "' unexpected '" + rAttribute + "' attribute").getStr(),
+ static_cast<xmlChar*>(0), xmlGetProp(pXmlNode, BAD_CAST(rAttribute.getStr())));
+ xmlXPathFreeObject(pXmlObj);
+}
+
int XmlTestTools::getXPathPosition(xmlDocPtr pXmlDoc, const OString& rXPath, const OUString& rChildName)
{
xmlXPathObjectPtr pXmlObj = getXPathNode(pXmlDoc, rXPath);
commit a87d0bc0f5ace66c5d0d71f310f99ba9dbebc543
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Sep 30 11:48:08 2014 +0200
SwModelTestBase: include name of document in CPPUNIT_ASSERT msgs
Change-Id: Ice6834702419e6d2e8b7eb3051aeea2c9b596249
diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx
index 2658f12..fdce9f1 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -654,7 +654,9 @@ protected:
uno::Reference<io::XInputStream> xInputStream(xNameAccess->getByName(rStreamName), uno::UNO_QUERY);
boost::shared_ptr<SvStream> pStream(utl::UcbStreamHelper::CreateStream(xInputStream, true));
- return parseXmlStream(pStream.get());
+ xmlDocPtr pXmlDoc = parseXmlStream(pStream.get());
+ pXmlDoc->name = reinterpret_cast<char *>(xmlStrdup(reinterpret_cast<xmlChar const *>(OUStringToOString(maTempFile.GetURL(), RTL_TEXTENCODING_UTF8).getStr())));
+ return pXmlDoc;
}
/**
More information about the Libreoffice-commits
mailing list