summaryrefslogtreecommitdiff
path: root/sw/qa/core/swdoc-test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/qa/core/swdoc-test.cxx')
-rw-r--r--sw/qa/core/swdoc-test.cxx34
1 files changed, 33 insertions, 1 deletions
diff --git a/sw/qa/core/swdoc-test.cxx b/sw/qa/core/swdoc-test.cxx
index f8c1317fead0..49b0930189c2 100644
--- a/sw/qa/core/swdoc-test.cxx
+++ b/sw/qa/core/swdoc-test.cxx
@@ -58,6 +58,8 @@
#include "swscanner.hxx"
#include "swmodule.hxx"
#include "swtypes.hxx"
+#include "fmtftn.hxx"
+#include "fmtrfmrk.hxx"
SO2_DECL_REF(SwDocShell)
SO2_IMPL_REF(SwDocShell)
@@ -222,7 +224,7 @@ void SwDocTest::testSwScanner()
SwNodeIndex aIdx(m_pDoc->GetNodes().GetEndOfContent(), -1);
SwPaM aPaM(aIdx);
- const SwTxtNode* pTxtNode = aPaM.GetNode()->GetTxtNode();
+ SwTxtNode* pTxtNode = aPaM.GetNode()->GetTxtNode();
CPPUNIT_ASSERT_MESSAGE("Has Text Node", pTxtNode);
@@ -336,6 +338,36 @@ void SwDocTest::testSwScanner()
CPPUNIT_ASSERT_MESSAGE("Should be 5", aDocStat.nWord == 5);
}
+ //See https://bugs.freedesktop.org/show_bug.cgi?id=49629
+ {
+ SwDocStat aDocStat;
+
+ m_pDoc->AppendTxtNode(*aPaM.GetPoint());
+ m_pDoc->InsertString(aPaM, rtl::OUString("Apple"));
+ pTxtNode = aPaM.GetNode()->GetTxtNode();
+ xub_StrLen nPos = aPaM.GetPoint()->nContent.GetIndex();
+ SwFmtFtn aFtn;
+ aFtn.SetNumStr(rtl::OUString("banana"));
+ SwTxtAttr* pTA = pTxtNode->InsertItem(aFtn, nPos, nPos);
+ CPPUNIT_ASSERT(pTA);
+ CPPUNIT_ASSERT(pTxtNode->Len() == 6); //Apple + 0x02
+ pTxtNode->CountWords(aDocStat, 0, pTxtNode->Len());
+ CPPUNIT_ASSERT(aDocStat.nWord == 1);
+ CPPUNIT_ASSERT_MESSAGE("footnote should be expanded", aDocStat.nChar == 11);
+
+ xub_StrLen nNextPos = aPaM.GetPoint()->nContent.GetIndex();
+ CPPUNIT_ASSERT(nNextPos == nPos+1);
+ SwFmtRefMark aRef(rtl::OUString("refmark"));
+ pTA = pTxtNode->InsertItem(aRef, nNextPos, nNextPos);
+ CPPUNIT_ASSERT(pTA);
+
+ aDocStat.Reset();
+ pTxtNode->SetWordCountDirty(true);
+ pTxtNode->CountWords(aDocStat, 0, pTxtNode->Len());
+ CPPUNIT_ASSERT(aDocStat.nWord == 1);
+ CPPUNIT_ASSERT_MESSAGE("refmark anchor should not be counted", aDocStat.nChar == 11);
+ }
+
//See https://bugs.freedesktop.org/show_bug.cgi?id=46757
{
SwDocStat aDocStat;