[PATCH] user32/tests: Use separate test window for each scrollbar test

Nikolay Sivov nsivov at codeweavers.com
Sun Nov 15 13:37:24 CST 2015


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/user32/tests/scroll.c | 77 +++++++++++++++++++++++++++++++---------------
 1 file changed, 53 insertions(+), 24 deletions(-)

diff --git a/dlls/user32/tests/scroll.c b/dlls/user32/tests/scroll.c
index df37534..41201ec 100644
--- a/dlls/user32/tests/scroll.c
+++ b/dlls/user32/tests/scroll.c
@@ -25,7 +25,7 @@
 
 #include "wine/test.h"
 
-static HWND hScroll, hMainWnd;
+static HWND hScroll;
 static BOOL bThemeActive = FALSE;
 
 static LRESULT CALLBACK MyWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
@@ -52,20 +52,45 @@ static LRESULT CALLBACK MyWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
     }
     return 0;
 }
+
+static HWND create_main_test_wnd(void)
+{
+    HWND hMainWnd;
+
+    hScroll = NULL;
+    hMainWnd = CreateWindowExA( 0, "MyTestWnd", "Scroll",
+      WS_OVERLAPPEDWINDOW|WS_VSCROLL|WS_HSCROLL,
+      CW_USEDEFAULT, CW_USEDEFAULT, 100, 100, NULL, NULL, GetModuleHandleA(NULL), 0 );
+    ok(hMainWnd != NULL, "Failed to create parent window. Tests aborted.\n");
+    ok(hScroll != NULL, "got NULL scroll bar handle\n");
+
+    return hMainWnd;
+}
+
 static void scrollbar_test_track(void)
 {
+    HWND mainwnd;
+
+    mainwnd = create_main_test_wnd();
+
     /* test that scrollbar tracking is terminated when
      * the control looses mouse capture */
     SendMessageA( hScroll, WM_LBUTTONDOWN, 0, MAKELPARAM( 1, 1));
     /* a normal return from the sendmessage */
     /* not normal for instance by closing the windws */
     ok( IsWindow( hScroll), "Scrollbar has gone!\n");
+
+    DestroyWindow(hScroll);
+    DestroyWindow(mainwnd);
 }
 
-static void scrollbar_test1(void)
+static void test_EnableScrollBar(void)
 {
+    HWND mainwnd;
     BOOL ret;
 
+    mainwnd = create_main_test_wnd();
+
     ret = EnableScrollBar( hScroll, SB_CTL, ESB_DISABLE_BOTH );
     ok( ret, "The scrollbar should be disabled.\n" );
     ok( !IsWindowEnabled( hScroll ), "The scrollbar window should be disabled.\n" );
@@ -88,13 +113,17 @@ static void scrollbar_test1(void)
     ret = EnableScrollBar( hScroll, SB_CTL, ESB_ENABLE_BOTH );
     ok( ret, "The scrollbar should be enabled.\n" );
     ok( IsWindowEnabled( hScroll ), "The scrollbar window should be enabled.\n" );
+
+    DestroyWindow(hScroll);
+    DestroyWindow(mainwnd);
 }
 
-static void scrollbar_test2(void)
+static void test_SetScrollPos(void)
 {
+    HWND mainwnd;
     int ret;
 
-    trace("The scrollbar is disabled.\n");
+    mainwnd = create_main_test_wnd();
 
     EnableWindow( hScroll, FALSE );
     ok( !IsWindowEnabled( hScroll ), "The scroll should be disabled.\n" );
@@ -114,8 +143,6 @@ static void scrollbar_test2(void)
     ret = GetScrollPos( hScroll, SB_CTL);
     ok( ret == 30, "The position should be set!!!\n");
 
-    trace("The scrollbar is enabled.\n");
-
     EnableWindow( hScroll, TRUE );
     ok( IsWindowEnabled( hScroll ), "The scroll should be enabled.\n" );
 
@@ -133,12 +160,18 @@ static void scrollbar_test2(void)
 
     ret = GetScrollPos( hScroll, SB_CTL);
     ok( ret == 30, "The position should not be equal to zero\n");
+
+    DestroyWindow(hScroll);
+    DestroyWindow(mainwnd);
 }
 
-static void scrollbar_test3(void)
+static void test_ShowScrollBar(void)
 {
+    HWND mainwnd;
     BOOL    ret;
 
+    mainwnd = create_main_test_wnd();
+
     ret = ShowScrollBar( hScroll, SB_CTL, FALSE );
     ok( ret, "The ShowScrollBar() should not failed.\n" );
     ok( !IsWindowVisible( hScroll ), "The scrollbar window should not be visible\n" );
@@ -150,10 +183,13 @@ static void scrollbar_test3(void)
     ret = ShowScrollBar( NULL, SB_CTL, TRUE );
     ok( !ret, "The ShowScrollBar() should failed.\n" );
 
+    DestroyWindow(hScroll);
+    DestroyWindow(mainwnd);
 }
 
-static void scrollbar_test4(void)
+static void test_GetScrollBarInfo(void)
 {
+    HWND hMainWnd;
     BOOL ret;
     SCROLLBARINFO sbi;
     RECT rect;
@@ -166,6 +202,8 @@ static void scrollbar_test4(void)
         return;
     }
 
+    hMainWnd = create_main_test_wnd();
+
     /* Test GetScrollBarInfo to make sure it returns rcScrollBar in screen
      * coordinates. */
     sbi.cbSize = sizeof(sbi);
@@ -218,6 +256,9 @@ static void scrollbar_test4(void)
         rect.top, rect.left, rect.bottom, rect.right,
         sbi.rcScrollBar.top, sbi.rcScrollBar.left,
         sbi.rcScrollBar.bottom, sbi.rcScrollBar.right );
+
+    DestroyWindow(hScroll);
+    DestroyWindow(hMainWnd);
 }
 
 /* some tests designed to show that Horizontal and Vertical
@@ -502,19 +543,10 @@ START_TEST ( scroll )
     wc.lpfnWndProc = MyWndProc;
     RegisterClassA(&wc);
 
-    hMainWnd = CreateWindowExA( 0, "MyTestWnd", "Scroll",
-      WS_OVERLAPPEDWINDOW|WS_VSCROLL|WS_HSCROLL,
-      CW_USEDEFAULT, CW_USEDEFAULT, 100, 100, NULL, NULL, GetModuleHandleA(NULL), 0 );
-
-    ok(hMainWnd != NULL, "Failed to create parent window. Tests aborted.\n");
-    if (!hMainWnd) return;
-
-    assert( hScroll );
-
-    scrollbar_test1();
-    scrollbar_test2();
-    scrollbar_test3();
-    scrollbar_test4();
+    test_EnableScrollBar();
+    test_SetScrollPos();
+    test_ShowScrollBar();
+    test_GetScrollBarInfo();
     scrollbar_test_track();
 
     /* Some test results vary depending of theming being active or not */
@@ -533,7 +565,4 @@ START_TEST ( scroll )
     scrollbar_test_default( WS_HSCROLL | WS_VSCROLL);
 
     scrollbar_test_init();
-
-    DestroyWindow(hScroll);
-    DestroyWindow(hMainWnd);
 }
-- 
2.6.2




More information about the wine-patches mailing list