Author: tkreuzer Date: Sun Sep 28 18:24:58 2014 New Revision: 64370
URL: http://svn.reactos.org/svn/reactos?rev=64370&view=rev Log: [GDI32_APITEST] - Add tests for OffsetClipRgn - Imporve ExcludeClipRect tests
Added: trunk/rostests/apitests/gdi32/OffsetClipRgn.c (with props) Modified: trunk/rostests/apitests/gdi32/CMakeLists.txt trunk/rostests/apitests/gdi32/ExcludeClipRect.c trunk/rostests/apitests/gdi32/testlist.c
Modified: trunk/rostests/apitests/gdi32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/CMakeLists.... ============================================================================== --- trunk/rostests/apitests/gdi32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/CMakeLists.txt [iso-8859-1] Sun Sep 28 18:24:58 2014 @@ -48,6 +48,7 @@ GetTextExtentExPoint.c GetTextFace.c MaskBlt.c + OffsetClipRgn.c PatBlt.c Rectangle.c SelectObject.c
Modified: trunk/rostests/apitests/gdi32/ExcludeClipRect.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/ExcludeClip... ============================================================================== --- trunk/rostests/apitests/gdi32/ExcludeClipRect.c [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/ExcludeClipRect.c [iso-8859-1] Sun Sep 28 18:24:58 2014 @@ -44,12 +44,12 @@ hrgn = CreateRectRgn(10, 10, 20, 30); ok_int(SelectClipRgn(hdc, hrgn), NULLREGION); // yeah... it's NULLREGION 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 */ 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(CombineRgn(hrgn2, hrgn2, hrgn, RGN_XOR), NULLREGION); + ok_int(EqualRgn(hrgn, hrgn2), TRUE);
/* Exclude something on one side of the clip rect */ ok_int(ExcludeClipRect(hdc, 0, 0, 13, 50), COMPLEXREGION); @@ -85,7 +85,8 @@ ok_int(ExcludeClipRect(hdc, 100000, 100000, 100010, 100010), COMPLEXREGION); // this time it's a complex region? ok_int(GetRandomRgn(hdc, hrgn2, CLIPRGN), 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 */ ok_int(SelectClipRgn(hdc, NULL), SIMPLEREGION);
Added: trunk/rostests/apitests/gdi32/OffsetClipRgn.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/OffsetClipR... ============================================================================== --- trunk/rostests/apitests/gdi32/OffsetClipRgn.c (added) +++ trunk/rostests/apitests/gdi32/OffsetClipRgn.c [iso-8859-1] Sun Sep 28 18:24:58 2014 @@ -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(); +}
Propchange: trunk/rostests/apitests/gdi32/OffsetClipRgn.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/rostests/apitests/gdi32/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/testlist.c?... ============================================================================== --- trunk/rostests/apitests/gdi32/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32/testlist.c [iso-8859-1] Sun Sep 28 18:24:58 2014 @@ -49,6 +49,7 @@ extern void func_GetTextExtentExPoint(void); extern void func_GetTextFace(void); extern void func_MaskBlt(void); +extern void func_OffsetClipRgn(void); extern void func_PatBlt(void); extern void func_Rectangle(void); extern void func_SelectObject(void); @@ -110,6 +111,7 @@ { "GetTextExtentExPoint", func_GetTextExtentExPoint }, { "GetTextFace", func_GetTextFace }, { "MaskBlt", func_MaskBlt }, + { "OffsetClipRgn", func_OffsetClipRgn }, { "PatBlt", func_PatBlt }, { "Rectangle", func_Rectangle }, { "SelectObject", func_SelectObject },