sw/CppunitTest_sw_mailmerge.mk           |    1 +
 sw/qa/extras/mailmerge/data/tdf62364.odt |binary
 sw/qa/extras/mailmerge/mailmerge.cxx     |   28 ++++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)

New commits:
commit 182db646cfef44d26a4ced4bc745987e27900eb2
Author:     Serge Krot <serge.k...@cib.de>
AuthorDate: Tue Dec 11 12:20:12 2018 +0100
Commit:     Thorsten Behrens <thorsten.behr...@cib.de>
CommitDate: Tue Dec 11 15:13:12 2018 +0100

    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.behr...@cib.de>
    Tested-by: Thorsten Behrens <thorsten.behr...@cib.de>

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
Binary files /dev/null and b/sw/qa/extras/mailmerge/data/tdf62364.odt 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: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to