tdf#122878: enable wrap for flys in footer

This patch removes the check for a footer node,
intoduced by
23f698ecee033612ac3a9f5cfd7674b08bb3ccd1
preserving the behaviour for the connected bug reports
i13832 and i24135.

Without this check, the wraping becomes enabled for footer
objects, too.

With this enhencement, the commits
7df33caac85ac90c26e97dedbc201f46dc9e4cb4
d3db6ff43a531ecf1afc858a0a8832353d091644
are directly affected and therefore the unit test is edited.

Change-Id: I093add9e251ac97859a66cb8b8563010ef734c2d
Reviewed-on: https://gerrit.libreoffice.org/67069
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
diff --git a/sw/qa/extras/layout/data/tdf116989.docx b/sw/qa/extras/layout/data/tdf116989.docx
deleted file mode 100644
index 498b60d..0000000
--- a/sw/qa/extras/layout/data/tdf116989.docx
+++ /dev/null
Binary files differ
diff --git a/sw/qa/extras/layout/data/tdf122878.docx b/sw/qa/extras/layout/data/tdf122878.docx
new file mode 100644
index 0000000..f42e92e
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf122878.docx
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 99ca366..83af848 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -64,7 +64,7 @@
    void testTdf120287();
    void testTdf120287b();
    void testTdf120287c();
    void testTdf116989();
    void testTdf122878();
    void testTdf115094();

    CPPUNIT_TEST_SUITE(SwLayoutWriter);
@@ -103,7 +103,7 @@
    CPPUNIT_TEST(testTdf120287);
    CPPUNIT_TEST(testTdf120287b);
    CPPUNIT_TEST(testTdf120287c);
    CPPUNIT_TEST(testTdf116989);
    CPPUNIT_TEST(testTdf122878);
    CPPUNIT_TEST(testTdf115094);
    CPPUNIT_TEST_SUITE_END();

@@ -2718,17 +2718,17 @@
    assertXPath(pXmlDoc, "/root/page/body/txt[1]/LineBreak", 3);
}

void SwLayoutWriter::testTdf116989()
void SwLayoutWriter::testTdf122878()
{
    createDoc("tdf116989.docx");
    createDoc("tdf122878.docx");
    xmlDocPtr pXmlDoc = parseLayoutDump();
    // FIXME: the XPath should be adjusted when the proper floating table would be imported
    const sal_Int32 nTblTop
        = getXPath(pXmlDoc, "/root/page[1]/footer/tab/infos/bounds", "top").toInt32();
        = getXPath(pXmlDoc, "/root/page[1]/footer/txt/anchored/fly/tab/infos/bounds", "top")
              .toInt32();
    const sal_Int32 nFirstPageParaCount
        = getXPathContent(pXmlDoc, "count(/root/page[1]/body/txt)").toInt32();
    // FIXME: should be exactly 30, when proper floating tables in footers are supported
    CPPUNIT_ASSERT_GREATEREQUAL(sal_Int32(30), nFirstPageParaCount);
    CPPUNIT_ASSERT_EQUAL(sal_Int32(30), nFirstPageParaCount);
    for (sal_Int32 i = 1; i <= nFirstPageParaCount; ++i)
    {
        const OString xPath = "/root/page[1]/body/txt[" + OString::number(i) + "]/infos/bounds";
diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx
index 1fbf696..a5a448e 100644
--- a/sw/source/core/text/txtfly.cxx
+++ b/sw/source/core/text/txtfly.cxx
@@ -803,7 +803,6 @@
                   // #i13832#, #i24135# wrap around objects in page header
                   ( !pIDSA->get(DocumentSettingId::USE_FORMER_TEXT_WRAPPING) &&
                     nullptr != ( pHeader = pTmp->FindFooterOrHeader() ) &&
                     !pHeader->IsFooterFrame() &&
                     m_pCurrFrame->IsInDocBody())))
            {
                if( pHeader || RndStdIds::FLY_AT_FLY == rNewA.GetAnchorId() )
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
index 04fd361..01c7f59 100644
--- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
@@ -1176,8 +1176,7 @@
            m_aTableProperties->getValue(TablePropertyMap::TABLE_WIDTH_TYPE, nTableWidthType);
            if (m_rDMapper_Impl.GetSectionContext() && nestedTableLevel <= 1 && !m_rDMapper_Impl.IsInHeaderFooter())
                m_rDMapper_Impl.m_aPendingFloatingTables.emplace_back(xStart, xEnd, comphelper::containerToSequence(aFrameProperties), nTableWidth, nTableWidthType);
            else if (!m_rDMapper_Impl.IsInFooter()) // FIXME: tdf#116989 floating objects anchored
                                                    //to footer cannot have proper wrapping
            else
            {
                // m_xText points to the body text, get the current xText from m_rDMapper_Impl, in case e.g. we would be in a header.
                uno::Reference<text::XTextAppendAndConvert> xTextAppendAndConvert(m_rDMapper_Impl.GetTopTextAppend(), uno::UNO_QUERY);