[1/4] user32: Add a test to show that fonts returned by SystemParametersInfo(SPI_GETNONCLIENTMETRICS) should be listed by EnumFontFamilies(hdc, NULL).

Dmitry Timoshkov dmitry at baikal.ru
Fri Jul 17 04:23:08 CDT 2015


Gtk+/Pango depend on this.
---
 dlls/user32/tests/sysparams.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c
index 31d1a8e..dabecdb 100644
--- a/dlls/user32/tests/sysparams.c
+++ b/dlls/user32/tests/sysparams.c
@@ -2650,6 +2650,23 @@ static int gsm_error_ctr;
     ok( !( exp1 != act && exp2 != act && exp3 != act),"GetSystemMetrics(%s): expected %d or %d or %d actual %d\n", #i, exp1, exp2, exp3, act);\
 }
 
+static INT CALLBACK enum_all_fonts_proc(const LOGFONTA *elf, const TEXTMETRICA *ntm, DWORD type, LPARAM lparam)
+{
+    return lstrcmpiA(elf->lfFaceName, (const char *)lparam);
+}
+
+static BOOL is_font_enumerated(const char *name)
+{
+    HDC hdc = CreateCompatibleDC(0);
+    BOOL ret = FALSE;
+
+    if (!EnumFontFamiliesA(hdc, NULL, enum_all_fonts_proc, (LPARAM)name))
+        ret = TRUE;
+
+    DeleteDC(hdc);
+    return ret;
+}
+
 static void test_GetSystemMetrics( void)
 {
     TEXTMETRICA tmMenuFont;
@@ -2691,6 +2708,18 @@ static void test_GetSystemMetrics( void)
         win_skip("SPI_GETNONCLIENTMETRICS is not available\n");
         return;
     }
+
+todo_wine
+    ok(is_font_enumerated(ncm.lfCaptionFont.lfFaceName), "font %s should be enumerated\n", ncm.lfCaptionFont.lfFaceName);
+todo_wine
+    ok(is_font_enumerated(ncm.lfSmCaptionFont.lfFaceName), "font %s should be enumerated\n", ncm.lfSmCaptionFont.lfFaceName);
+todo_wine
+    ok(is_font_enumerated(ncm.lfMenuFont.lfFaceName), "font %s should be enumerated\n", ncm.lfMenuFont.lfFaceName);
+todo_wine
+    ok(is_font_enumerated(ncm.lfStatusFont.lfFaceName), "font %s should be enumerated\n", ncm.lfStatusFont.lfFaceName);
+todo_wine
+    ok(is_font_enumerated(ncm.lfMessageFont.lfFaceName), "font %s should be enumerated\n", ncm.lfMessageFont.lfFaceName);
+
     /* CaptionWidth from the registry may have different value of iCaptionWidth
      * from the non client metrics (observed on WinXP) */
     CaptionWidthfromreg = metricfromreg(
-- 
2.4.5




More information about the wine-patches mailing list