From dee8657be43f2f4e3411ee1a1394ad14fadff919 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 16 Oct 2008 20:31:25 +0400 Subject: [PATCH] gdiplus: Add some tests for pathiterator, fix leaks. --- dlls/gdiplus/tests/pathiterator.c | 53 +++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/dlls/gdiplus/tests/pathiterator.c b/dlls/gdiplus/tests/pathiterator.c index 79ce879238d..eddb24e89fd 100644 --- a/dlls/gdiplus/tests/pathiterator.c +++ b/dlls/gdiplus/tests/pathiterator.c @@ -459,8 +459,6 @@ static void test_nextsubpath(void) INT start, end, result; BOOL closed; - GdipCreatePath(FillModeAlternate, &path); - /* empty path */ GdipCreatePath(FillModeAlternate, &path); GdipCreatePathIter(&iter, path); @@ -471,8 +469,8 @@ static void test_nextsubpath(void) expect(Ok, stat); expect(0, result); expect(TRUE, closed); - GdipCreatePathIter(&iter, path); + GdipDeletePathIter(iter); GdipDeletePath(path); } @@ -500,6 +498,55 @@ static void test_nextpathtype(void) expect(InvalidParameter, stat); stat = GdipPathIterNextPathType(iter, NULL, &type, &start, &end); expect(InvalidParameter, stat); + stat = GdipPathIterNextPathType(iter, &result, &type, NULL, NULL); + expect(InvalidParameter, stat); + + /* empty path */ + start = end = result = (INT)0xdeadbeef; + stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end); + todo_wine expect(Ok, stat); + expect((INT)0xdeadbeef, start); + expect((INT)0xdeadbeef, end); + todo_wine expect(0, result); + GdipDeletePathIter(iter); + + /* single figure */ + GdipAddPathLine(path, 0.0, 0.0, 10.0, 30.0); + GdipCreatePathIter(&iter, path); + start = end = result = (INT)0xdeadbeef; + type = 255; /* out of range */ + stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end); + todo_wine expect(Ok, stat); + expect((INT)0xdeadbeef, start); + expect((INT)0xdeadbeef, end); + expect(255, type); + todo_wine expect(0, result); + GdipDeletePathIter(iter); + + GdipAddPathEllipse(path, 0.0, 0.0, 35.0, 70.0); + GdipCreatePathIter(&iter, path); + start = end = result = (INT)0xdeadbeef; + type = 255; /* out of range */ + stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end); + todo_wine expect(Ok, stat); + expect((INT)0xdeadbeef, start); + expect((INT)0xdeadbeef, end); + expect(255, type); + todo_wine expect(0, result); + GdipDeletePathIter(iter); + + /* closed */ + GdipClosePathFigure(path); + GdipCreatePathIter(&iter, path); + start = end = result = (INT)0xdeadbeef; + type = 255; /* out of range */ + stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end); + todo_wine expect(Ok, stat); + expect((INT)0xdeadbeef, start); + expect((INT)0xdeadbeef, end); + expect(255, type); + todo_wine expect(0, result); + GdipDeletePathIter(iter); GdipDeletePath(path); }