diff options
-rw-r--r-- | vcl/CppunitTest_vcl_outdev.mk | 52 | ||||
-rw-r--r-- | vcl/Module_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/qa/cppunit/outdev.cxx | 67 |
3 files changed, 120 insertions, 0 deletions
diff --git a/vcl/CppunitTest_vcl_outdev.mk b/vcl/CppunitTest_vcl_outdev.mk new file mode 100644 index 000000000000..a5adcee81e26 --- /dev/null +++ b/vcl/CppunitTest_vcl_outdev.mk @@ -0,0 +1,52 @@ +# -*- 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,vcl_outdev)) + +$(eval $(call gb_CppunitTest_set_include,vcl_outdev,\ + $$(INCLUDE) \ + -I$(SRCDIR)/vcl/inc \ +)) + +$(eval $(call gb_CppunitTest_add_exception_objects,vcl_outdev, \ + vcl/qa/cppunit/outdev \ +)) + +$(eval $(call gb_CppunitTest_use_externals,vcl_outdev,boost_headers)) + +$(eval $(call gb_CppunitTest_use_libraries,vcl_outdev, \ + comphelper \ + cppu \ + cppuhelper \ + sal \ + svt \ + test \ + tl \ + unotest \ + vcl \ + $(gb_UWINAPI) \ +)) + +$(eval $(call gb_CppunitTest_use_api,vcl_outdev,\ + udkapi \ + offapi \ +)) + +$(eval $(call gb_CppunitTest_use_ure,vcl_outdev)) +$(eval $(call gb_CppunitTest_use_vcl,vcl_outdev)) + +$(eval $(call gb_CppunitTest_use_components,vcl_outdev,\ + configmgr/source/configmgr \ + i18npool/util/i18npool \ + ucb/source/core/ucb1 \ +)) + +$(eval $(call gb_CppunitTest_use_configuration,vcl_outdev)) + +# vim: set noet sw=4 ts=4: diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk index 01db2e762794..329740a0bac1 100644 --- a/vcl/Module_vcl.mk +++ b/vcl/Module_vcl.mk @@ -101,6 +101,7 @@ $(eval $(call gb_Module_add_check_targets,vcl,\ CppunitTest_vcl_fontcharmap \ CppunitTest_vcl_complextext \ CppunitTest_vcl_filters_test \ + CppunitTest_vcl_outdev \ CppunitTest_vcl_app_test \ CppunitTest_vcl_wmf_test \ )) diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx new file mode 100644 index 000000000000..47e8dcfece70 --- /dev/null +++ b/vcl/qa/cppunit/outdev.cxx @@ -0,0 +1,67 @@ +/* -*- 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 <unotest/filters-test.hxx> +#include <test/bootstrapfixture.hxx> + +#include <vcl/virdev.hxx> +#include <vcl/salbtype.hxx> +#include <vcl/bmpacc.hxx> +#include <vcl/wrkwin.hxx> + +class VclOutdevTest : public test::BootstrapFixture +{ +public: + VclOutdevTest() : BootstrapFixture(true, false) {} + + void testVirtualDevice(); + + CPPUNIT_TEST_SUITE(VclOutdevTest); + CPPUNIT_TEST(testVirtualDevice); + CPPUNIT_TEST_SUITE_END(); +}; + +void VclOutdevTest::testVirtualDevice() +{ + VirtualDevice aVDev; + aVDev.SetOutputSizePixel(Size(32,32)); + aVDev.SetBackground(Wallpaper(COL_WHITE)); + aVDev.Erase(); + aVDev.DrawPixel(Point(1,2),COL_GREEN); + aVDev.DrawPixel(Point(31,30),COL_RED); + + CPPUNIT_ASSERT(aVDev.GetPixel(Point(0,0)) == COL_WHITE); + CPPUNIT_ASSERT(aVDev.GetPixel(Point(1,2)) == COL_GREEN); + CPPUNIT_ASSERT(aVDev.GetPixel(Point(31,30)) == COL_RED); + CPPUNIT_ASSERT(aVDev.GetPixel(Point(30,31)) == COL_WHITE); + + Size aSize = aVDev.GetOutputSizePixel(); + CPPUNIT_ASSERT(aSize == Size(32,32)); + + Bitmap aBmp = aVDev.GetBitmap(Point(),aSize); + Bitmap::ScopedReadAccess pAcc(aBmp); + + // Gotcha: y and x swap for BitmapReadAccess: deep joy. + CPPUNIT_ASSERT(pAcc->GetPixel(0,0) == Color(COL_WHITE)); + CPPUNIT_ASSERT(pAcc->GetPixel(2,1) == Color(COL_GREEN)); + CPPUNIT_ASSERT(pAcc->GetPixel(30,31) == Color(COL_RED)); + CPPUNIT_ASSERT(pAcc->GetPixel(31,30) == Color(COL_WHITE)); + +#if 0 + vcl::Window* pWin = new WorkWindow( (vcl::Window *)NULL ); + CPPUNIT_ASSERT( pWin != NULL ); + OutputDevice *pOutDev = static_cast< OutputDevice * >( pWin ); +#endif +} + +CPPUNIT_TEST_SUITE_REGISTRATION(VclOutdevTest); + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |