From: Sven Baars Subject: [PATCH v2 2/7] gdi32/tests: Add more GetTextExtentExPoint tests. Message-Id: <20201109140720.472712-2-sbaars@codeweavers.com> Date: Mon, 9 Nov 2020 15:07:14 +0100 In-Reply-To: <20201109140720.472712-1-sbaars@codeweavers.com> References: <20201109140720.472712-1-sbaars@codeweavers.com> Signed-off-by: Sven Baars --- 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