Evan Stade : gdiplus/tests: Added pen dash array tests.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jul 26 06:37:27 CDT 2007
Module: wine
Branch: master
Commit: a8fd94b126f38283d65bf0c88493ef4a3f0837d6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8fd94b126f38283d65bf0c88493ef4a3f0837d6
Author: Evan Stade <estade at gmail.com>
Date: Wed Jul 25 19:15:43 2007 -0700
gdiplus/tests: Added pen dash array tests.
---
dlls/gdiplus/tests/pen.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/dlls/gdiplus/tests/pen.c b/dlls/gdiplus/tests/pen.c
index 0238aac..5221423 100644
--- a/dlls/gdiplus/tests/pen.c
+++ b/dlls/gdiplus/tests/pen.c
@@ -19,12 +19,14 @@
*/
#include <stdarg.h>
+#include <math.h>
#include "windef.h"
#include "gdiplus.h"
#include "wine/test.h"
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n", expected, got)
+#define expectf(expected, got) ok(fabs(got - expected) < 0.1, "Expected %.2f, got %.2f\n", expected, got)
static void test_startup(void)
{
@@ -116,6 +118,71 @@ static void test_brushfill(void)
GdipDeletePen(pen);
}
+static void test_dasharray(void)
+{
+ GpPen *pen;
+ GpDashStyle style;
+ GpStatus status;
+ REAL dashes[12];
+
+ GdipCreatePen1(0xdeadbeef, 10.0, UnitWorld, &pen);
+ dashes[0] = 10.0;
+ dashes[1] = 11.0;
+ dashes[2] = 12.0;
+ dashes[3] = 13.0;
+ dashes[4] = 14.0;
+ dashes[5] = -100.0;
+ dashes[6] = -100.0;
+
+ /* setting the array sets the type to custom */
+ GdipGetPenDashStyle(pen, &style);
+ expect(DashStyleSolid, style);
+ status = GdipSetPenDashArray(pen, dashes, 2);
+ expect(Ok, status);
+ GdipGetPenDashStyle(pen, &style);
+ expect(DashStyleCustom, style);
+
+ /* Getting the array on a non-custom pen returns invalid parameter (unless
+ * you are getting 0 elements).*/
+ GdipSetPenDashStyle(pen, DashStyleSolid);
+ status = GdipGetPenDashArray(pen, &dashes[5], 2);
+ expect(InvalidParameter, status);
+ status = GdipGetPenDashArray(pen, &dashes[5], 0);
+ expect(Ok, status);
+
+ /* What does setting DashStyleCustom do to the array length? */
+ GdipSetPenDashArray(pen, dashes, 2);
+ GdipSetPenDashStyle(pen, DashStyleCustom);
+ status = GdipGetPenDashArray(pen, &dashes[5], 2);
+ expect(Ok, status);
+ expectf(10.0, dashes[5]);
+ expectf(11.0, dashes[6]);
+
+ /* Set the array, then get with different sized buffers. */
+ status = GdipSetPenDashArray(pen, dashes, 5);
+ expect(Ok, status);
+ dashes[5] = -100.0;
+ dashes[6] = -100.0;
+ status = GdipGetPenDashArray(pen, &dashes[5], 1);
+ expect(Ok, status); /* not InsufficientBuffer! */
+ expectf(10.0, dashes[5]);
+ expectf(-100.0, dashes[6]);
+ dashes[5] = -100.0;
+ status = GdipGetPenDashArray(pen, &dashes[5], 6);
+ expect(InvalidParameter, status); /* not Ok! */
+ expectf(-100.0, dashes[5]);
+ expectf(-100.0, dashes[6]);
+
+ /* Try to set with count = 0. */
+ GdipSetPenDashStyle(pen, DashStyleDot);
+ status = GdipSetPenDashArray(pen, dashes, 0);
+ expect(OutOfMemory, status);
+ GdipGetPenDashStyle(pen, &style);
+ expect(DashStyleDot, style);
+
+ GdipDeletePen(pen);
+}
+
START_TEST(pen)
{
struct GdiplusStartupInput gdiplusStartupInput;
@@ -132,6 +199,7 @@ START_TEST(pen)
test_constructor_destructor();
test_brushfill();
+ test_dasharray();
GdiplusShutdown(gdiplusToken);
}
More information about the wine-cvs
mailing list