summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2023-03-24 11:01:56 +0300
committerMiklos Vajna <vmiklos@collabora.com>2023-04-04 10:55:58 +0200
commit364051901c555d9609ea5f9e9427f3098a2f0bab (patch)
tree1326e5372ff12a832b9a22a4c7911ff30eed4886 /sw
parent184a805bc50c593cde950fb0b3253665cc748999 (diff)
tdf#154360: use TOC(N) styles in DOCX as the source of ToC tab stop position
Change-Id: Iab8001f8be8a8af437e8898079d55ff57dd6fa3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149494 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149548 Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/ooxmlimport/ooxmlimport2.cxx31
1 files changed, 19 insertions, 12 deletions
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
index 406812ab7fa5..04d23a4c1bc0 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
@@ -1035,39 +1035,46 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf154319)
CPPUNIT_ASSERT_EQUAL(sal_Int32(11), xLevelFormats->getCount());
const auto checkPropVal = [](const auto& expected, const css::beans::PropertyValues& entry,
- const OUString& name) {
+ const OUString& name, sal_Int32 level) {
auto it
= std::find_if(entry.begin(), entry.end(),
[&name](const css::beans::PropertyValue& p) { return p.Name == name; });
- OString msg = "Property: " + name.toUtf8();
+ OString msg = "Property: " + name.toUtf8() + ", level: " + OString::number(level);
CPPUNIT_ASSERT_MESSAGE(msg.getStr(), it != entry.end());
CPPUNIT_ASSERT_EQUAL_MESSAGE(msg.getStr(), css::uno::Any(expected), it->Value);
};
+ // tdf#154360: check tab stops between the number and the entry text
+ constexpr sal_Int32 levelTabStops[]
+ = { 776, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270 };
+
//start with level 1, 0 is the header level
for (sal_Int32 nLevel = 1; nLevel < xLevelFormats->getCount(); ++nLevel)
{
css::uno::Sequence<css::beans::PropertyValues> aLevel;
xLevelFormats->getByIndex(nLevel) >>= aLevel;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(8), aLevel.getLength());
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(9), aLevel.getLength());
+
+ checkPropVal(OUString("TokenHyperlinkStart"), aLevel[0], "TokenType", nLevel);
- checkPropVal(OUString("TokenHyperlinkStart"), aLevel[0], "TokenType");
+ checkPropVal(OUString("TokenEntryNumber"), aLevel[1], "TokenType", nLevel);
- checkPropVal(OUString("TokenEntryNumber"), aLevel[1], "TokenType");
+ checkPropVal(OUString("TokenTabStop"), aLevel[2], "TokenType", nLevel);
+ checkPropVal(levelTabStops[nLevel - 1], aLevel[2], "TabStopPosition", nLevel);
- checkPropVal(OUString("TokenEntryText"), aLevel[2], "TokenType");
+ checkPropVal(OUString("TokenEntryText"), aLevel[3], "TokenType", nLevel);
- checkPropVal(OUString("TokenTabStop"), aLevel[3], "TokenType");
+ checkPropVal(OUString("TokenTabStop"), aLevel[4], "TokenType", nLevel);
- checkPropVal(OUString("TokenChapterInfo"), aLevel[4], "TokenType");
+ checkPropVal(OUString("TokenChapterInfo"), aLevel[5], "TokenType", nLevel);
- checkPropVal(OUString("TokenText"), aLevel[5], "TokenType");
- checkPropVal(OUString("\""), aLevel[5], "Text");
+ checkPropVal(OUString("TokenText"), aLevel[6], "TokenType", nLevel);
+ checkPropVal(OUString("\""), aLevel[6], "Text", nLevel);
- checkPropVal(OUString("TokenPageNumber"), aLevel[6], "TokenType");
+ checkPropVal(OUString("TokenPageNumber"), aLevel[7], "TokenType", nLevel);
- checkPropVal(OUString("TokenHyperlinkEnd"), aLevel[7], "TokenType");
+ checkPropVal(OUString("TokenHyperlinkEnd"), aLevel[8], "TokenType", nLevel);
}
}