summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorChris Sherlock <chris.sherlock79@gmail.com>2021-10-02 12:42:57 +1000
committerTomaž Vajngerl <quikee@gmail.com>2021-10-15 13:11:28 +0200
commit6daf40e440e457d1560d7fb13ebda8a17efbfe84 (patch)
treec1caa5f747b5a95517665f2e2180d0e4ef27d5ec /vcl
parentdb7676137ad91a1e9e0449afffc639ce73b40f4a (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.cxx46
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();