Nikolay Sivov : dwrite/tests: Add some tests for IDWriteFontResource.
Alexandre Julliard
julliard at winehq.org
Mon Dec 2 17:10:16 CST 2019
Module: wine
Branch: master
Commit: 85691e732aeb743a1bea280249c07d08db8744f2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=85691e732aeb743a1bea280249c07d08db8744f2
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Dec 2 15:53:54 2019 +0300
dwrite/tests: Add some tests for IDWriteFontResource.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/dwrite/tests/font.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c
index 3cd41efc91..d565eee331 100644
--- a/dlls/dwrite/tests/font.c
+++ b/dlls/dwrite/tests/font.c
@@ -9234,6 +9234,81 @@ todo_wine
ok(ref == 0, "factory not released, %u\n", ref);
}
+static void test_font_resource(void)
+{
+ IDWriteFontFaceReference1 *reference, *reference2;
+ IDWriteFontResource *resource, *resource2;
+ IDWriteFontFile *fontfile, *fontfile2;
+ IDWriteFontFace5 *fontface5;
+ IDWriteFontFace *fontface;
+ IDWriteFactory6 *factory;
+ UINT32 count, index;
+ HRESULT hr;
+ ULONG ref;
+
+ if (!(factory = create_factory_iid(&IID_IDWriteFactory6)))
+ {
+ skip("IDWriteFactory6 is not supported.\n");
+ return;
+ }
+
+ fontface = create_fontface((IDWriteFactory *)factory);
+
+ count = 1;
+ hr = IDWriteFontFace_GetFiles(fontface, &count, &fontfile);
+ ok(hr == S_OK, "Failed to get file object, hr %#x.\n", hr);
+
+ hr = IDWriteFactory6_CreateFontResource(factory, fontfile, 0, &resource);
+ ok(hr == S_OK, "Failed to create font resource, hr %#x.\n", hr);
+
+ hr = IDWriteFactory6_CreateFontResource(factory, fontfile, 0, &resource2);
+ ok(hr == S_OK, "Failed to create font resource, hr %#x.\n", hr);
+ ok(resource != resource2, "Unexpected instance.\n");
+ IDWriteFontResource_Release(resource2);
+
+ hr = IDWriteFontResource_GetFontFile(resource, &fontfile2);
+ ok(hr == S_OK, "Failed to get font file, hr %#x.\n", hr);
+ ok(fontfile2 == fontfile, "Unexpected file instance.\n");
+ IDWriteFontFile_Release(fontfile2);
+
+ index = IDWriteFontResource_GetFontFaceIndex(resource);
+ ok(!index, "Unexpected index %u.\n", index);
+
+ hr = IDWriteFontResource_CreateFontFaceReference(resource, DWRITE_FONT_SIMULATIONS_NONE, NULL, 0, &reference);
+ ok(hr == S_OK, "Failed to create reference object, hr %#x.\n", hr);
+
+ hr = IDWriteFontResource_CreateFontFaceReference(resource, DWRITE_FONT_SIMULATIONS_NONE, NULL, 0, &reference2);
+ ok(hr == S_OK, "Failed to create reference object, hr %#x.\n", hr);
+ ok(reference != reference2, "Unexpected reference instance.\n");
+ IDWriteFontFaceReference1_Release(reference2);
+ IDWriteFontFaceReference1_Release(reference);
+
+ hr = IDWriteFontFace_QueryInterface(fontface, &IID_IDWriteFontFace5, (void **)&fontface5);
+ ok(hr == S_OK, "Failed to get interface, hr %#x.\n", hr);
+
+ hr = IDWriteFontFace5_GetFontResource(fontface5, &resource2);
+ ok(hr == S_OK, "Failed to get font resource, hr %#x.\n", hr);
+ ok(resource != resource2, "Unexpected resource instance.\n");
+ IDWriteFontResource_Release(resource);
+
+ hr = IDWriteFontFace5_GetFontResource(fontface5, &resource);
+ ok(hr == S_OK, "Failed to get font resource, hr %#x.\n", hr);
+ ok(resource != resource2, "Unexpected resource instance.\n");
+ EXPECT_REF(resource, 1);
+
+ IDWriteFontResource_Release(resource);
+ IDWriteFontResource_Release(resource2);
+
+ IDWriteFontFace5_Release(fontface5);
+
+ IDWriteFontResource_Release(resource);
+ IDWriteFontFile_Release(fontfile);
+
+ IDWriteFontFace_Release(fontface);
+ ref = IDWriteFactory6_Release(factory);
+ ok(ref == 0, "Factory wasn't released, %u.\n", ref);
+}
+
START_TEST(font)
{
IDWriteFactory *factory;
@@ -9301,6 +9376,7 @@ START_TEST(font)
test_localfontfileloader();
test_AnalyzeContainerType();
test_fontsetbuilder();
+ test_font_resource();
IDWriteFactory_Release(factory);
}
More information about the wine-cvs
mailing list