diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2024-04-19 10:31:39 +0500 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2024-04-19 08:59:17 +0200 |
commit | 2c2c155b37750618784cae410f50b75d503e506d (patch) | |
tree | 479993e2782c74862a815e3c2c748a60da83f40a | |
parent | 495dddd2f57feaa94447a632b8af317932d70f9d (diff) |
Add a unit test for commit 3f0220f18a66630e06e3c128980f21a5722f49ca
(Handle empty range properly, 2024-04-18)
Change-Id: Ifea60ace8ff864ef092e6a62177d5926ceb60de3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166278
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r-- | sw/qa/extras/ww8export/data/empty_group.docx | bin | 0 -> 1414 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export4.cxx | 24 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sw/qa/extras/ww8export/data/empty_group.docx b/sw/qa/extras/ww8export/data/empty_group.docx Binary files differnew file mode 100644 index 000000000000..a3454746c5e0 --- /dev/null +++ b/sw/qa/extras/ww8export/data/empty_group.docx diff --git a/sw/qa/extras/ww8export/ww8export4.cxx b/sw/qa/extras/ww8export/ww8export4.cxx index 7ab6f76ec3a6..d3bc9c4071d9 100644 --- a/sw/qa/extras/ww8export/ww8export4.cxx +++ b/sw/qa/extras/ww8export/ww8export4.cxx @@ -20,8 +20,11 @@ #include <comphelper/sequenceashashmap.hxx> #include <o3tl/string_view.hxx> +#include <svx/svdpage.hxx> #include <docsh.hxx> +#include <drawdoc.hxx> +#include <IDocumentDrawModelAccess.hxx> #include <IDocumentMarkAccess.hxx> #include <IDocumentSettingAccess.hxx> #include <unotxdoc.hxx> @@ -294,6 +297,27 @@ DECLARE_WW8EXPORT_TEST(testTdf104704_mangledFooter, "tdf104704_mangledFooter.odt CPPUNIT_ASSERT_EQUAL(2, getPages()); } +CPPUNIT_TEST_FIXTURE(Test, testEmptyGroup) +{ + // Given a document with an empty group + createSwDoc("empty_group.docx"); + + CPPUNIT_ASSERT_EQUAL(1, getPages()); + CPPUNIT_ASSERT_EQUAL(1, getShapes()); + SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get()); + CPPUNIT_ASSERT(pTextDoc); + SwDoc* pDoc = pTextDoc->GetDocShell()->GetDoc(); + SdrPage* pPage = pDoc->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0); + SdrObject* pObject = pPage->GetObj(0); + + CPPUNIT_ASSERT_EQUAL(u"Empty group"_ustr, pObject->GetName()); + CPPUNIT_ASSERT(pObject->IsGroupObject()); + CPPUNIT_ASSERT_EQUAL(size_t(0), pObject->GetSubList()->GetObjCount()); + + // it must not assert/crash on save + saveAndReload(mpFilter); +} + } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); |