Alexandre Julliard : user32/tests: Fix window tests on various Windows versions.
Alexandre Julliard
julliard at winehq.org
Wed Nov 12 07:18:37 CST 2008
Module: wine
Branch: master
Commit: 4a57339236b91506f96050bd1515f3f208f9fda5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4a57339236b91506f96050bd1515f3f208f9fda5
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Nov 11 23:00:10 2008 +0100
user32/tests: Fix window tests on various Windows versions.
---
dlls/user32/tests/win.c | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 6e41100..84a2780 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -963,12 +963,14 @@ static void test_shell_window(void)
DWORD pid;
HANDLE hProcess;
+ SetLastError(0xdeadbeef);
ret = DestroyWindow(shellWindow);
error = GetLastError();
ok(!ret, "DestroyWindow(shellWindow)\n");
/* passes on Win XP, but not on Win98 */
- ok(error==ERROR_ACCESS_DENIED, "ERROR_ACCESS_DENIED after DestroyWindow(shellWindow)\n");
+ ok(error==ERROR_ACCESS_DENIED || error == 0xdeadbeef,
+ "got %u after DestroyWindow(shellWindow)\n", error);
/* close old shell instance */
GetWindowThreadProcessId(shellWindow, &pid);
@@ -2558,7 +2560,7 @@ static void test_keyboard_input(HWND hwnd)
BOOL ret;
flush_events( TRUE );
- ShowWindow(hwnd, SW_SHOW);
+ SetWindowPos(hwnd, 0, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_SHOWWINDOW);
UpdateWindow(hwnd);
flush_events( TRUE );
@@ -2680,13 +2682,17 @@ static void test_mouse_input(HWND hwnd)
mouse_event(MOUSEEVENTF_MOVE, -1, -1, 0, 0);
ShowWindow(popup, SW_HIDE);
- ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
+ do
+ ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
+ while (msg.message >= 0xc000); /* skip registered messages */
ok(msg.hwnd == hwnd && msg.message == WM_MOUSEMOVE, "hwnd %p message %04x\n", msg.hwnd, msg.message);
flush_events( TRUE );
mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
ShowWindow(hwnd, SW_HIDE);
- ret = PeekMessageA(&msg, 0, 0, 0, PM_REMOVE);
+ do
+ ret = PeekMessageA(&msg, 0, 0, 0, PM_REMOVE);
+ while (ret && msg.message >= 0xc000); /* skip registered messages */
ok( !ret, "message %04x available\n", msg.message);
flush_events( TRUE );
@@ -2752,7 +2758,9 @@ static void test_mouse_input(HWND hwnd)
SendMessageA(hwnd, WM_COMMAND, (WPARAM)popup, 0);
test_lbuttondown_flag = FALSE;
- ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
+ do
+ ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
+ while (msg.message >= 0xc000); /* skip registered messages */
ok(msg.hwnd == popup && msg.message == WM_LBUTTONDOWN, "hwnd %p/%p message %04x\n",
msg.hwnd, popup, msg.message);
ok(PeekMessageA(&msg, 0, 0, 0, PM_REMOVE), "no message available\n");
@@ -4753,11 +4761,12 @@ static void test_GetWindowModuleFileName(void)
ok(!ret1, "expected 0, got %u\n", ret1);
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE, "expected ERROR_INVALID_WINDOW_HANDLE, got %u\n", GetLastError());
+ ret1 = GetModuleFileName(0, buf1, sizeof(buf1));
hwnd = GetDesktopWindow();
ok(IsWindow(hwnd), "got invalid desktop window %p\n", hwnd);
SetLastError(0xdeadbeef);
- ret1 = pGetWindowModuleFileNameA(hwnd, buf1, sizeof(buf1));
- ok(!ret1, "expected 0, got %u\n", ret1);
+ ret2 = pGetWindowModuleFileNameA(hwnd, buf2, sizeof(buf2));
+ ok(!ret2 || ret1 == ret2 /* vista */, "expected 0, got %u\n", ret2);
hwnd = FindWindow("Shell_TrayWnd", NULL);
ok(IsWindow(hwnd), "got invalid tray window %p\n", hwnd);
@@ -5151,7 +5160,6 @@ START_TEST(win)
test_SetMenu(hwndMain);
test_SetFocus(hwndMain);
test_SetActiveWindow(hwndMain);
- test_SetForegroundWindow(hwndMain);
test_children_zorder(hwndMain);
test_popup_zorder(hwndMain2, hwndMain);
@@ -5171,11 +5179,12 @@ START_TEST(win)
test_csparentdc();
test_SetWindowLong();
test_ShowWindow();
- test_gettext();
+ if (0) test_gettext(); /* crashes on NT4 */
test_GetUpdateRect();
test_Expose();
test_layered_window();
+ test_SetForegroundWindow(hwndMain);
test_shell_window();
/* add the tests above this line */
More information about the wine-cvs
mailing list