From 48950c9f06c1bf087fa25226492332ed4bf85223 Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Wed, 27 Oct 2021 13:42:42 -0700 Subject: [PATCH] dwrite/tests: Add more tests for GetSystemFontCollection. Signed-off-by: Daniel Lehman --- dlls/dwrite/tests/font.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index ba4a2793372..bb1af6f36d4 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -2461,9 +2461,12 @@ static void test_system_fontcollection(void) IDWriteFontCollection3 *collection3; IDWriteFactory *factory, *factory2; IDWriteFontFileLoader *loader; + IDWriteFontCollection2 *c2; + IDWriteFontCollection3 *c3; IDWriteFontFamily *family; IDWriteFontFace *fontface; IDWriteFactory6 *factory6; + IDWriteFactory7 *factory7; IDWriteFontFile *file; IDWriteFont *font; HRESULT hr; @@ -2650,8 +2653,6 @@ todo_wine hr = IDWriteFactory_QueryInterface(factory, &IID_IDWriteFactory6, (void **)&factory6); if (SUCCEEDED(hr)) { - IDWriteFontCollection2 *c2; - hr = IDWriteFactory6_GetSystemFontCollection(factory6, FALSE, DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC, &collection2); todo_wine @@ -2667,6 +2668,7 @@ todo_wine hr = IDWriteFactory6_GetSystemFontCollection(factory6, FALSE, DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE, &collection2); ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr); + ok(collection == (IDWriteFontCollection *)collection2, "Unexpected collection instance.\n"); IDWriteFontCollection2_Release(collection2); } IDWriteFactory6_Release(factory6); @@ -2674,6 +2676,33 @@ todo_wine else win_skip("IDWriteFactory6 is not supported.\n"); + hr = IDWriteFactory_QueryInterface(factory, &IID_IDWriteFactory7, (void **)&factory7); + if (SUCCEEDED(hr)) + { + hr = IDWriteFactory7_GetSystemFontCollection(factory7, FALSE, DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC, + &collection3); + todo_wine + ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr); + if (SUCCEEDED(hr)) + { + hr = IDWriteFactory7_GetSystemFontCollection(factory7, FALSE, DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC, &c3); + ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr); + ok(c3 == collection3 && collection != (IDWriteFontCollection *)c3, "Unexpected collection instance.\n"); + ok(c3 == (IDWriteFontCollection3 *)c2, "Unexpected collection instance.\n"); + IDWriteFontCollection3_Release(c3); + IDWriteFontCollection3_Release(collection3); + + hr = IDWriteFactory7_GetSystemFontCollection(factory7, FALSE, DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE, + &collection3); + ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr); + ok(collection == (IDWriteFontCollection *)collection3, "Unexpected collection instance.\n"); + IDWriteFontCollection3_Release(collection3); + } + IDWriteFactory7_Release(factory7); + } + else + win_skip("IDWriteFactory7 is not supported.\n"); + ref = IDWriteFontCollection_Release(collection); ok(!ref, "Collection wasn't released, %u.\n", ref); ref = IDWriteFactory_Release(factory); -- 2.27.0