dbaccess/source/ui/querydesign/QueryTableView.cxx | 2 unoxml/qa/complex/unoxml/DOMTest.java | 181 ---------------------- unoxml/qa/unit/domtest.cxx | 180 +++++++++++++++++++++ 3 files changed, 181 insertions(+), 182 deletions(-)
New commits: commit 87995efe7c1d49d87c12ced97033fa3f38bc76e4 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Wed Oct 23 17:20:05 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Wed Oct 23 20:26:16 2024 +0200 unoxml: port testXText from java to c++ Change-Id: I548bfde6a78832dbb53f3b154ae79223fdc69454 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175510 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/unoxml/qa/complex/unoxml/DOMTest.java b/unoxml/qa/complex/unoxml/DOMTest.java index 0d2436070e0d..7d31a525aae9 100644 --- a/unoxml/qa/complex/unoxml/DOMTest.java +++ b/unoxml/qa/complex/unoxml/DOMTest.java @@ -1312,187 +1312,6 @@ public class DOMTest xText, xAttr.getLastChild()); } - @Test public void testXText() throws Exception - { - XDocumentBuilder xBuilder = - UnoRuntime.queryInterface(XDocumentBuilder.class, - m_xMSF.createInstance("com.sun.star.xml.dom.DocumentBuilder")); - XDocument xDoc = xBuilder.newDocument(); - - XText xText = xDoc.createTextNode("foobar"); - assertNotNull(xText); - - assertEquals("XText.getData", "foobar", xText.getData()); - assertEquals("XText.getLength", 6, xText.getLength()); - - /* FIXME - try { - xText.splitText(9999); - fail("XText.splitText(9999)"); - } catch (DOMException e) { - assertTrue("XText.splitText(9999)", INDEX_SIZE_ERR == e.Code); - } - - { - XText xTextBar = xText.splitText(2); - assertNotNull("XText.splitText", xTextBar); - assertEquals("XText.splitText", "foo", xText.getData()); - assertEquals("XText.splitText", "bar", xTextBar.getData()); - } - */ - xText.setData("foo"); - - xText.appendData("baz"); - assertEquals("XText.appendData", "foobaz", xText.getData()); - - try { - xText.deleteData(999,999); - fail("XText.deleteData(999,999)"); - } catch (DOMException e) { - assertTrue("XText.deleteData(999,999)", INDEX_SIZE_ERR == e.Code); - } - xText.deleteData(0, 3); - assertEquals("XText.deleteData", "baz", xText.getData()); - - try { - xText.insertData(999,"blah"); - fail("XText.insertData(999,\"blah\")"); - } catch (DOMException e) { - assertTrue("XText.insertData(999,\"blah\")", - INDEX_SIZE_ERR == e.Code); - } - xText.insertData(1, "arb"); - assertEquals("XText.insertData", "barbaz", xText.getData()); - - try { - xText.replaceData(999,999,"x"); - fail("XText.replaceData(999,999,\"x\")"); - } catch (DOMException e) { - assertTrue("XText.replaceData(999,999,\"x\")", - INDEX_SIZE_ERR == e.Code); - } - xText.replaceData(3, 3, "foo"); - assertEquals("XText.replaceData", "barfoo", xText.getData()); - - xText.setData("quux"); - assertEquals("XText.setData", "quux", xText.getData()); - - try { - xText.subStringData(999,999); - fail("XText.subStringData(999,999)"); - } catch (DOMException e) { - assertTrue("XText.subStringData(999,999)", - INDEX_SIZE_ERR == e.Code); - } - assertEquals("XText.subStringData", "x", xText.subStringData(3, 1)); - - // XNode - - { - XNode xTextCloneN = xText.cloneNode(false); - assertNotNull("XText.cloneNode(false)", xTextCloneN); - XText xTextClone = - UnoRuntime.queryInterface(XText.class, xTextCloneN); - assertNotNull("XText.cloneNode(false)", xTextClone); - assertFalse("XText.cloneNode(false)", - xTextClone.hasChildNodes()); - } - { - XNode xTextCloneN = xText.cloneNode(true); - assertNotNull("XText.cloneNode(true)", xTextCloneN); - XText xTextClone = - UnoRuntime.queryInterface(XText.class, xTextCloneN); - assertNotNull("XText.cloneNode(true)", xTextClone); - assertFalse("XText.cloneNode(true)", xTextClone.hasChildNodes()); - } - - assertNull("XText.getAttributes()", xText.getAttributes()); - - { - XNodeList xChildren = xText.getChildNodes(); - assertTrue("XText.getChildNodes()", 0 == xChildren.getLength()); - } - - assertEquals("XText.getLocalName()", "", xText.getLocalName()); - - assertEquals("XText.getNamespaceURI()", "", xText.getNamespaceURI()); - - assertNull("XText.getNextSibling()", xText.getNextSibling()); - - assertEquals("XText.getNodeName()", "#text", xText.getNodeName()); - - assertTrue("XText.getNodeType()", - TEXT_NODE == xText.getNodeType()); - - assertEquals("XText.getNodeValue()", "quux", xText.getNodeValue()); - - assertEquals("XText.getOwnerDocument()", - xDoc, xText.getOwnerDocument()); - - assertNull("XText.getParentNode()", xText.getParentNode()); - - assertEquals("XText.getPrefix()", "", xText.getPrefix()); - - assertNull("XText.getPreviousSibling()", xText.getPreviousSibling()); - - assertFalse("XText.hasAttributes()", xText.hasAttributes()); - - assertFalse("XText.hasChildNodes()", xText.hasChildNodes()); - - assertFalse("XText.isSupported()", - xText.isSupported("frobnication", "v99.33.0.0.0.1")); - - xText.normalize(); - - xText.setNodeValue("42"); - assertEquals("XText.setNodeValue()", "42", xText.getNodeValue()); - - try { - xText.setPrefix("foo"); - fail("XText.setPrefix()"); - } catch (DOMException e) { - assertTrue("XText.setPrefix()", - NO_MODIFICATION_ALLOWED_ERR == e.Code); - } - - XText xText2 = xDoc.createTextNode("foobar"); - XText xText3 = xDoc.createTextNode("foobar"); - - try { - xText.appendChild(null); - fail("XText.appendChild(null)"); - } catch (Exception e) { /* expected */ } - try { - xText.appendChild(xText2); - fail("XText.appendChild(xText2)"); - } catch (DOMException e) { - assertTrue("XText.appendChild(xText2)", - HIERARCHY_REQUEST_ERR == e.Code); - } - - try { - xText.insertBefore(xText2, xText3); - fail("XText.insertBefore"); - } catch (Exception e) { /* expected */ } - - try { - xText.replaceChild(xText2, xText3); - fail("XText.insertBefore"); - } catch (Exception e) { /* expected */ } - - try { - xText.removeChild(null); - fail("XText.removeChild(null)"); - } catch (Exception e) { /* expected */ } - - try { - xText.removeChild(xText2); - fail("XText.removeChild"); - } catch (DOMException e) { - assertTrue("XText.removeChild", HIERARCHY_REQUEST_ERR == e.Code); - } - } - @Test public void testXCDataSection() throws Exception { XDocumentBuilder xBuilder = diff --git a/unoxml/qa/unit/domtest.cxx b/unoxml/qa/unit/domtest.cxx index a6d7997f8951..de17af86057c 100644 --- a/unoxml/qa/unit/domtest.cxx +++ b/unoxml/qa/unit/domtest.cxx @@ -561,6 +561,185 @@ public: } } + void testXText() + { + Reference< xml::dom::XDocument > xDocument = mxDomBuilder->newDocument(); + CPPUNIT_ASSERT(xDocument); + uno::Reference<xml::dom::XText> xText = xDocument->createTextNode(u"foobar"_ustr); + CPPUNIT_ASSERT(xText); + + CPPUNIT_ASSERT_EQUAL(u"foobar"_ustr, xText->getData()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xText->getLength()); + + xText->setData(u"foo"_ustr); + + xText->appendData(u"baz"_ustr); + CPPUNIT_ASSERT_EQUAL(u"foobaz"_ustr, xText->getData()); + + try + { + xText->deleteData(999, 999); + CPPUNIT_FAIL("XText.deleteData(999,999)"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_INDEX_SIZE_ERR, e.Code); + } + + xText->deleteData(0, 3); + CPPUNIT_ASSERT_EQUAL(u"baz"_ustr, xText->getData()); + + try + { + xText->insertData(999, u"blah"_ustr); + CPPUNIT_FAIL("XText.insertData(999,\"blah\")"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_INDEX_SIZE_ERR, e.Code); + } + + xText->insertData(1, u"arb"_ustr); + CPPUNIT_ASSERT_EQUAL(u"barbaz"_ustr, xText->getData()); + + try + { + xText->replaceData(999, 999, u"x"_ustr); + CPPUNIT_FAIL("XText.replaceData(999, 999, \"x\")"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_INDEX_SIZE_ERR, e.Code); + } + + xText->replaceData(3, 3, u"foo"_ustr); + CPPUNIT_ASSERT_EQUAL(u"barfoo"_ustr, xText->getData()); + + xText->setData(u"quux"_ustr); + CPPUNIT_ASSERT_EQUAL(u"quux"_ustr, xText->getData()); + + try + { + xText->subStringData(999, 999); + CPPUNIT_FAIL("XText.subStringData(999, 999)"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_INDEX_SIZE_ERR, e.Code); + } + + CPPUNIT_ASSERT_EQUAL(u"x"_ustr, xText->subStringData(3, 1)); + + // XNode + { + uno::Reference<xml::dom::XNode> xTextCloneN = xText->cloneNode(false); + CPPUNIT_ASSERT(xTextCloneN); + uno::Reference<xml::dom::XText> xTextClone(xTextCloneN, uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xTextClone); + CPPUNIT_ASSERT(!xTextClone->hasChildNodes()); + } + { + uno::Reference<xml::dom::XNode> xTextCloneN = xText->cloneNode(true); + CPPUNIT_ASSERT(xTextCloneN); + uno::Reference<xml::dom::XText> xTextClone(xTextCloneN, uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xTextClone); + CPPUNIT_ASSERT(!xTextClone->hasChildNodes()); + } + + CPPUNIT_ASSERT(!xText->getAttributes()); + + uno::Reference<xml::dom::XNodeList> xChildList = xText->getChildNodes(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xChildList->getLength()); + + CPPUNIT_ASSERT_EQUAL(u""_ustr, xText->getLocalName()); + CPPUNIT_ASSERT_EQUAL(u""_ustr, xText->getNamespaceURI()); + CPPUNIT_ASSERT(!xText->getNextSibling()); + CPPUNIT_ASSERT_EQUAL(u"#text"_ustr, xText->getNodeName()); + CPPUNIT_ASSERT_EQUAL(xml::dom::NodeType::NodeType_TEXT_NODE, xText->getNodeType()); + CPPUNIT_ASSERT_EQUAL(u"quux"_ustr, xText->getNodeValue()); + CPPUNIT_ASSERT_EQUAL(xDocument, xText->getOwnerDocument()); + CPPUNIT_ASSERT(!xText->getParentNode()); + CPPUNIT_ASSERT_EQUAL(u""_ustr, xText->getPrefix()); + CPPUNIT_ASSERT(!xText->getPreviousSibling()); + CPPUNIT_ASSERT(!xText->hasAttributes()); + CPPUNIT_ASSERT(!xText->hasChildNodes()); + CPPUNIT_ASSERT(!xText->isSupported(u"frobnication"_ustr, u"v99.33.0.0.0.1"_ustr)); + + xText->normalize(); + xText->setNodeValue(u"42"_ustr); + CPPUNIT_ASSERT_EQUAL(u"42"_ustr, xText->getNodeValue()); + + try + { + xText->setPrefix(u"foo"_ustr); + CPPUNIT_FAIL("XText.setPrefix()"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_NO_MODIFICATION_ALLOWED_ERR, e.Code); + } + + uno::Reference<xml::dom::XText> xText2 = xDocument->createTextNode(u"foobar"_ustr); + uno::Reference<xml::dom::XText> xText3 = xDocument->createTextNode(u"foobar"_ustr); + + try + { + xText->appendChild(nullptr); + CPPUNIT_FAIL("XText.appendChild(null)"); + } + catch (css::uno::RuntimeException&) + { + } + + try + { + xText->appendChild(xText2); + CPPUNIT_FAIL("XText.appendChild(xText2)"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_HIERARCHY_REQUEST_ERR, e.Code); + } + + try + { + xText->insertBefore(xText2, xText3); + CPPUNIT_FAIL("XText.insertBefore"); + } + catch (xml::dom::DOMException&) + { + } + + try + { + xText->replaceChild(xText2, xText3); + CPPUNIT_FAIL("XText.replaceChild"); + } + catch (xml::dom::DOMException&) + { + } + + try + { + xText->removeChild(nullptr); + CPPUNIT_FAIL("XText.removeChild(null)"); + } + catch (css::uno::RuntimeException&) + { + } + + try + { + xText->removeChild(xText2); + CPPUNIT_FAIL("XText.removeChild"); + } + catch (xml::dom::DOMException& e) + { + CPPUNIT_ASSERT_EQUAL(xml::dom::DOMExceptionType::DOMExceptionType_HIERARCHY_REQUEST_ERR, e.Code); + } + + } + void testXProcessingInstruction() { Reference< xml::dom::XDocument > xDocument = mxDomBuilder->newDocument(); @@ -866,6 +1045,7 @@ public: CPPUNIT_TEST(testXDocumentBuilder); CPPUNIT_TEST(testXXPathAPI); CPPUNIT_TEST(testXXPathObject); + CPPUNIT_TEST(testXText); CPPUNIT_TEST(testXProcessingInstruction); CPPUNIT_TEST(testXNamedNodeMap_AttributesMap); CPPUNIT_TEST(testXNodeList_ChildList); commit c69ce3a0c32374c2f328583be2c81674a208256a Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Wed Oct 23 16:03:05 2024 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Wed Oct 23 20:26:03 2024 +0200 tdf#163486: PVS: check pTabWinTmp V595 The 'pTabWinTmp' pointer was utilized before it was verified against nullptr. Check lines: 496, 499. Change-Id: Ie263524d6a06adaf7f99555d7aa872e815cab96c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175504 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> Tested-by: Jenkins diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx b/dbaccess/source/ui/querydesign/QueryTableView.cxx index f48dc17c7a3a..2ca8c71b837f 100644 --- a/dbaccess/source/ui/querydesign/QueryTableView.cxx +++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx @@ -493,10 +493,10 @@ void OQueryTableView::AddTabWin(const OUString& _rComposedName, const OUString& if ( pTabWinTmp == pNewTabWin ) continue; + assert(pTabWinTmp && "TableWindow is null!"); if ( pTabWinTmp->GetData()->isQuery() ) continue; - assert(pTabWinTmp && "TableWindow is null!"); Reference< XPropertySet > xFKKey = getKeyReferencedTo( pTabWinTmp->GetData()->getKeys(), pNewTabWin->GetComposedName() ); if ( !xFKKey.is() ) continue;