=?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