Kaydet (Commit) 93596ffc authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Tomaž Vajngerl

Fix exporting bitmap table + test

Change-Id: I0577de02000c6aeb45bf1e950b9212beadacb05b
Reviewed-on: https://gerrit.libreoffice.org/50334Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
üst 87dbef32
......@@ -160,7 +160,7 @@ class SVX_DLLPUBLIC XPropertyList : public cppu::OWeakObject
private:
SAL_DLLPRIVATE void* operator new(size_t);
protected:
SAL_DLLPRIVATE void operator delete(void *);
void operator delete(void *);
protected:
XPropertyListType meType;
OUString maName; // not persistent
......
......@@ -13,19 +13,30 @@ $(eval $(call gb_CppunitTest_use_external,svx_unit,boost_headers))
$(eval $(call gb_CppunitTest_use_sdk_api,svx_unit))
$(eval $(call gb_CppunitTest_set_include,svx_unit,\
-I$(SRCDIR)/svx/source/inc \
-I$(SRCDIR)/svx/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_add_exception_objects,svx_unit, \
svx/qa/unit/svdraw/test_SdrTextObject \
svx/qa/unit/xoutdev \
svx/qa/unit/XTableImportExportTest \
))
$(eval $(call gb_CppunitTest_use_libraries,svx_unit, \
sal \
sfx \
svxcore \
svx \
tl \
unotest \
vcl \
utl \
comphelper \
cppuhelper \
cppu \
))
$(eval $(call gb_CppunitTest_use_sdk_api,svx_unit))
......
/* -*- 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 <config_features.h>
#include <cppunit/TestAssert.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <sal/types.h>
#include <sfx2/app.hxx>
#include <unotools/tempfile.hxx>
#include <svx/xtable.hxx>
#include <vcl/bitmapex.hxx>
#include <svx/XPropertyTable.hxx>
#include <xmlxtexp.hxx>
#include <com/sun/star/awt/XBitmap.hpp>
using namespace css;
class XTableImportExportTest : public CppUnit::TestFixture
{
public:
void testImportExport();
virtual void setUp() override
{
CppUnit::TestFixture::setUp();
SfxApplication::GetOrCreate();
}
CPPUNIT_TEST_SUITE(XTableImportExportTest);
CPPUNIT_TEST(testImportExport);
CPPUNIT_TEST_SUITE_END();
};
void XTableImportExportTest::testImportExport()
{
utl::TempFile aTempFile(nullptr, true);
aTempFile.EnableKillingFile();
OUString aTempURL = aTempFile.GetURL();
BitmapChecksum aChecksum(0);
{
XBitmapList xBitmapList(aTempURL, "REF");
uno::Reference<container::XNameContainer> xNameContainer(xBitmapList.createInstance());
CPPUNIT_ASSERT(xNameContainer.is());
Bitmap aBitmap(Size(5, 5), 24);
aBitmap.Erase(COL_RED);
BitmapEx aBitmapEx(aBitmap);
Graphic aGraphic(aBitmapEx);
uno::Reference<awt::XBitmap> xBitmap(aGraphic.GetXGraphic(), css::uno::UNO_QUERY);
xNameContainer->insertByName("SomeBitmap", uno::makeAny(xBitmap));
xBitmapList.Save();
aChecksum = aBitmap.GetChecksum();
}
{
XBitmapList xBitmapList(aTempURL, "REF");
xBitmapList.Load();
uno::Reference<container::XNameContainer> xNameContainer(xBitmapList.createInstance());
CPPUNIT_ASSERT(xNameContainer.is());
uno::Any aAny = xNameContainer->getByName("SomeBitmap");
CPPUNIT_ASSERT(aAny.has<uno::Reference<awt::XBitmap>>());
auto xBitmap = aAny.get<uno::Reference<awt::XBitmap>>();
CPPUNIT_ASSERT(xBitmap.is());
uno::Reference<graphic::XGraphic> xGraphic(xBitmap, uno::UNO_QUERY);
CPPUNIT_ASSERT(xGraphic.is());
Graphic aGraphic(xGraphic);
CPPUNIT_ASSERT(aGraphic);
Bitmap aBitmap = aGraphic.GetBitmapEx().GetBitmap();
CPPUNIT_ASSERT_EQUAL(aChecksum, aBitmap.GetChecksum());
}
}
CPPUNIT_TEST_SUITE_REGISTRATION(XTableImportExportTest);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -204,7 +204,7 @@ bool SvxXMLXTableExportComponent::save(
INetURLObject aURLObj( rURL );
bool bToStorage = aURLObj.GetProtocol() == INetProtocol::NotValid; // a relative path
bool bSaveAsStorage = xTable->getElementType() == cppu::UnoType<OUString>::get();
bool bSaveAsStorage = xTable->getElementType() == cppu::UnoType<awt::XBitmap>::get();
if( pOptName )
*pOptName = rURL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment