[RESEND 3/4] user32/combo: Add tests for WM_CTLCOLOR*
Fabian Maurer
dark.shadow4 at web.de
Fri Nov 1 08:35:35 CDT 2019
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/user32/tests/combo.c | 72 +++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/dlls/user32/tests/combo.c b/dlls/user32/tests/combo.c
index 0d3b1b170f..41edd746e1 100644
--- a/dlls/user32/tests/combo.c
+++ b/dlls/user32/tests/combo.c
@@ -33,6 +33,8 @@
static HWND hMainWnd;
+static HBRUSH brush_red;
+
#define expect_eq(expr, value, type, fmt); { type val = expr; ok(val == (value), #expr " expected " #fmt " got " #fmt "\n", (value), val); }
#define expect_rect(r, _left, _top, _right, _bottom) ok(r.left == _left && r.top == _top && \
r.bottom == _bottom && r.right == _right, "Invalid rect %s vs (%d,%d)-(%d,%d)\n", \
@@ -173,6 +175,7 @@ static LRESULT (CALLBACK *old_parent_proc)(HWND hwnd, UINT msg, WPARAM wparam, L
static LPCSTR expected_edit_text;
static LPCSTR expected_list_text;
static BOOL selchange_fired;
+static HWND lparam_for_WM_CTLCOLOR = 0;
static LRESULT CALLBACK parent_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
@@ -204,6 +207,19 @@ static LRESULT CALLBACK parent_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPAR
break;
}
break;
+ case WM_CTLCOLOR:
+ case WM_CTLCOLORMSGBOX:
+ case WM_CTLCOLOREDIT:
+ case WM_CTLCOLORLISTBOX:
+ case WM_CTLCOLORBTN:
+ case WM_CTLCOLORDLG:
+ case WM_CTLCOLORSCROLLBAR:
+ case WM_CTLCOLORSTATIC:
+ if (lparam_for_WM_CTLCOLOR)
+ {
+ ok(lparam_for_WM_CTLCOLOR == (HWND)lparam, "Expected %p, got %p\n", lparam_for_WM_CTLCOLOR, (HWND)lparam);
+ }
+ return (LRESULT) brush_red;
}
return CallWindowProcA(old_parent_proc, hwnd, msg, wparam, lparam);
@@ -804,8 +820,62 @@ static void test_WS_VSCROLL(void)
DestroyWindow(hCombo);
}
+static void test_color_messages(void)
+{
+ HBRUSH brush;
+ int result;
+ COMBOBOXINFO info;
+ HWND handle_combo = build_combo(CBS_DROPDOWN);
+
+ old_parent_proc = (void *)SetWindowLongPtrA(hMainWnd, GWLP_WNDPROC, (ULONG_PTR)parent_wnd_proc);
+
+ info.cbSize = sizeof(COMBOBOXINFO);
+ SetLastError(0xdeadbeef);
+ result = GetComboBoxInfo(handle_combo, &info);
+ ok(result, "Failed to get combobox info structure.\n");
+
+ lparam_for_WM_CTLCOLOR = info.hwndItem;
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLOR, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORMSGBOX, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLOREDIT, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORLISTBOX, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORBTN, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORDLG, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORSCROLLBAR, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORSTATIC, 0, (LPARAM)info.hwndItem);
+ todo_wine
+ ok(brush == brush_red, "Expected %p, got %p\n", brush_red, brush);
+
+ lparam_for_WM_CTLCOLOR = 0;
+
+ DestroyWindow(handle_combo);
+ SetWindowLongPtrA(hMainWnd, GWLP_WNDPROC, (ULONG_PTR)old_parent_proc);
+}
START_TEST(combo)
{
+ brush_red = CreateSolidBrush(RGB(255, 0, 0));
hMainWnd = CreateWindowA("static", "Test", WS_OVERLAPPEDWINDOW, 10, 10, 300, 300, NULL, NULL, NULL, 0);
ShowWindow(hMainWnd, SW_SHOW);
@@ -825,6 +895,8 @@ START_TEST(combo)
test_listbox_styles(CBS_DROPDOWN);
test_listbox_styles(CBS_DROPDOWNLIST);
test_listbox_size(CBS_DROPDOWN);
+ test_color_messages();
DestroyWindow(hMainWnd);
+ DeleteObject(brush_red);
}
--
2.23.0
More information about the wine-devel
mailing list