Module: wine Branch: master Commit: da63c2356dffbfdcfe0566d312a05202900a547d URL: https://source.winehq.org/git/wine.git/?a=commit;h=da63c2356dffbfdcfe0566d31...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Sun Feb 4 21:02:09 2018 +0900
gdi32/tests: Add more ABC width tests in various widths.
Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/tests/font.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c index 4bac19a..7a74565 100644 --- a/dlls/gdi32/tests/font.c +++ b/dlls/gdi32/tests/font.c @@ -1340,6 +1340,56 @@ static void test_GetCharABCWidths(void) "got %d, expected %d (C)\n", abc[0].abcC, abcw[0].abcC);
DeleteObject(SelectObject(hdc, hfont)); + + /* test abcA == gmptGlyphOrigin.x && abcB == gmBlackBoxX + in various widths. */ + for (i = 1; i <= 2; i++) + { + UINT j; + UINT code; + + memset(&lf, 0, sizeof(lf)); + lf.lfHeight = 20; + switch(i) + { + case 1: + strcpy(lf.lfFaceName, "Tahoma"); + code = 'a'; + break; + case 2: + strcpy(lf.lfFaceName, "Times New Roman"); + lf.lfItalic = TRUE; + code = 'f'; + break; + } + if (!is_truetype_font_installed(lf.lfFaceName)) + { + skip("%s is not installed\n", lf.lfFaceName); + continue; + } + for (j = 1; j <= 80; j++) + { + GLYPHMETRICS gm; + + lf.lfWidth = j; + hfont = CreateFontIndirectA(&lf); + hfont = SelectObject(hdc, hfont); + + nb = GetGlyphOutlineA(hdc, code, GGO_METRICS, &gm, 0, NULL, &mat); + ok(nb, "GetGlyphOutlineA should have succeeded at width %d\n", i); + + ret = GetCharABCWidthsA(hdc, code, code, abc); + ok(ret, "GetCharABCWidthsA should have succeeded at width %d\n", i); + + ok(abc[0].abcA == gm.gmptGlyphOrigin.x, + "abcA(%d) and gmptGlyphOrigin.x(%d) values are different at width %d\n", + abc[0].abcA, gm.gmptGlyphOrigin.x, i); + ok(abc[0].abcB == gm.gmBlackBoxX, + "abcB(%d) and gmBlackBoxX(%d) values are different at width %d\n", + abc[0].abcB, gm.gmBlackBoxX, i); + DeleteObject(SelectObject(hdc, hfont)); + } + } ReleaseDC(NULL, hdc);
trace("ABC sign test for a variety of transforms:\n");