test cases for resolution switching
Alex Pasadyn
ajp at mail.utexas.edu
Wed Feb 4 20:38:59 CST 2004
ChangeLog:
- Add some basic tests for resolution switching
Note that these tests will fail without my sysmetrics patch from a few
days ago.
-ajp
-------------- next part --------------
Index: dlls/user/tests/Makefile.in
===================================================================
RCS file: /home/wine/wine/dlls/user/tests/Makefile.in,v
retrieving revision 1.7
diff -u -r1.7 Makefile.in
--- dlls/user/tests/Makefile.in 9 Jan 2004 00:36:51 -0000 1.7
+++ dlls/user/tests/Makefile.in 5 Feb 2004 02:28:09 -0000
@@ -7,6 +7,7 @@
CTESTS = \
class.c \
+ displaysettings.c \
generated.c \
input.c \
listbox.c \
--- /dev/null 2003-01-30 04:24:37.000000000 -0600
+++ dlls/user/tests/displaysettings.c 2004-02-04 20:20:12.000000000 -0600
@@ -0,0 +1,77 @@
+#include <windows.h>
+
+#include "wine/test.h"
+
+static void test_enum_modes(void)
+{
+ DEVMODE DevMode;
+ unsigned int i = 0;
+
+ DevMode.dmSize = sizeof(DEVMODE);
+ DevMode.dmDriverExtra = 0;
+
+ while (EnumDisplaySettings(NULL, i, &DevMode)) {
+ i++;
+ }
+ ok(i, "There should always be at least one mode");
+}
+
+static void test_change_modes(void)
+{
+ DEVMODE DevMode;
+ DEVMODE CurrentDevMode;
+ unsigned int i = 0;
+ LONG rc;
+ int smx, smy;
+ RECT r;
+
+ DevMode.dmSize = sizeof(DEVMODE);
+ DevMode.dmDriverExtra = 0;
+ CurrentDevMode.dmSize = sizeof(DEVMODE);
+ CurrentDevMode.dmDriverExtra = 0;
+
+ while (EnumDisplaySettings(NULL, i, &DevMode)) {
+ /* count the mode*/
+ i++;
+ /* set the mode*/
+ rc = ChangeDisplaySettings(&DevMode, 0);
+ ok(rc == DISP_CHANGE_SUCCESSFUL,
+ "Mode change was not successful: rc=%ld", rc);
+ /* read the current mode back*/
+ rc = EnumDisplaySettings(NULL, (DWORD)-1, &CurrentDevMode);
+ ok(rc, "Get current mode failed");
+ /* compare requested size against current size */
+ ok(DevMode.dmPelsWidth==CurrentDevMode.dmPelsWidth,
+ "width requested (%ld) does not match current (%ld)",
+ DevMode.dmPelsWidth, CurrentDevMode.dmPelsWidth);
+ ok(DevMode.dmPelsHeight==CurrentDevMode.dmPelsHeight,
+ "height requested (%ld) does not match current (%ld)",
+ DevMode.dmPelsHeight, CurrentDevMode.dmPelsHeight);
+ /* get screen size from sysmetrics */
+ smx = GetSystemMetrics(SM_CXSCREEN);
+ smy = GetSystemMetrics(SM_CYSCREEN);
+ /* compare requested size against current size */
+ ok(DevMode.dmPelsWidth==smx,
+ "width requested (%ld) does not match sysmetrics (%d)",
+ DevMode.dmPelsWidth, smx);
+ ok(DevMode.dmPelsHeight==smy,
+ "height requested (%ld) does not match sysmetrics (%d)",
+ DevMode.dmPelsHeight, smy);
+ }
+ ok(i, "There should always be at least one mode");
+}
+
+static void test_reset_mode(void)
+{
+ LONG rc;
+ rc = ChangeDisplaySettings(NULL, 0);
+ ok(rc == DISP_CHANGE_SUCCESSFUL,
+ "Reset to current mode was not successful: rc=%ld", rc);
+}
+
+START_TEST(displaysettings)
+{
+ test_enum_modes();
+ test_change_modes();
+ test_reset_mode();
+}
More information about the wine-patches
mailing list