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 }