.gitignore | 1 Makefile.fetch | 3 - Makefile.in | 1 bin/verapdf.sh.in | 2 config_host.mk.in | 1 configure.ac | 27 +++++++++ download.lst | 5 + include/test/unoapi_test.hxx | 7 +- test/source/unoapi_test.cxx | 76 +++++++++++++++++----------- vcl/qa/cppunit/pdfexport/data/tdf136805.pdf |binary vcl/qa/cppunit/pdfexport/data/tdf167290.odt |binary vcl/qa/cppunit/pdfexport/pdfexport.cxx | 3 + vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 33 ++++++++++++ 13 files changed, 126 insertions(+), 33 deletions(-)
New commits: commit 3bb09e0619f703b3a02d4d77cf630f70dbc88bd5 Author: Xisco Fauli <[email protected]> AuthorDate: Fri Feb 20 16:36:44 2026 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Tue Mar 10 07:43:51 2026 +0100 tdf#136805: vcl_pdfexport2: Add test Change-Id: I3473769738bfe1c9674def30b2d4620fd18bf26f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199891 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201184 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/vcl/qa/cppunit/pdfexport/data/tdf136805.pdf b/vcl/qa/cppunit/pdfexport/data/tdf136805.pdf new file mode 100644 index 000000000000..65de2e170191 Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf136805.pdf differ diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 54f75e6f9607..0ed2a29c957a 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -1677,6 +1677,18 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152231) CPPUNIT_ASSERT_EQUAL(12, nPara); } +CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf136805) +{ + uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence({ + { "SelectPdfVersion", uno::Any(static_cast<sal_Int32>(1)) }, + })); + comphelper::SequenceAsHashMap aMediaDescriptor; + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; + loadFromFile(u"tdf136805.pdf"); + // Without the fix in place, the validation would have failed + save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); +} + CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) { // Enable PDF/UA commit 96c3c05d95a02fa25f140a92164dfc729cb8e8a0 Author: Xisco Fauli <[email protected]> AuthorDate: Fri Feb 20 15:55:42 2026 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Tue Mar 10 07:43:44 2026 +0100 tdf#167290: export CreationDate with DateTime format Otherwise, the validator fails with "The value of CreationDate entry from the document Info dictionary and its matching XMP property "xmp:CreateDate" are not equivalent (Info /CreationDate = D:20260220154049+01'00', XMP xmp:CreateDate = 2025-12-31T11:13:40.000+01) The call to osl_getDateTimeFromTimeValue was removed in commit 07ac61f2c67020ad2941462ea7081f06495bcb92 Author: Sarper Akdemir <[email protected]> Date: Mon Aug 28 11:16:34 2023 +0300 tdf#138792: PDF export: fix date of xmp:CreateDate for no apparent reason Change-Id: I4c6948769797a4e446239316de2857851b31565e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199886 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201183 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/vcl/qa/cppunit/pdfexport/data/tdf167290.odt b/vcl/qa/cppunit/pdfexport/data/tdf167290.odt new file mode 100644 index 000000000000..668123031c02 Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf167290.odt differ diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index a17ec32aa38a..54f75e6f9607 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -1766,6 +1766,17 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) CPPUNIT_ASSERT_GREATEREQUAL(2, nArtifacts); // 1 watermark + 1 other thing } +CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf167290) +{ + uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence({ + { "SelectPdfVersion", uno::Any(static_cast<sal_Int32>(1)) }, + })); + comphelper::SequenceAsHashMap aMediaDescriptor; + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; + loadFromFile(u"tdf167290.odt"); + save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); +} + CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf149140) { // Enable PDF/UA commit 99edef28f28d7dabab197ba6ae6e26e427bb98b0 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Feb 2 15:38:09 2026 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Tue Mar 10 07:43:36 2026 +0100 tdf#136822: Add VeraPDF as a PDF validator For now, only validate those tests that are conformant with the validator verapdf-cli-1.29.0.jar has been generated using https://github.com/veraPDF/veraPDF-apps/pull/415 and running 'mvn clean install' Change-Id: Ic172100a120dc0f43f6de526660961d34dc6b415 Change-Id: Icacc8ccbd938f779b506fb5e1820f10a539ab77b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198556 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201182 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/.gitignore b/.gitignore index 74c05bd051ee..185c0d9fef5a 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,7 @@ /bin/bffvalidator.sh /bin/odfvalidator.sh /bin/officeotron.sh +/bin/verapdf.sh /hardened_runtime.xcent /lo.xcent /vs-code.code-workspace.template diff --git a/Makefile.fetch b/Makefile.fetch index 68a46ce01b0f..3212cf9924af 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -251,7 +251,8 @@ fetch_SRC_TARBALLS := \ fetch_EXTERN_TARBALLS := \ $(call fetch_Optional,OPENSYMBOL,OPENSYMBOL_TTF) \ $(call fetch_Optional,ODFVALIDATOR,ODFVALIDATOR_JAR) \ - $(call fetch_Optional,OFFICEOTRON,OFFICEOTRON_JAR) + $(call fetch_Optional,OFFICEOTRON,OFFICEOTRON_JAR) \ + $(call fetch_Optional,VERAPDF,VERAPDF_JAR) fetch_NOTO_TARBALLS := \ $(call fetch_Optional,NOTO_FONT,FONT_NOTO_MORE_TARBALL) \ diff --git a/Makefile.in b/Makefile.in index 39c8fe4ade7a..48bc2ab7a472 100644 --- a/Makefile.in +++ b/Makefile.in @@ -229,6 +229,7 @@ distclean : clean compilerplugins-clean mac-app-store-package.clean $(BUILDDIR)/bin/bffvalidator.sh \ $(BUILDDIR)/bin/odfvalidator.sh \ $(BUILDDIR)/bin/officeotron.sh \ + $(BUILDDIR)/bin/verapdf.sh \ $(BUILDDIR)/config.Build.log \ $(BUILDDIR)/config.Build.warn \ $(BUILDDIR)/config.log \ diff --git a/bin/verapdf.sh.in b/bin/verapdf.sh.in new file mode 100644 index 000000000000..bc536eeb9e4e --- /dev/null +++ b/bin/verapdf.sh.in @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +java -jar @TARFILE_LOCATION_NATIVE@/@VERAPDF_JAR@ --nonpdfext "$@" diff --git a/config_host.mk.in b/config_host.mk.in index 35f6db0660d4..f546fdecd8b1 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -770,6 +770,7 @@ export VCL_PLUGIN_INFO=@VCL_PLUGIN_INFO@ export VCTOOLSET=@VCTOOLSET@ export VCVER=@VCVER@ export DEVENV=@DEVENV@ +export VERAPDF=@VERAPDF@ export VISIO_CFLAGS=$(gb_SPACE)@VISIO_CFLAGS@ export VISIO_LIBS=$(gb_SPACE)@VISIO_LIBS@ export WGET=@WGET@ diff --git a/configure.ac b/configure.ac index 8d3197b07e23..74746c2f2fae 100644 --- a/configure.ac +++ b/configure.ac @@ -6203,6 +6203,7 @@ if test "$cross_compiling" = "yes"; then bin/bffvalidator.sh.in \ bin/odfvalidator.sh.in \ bin/officeotron.sh.in \ + bin/verapdf.sh.in \ instsetoo_native/util/openoffice.lst.in \ config_host/*.in \ sysui/desktop/macosx/Info.plist.in \ @@ -9677,6 +9678,31 @@ if test "$with_export_validation" != "no"; then else OFFICEOTRON="sh $OFFICEOTRON" fi + + AC_PATH_PROGS(VERAPDF, verapdf) + if test -z "$VERAPDF"; then + # remember to download the verapdf with validator later + AC_MSG_NOTICE([no verapdf found, will download it]) + BUILD_TYPE="$BUILD_TYPE VERAPDF" + VERAPDF="$BUILDDIR/bin/verapdf.sh" + + # and fetch name of verapdf jar name from download.lst + VERAPDF_JAR=`$SED -n -e "s/^VERAPDF_JAR *:= *\(.*\) *//p" $SRC_ROOT/download.lst` + AC_SUBST(VERAPDF_JAR) + + if test -z "$VERAPDF_JAR"; then + AC_MSG_ERROR([cannot determine verapdf jar location (--with-export-validation)]) + fi + fi + if test "$build_os" = "cygwin"; then + # In case of Cygwin it will be executed from Windows, + # so we need to run bash and absolute path to validator + # so instead of "odfvalidator" it will be + # something like "bash.exe C:+ VERAPDF="bash.exe `cygpath -m "$VERAPDF"`" + else + VERAPDF="sh $VERAPDF" + fi fi AC_SUBST(OFFICEOTRON) else @@ -16335,6 +16361,7 @@ AC_CONFIG_FILES([ bin/bffvalidator.sh bin/odfvalidator.sh bin/officeotron.sh + bin/verapdf.sh instsetoo_native/util/openoffice.lst sysui/desktop/macosx/Info.plist sysui/desktop/macosx/LaunchConstraint.plist diff --git a/download.lst b/download.lst index 1caf9801de44..4f9d2db18425 100644 --- a/download.lst +++ b/download.lst @@ -612,6 +612,11 @@ OFFICEOTRON_JAR := officeotron-0.8.8.jar # three static lines # so that git cherry-pick # will not run into conflicts +VERAPDF_SHA256SUM := bdeef807f7e883fe3ff4e0a4712dc216064ca670d5c857fbc94408266719f0f4 +VERAPDF_JAR := verapdf-cli-1.29.0.jar +# three static lines +# so that git cherry-pick +# will not run into conflicts ONLINEUPDATE_SHA256SUM := 37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90 ONLINEUPDATE_TARBALL := onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz # three static lines diff --git a/include/test/unoapi_test.hxx b/include/test/unoapi_test.hxx index 92694702bc9d..33d6fa005fb4 100644 --- a/include/test/unoapi_test.hxx +++ b/include/test/unoapi_test.hxx @@ -26,7 +26,8 @@ enum ValidationFormat { OOXML, ODF, - MSBINARY + MSBINARY, + PDF }; enum class TestFilter @@ -176,12 +177,12 @@ protected: rtl::Reference<TestInteractionHandler> xInteractionHandler; + void validate(TestFilter eFilter); + private: void setTestInteractionHandler(const char* pPassword, std::vector<css::beans::PropertyValue>& rFilterOptions); - void validate(const OUString& rURL, TestFilter eFilter) const; - bool mbSkipValidation; OUString m_aBaseString; OUString maFilterOptions; diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index e0a1a0e11215..2b30d3c40ad8 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -110,7 +110,7 @@ constexpr std::u16string_view grand_total = u"Grand total of errors in submitted } #endif -void UnoApiTest::validate(const OUString& rPath, TestFilter eFilter) const +void UnoApiTest::validate(TestFilter eFilter) { ValidationFormat eFormat = ValidationFormat::ODF; if (eFilter == TestFilter::XLSX) @@ -133,6 +133,8 @@ void UnoApiTest::validate(const OUString& rPath, TestFilter eFilter) const eFormat = ValidationFormat::MSBINARY; else if (eFilter == TestFilter::PPT) eFormat = ValidationFormat::MSBINARY; + else if (eFilter == TestFilter::PDF_WRITER) + eFormat = ValidationFormat::PDF; else { SAL_INFO("test", "UnoApiTest::validate: unknown filter"); @@ -149,6 +151,10 @@ void UnoApiTest::validate(const OUString& rPath, TestFilter eFilter) const { var = "ODFVALIDATOR"; } + else if (eFormat == ValidationFormat::PDF) + { + var = "VERAPDF"; + } else if (eFormat == ValidationFormat::MSBINARY) { #if HAVE_BFFVALIDATOR @@ -185,7 +191,7 @@ void UnoApiTest::validate(const OUString& rPath, TestFilter eFilter) const utl::TempFileNamed aOutput; aOutput.EnableKillingFile(); OUString aOutputFile = aOutput.GetFileName(); - OUString aCommand = aValidator + " " + rPath + " > " + aOutputFile + " 2>&1"; + OUString aCommand = aValidator + " " + maTempFile.GetFileName() + " > " + aOutputFile + " 2>&1"; #if !defined _WIN32 // For now, this is only needed by some Linux ASan builds, so keep it simply and disable it on @@ -212,42 +218,53 @@ void UnoApiTest::validate(const OUString& rPath, TestFilter eFilter) const OString aContentString = loadFile(aOutput.GetURL()); OUString aContentOUString = OStringToOUString(aContentString, RTL_TEXTENCODING_UTF8); - if (eFormat == ValidationFormat::OOXML && !aContentOUString.isEmpty()) + if (eFormat == ValidationFormat::PDF) { - // check for validation errors here - sal_Int32 nIndex = aContentOUString.lastIndexOf(grand_total); - if (nIndex == -1) + if (aContentOUString.indexOf("isCompliant=\"true\"") == -1) { - SAL_WARN("test", "no summary line"); + SAL_WARN("test", aContentOUString); + CPPUNIT_FAIL("VeraPDF validation failed: document is not compliant"); } - else + } + else + { + if (eFormat == ValidationFormat::OOXML && !aContentOUString.isEmpty()) { - sal_Int32 nStartOfNumber = nIndex + grand_total.size(); - std::u16string_view aNumber = aContentOUString.subView(nStartOfNumber); - sal_Int32 nErrors = o3tl::toInt32(aNumber); - OString aMsg = "validation error in OOXML export: Errors: " + OString::number(nErrors); - if (nErrors) + // check for validation errors here + sal_Int32 nIndex = aContentOUString.lastIndexOf(grand_total); + if (nIndex == -1) { - SAL_WARN("test", aContentOUString); + SAL_WARN("test", "no summary line"); + } + else + { + sal_Int32 nStartOfNumber = nIndex + grand_total.size(); + std::u16string_view aNumber = aContentOUString.subView(nStartOfNumber); + sal_Int32 nErrors = o3tl::toInt32(aNumber); + OString aMsg + = "validation error in OOXML export: Errors: " + OString::number(nErrors); + if (nErrors) + { + SAL_WARN("test", aContentOUString); + } + CPPUNIT_ASSERT_EQUAL_MESSAGE(aMsg.getStr(), sal_Int32(0), nErrors); } - CPPUNIT_ASSERT_EQUAL_MESSAGE(aMsg.getStr(), sal_Int32(0), nErrors); } - } - else if (eFormat == ValidationFormat::ODF && !aContentOUString.isEmpty()) - { - if (aContentOUString.indexOf("Error") != -1 || aContentOUString.indexOf("Fatal") != -1) + else if (eFormat == ValidationFormat::ODF && !aContentOUString.isEmpty()) { - SAL_WARN("test", aContentOUString); - CPPUNIT_FAIL(aContentString.getStr()); + if (aContentOUString.indexOf("Error") != -1 || aContentOUString.indexOf("Fatal") != -1) + { + SAL_WARN("test", aContentOUString); + CPPUNIT_FAIL(aContentString.getStr()); + } } + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("failed to execute: " + OUStringToOString(aCommand, RTL_TEXTENCODING_UTF8) + + " " + OUStringToOString(aContentOUString, RTL_TEXTENCODING_UTF8)) + .getStr(), + 0, returnValue); } - CPPUNIT_ASSERT_EQUAL_MESSAGE( - OString("failed to execute: " + OUStringToOString(aCommand, RTL_TEXTENCODING_UTF8) + " " - + OUStringToOString(aContentOUString, RTL_TEXTENCODING_UTF8)) - .getStr(), - 0, returnValue); #else - (void)rPath; (void)eFormat; #endif } @@ -356,8 +373,9 @@ void UnoApiTest::save(TestFilter eFilter, const uno::Sequence<beans::PropertyVal css::uno::Reference<frame::XStorable> xStorable(mxComponent, css::uno::UNO_QUERY_THROW); xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); - if (!mbSkipValidation) - validate(maTempFile.GetFileName(), eFilter); + // FIXME: Don't validate pdf files by default for now + if (!mbSkipValidation && eFilter != TestFilter::PDF_WRITER) + validate(eFilter); } void UnoApiTest::saveAndReload(TestFilter eFilter, const char* pPassword) diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index 221852bd9810..6a56250017e9 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -2381,6 +2381,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf157816.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -2783,6 +2784,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link) vcl::filter::PDFDocument aDocument; loadFromFile(u"LinkWithFly.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3174,6 +3176,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806) vcl::filter::PDFDocument aDocument; loadFromFile(u"LinkPages.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 97ec3e0de263..a17ec32aa38a 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -1469,6 +1469,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf139736-1.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -1775,6 +1776,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf149140) vcl::filter::PDFDocument aDocument; loadFromFile(u"TableTH_test_LibreOfficeWriter7.3.3_HeaderRow-HeadersInTopRow.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -1835,6 +1837,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testNestedSection) vcl::filter::PDFDocument aDocument; loadFromFile(u"nestedsection.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -2972,6 +2975,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154982) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf154982.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3382,6 +3386,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135192) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf135192-1.fodp"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3514,6 +3519,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154955) vcl::filter::PDFDocument aDocument; loadFromFile(u"grouped-shape.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3649,6 +3655,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf155190) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf155190.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3739,6 +3746,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testMediaShapeAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"vid.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3879,6 +3887,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFlyFrameHyperlinkAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"image-hyperlink-alttext.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -4015,6 +4024,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFormControlAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"formcontrol.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ);
