Nikolay Sivov : dwrite/tests: Add a test for creating system collection with explicit family model.

Alexandre Julliard julliard at winehq.org
Mon Jan 27 15:00:20 CST 2020


Module: wine
Branch: master
Commit: 6c1aff9fc77156e45d29321866251252f25cf665
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6c1aff9fc77156e45d29321866251252f25cf665

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Jan 27 08:52:50 2020 +0300

dwrite/tests: Add a test for creating system collection with explicit family model.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dwrite/tests/font.c | 40 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c
index 19c6928dd7..cdc41ec5a1 100644
--- a/dlls/dwrite/tests/font.c
+++ b/dlls/dwrite/tests/font.c
@@ -2400,11 +2400,14 @@ static void test_system_fontcollection(void)
     IDWriteFontCollection *collection, *coll2;
     IDWriteLocalFontFileLoader *localloader;
     IDWriteFontCollection1 *collection1;
+    IDWriteFontCollection2 *collection2;
     IDWriteFontCollection3 *collection3;
     IDWriteFactory *factory, *factory2;
+    DWRITE_FONT_FAMILY_MODEL model;
     IDWriteFontFileLoader *loader;
     IDWriteFontFamily *family;
     IDWriteFontFace *fontface;
+    IDWriteFactory6 *factory6;
     IDWriteFontFile *file;
     IDWriteFont *font;
     HRESULT hr;
@@ -2585,15 +2588,48 @@ static void test_system_fontcollection(void)
 todo_wine
         ok(!!event, "Expected event handle.\n");
 
+        model = IDWriteFontCollection3_GetFontFamilyModel(collection3);
+        ok(model == DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE, "Unexpected model.\n");
+
         IDWriteFontCollection3_Release(collection3);
     }
     else
         win_skip("IDWriteFontCollection3 is not supported.\n");
 
+    /* With specified family model. */
+    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
+        ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr);
+    if (SUCCEEDED(hr))
+    {
+        hr = IDWriteFactory6_GetSystemFontCollection(factory6, FALSE, DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC, &c2);
+        ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr);
+        ok(c2 == collection2 && collection != (IDWriteFontCollection *)c2, "Unexpected collection instance.\n");
+        IDWriteFontCollection2_Release(c2);
+        IDWriteFontCollection2_Release(collection2);
+
+        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 instance.\n");
+        IDWriteFontCollection2_Release(collection2);
+    }
+
+        IDWriteFactory6_Release(factory6);
+    }
+    else
+        win_skip("IDWriteFactory6 is not supported.\n");
+
     ref = IDWriteFontCollection_Release(collection);
-    ok(ref == 0, "collection not released, %u\n", ref);
+    ok(!ref, "Collection wasn't released, %u.\n", ref);
     ref = IDWriteFactory_Release(factory);
-    ok(ref == 0, "factory not released, %u\n", ref);
+    ok(!ref, "Factory wasn't released, %u.\n", ref);
 }
 
 static void get_logfont_from_font(IDWriteFont *font, LOGFONTW *logfont)




More information about the wine-cvs mailing list