summaryrefslogtreecommitdiff
path: root/unoxml
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2024-10-04 14:37:20 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2024-10-04 16:31:03 +0200
commitc914a9da325616cb7a6319ffdc80b584db236cb4 (patch)
tree73ce8afe4e1ad424423d32b20f964c0992aa9de8 /unoxml
parentacc52f9bc0dbfcb5a8893b5aff2d18a2360d46e2 (diff)
unoxml: port testXNodeList_ChildList from java to c++
Change-Id: I75d4d9bb275ac1d50fe92f6bd193037f81e3ac64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174478 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
Diffstat (limited to 'unoxml')
-rw-r--r--unoxml/qa/complex/unoxml/DOMTest.java43
-rw-r--r--unoxml/qa/unit/domtest.cxx48
2 files changed, 48 insertions, 43 deletions
diff --git a/unoxml/qa/complex/unoxml/DOMTest.java b/unoxml/qa/complex/unoxml/DOMTest.java
index f61e448ba491..2e262f083b77 100644
--- a/unoxml/qa/complex/unoxml/DOMTest.java
+++ b/unoxml/qa/complex/unoxml/DOMTest.java
@@ -2220,49 +2220,6 @@ public class DOMTest
}
*/
- @Test public void testXNodeList_ChildList() throws Exception
- {
- XDocumentBuilder xBuilder =
- UnoRuntime.queryInterface(XDocumentBuilder.class,
- m_xMSF.createInstance("com.sun.star.xml.dom.DocumentBuilder"));
- XDocument xDoc = xBuilder.newDocument();
-
- XElement xRoot = xDoc.createElement("root");
- XElement xFoo = xDoc.createElement("foo");
- XElement xBar = xDoc.createElement("bar");
- XElement xBaz = xDoc.createElement("baz");
-
- xDoc.appendChild(xRoot);
-
- XNodeList xChildList = xRoot.getChildNodes();
- assertNotNull(xChildList);
- assertSame("ChildList.getLength()", 0, xChildList.getLength());
-
- try {
- xChildList.item(4);
- } catch (Exception e) { /* expected */ }
-
- xRoot.appendChild(xFoo);
- assertSame("ChildList.getLength()", 1, xChildList.getLength());
- assertEquals("ChildList.item", xFoo, xChildList.item(0));
-
- xRoot.appendChild(xBar);
- assertSame("ChildList.getLength()", 2, xChildList.getLength());
- assertEquals("ChildList.item", xFoo, xChildList.item(0));
- assertEquals("ChildList.item", xBar, xChildList.item(1));
-
- xRoot.appendChild(xBaz);
- assertSame("ChildList.getLength()", 3, xChildList.getLength());
- assertEquals("ChildList.item", xFoo, xChildList.item(0));
- assertEquals("ChildList.item", xBar, xChildList.item(1));
- assertEquals("ChildList.item", xBaz, xChildList.item(2));
-
- xRoot.removeChild(xBar);
- assertSame("ChildList.getLength()", 2, xChildList.getLength());
- assertEquals("ChildList.item", xFoo, xChildList.item(0));
- assertEquals("ChildList.item", xBaz, xChildList.item(1));
- }
-
@Test public void testXNodeList_ElementList() throws Exception
{
XDocumentBuilder xBuilder =
diff --git a/unoxml/qa/unit/domtest.cxx b/unoxml/qa/unit/domtest.cxx
index d0c262123bf7..612d36654993 100644
--- a/unoxml/qa/unit/domtest.cxx
+++ b/unoxml/qa/unit/domtest.cxx
@@ -560,6 +560,53 @@ public:
}
}
+ void testXNodeList_ChildList()
+ {
+ Reference< xml::dom::XDocument > xDocument = mxDomBuilder->newDocument();
+ CPPUNIT_ASSERT(xDocument);
+
+ Reference< xml::dom::XElement > xRoot = xDocument->createElement(u"root"_ustr);
+ Reference< xml::dom::XElement > xFoo = xDocument->createElement(u"foo"_ustr);
+ Reference< xml::dom::XElement > xBar = xDocument->createElement(u"bar"_ustr);
+ Reference< xml::dom::XElement > xBaz = xDocument->createElement(u"baz"_ustr);
+
+ xDocument->appendChild(xRoot);
+
+ uno::Reference<xml::dom::XNodeList> xChildList = xRoot->getChildNodes();
+ CPPUNIT_ASSERT(xChildList);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xChildList->getLength());
+
+ CPPUNIT_ASSERT(!xChildList->item(4));
+
+ xRoot->appendChild(xFoo);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xChildList->getLength());
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xFoo, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(0), uno::UNO_QUERY));
+
+ xRoot->appendChild(xBar);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xChildList->getLength());
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xFoo, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(0), uno::UNO_QUERY));
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xBar, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(1), uno::UNO_QUERY));
+
+ xRoot->appendChild(xBaz);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xChildList->getLength());
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xFoo, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(0), uno::UNO_QUERY));
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xBar, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(1), uno::UNO_QUERY));
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xBaz, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(2), uno::UNO_QUERY));
+
+ xRoot->removeChild(xBar);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xChildList->getLength());
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xFoo, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(0), uno::UNO_QUERY));
+ CPPUNIT_ASSERT_EQUAL(Reference< XInterface >(xBaz, uno::UNO_QUERY),
+ Reference< XInterface >(xChildList->item(1), uno::UNO_QUERY));
+ }
+
void testXNodeList_NodeList()
{
uno::Reference<xml::xpath::XXPathAPI> xXPathAPI( getMultiServiceFactory()->createInstance(u"com.sun.star.xml.xpath.XPathAPI"_ustr), uno::UNO_QUERY_THROW );
@@ -641,6 +688,7 @@ public:
CPPUNIT_TEST(testXDocumentBuilder);
CPPUNIT_TEST(testXXPathAPI);
CPPUNIT_TEST(testXXPathObject);
+ CPPUNIT_TEST(testXNodeList_ChildList);
CPPUNIT_TEST(testXNodeList_NodeList);
CPPUNIT_TEST(serializerTest);
CPPUNIT_TEST_SUITE_END();