Lei Zhang : user32: Add more edit dialog tests.

Alexandre Julliard julliard at winehq.org
Thu Apr 3 05:43:49 CDT 2008


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

Author: Lei Zhang <thestig at google.com>
Date:   Wed Apr  2 10:50:09 2008 -0700

user32: Add more edit dialog tests.

---

 dlls/user32/tests/edit.c |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/dlls/user32/tests/edit.c b/dlls/user32/tests/edit.c
index 74092be..a40251c 100644
--- a/dlls/user32/tests/edit.c
+++ b/dlls/user32/tests/edit.c
@@ -90,6 +90,19 @@ static INT_PTR CALLBACK edit_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPA
                     PostMessage(hdlg, WM_USER, 0xdeadbeef, 1);
                     break;
 
+                /* multiple tab tests */
+                case 9:
+                    PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001);
+                    PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001);
+                    PostMessage(hdlg, WM_USER, 0xdeadbeef, 2);
+                    break;
+                case 10:
+                    PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001);
+                    PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001);
+                    PostMessage(hedit, WM_KEYDOWN, VK_TAB, 0xf0001);
+                    PostMessage(hdlg, WM_USER, 0xdeadbeef, 2);
+                    break;
+
                 default:
                     break;
             }
@@ -119,7 +132,9 @@ static INT_PTR CALLBACK edit_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPA
         {
             int len;
             HWND hok = GetDlgItem(hdlg, IDOK);
+            HWND hcancel = GetDlgItem(hdlg, IDCANCEL);
             HWND hedit = GetDlgItem(hdlg, 1000);
+            HWND hfocus = GetFocus();
 
             if (wparam != 0xdeadbeef)
                 break;
@@ -136,12 +151,23 @@ static INT_PTR CALLBACK edit_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPA
 
                 case 1:
                     len = SendMessage(hedit, WM_GETTEXTLENGTH, 0, 0);
-                    if ((GetFocus() == hok) && len == 0)
+                    if ((hfocus == hok) && len == 0)
                         EndDialog(hdlg, 444);
                     else
                         EndDialog(hdlg, 555);
                     break;
 
+                case 2:
+                    if (hfocus == hok)
+                        EndDialog(hdlg, 11);
+                    else if (hfocus == hcancel)
+                        EndDialog(hdlg, 22);
+                    else if (hfocus == hedit)
+                        EndDialog(hdlg, 33);
+                    else
+                        EndDialog(hdlg, 44);
+                    break;
+
                 default:
                     EndDialog(hdlg, 555);
             }
@@ -1307,6 +1333,12 @@ static void test_edit_dialog(void)
     todo_wine ok(444 == r, "Expected %d, got %d\n", 444, r);
     r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 8);
     ok(444 == r, "Expected %d, got %d\n", 444, r);
+
+    /* multiple tab tests */
+    r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 9);
+    ok(22 == r, "Expected %d, got %d\n", 22, r);
+    r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 10);
+    ok(33 == r, "Expected %d, got %d\n", 33, r);
 }
 
 static BOOL RegisterWindowClasses (void)




More information about the wine-cvs mailing list