diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2023-03-24 11:01:56 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-04-04 10:55:58 +0200 |
commit | 364051901c555d9609ea5f9e9427f3098a2f0bab (patch) | |
tree | 1326e5372ff12a832b9a22a4c7911ff30eed4886 /sw | |
parent | 184a805bc50c593cde950fb0b3253665cc748999 (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.cxx | 31 |
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); } } |