vcl/qa/cppunit/pdfexport/data/tdf138792.odt |binary
 vcl/qa/cppunit/pdfexport/pdfexport2.cxx     |   48 ++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

New commits:
commit 7f8f3a0152cfb5b45916a6ac43ddeab5a5e435e1
Author:     Xisco Fauli <[email protected]>
AuthorDate: Thu Feb 26 09:58:15 2026 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Thu Feb 26 15:47:03 2026 +0100

    tdf#138792: vcl_pdfexport2: Add test
    
    Change-Id: Ib72700b7eb62ab38ed86600f4c0ea0a9050d44e2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200401
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf138792.odt 
b/vcl/qa/cppunit/pdfexport/data/tdf138792.odt
new file mode 100644
index 000000000000..12f6d00b38f8
Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf138792.odt differ
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 5b289c6032ca..a41bd2f5e5b3 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -1500,6 +1500,54 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata)
     assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfuaid:part", u"1");
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf138792)
+{
+    // Enable PDF/UA
+    uno::Sequence<beans::PropertyValue> aFilterData(
+        comphelper::InitPropertySequence({ { "PDFUACompliance", uno::Any(true) 
} }));
+    comphelper::SequenceAsHashMap aMediaDescriptor;
+    aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData;
+
+    vcl::filter::PDFDocument aDocument;
+    loadFromFile(u"tdf138792.odt");
+    skipValidation();
+    save(TestFilter::PDF_WRITER, 
aMediaDescriptor.getAsConstPropertyValueList());
+
+    // Parse the export result.
+    SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ);
+    CPPUNIT_ASSERT(aDocument.Read(aStream));
+
+    auto* pCatalog = aDocument.GetCatalog();
+    CPPUNIT_ASSERT(pCatalog);
+    auto* pCatalogDictionary = pCatalog->GetDictionary();
+    CPPUNIT_ASSERT(pCatalogDictionary);
+    auto* pMetadataObject = pCatalogDictionary->LookupObject("Metadata"_ostr);
+    CPPUNIT_ASSERT(pMetadataObject);
+    auto* pMetadataDictionary = pMetadataObject->GetDictionary();
+    auto* pType = dynamic_cast<vcl::filter::PDFNameElement*>(
+        pMetadataDictionary->LookupElement("Type"_ostr));
+    CPPUNIT_ASSERT(pType);
+    CPPUNIT_ASSERT_EQUAL("Metadata"_ostr, pType->GetValue());
+
+    auto* pStreamObject = pMetadataObject->GetStream();
+    CPPUNIT_ASSERT(pStreamObject);
+    auto& rStream = pStreamObject->GetMemory();
+    rStream.Seek(0);
+    xmlDocUniquePtr pXmlDoc = parseXmlStream(&rStream);
+    CPPUNIT_ASSERT(pXmlDoc);
+
+    assertXPath(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/dc:date/rdf:Seq/rdf:li");
+    assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/dc:format",
+                       u"application/pdf");
+    assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/dc:title/rdf:Alt/rdf:li",
+                       u"Test document title");
+    assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/dc:creator/rdf:Seq/rdf:li",
+                       u"Gabor Kelemen LO");
+    assertXPathContent(pXmlDoc,
+                       
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/dc:description/rdf:Alt/rdf:li",
+                       u"Test subject");
+}
+
 CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf153472)
 {
     // Use PDF/A-1b

Reply via email to