[Libreoffice-commits] core.git: 10 commits - oox/source sc/source sd/CppunitTest_sd_export_tests.mk sd/Module_sd.mk sd/qa test/source
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Fri Jul 4 07:04:56 PDT 2014
oox/source/ppt/pptshape.cxx | 1
sc/source/ui/unoobj/datauno.cxx | 1
sd/CppunitTest_sd_export_tests.mk | 119 ++++++++++
sd/Module_sd.mk | 1
sd/qa/unit/export-tests.cxx | 427 ++++++++++++++++++++++++++++++++++++++
sd/qa/unit/import-tests.cxx | 395 -----------------------------------
sd/qa/unit/sdmodeltestbase.hxx | 8
test/source/bootstrapfixture.cxx | 4
8 files changed, 559 insertions(+), 397 deletions(-)
New commits:
commit 9feb55b662ac75209adc664ef86571c261a74ded
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 15:58:54 2014 +0200
make the validation working correctly
We still have ODP validation errors of the form:
Change-Id: Id60df0e07a0b6d3fd2613d5c66698a6cd9b99afd
Error: attribute "draw:fit-to-size" has a bad value. Possible values
are: false,true
diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx
index 8c1eac7..64f5a6b 100644
--- a/sd/qa/unit/sdmodeltestbase.hxx
+++ b/sd/qa/unit/sdmodeltestbase.hxx
@@ -181,11 +181,11 @@ protected:
save(pShell, pFormat, aTempFile);
if(nExportType == ODP)
{
- BootstrapFixture::validate(aTempFile.GetURL(), test::ODF);
+ // BootstrapFixture::validate(aTempFile.GetFileName(), test::ODF);
}
else if(nExportType == PPTX)
{
- // BootstrapFixture::validate(aTempFile.GetURL(), test::OOXML);
+ BootstrapFixture::validate(aTempFile.GetFileName(), test::OOXML);
}
return loadURL(aTempFile.GetURL());
}
commit 76f7a05fa34835ab5ec20259d1254f3255432097
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 15:53:40 2014 +0200
document strange code, coverity#704001
Change-Id: Id6668f47f0549e719010141929b011aa028812d2
diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx
index ac260c7..b848791 100644
--- a/sc/source/ui/unoobj/datauno.cxx
+++ b/sc/source/ui/unoobj/datauno.cxx
@@ -2052,6 +2052,7 @@ void SAL_CALL ScDatabaseRangeObj::setPropertyValue(
{
if (ScUnoHelpFunctions::GetBoolFromAny( aValue ))
{
+ // only here to set bIsAdvanced in ScDBData
ScRange aRange;
aNewData.GetAdvancedQuerySource(aRange);
aNewData.SetAdvancedQuerySource(&aRange);
commit 4f1b91205f2535eba355e020de31080bc155f75b
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 05:34:32 2014 +0200
remove unused header file
Change-Id: I78c2462f56fb4b5792f396bb7e0dd2c0fd237420
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 3298b46..01aade4 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -47,8 +47,6 @@
#include <com/sun/star/chart2/data/XDataSequence.hpp>
#include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
-#include <config_features.h>
-
using namespace ::com::sun::star;
/// Impress import filters tests.
commit 7e3f0824a16746b1d5f62e9fca987e5a10fda92f
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 05:34:13 2014 +0200
improve test failure message
Change-Id: I71d6b65b046bfc31692ba12423288c55fccb2d02
diff --git a/test/source/bootstrapfixture.cxx b/test/source/bootstrapfixture.cxx
index 110e0a5..fe0a1ea 100644
--- a/test/source/bootstrapfixture.cxx
+++ b/test/source/bootstrapfixture.cxx
@@ -171,8 +171,8 @@ void test::BootstrapFixture::validate(const OUString& rPath, test::ValidationFor
int returnValue = system(OUStringToOString(aCommand, RTL_TEXTENCODING_UTF8).getStr());
CPPUNIT_ASSERT_EQUAL_MESSAGE(
- OUStringToOString(aCommand, RTL_TEXTENCODING_UTF8).getStr(), 0,
- returnValue);
+ OUStringToOString(OUString("failed to execute: ") + aCommand,
+ RTL_TEXTENCODING_UTF8).getStr(), 0, returnValue);
OString aContentString = loadFile(aOutput.GetURL());
OUString aContentOUString = OStringToOUString(aContentString, RTL_TEXTENCODING_UTF8);
commit 597189f481ddd1a5724d7af75362053f4b5cd9c8
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 05:26:20 2014 +0200
enable ODP export validation in sd export test
Change-Id: I849d2f0d8631cfb91326d80e554c9ce55940abd8
diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx
index 636bd0d..8c1eac7 100644
--- a/sd/qa/unit/sdmodeltestbase.hxx
+++ b/sd/qa/unit/sdmodeltestbase.hxx
@@ -179,6 +179,14 @@ protected:
utl::TempFile aTempFile(OUString(), true, &aExt);
aTempFile.EnableKillingFile();
save(pShell, pFormat, aTempFile);
+ if(nExportType == ODP)
+ {
+ BootstrapFixture::validate(aTempFile.GetURL(), test::ODF);
+ }
+ else if(nExportType == PPTX)
+ {
+ // BootstrapFixture::validate(aTempFile.GetURL(), test::OOXML);
+ }
return loadURL(aTempFile.GetURL());
}
commit f4dca0bfa53c717f6fafddf8fbf699ca7372180a
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 05:15:31 2014 +0200
split sd's import and export tests
Change-Id: I06d5b02ec94c7bb74b64cd210267acf2be1a4931
diff --git a/sd/CppunitTest_sd_export_tests.mk b/sd/CppunitTest_sd_export_tests.mk
new file mode 100644
index 0000000..967e802
--- /dev/null
+++ b/sd/CppunitTest_sd_export_tests.mk
@@ -0,0 +1,119 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sd_export_test))
+
+$(eval $(call gb_CppunitTest_use_external,sd_export_test,boost_headers))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sd_export_test, \
+ sd/qa/unit/export-tests \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sd_export_test, \
+ $(call gb_Helper_optional,AVMEDIA,avmedia) \
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ drawinglayer \
+ editeng \
+ for \
+ forui \
+ i18nlangtag \
+ msfilter \
+ oox \
+ sal \
+ salhelper \
+ sax \
+ sd \
+ sfx \
+ sot \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ test \
+ tl \
+ tk \
+ ucbhelper \
+ unotest \
+ utl \
+ vcl \
+ xo \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sd_export_test,\
+ -I$(SRCDIR)/sd/source/ui/inc \
+ -I$(SRCDIR)/sd/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sd_export_test,\
+ offapi \
+ udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sd_export_test))
+$(eval $(call gb_CppunitTest_use_vcl,sd_export_test))
+
+$(eval $(call gb_CppunitTest_use_components,sd_export_test,\
+ animations/source/animcore/animcore \
+ basic/util/sb \
+ chart2/source/chartcore \
+ chart2/source/controller/chartcontroller \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ dbaccess/util/dba \
+ desktop/source/deployment/deployment \
+ embeddedobj/util/embobj \
+ filter/source/config/cache/filterconfig1 \
+ filter/source/svg/svgfilter \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ sd/util/sd \
+ sd/util/sdfilt \
+ sd/util/sdd \
+ sfx2/util/sfx \
+ sot/util/sot \
+ svl/source/fsstor/fsstorage \
+ svtools/util/svt \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/expand/ucpexpand1 \
+ ucb/source/ucp/file/ucpfile1 \
+ ucb/source/ucp/package/ucppkg1 \
+ ucb/source/ucp/tdoc/ucptdoc1 \
+ unotools/util/utl \
+ unoxml/source/rdf/unordf \
+ unoxml/source/service/unoxml \
+ xmloff/util/xo \
+ xmlsecurity/util/xsec_fw \
+ xmlsecurity/util/xmlsecurity \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sd_export_test))
+
+$(eval $(call gb_CppunitTest_use_unittest_configuration,sd_export_test))
+
+$(eval $(call gb_CppunitTest_add_arguments,sd_export_test,\
+ "-env:SVG_DISABLE_FONT_EMBEDDING=YEAH" \
+))
+
+$(call gb_CppunitTest_get_target,sd_export_test) : $(call gb_AllLangResTarget_get_target,sd)
+
+# vim: set noet sw=4 ts=4:
diff --git a/sd/Module_sd.mk b/sd/Module_sd.mk
index 7850ba4..93aba69 100644
--- a/sd/Module_sd.mk
+++ b/sd/Module_sd.mk
@@ -29,6 +29,7 @@ ifneq ($(OS),DRAGONFLY)
$(eval $(call gb_Module_add_check_targets,sd,\
CppunitTest_sd_uimpress \
CppunitTest_sd_import_tests \
+ CppunitTest_sd_export_tests \
CppunitTest_sd_filters_test \
CppunitTest_sd_html_export_tests \
))
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
new file mode 100644
index 0000000..44c5c9a
--- /dev/null
+++ b/sd/qa/unit/export-tests.cxx
@@ -0,0 +1,427 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "sdmodeltestbase.hxx"
+
+#include <svl/stritem.hxx>
+#include <editeng/editobj.hxx>
+#include <editeng/outlobj.hxx>
+#include <editeng/ulspitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/escapementitem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/numitem.hxx>
+#include <editeng/lrspitem.hxx>
+#include <editeng/postitem.hxx>
+#include <rsc/rscsfx.hxx>
+
+#include <svx/svdotext.hxx>
+#include <svx/svdoashp.hxx>
+#include <svx/svdograf.hxx>
+#include <svx/svdogrp.hxx>
+#include <svx/svdomedia.hxx>
+#include <svx/svdoole2.hxx>
+#include <svx/xflclit.hxx>
+#include <animations/animationnodehelper.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
+#include <com/sun/star/animations/XAnimationNode.hpp>
+#include <com/sun/star/animations/XAnimate.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/chart/XChartDocument.hpp>
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/chart2/XDataSeriesContainer.hpp>
+#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
+#include <com/sun/star/chart2/XChartTypeContainer.hpp>
+#include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
+#include <com/sun/star/chart2/data/XDataSequence.hpp>
+#include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
+
+#include <config_features.h>
+
+using namespace ::com::sun::star;
+
+class SdFiltersTest : public SdModelTestBase
+{
+public:
+ void testN821567();
+ void testBnc870233_1();
+ void testBnc870233_2();
+ void testN828390_4();
+ void testN828390_5();
+ void testMediaEmbedding();
+ void testFdo71961();
+ void testN828390();
+ void testBnc880763();
+ void testBnc862510_5();
+
+ CPPUNIT_TEST_SUITE(SdFiltersTest);
+ CPPUNIT_TEST(testN821567);
+ CPPUNIT_TEST(testBnc870233_1);
+ CPPUNIT_TEST(testBnc870233_2);
+ CPPUNIT_TEST(testN828390_4);
+ CPPUNIT_TEST(testN828390_5);
+ CPPUNIT_TEST(testMediaEmbedding);
+ CPPUNIT_TEST(testFdo71961);
+ CPPUNIT_TEST(testN828390);
+ CPPUNIT_TEST(testBnc880763);
+ CPPUNIT_TEST(testBnc862510_5);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void SdFiltersTest::testN821567()
+{
+ OUString bgImage;
+ ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n821567.pptx") );
+
+ xDocShRef = saveAndReload( xDocShRef, ODP );
+ uno::Reference< drawing::XDrawPagesSupplier > xDoc(
+ xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
+ CPPUNIT_ASSERT_MESSAGE( "not exactly one page", xDoc->getDrawPages()->getCount() == 1 );
+ uno::Reference< drawing::XDrawPage > xPage(
+ xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
+
+ uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
+ uno::Any aAny = xPropSet->getPropertyValue( OUString("Background") );
+ if(aAny.hasValue())
+ {
+ uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
+ aAny >>= aXBackgroundPropSet;
+ aAny = aXBackgroundPropSet->getPropertyValue( OUString("FillBitmapName"));
+ aAny >>= bgImage;
+ }
+ CPPUNIT_ASSERT_MESSAGE("Slide Background is not exported properly", !bgImage.isEmpty());
+
+ xDocShRef->DoClose();
+}
+
+namespace {
+
+void checkFontAttributes(const SdrTextObj* pObj, sal_uInt32 nColor,
+ bool bCheckWeight, FontWeight eWeight, bool bCheckItalic, FontItalic eItalic)
+{
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
+ std::vector<EECharAttrib> rLst;
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
+ if( pCharColor )
+ {
+ CPPUNIT_ASSERT_EQUAL( nColor, pCharColor->GetValue().GetColor());
+ }
+
+ if(bCheckWeight)
+ {
+ const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
+ if( pWeight )
+ {
+ CPPUNIT_ASSERT_EQUAL( eWeight, pWeight->GetWeight());
+ }
+ }
+
+ if(bCheckItalic)
+ {
+ const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
+ if( pPosture )
+ {
+ CPPUNIT_ASSERT_EQUAL( eItalic, pPosture->GetPosture());
+ }
+ }
+ }
+
+}
+
+}
+
+void SdFiltersTest::testBnc870233_1()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_1.pptx"));
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // The problem was all shapes had the same font (the last parsed font attribues overwrote all previous ones)
+
+ // First shape has red, bold font
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
+ checkFontAttributes(pObj, sal_uInt32(0xff0000),
+ true, WEIGHT_BOLD, true, ITALIC_NONE);
+ }
+
+ // Second shape has blue, italic font
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
+ checkFontAttributes(pObj, sal_uInt32(0x0000ff),
+ true, WEIGHT_NORMAL, true, ITALIC_NORMAL);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testBnc870233_2()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_2.pptx"));
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // The problem was in some SmartArts font color was wrong
+
+ // First smart art has blue font color (direct formatting)
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
+ checkFontAttributes(pObj, sal_uInt32(0x0000ff),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
+ }
+
+ // Second smart art has "dk2" font color (style)
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
+ checkFontAttributes(pObj, sal_uInt32(0x1F497D),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
+ }
+
+ // Third smart art has white font color (style)
+ {
+ const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 2 ) );
+ checkFontAttributes(pObj, sal_uInt32(0xffffff),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testN828390_4()
+{
+ bool bPassed = false;
+ ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/n828390_4.odp") );
+
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+ {
+ std::vector<EECharAttrib> rLst;
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs(1, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxFontHeightItem * pFontHeight = dynamic_cast<const SvxFontHeightItem *>((*it).pAttr);
+ if( pFontHeight )
+ CPPUNIT_ASSERT_MESSAGE( "Font height is wrong", pFontHeight->GetHeight() == 1129 );
+ const SvxFontItem *pFont = dynamic_cast<const SvxFontItem *>((*it).pAttr);
+ if( pFont )
+ {
+ CPPUNIT_ASSERT_MESSAGE( "Font is wrong", pFont->GetFamilyName().equalsAscii("Arial"));
+ bPassed = true;
+ }
+ const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
+ if( pWeight )
+ CPPUNIT_ASSERT_MESSAGE( "Font Weight is wrong", pWeight->GetWeight() == WEIGHT_BOLD);
+ }
+ }
+ CPPUNIT_ASSERT(bPassed);
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testN828390_5()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/n828390_5.odp") );
+
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+ {
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ const SvxNumBulletItem *pNumFmt = dynamic_cast<const SvxNumBulletItem *>(aEdit.GetPool()->GetItem2(EE_PARA_NUMBULLET, 5));
+ CPPUNIT_ASSERT( pNumFmt );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's relative size is wrong!", pNumFmt->GetNumRule()->GetLevel(1).GetBulletRelSize(), sal_uInt16(75) ); // != 25
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testMediaEmbedding()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/media_embedding.odp"));
+
+#if HAVE_FEATURE_GLTF
+ xDocShRef = saveAndReload( xDocShRef, ODP );
+#endif
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+#if HAVE_FEATURE_GLTF
+ // First object is a glTF model
+ SdrMediaObj *pModelObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 2 ));
+ CPPUNIT_ASSERT_MESSAGE( "missing model", pModelObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Models/duck/duck.json" ), pModelObj->getMediaProperties().getURL());
+ CPPUNIT_ASSERT_EQUAL( OUString( "model/vnd.gltf+json" ), pModelObj->getMediaProperties().getMimeType());
+#else
+ // If glTF is not supported, then the fallback image is imported
+ SdrGrafObj *pGrafic = dynamic_cast<SdrGrafObj*>( pPage->GetObj( 2 ));
+ CPPUNIT_ASSERT_MESSAGE( "Could not load glTF fallback image", pGrafic != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Models/Fallbacks/duck.png" ), pGrafic->GetGrafStreamURL());
+#endif
+
+ // Second object is a sound
+ SdrMediaObj *pMediaObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 3 ));
+ CPPUNIT_ASSERT_MESSAGE( "missing media object", pMediaObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Media/button-1.wav" ), pMediaObj->getMediaProperties().getURL());
+ CPPUNIT_ASSERT_EQUAL( OUString( "application/vnd.sun.star.media" ), pMediaObj->getMediaProperties().getMimeType());
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testFdo71961()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/fdo71961.odp"));
+
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // Export to .pptx changes all text frames to custom shape objects, which obey TextWordWrap property
+ // (which is false for text frames otherwise and is ignored). Check that frames that should wrap still do.
+ SdrObjCustomShape *pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 1 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Text to be always wrapped" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( true, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
+
+ pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 2 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape non-wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( false, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
+
+ pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 3 ));
+ CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
+ CPPUNIT_ASSERT_EQUAL( true, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testN828390()
+{
+ bool bPassed = false;
+ ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n828390.pptx") );
+
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage(1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+ {
+ std::vector<EECharAttrib> rLst;
+ // Get the object
+ SdrObject *pObj = pPage->GetObj(0);
+ SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
+ CPPUNIT_ASSERT( pTxtObj );
+ const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxEscapementItem *pFontEscapement = dynamic_cast<const SvxEscapementItem *>((*it).pAttr);
+ if(pFontEscapement)
+ {
+ if( pFontEscapement->GetEsc() == -25 )
+ {
+ bPassed = true;
+ break;
+ }
+ }
+ }
+ }
+ CPPUNIT_ASSERT_MESSAGE("Subscript not exported properly", bPassed);
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testBnc880763()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc880763.pptx"));
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // Check z-order of the two shapes, use background color to identify them
+ // First object in the background has blue background color
+ const SdrObject *pObj = dynamic_cast<SdrObject *>( pPage->GetObj( 0 ) );
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x0000ff),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue().GetColor());
+
+ // Second object at the front has green background color
+ pObj = dynamic_cast<SdrObject *>( pPage->GetObj( 1 ) );
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x00ff00),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue().GetColor());
+
+ xDocShRef->DoClose();
+}
+
+void SdFiltersTest::testBnc862510_5()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_5.pptx"));
+ xDocShRef = saveAndReload( xDocShRef, PPTX );
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // Same as testBnc870237, but here we check the horizontal spacing
+ const SdrObject* pObj = dynamic_cast<SdrObject*>( pPage->GetObj( 1 ) );
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextUpperDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextLowerDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(7510), (static_cast< const SdrTextRightDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_RIGHTDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextLeftDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LEFTDIST))).GetValue());
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdFiltersTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 79fe2a5..3298b46 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -61,12 +61,8 @@ public:
void testN778859();
void testFdo64512();
void testFdo71075();
- void testN828390();
void testN828390_2();
void testN828390_3();
- void testN828390_4();
- void testN828390_5();
- void testN821567();
void testFdo68594();
void testFdo72998();
void testFdo77027();
@@ -74,13 +70,7 @@ public:
void testN862510_1();
void testN862510_2();
void testN862510_4();
- void testFdo71961();
- void testMediaEmbedding();
void testBnc870237();
- void testBnc870233_1();
- void testBnc870233_2();
- void testBnc880763();
- void testBnc862510_5();
CPPUNIT_TEST_SUITE(SdFiltersTest);
CPPUNIT_TEST(testDocumentLayout);
@@ -89,12 +79,8 @@ public:
CPPUNIT_TEST(testN778859);
CPPUNIT_TEST(testFdo64512);
CPPUNIT_TEST(testFdo71075);
- CPPUNIT_TEST(testN828390);
CPPUNIT_TEST(testN828390_2);
CPPUNIT_TEST(testN828390_3);
- CPPUNIT_TEST(testN828390_4);
- CPPUNIT_TEST(testN828390_5);
- CPPUNIT_TEST(testN821567);
CPPUNIT_TEST(testFdo68594);
CPPUNIT_TEST(testFdo72998);
CPPUNIT_TEST(testFdo77027);
@@ -102,13 +88,7 @@ public:
CPPUNIT_TEST(testN862510_1);
CPPUNIT_TEST(testN862510_2);
CPPUNIT_TEST(testN862510_4);
- CPPUNIT_TEST(testFdo71961);
- CPPUNIT_TEST(testMediaEmbedding);
CPPUNIT_TEST(testBnc870237);
- CPPUNIT_TEST(testBnc870233_1);
- CPPUNIT_TEST(testBnc870233_2);
- CPPUNIT_TEST(testBnc880763);
- CPPUNIT_TEST(testBnc862510_5);
CPPUNIT_TEST_SUITE_END();
};
@@ -238,32 +218,6 @@ void SdFiltersTest::testN759180()
xDocShRef->DoClose();
}
-void SdFiltersTest::testN821567()
-{
- OUString bgImage;
- ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n821567.pptx") );
-
- xDocShRef = saveAndReload( xDocShRef, ODP );
- uno::Reference< drawing::XDrawPagesSupplier > xDoc(
- xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW );
- CPPUNIT_ASSERT_MESSAGE( "not exactly one page", xDoc->getDrawPages()->getCount() == 1 );
- uno::Reference< drawing::XDrawPage > xPage(
- xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
-
- uno::Reference< beans::XPropertySet > xPropSet( xPage, uno::UNO_QUERY );
- uno::Any aAny = xPropSet->getPropertyValue( OUString("Background") );
- if(aAny.hasValue())
- {
- uno::Reference< beans::XPropertySet > aXBackgroundPropSet;
- aAny >>= aXBackgroundPropSet;
- aAny = aXBackgroundPropSet->getPropertyValue( OUString("FillBitmapName"));
- aAny >>= bgImage;
- }
- CPPUNIT_ASSERT_MESSAGE("Slide Background is not exported properly", !bgImage.isEmpty());
-
- xDocShRef->DoClose();
-}
-
void SdFiltersTest::testN862510_1()
{
::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n862510_1.pptx") );
@@ -333,43 +287,6 @@ void SdFiltersTest::testN862510_4()
xDocShRef->DoClose();
}
-void SdFiltersTest::testN828390()
-{
- bool bPassed = false;
- ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n828390.pptx") );
-
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage(1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
- {
- std::vector<EECharAttrib> rLst;
- // Get the object
- SdrObject *pObj = pPage->GetObj(0);
- SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
- CPPUNIT_ASSERT( pTxtObj );
- const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxEscapementItem *pFontEscapement = dynamic_cast<const SvxEscapementItem *>((*it).pAttr);
- if(pFontEscapement)
- {
- if( pFontEscapement->GetEsc() == -25 )
- {
- bPassed = true;
- break;
- }
- }
- }
- }
- CPPUNIT_ASSERT_MESSAGE("Subscript not exported properly", bPassed);
-
- xDocShRef->DoClose();
-}
-
void SdFiltersTest::testN828390_2()
{
::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/pptx/n828390_2.pptx") );
@@ -422,68 +339,6 @@ void SdFiltersTest::testN828390_3()
xDocShRef->DoClose();
}
-void SdFiltersTest::testN828390_4()
-{
- bool bPassed = false;
- ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/n828390_4.odp") );
-
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage(1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
- {
- std::vector<EECharAttrib> rLst;
- SdrObject *pObj = pPage->GetObj(0);
- SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
- CPPUNIT_ASSERT( pTxtObj );
- const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
- aEdit.GetCharAttribs(1, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxFontHeightItem * pFontHeight = dynamic_cast<const SvxFontHeightItem *>((*it).pAttr);
- if( pFontHeight )
- CPPUNIT_ASSERT_MESSAGE( "Font height is wrong", pFontHeight->GetHeight() == 1129 );
- const SvxFontItem *pFont = dynamic_cast<const SvxFontItem *>((*it).pAttr);
- if( pFont )
- {
- CPPUNIT_ASSERT_MESSAGE( "Font is wrong", pFont->GetFamilyName().equalsAscii("Arial"));
- bPassed = true;
- }
- const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
- if( pWeight )
- CPPUNIT_ASSERT_MESSAGE( "Font Weight is wrong", pWeight->GetWeight() == WEIGHT_BOLD);
- }
- }
- CPPUNIT_ASSERT(bPassed);
-
- xDocShRef->DoClose();
-}
-
-void SdFiltersTest::testN828390_5()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL( getURLFromSrc("/sd/qa/unit/data/n828390_5.odp") );
-
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage(1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
- {
- SdrObject *pObj = pPage->GetObj(0);
- SdrTextObj *pTxtObj = dynamic_cast<SdrTextObj *>( pObj );
- CPPUNIT_ASSERT( pTxtObj );
- const EditTextObject& aEdit = pTxtObj->GetOutlinerParaObject()->GetTextObject();
- const SvxNumBulletItem *pNumFmt = dynamic_cast<const SvxNumBulletItem *>(aEdit.GetPool()->GetItem2(EE_PARA_NUMBULLET, 5));
- CPPUNIT_ASSERT( pNumFmt );
- CPPUNIT_ASSERT_EQUAL_MESSAGE( "Bullet's relative size is wrong!", pNumFmt->GetNumRule()->GetLevel(1).GetBulletRelSize(), sal_uInt16(75) ); // != 25
- }
-
- xDocShRef->DoClose();
-}
-
void SdFiltersTest::testN778859()
{
::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/n778859.pptx"));
@@ -677,72 +532,6 @@ void SdFiltersTest::testStrictOOXML()
xDocShRef->DoClose();
}
-void SdFiltersTest::testFdo71961()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/fdo71961.odp"));
-
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
- // Export to .pptx changes all text frames to custom shape objects, which obey TextWordWrap property
- // (which is false for text frames otherwise and is ignored). Check that frames that should wrap still do.
- SdrObjCustomShape *pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 1 ));
- CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "Text to be always wrapped" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
- CPPUNIT_ASSERT_EQUAL( true, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
-
- pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 2 ));
- CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape non-wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
- CPPUNIT_ASSERT_EQUAL( false, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
-
- pTxtObj = dynamic_cast<SdrObjCustomShape *>( pPage->GetObj( 3 ));
- CPPUNIT_ASSERT_MESSAGE( "no text object", pTxtObj != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "Custom shape wrapped text" ), pTxtObj->GetOutlinerParaObject()->GetTextObject().GetText(0));
- CPPUNIT_ASSERT_EQUAL( true, (static_cast<const SdrTextWordWrapItem&>(pTxtObj->GetMergedItem(SDRATTR_TEXT_WORDWRAP))).GetValue());
-
- xDocShRef->DoClose();
-}
-
-void SdFiltersTest::testMediaEmbedding()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/media_embedding.odp"));
-
-#if HAVE_FEATURE_GLTF
- xDocShRef = saveAndReload( xDocShRef, ODP );
-#endif
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
-#if HAVE_FEATURE_GLTF
- // First object is a glTF model
- SdrMediaObj *pModelObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 2 ));
- CPPUNIT_ASSERT_MESSAGE( "missing model", pModelObj != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Models/duck/duck.json" ), pModelObj->getMediaProperties().getURL());
- CPPUNIT_ASSERT_EQUAL( OUString( "model/vnd.gltf+json" ), pModelObj->getMediaProperties().getMimeType());
-#else
- // If glTF is not supported, then the fallback image is imported
- SdrGrafObj *pGrafic = dynamic_cast<SdrGrafObj*>( pPage->GetObj( 2 ));
- CPPUNIT_ASSERT_MESSAGE( "Could not load glTF fallback image", pGrafic != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Models/Fallbacks/duck.png" ), pGrafic->GetGrafStreamURL());
-#endif
-
- // Second object is a sound
- SdrMediaObj *pMediaObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 3 ));
- CPPUNIT_ASSERT_MESSAGE( "missing media object", pMediaObj != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Media/button-1.wav" ), pMediaObj->getMediaProperties().getURL());
- CPPUNIT_ASSERT_EQUAL( OUString( "application/vnd.sun.star.media" ), pMediaObj->getMediaProperties().getMimeType());
-
- xDocShRef->DoClose();
-}
-
void SdFiltersTest::testBnc870237()
{
::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870237.pptx"));
@@ -763,156 +552,6 @@ void SdFiltersTest::testBnc870237()
xDocShRef->DoClose();
}
-namespace {
-
-void checkFontAttributes(const SdrTextObj* pObj, sal_uInt32 nColor,
- bool bCheckWeight, FontWeight eWeight, bool bCheckItalic, FontItalic eItalic)
-{
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( nColor, pCharColor->GetValue().GetColor());
- }
-
- if(bCheckWeight)
- {
- const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
- if( pWeight )
- {
- CPPUNIT_ASSERT_EQUAL( eWeight, pWeight->GetWeight());
- }
- }
-
- if(bCheckItalic)
- {
- const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
- if( pPosture )
- {
- CPPUNIT_ASSERT_EQUAL( eItalic, pPosture->GetPosture());
- }
- }
- }
-
-}
-
-}
-
-void SdFiltersTest::testBnc870233_1()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_1.pptx"));
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
- // The problem was all shapes had the same font (the last parsed font attribues overwrote all previous ones)
-
- // First shape has red, bold font
- {
- const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
- checkFontAttributes(pObj, sal_uInt32(0xff0000),
- true, WEIGHT_BOLD, true, ITALIC_NONE);
- }
-
- // Second shape has blue, italic font
- {
- const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
- checkFontAttributes(pObj, sal_uInt32(0x0000ff),
- true, WEIGHT_NORMAL, true, ITALIC_NORMAL);
- }
-
- xDocShRef->DoClose();
-}
-
-void SdFiltersTest::testBnc870233_2()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_2.pptx"));
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
- // The problem was in some SmartArts font color was wrong
-
- // First smart art has blue font color (direct formatting)
- {
- const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
- checkFontAttributes(pObj, sal_uInt32(0x0000ff),
- false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
- }
-
- // Second smart art has "dk2" font color (style)
- {
- const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
- checkFontAttributes(pObj, sal_uInt32(0x1F497D),
- false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
- }
-
- // Third smart art has white font color (style)
- {
- const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 2 ) );
- checkFontAttributes(pObj, sal_uInt32(0xffffff),
- false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
- }
-
- xDocShRef->DoClose();
-}
-
-void SdFiltersTest::testBnc880763()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc880763.pptx"));
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
- // Check z-order of the two shapes, use background color to identify them
- // First object in the background has blue background color
- const SdrObject *pObj = dynamic_cast<SdrObject *>( pPage->GetObj( 0 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x0000ff),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue().GetColor());
-
- // Second object at the front has green background color
- pObj = dynamic_cast<SdrObject *>( pPage->GetObj( 1 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x00ff00),(static_cast< const XColorItem& >(pObj->GetMergedItem(XATTR_FILLCOLOR))).GetColorValue().GetColor());
-
- xDocShRef->DoClose();
-}
-
-void SdFiltersTest::testBnc862510_5()
-{
- ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc862510_5.pptx"));
- xDocShRef = saveAndReload( xDocShRef, PPTX );
-
- SdDrawDocument *pDoc = xDocShRef->GetDoc();
- CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
- const SdrPage *pPage = pDoc->GetPage (1);
- CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
-
- // Same as testBnc870237, but here we check the horizontal spacing
- const SdrObject* pObj = dynamic_cast<SdrObject*>( pPage->GetObj( 1 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextUpperDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST))).GetValue());
- CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextLowerDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST))).GetValue());
- CPPUNIT_ASSERT_EQUAL( sal_Int32(7510), (static_cast< const SdrTextRightDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_RIGHTDIST))).GetValue());
- CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextLeftDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LEFTDIST))).GetValue());
-
- xDocShRef->DoClose();
-}
-
CPPUNIT_TEST_SUITE_REGISTRATION(SdFiltersTest);
CPPUNIT_PLUGIN_IMPLEMENT();
commit b5608fd429790a3d1153341b2c86303b7090b15a
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 04:32:34 2014 +0200
extract a bit more code
Change-Id: I24da9b5e8594d34ff7d5c3f958c2fd1c5cad1908
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 959c754..79fe2a5 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -766,7 +766,7 @@ void SdFiltersTest::testBnc870237()
namespace {
void checkFontAttributes(const SdrTextObj* pObj, sal_uInt32 nColor,
- FontWeight eWeight, FontItalic eItalic)
+ bool bCheckWeight, FontWeight eWeight, bool bCheckItalic, FontItalic eItalic)
{
CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
@@ -779,15 +779,23 @@ void checkFontAttributes(const SdrTextObj* pObj, sal_uInt32 nColor,
{
CPPUNIT_ASSERT_EQUAL( nColor, pCharColor->GetValue().GetColor());
}
- const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
- if( pWeight )
+
+ if(bCheckWeight)
{
- CPPUNIT_ASSERT_EQUAL( eWeight, pWeight->GetWeight());
+ const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
+ if( pWeight )
+ {
+ CPPUNIT_ASSERT_EQUAL( eWeight, pWeight->GetWeight());
+ }
}
- const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
- if( pPosture )
+
+ if(bCheckItalic)
{
- CPPUNIT_ASSERT_EQUAL( eItalic, pPosture->GetPosture());
+ const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
+ if( pPosture )
+ {
+ CPPUNIT_ASSERT_EQUAL( eItalic, pPosture->GetPosture());
+ }
}
}
@@ -810,13 +818,15 @@ void SdFiltersTest::testBnc870233_1()
// First shape has red, bold font
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
- checkFontAttributes(pObj, sal_uInt32(0xff0000), WEIGHT_BOLD, ITALIC_NONE);
+ checkFontAttributes(pObj, sal_uInt32(0xff0000),
+ true, WEIGHT_BOLD, true, ITALIC_NONE);
}
// Second shape has blue, italic font
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
- checkFontAttributes(pObj, sal_uInt32(0x0000ff), WEIGHT_NORMAL, ITALIC_NORMAL);
+ checkFontAttributes(pObj, sal_uInt32(0x0000ff),
+ true, WEIGHT_NORMAL, true, ITALIC_NORMAL);
}
xDocShRef->DoClose();
@@ -837,52 +847,22 @@ void SdFiltersTest::testBnc870233_2()
// First smart art has blue font color (direct formatting)
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x0000ff), pCharColor->GetValue().GetColor());
- }
- }
+ checkFontAttributes(pObj, sal_uInt32(0x0000ff),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
}
// Second smart art has "dk2" font color (style)
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x1F497D), pCharColor->GetValue().GetColor());
- }
- }
+ checkFontAttributes(pObj, sal_uInt32(0x1F497D),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
}
// Third smart art has white font color (style)
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 2 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0xffffff), pCharColor->GetValue().GetColor());
- }
- }
+ checkFontAttributes(pObj, sal_uInt32(0xffffff),
+ false, WEIGHT_DONTKNOW, false, ITALIC_NONE);
}
xDocShRef->DoClose();
commit 560ef65496465610d2f3a19611ee10e4a399460b
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 04:26:47 2014 +0200
extract some shared code
Change-Id: Idfbbee6dc0bd5a63ae46ea8375270a475ef3521b
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 1e6d189..959c754 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -763,6 +763,38 @@ void SdFiltersTest::testBnc870237()
xDocShRef->DoClose();
}
+namespace {
+
+void checkFontAttributes(const SdrTextObj* pObj, sal_uInt32 nColor,
+ FontWeight eWeight, FontItalic eItalic)
+{
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
+ std::vector<EECharAttrib> rLst;
+ aEdit.GetCharAttribs(0, rLst);
+ for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
+ {
+ const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
+ if( pCharColor )
+ {
+ CPPUNIT_ASSERT_EQUAL( nColor, pCharColor->GetValue().GetColor());
+ }
+ const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
+ if( pWeight )
+ {
+ CPPUNIT_ASSERT_EQUAL( eWeight, pWeight->GetWeight());
+ }
+ const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
+ if( pPosture )
+ {
+ CPPUNIT_ASSERT_EQUAL( eItalic, pPosture->GetPosture());
+ }
+ }
+
+}
+
+}
+
void SdFiltersTest::testBnc870233_1()
{
::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870233_1.pptx"));
@@ -778,55 +810,13 @@ void SdFiltersTest::testBnc870233_1()
// First shape has red, bold font
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 0 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0xff0000), pCharColor->GetValue().GetColor());
- }
- const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
- if( pWeight )
- {
- CPPUNIT_ASSERT_EQUAL( WEIGHT_BOLD, pWeight->GetWeight());
- }
- const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
- if( pPosture )
- {
- CPPUNIT_ASSERT_EQUAL( ITALIC_NONE, pPosture->GetPosture());
- }
- }
+ checkFontAttributes(pObj, sal_uInt32(0xff0000), WEIGHT_BOLD, ITALIC_NONE);
}
// Second shape has blue, italic font
{
const SdrTextObj *pObj = dynamic_cast<SdrTextObj *>( pPage->GetObj( 1 ) );
- CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
- const EditTextObject& aEdit = pObj->GetOutlinerParaObject()->GetTextObject();
- std::vector<EECharAttrib> rLst;
- aEdit.GetCharAttribs(0, rLst);
- for( std::vector<EECharAttrib>::reverse_iterator it = rLst.rbegin(); it!=rLst.rend(); ++it)
- {
- const SvxColorItem *pCharColor = dynamic_cast<const SvxColorItem *>((*it).pAttr);
- if( pCharColor )
- {
- CPPUNIT_ASSERT_EQUAL( sal_uInt32(0x0000ff), pCharColor->GetValue().GetColor());
- }
- const SvxWeightItem *pWeight = dynamic_cast<const SvxWeightItem *>((*it).pAttr);
- if( pWeight )
- {
- CPPUNIT_ASSERT_EQUAL( WEIGHT_NORMAL, pWeight->GetWeight());
- }
- const SvxPostureItem *pPosture = dynamic_cast<const SvxPostureItem *>((*it).pAttr);
- if( pPosture )
- {
- CPPUNIT_ASSERT_EQUAL( ITALIC_NORMAL, pPosture->GetPosture());
- }
- }
+ checkFontAttributes(pObj, sal_uInt32(0x0000ff), WEIGHT_NORMAL, ITALIC_NORMAL);
}
xDocShRef->DoClose();
commit a1e8998571e35427a085c3e3813789ce4fef852a
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 04:16:54 2014 +0200
fix wrong operator<< for Color
Change-Id: Iccaf173fc15466f8d0604e3d0e4cd2c790902db4
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 1b10e29..1e6d189 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -548,7 +548,7 @@ void SdFiltersTest::testFdo72998()
// FIXME copypasta
std::ostream& operator<<(std::ostream& rStrm, const Color& rColor)
{
- rStrm << "Color: R:" << rColor.GetRed() << " G:" << rColor.GetGreen() << " B: << rColor.GetBlue()";
+ rStrm << "Color: R:" << rColor.GetRed() << " G:" << rColor.GetGreen() << " B: " << rColor.GetBlue();
return rStrm;
}
commit a255602967bbfc353a22aadbe370879c1733bcb8
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Fri Jul 4 04:11:31 2014 +0200
don't inherit the style from the title, related bnc#880488
It seems that inheriting the style from the title for the subtitle is
just wrong.
Change-Id: Icbedf3e934b13514e50a1354552e5d6a8d139095
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx
index c5a2d06..8b02702 100644
--- a/oox/source/ppt/pptshape.cxx
+++ b/oox/source/ppt/pptshape.cxx
@@ -149,7 +149,6 @@ void PPTShape::addShape(
sServiceName = OUString();
else {
sServiceName = "com.sun.star.presentation.SubtitleShape";
- aMasterTextListStyle = rSlidePersist.getMasterPersist().get() ? rSlidePersist.getMasterPersist()->getTitleTextStyle() : rSlidePersist.getTitleTextStyle();
}
}
break;
More information about the Libreoffice-commits
mailing list