gdiplus/tests: Check the correct fallback font when Arial is missing.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2015-11-25 20:30:00 +09:00
parent 023af7c3cb
commit 9fb9cb2bb7
1 changed files with 12 additions and 2 deletions

View File

@ -726,6 +726,7 @@ static void test_font_metrics(void)
static void test_font_substitution(void)
{
WCHAR ms_shell_dlg[LF_FACESIZE];
char fallback_font[LF_FACESIZE];
HDC hdc;
HFONT hfont;
LOGFONTA lf;
@ -772,13 +773,22 @@ static void test_font_substitution(void)
status = GdipCreateFontFamilyFromName(nonexistent, NULL, &family);
ok(status == FontFamilyNotFound, "expected FontFamilyNotFound, got %d\n", status);
/* nonexistent fonts fallback to Arial, or something else if it's missing */
strcpy(lf.lfFaceName,"Arial");
status = GdipCreateFontFromLogfontA(hdc, &lf, &font);
expect(Ok, status);
status = GdipGetLogFontA(font, graphics, &lf);
expect(Ok, status);
strcpy(fallback_font,lf.lfFaceName);
trace("fallback font %s\n", fallback_font);
lstrcpyA(lf.lfFaceName, "ThisFontShouldNotExist");
status = GdipCreateFontFromLogfontA(hdc, &lf, &font);
expect(Ok, status);
memset(&lf, 0xfe, sizeof(lf));
status = GdipGetLogFontA(font, graphics, &lf);
expect(Ok, status);
ok(!lstrcmpA(lf.lfFaceName, "Arial"), "wrong face name %s\n", lf.lfFaceName);
ok(!lstrcmpA(lf.lfFaceName, fallback_font), "wrong face name %s / %s\n", lf.lfFaceName, fallback_font);
GdipDeleteFont(font);
/* empty FaceName */
@ -788,7 +798,7 @@ static void test_font_substitution(void)
memset(&lf, 0xfe, sizeof(lf));
status = GdipGetLogFontA(font, graphics, &lf);
expect(Ok, status);
ok(!lstrcmpA(lf.lfFaceName, "Arial"), "wrong face name %s\n", lf.lfFaceName);
ok(!lstrcmpA(lf.lfFaceName, fallback_font), "wrong face name %s / %s\n", lf.lfFaceName, fallback_font);
GdipDeleteFont(font);
/* zeroing out lfWeight and lfCharSet leads to font creation failure */