summaryrefslogtreecommitdiff
path: root/sw/qa
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-05-13 11:45:37 +0200
committerMiklos Vajna <vmiklos@collabora.com>2021-05-14 14:12:06 +0200
commit7896f845faeb561d79ee43c9b5190a08a1a1dccf (patch)
treef741a67a3f4c00044ef98ba8553617cf84c7cb43 /sw/qa
parent082bef47ce0be2e51fefb7cf71300c13b2a29eae (diff)
sw XHTML export: fix handling of list labels
This is building on top of commit 119b6876c92e4cdae44583c4b1b1419d3533e3ee (sw XHTML export: properly write <li>...</li> around multiple paragraphs, 2020-05-21), but the use-case here is a numbering with list labels only. The first problem was that the list label had its <li> suppressed, but not its </li>. The other problem is that <ul> can only have <li> child elements, so at least fix the case where the list only has list labels, in which case even <ul> and </ul> should be omitted. (cherry picked from commit 013a4f1f5c9ea5fb511568c53a7e76d1b365a65d) Change-Id: Id38978a40d8618f483e3e9d499f75838d5b2adb0
Diffstat (limited to 'sw/qa')
-rw-r--r--sw/qa/extras/htmlexport/htmlexport.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
index 3746c3e7e786..b19ab0d655f2 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -1389,6 +1389,37 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqifObjdataPresentationDataSize)
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(565994), aOle1Reader.m_nPresentationDataSize);
}
+CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testListHeading)
+{
+ // Given a document with a list heading:
+ loadURL("private:factory/swriter", nullptr);
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
+ SwWrtShell* pWrtShell = pTextDoc->GetDocShell()->GetWrtShell();
+ pWrtShell->Insert("list header");
+ SwDoc* pDoc = pWrtShell->GetDoc();
+ sal_uInt16 nPos = pDoc->MakeNumRule(pDoc->GetUniqueNumRuleName());
+ SwNumRule* pNumRule = pDoc->GetNumRuleTable()[nPos];
+ SwNode& rNode = pWrtShell->GetCursor()->GetPoint()->nNode.GetNode();
+ SwTextNode& rTextNode = *rNode.GetTextNode();
+ rTextNode.SetAttr(SwNumRuleItem(pNumRule->GetName()));
+ rTextNode.SetCountedInList(false);
+
+ // When exporting to ReqIF:
+ ExportToReqif();
+
+ // Then make sure the output is valid xhtml:
+ SvMemoryStream aStream;
+ HtmlExportTest::wrapFragment(maTempFile, aStream);
+ xmlDocUniquePtr pXmlDoc = parseXmlStream(&aStream);
+ CPPUNIT_ASSERT(pDoc);
+
+ // Without the accompanying fix in place, this test would have failed:
+ // - expected: <div><p>...</p></div>
+ // - actual : <div><ol><p>...</p></li></ol></div>
+ // because a </li> but no <li> is not well-formed and <ol> with a non-li children is invalid.
+ assertXPathContent(pXmlDoc, "/reqif-xhtml:html/reqif-xhtml:div/reqif-xhtml:p", "list header");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */