From e38286759955492df033fe3096cb33816af8906d Mon Sep 17 00:00:00 2001 From: Alexandros Frantzis Date: Thu, 30 May 2024 18:38:30 +0300 Subject: [PATCH] user32/tests: Add more test for unicode input with vkey. --- dlls/user32/tests/input.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index c123f8fa439..f21b9e24555 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -1169,6 +1169,25 @@ static void test_SendInput_keyboard_messages( WORD vkey, WORD scan, WCHAR wch, W {0}, }; + struct send_input_keyboard_test unicode_vkey_ctrl[] = + { + {.scan = 0x3c0, .vkey = VK_CONTROL, .flags = KEYEVENTF_UNICODE, + .expect_state = {[VK_CONTROL] = 0x80, [VK_LCONTROL] = 0x80}, .todo_state = {[VK_LCONTROL] = TRUE}, + .expect = {KEY_HOOK(WM_KEYDOWN, 0xc0, VK_LCONTROL, .todo_value = TRUE), KEY_MSG(WM_KEYDOWN, 0xc0, VK_CONTROL), {0}}}, + {.scan = 0x3c0, .vkey = VK_CONTROL, .flags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP, + .expect = {KEY_HOOK(WM_KEYUP, 0xc0, VK_LCONTROL, .todo_value = TRUE), KEY_MSG(WM_KEYUP, 0xc0, VK_CONTROL), {0}}}, + {0}, + }; + + struct send_input_keyboard_test unicode_vkey_packet[] = + { + {.scan = 0x3c0, .vkey = VK_PACKET, .flags = KEYEVENTF_UNICODE, .expect_state = {[VK_PACKET] = 0x80}, + .expect = {KEY_HOOK(WM_KEYDOWN, 0xc0, VK_PACKET), KEY_MSG(WM_KEYDOWN, 0, VK_PACKET, .todo_value = TRUE), WIN_MSG(WM_CHAR, 0xc0, 1), {0}}}, + {.scan = 0x3c0, .vkey = VK_PACKET, .flags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP, + .expect = {KEY_HOOK(WM_KEYUP, 0xc0, VK_PACKET), KEY_MSG(WM_KEYUP, 0, VK_PACKET, .todo_value = TRUE), {0}}}, + {0}, + }; + struct send_input_keyboard_test numpad_scan[] = { {.scan = 0x4b, .flags = KEYEVENTF_SCANCODE, .expect_state = {[VK_LEFT] = 0x80}, @@ -1288,6 +1307,8 @@ static void test_SendInput_keyboard_messages( WORD vkey, WORD scan, WCHAR wch, W check_send_input_keyboard_test( unicode, TRUE ); check_send_input_keyboard_test( lmenu_unicode_peeked, TRUE ); check_send_input_keyboard_test( unicode_vkey, TRUE ); + check_send_input_keyboard_test( unicode_vkey_ctrl, TRUE ); + check_send_input_keyboard_test( unicode_vkey_packet, TRUE ); check_send_input_keyboard_test( numpad_scan, TRUE ); check_send_input_keyboard_test( numpad_scan_numlock, TRUE ); winetest_pop_context(); @@ -1333,6 +1354,8 @@ static void test_SendInput_keyboard_messages( WORD vkey, WORD scan, WCHAR wch, W check_send_input_keyboard_test( unicode, FALSE ); check_send_input_keyboard_test( lmenu_unicode, FALSE ); check_send_input_keyboard_test( unicode_vkey, FALSE ); + check_send_input_keyboard_test( unicode_vkey_ctrl, FALSE ); + check_send_input_keyboard_test( unicode_vkey_packet, FALSE ); check_send_input_keyboard_test( numpad_scan, FALSE ); check_send_input_keyboard_test( numpad_scan_numlock, FALSE ); winetest_pop_context();