vcl/Module_vcl.mk | 1 vcl/qa/cppunit/outdev.cxx | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+)
New commits: commit 866a31b53bfd35404f0717a16858a000e9d1e895 Author: Michael Meeks <[email protected]> Date: Fri Nov 28 16:11:25 2014 +0000 vcl: initial outdev unit test - for VirtualDevices. Change-Id: Ia2bb1f8110c738cfbf6ff84293af115b32abeb93 diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk index 5d1d2d2..655aadb 100644 --- a/vcl/Module_vcl.mk +++ b/vcl/Module_vcl.mk @@ -100,6 +100,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 0000000..47e8dcf --- /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: */ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
