mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 15:16:35 +00:00
[user32_apitest]
- Add some more tests hoping that SetActiveWindow will reveal its secrets svn path=/trunk/; revision=53632
This commit is contained in:
parent
f085f50747
commit
7635cc18b1
1 changed files with 57 additions and 17 deletions
|
@ -9,41 +9,81 @@
|
|||
#include <wine/test.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
#define EXPECT_NEXT(hWnd1, hWnd2) ok(GetWindow(hWnd1,GW_HWNDNEXT) == hWnd2, "Expected %p after %p, not %p\n",hWnd2,hWnd1,GetWindow(hWnd1,GW_HWNDNEXT) )
|
||||
#define EXPECT_ACTIVE(hwnd) ok(GetActiveWindow() == hwnd, "Expected %p to be the active window, not %p\n",hwnd,GetActiveWindow())
|
||||
|
||||
void Test_SetActiveWindow()
|
||||
{
|
||||
MSG msg;
|
||||
HWND hWnd, hWnd1, hWnd2;
|
||||
|
||||
hWnd = CreateWindowW(L"BUTTON", L"ownertest", WS_OVERLAPPEDWINDOW,
|
||||
20, 20, 300, 300, NULL, NULL, 0, NULL);
|
||||
HWND hWnd1, hWnd2, hWnd3, hWnd4;
|
||||
|
||||
hWnd1 = CreateWindowW(L"BUTTON", L"ownertest", WS_OVERLAPPEDWINDOW,
|
||||
20, 350, 300, 300, hWnd, NULL, 0, NULL);
|
||||
20, 20, 300, 300, NULL, NULL, 0, NULL);
|
||||
|
||||
hWnd2 = CreateWindowW(L"BUTTON", L"ownertest", WS_OVERLAPPEDWINDOW,
|
||||
20, 350, 300, 300, hWnd1, NULL, 0, NULL);
|
||||
|
||||
hWnd3 = CreateWindowW(L"BUTTON", L"ownertest", WS_OVERLAPPEDWINDOW,
|
||||
200, 200, 300, 300, NULL, NULL, 0, NULL);
|
||||
|
||||
ShowWindow(hWnd, SW_SHOW);
|
||||
UpdateWindow(hWnd);
|
||||
hWnd4 = CreateWindowW(L"BUTTON", L"ownertest", WS_OVERLAPPEDWINDOW,
|
||||
250, 250, 200, 200, hWnd1, NULL, 0, NULL);
|
||||
|
||||
ShowWindow(hWnd1, SW_SHOW);
|
||||
UpdateWindow(hWnd1);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
EXPECT_NEXT(hWnd4,hWnd2);
|
||||
EXPECT_NEXT(hWnd1,hWnd3);
|
||||
|
||||
ShowWindow(hWnd2, SW_SHOW);
|
||||
UpdateWindow(hWnd2);
|
||||
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
ok(GetWindow(hWnd2,GW_HWNDNEXT) == hWnd1, "Expected %p after %p, not %p\n",hWnd1,hWnd2,GetWindow(hWnd2,GW_HWNDNEXT) );
|
||||
ok(GetWindow(hWnd1,GW_HWNDNEXT) == hWnd, "Expected %p after %p, not %p\n",hWnd,hWnd1,GetWindow(hWnd1,GW_HWNDNEXT));
|
||||
ok(GetActiveWindow() == hWnd2, "Expected %p to be the active window, not %p\n",hWnd2,GetActiveWindow());
|
||||
|
||||
SetActiveWindow(hWnd);
|
||||
EXPECT_NEXT(hWnd2,hWnd4);
|
||||
EXPECT_NEXT(hWnd4,hWnd1);
|
||||
|
||||
ShowWindow(hWnd3, SW_SHOW);
|
||||
UpdateWindow(hWnd3);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
/* note: the owned is moved on top of the three windows */
|
||||
ok(GetActiveWindow() == hWnd, "Expected %p to be the active window, not %p\n",hWnd,GetActiveWindow());
|
||||
ok(GetWindow(hWnd1,GW_HWNDNEXT) == hWnd, "Expected %p after %p, not %p\n",hWnd,hWnd1,GetWindow(hWnd1,GW_HWNDNEXT) );
|
||||
ok(GetWindow(hWnd,GW_HWNDNEXT) == hWnd2, "Expected %p after %p, not %p\n",hWnd2,hWnd,GetWindow(hWnd,GW_HWNDNEXT) );
|
||||
EXPECT_NEXT(hWnd3,hWnd2);
|
||||
EXPECT_NEXT(hWnd2,hWnd4);
|
||||
EXPECT_NEXT(hWnd4,hWnd1);
|
||||
|
||||
ShowWindow(hWnd4, SW_SHOW);
|
||||
UpdateWindow(hWnd4);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
EXPECT_NEXT(hWnd4,hWnd2);
|
||||
EXPECT_NEXT(hWnd2,hWnd1);
|
||||
EXPECT_NEXT(hWnd1,hWnd3);
|
||||
EXPECT_ACTIVE(hWnd4);
|
||||
|
||||
SetActiveWindow(hWnd1);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
EXPECT_NEXT(hWnd4,hWnd2);
|
||||
EXPECT_NEXT(hWnd2,hWnd1);
|
||||
EXPECT_NEXT(hWnd1,hWnd3);
|
||||
EXPECT_ACTIVE(hWnd1);
|
||||
|
||||
SetActiveWindow(hWnd3);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
EXPECT_NEXT(hWnd3,hWnd4);
|
||||
EXPECT_NEXT(hWnd4,hWnd2);
|
||||
EXPECT_NEXT(hWnd2,hWnd1);
|
||||
EXPECT_ACTIVE(hWnd3);
|
||||
|
||||
SetActiveWindow(hWnd2);
|
||||
while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageA( &msg );
|
||||
|
||||
EXPECT_NEXT(hWnd2,hWnd4);
|
||||
EXPECT_NEXT(hWnd4,hWnd1);
|
||||
EXPECT_NEXT(hWnd1,hWnd3);
|
||||
EXPECT_ACTIVE(hWnd2);
|
||||
}
|
||||
|
||||
START_TEST(SetActiveWindow)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue