[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - filter/qa sfx2/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Mon Feb 15 14:57:17 UTC 2021
filter/qa/unit/textfilterdetect.cxx | 20 ++++++++++++++++++++
sfx2/source/doc/objstor.cxx | 6 ++++--
2 files changed, 24 insertions(+), 2 deletions(-)
New commits:
commit c2316601dfab8eaa4708e21f33427cb5e95e0bc1
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed Jan 27 16:05:54 2021 +0100
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon Feb 15 15:56:42 2021 +0100
tdf#123476 filter: Also handle empty ODF
This builds on top of commit ada07f303e7cd1e39c73abe0741aefe7d9d73a57,
to allow 0-byte ODT, ODS etc.
Possible TODO would be somehow use default template for such empty files,
getting the template name using SfxObjectFactory::GetStandardTemplate.
That would enable using 0-byte ODF files as means to "create new document
at this location from default template" workflow.
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109989
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
(cherry picked from commit 2854362f429e476d4a1ab4759c6a1f1c04150280)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110061
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
Change-Id: I36e07b80f60c42aecdcc6a7357e5bdd18f62e4f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110938
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/filter/qa/unit/data/empty.odp b/filter/qa/unit/data/empty.odp
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/filter/qa/unit/data/empty.odt b/filter/qa/unit/data/empty.odt
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/filter/qa/unit/textfilterdetect.cxx b/filter/qa/unit/textfilterdetect.cxx
index cc86fe04c3d5..3bd019aa0685 100644
--- a/filter/qa/unit/textfilterdetect.cxx
+++ b/filter/qa/unit/textfilterdetect.cxx
@@ -94,6 +94,26 @@ CPPUNIT_TEST_FIXTURE(TextFilterDetectTest, testEmptyFile)
// Without the accompanying fix in place, this test would have failed, as it was opened in
// Writer instead.
CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.presentation.PresentationDocument"));
+
+ getComponent()->dispose();
+
+ // Now also test ODT
+ aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "empty.odt";
+ getComponent() = loadFromDesktop(aURL);
+ xServiceInfo.set(getComponent(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo.is());
+ // Make sure it opens in Writer.
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.text.TextDocument"));
+ getComponent()->dispose();
+
+ // ... and ODP
+ aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "empty.odp";
+ getComponent() = loadFromDesktop(aURL);
+ xServiceInfo.set(getComponent(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo.is());
+ // Without the accompanying fix in place, this test would have failed, as it was opened in
+ // Writer instead.
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.presentation.PresentationDocument"));
}
}
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 50ec51f7e546..d8d0104ac315 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -438,7 +438,7 @@ bool SfxObjectShell::InitNew( const uno::Reference< embed::XStorage >& xStorage
bool SfxObjectShell::Load( SfxMedium& rMedium )
{
- return GeneralInit_Impl( rMedium.GetStorage(), true );
+ return GeneralInit_Impl(rMedium.GetStorage(), !tools::isEmptyFileUrl(rMedium.GetName()));
}
void SfxObjectShell::DoInitUnitTest()
@@ -674,7 +674,9 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
bWarnMediaTypeFallback = false;
}
- if ( bWarnMediaTypeFallback || !xStorage->getElementNames().getLength() )
+ if (bWarnMediaTypeFallback
+ || (!tools::isEmptyFileUrl(pMedium->GetName())
+ && !xStorage->getElementNames().getLength()))
SetError(ERRCODE_IO_BROKENPACKAGE);
}
catch( uno::Exception& )
More information about the Libreoffice-commits
mailing list