user32/tests: Add single-threaded tests for WM_[GET|SET]TEXT and [Get|Set]WindowText.

This commit is contained in:
Sebastian Lackner 2014-11-18 05:11:10 +01:00 committed by Alexandre Julliard
parent 0a6e56bdc6
commit d6bdae11df
1 changed files with 49 additions and 0 deletions

View File

@ -64,6 +64,7 @@ static BOOL (WINAPI *pMirrorRgn)(HWND hwnd, HRGN hrgn);
static BOOL test_lbuttondown_flag; static BOOL test_lbuttondown_flag;
static DWORD num_gettext_msgs; static DWORD num_gettext_msgs;
static DWORD num_settext_msgs;
static HWND hwndMessage; static HWND hwndMessage;
static HWND hwndMain, hwndMain2; static HWND hwndMain, hwndMain2;
static HHOOK hhook; static HHOOK hhook;
@ -798,6 +799,9 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
case WM_GETTEXT: case WM_GETTEXT:
num_gettext_msgs++; num_gettext_msgs++;
break; break;
case WM_SETTEXT:
num_settext_msgs++;
break;
} }
return DefWindowProcA(hwnd, msg, wparam, lparam); return DefWindowProcA(hwnd, msg, wparam, lparam);
@ -5691,12 +5695,57 @@ static void test_ShowWindow(void)
static void test_gettext(void) static void test_gettext(void)
{ {
BOOL success;
char buf[32];
INT buf_len;
HWND hwnd; HWND hwnd;
LRESULT r; LRESULT r;
hwnd = CreateWindowExA( 0, "MainWindowClass", "caption", WS_POPUP, 0, 0, 0, 0, 0, 0, 0, NULL ); hwnd = CreateWindowExA( 0, "MainWindowClass", "caption", WS_POPUP, 0, 0, 0, 0, 0, 0, 0, NULL );
ok( hwnd != 0, "CreateWindowExA error %d\n", GetLastError() ); ok( hwnd != 0, "CreateWindowExA error %d\n", GetLastError() );
/* test GetWindowTextA */
num_gettext_msgs = 0;
memset( buf, 0, sizeof(buf) );
buf_len = GetWindowTextA( hwnd, buf, sizeof(buf) );
ok( buf_len != 0, "expected a nonempty window text\n" );
ok( !strcmp(buf, "caption"), "got wrong window text '%s'\n", buf );
ok( num_gettext_msgs == 1, "got %u WM_GETTEXT messages\n", num_gettext_msgs );
/* test WM_GETTEXT */
num_gettext_msgs = 0;
memset( buf, 0, sizeof(buf) );
r = SendMessageA( hwnd, WM_GETTEXT, sizeof(buf), (LONG_PTR)buf );
ok( r != 0, "expected a nonempty window text\n" );
ok( !strcmp(buf, "caption"), "got wrong window text '%s'\n", buf );
ok( num_gettext_msgs == 1, "got %u WM_GETTEXT messages\n", num_gettext_msgs );
/* test SetWindowTextA */
num_settext_msgs = 0;
success = SetWindowTextA( hwnd, "new_caption" );
ok( success, "SetWindowTextA failed\n" );
ok( num_settext_msgs == 1, "got %u WM_SETTEXT messages\n", num_settext_msgs );
num_gettext_msgs = 0;
memset( buf, 0, sizeof(buf) );
buf_len = GetWindowTextA( hwnd, buf, sizeof(buf) );
ok( buf_len != 0, "expected a nonempty window text\n" );
ok( !strcmp(buf, "new_caption"), "got wrong window text '%s'\n", buf );
ok( num_gettext_msgs == 1, "got %u WM_GETTEXT messages\n", num_gettext_msgs );
/* test WM_SETTEXT */
num_settext_msgs = 0;
r = SendMessageA( hwnd, WM_SETTEXT, 0, (ULONG_PTR)"another_caption" );
ok( r != 0, "WM_SETTEXT failed\n" );
ok( num_settext_msgs == 1, "got %u WM_SETTEXT messages\n", num_settext_msgs );
num_gettext_msgs = 0;
memset( buf, 0, sizeof(buf) );
buf_len = GetWindowTextA( hwnd, buf, sizeof(buf) );
ok( buf_len != 0, "expected a nonempty window text\n" );
ok( !strcmp(buf, "another_caption"), "got wrong window text '%s'\n", buf );
ok( num_gettext_msgs == 1, "got %u WM_GETTEXT messages\n", num_gettext_msgs );
/* seems to crash on every modern Windows version */ /* seems to crash on every modern Windows version */
if (0) if (0)
{ {