[PATCH v3 1/4] dwrite/tests: Add some tests for Segoe UI font family.
Nikolay Sivov
nsivov at codeweavers.com
Tue Apr 5 00:44:51 CDT 2022
> +
> +static void test_SegoeUI(void)
> +{
> + HRESULT hr;
> + IDWriteFactory2 *factory;
> + IDWriteFontCollection *collection;
> + IDWriteFontFamily *family;
> + IDWriteFont *font;
> + UINT32 index, count, i;
> + WCHAR name[256];
> + BOOL exists, found;
> +
> + hr = DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED,
> &IID_IDWriteFactory2, (IUnknown **)&factory);
> + if (hr != S_OK)
> + {
> + win_skip("IDWriteFactory2 is not supported\n");
> + return;
> + }
> +
> + hr = IDWriteFactory2_GetSystemFontCollection(factory, &collection,
> FALSE);
> + ok(hr == S_OK, "got %#x\n", hr);
> +
> + hr = IDWriteFontCollection_FindFamilyName(collection, L"Segoe UI",
> &index, &exists);
> + ok(hr == S_OK, "got %#x\n", hr);
> + if (!exists)
> + {
> + skip("Segoe UI is not installed\n");
> + IDWriteFontCollection_Release(collection);
> + IDWriteFactory2_Release(factory);
> + return;
> + }
> + ok(index != UINT_MAX && exists, "Segoe UI was not found\n");
> +
> + hr = IDWriteFontCollection_GetFontFamily(collection, index, &family);
> + ok(hr == S_OK, "got %#x\n", hr);
> +
> + count = IDWriteFontFamily_GetFontCount(family);
> + trace("family Segoe UI has %u fonts\n", count);
> +
> + found = FALSE;
> +
> + for (i = 0; i < count; i++)
> + {
> + hr = IDWriteFontFamily_GetFont(family, i, &font);
> + ok(hr == S_OK, "got %#x\n", hr);
> +
> + get_font_name(font, name, ARRAY_SIZE(name));
> + if (!wcscmp(name, L"Segoe UI Symbol"))
> + found = TRUE;
> +
> + hr = IDWriteFont_HasCharacter(font, 0x25d4, &exists);
> + ok(hr == S_OK, "got %#x\n", hr);
> + ok(!exists, "%u: %s has character 0x25d4\n", i,
> wine_dbgstr_w(name));
> +
> + IDWriteFont_Release(font);
> + }
> +
> + ok(!found, "Segoe UI Symbol should not be part of Segoe UI family\n");
> +
> + IDWriteFontFamily_Release(family);
> + IDWriteFontCollection_Release(collection);
> + IDWriteFactory2_Release(factory);
> +}
All this does is checking if font is installed, and we know it is
installed on all current Windows versions, it's not some directwrite
functionality. Second patch will already trigger a todo case when font
is installed in Wine.
More information about the wine-devel
mailing list