keyboard stuff
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
9using testing::_;
10
11const uint32_t PROGMEM unicode_map[] = {
12 0x03A8, // Ψ
13 0x2318 // ⌘
14};
15
16class UnicodeMap : public TestFixture {};
17
18TEST_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
31TEST_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}