user32/tests: Add tests for GetWindowPlacement() and SetWindowPlacement().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
145b410920
commit
ed0568a506
|
@ -10766,6 +10766,197 @@ static void test_IsWindowEnabled(void)
|
|||
DestroyWindow(hwnd);
|
||||
}
|
||||
|
||||
static void test_window_placement(void)
|
||||
{
|
||||
RECT orig = {100, 200, 300, 400}, orig2 = {200, 300, 400, 500}, rect;
|
||||
WINDOWPLACEMENT wp = {sizeof(wp)};
|
||||
HWND hwnd;
|
||||
BOOL ret;
|
||||
|
||||
hwnd = CreateWindowA("MainWindowClass", "wp", WS_OVERLAPPEDWINDOW,
|
||||
orig.left, orig.top, orig.right - orig.left, orig.bottom - orig.top, 0, 0, 0, 0);
|
||||
ok(!!hwnd, "failed to create window, error %u\n", GetLastError());
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -1 && wp.ptMinPosition.y == -1,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_MINIMIZE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(!wp.flags, "got flags %#x\n", wp.flags);
|
||||
ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_MAXIMIZE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
SetWindowPos(hwnd, 0, 100, 100, 100, 100, SWP_NOZORDER | SWP_NOACTIVATE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
ok(wp.ptMaxPosition.x == 100 && wp.ptMaxPosition.y == 100,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_MINIMIZE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.flags == WPF_RESTORETOMAXIMIZED, "got flags %#x\n", wp.flags);
|
||||
ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
wp.flags = WPF_SETMINPOSITION;
|
||||
wp.ptMinPosition.x = wp.ptMinPosition.y = 100;
|
||||
wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100;
|
||||
wp.rcNormalPosition = orig2;
|
||||
ret = SetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to set window placement, error %u\n", GetLastError());
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWNORMAL, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == 100 && wp.ptMinPosition.y == 100,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig2), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
GetWindowRect(hwnd, &rect);
|
||||
ok(EqualRect(&rect, &orig2), "got window rect %s\n", wine_dbgstr_rect(&rect));
|
||||
|
||||
ShowWindow(hwnd, SW_MINIMIZE);
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(!wp.flags, "got flags %#x\n", wp.flags);
|
||||
ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig2), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
|
||||
wp.flags = WPF_SETMINPOSITION;
|
||||
wp.showCmd = SW_MINIMIZE;
|
||||
wp.ptMinPosition.x = wp.ptMinPosition.y = 100;
|
||||
wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100;
|
||||
wp.rcNormalPosition = orig;
|
||||
ret = SetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to set window placement, error %u\n", GetLastError());
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(!wp.flags, "got flags %#x\n", wp.flags);
|
||||
ok(wp.showCmd == SW_SHOWMINIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == -32000 && wp.ptMinPosition.y == -32000,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
|
||||
wp.flags = WPF_SETMINPOSITION;
|
||||
wp.showCmd = SW_MAXIMIZE;
|
||||
wp.ptMinPosition.x = wp.ptMinPosition.y = 100;
|
||||
wp.ptMaxPosition.x = wp.ptMaxPosition.y = 100;
|
||||
wp.rcNormalPosition = orig;
|
||||
ret = SetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to set window placement, error %u\n", GetLastError());
|
||||
|
||||
ret = GetWindowPlacement(hwnd, &wp);
|
||||
ok(ret, "failed to get window placement, error %u\n", GetLastError());
|
||||
ok(wp.showCmd == SW_SHOWMAXIMIZED, "got show cmd %u\n", wp.showCmd);
|
||||
ok(wp.ptMinPosition.x == 100 && wp.ptMinPosition.y == 100,
|
||||
"got minimized pos (%d,%d)\n", wp.ptMinPosition.x, wp.ptMinPosition.y);
|
||||
todo_wine
|
||||
ok(wp.ptMaxPosition.x == -1 && wp.ptMaxPosition.y == -1,
|
||||
"got maximized pos (%d,%d)\n", wp.ptMaxPosition.x, wp.ptMaxPosition.y);
|
||||
ok(EqualRect(&wp.rcNormalPosition, &orig), "got normal pos %s\n",
|
||||
wine_dbgstr_rect(&wp.rcNormalPosition));
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
}
|
||||
|
||||
START_TEST(win)
|
||||
{
|
||||
char **argv;
|
||||
|
@ -10922,6 +11113,7 @@ START_TEST(win)
|
|||
test_minimize_window(hwndMain);
|
||||
test_destroy_quit();
|
||||
test_IsWindowEnabled();
|
||||
test_window_placement();
|
||||
|
||||
/* add the tests above this line */
|
||||
if (hhook) UnhookWindowsHookEx(hhook);
|
||||
|
|
Loading…
Reference in New Issue