summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2024-04-19 10:31:39 +0500
committerMike Kaganski <mike.kaganski@collabora.com>2024-04-19 08:59:17 +0200
commit2c2c155b37750618784cae410f50b75d503e506d (patch)
tree479993e2782c74862a815e3c2c748a60da83f40a
parent495dddd2f57feaa94447a632b8af317932d70f9d (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.docxbin0 -> 1414 bytes
-rw-r--r--sw/qa/extras/ww8export/ww8export4.cxx24
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
new file mode 100644
index 000000000000..a3454746c5e0
--- /dev/null
+++ b/sw/qa/extras/ww8export/data/empty_group.docx
Binary files differ
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();