[PATCH 7/7] user32/tests: Test WM_SYSCOMMAND(SC_MINIMIZE) on an unminimizable window.

Stefan Dösinger stefan at codeweavers.com
Mon Oct 6 06:43:02 CDT 2014


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

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 3a81ca7..2b9ff28 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -883,6 +883,24 @@ static const struct message WmMinUnminimizablePopupSeq[] = {
     { WM_GETTEXT, sent|optional },
     { 0 }
 };
+/* WM_SYSCOMMAND(SC_MINIMIZE) for an unminimizable popup window */
+static const struct message WmSCMinUnminimizablePopupSeq[] = {
+    { WM_SYSCOMMAND, sent|wparam, SC_MINIMIZE },
+    { HCBT_SYSCOMMAND, hook },
+    { HCBT_MINMAX, hook },
+    { HCBT_SETFOCUS, hook|optional },
+    { WM_KILLFOCUS, sent|optional|defwinproc },
+    { WM_GETTEXT, sent|optional|defwinproc },
+    { WM_WINDOWPOSCHANGING, sent|defwinproc }, /* Windows versions disagree about SWP_NOACTIVATE */
+    { WM_NCCALCSIZE, sent|wparam|defwinproc, TRUE },
+    { WM_NCPAINT, sent|optional|wparam|defwinproc, 1 },
+    { WM_GETTEXT, sent|optional|defwinproc },
+    { WM_WINDOWPOSCHANGED, sent|defwinproc },
+    { WM_MOVE, sent|defwinproc },
+    { WM_SIZE, sent|defwinproc|wparam, SIZE_MINIMIZED },
+    { WM_GETTEXT, sent|optional|defwinproc },
+    { 0 }
+};
 /* CreateWindow (for a child popup window, not initially visible) */
 static const struct message WmCreateChildPopupSeq[] = {
     { HCBT_CREATEWND, hook },
@@ -4430,6 +4448,25 @@ static void test_showwindow(void)
     ok_sequence(WmMinUnminimizablePopupSeq, "ShowWindow(SW_MINIMIZE):popup, unminimizable", FALSE);
     DestroyWindow(hwnd);
     flush_sequence();
+
+    /* Test 6:
+     * 1. Create a visible popup window without minimization decoration.
+     * 2. Minimize it with WM_SYSCOMMAND(SC_MINIMIZE).
+     */
+    trace("calling CreateWindowExA( WS_VISIBLE ) for popup window\n");
+    hwnd = CreateWindowExA(0, "TestWindowClass", "Test popup", WS_POPUP | WS_VISIBLE,
+                           100, 100, 200, 200, 0, 0, 0, NULL);
+    ok (hwnd != 0, "Failed to create popup window\n");
+    ok(!IsIconic(hwnd), "window should NOT be iconic\n");
+    ok_sequence(WmCreatePopupSeq, "CreateWindow(WS_VISIBLE):popup", FALSE);
+
+    trace("calling SendMessage( WM_SYSCOMMAND, SC_MINIMIZE ) for unminimizable popup window\n");
+    SendMessageA( hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0 );
+    ok(IsIconic(hwnd), "window should be iconic\n");
+    ok_sequence(WmSCMinUnminimizablePopupSeq, "SendMessage( WM_SYSCOMMAND, SC_MINIMIZE ):popup, unminimizable", FALSE);
+    DestroyWindow(hwnd);
+    flush_sequence();
+
 }
 
 static void test_sys_menu(void)
-- 
2.0.4




More information about the wine-patches mailing list