user32/tests: Also include LBS_NODATA cases when testing ownerdraw.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Gabriel Ivăncescu 2018-11-20 12:57:41 +02:00 committed by Alexandre Julliard
parent 423ea9790b
commit 40e16ac150
1 changed files with 46 additions and 38 deletions

View File

@ -338,65 +338,73 @@ static HWND create_parent( void )
static void test_ownerdraw(void)
{
static const DWORD styles[] =
{
0,
LBS_NODATA
};
HWND parent, hLB;
INT ret;
RECT rc;
UINT i;
parent = create_parent();
assert(parent);
hLB = create_listbox(LBS_OWNERDRAWFIXED | WS_CHILD | WS_VISIBLE, parent);
assert(hLB);
for (i = 0; i < ARRAY_SIZE(styles); i++)
{
hLB = create_listbox(LBS_OWNERDRAWFIXED | WS_CHILD | WS_VISIBLE | styles[i], parent);
assert(hLB);
SetForegroundWindow(hLB);
UpdateWindow(hLB);
SetForegroundWindow(hLB);
UpdateWindow(hLB);
/* make height short enough */
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
SetWindowPos(hLB, 0, 0, 0, 100, rc.bottom - rc.top + 1,
SWP_NOZORDER | SWP_NOMOVE);
/* make height short enough */
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
SetWindowPos(hLB, 0, 0, 0, 100, rc.bottom - rc.top + 1,
SWP_NOZORDER | SWP_NOMOVE);
/* make 0 item invisible */
SendMessageA(hLB, LB_SETTOPINDEX, 1, 0);
ret = SendMessageA(hLB, LB_GETTOPINDEX, 0, 0);
ok(ret == 1, "wrong top index %d\n", ret);
/* make 0 item invisible */
SendMessageA(hLB, LB_SETTOPINDEX, 1, 0);
ret = SendMessageA(hLB, LB_GETTOPINDEX, 0, 0);
ok(ret == 1, "wrong top index %d\n", ret);
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
trace("item 0 rect %s\n", wine_dbgstr_rect(&rc));
ok(!IsRectEmpty(&rc), "empty item rect\n");
ok(rc.top < 0, "rc.top is not negative (%d)\n", rc.top);
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
trace("item 0 rect %s\n", wine_dbgstr_rect(&rc));
ok(!IsRectEmpty(&rc), "empty item rect\n");
ok(rc.top < 0, "rc.top is not negative (%d)\n", rc.top);
DestroyWindow(hLB);
DestroyWindow(hLB);
/* Both FIXED and VARIABLE, FIXED should override VARIABLE. */
hLB = CreateWindowA("listbox", "TestList", LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE, 0, 0, 100, 100,
NULL, NULL, NULL, 0);
ok(hLB != NULL, "last error 0x%08x\n", GetLastError());
/* Both FIXED and VARIABLE, FIXED should override VARIABLE. */
hLB = CreateWindowA("listbox", "TestList", LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE | styles[i],
0, 0, 100, 100, NULL, NULL, NULL, 0);
ok(hLB != NULL, "last error 0x%08x\n", GetLastError());
ok(GetWindowLongA(hLB, GWL_STYLE) & LBS_OWNERDRAWVARIABLE, "Unexpected window style.\n");
ok(GetWindowLongA(hLB, GWL_STYLE) & LBS_OWNERDRAWVARIABLE, "Unexpected window style.\n");
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 0, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 1, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 0, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 1, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 0, 13);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 0, 13);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == 13, "Unexpected item height %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == 13, "Unexpected item height %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 1, 42);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 1, 42);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 1, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret);
DestroyWindow (hLB);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 1, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret);
DestroyWindow (hLB);
}
DestroyWindow(parent);
}