diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2024-03-08 14:23:08 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2024-03-17 20:42:32 +0100 |
commit | 8876b616b89b59448b1acc4a738a3e6524ad80cf (patch) | |
tree | f7c48188c5a1c6dd79cee60e9106025b8d9e9fed /vcl | |
parent | 5ee89034692eb21f9a71c9a36cc205b09f24e856 (diff) |
tdf#142133: partially revert 576611895e5
if 'Internet Link' character style doens't exist then
apply the hyperlink style
This also reverts 023285158bde72dcd73b965ce205cf8550e7a5e2
"tdf#128504 save DOCX as ODT: don't color not highlighted hyperlinks"
which is no longer necessary
Change-Id: Id100af5fddb10745af9d56c0ba75cb2366ecbe55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164576
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 03ca7031f3bf4c2a3e841b18c8f9e00004046098)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164509
Reviewed-by: Stéphane Guillou <stephane.guillou@libreoffice.org>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/pdfexport/data/tdf142133.docx | bin | 0 -> 12078 bytes | |||
-rw-r--r-- | vcl/qa/cppunit/pdfexport/pdfexport.cxx | 35 |
2 files changed, 35 insertions, 0 deletions
diff --git a/vcl/qa/cppunit/pdfexport/data/tdf142133.docx b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx Binary files differnew file mode 100644 index 000000000000..fa1e155b873e --- /dev/null +++ b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index d362a3855303..e9a8530c3cce 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -2740,6 +2740,41 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link) CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), pAnnots->GetElements().size()); } +CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142133) +{ + vcl::filter::PDFDocument aDocument; + load(u"tdf142133.docx", aDocument); + + // The document has one page. + std::vector<vcl::filter::PDFObjectElement*> aPages = aDocument.GetPages(); + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aPages.size()); + + auto pAnnots = dynamic_cast<vcl::filter::PDFArrayElement*>(aPages[0]->Lookup("Annots"_ostr)); + CPPUNIT_ASSERT(pAnnots); + + // There should be one annotation + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pAnnots->GetElements().size()); + auto pAnnotReference + = dynamic_cast<vcl::filter::PDFReferenceElement*>(pAnnots->GetElements()[0]); + CPPUNIT_ASSERT(pAnnotReference); + vcl::filter::PDFObjectElement* pAnnot = pAnnotReference->LookupObject(); + CPPUNIT_ASSERT(pAnnot); + // We're expecting something like /Type /Annot /A << /Type /Action /S /URI /URI (path) + CPPUNIT_ASSERT_EQUAL( + "Annot"_ostr, + static_cast<vcl::filter::PDFNameElement*>(pAnnot->Lookup("Type"_ostr))->GetValue()); + CPPUNIT_ASSERT_EQUAL( + "Link"_ostr, + static_cast<vcl::filter::PDFNameElement*>(pAnnot->Lookup("Subtype"_ostr))->GetValue()); + auto pAction = dynamic_cast<vcl::filter::PDFDictionaryElement*>(pAnnot->Lookup("A"_ostr)); + CPPUNIT_ASSERT(pAction); + auto pURIElem + = dynamic_cast<vcl::filter::PDFLiteralStringElement*>(pAction->LookupElement("URI"_ostr)); + CPPUNIT_ASSERT(pURIElem); + // Check it matches + CPPUNIT_ASSERT_EQUAL("https://google.com/"_ostr, pURIElem->GetValue()); +} + CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806) { aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export"); |