|
| 1 | +/* |
| 2 | + src/learn - tests for modifier-aware key names |
| 3 | +
|
| 4 | + Copyright (C) 2026 |
| 5 | + Free Software Foundation, Inc. |
| 6 | +*/ |
| 7 | + |
| 8 | +#define TEST_SUITE_NAME "/src/learn" |
| 9 | + |
| 10 | +#include "tests/mctest.h" |
| 11 | + |
| 12 | +#include "lib/tty/key.h" |
| 13 | + |
| 14 | +#include "src/learn.c" |
| 15 | + |
| 16 | +/* --------------------------------------------------------------------------------------------- */ |
| 17 | + |
| 18 | +START_TEST (test_learn_build_key_name_without_modifiers) |
| 19 | +{ |
| 20 | + char *name; |
| 21 | + |
| 22 | + name = learn_build_key_name ("up", 0); |
| 23 | + mctest_assert_str_eq (name, "up"); |
| 24 | + g_free (name); |
| 25 | +} |
| 26 | +END_TEST |
| 27 | + |
| 28 | +/* --------------------------------------------------------------------------------------------- */ |
| 29 | + |
| 30 | +START_TEST (test_learn_build_key_name_single_modifiers) |
| 31 | +{ |
| 32 | + char *name; |
| 33 | + |
| 34 | + name = learn_build_key_name ("f9", KEY_M_CTRL); |
| 35 | + mctest_assert_str_eq (name, "ctrl-f9"); |
| 36 | + g_free (name); |
| 37 | + |
| 38 | + name = learn_build_key_name ("right", KEY_M_ALT); |
| 39 | + mctest_assert_str_eq (name, "meta-right"); |
| 40 | + g_free (name); |
| 41 | + |
| 42 | + name = learn_build_key_name ("left", KEY_M_SHIFT); |
| 43 | + mctest_assert_str_eq (name, "shift-left"); |
| 44 | + g_free (name); |
| 45 | +} |
| 46 | +END_TEST |
| 47 | + |
| 48 | +/* --------------------------------------------------------------------------------------------- */ |
| 49 | + |
| 50 | +START_TEST (test_learn_build_key_name_combined_modifiers) |
| 51 | +{ |
| 52 | + char *name; |
| 53 | + |
| 54 | + name = learn_build_key_name ("up", KEY_M_CTRL | KEY_M_SHIFT); |
| 55 | + mctest_assert_str_eq (name, "ctrl-shift-up"); |
| 56 | + g_free (name); |
| 57 | + |
| 58 | + name = learn_build_key_name ("pgdn", KEY_M_CTRL | KEY_M_ALT | KEY_M_SHIFT); |
| 59 | + mctest_assert_str_eq (name, "ctrl-meta-shift-pgdn"); |
| 60 | + g_free (name); |
| 61 | +} |
| 62 | +END_TEST |
| 63 | + |
| 64 | +/* --------------------------------------------------------------------------------------------- */ |
| 65 | + |
| 66 | +int |
| 67 | +main (void) |
| 68 | +{ |
| 69 | + TCase *tc_core; |
| 70 | + |
| 71 | + tc_core = tcase_create ("Core"); |
| 72 | + tcase_add_test (tc_core, test_learn_build_key_name_without_modifiers); |
| 73 | + tcase_add_test (tc_core, test_learn_build_key_name_single_modifiers); |
| 74 | + tcase_add_test (tc_core, test_learn_build_key_name_combined_modifiers); |
| 75 | + |
| 76 | + return mctest_run_all (tc_core); |
| 77 | +} |
0 commit comments