1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #pragma once
- #include <cstdint>
- #include <unordered_map>
- #include <optional>
- #include "gtest/gtest.h"
- #include "keyboard.h"
- #include "test_keymap_key.hpp"
- class TestFixture : public testing::Test {
- public:
- static TestFixture* m_this;
- TestFixture();
- ~TestFixture();
- static void SetUpTestCase();
- static void TearDownTestCase();
- void set_keymap(std::initializer_list<KeymapKey> keycodes);
- void add_key(const KeymapKey key);
- const KeymapKey* find_key(const layer_t layer_t, const keypos_t position) const;
- void get_keycode(const layer_t layer, const keypos_t position, uint16_t* result) const;
-
- void tap_key(KeymapKey key, unsigned delay_ms = 1);
-
- template <typename... Ts>
- void tap_keys(Ts... keys) {
- for (KeymapKey key : {keys...}) {
- tap_key(key);
- }
- }
-
- void tap_combo(const std::vector<KeymapKey>& chord_keys, unsigned delay_ms = 1);
- void run_one_scan_loop();
- void idle_for(unsigned ms);
- void expect_layer_state(layer_t layer) const;
- protected:
- void print_test_log() const;
- std::vector<KeymapKey> keymap;
- };
|