summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerge Krot <Serge.Krot@cib.de>2018-12-11 12:20:12 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-12-11 15:13:12 +0100
commit182db646cfef44d26a4ced4bc745987e27900eb2 (patch)
treed207e4672536ed9c7cedda1f6a0813858a8b08f4
parente12308fe13aa6edd88a5ae297e55b07608287b47 (diff)
tdf#62364: mailmerge: new unit test
Problem was: during mailmerge, all paragraphs became list nodes when the last node in original document (template) was list node. Change-Id: I8b457c5ef04ab6569e7860deb1f5b3d73dadacd0 Reviewed-on: https://gerrit.libreoffice.org/64955 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--sw/CppunitTest_sw_mailmerge.mk1
-rw-r--r--sw/qa/extras/mailmerge/data/tdf62364.odtbin0 -> 9832 bytes
-rw-r--r--sw/qa/extras/mailmerge/mailmerge.cxx28
3 files changed, 29 insertions, 0 deletions
diff --git a/sw/CppunitTest_sw_mailmerge.mk b/sw/CppunitTest_sw_mailmerge.mk
index 5f943f74f364..6d9df162df5c 100644
--- a/sw/CppunitTest_sw_mailmerge.mk
+++ b/sw/CppunitTest_sw_mailmerge.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_mailmerge, \
cppuhelper \
sal \
sfx \
+ svl \
sw \
test \
tl \
diff --git a/sw/qa/extras/mailmerge/data/tdf62364.odt b/sw/qa/extras/mailmerge/data/tdf62364.odt
new file mode 100644
index 000000000000..70def3730e26
--- /dev/null
+++ b/sw/qa/extras/mailmerge/data/tdf62364.odt
Binary files differ
diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx
index c1d78685ff24..ebcea54e764d 100644
--- a/sw/qa/extras/mailmerge/mailmerge.cxx
+++ b/sw/qa/extras/mailmerge/mailmerge.cxx
@@ -900,5 +900,33 @@ DECLARE_SHELL_MAILMERGE_TEST(testTdf118845, "tdf118845.fodt", "4_v01.ods", "Tabe
CPPUNIT_ASSERT_EQUAL(OUString(""), xParagraph->getString());
}
+DECLARE_SHELL_MAILMERGE_TEST(testTdf62364, "tdf62364.odt", "10-testing-addresses.ods", "testing-addresses")
+{
+ // prepare unit test and run
+ executeMailMerge();
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxMMComponent.get());
+ CPPUNIT_ASSERT(pTextDoc);
+ CPPUNIT_ASSERT_EQUAL( sal_uInt16( 19 ), pTextDoc->GetDocShell()->GetWrtShell()->GetPhyPageNum()); // 10 pages, but each sub-document starts on odd page number
+
+ // check: each page (one page is one sub doc) has 4 paragraphs:
+ // - 1st and 2nd are regular paragraphs
+ // - 3rd and 4th are inside list
+ const bool nodeInList[4] = { false, false, true, true };
+
+ const auto & rNodes = pTextDoc->GetDocShell()->GetDoc()->GetNodes();
+ for (int pageIndex=0; pageIndex<10; pageIndex++)
+ {
+ for (int nodeIndex = 0; nodeIndex<4; nodeIndex++)
+ {
+ const SwNodePtr aNode = rNodes[9 + pageIndex * 4 + nodeIndex];
+ CPPUNIT_ASSERT_EQUAL(true, aNode->IsTextNode());
+
+ const SwTextNode* pTextNode = aNode->GetTextNode();
+ CPPUNIT_ASSERT(pTextNode);
+ CPPUNIT_ASSERT_EQUAL(nodeInList[nodeIndex], pTextNode->GetSwAttrSet().HasItem(RES_PARATR_LIST_ID));
+ }
+ }
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */