=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: ddraw/tests: Test messages on window reactivation.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Nov 20 09:54:14 CST 2014


Module: wine
Branch: master
Commit: 0edb13a20fedeba4672ff596d0a9a773cc704770
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0edb13a20fedeba4672ff596d0a9a773cc704770

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Wed Nov 19 20:13:51 2014 +0100

ddraw/tests: Test messages on window reactivation.

---

 dlls/ddraw/tests/ddraw1.c | 21 +++++++++++++++++++++
 dlls/ddraw/tests/ddraw2.c | 21 +++++++++++++++++++++
 dlls/ddraw/tests/ddraw4.c | 21 +++++++++++++++++++++
 dlls/ddraw/tests/ddraw7.c | 21 +++++++++++++++++++++
 4 files changed, 84 insertions(+)

diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 6648937..e48dbab 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -2219,6 +2219,20 @@ static void test_coop_level_mode_set(void)
         {WM_ACTIVATEAPP,        TRUE,   FALSE},
         {0,                     FALSE,  0},
     };
+    static const struct message exclusive_focus_restore_messages[] =
+    {
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* From the ShowWindow(SW_RESTORE). */
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* Generated by ddraw, matches d3d9 behavior. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching previous message. */
+        {WM_SIZE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_DISPLAYCHANGE,      FALSE,  0}, /* Ddraw restores mode. */
+        /* Native redundantly sets the window size here. */
+        {WM_ACTIVATEAPP,        TRUE,   TRUE}, /* End of ddraw's hooks. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching the one from ShowWindow. */
+        {WM_MOVE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_SIZE,               TRUE,   SIZE_RESTORED}, /* DefWindowProc. */
+        {0,                     FALSE,  0},
+    };
 
     static const struct message normal_messages[] =
     {
@@ -2365,7 +2379,14 @@ static void test_coop_level_mode_set(void)
             && devmode.dmPelsHeight == registry_mode.dmPelsHeight, "Got unexpect screen size %ux%u.\n",
             devmode.dmPelsWidth, devmode.dmPelsHeight);
 
+    expect_messages = exclusive_focus_restore_messages;
     ShowWindow(window, SW_RESTORE);
+    ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+    GetWindowRect(window, &r);
+    ok(EqualRect(&r, &ddraw_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n",
+            ddraw_rect.left, ddraw_rect.top, ddraw_rect.right, ddraw_rect.bottom,
+            r.left, r.top, r.right, r.bottom);
     ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode);
     ok(ret, "Failed to get display mode.\n");
     ok(devmode.dmPelsWidth == param.ddraw_width
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 16ceaf0..b4c3da5 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -2418,6 +2418,20 @@ static void test_coop_level_mode_set(void)
         {WM_ACTIVATEAPP,        TRUE,   FALSE},
         {0,                     FALSE,  0},
     };
+    static const struct message exclusive_focus_restore_messages[] =
+    {
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* From the ShowWindow(SW_RESTORE). */
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* Generated by ddraw, matches d3d9 behavior. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching previous message. */
+        {WM_SIZE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_DISPLAYCHANGE,      FALSE,  0}, /* Ddraw restores mode. */
+        /* Native redundantly sets the window size here. */
+        {WM_ACTIVATEAPP,        TRUE,   TRUE}, /* End of ddraw's hooks. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching the one from ShowWindow. */
+        {WM_MOVE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_SIZE,               TRUE,   SIZE_RESTORED}, /* DefWindowProc. */
+        {0,                     FALSE,  0},
+    };
 
     static const struct message normal_messages[] =
     {
@@ -2571,7 +2585,14 @@ static void test_coop_level_mode_set(void)
             && devmode.dmPelsHeight == registry_mode.dmPelsHeight, "Got unexpect screen size %ux%u.\n",
             devmode.dmPelsWidth, devmode.dmPelsHeight);
 
+    expect_messages = exclusive_focus_restore_messages;
     ShowWindow(window, SW_RESTORE);
+    ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+    GetWindowRect(window, &r);
+    ok(EqualRect(&r, &ddraw_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n",
+            ddraw_rect.left, ddraw_rect.top, ddraw_rect.right, ddraw_rect.bottom,
+            r.left, r.top, r.right, r.bottom);
     ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode);
     ok(ret, "Failed to get display mode.\n");
     ok(devmode.dmPelsWidth == param.ddraw_width
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 03e7362..7e4d046 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -2605,6 +2605,20 @@ static void test_coop_level_mode_set(void)
         {WM_ACTIVATEAPP,        TRUE,   FALSE},
         {0,                     FALSE,  0},
     };
+    static const struct message exclusive_focus_restore_messages[] =
+    {
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* From the ShowWindow(SW_RESTORE). */
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* Generated by ddraw, matches d3d9 behavior. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching previous message. */
+        {WM_SIZE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_DISPLAYCHANGE,      FALSE,  0}, /* Ddraw restores mode. */
+        /* Native redundantly sets the window size here. */
+        {WM_ACTIVATEAPP,        TRUE,   TRUE}, /* End of ddraw's hooks. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching the one from ShowWindow. */
+        {WM_MOVE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_SIZE,               TRUE,   SIZE_RESTORED}, /* DefWindowProc. */
+        {0,                     FALSE,  0},
+    };
 
     static const struct message normal_messages[] =
     {
@@ -2758,7 +2772,14 @@ static void test_coop_level_mode_set(void)
             && devmode.dmPelsHeight == registry_mode.dmPelsHeight, "Got unexpect screen size %ux%u.\n",
             devmode.dmPelsWidth, devmode.dmPelsHeight);
 
+    expect_messages = exclusive_focus_restore_messages;
     ShowWindow(window, SW_RESTORE);
+    ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+    GetWindowRect(window, &r);
+    ok(EqualRect(&r, &ddraw_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n",
+            ddraw_rect.left, ddraw_rect.top, ddraw_rect.right, ddraw_rect.bottom,
+            r.left, r.top, r.right, r.bottom);
     ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode);
     ok(ret, "Failed to get display mode.\n");
     ok(devmode.dmPelsWidth == param.ddraw_width
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 1efd1fb..f1f394a 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -2282,6 +2282,20 @@ static void test_coop_level_mode_set(void)
         {WM_ACTIVATEAPP,        TRUE,   FALSE},
         {0,                     FALSE,  0},
     };
+    static const struct message exclusive_focus_restore_messages[] =
+    {
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* From the ShowWindow(SW_RESTORE). */
+        {WM_WINDOWPOSCHANGING,  FALSE,  0}, /* Generated by ddraw, matches d3d9 behavior. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching previous message. */
+        {WM_SIZE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_DISPLAYCHANGE,      FALSE,  0}, /* Ddraw restores mode. */
+        /* Native redundantly sets the window size here. */
+        {WM_ACTIVATEAPP,        TRUE,   TRUE}, /* End of ddraw's hooks. */
+        {WM_WINDOWPOSCHANGED,   FALSE,  0}, /* Matching the one from ShowWindow. */
+        {WM_MOVE,               FALSE,  0}, /* DefWindowProc. */
+        {WM_SIZE,               TRUE,   SIZE_RESTORED}, /* DefWindowProc. */
+        {0,                     FALSE,  0},
+    };
 
     static const struct message normal_messages[] =
     {
@@ -2435,7 +2449,14 @@ static void test_coop_level_mode_set(void)
             && devmode.dmPelsHeight == registry_mode.dmPelsHeight, "Got unexpect screen size %ux%u.\n",
             devmode.dmPelsWidth, devmode.dmPelsHeight);
 
+    expect_messages = exclusive_focus_restore_messages;
     ShowWindow(window, SW_RESTORE);
+    ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message);
+
+    GetWindowRect(window, &r);
+    ok(EqualRect(&r, &ddraw_rect), "Expected {%d, %d, %d, %d}, got {%d, %d, %d, %d}.\n",
+            ddraw_rect.left, ddraw_rect.top, ddraw_rect.right, ddraw_rect.bottom,
+            r.left, r.top, r.right, r.bottom);
     ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode);
     ok(ret, "Failed to get display mode.\n");
     ok(devmode.dmPelsWidth == param.ddraw_width




More information about the wine-cvs mailing list