summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/docprop/ooxmldocpropimport.cxx7
-rw-r--r--sd/qa/unit/data/pptx/tdf93097.pptxbin0 -> 29386 bytes
-rw-r--r--sd/qa/unit/import-tests.cxx12
3 files changed, 18 insertions, 1 deletions
diff --git a/oox/source/docprop/ooxmldocpropimport.cxx b/oox/source/docprop/ooxmldocpropimport.cxx
index c711f2f97de7..646c09c68437 100644
--- a/oox/source/docprop/ooxmldocpropimport.cxx
+++ b/oox/source/docprop/ooxmldocpropimport.cxx
@@ -80,8 +80,13 @@ Sequence< InputSource > lclGetRelatedStreams( const Reference< XStorage >& rxSto
const StringPair& rEntry = rEntries[ nEntryIndex ];
if ( rEntry.First == "Target" )
{
+ // The stream path is always a relative one, ignore the leading "/" if it's there.
+ OUString aStreamPath = rEntry.Second;
+ if (aStreamPath.startsWith("/"))
+ aStreamPath = aStreamPath.copy(1);
+
Reference< XExtendedStorageStream > xExtStream(
- xHierarchy->openStreamElementByHierarchicalName( rEntry.Second, ElementModes::READ ), UNO_QUERY_THROW );
+ xHierarchy->openStreamElementByHierarchicalName( aStreamPath, ElementModes::READ ), UNO_QUERY_THROW );
Reference< XInputStream > xInStream = xExtStream->getInputStream();
if( xInStream.is() )
{
diff --git a/sd/qa/unit/data/pptx/tdf93097.pptx b/sd/qa/unit/data/pptx/tdf93097.pptx
new file mode 100644
index 000000000000..687110db3540
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf93097.pptx
Binary files differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 7eb940372c02..68fe97051042 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -104,6 +104,7 @@ public:
void testBnc910045();
void testRowHeight();
void testTdf93830();
+ void testTdf93097();
CPPUNIT_TEST_SUITE(SdImportTest);
@@ -144,6 +145,7 @@ public:
CPPUNIT_TEST(testBnc910045);
CPPUNIT_TEST(testRowHeight);
CPPUNIT_TEST(testTdf93830);
+ CPPUNIT_TEST(testTdf93097);
CPPUNIT_TEST_SUITE_END();
};
@@ -1224,6 +1226,16 @@ void SdImportTest::testTdf93830()
xDocShRef->DoClose();
}
+void SdImportTest::testTdf93097()
+{
+ // Throwing metadata import aborted the filter, check that metadata is now imported.
+ sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/tdf93097.pptx"), PPTX);
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<document::XDocumentProperties> xDocumentProperties = xDocumentPropertiesSupplier->getDocumentProperties();
+ CPPUNIT_ASSERT_EQUAL(OUString("ss"), xDocumentProperties->getTitle());
+ xDocShRef->DoClose();
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
CPPUNIT_PLUGIN_IMPLEMENT();