Akihiro Sagawa : imm32/tests: Add ImmDisableIME tests.

Alexandre Julliard julliard at winehq.org
Thu Jul 28 09:38:55 CDT 2016


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

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Thu Jul 28 21:33:31 2016 +0900

imm32/tests: Add ImmDisableIME tests.

Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/imm32/tests/imm32.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c
index c7ae168..e0a0b33 100644
--- a/dlls/imm32/tests/imm32.c
+++ b/dlls/imm32/tests/imm32.c
@@ -173,7 +173,7 @@ static void msg_spy_cleanup(void) {
  */
 static const char wndcls[] = "winetest_imm32_wndcls";
 static enum { PHASE_UNKNOWN, FIRST_WINDOW, SECOND_WINDOW,
-              CREATE_CANCEL, NCCREATE_CANCEL } test_phase;
+              CREATE_CANCEL, NCCREATE_CANCEL, IME_DISABLED } test_phase;
 static HWND hwnd;
 
 static HWND get_ime_window(void);
@@ -189,6 +189,7 @@ static LRESULT WINAPI wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
             default_ime_wnd = get_ime_window();
             switch(test_phase) {
                 case FIRST_WINDOW:
+                case IME_DISABLED:
                     ok(!default_ime_wnd, "expected no IME windows\n");
                     break;
                 case SECOND_WINDOW:
@@ -209,6 +210,9 @@ static LRESULT WINAPI wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
                     todo_wine_if(test_phase == FIRST_WINDOW || test_phase == CREATE_CANCEL)
                     ok(default_ime_wnd != NULL, "expected IME window existence\n");
                     break;
+                case IME_DISABLED:
+                    ok(!default_ime_wnd, "expected no IME windows\n");
+                    break;
                 default:
                     break; /* do nothing */
             }
@@ -222,6 +226,9 @@ static LRESULT WINAPI wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
                     todo_wine_if(test_phase == FIRST_WINDOW || test_phase == CREATE_CANCEL)
                     ok(default_ime_wnd != NULL, "expected IME window existence\n");
                     break;
+                case IME_DISABLED:
+                    ok(!default_ime_wnd, "expected no IME windows\n");
+                    break;
                 default:
                     break; /* do nothing */
             }
@@ -1002,6 +1009,23 @@ static DWORD WINAPI test_default_ime_window_cancel_cb(void *arg)
     return 1;
 }
 
+static DWORD WINAPI test_default_ime_disabled_cb(void *arg)
+{
+    HWND hWnd, default_ime_wnd;
+
+    ok(!get_ime_window(), "Expected no IME windows\n");
+    ImmDisableIME(GetCurrentThreadId());
+    test_phase = IME_DISABLED;
+    hWnd = CreateWindowExA(WS_EX_CLIENTEDGE, wndcls, "Wine imm32.dll test",
+                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
+                            CW_USEDEFAULT, CW_USEDEFAULT,
+                            240, 120, NULL, NULL, GetModuleHandleW(NULL), NULL);
+    default_ime_wnd = ImmGetDefaultIMEWnd(hWnd);
+    todo_wine ok(!default_ime_wnd, "Expected no IME windows\n");
+    DestroyWindow(hWnd);
+    return 1;
+}
+
 static void test_default_ime_window_creation(void)
 {
     HANDLE thread;
@@ -1038,6 +1062,10 @@ static void test_default_ime_window_creation(void)
         }
     }
 
+    thread = CreateThread(NULL, 0, test_default_ime_disabled_cb, NULL, 0, NULL);
+    WaitForSingleObject(thread, INFINITE);
+    CloseHandle(thread);
+
     test_phase = PHASE_UNKNOWN;
 }
 




More information about the wine-cvs mailing list