[Gdiplus 3/5] Tests for region equality
Adam Petaccia
adam at tpetaccia.com
Sat Aug 16 22:28:10 CDT 2008
---
dlls/gdiplus/tests/region.c | 107 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 0 deletions(-)
diff --git a/dlls/gdiplus/tests/region.c b/dlls/gdiplus/tests/region.c
index 6072840..7850dc0 100644
--- a/dlls/gdiplus/tests/region.c
+++ b/dlls/gdiplus/tests/region.c
@@ -463,6 +463,112 @@ static void test_getregiondata(void)
expect(Ok, status);
}
+static void test_equals(void)
+{
+ GpStatus stat;
+ GpRectF rect;
+ GpRegion *region, *region2;
+ GpPath* path;
+ HDC hdc = GetDC(0);
+ GpGraphics* graphics;
+ BOOL equals;
+
+ stat = GdipCreateFromHDC(hdc, &graphics);
+ expect(Ok, stat);
+
+ /* Test defaults */
+ stat = GdipCreateRegion(®ion);
+ expect(Ok, stat);
+ stat = GdipCreateRegion(®ion2);
+ expect(Ok, stat);
+todo_wine {
+ stat = GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(TRUE, equals);
+}
+
+ /* Test SetEmpty */
+ stat = GdipSetEmpty(region);
+ expect(Ok, stat);
+ stat = GdipSetEmpty(region2);
+ expect(Ok, stat);
+todo_wine {
+ stat = GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(TRUE, equals);
+}
+
+ stat = GdipDeleteRegion(region);
+ expect(Ok, stat);
+ stat = GdipDeleteRegion(region2);
+ expect(Ok, stat);
+
+ /* Test two rectangles */
+ rect.X = 4;
+ rect.Y = 56;
+ rect.Width = 63;
+ rect.Height = 42;
+ stat = GdipCreateRegionRect(&rect, ®ion);
+ expect(Ok, stat);
+ stat = GdipCreateRegionRect(&rect, ®ion2);
+ expect(Ok, stat);
+todo_wine {
+ stat = GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(TRUE, equals);
+}
+
+ stat = GdipDeleteRegion(region2);
+ expect(Ok, stat);
+
+ /* Test for CloneRegion */
+ stat = GdipCloneRegion(region, ®ion2);
+ expect(Ok, stat);
+todo_wine {
+ stat = GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(TRUE, equals);
+}
+
+ stat = GdipDeleteRegion(region2);
+ expect(Ok, stat);
+
+ stat = GdipCreatePath(FillModeAlternate, &path);
+ expect(Ok, stat);
+ stat = GdipAddPathRectangle(path, 4, 56, 63, 42);
+ expect(Ok, stat);
+
+ /* Are equivalent Rectangles and Paths "equal"? (yes, they are) */
+ GdipCreateRegionPath(path, ®ion2);
+todo_wine {
+ GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(TRUE, equals);
+}
+
+ stat = GdipDeleteRegion(region2);
+ expect(Ok, stat);
+ stat = GdipDeletePath(path);
+ expect(Ok, stat);
+
+ /* Test two different paths */
+ stat = GdipCreatePath(FillModeAlternate, &path);
+ expect(Ok, stat);
+ stat = GdipAddPathRectangle(path, 4, 56, 63, 52);
+ expect(Ok, stat);
+ stat = GdipCreateRegionPath(path, ®ion2);
+ expect(Ok, stat);
+ stat = GdipIsEqualRegion(region, region2, graphics, &equals);
+ expect(Ok, stat);
+ expect(FALSE, equals);
+
+ GdipDeletePath(path);
+ GdipDeleteRegion(region);
+ GdipDeleteRegion(region2);
+ GdipDeleteGraphics(graphics);
+ ReleaseDC(0, hdc);
+}
+
static void test_regionbounds(void)
{
GpStatus stat;
@@ -550,6 +656,7 @@ START_TEST(region)
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
test_getregiondata();
+ test_equals();
test_regionbounds();
GdiplusShutdown(gdiplusToken);
--
1.5.4.3
More information about the wine-patches
mailing list