gdiplus: Add test for GdipDrawDriverString.
authorVincent Povirk <vincent@codeweavers.com>
Mon, 28 Mar 2011 21:40:19 +0000 (16:40 -0500)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 29 Mar 2011 10:36:59 +0000 (12:36 +0200)
dlls/gdiplus/tests/graphics.c
include/gdiplusenums.h

index bd14ab6ef6a01d887b2a23444062c55deab544db..d42b37ae13c87512416cb34a887fc33cdc45c98f 100644 (file)
@@ -1954,6 +1954,8 @@ static void test_GdipDrawString(void)
     LOGFONTA logfont;
     HDC hdc = GetDC( hwnd );
     static const WCHAR string[] = {'T','e','s','t',0};
+    static const PointF positions[4] = {{0,0}, {1,1}, {2,2}, {3,3}};
+    GpMatrix *matrix;
 
     memset(&logfont,0,sizeof(logfont));
     strcpy(logfont.lfFaceName,"Arial");
@@ -1985,6 +1987,36 @@ static void test_GdipDrawString(void)
     status = GdipDrawString(graphics, string, 4, fnt, &rect, format, brush);
     expect(Ok, status);
 
+    status = GdipCreateMatrix(&matrix);
+    expect(Ok, status);
+
+todo_wine {
+    status = GdipDrawDriverString(NULL, string, 4, fnt, brush, positions, DriverStringOptionsCmapLookup, matrix);
+    expect(InvalidParameter, status);
+
+    status = GdipDrawDriverString(graphics, NULL, 4, fnt, brush, positions, DriverStringOptionsCmapLookup, matrix);
+    expect(InvalidParameter, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, NULL, brush, positions, DriverStringOptionsCmapLookup, matrix);
+    expect(InvalidParameter, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, fnt, NULL, positions, DriverStringOptionsCmapLookup, matrix);
+    expect(InvalidParameter, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, fnt, brush, NULL, DriverStringOptionsCmapLookup, matrix);
+    expect(InvalidParameter, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, fnt, brush, positions, DriverStringOptionsCmapLookup|0x10, matrix);
+    expect(Ok, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, fnt, brush, positions, DriverStringOptionsCmapLookup, NULL);
+    expect(Ok, status);
+
+    status = GdipDrawDriverString(graphics, string, 4, fnt, brush, positions, DriverStringOptionsCmapLookup, matrix);
+    expect(Ok, status);
+}
+
+    GdipDeleteMatrix(matrix);
     GdipDeleteGraphics(graphics);
     GdipDeleteBrush(brush);
     GdipDeleteFont(fnt);
index dc03b29c5a1dc4f4bdb449b178228c9c68385ecc..69c81540ffcc42c3f799fc9c80e46e1100d6eba8 100644 (file)
@@ -42,6 +42,14 @@ enum BrushType
    BrushTypeLinearGradient   = 4
 };
 
+enum DriverStringOptions
+{
+   DriverStringOptionsCmapLookup      = 1,
+   DriverStringOptionsVertical        = 2,
+   DriverStringOptionsRealizedAdvance = 4,
+   DriverStringOptionsLimitSubpixel   = 4
+};
+
 enum FillMode
 {
     FillModeAlternate   = 0,
@@ -707,6 +715,7 @@ enum EmfPlusRecordType {
 
 typedef enum Unit Unit;
 typedef enum BrushType BrushType;
+typedef enum DriverStringOptions DriverStringOptions;
 typedef enum FillMode FillMode;
 typedef enum LineCap LineCap;
 typedef enum PathPointType PathPointType;