Grazvydas Ignotas : gdi32/tests: Check for exact fonts before doing fullname test.
Alexandre Julliard
julliard at winehq.org
Wed Aug 24 14:05:21 CDT 2011
Module: wine
Branch: master
Commit: 5c2976eebc93a67e07b3a431d6bcc27a388e617a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c2976eebc93a67e07b3a431d6bcc27a388e617a
Author: Grazvydas Ignotas <notasas at gmail.com>
Date: Tue Aug 23 23:11:58 2011 +0300
gdi32/tests: Check for exact fonts before doing fullname test.
---
dlls/gdi32/tests/font.c | 35 ++++++++++++++++++++++++++++-------
1 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index aab371f..fcb0776 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -3733,6 +3733,28 @@ static void test_EnumFonts(void)
DeleteDC(hdc);
}
+static INT CALLBACK is_font_installed_fullname_proc(const LOGFONT *lf, const TEXTMETRIC *ntm, DWORD type, LPARAM lParam)
+{
+ const ENUMLOGFONT *elf = (const ENUMLOGFONT *)lf;
+ const char *fullname = (const char *)lParam;
+
+ if (!strcmp((const char *)elf->elfFullName, fullname)) return 0;
+
+ return 1;
+}
+
+static BOOL is_font_installed_fullname(const char *family, const char *fullname)
+{
+ HDC hdc = GetDC(0);
+ BOOL ret = FALSE;
+
+ if(!EnumFontFamiliesA(hdc, family, is_font_installed_fullname_proc, (LPARAM)fullname))
+ ret = TRUE;
+
+ ReleaseDC(0, hdc);
+ return ret;
+}
+
static void test_fullname(void)
{
static const char *TestName[] = {"Lucida Sans Demibold Roman", "Lucida Sans Italic"};
@@ -3742,13 +3764,6 @@ static void test_fullname(void)
HDC hdc;
int i;
- /* Lucida Sans comes with XP SP2 or later */
- if (!is_truetype_font_installed("Lucida Sans"))
- {
- skip("Lucida Sans is not installed\n");
- return;
- }
-
hdc = CreateCompatibleDC(0);
ok(hdc != NULL, "CreateCompatibleDC failed\n");
@@ -3763,6 +3778,12 @@ static void test_fullname(void)
for (i = 0; i < sizeof(TestName) / sizeof(TestName[0]); i++)
{
+ if (!is_font_installed_fullname("Lucida Sans", TestName[i]))
+ {
+ skip("%s is not installed\n", TestName[i]);
+ continue;
+ }
+
lstrcpyA(lf.lfFaceName, TestName[i]);
hfont = CreateFontIndirectA(&lf);
ok(hfont != 0, "CreateFontIndirectA failed\n");
More information about the wine-cvs
mailing list