qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

test_unicode_map.cpp (1128B)


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