[user32_apitest]

- Fix white spaces

svn path=/trunk/; revision=53811
This commit is contained in:
Giannis Adamopoulos 2011-09-23 11:45:44 +00:00
parent 886e0ff173
commit 34f9dc947a
2 changed files with 133 additions and 137 deletions

View file

@ -59,7 +59,7 @@ static HWND CreateTestWindow()
WNDCLASSA wclass; WNDCLASSA wclass;
HANDLE hInstance = GetModuleHandleA( NULL ); HANDLE hInstance = GetModuleHandleA( NULL );
HWND hWndTest; HWND hWndTest;
wclass.lpszClassName = "MouseInputTestClass"; wclass.lpszClassName = "MouseInputTestClass";
wclass.style = CS_HREDRAW | CS_VREDRAW; wclass.style = CS_HREDRAW | CS_VREDRAW;
wclass.lpfnWndProc = WndProc; wclass.lpfnWndProc = WndProc;
@ -154,8 +154,8 @@ void Test_SetCursorPos()
SetCapture(NULL); SetCapture(NULL);
DestroyWindow(hwnd); DestroyWindow(hwnd);
UnhookWindowsHookEx (hMouseHook); UnhookWindowsHookEx (hMouseHook);
UnhookWindowsHookEx (hMouseHookLL); UnhookWindowsHookEx (hMouseHookLL);
} }

View file

@ -40,13 +40,13 @@ static char* get_msg_name(UINT msg)
case WM_MOVE: return "WM_MOVE"; case WM_MOVE: return "WM_MOVE";
case WM_SHOWWINDOW: return "WM_SHOWWINDOW"; case WM_SHOWWINDOW: return "WM_SHOWWINDOW";
case WM_QUERYNEWPALETTE: return "WM_QUERYNEWPALETTE"; case WM_QUERYNEWPALETTE: return "WM_QUERYNEWPALETTE";
case WM_MOUSELEAVE: return "WM_MOUSELEAVE"; case WM_MOUSELEAVE: return "WM_MOUSELEAVE";
case WM_MOUSEHOVER: return "WM_MOUSEHOVER"; case WM_MOUSEHOVER: return "WM_MOUSEHOVER";
case WM_NCMOUSELEAVE: return "WM_NCMOUSELEAVE"; case WM_NCMOUSELEAVE: return "WM_NCMOUSELEAVE";
case WM_NCMOUSEHOVER: return "WM_NCMOUSEHOVER"; case WM_NCMOUSEHOVER: return "WM_NCMOUSEHOVER";
case WM_NCHITTEST: return "WM_NCHITTEST"; case WM_NCHITTEST: return "WM_NCHITTEST";
case WM_SETCURSOR: return "WM_SETCURSOR"; case WM_SETCURSOR: return "WM_SETCURSOR";
case WM_MOUSEMOVE: return "WM_MOUSEMOVE"; case WM_MOUSEMOVE: return "WM_MOUSEMOVE";
default: return NULL; default: return NULL;
} }
} }
@ -73,7 +73,7 @@ static void trace_cache()
trace("hwnd%d, msg:%d\n",message_cache[i].iwnd, message_cache[i].msg ); trace("hwnd%d, msg:%d\n",message_cache[i].iwnd, message_cache[i].msg );
} }
} }
trace("\n"); trace("\n");
} }
#endif #endif
@ -114,8 +114,8 @@ static void compare_cache(char* testname, MSG_ENTRY *msg_chain)
} }
i++; i++;
} }
empty_message_cache(); empty_message_cache();
} }
static void record_message(int iwnd, UINT message) static void record_message(int iwnd, UINT message)
@ -147,18 +147,18 @@ LRESULT CALLBACK TmeTestProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPar
else else
return DefWindowProc(hWnd, message, wParam, lParam); return DefWindowProc(hWnd, message, wParam, lParam);
record_message(iwnd, message); record_message(iwnd, message);
} }
} }
if(message == WM_PAINT) if(message == WM_PAINT)
{ {
PAINTSTRUCT ps; PAINTSTRUCT ps;
BeginPaint(hWnd, &ps); BeginPaint(hWnd, &ps);
Rectangle(ps.hdc, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right, ps.rcPaint.bottom); Rectangle(ps.hdc, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right, ps.rcPaint.bottom);
EndPaint(hWnd, &ps); EndPaint(hWnd, &ps);
} }
return DefWindowProc(hWnd, message, wParam, lParam); return DefWindowProc(hWnd, message, wParam, lParam);
} }
@ -194,159 +194,155 @@ static void create_test_windows()
UpdateWindow(hWnd2); UpdateWindow(hWnd2);
ShowWindow(hWnd3, SW_SHOWNORMAL); ShowWindow(hWnd3, SW_SHOWNORMAL);
UpdateWindow(hWnd3); UpdateWindow(hWnd3);
//SetWindowPos (hWnd3, HWND_TOP, 0,0,0,0, SWP_NOMOVE|SWP_NOREDRAW); //SetWindowPos (hWnd3, HWND_TOP, 0,0,0,0, SWP_NOMOVE|SWP_NOREDRAW);
} }
static void TmeStartTracking(HWND hwnd, DWORD Flags) static void TmeStartTracking(HWND hwnd, DWORD Flags)
{ {
TRACKMOUSEEVENT tme; TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme); tme.cbSize = sizeof(tme);
tme.dwFlags = Flags; tme.dwFlags = Flags;
tme.hwndTrack = hwnd; tme.hwndTrack = hwnd;
tme.dwHoverTime = 1; tme.dwHoverTime = 1;
if(!TrackMouseEvent(&tme)) if(!TrackMouseEvent(&tme))
{ {
trace("failed!\n"); trace("failed!\n");
} }
} }
DWORD TmeQuery(HWND hwnd) DWORD TmeQuery(HWND hwnd)
{ {
TRACKMOUSEEVENT tme; TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme); tme.cbSize = sizeof(tme);
tme.dwFlags = TME_QUERY|TME_HOVER|TME_LEAVE; tme.dwFlags = TME_QUERY|TME_HOVER|TME_LEAVE;
tme.hwndTrack = hwnd; tme.hwndTrack = hwnd;
TrackMouseEvent(&tme); TrackMouseEvent(&tme);
return tme.dwFlags; return tme.dwFlags;
} }
#define FLUSH_MESSAGES(msg) while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg ); #define FLUSH_MESSAGES(msg) while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
#define EXPECT_TME_FLAGS(hWnd, expected) \ #define EXPECT_TME_FLAGS(hWnd, expected) \
{ DWORD flags = TmeQuery(hWnd); \ { DWORD flags = TmeQuery(hWnd); \
ok(flags == (expected),"wrong tme flags. expected %li, and got %li\n", (DWORD)(expected), flags); \ ok(flags == (expected),"wrong tme flags. expected %li, and got %li\n", (DWORD)(expected), flags); \
} }
#define EXPECT_QUEUE_STATUS(expected, notexpected) \ #define EXPECT_QUEUE_STATUS(expected, notexpected) \
{ \ { \
DWORD status = HIWORD(GetQueueStatus(QS_ALLEVENTS)); \ DWORD status = HIWORD(GetQueueStatus(QS_ALLEVENTS)); \
ok(((status) & (expected))== (expected),"wrong queue status. expected %li, and got %li\n", (DWORD)(expected), status); \ ok(((status) & (expected))== (expected),"wrong queue status. expected %li, and got %li\n", (DWORD)(expected), status); \
if(notexpected) \ if(notexpected) \
ok((status & (notexpected))!=(notexpected), "wrong queue status. got non expected %li\n", (DWORD)(notexpected)); \ ok((status & (notexpected))!=(notexpected), "wrong queue status. got non expected %li\n", (DWORD)(notexpected)); \
} }
MSG_ENTRY empty_chain[]= {{0,0}}; MSG_ENTRY empty_chain[]= {{0,0}};
/* the mouse moves over hwnd2 */ /* the mouse moves over hwnd2 */
MSG_ENTRY mousemove2_chain[]={{2, WM_NCHITTEST}, MSG_ENTRY mousemove2_chain[]={{2, WM_NCHITTEST},
{2, WM_SETCURSOR}, {2, WM_SETCURSOR},
{1, WM_SETCURSOR}, {1, WM_SETCURSOR},
{2, WM_MOUSEMOVE}, {2, WM_MOUSEMOVE},
{0,0}}; {0,0}};
/* the mouse hovers hwnd2 */ /* the mouse hovers hwnd2 */
MSG_ENTRY mousehover2_chain[]={{2, WM_NCHITTEST}, MSG_ENTRY mousehover2_chain[]={{2, WM_NCHITTEST},
{2, WM_SETCURSOR}, {2, WM_SETCURSOR},
{1, WM_SETCURSOR}, {1, WM_SETCURSOR},
{2, WM_MOUSEMOVE}, {2, WM_MOUSEMOVE},
{2, WM_MOUSEHOVER}, {2, WM_MOUSEHOVER},
{0,0}}; {0,0}};
/* the mouse leaves hwnd2 and moves to hwnd1 */ /* the mouse leaves hwnd2 and moves to hwnd1 */
MSG_ENTRY mouseleave2to1_chain[]={{1, WM_NCHITTEST}, MSG_ENTRY mouseleave2to1_chain[]={{1, WM_NCHITTEST},
{1, WM_SETCURSOR}, {1, WM_SETCURSOR},
{1, WM_MOUSEMOVE}, {1, WM_MOUSEMOVE},
{2, WM_MOUSELEAVE}, {2, WM_MOUSELEAVE},
{0,0}}; {0,0}};
/* the mouse leaves hwnd2 and moves to hwnd3 */ /* the mouse leaves hwnd2 and moves to hwnd3 */
MSG_ENTRY mouseleave2to3_chain[]={{3, WM_NCHITTEST}, MSG_ENTRY mouseleave2to3_chain[]={{3, WM_NCHITTEST},
{3, WM_SETCURSOR}, {3, WM_SETCURSOR},
{1, WM_SETCURSOR}, {1, WM_SETCURSOR},
{3, WM_MOUSEMOVE}, {3, WM_MOUSEMOVE},
{2, WM_MOUSELEAVE}, {2, WM_MOUSELEAVE},
{0,0}}; {0,0}};
void Test_TrackMouseEvent() void Test_TrackMouseEvent()
{ {
MSG msg; MSG msg;
SetCursorPos(0,0);
create_test_windows();
FLUSH_MESSAGES(msg);
empty_message_cache();
/* the mouse moves over hwnd2 */
SetCursorPos(220,220);
FLUSH_MESSAGES(msg);
compare_cache("mousemove2", mousemove2_chain);
EXPECT_TME_FLAGS(hWnd2, 0);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
FLUSH_MESSAGES(msg);
compare_cache("empty1", empty_chain);
/* the mouse hovers hwnd2 */
SetCursorPos(221,221);
Sleep(100);
EXPECT_QUEUE_STATUS(QS_TIMER|QS_MOUSEMOVE, QS_POSTMESSAGE);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, TME_LEAVE);
compare_cache("mousehover2", mousehover2_chain);
/* the mouse leaves hwnd2 and moves to hwnd1 */
SetCursorPos(150,150);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE,QS_TIMER|QS_POSTMESSAGE );
EXPECT_TME_FLAGS(hWnd2, TME_LEAVE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("mouseleave2to1", mouseleave2to1_chain);
FLUSH_MESSAGES(msg);
compare_cache("empty2", empty_chain);
/* the mouse moves over hwnd2 */
SetCursorPos(220,220);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
compare_cache("mousemove2", mousemove2_chain);
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("empty3", empty_chain);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
EXPECT_QUEUE_STATUS(0, QS_TIMER|QS_MOUSEMOVE|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
compare_cache("empty4", empty_chain);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
FLUSH_MESSAGES(msg);
compare_cache("empty5", empty_chain);
/* the mouse moves from hwnd2 to the intersection of hwnd2 and hwnd3 */
SetCursorPos(300,300);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
compare_cache("mousemove2", mousemove2_chain);
FLUSH_MESSAGES(msg);
compare_cache("empty6", empty_chain);
/* the mouse moves from hwnd2 to hwnd3 */ SetCursorPos(0,0);
SetCursorPos(400,400); create_test_windows();
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE); FLUSH_MESSAGES(msg);
FLUSH_MESSAGES(msg); empty_message_cache();
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("mousemove2to3", mouseleave2to3_chain); /* the mouse moves over hwnd2 */
SetCursorPos(220,220);
FLUSH_MESSAGES(msg); FLUSH_MESSAGES(msg);
compare_cache("empty7", empty_chain); compare_cache("mousemove2", mousemove2_chain);
EXPECT_TME_FLAGS(hWnd2, 0);
//trace_cache(); TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
//Sleep(2000); FLUSH_MESSAGES(msg);
compare_cache("empty1", empty_chain);
/* the mouse hovers hwnd2 */
SetCursorPos(221,221);
Sleep(100);
EXPECT_QUEUE_STATUS(QS_TIMER|QS_MOUSEMOVE, QS_POSTMESSAGE);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, TME_LEAVE);
compare_cache("mousehover2", mousehover2_chain);
/* the mouse leaves hwnd2 and moves to hwnd1 */
SetCursorPos(150,150);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE,QS_TIMER|QS_POSTMESSAGE );
EXPECT_TME_FLAGS(hWnd2, TME_LEAVE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("mouseleave2to1", mouseleave2to1_chain);
FLUSH_MESSAGES(msg);
compare_cache("empty2", empty_chain);
/* the mouse moves over hwnd2 */
SetCursorPos(220,220);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
compare_cache("mousemove2", mousemove2_chain);
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("empty3", empty_chain);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
TmeStartTracking(hWnd2, TME_HOVER|TME_LEAVE);
EXPECT_QUEUE_STATUS(0, QS_TIMER|QS_MOUSEMOVE|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
compare_cache("empty4", empty_chain);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
FLUSH_MESSAGES(msg);
compare_cache("empty5", empty_chain);
/* the mouse moves from hwnd2 to the intersection of hwnd2 and hwnd3 */
SetCursorPos(300,300);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, TME_HOVER|TME_LEAVE);
compare_cache("mousemove2", mousemove2_chain);
FLUSH_MESSAGES(msg);
compare_cache("empty6", empty_chain);
/* the mouse moves from hwnd2 to hwnd3 */
SetCursorPos(400,400);
EXPECT_QUEUE_STATUS(QS_MOUSEMOVE, QS_TIMER|QS_POSTMESSAGE);
FLUSH_MESSAGES(msg);
EXPECT_TME_FLAGS(hWnd2, 0);
compare_cache("mousemove2to3", mouseleave2to3_chain);
FLUSH_MESSAGES(msg);
compare_cache("empty7", empty_chain);
} }
START_TEST(TrackMouseEvent) START_TEST(TrackMouseEvent)