forked from forks/qmk_firmware
* Fix Caps Word and Unicode Map
* Tests for Caps Word + Auto Shift and Unicode Map.
* Fix formatting
* Add additional keyboard report expectation macros
This commit defines five test utilities, EXPECT_REPORT, EXPECT_UNICODE,
EXPECT_EMPTY_REPORT, EXPECT_ANY_REPORT and EXPECT_NO_REPORT for use with
TestDriver.
EXPECT_REPORT sets a gmock expectation that a given keyboard report will
be sent. For instance,
EXPECT_REPORT(driver, (KC_LSFT, KC_A));
is shorthand for
EXPECT_CALL(driver,
send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A)));
EXPECT_UNICODE sets a gmock expectation that a given Unicode code point
will be sent using UC_LNX input mode. For instance for U+2013,
EXPECT_UNICODE(driver, 0x2013);
expects the sequence of keys:
"Ctrl+Shift+U, 2, 0, 1, 3, space".
EXPECT_EMPTY_REPORT sets a gmock expectation that a given keyboard
report will be sent. For instance
EXPECT_EMPTY_REPORT(driver);
expects a single report without keypresses or modifiers.
EXPECT_ANY_REPORT sets a gmock expectation that a arbitrary keyboard
report will be sent, without matching its contents. For instance
EXPECT_ANY_REPORT(driver).Times(1);
expects a single arbitrary keyboard report will be sent.
EXPECT_NO_REPORT sets a gmock expectation that no keyboard report will
be sent at all.
* Add tap_key() and tap_keys() to TestFixture.
This commit adds a `tap_key(key)` method to TestFixture that taps a
given KeymapKey, optionally with a specified delay between press and
release.
Similarly, the method `tap_keys(key_a, key_b, key_c)` taps a sequence of
KeymapKeys.
* Use EXPECT_REPORT, tap_keys, etc. in most tests.
This commit uses EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT,
EXPECT_NO_REPORT, tap_key() and tap_keys() test utilities from the
previous two commits in most tests. Particularly the EXPECT_REPORT
macro is frequently useful and makes a nice reduction in boilerplate
needed to express many tests.
Co-authored-by: David Kosorin <david@kosorin.net>
|
||
|---|---|---|
| .. | ||
| audio | ||
| backlight | ||
| bootmagic | ||
| debounce | ||
| encoder/tests | ||
| keymap_extras | ||
| led_matrix | ||
| logging | ||
| painter | ||
| process_keycode | ||
| rgb_matrix | ||
| rgblight | ||
| sequencer | ||
| split_common | ||
| action.c | ||
| action.h | ||
| action_code.h | ||
| action_layer.c | ||
| action_layer.h | ||
| action_tapping.c | ||
| action_tapping.h | ||
| action_util.c | ||
| action_util.h | ||
| bitwise.c | ||
| bitwise.h | ||
| caps_word.c | ||
| caps_word.h | ||
| color.c | ||
| color.h | ||
| command.c | ||
| command.h | ||
| config_common.h | ||
| crc.c | ||
| crc.h | ||
| debounce.h | ||
| deferred_exec.c | ||
| deferred_exec.h | ||
| digitizer.c | ||
| digitizer.h | ||
| dip_switch.c | ||
| dip_switch.h | ||
| dynamic_keymap.c | ||
| dynamic_keymap.h | ||
| dynamic_macro.h | ||
| eeconfig.c | ||
| eeconfig.h | ||
| encoder.c | ||
| encoder.h | ||
| haptic.c | ||
| haptic.h | ||
| joystick.c | ||
| joystick.h | ||
| keyboard.c | ||
| keyboard.h | ||
| keycode.h | ||
| keycode_config.c | ||
| keycode_config.h | ||
| keycode_legacy.h | ||
| keymap.h | ||
| keymap_common.c | ||
| led.c | ||
| led.h | ||
| led_tables.c | ||
| led_tables.h | ||
| main.c | ||
| matrix.c | ||
| matrix.h | ||
| matrix_common.c | ||
| mousekey.c | ||
| mousekey.h | ||
| pointing_device.c | ||
| pointing_device.h | ||
| pointing_device_drivers.c | ||
| programmable_button.c | ||
| programmable_button.h | ||
| quantum.c | ||
| quantum.h | ||
| quantum_keycodes.h | ||
| quantum_keycodes_legacy.h | ||
| raw_hid.h | ||
| ring_buffer.h | ||
| secure.c | ||
| secure.h | ||
| send_string.c | ||
| send_string.h | ||
| send_string_keycodes.h | ||
| sync_timer.c | ||
| sync_timer.h | ||
| utf8.c | ||
| utf8.h | ||
| util.h | ||
| variable_trace.c | ||
| variable_trace.h | ||
| velocikey.c | ||
| velocikey.h | ||
| via.c | ||
| via.h | ||
| via_ensure_keycode.h | ||
| virtser.h | ||
| wpm.c | ||
| wpm.h | ||