test_keycode_util.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2022 Stefan Kerkmann
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "test_common.hpp"
  4. class KeycodeToIdentifierSuite : public ::testing::TestWithParam<std::pair<std::uint16_t, std::string>> {};
  5. TEST_P(KeycodeToIdentifierSuite, ConversionTests) {
  6. ASSERT_EQ(get_keycode_identifier_or_default(GetParam().first), GetParam().second);
  7. }
  8. INSTANTIATE_TEST_CASE_P(ConversionTestsP, KeycodeToIdentifierSuite,
  9. // clang-format off
  10. ::testing::Values(
  11. // Goto layer
  12. std::make_pair(TO(0), "TO(0)"),
  13. std::make_pair(TO(0x1F), "TO(31)"),
  14. // Momentary switch layer
  15. std::make_pair(MO(0), "MO(0)"),
  16. std::make_pair(MO(0x1F), "MO(31)"),
  17. // Set default layer
  18. std::make_pair(DF(0), "DF(0)"),
  19. std::make_pair(DF(0x1F), "DF(31)"),
  20. // Toggle layer
  21. std::make_pair(TG(0), "TG(0)"),
  22. std::make_pair(TG(0x1F), "TG(31)"),
  23. // One-shot layer
  24. std::make_pair(OSL(0), "OSL(0)"),
  25. std::make_pair(OSL(0x1F), "OSL(31)"),
  26. // One-shot mod
  27. std::make_pair(OSM(MOD_LSFT), "OSM(MOD_LSFT)"),
  28. std::make_pair(OSM(MOD_LSFT | MOD_LCTL), "OSM(MOD_LCTL | MOD_LSFT)"),
  29. // Layer Mod
  30. std::make_pair(LM(0, MOD_LSFT), "LM(0, MOD_LSFT)"),
  31. std::make_pair(LM(0xF, MOD_LSFT), "LM(15, MOD_LSFT)"),
  32. std::make_pair(LM(0xF, MOD_LSFT | MOD_LCTL), "LM(15, MOD_LCTL | MOD_LSFT)"),
  33. // Layer tap toggle
  34. std::make_pair(TT(0), "TT(0)"),
  35. std::make_pair(TT(0x1F), "TT(31)"),
  36. // Layer tap
  37. std::make_pair(LT(0, KC_A), "LT(0, KC_A)"),
  38. std::make_pair(LT(0xF, KC_SPACE), "LT(15, KC_SPACE)"),
  39. std::make_pair(LT(1, KC_SPC), "LT(1, KC_SPACE)"),
  40. // Mod tap
  41. std::make_pair(MT(MOD_LCTL, KC_A), "MT(MOD_LCTL, KC_A)"),
  42. std::make_pair(MT(MOD_LCTL | MOD_LSFT, KC_A), "MT(MOD_LCTL | MOD_LSFT, KC_A)"),
  43. std::make_pair(ALT_T(KC_TAB), "MT(MOD_LALT, KC_TAB)"),
  44. // Mods
  45. std::make_pair(LCTL(KC_A), "QK_MODS(KC_A, QK_LCTL)"),
  46. std::make_pair(HYPR(KC_SPACE), "QK_MODS(KC_SPACE, QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI)")
  47. ));
  48. // clang-format on