logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

test_unicode_map.cpp (1128B)


  1. // Copyright 2023 QMK
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "keyboard_report_util.hpp"
  4. #include "keycode.h"
  5. #include "test_common.hpp"
  6. #include "test_keymap_key.hpp"
  7. using testing::_;
  8. const uint32_t PROGMEM unicode_map[] = {
  9. 0x03A8, // Ψ
  10. 0x2318 // ⌘
  11. };
  12. class UnicodeMap : public TestFixture {};
  13. TEST_F(UnicodeMap, sends_unicodemap_code_point_from_keycode) {
  14. TestDriver driver;
  15. auto key_um = KeymapKey(0, 0, 0, UM(0));
  16. set_keymap({key_um});
  17. EXPECT_UNICODE(driver, 0x03A8);
  18. tap_key(key_um);
  19. VERIFY_AND_CLEAR(driver);
  20. }
  21. TEST_F(UnicodeMap, sends_unicodemap_pair_from_keycode) {
  22. TestDriver driver;
  23. auto key_shift = KeymapKey(0, 0, 0, KC_LEFT_SHIFT);
  24. auto key_up = KeymapKey(0, 1, 0, UP(0, 1));
  25. set_keymap({key_shift, key_up});
  26. EXPECT_UNICODE(driver, 0x03A8);
  27. tap_key(key_up);
  28. EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
  29. key_shift.press();
  30. run_one_scan_loop();
  31. EXPECT_UNICODE(driver, 0x2318);
  32. tap_key(key_up);
  33. EXPECT_NO_REPORT(driver);
  34. key_shift.release();
  35. run_one_scan_loop();
  36. VERIFY_AND_CLEAR(driver);
  37. }