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