Signed-off-by: Shawn M. Chapla <schapla(a)codeweavers.com>
---
dlls/gdiplus/tests/font.c | 50 +++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c
index 10d1f3bd5a..74cf451e36 100644
--- a/dlls/gdiplus/tests/font.c
+++ b/dlls/gdiplus/tests/font.c
@@ -300,6 +300,56 @@ static void test_logfont(void)
GdipDeleteFontFamily(family);
GdipDeleteFont(font);
+ font = NULL;
+
+ /* The next test must be done with a font where tmHeight -
+ tmInternalLeading != tmAscent. Times New Roman is such a font,
+ so make sure we really have it before continuing. */
+ memset(&lfa, 0, sizeof(lfa));
+ lstrcpyA(lfa.lfFaceName, "Times New Roman");
+
+ stat = GdipCreateFontFromLogfontA(hdc, &lfa, &font);
+ expect(Ok, stat);
+
+ memset(&lfa2, 0, sizeof(lfa2));
+ stat = GdipGetLogFontA(font, graphics, &lfa2);
+ expect(Ok, stat);
+
+ GdipDeleteFont(font);
+ font = NULL;
+
+ if (!lstrlenA(lfa.lfFaceName) || lstrcmpA(lfa.lfFaceName, lfa2.lfFaceName))
+ {
+ skip("Times New Roman not installed\n");
+ }
+ else
+ {
+ static const struct
+ {
+ INT input;
+ REAL expected;
+ } test_sizes[] = {{12, 9.0}, {36, 32.0}, {48, 42.0}, {72, 63.0}, {144, 127.0}};
+
+ UINT i;
+
+ memset(&lfa, 0, sizeof(lfa));
+ lstrcpyA(lfa.lfFaceName, "Times New Roman");
+
+ for (i = 0; i < sizeof(test_sizes)/sizeof(test_sizes[0]); ++i)
+ {
+ lfa.lfHeight = test_sizes[i].input;
+
+ stat = GdipCreateFontFromLogfontA(hdc, &lfa, &font);
+ expect(Ok, stat);
+
+ stat = GdipGetFontSize(font, &rval);
+ expect(Ok, stat);
+ todo_wine expectf(test_sizes[i].expected, rval);
+
+ GdipDeleteFont(font);
+ font = NULL;
+ }
+ }
GdipDeleteGraphics(graphics);
ReleaseDC(0, hdc);
--
2.27.0