André Hentschel : gdi32/tests: Test CreateFontIndirect for suffix stripping.
Alexandre Julliard
julliard at winehq.org
Mon Nov 16 11:43:56 CST 2009
Module: wine
Branch: master
Commit: 8f31df1dd812cbe8370bfb36c6eae9995b16451f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8f31df1dd812cbe8370bfb36c6eae9995b16451f
Author: André Hentschel <nerv at dawncrow.de>
Date: Fri Nov 13 23:05:20 2009 +0100
gdi32/tests: Test CreateFontIndirect for suffix stripping.
---
dlls/gdi32/tests/font.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index b67670f..6d76abe 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -2977,6 +2977,72 @@ static void test_GetTextMetrics2(const char *fontname, int font_height)
ok(ratio >= 90 && ratio <= 110, "expected width/height ratio 90-110, got %d\n", ratio);
}
+void test_CreateFontIndirect(void)
+{
+ LOGFONTA lf, getobj_lf;
+ int ret;
+ HFONT hfont;
+
+ memset(&lf, 0, sizeof(lf));
+
+ lf.lfCharSet = ANSI_CHARSET;
+ lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
+ lf.lfHeight = 16;
+ lf.lfWidth = 16;
+ lf.lfQuality = DEFAULT_QUALITY;
+
+ lf.lfItalic = FALSE;
+ lf.lfWeight = FW_DONTCARE;
+ lstrcpyA(lf.lfFaceName, "Arial");
+ hfont = CreateFontIndirectA(&lf);
+ ok(hfont != 0, "CreateFontIndirectA failed\n");
+ ret = GetObject(hfont, sizeof(getobj_lf), &getobj_lf);
+ ok(lf.lfWeight == getobj_lf.lfWeight ||
+ broken((SHORT)lf.lfWeight == getobj_lf.lfWeight), /* win9x */
+ "lfWeight: expect %08x got %08x\n", lf.lfWeight, getobj_lf.lfWeight);
+ ok(lf.lfItalic == getobj_lf.lfItalic, "lfItalic: expect %02x got %02x\n", lf.lfItalic, getobj_lf.lfItalic);
+ ok(!lstrcmpA(lf.lfFaceName, getobj_lf.lfFaceName) ||
+ broken(!memcmp(lf.lfFaceName, getobj_lf.lfFaceName, LF_FACESIZE-1)), /* win9x doesn't ensure '\0' termination */
+ "font names don't match: %s != %s\n", lf.lfFaceName, getobj_lf.lfFaceName);
+ DeleteObject(hfont);
+
+ lf.lfItalic = FALSE;
+ lf.lfWeight = FW_DONTCARE;
+ lstrcpyA(lf.lfFaceName, "Arial Bold");
+ hfont = CreateFontIndirectA(&lf);
+ ok(hfont != 0, "CreateFontIndirectA failed\n");
+ ret = GetObject(hfont, sizeof(getobj_lf), &getobj_lf);
+ ok(lf.lfItalic == getobj_lf.lfItalic, "lfItalic: expect %02x got %02x\n", lf.lfItalic, getobj_lf.lfItalic);
+ todo_wine
+ {
+ ok(lf.lfWeight == getobj_lf.lfWeight ||
+ broken((SHORT)lf.lfWeight == getobj_lf.lfWeight), /* win9x */
+ "lfWeight: expect %08x got %08x\n", lf.lfWeight, getobj_lf.lfWeight);
+ ok(!lstrcmpA(lf.lfFaceName, getobj_lf.lfFaceName) ||
+ broken(!memcmp(lf.lfFaceName, getobj_lf.lfFaceName, LF_FACESIZE-1)), /* win9x doesn't ensure '\0' termination */
+ "font names don't match: %s != %s\n", lf.lfFaceName, getobj_lf.lfFaceName);
+ }
+ DeleteObject(hfont);
+
+ lf.lfItalic = FALSE;
+ lf.lfWeight = FW_DONTCARE;
+ lstrcpyA(lf.lfFaceName, "Arial Italic");
+ hfont = CreateFontIndirectA(&lf);
+ ok(hfont != 0, "CreateFontIndirectA failed\n");
+ ret = GetObject(hfont, sizeof(getobj_lf), &getobj_lf);
+ ok(lf.lfWeight == getobj_lf.lfWeight ||
+ broken((SHORT)lf.lfWeight == getobj_lf.lfWeight), /* win9x */
+ "lfWeight: expect %08x got %08x\n", lf.lfWeight, getobj_lf.lfWeight);
+ todo_wine
+ {
+ ok(lf.lfItalic == getobj_lf.lfItalic, "lfItalic: expect %02x got %02x\n", lf.lfItalic, getobj_lf.lfItalic);
+ ok(!lstrcmpA(lf.lfFaceName, getobj_lf.lfFaceName) ||
+ broken(!memcmp(lf.lfFaceName, getobj_lf.lfFaceName, LF_FACESIZE-1)), /* win9x doesn't ensure '\0' termination */
+ "font names don't match: %s != %s\n", lf.lfFaceName, getobj_lf.lfFaceName);
+ }
+ DeleteObject(hfont);
+}
+
START_TEST(font)
{
init();
@@ -3020,4 +3086,5 @@ START_TEST(font)
test_GetTextMetrics2("Arial", -11);
test_GetTextMetrics2("Arial", -55);
test_GetTextMetrics2("Arial", -110);
+ test_CreateFontIndirect();
}
More information about the wine-cvs
mailing list