Author: tfaber Date: Tue Apr 21 09:21:22 2015 New Revision: 67330
URL: http://svn.reactos.org/svn/reactos?rev=67330&view=rev Log: [USER32_APITEST] - Add a test for GetWindowPlacement CORE-9578
Added: trunk/rostests/apitests/user32/GetWindowPlacement.c (with props) Modified: trunk/rostests/apitests/user32/CMakeLists.txt trunk/rostests/apitests/user32/testlist.c
Modified: trunk/rostests/apitests/user32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/CMakeLists... ============================================================================== --- trunk/rostests/apitests/user32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/user32/CMakeLists.txt [iso-8859-1] Tue Apr 21 09:21:22 2015 @@ -15,6 +15,7 @@ GetPeekMessage.c GetSystemMetrics.c GetUserObjectInformation.c + GetWindowPlacement.c InitializeLpkHooks.c LoadImage.c LookupIconIdFromDirectoryEx.c
Added: trunk/rostests/apitests/user32/GetWindowPlacement.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/GetWindowP... ============================================================================== --- trunk/rostests/apitests/user32/GetWindowPlacement.c (added) +++ trunk/rostests/apitests/user32/GetWindowPlacement.c [iso-8859-1] Tue Apr 21 09:21:22 2015 @@ -0,0 +1,117 @@ +/* + * PROJECT: ReactOS API tests + * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory + * PURPOSE: Test for GetWindowPlacement + * PROGRAMMERS: Thomas Faber thomas.faber@reactos.org + */ + +#include <apitest.h> +#include <winuser.h> + +#define ALIGN_DOWN_BY(size, align) \ + ((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1)) + +#define ALIGN_UP_BY(size, align) \ + (ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align)) + +START_TEST(GetWindowPlacement) +{ + BYTE buffer[sizeof(WINDOWPLACEMENT) + 16]; + PWINDOWPLACEMENT wp = (PVOID)buffer; + DWORD error; + BOOL ret; + + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(NULL, NULL); + error = GetLastError(); + ok(ret == FALSE, "ret = %d\n", ret); + ok(error == ERROR_INVALID_WINDOW_HANDLE, "error = %lu\n", error); + + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), NULL); + error = GetLastError(); + ok(ret == FALSE, "ret = %d\n", ret); + ok(error == ERROR_NOACCESS, "error = %lu\n", error); + + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), (PVOID)(UINT_PTR)-4); + error = GetLastError(); + ok(ret == FALSE, "ret = %d\n", ret); + ok(error == ERROR_NOACCESS, "error = %lu\n", error); + + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), (PVOID)(ALIGN_UP_BY(buffer, 16) + 1)); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = 0; + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(NULL, wp); + error = GetLastError(); + ok(ret == FALSE, "ret = %d\n", ret); + ok(error == ERROR_INVALID_WINDOW_HANDLE, "error = %lu\n", error); + ok(wp->length == 0, "wp.length = %u\n", wp->length); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = 0; + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), wp); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + ok(wp->length == sizeof(*wp), "wp.length = %u\n", wp->length); + ok(wp->flags == 0, "wp.flags = %x\n", wp->flags); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = 1; + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), wp); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + ok(wp->length == sizeof(*wp), "wp.length = %u\n", wp->length); + ok(wp->flags == 0, "wp.flags = %x\n", wp->flags); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = sizeof(*wp) - 1; + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), wp); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + ok(wp->length == sizeof(*wp), "wp.length = %u\n", wp->length); + ok(wp->flags == 0, "wp.flags = %x\n", wp->flags); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = sizeof(*wp) + 1; + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), wp); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + ok(wp->length == sizeof(*wp), "wp.length = %u\n", wp->length); + ok(wp->flags == 0, "wp.flags = %x\n", wp->flags); + + FillMemory(wp, sizeof(*wp), 0x55); + wp->length = sizeof(*wp); + SetLastError(0xfeedfab1); + ret = GetWindowPlacement(GetDesktopWindow(), wp); + error = GetLastError(); + ok(ret == TRUE, "ret = %d\n", ret); + ok(error == 0xfeedfab1, "error = %lu\n", error); + ok(wp->length == sizeof(*wp), "wp.length = %u\n", wp->length); + ok(wp->flags == 0, "wp.flags = %x\n", wp->flags); + ok(wp->showCmd == SW_SHOWNORMAL, "wp.showCmd = %u\n", wp->showCmd); + ok(wp->ptMinPosition.x == (UINT)-1, "wp.ptMinPosition.x = %u\n", wp->ptMinPosition.x); + ok(wp->ptMinPosition.y == (UINT)-1, "wp.ptMinPosition.x = %u\n", wp->ptMinPosition.y); + ok(wp->ptMaxPosition.x == (UINT)-1, "wp.ptMaxPosition.x = %u\n", wp->ptMaxPosition.x); + ok(wp->ptMaxPosition.y == (UINT)-1, "wp.ptMaxPosition.y = %u\n", wp->ptMaxPosition.y); + ok(wp->rcNormalPosition.left == 0, "wp.rcNormalPosition.left = %u\n", wp->rcNormalPosition.left); + ok(wp->rcNormalPosition.top == 0, "wp.rcNormalPosition.top = %u\n", wp->rcNormalPosition.top); + ok(wp->rcNormalPosition.right != 0 && + wp->rcNormalPosition.right != 0x55555555, "wp.rcNormalPosition.right = %u\n", wp->rcNormalPosition.right); + ok(wp->rcNormalPosition.bottom != 0 && + wp->rcNormalPosition.bottom != 0x55555555, "wp.rcNormalPosition.bottom = %u\n", wp->rcNormalPosition.bottom); +}
Propchange: trunk/rostests/apitests/user32/GetWindowPlacement.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/rostests/apitests/user32/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/testlist.c... ============================================================================== --- trunk/rostests/apitests/user32/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/user32/testlist.c [iso-8859-1] Tue Apr 21 09:21:22 2015 @@ -17,6 +17,7 @@ extern void func_GetPeekMessage(void); extern void func_GetSystemMetrics(void); extern void func_GetUserObjectInformation(void); +extern void func_GetWindowPlacement(void); extern void func_InitializeLpkHooks(void); extern void func_LoadImage(void); extern void func_LookupIconIdFromDirectoryEx(void); @@ -49,6 +50,7 @@ { "GetPeekMessage", func_GetPeekMessage }, { "GetSystemMetrics", func_GetSystemMetrics }, { "GetUserObjectInformation", func_GetUserObjectInformation }, + { "GetWindowPlacement", func_GetWindowPlacement }, { "InitializeLpkHooks", func_InitializeLpkHooks }, { "LoadImage", func_LoadImage }, { "LookupIconIdFromDirectoryEx", func_LookupIconIdFromDirectoryEx },