Fabian Maurer : user32/tests: Add tests for disabled buttons receiving WM_LBUTTONUP.

Alexandre Julliard julliard at winehq.org
Thu Feb 16 15:12:30 CST 2017


Module: wine
Branch: master
Commit: 43b0dce2032e757b54540baa639b5880a3cfa528
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=43b0dce2032e757b54540baa639b5880a3cfa528

Author: Fabian Maurer <dark.shadow4 at web.de>
Date:   Thu Feb  9 20:37:02 2017 +0100

user32/tests: Add tests for disabled buttons receiving WM_LBUTTONUP.

Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/tests/msg.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 1752b68..e95d435 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -6060,6 +6060,23 @@ static const struct message WmClearStateButtonSeq[] =
     { WM_APP, sent|wparam|lparam, 0, 0 },
     { 0 }
 };
+static const struct message WmDisableButtonSeq[] =
+{
+    { WM_LBUTTONDOWN, sent },
+    { BM_SETSTATE, sent|defwinproc },
+    { WM_CTLCOLORSTATIC, sent|defwinproc|optional },
+    { WM_CTLCOLORBTN, sent|optional },
+    { WM_LBUTTONUP, sent },
+    { BM_SETSTATE, sent|defwinproc },
+    { WM_CTLCOLORBTN, sent|defwinproc|optional },
+    { WM_CTLCOLORSTATIC, sent|defwinproc|optional },
+    { BM_SETCHECK, sent|defwinproc|optional },
+    { WM_CTLCOLORBTN, sent|optional },
+    { WM_CTLCOLORSTATIC, sent|defwinproc|optional },
+    { WM_CAPTURECHANGED, sent|defwinproc },
+    { WM_COMMAND, sent },
+    { 0 }
+};
 static const struct message WmClearStateOwnerdrawSeq[] =
 {
     { BM_SETSTATE, sent },
@@ -6448,6 +6465,24 @@ static void test_button_messages(void)
 
     DeleteObject(hfont2);
     DestroyWindow(parent);
+
+    /* Test if WM_LBUTTONDOWN and WM_LBUTTONUP to a disabled button leads to a WM_COMMAND for the parent */
+
+    parent = CreateWindowExA(0, "TestWindowClass", "Test overlapped", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
+            100, 100, 200, 200, 0, 0, 0, NULL);
+    ok (hwnd != 0, "Failed to create overlapped window\n");
+
+    hwnd = CreateWindowExA(0, "my_button_class", "test", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
+                                   0, 0, 50, 14, parent, 0, 0, NULL);
+
+    EnableWindow(hwnd, FALSE);
+    flush_sequence();
+    SendMessageA(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 0);
+    SendMessageA(hwnd, WM_LBUTTONUP, 0, 0);
+    ok_sequence(WmDisableButtonSeq, "Mouseclick on a disabled button", FALSE);
+
+    DestroyWindow(hwnd);
+    DestroyWindow(parent);
 }
 
 /****************** static message test *************************/




More information about the wine-cvs mailing list