Alexandre Julliard : user32/tests: Fix more message tests on XP and Vista.

Alexandre Julliard julliard at winehq.org
Fri Feb 13 08:58:57 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Feb 13 13:02:08 2009 +0100

user32/tests: Fix more message tests on XP and Vista.

---

 dlls/user32/tests/msg.c |   47 +++++++++++++++++++++++++++++++----------------
 1 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index ee39224..a865d74 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -515,7 +515,7 @@ static const struct message WmShowRestoreMaxOverlappedSeq[] = {
 };
 /* ShowWindow(SW_RESTORE) for a not visible minimized overlapped window */
 static const struct message WmShowRestoreMinOverlappedSeq[] = {
-    { HCBT_MINMAX, hook|lparam|optional, 0, SW_RESTORE },
+    { HCBT_MINMAX, hook|lparam, 0, SW_RESTORE },
     { WM_QUERYOPEN, sent|optional },
     { WM_GETTEXT, sent|optional },
     { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED|SWP_NOCOPYBITS },
@@ -576,6 +576,7 @@ static const struct message WmShowMinOverlappedSeq[] = {
     { WM_ACTIVATE, sent },
     { WM_ACTIVATEAPP, sent|wparam, 0 },
     { WM_SYSCOMMAND, sent|optional|wparam, SC_RESTORE },
+    { HCBT_SYSCOMMAND, hook|optional|wparam, SC_RESTORE },
     { WM_PAINT, sent|optional },
     { WM_NCPAINT, sent|beginpaint|optional },
     { WM_ERASEBKGND, sent|beginpaint|optional },
@@ -1837,7 +1838,6 @@ static void flush_events(void)
         if (MsgWaitForMultipleObjects( 0, NULL, FALSE, min_timeout, QS_ALLINPUT ) == WAIT_TIMEOUT) break;
         while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessage( &msg );
         diff = time - GetTickCount();
-        min_timeout = 50;
     }
 }
 
@@ -4439,21 +4439,28 @@ static void test_messages(void)
     ShowWindow(hwnd, SW_SHOWMAXIMIZED);
     flush_events();
     ok_sequence(WmShowMaxOverlappedSeq, "ShowWindow(SW_SHOWMAXIMIZED):overlapped", TRUE);
-
-    ShowWindow(hwnd, SW_RESTORE);
-    ok_sequence(WmShowRestoreMaxOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", FALSE);
-    flush_events();
     flush_sequence();
 
+    if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_MAXIMIZE)
+    {
+        ShowWindow(hwnd, SW_RESTORE);
+        flush_events();
+        ok_sequence(WmShowRestoreMaxOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", FALSE);
+        flush_sequence();
+    }
+
     ShowWindow(hwnd, SW_MINIMIZE);
     flush_events();
     ok_sequence(WmShowMinOverlappedSeq, "ShowWindow(SW_SHOWMINIMIZED):overlapped", TRUE);
     flush_sequence();
 
-    ShowWindow(hwnd, SW_RESTORE);
-    flush_events();
-    ok_sequence(WmShowRestoreMinOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", TRUE);
-    flush_sequence();
+    if (GetWindowLongW( hwnd, GWL_STYLE ) & WS_MINIMIZE)
+    {
+        ShowWindow(hwnd, SW_RESTORE);
+        flush_events();
+        ok_sequence(WmShowRestoreMinOverlappedSeq, "ShowWindow(SW_RESTORE):overlapped", TRUE);
+        flush_sequence();
+    }
 
     ShowWindow(hwnd, SW_SHOW);
     flush_events();
@@ -6614,6 +6621,7 @@ static void pump_msg_loop(HWND hwnd, HACCEL hAccel)
 static void test_accelerators(void)
 {
     RECT rc;
+    POINT pt;
     SHORT state;
     HACCEL hAccel;
     HWND hwnd = CreateWindowExA(0, "TestWindowClass", NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
@@ -6784,12 +6792,16 @@ static void test_accelerators(void)
 
     flush_events();
     flush_sequence();
-    keybd_event(VK_SHIFT, 0, 0, 0);
-    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
-    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
-    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
-    pump_msg_loop(hwnd, 0);
-    ok_sequence(WmShiftMouseButton, "Shift+MouseButton press/release", FALSE);
+    GetCursorPos(&pt);
+    if (pt.x == rc.left && pt.y == rc.top)
+    {
+        keybd_event(VK_SHIFT, 0, 0, 0);
+        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
+        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
+        keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
+        pump_msg_loop(hwnd, 0);
+        ok_sequence(WmShiftMouseButton, "Shift+MouseButton press/release", FALSE);
+    }
 
     trace("testing VK_F1 press/release\n");
     keybd_event(VK_F1, 0, 0, 0);
@@ -10368,6 +10380,9 @@ static const struct message SetActiveWindowSeq0[] =
     { WM_NCACTIVATE, sent|wparam, 0 },
     { WM_GETTEXT, sent|defwinproc|optional },
     { WM_ACTIVATE, sent|wparam, 0 },
+    { WM_ACTIVATEAPP, sent|wparam|optional, 0 },
+    { WM_ACTIVATEAPP, sent|wparam|optional, 0 },
+    { WM_KILLFOCUS, sent|wparam|optional, 0 },
     { WM_QUERYNEWPALETTE, sent|wparam|lparam|optional, 0, 0 },
     { WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE },
     { WM_WINDOWPOSCHANGING, sent|wparam, SWP_NOSIZE|SWP_NOMOVE },




More information about the wine-cvs mailing list