diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2021-10-02 12:42:57 +1000 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2021-10-15 13:11:28 +0200 |
commit | 6daf40e440e457d1560d7fb13ebda8a17efbfe84 (patch) | |
tree | c1caa5f747b5a95517665f2e2180d0e4ef27d5ec /vcl | |
parent | db7676137ad91a1e9e0449afffc639ce73b40f4a (diff) |
vcl: test OutputDevice::DrawPolygon()
Change-Id: Ic295a5ef471d1cbb05bddbc0a3757feebc9a17f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122976
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/outdev.cxx | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx index 6429e7c01220..799a7fdc8708 100644 --- a/vcl/qa/cppunit/outdev.cxx +++ b/vcl/qa/cppunit/outdev.cxx @@ -11,6 +11,7 @@ #include <test/outputdevice.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> +#include <basegfx/numeric/ftools.hxx> #include <basegfx/polygon/b2dpolygon.hxx> #include <basegfx/vector/b2enums.hxx> @@ -84,6 +85,7 @@ public: void testDrawBorder(); void testDrawWaveLine(); void testDrawPolyLine(); + void testDrawPolygon(); CPPUNIT_TEST_SUITE(VclOutdevTest); CPPUNIT_TEST(testVirtualDevice); @@ -135,6 +137,7 @@ public: CPPUNIT_TEST(testDrawBorder); CPPUNIT_TEST(testDrawWaveLine); CPPUNIT_TEST(testDrawPolyLine); + CPPUNIT_TEST(testDrawPolygon); CPPUNIT_TEST_SUITE_END(); }; @@ -1875,7 +1878,7 @@ void VclOutdevTest::testDrawPolyLine() aLineInfo.SetLineCap(css::drawing::LineCap_BUTT); pVDev->DrawPolyLine(aPolygon, 3, basegfx::B2DLineJoin::Bevel, css::drawing::LineCap_BUTT, - 15.0); + basegfx::deg2rad(15.0)); MetaAction* pAction = aMtf.GetAction(INITIAL_SETUP_ACTION_COUNT); CPPUNIT_ASSERT_EQUAL_MESSAGE("Not a polygon action", MetaActionType::POLYLINE, @@ -1903,6 +1906,47 @@ void VclOutdevTest::testDrawPolyLine() } } +void VclOutdevTest::testDrawPolygon() +{ + { + ScopedVclPtrInstance<VirtualDevice> pVDev; + GDIMetaFile aMtf; + aMtf.Record(pVDev.get()); + + pVDev->SetOutputSizePixel(Size(100, 100)); + tools::Polygon aPolygon(vcl::test::OutputDeviceTestCommon::createClosedBezierLoop( + tools::Rectangle(Point(10, 10), Size(80, 8)))); + + pVDev->DrawPolygon(aPolygon); + + MetaAction* pAction = aMtf.GetAction(INITIAL_SETUP_ACTION_COUNT); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Not a polygon action", MetaActionType::POLYGON, + pAction->GetType()); + MetaPolygonAction* pPolygonAction = dynamic_cast<MetaPolygonAction*>(pAction); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Polygon in polygon action is wrong", aPolygon, + pPolygonAction->GetPolygon()); + } + + { + ScopedVclPtrInstance<VirtualDevice> pVDev; + GDIMetaFile aMtf; + aMtf.Record(pVDev.get()); + + pVDev->SetOutputSizePixel(Size(100, 100)); + tools::Polygon aPolygon(vcl::test::OutputDeviceTestCommon::createClosedBezierLoop( + tools::Rectangle(Point(10, 10), Size(80, 8)))); + + pVDev->DrawPolygon(aPolygon); + + MetaAction* pAction = aMtf.GetAction(INITIAL_SETUP_ACTION_COUNT); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Not a polygon action", MetaActionType::POLYGON, + pAction->GetType()); + MetaPolygonAction* pPolygonAction = dynamic_cast<MetaPolygonAction*>(pAction); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Polygon in polygon action is wrong", aPolygon, + pPolygonAction->GetPolygon()); + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(VclOutdevTest); CPPUNIT_PLUGIN_IMPLEMENT(); |