[Libreoffice-commits] .: sw/qa sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon Oct 8 00:55:52 PDT 2012
sw/qa/extras/ooxmlexport/data/fdo47669.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 16 ++++++++++++++++
sw/source/filter/ww8/docxattributeoutput.cxx | 6 +++++-
3 files changed, 21 insertions(+), 1 deletion(-)
New commits:
commit 3b042335208cb2c995f4860bf8ba3bd1e2f2e859
Author: Korrawit Pruegsanusak <detective.conan.1412 at gmail.com>
Date: Sun Oct 7 17:15:04 2012 +0700
Fix fdo#47669: also check if we started the tag before ending it
The problem is we created imbalance end tag </w:hyperlink> which shouldn't
be there. So, place a check before inserting end tag should help.
Inspired by (read: copied from) c1c2688912e769dfd7654e11e87dae380a8ce1eb ;)
Change-Id: Ic933f6da44c788cba48bb2fe6fa29658985310b6
diff --git a/sw/qa/extras/ooxmlexport/data/fdo47669.docx b/sw/qa/extras/ooxmlexport/data/fdo47669.docx
new file mode 100644
index 0000000..9c5ef68
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo47669.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 6f8689a..2d7f49d 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -63,6 +63,7 @@ public:
void testMathSubscripts();
void testMathVerticalStacks();
void testTablePosition();
+ void testFdo47669();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -86,6 +87,7 @@ public:
CPPUNIT_TEST(testMathSubscripts);
CPPUNIT_TEST(testMathVerticalStacks);
CPPUNIT_TEST(testTablePosition);
+ CPPUNIT_TEST(testFdo47669);
#endif
CPPUNIT_TEST_SUITE_END();
@@ -397,6 +399,20 @@ void Test::testTablePosition()
}
}
+void Test::testFdo47669()
+{
+ roundtrip("fdo47669.docx");
+
+ /*
+ * Problem: we created imbalance </w:hyperlink> which shouldn't be there,
+ * resulting in loading error: missing last character of hyperlink text
+ * and content after it wasn't loaded.
+ */
+ getParagraph(1, "This is a hyperlink with anchor. Also, this sentence should be seen.");
+ getRun(getParagraph(1), 2, "hyperlink with anchor");
+ CPPUNIT_ASSERT_EQUAL(OUString("http://www.google.com/#a"), getProperty<OUString>(getRun(getParagraph(1), 2), "HyperLinkURL"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index bce14c8..2b5485a 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -535,7 +535,11 @@ void DocxAttributeOutput::EndRun()
if ( m_closeHyperlinkInPreviousRun )
{
- m_pSerializer->endElementNS( XML_w, XML_hyperlink );
+ if ( m_startedHyperlink )
+ {
+ m_pSerializer->endElementNS( XML_w, XML_hyperlink );
+ m_startedHyperlink = false;
+ }
m_closeHyperlinkInPreviousRun = false;
}
More information about the Libreoffice-commits
mailing list