vcl/qa/cppunit/pdfexport/pdfexport2.cxx |   42 ++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

New commits:
commit e9bf377a94ed1c5235fa5fc21c87f4e7e569daab
Author:     Xisco Fauli <[email protected]>
AuthorDate: Wed Feb 25 14:54:48 2026 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Feb 25 16:47:55 2026 +0100

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

diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 1c09db9ec2b9..5b289c6032ca 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -76,6 +76,8 @@ void PdfExportTest2::registerNamespaces(xmlXPathContextPtr& 
pXmlXpathCtx)
     xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("dc"), 
BAD_CAST("http://purl.org/dc/elements/1.1/";));
     xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("pdfuaid"),
                        BAD_CAST("http://www.aiim.org/pdfua/ns/id/";));
+    xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("pdfaid"),
+                       BAD_CAST("http://www.aiim.org/pdfa/ns/id/";));
 }
 
 CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf160705)
@@ -1498,6 +1500,46 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata)
     assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfuaid:part", u"1");
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf153472)
+{
+    // Use PDF/A-1b
+    uno::Sequence<beans::PropertyValue> aFilterData(
+        comphelper::InitPropertySequence({ { "SelectPdfVersion", 
uno::Any(sal_Int32(1)) } }));
+    comphelper::SequenceAsHashMap aMediaDescriptor;
+    aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData;
+
+    vcl::filter::PDFDocument aDocument;
+    loadFromURL(u"private:factory/swriter"_ustr);
+    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);
+
+    assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfaid:part", u"1");
+    assertXPathContent(pXmlDoc, 
"/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfaid:conformance", u"B");
+}
+
 CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736)
 {
     // Enable PDF/UA

Reply via email to