mirror of
https://github.com/reactos/reactos.git
synced 2025-07-27 19:41:40 +00:00
[USP10_WINETEST] Sync with Wine Staging 4.0. CORE-15682
This commit is contained in:
parent
c0b82105b5
commit
f8629c57a9
1 changed files with 57 additions and 7 deletions
|
@ -3349,7 +3349,7 @@ static void test_ScriptCacheGetHeight(HDC hdc)
|
||||||
|
|
||||||
height = 123;
|
height = 123;
|
||||||
hr = ScriptCacheGetHeight(hdc, NULL, &height);
|
hr = ScriptCacheGetHeight(hdc, NULL, &height);
|
||||||
ok(hr == E_INVALIDARG, "Uexpected hr %#x.\n", hr);
|
ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
|
||||||
ok(height == 123, "Unexpected height.\n");
|
ok(height == 123, "Unexpected height.\n");
|
||||||
|
|
||||||
memset(&tm, 0, sizeof(tm));
|
memset(&tm, 0, sizeof(tm));
|
||||||
|
@ -3403,26 +3403,76 @@ static void test_ScriptGetGlyphABCWidth(HDC hdc)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
SCRIPT_CACHE sc = NULL;
|
SCRIPT_CACHE sc = NULL;
|
||||||
ABC abc;
|
HFONT hfont, prev_hfont;
|
||||||
|
TEXTMETRICA tm;
|
||||||
|
ABC abc, abc2;
|
||||||
|
LOGFONTA lf;
|
||||||
|
WORD glyph;
|
||||||
|
INT width;
|
||||||
|
DWORD ret;
|
||||||
|
|
||||||
hr = ScriptGetGlyphABCWidth(NULL, NULL, 'a', NULL);
|
glyph = 0;
|
||||||
|
ret = GetGlyphIndicesA(hdc, "a", 1, &glyph, 0);
|
||||||
|
ok(ret == 1, "Failed to get glyph index.\n");
|
||||||
|
ok(glyph != 0, "Unexpected glyph index.\n");
|
||||||
|
|
||||||
|
hr = ScriptGetGlyphABCWidth(NULL, NULL, glyph, NULL);
|
||||||
ok(hr == E_INVALIDARG, "expected E_INVALIDARG, got 0x%08x\n", hr);
|
ok(hr == E_INVALIDARG, "expected E_INVALIDARG, got 0x%08x\n", hr);
|
||||||
|
|
||||||
hr = ScriptGetGlyphABCWidth(NULL, &sc, 'a', NULL);
|
hr = ScriptGetGlyphABCWidth(NULL, &sc, glyph, NULL);
|
||||||
ok(broken(hr == E_PENDING) ||
|
ok(broken(hr == E_PENDING) ||
|
||||||
hr == E_INVALIDARG, /* WIN7 */
|
hr == E_INVALIDARG, /* WIN7 */
|
||||||
"expected E_INVALIDARG, got 0x%08x\n", hr);
|
"expected E_INVALIDARG, got 0x%08x\n", hr);
|
||||||
|
|
||||||
hr = ScriptGetGlyphABCWidth(NULL, &sc, 'a', &abc);
|
hr = ScriptGetGlyphABCWidth(NULL, &sc, glyph, &abc);
|
||||||
ok(hr == E_PENDING, "expected E_PENDING, got 0x%08x\n", hr);
|
ok(hr == E_PENDING, "expected E_PENDING, got 0x%08x\n", hr);
|
||||||
|
|
||||||
if (0) { /* crashes on WinXP */
|
if (0) { /* crashes on WinXP */
|
||||||
hr = ScriptGetGlyphABCWidth(hdc, &sc, 'a', NULL);
|
hr = ScriptGetGlyphABCWidth(hdc, &sc, glyph, NULL);
|
||||||
ok(hr == E_INVALIDARG, "expected E_INVALIDARG, got 0x%08x\n", hr);
|
ok(hr == E_INVALIDARG, "expected E_INVALIDARG, got 0x%08x\n", hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = ScriptGetGlyphABCWidth(hdc, &sc, 'a', &abc);
|
hr = ScriptGetGlyphABCWidth(hdc, &sc, glyph, &abc);
|
||||||
ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
|
ok(hr == S_OK, "expected S_OK, got 0x%08x\n", hr);
|
||||||
|
ok(abc.abcB != 0, "Unexpected width.\n");
|
||||||
|
|
||||||
|
ret = GetCharABCWidthsI(hdc, glyph, 1, NULL, &abc2);
|
||||||
|
ok(ret, "Failed to get char width.\n");
|
||||||
|
ok(!memcmp(&abc, &abc2, sizeof(abc)), "Unexpected width.\n");
|
||||||
|
|
||||||
|
ScriptFreeCache(&sc);
|
||||||
|
|
||||||
|
/* Bitmap font */
|
||||||
|
memset(&lf, 0, sizeof(lf));
|
||||||
|
strcpy(lf.lfFaceName, "System");
|
||||||
|
lf.lfHeight = 20;
|
||||||
|
|
||||||
|
hfont = CreateFontIndirectA(&lf);
|
||||||
|
prev_hfont = SelectObject(hdc, hfont);
|
||||||
|
|
||||||
|
ret = GetTextMetricsA(hdc, &tm);
|
||||||
|
ok(ret, "Failed to get text metrics.\n");
|
||||||
|
ok(!(tm.tmPitchAndFamily & TMPF_TRUETYPE), "Unexpected TrueType font.\n");
|
||||||
|
ok(tm.tmPitchAndFamily & TMPF_FIXED_PITCH, "Unexpected fixed pitch font.\n");
|
||||||
|
|
||||||
|
glyph = 0;
|
||||||
|
ret = GetGlyphIndicesA(hdc, "i", 1, &glyph, 0);
|
||||||
|
ok(ret == 1, "Failed to get glyph index.\n");
|
||||||
|
ok(glyph != 0, "Unexpected glyph index.\n");
|
||||||
|
|
||||||
|
sc = NULL;
|
||||||
|
hr = ScriptGetGlyphABCWidth(hdc, &sc, glyph, &abc);
|
||||||
|
ok(hr == S_OK, "Failed to get glyph width, hr %#x.\n", hr);
|
||||||
|
ok(abc.abcB != 0, "Unexpected width.\n");
|
||||||
|
|
||||||
|
ret = GetCharWidthI(hdc, glyph, 1, NULL, &width);
|
||||||
|
ok(ret, "Failed to get char width.\n");
|
||||||
|
abc2.abcA = abc2.abcC = 0;
|
||||||
|
abc2.abcB = width;
|
||||||
|
ok(!memcmp(&abc, &abc2, sizeof(abc)), "Unexpected width.\n");
|
||||||
|
|
||||||
|
SelectObject(hdc, prev_hfont);
|
||||||
|
DeleteObject(hfont);
|
||||||
|
|
||||||
ScriptFreeCache(&sc);
|
ScriptFreeCache(&sc);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue