Sebastian Lackner : user32/tests: Add tests for ToAscii.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Apr 6 10:34:18 CDT 2015
Module: wine
Branch: master
Commit: 26c9ce5d0b10493cf5acaed0d6d5604331302655
URL: http://source.winehq.org/git/wine.git/?a=commit;h=26c9ce5d0b10493cf5acaed0d6d5604331302655
Author: Sebastian Lackner <sebastian at fds-team.de>
Date: Mon Apr 6 10:27:29 2015 +0200
user32/tests: Add tests for ToAscii.
---
dlls/user32/tests/input.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 6f20496..faf9c8c 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -1604,6 +1604,53 @@ static void test_ToUnicode(void)
ok(ret == 0, "ToUnicodeEx with NULL keystate didn't return 0 (was %i)\n", ret);
}
+static void test_ToAscii(void)
+{
+ WORD character;
+ BYTE state[256];
+ const BYTE SC_RETURN = 0x1c, SC_A = 0x1e;
+ const BYTE HIGHEST_BIT = 0x80;
+ int ret;
+
+ memset(state, 0, sizeof(state));
+
+ character = 0;
+ ret = ToAscii(VK_RETURN, SC_RETURN, state, &character, 0);
+ ok(ret == 1, "ToAscii for Return key didn't return 1 (was %i)\n", ret);
+ ok(character == '\r', "ToAscii for Return was %i (expected 13)\n", character);
+
+ character = 0;
+ ret = ToAscii('A', SC_A, state, &character, 0);
+ ok(ret == 1, "ToAscii for character 'A' didn't return 1 (was %i)\n", ret);
+ ok(character == 'a', "ToAscii for character 'A' was %i (expected %i)\n", character, 'a');
+
+ state[VK_CONTROL] |= HIGHEST_BIT;
+ state[VK_LCONTROL] |= HIGHEST_BIT;
+ character = 0;
+ ret = ToAscii(VK_RETURN, SC_RETURN, state, &character, 0);
+ ok(ret == 1, "ToAscii for CTRL + Return key didn't return 1 (was %i)\n", ret);
+ ok(character == '\n', "ToAscii for CTRL + Return was %i (expected 10)\n", character);
+
+ character = 0;
+ ret = ToAscii('A', SC_A, state, &character, 0);
+ ok(ret == 1, "ToAscii for CTRL + character 'A' didn't return 1 (was %i)\n", ret);
+ ok(character == 1, "ToAscii for CTRL + character 'A' was %i (expected 1)\n", character);
+
+ state[VK_SHIFT] |= HIGHEST_BIT;
+ state[VK_LSHIFT] |= HIGHEST_BIT;
+ ret = ToAscii(VK_RETURN, SC_RETURN, state, &character, 0);
+ todo_wine ok(ret == 0, "ToAscii for CTRL + Shift + Return key didn't return 0 (was %i)\n", ret);
+
+ ret = ToAscii(VK_RETURN, SC_RETURN, NULL, &character, 0);
+ ok(ret == 0, "ToAscii for NULL keystate didn't return 0 (was %i)\n", ret);
+ ret = ToAscii('A', SC_A, NULL, &character, 0);
+ ok(ret == 0, "ToAscii for NULL keystate didn't return 0 (was %i)\n", ret);
+ ret = ToAsciiEx(VK_RETURN, SC_RETURN, NULL, &character, 0, GetKeyboardLayout(0));
+ ok(ret == 0, "ToAsciiEx for NULL keystate didn't return 0 (was %i)\n", ret);
+ ret = ToAsciiEx('A', SC_A, NULL, &character, 0, GetKeyboardLayout(0));
+ ok(ret == 0, "ToAsciiEx for NULL keystate didn't return 0 (was %i)\n", ret);
+}
+
static void test_get_async_key_state(void)
{
/* input value sanity checks */
@@ -1995,6 +2042,7 @@ START_TEST(input)
test_mouse_ll_hook();
test_key_map();
test_ToUnicode();
+ test_ToAscii();
test_get_async_key_state();
test_keyboard_layout_name();
test_key_names();
More information about the wine-cvs
mailing list