From 6589ba5e8aa6b8c7829923411f52bbd2230baaa0 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Fri, 12 Jun 2026 18:05:42 +0200 Subject: [PATCH] sw: improve test coverage of first-page header/footer Signed-off-by: Michael Stahl Change-Id: I708f06ee82a1db3cb8a43b16c03506fa2305a803 Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4399 Reviewed-by: Miklos Vajna Tested-by: Jenkins CPCI (cherry picked from commit d67de2f005ac782a0c2413bc151d1d76fc0415c2) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206704 Reviewed-by: Xisco Fauli Tested-by: Jenkins --- sw/inc/hintids.hxx | 2 ++ .../ooxmlexport/data/firstheadernofooter.docx | Bin 0 -> 15621 bytes sw/qa/extras/ooxmlexport/ooxmlexport11.cxx | 10 ++++++++ sw/qa/writerfilter/dmapper/DomainMapper.cxx | 22 ++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 sw/qa/extras/ooxmlexport/data/firstheadernofooter.docx diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx index c86174d48112..1e7c8e256c7d 100644 --- a/sw/inc/hintids.hxx +++ b/sw/inc/hintids.hxx @@ -402,7 +402,9 @@ inline constexpr TypedWhichId RES_RTL_GUTTER(RES_FRMATR_BEGIN + 51) inline constexpr TypedWhichId RES_DECORATIVE(RES_FRMATR_BEGIN + 52); inline constexpr TypedWhichId RES_WRAP_TEXT_AT_FLY_START(RES_FRMATR_BEGIN + 53); +/// will be used instead of header's SID_ATTR_PAGE_SIZE/RES_UL_SPACE, if there is no header inline constexpr TypedWhichId RES_FRMATR_PAGE_MIN_TOP(RES_FRMATR_BEGIN + 54); +/// will be used instead of footer's SID_ATTR_PAGE_SIZE/RES_UL_SPACE, if there is no footer inline constexpr TypedWhichId RES_FRMATR_PAGE_MIN_BOTTOM(RES_FRMATR_BEGIN + 55); inline constexpr sal_uInt16 RES_FRMATR_END(RES_FRMATR_BEGIN + 56); diff --git a/sw/qa/extras/ooxmlexport/data/firstheadernofooter.docx b/sw/qa/extras/ooxmlexport/data/firstheadernofooter.docx new file mode 100644 index 0000000000000000000000000000000000000000..40e5cae3d385162378ef003983c5474cba323be3 GIT binary patch literal 15621 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, u"FirstIsShared"_ustr)); CPPUNIT_ASSERT_EQUAL(true, getProperty(xPageStyle, u"HeaderNoFirst"_ustr)); + + SwDocShell* pDocShell = getSwDocShell(); + SwDoc* pDoc = pDocShell->GetDoc(); + IDocumentLayoutAccess& rIDLA = pDoc->getIDocumentLayoutAccess(); + SwRootFrame* pLayout = rIDLA.GetCurrentLayout(); + SwPageFrame* pLastPage = pLayout->GetLastPage(); + + CPPUNIT_ASSERT(pLastPage->GetLower()->IsHeaderFrame()); + CPPUNIT_ASSERT(pLastPage->GetLower()->GetNext()->GetNext()->IsFooterFrame()); + CPPUNIT_ASSERT(!pLastPage->GetPrev()->GetLower()->IsHeaderFrame()); + CPPUNIT_ASSERT(!pLastPage->GetPrev()->GetLower()->GetNext()); // no footer } CPPUNIT_TEST_FIXTURE(Test, emptyHeaderFirstPageDocx) @@ -313,6 +324,17 @@ CPPUNIT_TEST_FIXTURE(Test, emptyHeaderFirstPageDocx) uno::UNO_QUERY); CPPUNIT_ASSERT_EQUAL(false, getProperty(xPageStyle, u"FirstIsShared"_ustr)); CPPUNIT_ASSERT_EQUAL(true, getProperty(xPageStyle, u"HeaderNoFirst"_ustr)); + + SwDocShell* pDocShell = getSwDocShell(); + SwDoc* pDoc = pDocShell->GetDoc(); + IDocumentLayoutAccess& rIDLA = pDoc->getIDocumentLayoutAccess(); + SwRootFrame* pLayout = rIDLA.GetCurrentLayout(); + SwPageFrame* pLastPage = pLayout->GetLastPage(); + + CPPUNIT_ASSERT(pLastPage->GetLower()->IsHeaderFrame()); + CPPUNIT_ASSERT(pLastPage->GetLower()->GetNext()->GetNext()->IsFooterFrame()); + CPPUNIT_ASSERT(!pLastPage->GetPrev()->GetLower()->IsHeaderFrame()); + CPPUNIT_ASSERT(!pLastPage->GetPrev()->GetLower()->GetNext()); // no footer } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */