[GDI32_APITEST]

Improve CreatePen and GetCurrentObject tests

svn path=/trunk/; revision=51160
This commit is contained in:
Rafal Harabien 2011-03-26 15:23:10 +00:00
parent 7e914b6e08
commit 68af0e9cd1
2 changed files with 121 additions and 76 deletions

View file

@ -19,50 +19,68 @@ void Test_CreatePen()
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
hPen = CreatePen(PS_DASHDOT, 5, RGB(1,2,3)); hPen = CreatePen(PS_DASHDOT, 5, RGB(1,2,3));
ok(hPen != 0, "\n"); ok(hPen != 0, "CreatePen failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Test if we have a PEN */ /* Test if we have a PEN */
ok(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_PEN, "\n"); ok(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_PEN, "Expected GDI_OBJECT_TYPE_PEN, got %lu\n", GDI_HANDLE_GET_TYPE(hPen));
GetObject(hPen, sizeof(logpen), &logpen); ok(GetObject(hPen, sizeof(logpen), &logpen), "GetObject failed\n");
ok(logpen.lopnStyle == PS_DASHDOT, "\n"); ok(logpen.lopnStyle == PS_DASHDOT, "Expected PS_DASHDOT, got %u\n", logpen.lopnStyle);
ok(logpen.lopnWidth.x == 5, "\n"); ok(logpen.lopnWidth.x == 5, "Expected 5, got %lu\n", logpen.lopnWidth.x);
ok(logpen.lopnColor == RGB(1,2,3), "\n"); ok(logpen.lopnColor == RGB(1,2,3), "Expected %x, got %x\n", (unsigned)RGB(1,2,3), (unsigned)logpen.lopnColor);
DeleteObject(hPen); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
if(hPen)
ok(DeleteObject(hPen), "DeleteObject failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* PS_GEOMETRIC | PS_DASHDOT = 0x00001011 will become PS_SOLID */ /* PS_GEOMETRIC | PS_DASHDOT = 0x00001011 will become PS_SOLID */
SetLastError(ERROR_SUCCESS);
logpen.lopnStyle = 22; logpen.lopnStyle = 22;
hPen = CreatePen(PS_GEOMETRIC | PS_DASHDOT, 5, RGB(1,2,3)); hPen = CreatePen(PS_GEOMETRIC | PS_DASHDOT, 5, RGB(1,2,3));
ok(hPen != 0, "\n"); ok(hPen != 0, "CreatePen failed\n");
GetObject(hPen, sizeof(logpen), &logpen); ok(GetObject(hPen, sizeof(logpen), &logpen), "GetObject failed\n");
ok(logpen.lopnStyle == PS_SOLID, "\n"); ok(logpen.lopnStyle == PS_SOLID, "Expected PS_SOLID, got %u\n", logpen.lopnStyle);
DeleteObject(hPen); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
if(hPen)
ok(DeleteObject(hPen), "DeleteObject failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* PS_USERSTYLE will become PS_SOLID */ /* PS_USERSTYLE will become PS_SOLID */
logpen.lopnStyle = 22; logpen.lopnStyle = 22;
SetLastError(ERROR_SUCCESS);
hPen = CreatePen(PS_USERSTYLE, 5, RGB(1,2,3)); hPen = CreatePen(PS_USERSTYLE, 5, RGB(1,2,3));
ok(hPen != 0, "\n"); ok(hPen != 0, "CreatePen failed\n");
GetObject(hPen, sizeof(logpen), &logpen); ok(GetObject(hPen, sizeof(logpen), &logpen), "GetObject failed\n");
ok(logpen.lopnStyle == PS_SOLID, "\n"); ok(logpen.lopnStyle == PS_SOLID, "Expected PS_SOLID, got %u\n", logpen.lopnStyle);
DeleteObject(hPen); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
if(hPen)
ok(DeleteObject(hPen), "DeleteObject failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* PS_ALTERNATE will become PS_SOLID */ /* PS_ALTERNATE will become PS_SOLID */
logpen.lopnStyle = 22; logpen.lopnStyle = 22;
SetLastError(ERROR_SUCCESS);
hPen = CreatePen(PS_ALTERNATE, 5, RGB(1,2,3)); hPen = CreatePen(PS_ALTERNATE, 5, RGB(1,2,3));
ok(hPen != 0, "\n"); ok(hPen != 0, "CreatePen failed\n");
GetObject(hPen, sizeof(logpen), &logpen); ok(GetObject(hPen, sizeof(logpen), &logpen), "GetObject failed\n");
ok(logpen.lopnStyle == PS_SOLID, "\n"); ok(logpen.lopnStyle == PS_SOLID, "Expected PS_SOLID, got %u\n", logpen.lopnStyle);
DeleteObject(hPen); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
if(hPen)
ok(DeleteObject(hPen), "DeleteObject failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* PS_INSIDEFRAME is ok */ /* PS_INSIDEFRAME is ok */
logpen.lopnStyle = 22; logpen.lopnStyle = 22;
SetLastError(ERROR_SUCCESS);
hPen = CreatePen(PS_INSIDEFRAME, 5, RGB(1,2,3)); hPen = CreatePen(PS_INSIDEFRAME, 5, RGB(1,2,3));
ok(hPen != 0, "\n"); ok(hPen != 0, "CreatePen failed\n");
GetObject(hPen, sizeof(logpen), &logpen); ok(GetObject(hPen, sizeof(logpen), &logpen), "GetObject failed\n");
ok(logpen.lopnStyle == PS_INSIDEFRAME, "\n"); ok(logpen.lopnStyle == PS_INSIDEFRAME, "Expected PS_INSIDEFRAME, got %u\n", logpen.lopnStyle);
DeleteObject(hPen); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
if(hPen)
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(DeleteObject(hPen), "DeleteObject failed\n");
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
} }
START_TEST(CreatePen) START_TEST(CreatePen)

View file

@ -17,6 +17,7 @@ void Test_GetCurrentObject()
HWND hWnd; HWND hWnd;
HDC hDC; HDC hDC;
HBITMAP hBmp; HBITMAP hBmp;
HGDIOBJ hObj;
/* Create a window */ /* Create a window */
hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE, hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
@ -27,121 +28,147 @@ void Test_GetCurrentObject()
/* Test NULL DC */ /* Test NULL DC */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(NULL, 0) == 0, "\n"); hObj = GetCurrentObject(NULL, 0);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(NULL, OBJ_BITMAP) == 0, "\n"); hObj = GetCurrentObject(NULL, OBJ_BITMAP);
ok(GetCurrentObject(NULL, OBJ_BRUSH) == 0, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetCurrentObject(NULL, OBJ_COLORSPACE) == 0, "\n"); hObj = GetCurrentObject(NULL, OBJ_BRUSH);
ok(GetCurrentObject(NULL, OBJ_FONT) == 0, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetCurrentObject(NULL, OBJ_PAL) == 0, "\n"); hObj = GetCurrentObject(NULL, OBJ_COLORSPACE);
ok(GetCurrentObject(NULL, OBJ_PEN) == 0, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_SUCCESS, "\n"); hObj = GetCurrentObject(NULL, OBJ_FONT);
ok(hObj == 0, "Expected 0, got %p\n", hObj);
hObj = GetCurrentObject(NULL, OBJ_PAL);
ok(hObj == 0, "Expected 0, got %p\n", hObj);
hObj = GetCurrentObject(NULL, OBJ_PEN);
ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Test invalid DC handle */ /* Test invalid DC handle */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject((HDC)-123, 0) == 0, "\n"); hObj = GetCurrentObject((HDC)-123, 0);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject((HDC)-123, OBJ_BITMAP) == 0, "\n"); hObj = GetCurrentObject((HDC)-123, OBJ_BITMAP);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Test invalid types */ /* Test invalid types */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 0) == 0, "\n"); hObj = GetCurrentObject(hDC, 0);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 3) == 0, "\n"); hObj = GetCurrentObject(hDC, 3);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 4) == 0, "\n"); hObj = GetCurrentObject(hDC, 4);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 8) == 0, "\n"); hObj = GetCurrentObject(hDC, 8);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 9) == 0, "\n"); hObj = GetCurrentObject(hDC, 9);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 10) == 0, "\n"); hObj = GetCurrentObject(hDC, 10);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 12) == 0, "\n"); hObj = GetCurrentObject(hDC, 12);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, 13) == 0, "\n"); hObj = GetCurrentObject(hDC, 13);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "\n"); ok(hObj == 0, "Expected 0, got %p\n", hObj);
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %lu\n", GetLastError());
/* Default bitmap */ /* Default bitmap */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
hBmp = GetCurrentObject(hDC, OBJ_BITMAP); hBmp = GetCurrentObject(hDC, OBJ_BITMAP);
ok(GDI_HANDLE_GET_TYPE(hBmp) == GDI_OBJECT_TYPE_BITMAP, "\n"); ok(GDI_HANDLE_GET_TYPE(hBmp) == GDI_OBJECT_TYPE_BITMAP, "Expected GDI_OBJECT_TYPE_BITMAP, got %lu\n", GDI_HANDLE_GET_TYPE(hBmp));
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Other bitmap */ /* Other bitmap */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
SelectObject(hDC, GetStockObject(21)); SelectObject(hDC, GetStockObject(21));
ok(hBmp == GetCurrentObject(hDC, OBJ_BITMAP), "\n"); ok(hBmp == GetCurrentObject(hDC, OBJ_BITMAP), "\n");
ok(GDI_HANDLE_GET_TYPE(hBmp) == GDI_OBJECT_TYPE_BITMAP, "\n"); ok(GDI_HANDLE_GET_TYPE(hBmp) == GDI_OBJECT_TYPE_BITMAP, "Expected GDI_OBJECT_TYPE_BITMAP, got %lu\n", GDI_HANDLE_GET_TYPE(hBmp));
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Default brush */ /* Default brush */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, OBJ_BRUSH) == GetStockObject(WHITE_BRUSH), "\n"); hObj = GetCurrentObject(hDC, OBJ_BRUSH);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(WHITE_BRUSH), "Expected %p, got %p\n", GetStockObject(WHITE_BRUSH), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Other brush */ /* Other brush */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
SelectObject(hDC, GetStockObject(BLACK_BRUSH)); SelectObject(hDC, GetStockObject(BLACK_BRUSH));
ok(GetCurrentObject(hDC, OBJ_BRUSH) == GetStockObject(BLACK_BRUSH), "\n"); hObj = GetCurrentObject(hDC, OBJ_BRUSH);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(BLACK_BRUSH), "Expected %p, got %p\n", GetStockObject(BLACK_BRUSH), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Default colorspace */ /* Default colorspace */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, OBJ_COLORSPACE) == GetStockObject(20), "\n"); hObj = GetCurrentObject(hDC, OBJ_COLORSPACE);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(20), "Expected %p, got %p\n", GetStockObject(20), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Default font */ /* Default font */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, OBJ_FONT) == GetStockObject(SYSTEM_FONT), "\n"); hObj = GetCurrentObject(hDC, OBJ_FONT);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(SYSTEM_FONT), "Expected %p, got %p\n", GetStockObject(SYSTEM_FONT), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Other font */ /* Other font */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
SelectObject(hDC, GetStockObject(DEFAULT_GUI_FONT)); SelectObject(hDC, GetStockObject(DEFAULT_GUI_FONT));
ok(GetCurrentObject(hDC, OBJ_FONT) == GetStockObject(DEFAULT_GUI_FONT), "\n"); hObj = GetCurrentObject(hDC, OBJ_FONT);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(DEFAULT_GUI_FONT), "Expected %p, got %p\n", GetStockObject(DEFAULT_GUI_FONT), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Default palette */ /* Default palette */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, OBJ_PAL) == GetStockObject(DEFAULT_PALETTE), "\n"); hObj = GetCurrentObject(hDC, OBJ_PAL);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(DEFAULT_PALETTE), "Expected %p, got %p\n", GetStockObject(DEFAULT_PALETTE), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Default pen */ /* Default pen */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
ok(GetCurrentObject(hDC, OBJ_PEN) == GetStockObject(BLACK_PEN), "\n"); hObj = GetCurrentObject(hDC, OBJ_PEN);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(BLACK_PEN), "Expected %p, got %p\n", GetStockObject(BLACK_PEN), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* Other pen */ /* Other pen */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
SelectObject(hDC, GetStockObject(WHITE_PEN)); SelectObject(hDC, GetStockObject(WHITE_PEN));
ok(GetCurrentObject(hDC, OBJ_PEN) == GetStockObject(WHITE_PEN), "\n"); hObj = GetCurrentObject(hDC, OBJ_PEN);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(WHITE_PEN), "Expected %p, got %p\n", GetStockObject(WHITE_PEN), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
/* DC pen */ /* DC pen */
SetLastError(ERROR_SUCCESS); SetLastError(ERROR_SUCCESS);
SelectObject(hDC, GetStockObject(DC_PEN)); SelectObject(hDC, GetStockObject(DC_PEN));
ok(GetCurrentObject(hDC, OBJ_PEN) == GetStockObject(DC_PEN), "\n"); hObj = GetCurrentObject(hDC, OBJ_PEN);
ok(GetLastError() == ERROR_SUCCESS, "\n"); ok(hObj == GetStockObject(DC_PEN), "Expected %p, got %p\n", GetStockObject(DC_PEN), hObj);
ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lu\n", GetLastError());
ReleaseDC(hWnd, hDC); ReleaseDC(hWnd, hDC);
DestroyWindow(hWnd); DestroyWindow(hWnd);