[PATCH v2 2/7] gdi32/tests: Add more GetTextExtentExPoint tests.

Sven Baars sbaars at codeweavers.com
Mon Nov 9 08:07:14 CST 2020


Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
 dlls/gdi32/tests/font.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index d3ec971dce0..2592db2cc06 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -1505,17 +1505,33 @@ static void test_text_extents(void)
         ok(extents[i-1] <= extents[i],
            "GetTextExtentExPointW generated a non-increasing sequence of partial extents (at position %d)\n",
            i);
+    todo_wine ok(extents[2] == extents[3], "GetTextExtentExPointW doesn't return 0 width for a newline\n");
     ok(extents[len-1] == sz1.cx, "GetTextExtentExPointW extents and size don't match\n");
     ok(0 <= fit1 && fit1 <= len, "GetTextExtentExPointW generated illegal value %d for fit\n", fit1);
     ok(0 < fit1, "GetTextExtentExPointW says we can't even fit one letter in 32767 logical units\n");
+
     GetTextExtentExPointW(hdc, wt, len, extents[2], &fit2, NULL, &sz2);
     ok(sz1.cx == sz2.cx && sz1.cy == sz2.cy, "GetTextExtentExPointW returned different sizes for the same string\n");
     ok(fit2 == 3, "GetTextExtentExPointW extents isn't consistent with fit\n");
+
+    extents2[2] = -1;
+    GetTextExtentExPointW(hdc, wt, len, extents[2], &fit2, extents2, &sz2);
+    ok(sz1.cx == sz2.cx && sz1.cy == sz2.cy, "GetTextExtentExPointW returned different sizes for the same string\n");
+    ok(fit2 == 3, "GetTextExtentExPointW extents isn't consistent with fit\n");
+    ok(extents2[2] == extents[2], "GetTextExtentExPointW last extent isn't set\n");
+
     GetTextExtentExPointW(hdc, wt, len, extents[2]-1, &fit2, NULL, &sz2);
     ok(fit2 == 2, "GetTextExtentExPointW extents isn't consistent with fit\n");
+
+    extents2[1] = -1;
+    GetTextExtentExPointW(hdc, wt, len, extents[2]-1, &fit2, extents2, &sz2);
+    ok(fit2 == 2, "GetTextExtentExPointW extents isn't consistent with fit\n");
+    ok(extents2[1] == extents[1], "GetTextExtentExPointW extent isn't set\n");
+
     GetTextExtentExPointW(hdc, wt, 2, 0, NULL, extents + 2, &sz2);
     ok(extents[0] == extents[2] && extents[1] == extents[3],
        "GetTextExtentExPointW with lpnFit == NULL returns incorrect results\n");
+
     GetTextExtentExPointW(hdc, wt, 2, 0, NULL, NULL, &sz1);
     ok(sz1.cx == sz2.cx && sz1.cy == sz2.cy,
        "GetTextExtentExPointW with lpnFit and alpDx both NULL returns incorrect results\n");
-- 
2.25.1




More information about the wine-devel mailing list