prelim tdf#136472: adjust implementation specific unit tests

Using a "First Page" style before a "Default Page Style"
in order to apply a different header to the first page
is an implementation specific detail.
As of LO 4.0/4.1, we have the ability to set a different
first-header (different even-odd were already available).

So remove any dependency on "First Page".

4-inheritFirstHeader.docx: just test the actual layout
8-n777337.docx: margins must match both page styles.
   -First and Standard are defined from the same settings
8-n779642.docx: reverting the patch breaks unit test: GOOD
8-n780843.docx: export of footer works now - so test that.
   -PROOF: CONTINUOUS BREAK - SHOULDN"T SHOW FIRST PAGE - so turn off.
9-headerfooter-link-to-prev.docx: a real thorn test.
   -happy it still passes after making this logical-seeming change.
15-tdf135216_evenOddFooter.odt: is first of odd in ODT.
   -when first is shared, it still works to check first.

Change-Id: Ice54ef9626f851f9154f3c274ffbe39455538589
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124591
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
index 9decd69..d5da188 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
@@ -474,7 +474,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf135216_evenOddFooter, "tdf135216_evenOddFooter.o
    xCursor->jumpToNextPage();
    pageStyleName = getProperty<OUString>(xCursor, "PageStyleName");
    xPageStyle.set(xPageStyles->getByName(pageStyleName), uno::UNO_QUERY);
    xFooter.set(getProperty<uno::Reference<text::XText>>(xPageStyle, "FooterTextRight"));
    xFooter.set(getProperty<uno::Reference<text::XText>>(xPageStyle, "FooterTextFirst"));
    CPPUNIT_ASSERT_EQUAL(OUString("odd page - first footer"), xFooter->getString());

    xCursor->jumpToNextPage();
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 5cd8f4a..5858eec 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -1187,24 +1187,11 @@ DECLARE_OOXMLEXPORT_TEST(testTdf95367_inheritFollowStyle, "tdf95367_inheritFollo
DECLARE_OOXMLEXPORT_TEST(testInheritFirstHeader,"inheritFirstHeader.docx")
{
// First page headers always link to last used first header, never to a follow header
    uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
    uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
    uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);

    xCursor->jumpToLastPage();
    OUString sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
    uno::Reference<text::XText> xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
    CPPUNIT_ASSERT_EQUAL( OUString("Last Header"), xHeaderText->getString() );

    xCursor->jumpToPreviousPage();
    sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
    xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
    CPPUNIT_ASSERT_EQUAL( OUString("First Header"), xHeaderText->getString() );

    xCursor->jumpToPreviousPage();
    sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
    xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
    CPPUNIT_ASSERT_EQUAL( OUString("Follow Header"), xHeaderText->getString() );
    CPPUNIT_ASSERT_EQUAL(OUString("First Header"), parseDump("/root/page[1]/header/txt/text()"));
    CPPUNIT_ASSERT_EQUAL(OUString("Follow Header"), parseDump("/root/page[2]/header/txt/text()"));
    CPPUNIT_ASSERT_EQUAL(OUString("Follow Header"), parseDump("/root/page[3]/header/txt/text()"));
    CPPUNIT_ASSERT_EQUAL(OUString("First Header"), parseDump("/root/page[4]/header/txt/text()"));
    CPPUNIT_ASSERT_EQUAL(OUString("Last Header"), parseDump("/root/page[5]/header/txt/text()"));
}

#if HAVE_MORE_FONTS
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
index 1ac07aa..59d713f 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
@@ -419,14 +419,8 @@ DECLARE_OOXMLEXPORT_TEST(testTdf59699, "tdf59699.docx")

DECLARE_OOXMLEXPORT_TEST(testN777337, "n777337.docx")
{
    /*
     * The problem was that the top and bottom margin on the first page was only 0.1cm instead of 1.7cm.
     *
     * oFirst = ThisComponent.StyleFamilies.PageStyles.getByName("First Page")
     * xray oFirst.TopMargin
     * xray oFirst.BottomMargin
     */
    uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("First Page"), uno::UNO_QUERY);
     // The problem was that the top and bottom margin on the first page was only 0.1cm instead of 1.7cm.
    uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("Standard"), uno::UNO_QUERY);
    CPPUNIT_ASSERT_EQUAL(sal_Int32(1702), getProperty<sal_Int32>(xPropertySet, "TopMargin"));
    CPPUNIT_ASSERT_EQUAL(sal_Int32(1702), getProperty<sal_Int32>(xPropertySet, "BottomMargin"));
}
@@ -586,19 +580,7 @@ DECLARE_OOXMLEXPORT_TEST(testN780853, "n780853.docx")

DECLARE_OOXMLEXPORT_TEST(testN780843, "n780843.docx")
{
    uno::Reference< text::XTextRange > xPara = getParagraph(1);
    OUString aStyleName = getProperty<OUString>(xPara, "PageStyleName");
    // what happens on export here is that the "Default Style" isn't actually
    // used on page 2, because of the hard page break with style "Converted2"
    // and therefore SwPageDesc::IsFollowNextPageOfNode() returns false and
    // "w:titlepg" element is not written
    // (the export result is wrong with or without w:titlepg, because the footer
    // on the 2nd page should be the text "shown footer")
    if (mbExported)
        CPPUNIT_ASSERT_EQUAL(OUString("Standard"), aStyleName);
    else
        CPPUNIT_ASSERT_EQUAL(OUString("First Page"), aStyleName);

    CPPUNIT_ASSERT_EQUAL(OUString("shown footer"), parseDump("/root/page[2]/footer/txt/text()"));

    //tdf64372 this document should only have one page break (2 pages, not 3)
    CPPUNIT_ASSERT_EQUAL(2, getPages());
@@ -786,7 +768,10 @@ DECLARE_OOXMLEXPORT_TEST(testN779642, "n779642.docx")
    // tdf#106572 - perhaps not the best test to hijack since this file
    // produces an error in Word, but it nicely matches danger points,
    // and has a different first footer, so nice visual confirmation.
    CPPUNIT_ASSERT_EQUAL(OUString("First Page"), getProperty<OUString>(getParagraphOrTable(1), "PageDescName"));
    discardDumpedLayout();
    xmlDocUniquePtr pXmlDoc = parseLayoutDump();
    // There is no footer text on the first page.
    assertXPath(pXmlDoc, "/root/page[1]/footer/txt", 0);
}

DECLARE_OOXMLEXPORT_TEST(testTbLrHeight, "tblr-height.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
index 57de8c5..4416edc 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
@@ -586,9 +586,9 @@ DECLARE_SW_EXPORT_TEST(testHFLinkToPrev, "headerfooter-link-to-prev.docx", nullp
        xPageStyles->getByName(pageStyleName), uno::UNO_QUERY);
    // check page 1 header & footer text
    CPPUNIT_ASSERT_EQUAL(OUString("First page header for all sections"),
        getHFText(xPageStyle, "HeaderText"));
        getHFText(xPageStyle, "HeaderTextFirst"));
    CPPUNIT_ASSERT_EQUAL(OUString("First page footer for section 1 only"),
        getHFText(xPageStyle, "FooterText"));
        getHFText(xPageStyle, "FooterTextFirst"));

    // get LO page style for page 2, corresponding to docx section 1
    xCursor->jumpToPage(2);
@@ -610,9 +610,9 @@ DECLARE_SW_EXPORT_TEST(testHFLinkToPrev, "headerfooter-link-to-prev.docx", nullp
    xPageStyle.set( xPageStyles->getByName(pageStyleName), uno::UNO_QUERY );
    // check header & footer text
    CPPUNIT_ASSERT_EQUAL(OUString("First page header for all sections"),
        getHFText(xPageStyle, "HeaderText"));
        getHFText(xPageStyle, "HeaderTextFirst"));
    CPPUNIT_ASSERT_EQUAL(OUString("First page footer for sections 2 and 3 only"),
        getHFText(xPageStyle, "FooterText"));
        getHFText(xPageStyle, "FooterTextFirst"));

    // get LO page style for page 5, corresponding to docx section 2
    xCursor->jumpToPage(5);
@@ -634,9 +634,9 @@ DECLARE_SW_EXPORT_TEST(testHFLinkToPrev, "headerfooter-link-to-prev.docx", nullp
    xPageStyle.set( xPageStyles->getByName(pageStyleName), uno::UNO_QUERY );
    // check header & footer text
    CPPUNIT_ASSERT_EQUAL(OUString("First page header for all sections"),
        getHFText(xPageStyle, "HeaderText"));
        getHFText(xPageStyle, "HeaderTextFirst"));
    CPPUNIT_ASSERT_EQUAL(OUString("First page footer for sections 2 and 3 only"),
        getHFText(xPageStyle, "FooterText"));
        getHFText(xPageStyle, "FooterTextFirst"));

    // get LO page style for page 8, corresponding to docx section 3
    xCursor->jumpToPage(8);