Alexandre Julliard : user32/tests: Add some more tests for HWND_MESSAGE windows.
Alexandre Julliard
julliard at winehq.org
Wed Jun 25 16:43:50 CDT 2008
Module: wine
Branch: master
Commit: 9b9dbb20f2f173571ad40c79f4191dff206d40af
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b9dbb20f2f173571ad40c79f4191dff206d40af
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Jun 25 15:24:02 2008 +0200
user32/tests: Add some more tests for HWND_MESSAGE windows.
---
dlls/user32/tests/win.c | 58 +++++++++++++++++++++++++++++++++-------------
1 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 68d5530..182a0b6 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -4707,27 +4707,51 @@ static void test_GetWindowModuleFileName(void)
ok(!ret1, "expected 0, got %u\n", ret1);
}
+static void test_hwnd_message(void)
+{
+ HWND parent = 0, hwnd;
+ RECT rect;
+
+ hwnd = CreateWindowExA(0, "MainWindowClass", "message window", WS_CAPTION | WS_VISIBLE,
+ 100, 100, 200, 200, HWND_MESSAGE, 0, 0, NULL);
+ if (!hwnd)
+ {
+ win_skip("CreateWindowExA with parent HWND_MESSAGE failed\n");
+ return;
+ }
+
+ ok( !GetParent(hwnd), "GetParent should return 0 for message only windows\n" );
+ if (pGetAncestor)
+ {
+ char buffer[100];
+ HWND root, desktop = GetDesktopWindow();
+
+ parent = pGetAncestor(hwnd, GA_PARENT);
+ ok(parent != 0, "GetAncestor(GA_PARENT) should not return 0 for message windows\n");
+ ok(parent != desktop, "GetAncestor(GA_PARENT) should not return desktop for message windows\n");
+ root = pGetAncestor(hwnd, GA_ROOT);
+ ok(root == hwnd, "GetAncestor(GA_ROOT) should return hwnd for message windows\n");
+ ok( !pGetAncestor(parent, GA_PARENT), "parent shouldn't have a parent\n" );
+ trace("parent %p root %p desktop %p\n", parent, root, desktop);
+ if (!GetClassNameA( parent, buffer, sizeof(buffer) )) buffer[0] = 0;
+ ok( !lstrcmpi( buffer, "Message" ), "wrong parent class '%s'\n", buffer );
+ GetWindowRect( parent, &rect );
+ ok( rect.left == 0 && rect.right == 100 && rect.top == 0 && rect.bottom == 100,
+ "wrong parent rect %d,%d-%d,%d\n", rect.left, rect.top, rect.right, rect.bottom );
+ }
+ GetWindowRect( hwnd, &rect );
+ ok( rect.left == 100 && rect.right == 300 && rect.top == 100 && rect.bottom == 300,
+ "wrong window rect %d,%d-%d,%d\n", rect.left, rect.top, rect.right, rect.bottom );
+
+ DestroyWindow(hwnd);
+}
+
START_TEST(win)
{
pGetAncestor = (void *)GetProcAddress( GetModuleHandleA("user32.dll"), "GetAncestor" );
pGetWindowInfo = (void *)GetProcAddress( GetModuleHandleA("user32.dll"), "GetWindowInfo" );
pGetWindowModuleFileNameA = (void *)GetProcAddress( GetModuleHandleA("user32.dll"), "GetWindowModuleFileNameA" );
- hwndMain = CreateWindowExA(0, "static", NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, 0, NULL);
- if (hwndMain)
- {
- ok(!GetParent(hwndMain), "GetParent should return 0 for message only windows\n");
- if (pGetAncestor)
- {
- hwndMessage = pGetAncestor(hwndMain, GA_PARENT);
- ok(hwndMessage != 0, "GetAncestor(GA_PARENT) should not return 0 for message only windows\n");
- trace("hwndMessage %p\n", hwndMessage);
- }
- DestroyWindow(hwndMain);
- }
- else
- trace("CreateWindowExA with parent HWND_MESSAGE failed\n");
-
if (!RegisterWindowClasses()) assert(0);
hhook = SetWindowsHookExA(WH_CBT, cbt_hook_proc, 0, GetCurrentThreadId());
@@ -4738,8 +4762,6 @@ START_TEST(win)
WS_MAXIMIZEBOX | WS_POPUP,
100, 100, 200, 200,
0, 0, GetModuleHandle(0), NULL);
- test_nonclient_area(hwndMain);
-
hwndMain2 = CreateWindowExA(/*WS_EX_TOOLWINDOW*/ 0, "MainWindowClass", "Main window 2",
WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX |
WS_MAXIMIZEBOX | WS_POPUP,
@@ -4751,6 +4773,8 @@ START_TEST(win)
our_pid = GetWindowThreadProcessId(hwndMain, NULL);
/* Add the tests below this line */
+ test_hwnd_message();
+ test_nonclient_area(hwndMain);
test_params();
test_GetWindowModuleFileName();
test_capture_1();
More information about the wine-cvs
mailing list