Alexandre Julliard : user32: Add a bunch of tests for GetQueueStatus and GetMessage combinations.
Module: wine Branch: master Commit: 929dcfaad5fd0d8726a82fb73ef165da5aaea344 URL: http://source.winehq.org/git/wine.git/?a=commit;h=929dcfaad5fd0d8726a82fb73e... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Oct 29 12:13:57 2008 +0100 user32: Add a bunch of tests for GetQueueStatus and GetMessage combinations. --- dlls/user32/tests/msg.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 4cb8d61..c30331f 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -9212,6 +9212,82 @@ todo_wine { ok(qstatus == 0, "wrong qstatus %08x\n", qstatus); + /* some GetMessage tests */ + + keybd_event('N', 0, 0, 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus); + + PostMessageA(info.hwnd, WM_CHAR, 'z', 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, 0, 0 ); + ok(ret && msg.message == WM_CHAR && msg.wParam == 'z', + "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n", + ret, msg.message, msg.wParam); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(0, QS_KEY), "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, 0, 0 ); + ok(ret && msg.message == WM_KEYDOWN && msg.wParam == 'N', + "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n", + ret, msg.message, msg.wParam); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == 0, "wrong qstatus %08x\n", qstatus); + + keybd_event('N', 0, 0, 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus); + + PostMessageA(info.hwnd, WM_CHAR, 'z', 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, WM_KEYDOWN, WM_KEYUP ); + ok(ret && msg.message == WM_KEYDOWN && msg.wParam == 'N', + "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n", + ret, msg.message, msg.wParam); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(0, QS_POSTMESSAGE), "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, WM_CHAR, WM_CHAR ); + ok(ret && msg.message == WM_CHAR && msg.wParam == 'z', + "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n", + ret, msg.message, msg.wParam); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == 0, "wrong qstatus %08x\n", qstatus); + + keybd_event('N', 0, KEYEVENTF_KEYUP, 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus); + + PostMessageA(info.hwnd, WM_CHAR, 'z', 0); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus); + + trace("signalling to send message\n"); + SetEvent(info.hevent[EV_SENDMSG]); + WaitForSingleObject(info.hevent[EV_ACK], INFINITE); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(QS_SENDMESSAGE, QS_SENDMESSAGE|QS_POSTMESSAGE|QS_KEY), + "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, WM_KEYDOWN, WM_KEYUP ); + ok(ret && msg.message == WM_KEYUP && msg.wParam == 'N', + "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n", + ret, msg.message, msg.wParam); + ok_sequence(WmUser, "WmUser", FALSE); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == MAKELONG(0, QS_POSTMESSAGE), "wrong qstatus %08x\n", qstatus); + + ret = GetMessageA( &msg, 0, WM_CHAR, WM_CHAR ); + ok(ret && msg.message == WM_CHAR && msg.wParam == 'z', + "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n", + ret, msg.message, msg.wParam); + qstatus = GetQueueStatus(qs_all_input); + ok(qstatus == 0, "wrong qstatus %08x\n", qstatus); + done: trace("signalling to exit\n"); SetEvent(info.hevent[EV_STOP]);
participants (1)
-
Alexandre Julliard