mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 17:27:18 +00:00
imm32/tests: Test WM_IME_NOTIFY messages target window.
Showing that they aren't sent to the focused window but only to the INPUTCONTEXT hWnd member.
This commit is contained in:
parent
8cb2d2d541
commit
0522c01be3
|
@ -2670,6 +2670,7 @@ done:
|
|||
received->himc, received->message.msg, received->message.wparam, received->message.lparam );
|
||||
return ret;
|
||||
case MSG_TEST_WIN:
|
||||
todo_wine_if( expected->todo )
|
||||
ok_(file, line)( !ret, "got hkl %p, himc %p, MSG_TEST_WIN msg %#x, wparam %#Ix, lparam %#Ix\n", received->hkl,
|
||||
received->himc, received->message.msg, received->message.wparam, received->message.lparam );
|
||||
return ret;
|
||||
|
@ -2703,6 +2704,7 @@ done:
|
|||
expected->himc, expected->message.msg, expected->message.wparam, expected->message.lparam );
|
||||
break;
|
||||
case MSG_TEST_WIN:
|
||||
todo_wine_if( expected->todo )
|
||||
ok_(file, line)( !ret, "hkl %p, himc %p, MSG_TEST_WIN msg %#x, wparam %#Ix, lparam %#Ix\n", expected->hkl,
|
||||
expected->himc, expected->message.msg, expected->message.wparam, expected->message.lparam );
|
||||
break;
|
||||
|
@ -2722,7 +2724,8 @@ static void ok_seq_( const char *file, int line, const struct ime_call *expected
|
|||
winetest_push_context( "%u%s%s", i++, !expected->func ? " (spurious)" : "",
|
||||
!received->func ? " (missing)" : "" );
|
||||
ret = ok_call_( file, line, expected, received );
|
||||
if (ret && expected->todo && !strcmp( winetest_platform, "wine" ))
|
||||
if (ret && expected->todo && expected->func &&
|
||||
!strcmp( winetest_platform, "wine" ))
|
||||
expected++;
|
||||
else if (ret && broken(expected->broken))
|
||||
expected++;
|
||||
|
@ -4022,6 +4025,10 @@ static void test_ImmSetConversionStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETCONVERSIONMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETCONVERSIONMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETCONVERSIONMODE},
|
||||
|
@ -4030,6 +4037,10 @@ static void test_ImmSetConversionStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETSENTENCEMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETSENTENCEMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETSENTENCEMODE},
|
||||
|
@ -4042,10 +4053,7 @@ static void test_ImmSetConversionStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0xdeadbeef, .value = IMC_SETCONVERSIONMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETCONVERSIONMODE},
|
||||
},
|
||||
{.todo = TRUE}, /* spurious calls */
|
||||
{0},
|
||||
};
|
||||
const struct ime_call set_conversion_status_2_seq[] =
|
||||
|
@ -4054,6 +4062,10 @@ static void test_ImmSetConversionStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETCONVERSIONMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETCONVERSIONMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETCONVERSIONMODE},
|
||||
|
@ -4062,6 +4074,10 @@ static void test_ImmSetConversionStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0xfeedcafe, .value = IMC_SETSENTENCEMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETSENTENCEMODE},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETSENTENCEMODE},
|
||||
|
@ -4080,7 +4096,7 @@ static void test_ImmSetConversionStatus(void)
|
|||
ok_eq( old_conversion, ctx->fdwConversion, UINT, "%#x" );
|
||||
ok_eq( old_sentence, ctx->fdwSentence, UINT, "%#x" );
|
||||
|
||||
hwnd = CreateWindowW( L"static", NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
hwnd = CreateWindowW( test_class.lpszClassName, NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
100, 100, 100, 100, NULL, NULL, NULL, NULL );
|
||||
ok( !!hwnd, "CreateWindowW failed, error %lu\n", GetLastError() );
|
||||
process_messages();
|
||||
|
@ -4134,6 +4150,7 @@ static void test_ImmSetConversionStatus(void)
|
|||
ok_eq( 0xdeadbeef, ctx->fdwConversion, UINT, "%#x" );
|
||||
ok_eq( 0xfeedcafe, ctx->fdwSentence, UINT, "%#x" );
|
||||
|
||||
ctx->hWnd = 0;
|
||||
ok_seq( empty_sequence );
|
||||
ok_ret( 1, ImmSetConversionStatus( default_himc, 0, 0xfeedcafe ) );
|
||||
ok_seq( set_conversion_status_1_seq );
|
||||
|
@ -4144,6 +4161,7 @@ static void test_ImmSetConversionStatus(void)
|
|||
ok_eq( 0, ctx->fdwConversion, UINT, "%#x" );
|
||||
ok_eq( 0xfeedcafe, ctx->fdwSentence, UINT, "%#x" );
|
||||
|
||||
ctx->hWnd = hwnd;
|
||||
ok_seq( empty_sequence );
|
||||
ok_ret( 1, ImmSetConversionStatus( default_himc, ~0, ~0 ) );
|
||||
ok_seq( set_conversion_status_2_seq );
|
||||
|
@ -4200,6 +4218,10 @@ static void test_ImmSetOpenStatus(void)
|
|||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETOPENSTATUS},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETOPENSTATUS},
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETOPENSTATUS},
|
||||
|
@ -4213,6 +4235,20 @@ static void test_ImmSetOpenStatus(void)
|
|||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETOPENSTATUS},
|
||||
.todo = TRUE,
|
||||
},
|
||||
{0},
|
||||
};
|
||||
const struct ime_call set_open_status_2_seq[] =
|
||||
{
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = IME_NOTIFY, .notify = {.action = NI_CONTEXTUPDATED, .index = 0, .value = IMC_SETOPENSTATUS},
|
||||
.todo = TRUE,
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_TEST_WIN, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETOPENSTATUS},
|
||||
.todo = TRUE,
|
||||
},
|
||||
{
|
||||
.hkl = expect_ime, .himc = default_himc,
|
||||
.func = MSG_IME_UI, .message = {.msg = WM_IME_NOTIFY, .wparam = IMN_SETOPENSTATUS},
|
||||
|
@ -4231,7 +4267,7 @@ static void test_ImmSetOpenStatus(void)
|
|||
ok_ne( NULL, ctx, INPUTCONTEXT *, "%p" );
|
||||
ok_eq( old_status, ctx->fOpen, UINT, "%#x" );
|
||||
|
||||
hwnd = CreateWindowW( L"static", NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
hwnd = CreateWindowW( test_class.lpszClassName, NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
100, 100, 100, 100, NULL, NULL, NULL, NULL );
|
||||
ok( !!hwnd, "CreateWindowW failed, error %lu\n", GetLastError() );
|
||||
process_messages();
|
||||
|
@ -4276,9 +4312,18 @@ static void test_ImmSetOpenStatus(void)
|
|||
ok_eq( 0xdeadbeef, status, UINT, "%#x" );
|
||||
ok_eq( 0xdeadbeef, ctx->fOpen, UINT, "%#x" );
|
||||
|
||||
ctx->hWnd = 0;
|
||||
ok_ret( 1, ImmSetOpenStatus( default_himc, 0xfeedcafe ) );
|
||||
ok_seq( set_open_status_1_seq );
|
||||
|
||||
status = ImmGetOpenStatus( default_himc );
|
||||
todo_wine ok_eq( 0xfeedcafe, status, UINT, "%#x" );
|
||||
todo_wine ok_eq( 0xfeedcafe, ctx->fOpen, UINT, "%#x" );
|
||||
|
||||
ctx->hWnd = hwnd;
|
||||
ok_seq( empty_sequence );
|
||||
ok_ret( 1, ImmSetOpenStatus( default_himc, ~0 ) );
|
||||
ok_seq( set_open_status_1_seq );
|
||||
ok_seq( set_open_status_2_seq );
|
||||
|
||||
status = ImmGetOpenStatus( default_himc );
|
||||
todo_wine ok_eq( ~0, status, UINT, "%#x" );
|
||||
|
|
Loading…
Reference in a new issue