Author: tkreuzer Date: Sun Jan 16 21:03:20 2011 New Revision: 50405
URL: http://svn.reactos.org/svn/reactos?rev=50405&view=rev Log: [USER32_APITEST] Add tests for GetIconInfo.
Added: trunk/rostests/apitests/user32/GetIconInfo.c (with props) Modified: trunk/rostests/apitests/user32/CMakeLists.txt trunk/rostests/apitests/user32/testlist.c trunk/rostests/apitests/user32/user32_apitest.rbuild
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] Sun Jan 16 21:03:20 2011 @@ -7,6 +7,7 @@ ScrollDC.c ScrollWindowEx.c GetSystemMetrics.c + GetIconInfo.c testlist.c)
add_executable(user32_apitest ${SOURCE})
Added: trunk/rostests/apitests/user32/GetIconInfo.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/GetIconInf... ============================================================================== --- trunk/rostests/apitests/user32/GetIconInfo.c (added) +++ trunk/rostests/apitests/user32/GetIconInfo.c [iso-8859-1] Sun Jan 16 21:03:20 2011 @@ -1,0 +1,194 @@ + +#include <stdio.h> +#include <wine/test.h> +#include <windows.h> + + +// FIXME user32 + +void +Test_GetIconInfo(BOOL fIcon) +{ + HICON hicon; + ICONINFO iconinfo, iconinfo2; + BITMAP bitmap; + + iconinfo.fIcon = fIcon; + iconinfo.xHotspot = 0; + iconinfo.yHotspot = 0; + iconinfo.hbmMask = NULL; + iconinfo.hbmColor = NULL; + + hicon = CreateIconIndirect(&iconinfo); + ok(hicon == 0, "should fail\n"); + + iconinfo.hbmMask = CreateBitmap(8, 16, 1, 1, NULL); + hicon = CreateIconIndirect(&iconinfo); + ok(hicon != 0, "should not fail\n"); + + ok(GetIconInfo(hicon, &iconinfo2), "\n"); + ok(iconinfo2.fIcon == iconinfo.fIcon, "\n"); + if (fIcon) + { + ok(iconinfo2.xHotspot == 4, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 4, "%ld\n", iconinfo2.yHotspot); + } + else + { + ok(iconinfo2.xHotspot == 0, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 0, "%ld\n", iconinfo2.yHotspot); + } + ok(iconinfo2.hbmMask != NULL, "\n"); + ok(iconinfo2.hbmMask != iconinfo.hbmMask, "\n"); + ok(iconinfo2.hbmColor == NULL, "\n"); + + ok(GetIconInfo(hicon, &iconinfo2), "\n"); + ok(iconinfo2.fIcon == iconinfo.fIcon, "\n"); + if (fIcon) + { + ok(iconinfo2.xHotspot == 4, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 4, "%ld\n", iconinfo2.yHotspot); + } + else + { + ok(iconinfo2.xHotspot == 0, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 0, "%ld\n", iconinfo2.yHotspot); + } + ok(iconinfo2.hbmMask != NULL, "\n"); + ok(iconinfo2.hbmMask != iconinfo.hbmMask, "\n"); + ok(iconinfo2.hbmColor == NULL, "\n"); + + iconinfo.hbmColor = CreateBitmap(2, 2, 1, 1, NULL); + hicon = CreateIconIndirect(&iconinfo); + ok(hicon != 0, "should not fail\n"); + + ok(GetIconInfo(hicon, &iconinfo2), "\n"); + ok(iconinfo2.fIcon == iconinfo.fIcon, "\n"); + if (fIcon) + { + ok(iconinfo2.xHotspot == 4, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 8, "%ld\n", iconinfo2.yHotspot); + } + else + { + ok(iconinfo2.xHotspot == 0, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 0, "%ld\n", iconinfo2.yHotspot); + } + ok(iconinfo2.hbmMask != NULL, "\n"); + ok(iconinfo2.hbmMask != iconinfo.hbmMask, "\n"); + ok(iconinfo2.hbmColor != NULL, "\n"); + ok(iconinfo2.hbmMask != iconinfo.hbmColor, "\n"); + + ok(GetObject(iconinfo2.hbmMask, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 8, "\n"); + ok(bitmap.bmHeight == 16, "\n"); + ok(bitmap.bmWidthBytes == 2, "\n"); + ok(bitmap.bmPlanes == 1, "\n"); + ok(bitmap.bmBitsPixel == 1, "\n"); + ok(bitmap.bmBits == NULL, "\n"); + + ok(GetObject(iconinfo2.hbmColor, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 8, "\n"); + ok(bitmap.bmHeight == 16, "\n"); + ok(bitmap.bmWidthBytes == 8 * bitmap.bmBitsPixel / 8, "\n"); + ok(bitmap.bmPlanes == 1, "\n"); + ok(bitmap.bmBitsPixel == 32, "\n"); + ok(bitmap.bmBits == NULL, "\n"); + + DeleteObject(iconinfo.hbmMask); + iconinfo.hbmMask = NULL; + hicon = CreateIconIndirect(&iconinfo); + ok(hicon == 0, "should fail\n"); + + DeleteObject(iconinfo.hbmColor); + iconinfo.hbmColor = CreateCompatibleBitmap(GetDC(0), 16, 16); + hicon = CreateIconIndirect(&iconinfo); + ok(hicon == 0, "should fail\n"); + + iconinfo.hbmMask = CreateCompatibleBitmap(GetDC(0), 8, 16); + hicon = CreateIconIndirect(&iconinfo); + ok(hicon != 0, "should not fail\n"); + + ok(GetIconInfo(hicon, &iconinfo2), "\n"); + + ok(GetObject(iconinfo2.hbmMask, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 8, "%ld\n", bitmap.bmWidth); + ok(bitmap.bmHeight == 16, "%ld\n", bitmap.bmHeight); + ok(bitmap.bmWidthBytes == 2, "%ld\n", bitmap.bmWidthBytes); + ok(bitmap.bmPlanes == 1, "%d\n", bitmap.bmPlanes); + ok(bitmap.bmBitsPixel == 1, "%d\n", bitmap.bmBitsPixel); + ok(bitmap.bmBits == NULL, "\n"); + + ok(GetObject(iconinfo2.hbmColor, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 8, "%ld\n", bitmap.bmWidth); + ok(bitmap.bmHeight == 16, "%ld\n", bitmap.bmHeight); + ok(bitmap.bmWidthBytes == 32, "%ld\n", bitmap.bmWidthBytes); + ok(bitmap.bmPlanes == 1, "%d\n", bitmap.bmPlanes); + ok(bitmap.bmBitsPixel == 32, "%d\n", bitmap.bmBitsPixel); + ok(bitmap.bmBits == NULL, "\n"); + +} + + +START_TEST(GetIconInfo) +{ + HCURSOR hcursor; + ICONINFO iconinfo2; + BITMAP bitmap; + DWORD data[] = {0, 0, 0, 0, 0, 0}; + + Test_GetIconInfo(0); + Test_GetIconInfo(1); + + hcursor = LoadCursor(NULL, IDC_APPSTARTING); + ok(hcursor != 0, "should not fail\n"); + ok(GetIconInfo(hcursor, &iconinfo2), "\n"); + ok(iconinfo2.fIcon == 0, "\n"); + ok(iconinfo2.xHotspot == 0, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 8, "%ld\n", iconinfo2.yHotspot); + ok(iconinfo2.hbmMask != NULL, "\n"); + ok(iconinfo2.hbmColor != NULL, "\n"); + + ok(GetObject(iconinfo2.hbmMask, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 32, "%ld\n", bitmap.bmWidth); + ok(bitmap.bmHeight == 32, "\n"); + ok(bitmap.bmWidthBytes == 4, "\n"); + ok(bitmap.bmPlanes == 1, "\n"); + ok(bitmap.bmBitsPixel == 1, "\n"); + ok(bitmap.bmBits == NULL, "\n"); + + ok(GetObject(iconinfo2.hbmColor, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 32, "\n"); + ok(bitmap.bmHeight == 32, "\n"); + ok(bitmap.bmWidthBytes == 32 * bitmap.bmBitsPixel / 8, "\n"); + ok(bitmap.bmPlanes == 1, "\n"); + ok(bitmap.bmBitsPixel == 32, "\n"); + ok(bitmap.bmBits == NULL, "\n"); + + hcursor = CreateCursor(NULL, 1, 2, 4, 4, data, data); + ok(hcursor != 0, "should not fail\n"); + ok(GetIconInfo(hcursor, &iconinfo2), "\n"); + ok(iconinfo2.fIcon == 0, "\n"); + ok(iconinfo2.xHotspot == 1, "%ld\n", iconinfo2.xHotspot); + ok(iconinfo2.yHotspot == 2, "%ld\n", iconinfo2.yHotspot); + ok(iconinfo2.hbmMask != NULL, "\n"); + ok(iconinfo2.hbmColor == NULL, "\n"); + + ok(GetObject(iconinfo2.hbmMask, sizeof(bitmap), &bitmap), "GetObject failed\n"); + ok(bitmap.bmType == 0, "\n"); + ok(bitmap.bmWidth == 4, "%ld\n", bitmap.bmWidth); + ok(bitmap.bmHeight == 8, "%ld\n", bitmap.bmHeight); + ok(bitmap.bmWidthBytes == 2, "%ld\n", bitmap.bmWidthBytes); + ok(bitmap.bmPlanes == 1, "\n"); + ok(bitmap.bmBitsPixel == 1, "\n"); + ok(bitmap.bmBits == NULL, "\n"); + +} + +
Propchange: trunk/rostests/apitests/user32/GetIconInfo.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] Sun Jan 16 21:03:20 2011 @@ -10,6 +10,7 @@ extern void func_ScrollDC(void); extern void func_ScrollWindowEx(void); extern void func_GetSystemMetrics(void); +extern void func_GetIconInfo(void);
const struct test winetest_testlist[] = { @@ -18,6 +19,7 @@ { "ScrollDC", func_ScrollDC }, { "ScrollWindowEx", func_ScrollWindowEx }, { "GetSystemMetrics", func_GetSystemMetrics }, + { "GetIconInfo", func_GetIconInfo },
{ 0, 0 } };
Modified: trunk/rostests/apitests/user32/user32_apitest.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/user32/user32_api... ============================================================================== --- trunk/rostests/apitests/user32/user32_apitest.rbuild [iso-8859-1] (original) +++ trunk/rostests/apitests/user32/user32_apitest.rbuild [iso-8859-1] Sun Jan 16 21:03:20 2011 @@ -14,6 +14,7 @@ <file>ScrollDC.c</file> <file>ScrollWindowEx.c</file> <file>GetSystemMetrics.c</file> + <file>GetIconInfo.c</file>
</module> </group>