summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-08-28 10:08:02 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-08-28 11:01:59 +0200
commitef2668bad976f1fbb70759887cafd35ea7833655 (patch)
tree72d9845468ba5ad6b18d13c056ea035693dc0a29
parent6a39fdf81fa561a587b9b9c6a28ba2891f448563 (diff)
PPTX import: fix missing document metadata
Without this, the creation / modification date is lost on import. Change-Id: I0b74ac91aee7b8b3e0bc763247086a3a39816bc1
-rw-r--r--oox/source/ppt/pptimport.cxx2
-rw-r--r--sd/qa/unit/import-tests.cxx16
2 files changed, 18 insertions, 0 deletions
diff --git a/oox/source/ppt/pptimport.cxx b/oox/source/ppt/pptimport.cxx
index de5ee83e1777..c3d733a14b6b 100644
--- a/oox/source/ppt/pptimport.cxx
+++ b/oox/source/ppt/pptimport.cxx
@@ -82,6 +82,8 @@ bool PowerPointImport::importDocument()
file:///<path-to-oox-module>/source/dump/pptxdumper.ini. */
OOX_DUMP_FILE( ::oox::dump::pptx::Dumper );
+ importDocumentProperties();
+
OUString aFragmentPath = getFragmentPathFromFirstTypeFromOfficeDoc( "officeDocument" );
FragmentHandlerRef xPresentationFragmentHandler( new PresentationFragmentHandler( *this, aFragmentPath ) );
maTableStyleListPath = xPresentationFragmentHandler->getFragmentPathFromFirstTypeFromOfficeDoc( "tableStyles" );
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 288ac794c87d..3131937f26af 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -32,7 +32,9 @@
#include <svx/svdotable.hxx>
#include <svx/xflclit.hxx>
#include <animations/animationnodehelper.hxx>
+#include <sax/tools/converter.hxx>
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <com/sun/star/drawing/XDrawPage.hpp>
#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
#include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
@@ -71,6 +73,7 @@ public:
void testN862510_4();
void testBnc870237();
void testBnc887225();
+ void testCreationDate();
CPPUNIT_TEST_SUITE(SdFiltersTest);
CPPUNIT_TEST(testDocumentLayout);
@@ -90,6 +93,7 @@ public:
CPPUNIT_TEST(testN862510_4);
CPPUNIT_TEST(testBnc870237);
CPPUNIT_TEST(testBnc887225);
+ CPPUNIT_TEST(testCreationDate);
CPPUNIT_TEST_SUITE_END();
};
@@ -553,6 +557,18 @@ void SdFiltersTest::testBnc870237()
xDocShRef->DoClose();
}
+void SdFiltersTest::testCreationDate()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/fdo71434.pptx"), PPTX);
+ uno::Reference<document::XDocumentPropertiesSupplier> xDocumentPropertiesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
+ uno::Reference<document::XDocumentProperties> xDocumentProperties = xDocumentPropertiesSupplier->getDocumentProperties();
+ util::DateTime aDate = xDocumentProperties->getCreationDate();
+ OUStringBuffer aBuffer;
+ sax::Converter::convertDateTime(aBuffer, aDate, 0);
+ // Metadata wasn't imported, this was 0000-00-00.
+ CPPUNIT_ASSERT_EQUAL(OUString("2013-11-09T10:37:56"), aBuffer.makeStringAndClear());
+}
+
void SdFiltersTest::testBnc887225()
{
::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/bnc887225.pptx"), PPTX );