diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2021-09-29 12:10:24 +1000 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-10-06 14:03:24 +0200 |
commit | 4fb0d442316e914d3a75e317d6756d95b920a3e1 (patch) | |
tree | 001c19f16aedba483b48a560e6a8bcf8af68ccaf /vcl | |
parent | 203068319e17377cafb9e298a910f42fde417a21 (diff) |
vcl: test OutputDevice::DrawPixel()
Change-Id: I82651c6f41f46bb1097a69f3bcddcac2486a5baa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122794
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/outdev.cxx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx index 5bcac7c67f45..1c5bfe8d98e2 100644 --- a/vcl/qa/cppunit/outdev.cxx +++ b/vcl/qa/cppunit/outdev.cxx @@ -66,6 +66,7 @@ public: void testSystemTextColor(); void testShouldDrawWavePixelAsRect(); void testGetWaveLineSize(); + void testDrawPixel(); CPPUNIT_TEST_SUITE(VclOutdevTest); CPPUNIT_TEST(testVirtualDevice); @@ -105,6 +106,7 @@ public: CPPUNIT_TEST(testSystemTextColor); CPPUNIT_TEST(testShouldDrawWavePixelAsRect); CPPUNIT_TEST(testGetWaveLineSize); + CPPUNIT_TEST(testDrawPixel); CPPUNIT_TEST_SUITE_END(); }; @@ -1021,6 +1023,49 @@ void VclOutdevTest::testGetWaveLineSize() } } +void VclOutdevTest::testDrawPixel() +{ + { + ScopedVclPtrInstance<VirtualDevice> pVDev; + GDIMetaFile aMtf; + aMtf.Record(pVDev.get()); + + pVDev->SetOutputSizePixel(Size(1, 1)); + pVDev->SetLineColor(COL_RED); + pVDev->DrawPixel(Point(0, 0), COL_GREEN); + + CPPUNIT_ASSERT_EQUAL_MESSAGE("Color not green", COL_GREEN, pVDev->GetPixel(Point(0, 0))); + + MetaAction* pAction = aMtf.GetAction(aMtf.GetActionSize() - 1); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Not a pixel action", MetaActionType::PIXEL, + pAction->GetType()); + MetaPixelAction* pPixelAction = dynamic_cast<MetaPixelAction*>(pAction); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Pixel action has incorrect position", Point(0, 0), + pPixelAction->GetPoint()); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Pixel action is wrong color", COL_GREEN, + pPixelAction->GetColor()); + } + + { + ScopedVclPtrInstance<VirtualDevice> pVDev; + GDIMetaFile aMtf; + aMtf.Record(pVDev.get()); + + pVDev->SetOutputSizePixel(Size(1, 1)); + pVDev->SetLineColor(COL_RED); + pVDev->DrawPixel(Point(0, 0)); + + CPPUNIT_ASSERT_EQUAL_MESSAGE("Color not red", COL_RED, pVDev->GetPixel(Point(0, 0))); + + MetaAction* pAction = aMtf.GetAction(aMtf.GetActionSize() - 1); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Not a point action", MetaActionType::POINT, + pAction->GetType()); + MetaPointAction* pPointAction = dynamic_cast<MetaPointAction*>(pAction); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Pixel action has incorrect position", Point(0, 0), + pPointAction->GetPoint()); + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(VclOutdevTest); CPPUNIT_PLUGIN_IMPLEMENT(); |