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/ExcludeCli…
==============================================================================
--- 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/OffsetClip…
==============================================================================
--- 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 },