[Libreoffice-commits] core.git: sc/qa
Katarina Behrens
Katarina.Behrens at cib.de
Thu Jan 7 03:18:18 PST 2016
sc/qa/unit/subsequent_export-test.cxx | 77 ++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
New commits:
commit 90e07dd6f5d64a0d0041361c1592a6cd93ff2ac0
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Mon Dec 14 18:50:03 2015 +0100
tdf#89999 bugfix test
Change-Id: Iaaf7f6b4bdcadb71e805d7d6ac10f700e3fa5846
Reviewed-on: https://gerrit.libreoffice.org/20707
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 475570e..73f26c2 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -54,6 +54,7 @@
#include <editeng/section.hxx>
#include <editeng/crossedoutitem.hxx>
#include <editeng/borderline.hxx>
+#include <editeng/escapementitem.hxx>
#include <editeng/fontitem.hxx>
#include <editeng/udlnitem.hxx>
#include <formula/grammar.hxx>
@@ -571,6 +572,19 @@ void setFont( ScFieldEditEngine& rEE, sal_Int32 nPara, sal_Int32 nStart, sal_Int
rEE.QuickSetAttribs(aItemSet, aSel);
}
+void setEscapement( ScFieldEditEngine& rEE, sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, short nEsc, sal_uInt8 nRelSize )
+{
+ ESelection aSel;
+ aSel.nStartPara = aSel.nEndPara = nPara;
+ aSel.nStartPos = nStart;
+ aSel.nEndPos = nEnd;
+
+ SfxItemSet aItemSet = rEE.GetEmptyItemSet();
+ SvxEscapementItem aItem(nEsc, nRelSize, EE_CHAR_ESCAPEMENT);
+ aItemSet.Put(aItem);
+ rEE.QuickSetAttribs(aItemSet, aSel);
+}
+
}
void ScExportTest::testNamedRangeBugfdo62729()
@@ -704,6 +718,24 @@ void ScExportTest::testRichTextExportODS()
return false;
}
+ static bool isEscapement(const editeng::Section& rAttr, short nEsc, sal_uInt8 nRelSize)
+ {
+ if (rAttr.maAttributes.empty())
+ return false;
+
+ std::vector<const SfxPoolItem*>::const_iterator it = rAttr.maAttributes.begin(), itEnd = rAttr.maAttributes.end();
+ for (; it != itEnd; ++it)
+ {
+ const SfxPoolItem* p = *it;
+ if (p->Which() != EE_CHAR_ESCAPEMENT)
+ continue;
+
+ const SvxEscapementItem* pItem = static_cast<const SvxEscapementItem*>(p);
+ return ((pItem->GetEsc() == nEsc) && (pItem->GetProp() == nRelSize));
+ }
+ return false;
+ }
+
bool checkB2(const EditTextObject* pText) const
{
if (!pText)
@@ -898,6 +930,42 @@ void ScExportTest::testRichTextExportODS()
return true;
}
+ bool checkB9(const EditTextObject* pText) const
+ {
+ if (!pText)
+ return false;
+
+ if (pText->GetParagraphCount() != 1)
+ return false;
+
+ if (pText->GetText(0) != "Sub and Super")
+ return false;
+
+ std::vector<editeng::Section> aSecAttrs;
+ pText->GetAllSections(aSecAttrs);
+ if (aSecAttrs.size() != 3)
+ return false;
+
+ // superscript
+ const editeng::Section* pAttr = &aSecAttrs[0];
+ if (pAttr->mnParagraph != 0 ||pAttr->mnStart != 0 || pAttr->mnEnd != 3)
+ return false;
+
+ if (pAttr->maAttributes.size() != 1 || !isEscapement(*pAttr, 32, 64))
+ return false;
+
+ // subscript
+ pAttr = &aSecAttrs[2];
+ if (pAttr->mnParagraph != 0 ||pAttr->mnStart != 8 || pAttr->mnEnd != 13)
+ return false;
+
+ if (pAttr->maAttributes.size() != 1 || !isEscapement(*pAttr, -32, 66))
+ return false;
+
+ return true;
+ }
+
+
} aCheckFunc;
// Start with an empty document, put one edit text cell, and make sure it
@@ -989,6 +1057,15 @@ void ScExportTest::testRichTextExportODS()
rDoc3.SetEditText(ScAddress(1,7,0), pEE->CreateTextObject());
pEditText = rDoc3.GetEditText(ScAddress(1,7,0));
CPPUNIT_ASSERT_MESSAGE("Incorrect B8 value.", aCheckFunc.checkB8(pEditText));
+
+ pEE->Clear();
+ pEE->SetText("Sub and Super");
+ setEscapement(*pEE, 0, 0, 3, 32, 64);
+ setEscapement(*pEE, 0, 8, 13, -32, 66);
+ rDoc3.SetEditText(ScAddress(1,8,0), pEE->CreateTextObject());
+ pEditText = rDoc3.GetEditText(ScAddress(1,8,0));
+ CPPUNIT_ASSERT_MESSAGE("Incorrect B9 value.", aCheckFunc.checkB9(pEditText));
+
}
// Reload the doc again, and check the content of B2, B4, B6 and B7.
More information about the Libreoffice-commits
mailing list