Vincent Povirk : gdiplus: Add test for GdipMeasureDriverString.

Alexandre Julliard julliard at winehq.org
Mon Jun 27 17:41:22 CDT 2011


Module: wine
Branch: master
Commit: c0682a26d22bfa87a1e66ebc2afa484f25762031
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c0682a26d22bfa87a1e66ebc2afa484f25762031

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Mon Jun 27 11:23:21 2011 -0500

gdiplus: Add test for GdipMeasureDriverString.

---

 dlls/gdiplus/tests/graphics.c |   77 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 28414cc..49f6815 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -2834,6 +2834,8 @@ static void test_string_functions(void)
     GpRegion *regions[4] = {0};
     BOOL region_isempty[4];
     int i;
+    PointF position;
+    GpMatrix *identity;
 
     ok(hdc != NULL, "Expected HDC to be initialized\n");
     status = GdipCreateFromHDC(hdc, &graphics);
@@ -3033,6 +3035,81 @@ static void test_string_functions(void)
     for (i=0; i<4; i++)
         GdipDeleteRegion(regions[i]);
 
+    GdipCreateMatrix(&identity);
+
+    position.X = 0;
+    position.Y = 0;
+
+    rc.X = 0;
+    rc.Y = 0;
+    rc.Width = 0;
+    rc.Height = 0;
+    status = GdipMeasureDriverString(NULL, teststring, 6, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(InvalidParameter, status);
+
+    status = GdipMeasureDriverString(graphics, NULL, 6, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(InvalidParameter, status);
+
+    status = GdipMeasureDriverString(graphics, teststring, 6, NULL, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(InvalidParameter, status);
+
+    status = GdipMeasureDriverString(graphics, teststring, 6, font, NULL,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(InvalidParameter, status);
+
+    status = GdipMeasureDriverString(graphics, teststring, 6, font, &position,
+        0x100, identity, &rc);
+    todo_wine expect(Ok, status);
+
+    status = GdipMeasureDriverString(graphics, teststring, 6, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        NULL, &rc);
+    todo_wine expect(Ok, status);
+
+    status = GdipMeasureDriverString(graphics, teststring, 6, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, NULL);
+    todo_wine expect(InvalidParameter, status);
+
+    rc.X = 0;
+    rc.Y = 0;
+    rc.Width = 0;
+    rc.Height = 0;
+    status = GdipMeasureDriverString(graphics, teststring, 6, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(Ok, status);
+
+    expectf(rc.X, 0.0);
+    todo_wine ok(rc.Y < 0.0, "unexpected Y %0.2f\n", rc.Y);
+    todo_wine ok(rc.Width > 0.0, "unexpected Width %0.2f\n", rc.Width);
+    todo_wine ok(rc.Height > 0.0, "unexpected Y %0.2f\n", rc.Y);
+
+    char_width = rc.Width;
+    char_height = rc.Height;
+
+    rc.X = 0;
+    rc.Y = 0;
+    rc.Width = 0;
+    rc.Height = 0;
+    status = GdipMeasureDriverString(graphics, teststring, 4, font, &position,
+        DriverStringOptionsCmapLookup|DriverStringOptionsRealizedAdvance,
+        identity, &rc);
+    todo_wine expect(Ok, status);
+
+    expectf(rc.X, 0.0);
+    todo_wine ok(rc.Y < 0.0, "unexpected Y %0.2f\n", rc.Y);
+    todo_wine ok(rc.Width < char_width, "got Width %0.2f, expecting less than %0.2f\n", rc.Width, char_width);
+    expectf(rc.Height, char_height);
+
+    GdipDeleteMatrix(identity);
     GdipDeleteStringFormat(format);
     GdipDeleteBrush(brush);
     GdipDeleteFont(font);




More information about the wine-cvs mailing list