[ros-diffs] [tkreuzer] 39280: Add tests for SetWindowExtEx, one more test for CreateCompatibleDC

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Mon Feb 2 01:37:02 CET 2009


Author: tkreuzer
Date: Sun Feb  1 18:37:01 2009
New Revision: 39280

URL: http://svn.reactos.org/svn/reactos?rev=39280&view=rev
Log:
Add tests for SetWindowExtEx, one more test for CreateCompatibleDC

Added:
    trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c   (with props)
Modified:
    trunk/rostests/apitests/gdi32api/testlist.c
    trunk/rostests/apitests/gdi32api/tests/CreateCompatibleDC.c

Modified: trunk/rostests/apitests/gdi32api/testlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/testlist.c?rev=39280&r1=39279&r2=39280&view=diff
==============================================================================
--- trunk/rostests/apitests/gdi32api/testlist.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/gdi32api/testlist.c [iso-8859-1] Sun Feb  1 18:37:01 2009
@@ -40,6 +40,7 @@
 #include "tests/SetDCPenColor.c"
 #include "tests/SetMapMode.c"
 #include "tests/SetSysColors.c"
+#include "tests/SetWindowExtEx.c"
 #include "tests/SetWorldTransform.c"
 
 
@@ -82,6 +83,7 @@
 	{ L"SetDCPenColor", Test_SetDCPenColor },
 	{ L"SetMapMode", Test_SetMapMode },
 	{ L"SetSysColors", Test_SetSysColors },
+	{ L"SetWindowExtEx", Test_SetWindowExtEx },
 	{ L"SetWorldTransform", Test_SetWorldTransform },
 };
 

Modified: trunk/rostests/apitests/gdi32api/tests/CreateCompatibleDC.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/CreateCompatibleDC.c?rev=39280&r1=39279&r2=39280&view=diff
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/CreateCompatibleDC.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/gdi32api/tests/CreateCompatibleDC.c [iso-8859-1] Sun Feb  1 18:37:01 2009
@@ -39,6 +39,12 @@
 	RTEST(hDC2 == NULL);
 	if (hDC2 != NULL) DeleteDC(hDC2);
 
+    /* Check map mode */
+	hDC = CreateCompatibleDC(hDCScreen);
+	SetMapMode(hDC, MM_ISOTROPIC);
+	hDC2 = CreateCompatibleDC(hDC);
+    TEST(GetMapMode(hDC2) == MM_TEXT);
+
 	// cleanup
 	DeleteDC(hDC);
 

Added: trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c?rev=39280&view=auto
==============================================================================
--- trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c (added)
+++ trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c [iso-8859-1] Sun Feb  1 18:37:01 2009
@@ -1,0 +1,275 @@
+
+
+INT
+Test_SetWindowExtEx(PTESTINFO pti)
+{
+    HDC hDC;
+    BOOL ret;
+    SIZE WindowExt, ViewportExt;
+	PGDI_TABLE_ENTRY pEntry;
+	DC_ATTR* pDC_Attr;
+
+    hDC = CreateCompatibleDC(0);
+    ASSERT(hDC);
+
+    SetLastError(0);
+    ret = SetWindowExtEx(0, 0, 0, NULL);
+    TEST(GetLastError() == ERROR_INVALID_HANDLE);
+    TEST(ret == 0);
+
+    SetLastError(0);
+    ret = SetWindowExtEx((HDC)0x1234, 0, 0, NULL);
+    TEST(GetLastError() == ERROR_INVALID_HANDLE);
+    TEST(ret == 0);
+
+    SetLastError(0);
+    ret = SetWindowExtEx(hDC, 0, 0, NULL);
+    TEST(GetLastError() == 0);
+    TEST(ret == 1);
+
+    WindowExt.cx = 1234;
+    WindowExt.cy = 6789;
+    SetLastError(0);
+    ret = SetWindowExtEx(0, 0, 0, &WindowExt);
+    TEST(GetLastError() == ERROR_INVALID_HANDLE);
+    TEST(ret == 0);
+    TEST(WindowExt.cx == 1234);
+    TEST(WindowExt.cy == 6789);
+
+    DeleteDC(hDC);
+
+    /* Test with a deleted DC */
+    SetLastError(0);
+    ret = SetWindowExtEx(hDC, 0, 0, NULL);
+    TEST(GetLastError() == ERROR_INVALID_PARAMETER);
+    TEST(ret == 0);
+
+    hDC = CreateCompatibleDC(0);
+    ASSERT(hDC);
+
+	pEntry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hDC);
+	ASSERT(pEntry);
+	pDC_Attr = pEntry->UserData;
+	ASSERT(pDC_Attr);
+
+    /* Test setting it without changing the map mode (MM_TEXT) */
+    ret = SetWindowExtEx(hDC, 10, 20, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 1);
+    TEST(WindowExt.cy == 1);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 40, 30, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 1);
+    TEST(WindowExt.cy == 1);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == 1);
+    TEST(ViewportExt.cy == 1);
+
+    /* Test setting in isotropic mode with 0 extents */
+    SetMapMode(hDC, MM_ISOTROPIC);
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 0, 0, &WindowExt);
+    TEST(ret == 0);
+    TEST(WindowExt.cx == 3600);
+    TEST(WindowExt.cy == 2700);
+    ret = SetWindowExtEx(hDC, 100, 0, &WindowExt);
+    TEST(ret == 0);
+    ret = SetWindowExtEx(hDC, 0, 100, &WindowExt);
+    TEST(ret == 0);
+
+    /* Test setting in isotropic mode */
+    ret = SetWindowExtEx(hDC, 21224, 35114, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 3600);
+    TEST(WindowExt.cy == 2700);
+
+    /* Values should be changed */
+    ret = SetWindowExtEx(hDC, 
+                         4 * GetDeviceCaps(GetDC(0), HORZRES),
+                         -4 * GetDeviceCaps(GetDC(0), VERTRES),
+                         &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 21224);
+    TEST(WindowExt.cy == 35114);
+
+    /* Check the viewport, should be the same */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* again isotropic mode with 1:1 res */
+    ret = SetWindowExtEx(hDC, 123, 123, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 4 * GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(WindowExt.cy == -4 * GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test flXform */
+    TEST(pDC_Attr->flXform & PAGE_EXTENTS_CHANGED);
+
+    /* Check the viewport from the dcattr, without going through gdi */
+    TEST(pDC_Attr->szlViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(pDC_Attr->szlViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Check the viewport with gdi, should not be the same */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx ==  GetDeviceCaps(GetDC(0), VERTRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test flXform */
+    TEST(pDC_Attr->flXform & PAGE_EXTENTS_CHANGED);
+
+    /* again isotropic mode with 3:1 res */
+    ret = SetWindowExtEx(hDC, 300, 100, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 123);
+    TEST(WindowExt.cy == 123);
+
+    /* Check the viewport now, should not be the same */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx ==  GetDeviceCaps(GetDC(0), VERTRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES) / 3);
+
+    /* again isotropic mode with 1:3 res */
+    SetViewportExtEx(hDC, 6000, 3000, 0);
+    ret = SetWindowExtEx(hDC, 200, 600, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 300);
+    TEST(WindowExt.cy == 100);
+
+    /* Check the viewport now, should not be the same */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == 1000);
+    TEST(ViewportExt.cy == 3000);
+
+    /* Test setting in anisotropic mode */
+    SetMapMode(hDC, MM_ANISOTROPIC);
+    ret = SetWindowExtEx(hDC, 80, 60, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 200);
+    TEST(WindowExt.cy == 600);
+
+    /* Values should be changed */
+    ret = SetWindowExtEx(hDC, 500, 500, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 80);
+    TEST(WindowExt.cy == 60);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == 1000);
+    TEST(ViewportExt.cy == 3000);
+
+    /* Test setting in low metric mode */
+    SetMapMode(hDC, MM_LOMETRIC);
+    ret = SetWindowExtEx(hDC, 120, 90, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 3600);
+    TEST(WindowExt.cy == 2700);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 900, 700, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 3600);
+    TEST(WindowExt.cy == 2700);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test setting in high metric mode */
+    SetMapMode(hDC, MM_HIMETRIC);
+    ret = SetWindowExtEx(hDC, 120, 90, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 36000);
+    TEST(WindowExt.cy == 27000);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 500, 300, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 36000);
+    TEST(WindowExt.cy == 27000);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test setting in low english mode */
+    SetMapMode(hDC, MM_LOENGLISH);
+    ret = SetWindowExtEx(hDC, 320, 290, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 1417);
+    TEST(WindowExt.cy == 1063);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 560, 140, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 1417);
+    TEST(WindowExt.cy == 1063);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test setting in high english mode */
+    SetMapMode(hDC, MM_HIENGLISH);
+    ret = SetWindowExtEx(hDC, 320, 290, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 14173);
+    TEST(WindowExt.cy == 10630);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 1560, 1140, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 14173);
+    TEST(WindowExt.cy == 10630);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* Test setting in twips mode */
+    SetMapMode(hDC, MM_TWIPS);
+    ret = SetWindowExtEx(hDC, 3320, 3290, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 20409);
+    TEST(WindowExt.cy == 15307);
+
+    /* Values should not be changed */
+    WindowExt.cx = WindowExt.cy = 0;
+    ret = SetWindowExtEx(hDC, 4560, 4140, &WindowExt);
+    TEST(ret == 1);
+    TEST(WindowExt.cx == 20409);
+    TEST(WindowExt.cy == 15307);
+
+    /* Check the viewport */
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(ViewportExt.cx == GetDeviceCaps(GetDC(0), HORZRES));
+    TEST(ViewportExt.cy == -GetDeviceCaps(GetDC(0), VERTRES));
+
+    /* test manually modifying the dcattr, should go to tests for GetViewportExtEx */
+    SetMapMode(hDC, MM_ISOTROPIC);
+    ret = SetWindowExtEx(hDC, 420, 4140, &WindowExt);
+    pDC_Attr->szlWindowExt.cx = 0;
+    GetViewportExtEx(hDC, &ViewportExt);
+    TEST(pDC_Attr->szlWindowExt.cx == 0);
+    TEST(ViewportExt.cx == 0);
+
+    DeleteDC(hDC);
+
+    return APISTATUS_NORMAL;
+
+
+}

Propchange: trunk/rostests/apitests/gdi32api/tests/SetWindowExtEx.c
------------------------------------------------------------------------------
    svn:eol-style = native



More information about the Ros-diffs mailing list