12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "keyboard_report_util.hpp"
- #include "keycode.h"
- #include "test_common.hpp"
- #include "action_tapping.h"
- #include "test_fixture.hpp"
- #include "test_keymap_key.hpp"
- using testing::_;
- using testing::InSequence;
- class AutoShift : public TestFixture {};
- TEST_F(AutoShift, key_release_before_timeout) {
- TestDriver driver;
- InSequence s;
- auto regular_key = KeymapKey(0, 2, 0, KC_A);
- set_keymap({regular_key});
-
- EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0);
- regular_key.press();
- run_one_scan_loop();
- testing::Mock::VerifyAndClearExpectations(&driver);
-
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A)));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
- regular_key.release();
- run_one_scan_loop();
- testing::Mock::VerifyAndClearExpectations(&driver);
- }
- TEST_F(AutoShift, key_release_after_timeout) {
- TestDriver driver;
- InSequence s;
- auto regular_key = KeymapKey(0, 2, 0, KC_A);
- set_keymap({regular_key});
-
- EXPECT_CALL(driver, send_keyboard_mock(_)).Times(0);
- regular_key.press();
- idle_for(AUTO_SHIFT_TIMEOUT);
- testing::Mock::VerifyAndClearExpectations(&driver);
-
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A)));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT)));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
- EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
- regular_key.release();
- run_one_scan_loop();
- testing::Mock::VerifyAndClearExpectations(&driver);
- }
|