[Gdiplus 1/5] Tests for PrivateFontCollection
Nikolay Sivov
bunglehead at gmail.com
Mon Aug 18 02:38:29 CDT 2008
Adam Petaccia wrote:
> ---
> dlls/gdiplus/tests/font.c | 81 +++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 81 insertions(+), 0 deletions(-)
>
> diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c
> index 3d30a86..b19f0aa 100644
> --- a/dlls/gdiplus/tests/font.c
> +++ b/dlls/gdiplus/tests/font.c
> @@ -28,6 +28,7 @@ static const WCHAR arial[] = {'A','r','i','a','l','\0'};
> static const WCHAR nonexistent[] = {'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 Tahoma[] = {'T','a','h','o','m','a','\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'};
>
> @@ -333,6 +334,85 @@ monospace:
> expect (Ok, stat);
> }
>
> +static void test_fontcollections(void)
> +{
> + const static WCHAR tahomafilename[] = {'C',':','\\','W','I','N','D','O','W','S','\\','F','o','n','t','s','\\','T','a','h','o','m','a','.','t','t','f','\0'};
> + const static WCHAR timesNRfilename[] = {'C',':','\\','W','I','N','D','O','W','S','\\','F','o','n','t','s','\\','T','i','m','e','s','.','t','t','f','\0'};
> + const static WCHAR badFileName[] = {'C',':','\\','W','I','N','D','O','W','S','\\','F','o','n','t','s','\\','S','h','o','u','l','d','n','o','t','e','x','i','s','t','.','t','t','f','\0'};
> +
> + static WCHAR familyName[LF_FACESIZE];
> + GpStatus stat;
> + GpFontCollection* PrivateFontCollection;
> + GpFontFamily** fontFamily;
> + INT expected = 0, count = 0, i;
> + BOOL hastahoma, hastimesnr;
> +
> + stat = GdipNewPrivateFontCollection(&PrivateFontCollection);
> +todo_wine
> + expect(Ok, stat);
> + stat = GdipPrivateAddFontFile(PrivateFontCollection, NULL);
> + expect(InvalidParameter, stat);
> +todo_wine{
> + stat = GdipPrivateAddFontFile(PrivateFontCollection, badFileName);
> + expect(FileNotFound, stat);
> +
> + stat = GdipPrivateAddFontFile(PrivateFontCollection, tahomafilename);
> + if (stat == Ok)
> + {
> + expected++;
> + hastahoma = TRUE;
> + }
> +
> + stat = GdipPrivateAddFontFile(PrivateFontCollection, timesNRfilename);
> + if (stat == Ok)
> + {
> + expected++;
> + hastimesnr = TRUE;
> + }
> +
> + stat = GdipGetFontCollectionFamilyCount(PrivateFontCollection, &count);
> + expect(Ok, stat);
> + expect(expected, count);
> +
> + expected = count;
> +
> + /* Test retrieving of installed fonts */
> + fontFamily = GdipAlloc(sizeof(GpFontFamily*) * count);
> + stat = GdipGetFontCollectionFamilyList(PrivateFontCollection, count,
> + fontFamily, &count);
> + expect(Ok, stat);
> + expect(expected, count);
> + if (stat == Ok)
> + {
> + i = 0;
> + if (hastahoma)
> + {
> + GdipGetFamilyName(fontFamily[i], familyName, LANG_NEUTRAL);
> + ok(lstrcmpiW(familyName, Tahoma) == 0, "Expected Tahoma, got %s\n",
> + debugstr_w(familyName));
> + i++;
> + }
> +
> + if (hastimesnr)
> + {
> + GdipGetFamilyName(fontFamily[i], familyName, LANG_NEUTRAL);
> + ok(lstrcmpiW(familyName, TimesNewRoman) == 0, "Expected Times New "
> + "Roman, got %s\n", debugstr_w(familyName));
> + i++;
>
This i++ is redundant, isn't it?
> + }
> + }
> +
> + for (i = 0; i < count; i++)
> + {
> + stat = GdipDeleteFontFamily(fontFamily[i]);
> + expect(Ok, stat);
> + }
> +}
> +
> + stat = GdipDeletePrivateFontCollection(&PrivateFontCollection);
> + expect(Ok, stat);
> +}
> +
> START_TEST(font)
> {
> struct GdiplusStartupInput gdiplusStartupInput;
> @@ -350,6 +430,7 @@ START_TEST(font)
> test_fontfamily();
> test_fontfamily_properties();
> test_getgenerics();
> + test_fontcollections();
>
> GdiplusShutdown(gdiplusToken);
> }
>
More information about the wine-devel
mailing list