André Hentschel : user32/tests: Test that GetDlgItem does not recurse.

Alexandre Julliard julliard at winehq.org
Fri Jul 2 10:21:57 CDT 2010


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

Author: André Hentschel <nerv at dawncrow.de>
Date:   Thu Jul  1 22:07:40 2010 +0200

user32/tests: Test that GetDlgItem does not recurse.

---

 dlls/user32/tests/dialog.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/tests/dialog.c b/dlls/user32/tests/dialog.c
index d18ba0e..cc80c27 100644
--- a/dlls/user32/tests/dialog.c
+++ b/dlls/user32/tests/dialog.c
@@ -926,6 +926,23 @@ static void test_GetDlgItem(void)
     hwnd2 = GetDlgItem(hwnd, 0);
     ok(hwnd2 == child2, "expected second child, got %p\n", hwnd2);
 
+    /* Now test how GetDlgItem searches */
+    DestroyWindow(child2);
+    child2 = CreateWindowA("button", "child2", WS_VISIBLE|WS_CHILD, 0, 0, 10, 10, child1, 0, g_hinst, NULL);
+    ok(child2 != NULL, "failed to create second child\n");
+
+    /* give child2 an ID */
+    SetWindowLong(child2, GWLP_ID, 100);
+
+    hwnd2 = GetDlgItem(hwnd, 100);
+    ok(!hwnd2, "expected child to not be found, got %p\n", hwnd2);
+
+    /* make the ID of child2 public with a WS_EX_CONTROLPARENT parent */
+    SetWindowLong(child1, GWL_EXSTYLE, WS_EX_CONTROLPARENT);
+
+    hwnd2 = GetDlgItem(hwnd, 100);
+    ok(!hwnd2, "expected child to not be found, got %p\n", hwnd2);
+
     DestroyWindow(child1);
     DestroyWindow(child2);
     DestroyWindow(hwnd);




More information about the wine-cvs mailing list