move mousekey tests

This commit is contained in:
Dasky 2024-10-23 21:49:32 +01:00
parent 0fe775fdf9
commit 8716256fba
4 changed files with 51 additions and 11 deletions

1
tests/mousekeys/test.mk Normal file
View File

@ -0,0 +1 @@
MOUSEKEY_ENABLE = yes

View File

@ -4,7 +4,6 @@
#include "gtest/gtest.h"
#include "mouse_report_util.hpp"
#include "test_common.hpp"
#include "test_pointing_device_driver.h"
using testing::_;
@ -16,10 +15,55 @@ struct MouseKeyExpectations {
uint16_t button_mask;
};
class Pointing : public TestFixture {};
class PointingKeycodesParametrizedTestFixture : public ::testing::WithParamInterface<std::pair<KeymapKey, MouseKeyExpectations>>, public Pointing {};
class Mousekey : public TestFixture {};
class MousekeyParametrized : public ::testing::WithParamInterface<std::pair<KeymapKey, MouseKeyExpectations>>, public Mousekey {};
TEST_P(PointingKeycodesParametrizedTestFixture, PointingMouseKeysViaPointingDriver) {
TEST_F(Mousekey, SendMouseNotCalledWhenNoKeyIsPressed) {
TestDriver driver;
EXPECT_NO_MOUSE_REPORT(driver);
run_one_scan_loop();
}
TEST_F(Mousekey, PressAndHoldCursorUpIsCorrectlyReported) {
TestDriver driver;
KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_UP};
set_keymap({mouse_key});
EXPECT_MOUSE_REPORT(driver, (0, -8, 0, 0, 0));
mouse_key.press();
run_one_scan_loop();
EXPECT_MOUSE_REPORT(driver, (0, -2, 0, 0, 0));
idle_for(MOUSEKEY_INTERVAL);
EXPECT_EMPTY_MOUSE_REPORT(driver);
mouse_key.release();
run_one_scan_loop();
VERIFY_AND_CLEAR(driver);
}
TEST_F(Mousekey, PressAndHoldButtonOneCorrectlyReported) {
TestDriver driver;
KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1};
set_keymap({mouse_key});
EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1));
mouse_key.press();
run_one_scan_loop();
idle_for(MOUSEKEY_INTERVAL);
EXPECT_EMPTY_MOUSE_REPORT(driver);
mouse_key.release();
run_one_scan_loop();
VERIFY_AND_CLEAR(driver);
}
TEST_P(MousekeyParametrized, PressAndReleaseIsCorrectlyReported) {
TestDriver driver;
KeymapKey mouse_key = GetParam().first;
MouseKeyExpectations expectations = GetParam().second;
@ -41,8 +85,8 @@ TEST_P(PointingKeycodesParametrizedTestFixture, PointingMouseKeysViaPointingDriv
}
// clang-format off
INSTANTIATE_TEST_CASE_P(
PointingMouseKeysOnlyTests,
PointingKeycodesParametrizedTestFixture,
Keys,
MousekeyParametrized,
::testing::Values(
// Key , X, Y, H, V, Buttons Mask
std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}, MouseKeyExpectations{ 0, 0, 0, 0, 1}),

View File

@ -1,5 +0,0 @@
POINTING_DEVICE_ENABLE = no
MOUSEKEY_ENABLE = yes
POINTING_DEVICE_DRIVER = custom