Module: wine Branch: master Commit: ced3d81b1a06750e20882bb42ce9354663bd557b URL: http://source.winehq.org/git/wine.git/?a=commit;h=ced3d81b1a06750e20882bb42c...
Author: Adam Petaccia adam@tpetaccia.com Date: Sat Jun 21 13:02:51 2008 -0400
gdiplus: Tests for FontFamily.
---
dlls/gdiplus/tests/font.c | 56 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 55 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c index 71e6f9a..b653089 100644 --- a/dlls/gdiplus/tests/font.c +++ b/dlls/gdiplus/tests/font.c @@ -24,7 +24,12 @@
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n", expected, got)
-static WCHAR arial[] = {'A','r','i','a','l','\0'}; +static const WCHAR arial[] = {'A','r','i','a','l','\0'}; +static const WCHAR nonexistant[] = {'T','h','i','s','F','o','n','t','s','h','o','u','l','d','N','o','t','E','x','i','s','t','\0'}; +static const WCHAR MSSansSerif[] = {'M','S',' ','S','a','n','s',' ','S','e','r','i','f','\0'}; +static const WCHAR MicrosoftSansSerif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f','\0'}; +static const WCHAR TimesNewRoman[] = {'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n','\0'}; +static const WCHAR CourierNew[] = {'C','o','u','r','i','e','r',' ','N','e','w','\0'};
static void test_logfont(void) { @@ -94,6 +99,54 @@ static void test_logfont(void) ReleaseDC(0, hdc); }
+static void test_fontfamily (void) +{ + GpFontFamily** family = NULL; + WCHAR itsName[LF_FACESIZE]; + GpStatus stat; + + /* FontFamily can not be NULL */ + stat = GdipCreateFontFamilyFromName (arial , NULL, family); + expect (InvalidParameter, stat); + + family = GdipAlloc (sizeof (GpFontFamily*)); + + /* FontFamily must be able to actually find the family. + * If it can't, any subsequent calls should fail + * + * We currently fail (meaning we don't) because we don't actually + * test to see if we can successfully get a family + */ + stat = GdipCreateFontFamilyFromName (nonexistant, NULL, family); + expect (FontFamilyNotFound, stat); + stat = GdipGetFamilyName (*family,itsName, LANG_NEUTRAL); + expect (InvalidParameter, stat); + ok ((lstrcmpiW(itsName,nonexistant) != 0), + "Expected a non-zero value for nonexistant font!\n"); + stat = GdipDeleteFontFamily(*family); + expect (InvalidParameter, stat); + + stat = GdipCreateFontFamilyFromName (arial, NULL, family); + expect (Ok, stat); + + stat = GdipGetFamilyName (*family, itsName, LANG_NEUTRAL); + expect (Ok, stat); + expect (0, lstrcmpiW(itsName,arial)); + + if (0) + { + /* Crashes on Windows XP SP2, Vista, and so Wine as well */ + stat = GdipGetFamilyName (*family, NULL, LANG_NEUTRAL); + expect (Ok, stat); + } + + stat = GdipDeleteFontFamily(*family); + expect (Ok, stat); + + if (family) GdipFree (family); +} + + START_TEST(font) { struct GdiplusStartupInput gdiplusStartupInput; @@ -107,6 +160,7 @@ START_TEST(font) GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
test_logfont(); + test_fontfamily();
GdiplusShutdown(gdiplusToken); }