https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c74696c06da7b606d45ed…
commit c74696c06da7b606d45ed8e2f08d3e49753a60e0
Author: Doug Lyons <douglyons(a)douglyons.com>
AuthorDate: Sat Sep 1 17:13:50 2018 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sat Sep 1 17:17:08 2018 +0200
[GDI32_APITEST] Add tests for GetTextFaceAliasW(), based on Katayama Hirofumi MZ's
tests from CORE-14926.
CORE-14995
---
modules/rostests/apitests/gdi32/GetTextFace.c | 76 ++++++++++++++++++++++++++-
1 file changed, 74 insertions(+), 2 deletions(-)
diff --git a/modules/rostests/apitests/gdi32/GetTextFace.c
b/modules/rostests/apitests/gdi32/GetTextFace.c
index e304986d13..5814562527 100644
--- a/modules/rostests/apitests/gdi32/GetTextFace.c
+++ b/modules/rostests/apitests/gdi32/GetTextFace.c
@@ -3,11 +3,21 @@
* LICENSE: GPL - See COPYING in the top level directory
* PURPOSE: Test for GetTextFace
* PROGRAMMERS: Timo Kreuzer
+ * Katayama Hirofumi MZ
+ * Doug Lyons
*/
#include "precomp.h"
-void Test_GetTextFace()
+/* Exported by gdi32.dll but undocumented */
+INT
+WINAPI
+GetTextFaceAliasW(
+ IN HDC hdc,
+ IN INT c,
+ OUT LPWSTR lpAliasName);
+
+void Test_GetTextFace(void)
{
HDC hDC;
INT ret;
@@ -73,8 +83,70 @@ void Test_GetTextFace()
DeleteDC(hDC);
}
+void Test_GetTextFaceAliasW(void)
+{
+ HDC hDC;
+ INT ret;
+ INT ret2;
+ UINT i;
+ LOGFONTW lf;
+ HFONT hFontOld, hFont;
+ WCHAR buf1[LF_FACESIZE];
+ WCHAR buf2[LF_FACESIZE];
+
+ static struct
+ {
+ LPCWSTR lpFaceName;
+ LPCWSTR lpExpectedFaceName;
+ LPCWSTR lpExpectedAlias;
+ } FaceTests[] =
+ {
+ {L"Arial", L"Arial", L"Arial"},
+ {L"Tahoma", L"Tahoma", L"Tahoma"},
+ {L"Tahoma Bold", L"MS Sans Serif", L"MS Sans
Serif"}, // That's what Windows 2003 and 7 returns.
+ {L"Helv", L"Helv", L"Helv"},
+ {L"Tms Rmn", L"Tms Rmn", L"Tms Rmn"},
+ {L"Times", L"Times", L"Times"},
+ {L"invalid", L"MS Sans Serif", L"MS Sans Serif"}
+ };
+
+ hDC = CreateCompatibleDC(NULL);
+ ok(hDC != 0, "CreateCompatibleDC failed, skipping tests.\n");
+ if (!hDC) return;
+
+ for (i = 0; i < ARRAYSIZE(FaceTests); ++i)
+ {
+ ZeroMemory(&lf, sizeof(lf));
+ StringCchCopyW(lf.lfFaceName, ARRAYSIZE(lf.lfFaceName),
FaceTests[i].lpFaceName);
+
+ hFont = CreateFontIndirectW(&lf);
+ if (!hFont)
+ {
+ trace("Failed to create font '%S'!\n", lf.lfFaceName);
+ continue;
+ }
+
+ hFontOld = SelectObject(hDC, hFont);
+
+ ret = GetTextFaceW(hDC, ARRAYSIZE(buf1), buf1);
+ ok(ret != 0, "%S GetTextFaceW failed.\n", FaceTests[i].lpFaceName);
+ ok(wcscmp(buf1, FaceTests[i].lpExpectedFaceName) == 0, "'%S'
GetTextFaceW failed, got '%S', expected '%S'.\n",
+ FaceTests[i].lpFaceName, buf1, FaceTests[i].lpExpectedFaceName);
+
+ ret2 = GetTextFaceAliasW(hDC, ARRAYSIZE(buf2), buf2);
+ ok(ret2 != 0, "%S GetTextFaceAliasW failed.\n",
FaceTests[i].lpFaceName);
+ ok(wcscmp(buf2, FaceTests[i].lpExpectedAlias) == 0, "'%S'
GetTextFaceAliasW failed, got '%S', expected '%S'.\n",
+ FaceTests[i].lpFaceName, buf2, FaceTests[i].lpExpectedAlias);
+
+ SelectObject(hDC, hFontOld);
+ DeleteObject(hFont);
+ }
+
+ DeleteDC(hDC);
+}
+
START_TEST(GetTextFace)
{
Test_GetTextFace();
+ Test_GetTextFaceAliasW();
}
-