Zebediah Figura : user32/tests: Add activation tests for minimizing windows.

Alexandre Julliard julliard at winehq.org
Wed Dec 20 14:09:21 CST 2017


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Dec 19 20:32:52 2017 -0600

user32/tests: Add activation tests for minimizing windows.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/tests/win.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 6a6a765..fc35542 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -9952,6 +9952,89 @@ static void test_hide_window(void)
     DestroyWindow(hwnd);
 }
 
+static void test_minimize_window(HWND hwndMain)
+{
+    HWND hwnd, hwnd2, hwnd3;
+
+    hwnd = CreateWindowExA(0, "MainWindowClass", "Main window", WS_POPUP | WS_VISIBLE,
+                           100, 100, 200, 200, 0, 0, GetModuleHandleA(NULL), NULL);
+    hwnd2 = CreateWindowExA(0, "MainWindowClass", "Main window 2", WS_POPUP | WS_VISIBLE,
+                            100, 100, 200, 200, 0, 0, GetModuleHandleA(NULL), NULL);
+    trace("hwnd = %p, hwnd2 = %p\n", hwnd, hwnd2);
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    /* test hiding two normal windows */
+    ShowWindow(hwnd2, SW_MINIMIZE);
+    todo_wine
+    check_active_state(hwnd, hwnd, hwnd);
+
+    ShowWindow(hwnd, SW_MINIMIZE);
+    todo_wine
+    if (GetActiveWindow() == 0)
+        check_active_state(0, 0, 0);
+
+    ShowWindow(hwnd, SW_RESTORE);
+    check_active_state(hwnd, hwnd, hwnd);
+
+    ShowWindow(hwnd2, SW_RESTORE);
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    /* hide a non-active window */
+    ShowWindow(hwnd, SW_MINIMIZE);
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    /* hide a window in the middle */
+    ShowWindow(hwnd, SW_RESTORE);
+    ShowWindow(hwnd2, SW_RESTORE);
+    hwnd3 = CreateWindowExA(0, "MainWindowClass", "Main window 3", WS_POPUP | WS_VISIBLE,
+                            100, 100, 200, 200, 0, 0, GetModuleHandleA(NULL), NULL);
+    SetActiveWindow(hwnd2);
+    ShowWindow(hwnd2, SW_MINIMIZE);
+    todo_wine
+    check_active_state(hwnd3, hwnd3, hwnd3);
+
+    DestroyWindow(hwnd3);
+
+    /* hide a normal window when there is a topmost window */
+    hwnd3 = CreateWindowExA(WS_EX_TOPMOST, "MainWindowClass", "Topmost window 3", WS_POPUP|WS_VISIBLE,
+                            100, 100, 200, 200, 0, 0, GetModuleHandleA(NULL), NULL);
+    ShowWindow(hwnd, SW_RESTORE);
+    ShowWindow(hwnd2, SW_RESTORE);
+    check_active_state(hwnd2, hwnd2, hwnd2);
+    ShowWindow(hwnd2, SW_MINIMIZE);
+    todo_wine
+    check_active_state(hwnd3, hwnd3, hwnd3);
+
+    /* hide a topmost window */
+    ShowWindow(hwnd2, SW_RESTORE);
+    ShowWindow(hwnd3, SW_RESTORE);
+    ShowWindow(hwnd3, SW_MINIMIZE);
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    DestroyWindow(hwnd3);
+
+    /* hide an owned window */
+    ShowWindow(hwnd, SW_RESTORE);
+    ShowWindow(hwnd2, SW_RESTORE);
+    hwnd3 = CreateWindowExA(0, "MainWindowClass", "Owned window 3", WS_POPUP|WS_VISIBLE,
+                            100, 100, 200, 200, hwnd, 0, GetModuleHandleA(NULL), NULL);
+    ShowWindow(hwnd3, SW_MINIMIZE);
+    todo_wine
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    /* hide an owner window */
+    ShowWindow(hwnd, SW_RESTORE);
+    ShowWindow(hwnd2, SW_RESTORE);
+    ShowWindow(hwnd3, SW_RESTORE);
+    ShowWindow(hwnd, SW_MINIMIZE);
+    todo_wine
+    check_active_state(hwnd2, hwnd2, hwnd2);
+
+    DestroyWindow(hwnd3);
+    DestroyWindow(hwnd2);
+    DestroyWindow(hwnd);
+}
+
 static void test_desktop( void )
 {
     HWND desktop = GetDesktopWindow();
@@ -10530,6 +10613,7 @@ START_TEST(win)
     test_LockWindowUpdate(hwndMain);
     test_desktop();
     test_hide_window();
+    test_minimize_window(hwndMain);
 
     /* add the tests above this line */
     if (hhook) UnhookWindowsHookEx(hhook);




More information about the wine-cvs mailing list