From: Zhiyi Zhang zzhang@codeweavers.com
--- dlls/dwrite/tests/font.c | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 362b87aa968..ce65382d0c4 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -10493,6 +10493,53 @@ static void test_GetMatchingFontsByLOGFONT(void) ok(!refcount, "Factory wasn't released, %lu.\n", refcount); }
+static void test_font_download_queue(void) +{ + IDWriteFontDownloadQueue *queue, *queue2; + IDWriteFactory3 *factory; + BOOL is_empty; + UINT64 count; + HRESULT hr; + ULONG ref; + + factory = create_factory_iid(&IID_IDWriteFactory3); + if (!factory) + { + win_skip("GetFontDownloadQueue() is not supported\n"); + return; + } + + EXPECT_REF(factory, 1); + hr = IDWriteFactory3_GetFontDownloadQueue(factory, &queue); + todo_wine + ok(hr == S_OK, "got %#lx\n", hr); + if (FAILED(hr)) + { + IDWriteFactory3_Release(factory); + return; + } + EXPECT_REF(queue, 1); + EXPECT_REF(factory, 2); + + hr = IDWriteFactory3_GetFontDownloadQueue(factory, &queue2); + ok(hr == S_OK, "got %#lx\n", hr); + ok(queue == queue2, "Got unexpected object\n"); + EXPECT_REF(queue, 2); + EXPECT_REF(factory, 2); + IDWriteFontDownloadQueue_Release(queue2); + + is_empty = IDWriteFontDownloadQueue_IsEmpty(queue); + ok(is_empty, "Expected empty queue\n"); + + count = IDWriteFontDownloadQueue_GetGenerationCount(queue); + ok(count == 0, "Got unexpected generation count %I64u\n", count); + + ref = IDWriteFontDownloadQueue_Release(queue); + ok(ref == 0, "font download queue not released, %lu\n", ref); + ref = IDWriteFactory3_Release(factory); + ok(ref == 0, "factory not released, %lu\n", ref); +} + START_TEST(font) { IDWriteFactory *factory; @@ -10568,6 +10615,7 @@ START_TEST(font) test_system_font_set(); test_CreateFontCollectionFromFontSet(); test_GetMatchingFontsByLOGFONT(); + test_font_download_queue();
IDWriteFactory_Release(factory); }