mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 17:03:02 +00:00
[GDI32_APITEST]
- Add tests for OffsetClipRgn - Imporve ExcludeClipRect tests svn path=/trunk/; revision=64370
This commit is contained in:
parent
edc042092f
commit
ec2f154c80
4 changed files with 86 additions and 3 deletions
|
@ -48,6 +48,7 @@ list(APPEND SOURCE
|
||||||
GetTextExtentExPoint.c
|
GetTextExtentExPoint.c
|
||||||
GetTextFace.c
|
GetTextFace.c
|
||||||
MaskBlt.c
|
MaskBlt.c
|
||||||
|
OffsetClipRgn.c
|
||||||
PatBlt.c
|
PatBlt.c
|
||||||
Rectangle.c
|
Rectangle.c
|
||||||
SelectObject.c
|
SelectObject.c
|
||||||
|
|
|
@ -44,12 +44,12 @@ void Test_ExcludeClipRect()
|
||||||
hrgn = CreateRectRgn(10, 10, 20, 30);
|
hrgn = CreateRectRgn(10, 10, 20, 30);
|
||||||
ok_int(SelectClipRgn(hdc, hrgn), NULLREGION); // yeah... it's NULLREGION
|
ok_int(SelectClipRgn(hdc, hrgn), NULLREGION); // yeah... it's NULLREGION
|
||||||
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); // but in fact it's a rect region!
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE); // but in fact it's the region we set
|
||||||
|
|
||||||
/* Exclude something outside of the clip region */
|
/* Exclude something outside of the clip region */
|
||||||
ok_int(ExcludeClipRect(hdc, 0, 0, 1, 1), COMPLEXREGION); // in reality it's a rect region
|
ok_int(ExcludeClipRect(hdc, 0, 0, 1, 1), COMPLEXREGION); // in reality it's a rect region
|
||||||
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION);
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE);
|
||||||
|
|
||||||
/* Exclude something on one side of the clip rect */
|
/* Exclude something on one side of the clip rect */
|
||||||
ok_int(ExcludeClipRect(hdc, 0, 0, 13, 50), COMPLEXREGION);
|
ok_int(ExcludeClipRect(hdc, 0, 0, 13, 50), COMPLEXREGION);
|
||||||
|
@ -85,7 +85,8 @@ void Test_ExcludeClipRect()
|
||||||
ok_int(ExcludeClipRect(hdc, 100000, 100000, 100010, 100010), COMPLEXREGION); // this time it's a complex region?
|
ok_int(ExcludeClipRect(hdc, 100000, 100000, 100010, 100010), COMPLEXREGION); // this time it's a complex region?
|
||||||
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
hrgn = CreateRectRgn(0, 0, 1, 1);
|
hrgn = CreateRectRgn(0, 0, 1, 1);
|
||||||
ok_int(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION);
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE);
|
||||||
|
DeleteObject(hrgn);
|
||||||
|
|
||||||
/* Test reversed rect negative, but still above 0 */
|
/* Test reversed rect negative, but still above 0 */
|
||||||
ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION);
|
ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION);
|
||||||
|
|
79
rostests/apitests/gdi32/OffsetClipRgn.c
Normal file
79
rostests/apitests/gdi32/OffsetClipRgn.c
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS api tests
|
||||||
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
|
* PURPOSE: Test for OffsetClipRgn
|
||||||
|
* PROGRAMMERS: Timo Kreuzer
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <apitest.h>
|
||||||
|
#include <wingdi.h>
|
||||||
|
|
||||||
|
#define CLIPRGN 1
|
||||||
|
|
||||||
|
void Test_OffsetClipRgn()
|
||||||
|
{
|
||||||
|
HDC hdc;
|
||||||
|
HRGN hrgn, hrgn2;
|
||||||
|
//RECT rect;
|
||||||
|
|
||||||
|
hdc = CreateCompatibleDC(NULL);
|
||||||
|
ok(hdc != 0, "CreateCompatibleDC failed, skipping tests.\n");
|
||||||
|
if (!hdc) return;
|
||||||
|
|
||||||
|
hrgn2 = CreateRectRgn(0, 0, 0, 0);
|
||||||
|
|
||||||
|
/* Test NULL DC */
|
||||||
|
SetLastError(0x12345);
|
||||||
|
ok_int(OffsetClipRgn(NULL, 0, 0), ERROR);
|
||||||
|
ok_int(GetLastError(), ERROR_INVALID_HANDLE);
|
||||||
|
|
||||||
|
/* Test invalid DC */
|
||||||
|
SetLastError(0x12345);
|
||||||
|
ok_int(OffsetClipRgn((HDC)(ULONG_PTR)0x12345, 0, 0), ERROR);
|
||||||
|
ok_int(GetLastError(), 0x12345);
|
||||||
|
SetLastError(0x12345);
|
||||||
|
|
||||||
|
/* Test without a clip region set */
|
||||||
|
SetLastError(0x12345);
|
||||||
|
ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION);
|
||||||
|
ok_int(OffsetClipRgn(hdc, 0, 0), SIMPLEREGION);
|
||||||
|
ok_int(GetLastError(), 0x12345);
|
||||||
|
SetLastError(0x12345);
|
||||||
|
|
||||||
|
/* Set a clip region */
|
||||||
|
hrgn = CreateRectRgn(10, 10, 20, 30);
|
||||||
|
ok_int(SelectClipRgn(hdc, hrgn), NULLREGION);
|
||||||
|
DeleteObject(hrgn);
|
||||||
|
ok_int(OffsetClipRgn(hdc, 10, 10), SIMPLEREGION);
|
||||||
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
|
hrgn = CreateRectRgn(20, 20, 30, 40);
|
||||||
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE);
|
||||||
|
|
||||||
|
/* Set different scaling */
|
||||||
|
SetMapMode(hdc, MM_ANISOTROPIC);
|
||||||
|
ok_int(SetViewportExtEx(hdc, 100, 100, NULL), 1);
|
||||||
|
ok_int(SetWindowExtEx(hdc, 200, 50, NULL), 1);
|
||||||
|
ok_int(OffsetClipRgn(hdc, 10, 10), SIMPLEREGION);
|
||||||
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
|
hrgn = CreateRectRgn(25, 40, 35, 60);
|
||||||
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE);
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* Set different scaling */
|
||||||
|
SetMapMode(hdc, MM_ANISOTROPIC);
|
||||||
|
ok_int(SetViewportExtEx(hdc, 100, 100, NULL), 1);
|
||||||
|
ok_int(SetWindowExtEx(hdc, 80, 350, NULL), 1);
|
||||||
|
ok_int(OffsetClipRgn(hdc, 10, 10), SIMPLEREGION);
|
||||||
|
ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 1);
|
||||||
|
hrgn = CreateRectRgn(33, 23, 43, 43);
|
||||||
|
ok_int(EqualRgn(hrgn, hrgn2), TRUE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ok_int(GetLastError(), 0x12345);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
START_TEST(OffsetClipRgn)
|
||||||
|
{
|
||||||
|
Test_OffsetClipRgn();
|
||||||
|
}
|
|
@ -49,6 +49,7 @@ extern void func_GetStockObject(void);
|
||||||
extern void func_GetTextExtentExPoint(void);
|
extern void func_GetTextExtentExPoint(void);
|
||||||
extern void func_GetTextFace(void);
|
extern void func_GetTextFace(void);
|
||||||
extern void func_MaskBlt(void);
|
extern void func_MaskBlt(void);
|
||||||
|
extern void func_OffsetClipRgn(void);
|
||||||
extern void func_PatBlt(void);
|
extern void func_PatBlt(void);
|
||||||
extern void func_Rectangle(void);
|
extern void func_Rectangle(void);
|
||||||
extern void func_SelectObject(void);
|
extern void func_SelectObject(void);
|
||||||
|
@ -110,6 +111,7 @@ const struct test winetest_testlist[] =
|
||||||
{ "GetTextExtentExPoint", func_GetTextExtentExPoint },
|
{ "GetTextExtentExPoint", func_GetTextExtentExPoint },
|
||||||
{ "GetTextFace", func_GetTextFace },
|
{ "GetTextFace", func_GetTextFace },
|
||||||
{ "MaskBlt", func_MaskBlt },
|
{ "MaskBlt", func_MaskBlt },
|
||||||
|
{ "OffsetClipRgn", func_OffsetClipRgn },
|
||||||
{ "PatBlt", func_PatBlt },
|
{ "PatBlt", func_PatBlt },
|
||||||
{ "Rectangle", func_Rectangle },
|
{ "Rectangle", func_Rectangle },
|
||||||
{ "SelectObject", func_SelectObject },
|
{ "SelectObject", func_SelectObject },
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue