From: Stefan Dösinger Subject: [PATCH 3/5] ddraw/tests: Test messages on window reactivation. Message-Id: <1416424433-1467-3-git-send-email-stefan@codeweavers.com> Date: Wed, 19 Nov 2014 20:13:51 +0100 --- 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 -- 2.0.4