diff options
author | Isaac Elenbaas <isaacelenbaas@gmail.com> | 2023-09-24 22:45:49 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-25 12:45:49 +1000 |
commit | dd94877ec6d2ee5c4cdb0e71287abd76585b0268 (patch) | |
tree | 26ded3ce8338286243d1b59d597f41329fea6ef4 /tests/caps_word/caps_word_unicodemap | |
parent | 1fb02d5ad87e69d459ae63235bbb3057083866ef (diff) |
Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases (#15889)
Diffstat (limited to 'tests/caps_word/caps_word_unicodemap')
-rw-r--r-- | tests/caps_word/caps_word_unicodemap/config.h | 20 | ||||
-rw-r--r-- | tests/caps_word/caps_word_unicodemap/test.mk | 18 | ||||
-rw-r--r-- | tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp | 121 |
3 files changed, 0 insertions, 159 deletions
diff --git a/tests/caps_word/caps_word_unicodemap/config.h b/tests/caps_word/caps_word_unicodemap/config.h deleted file mode 100644 index 0f770337b1..0000000000 --- a/tests/caps_word/caps_word_unicodemap/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2022 Google LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -#pragma once - -#include "test_common.h" - -#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX diff --git a/tests/caps_word/caps_word_unicodemap/test.mk b/tests/caps_word/caps_word_unicodemap/test.mk deleted file mode 100644 index 92bcba762c..0000000000 --- a/tests/caps_word/caps_word_unicodemap/test.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2022 Google LLC -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -CAPS_WORD_ENABLE = yes -UNICODEMAP_ENABLE = yes - diff --git a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp b/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp deleted file mode 100644 index 21e5493526..0000000000 --- a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2022 Google LLC -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -#include "keyboard_report_util.hpp" -#include "keycode.h" -#include "test_common.hpp" -#include "test_fixture.hpp" -#include "test_keymap_key.hpp" - -using ::testing::_; -using ::testing::AnyNumber; -using ::testing::AnyOf; -using ::testing::InSequence; - -extern "C" { -enum unicode_names { - ENDASH, - EMDASH, - DELTA_LOWERCASE, - DELTA_UPPERCASE, -}; - -const uint32_t unicode_map[] PROGMEM = { - [ENDASH] = 0x2013, - [EMDASH] = 0x2014, - [DELTA_LOWERCASE] = 0x03b4, - [DELTA_UPPERCASE] = 0x0394, -}; - -#define U_DASH UP(ENDASH, EMDASH) -#define U_DELTA UP(DELTA_LOWERCASE, DELTA_UPPERCASE) - -bool caps_word_press_user(uint16_t keycode) { - switch (keycode) { - // Keycodes that continue Caps Word, with shift applied. - case U_DELTA: - add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key. - return true; - - // Keycodes that continue Caps Word, without shifting. - case U_DASH: - return true; - - default: - return false; // Deactivate Caps Word. - } -} -} // extern "C" - -class CapsWord : public TestFixture { - public: - void SetUp() override { - caps_word_off(); - } -}; - -// Tests that typing U_DELTA while Caps Word is on sends the uppercase Delta. -TEST_F(CapsWord, ShiftedUnicodeMapKey) { - TestDriver driver; - KeymapKey key_delta(0, 0, 0, U_DELTA); - KeymapKey key_spc(0, 1, 0, KC_SPC); - set_keymap({key_delta, key_spc}); - - // Allow any number of reports with no keys or only KC_LSFT and KC_LCTL. - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(), - KeyboardReport(KC_LSFT), - KeyboardReport(KC_LCTL, KC_LSFT)))) - .Times(AnyNumber()); - // clang-format on - { // Expect: "Uppercase Delta, space, lowercase delta". - InSequence s; - EXPECT_UNICODE(driver, unicode_map[DELTA_UPPERCASE]); - EXPECT_REPORT(driver, (KC_SPC)); - EXPECT_UNICODE(driver, unicode_map[DELTA_LOWERCASE]); - } - - // Turn on Caps Word and tap "delta, space, delta". - caps_word_on(); - tap_keys(key_delta, key_spc, key_delta); - - EXPECT_EQ(is_caps_word_on(), false); - VERIFY_AND_CLEAR(driver); -} - -// Tests typing U_ENDASH while Caps Word is on. -TEST_F(CapsWord, UnshiftedUnicodeMapKey) { - TestDriver driver; - KeymapKey key_dash(0, 0, 0, U_DASH); - set_keymap({key_dash}); - - // Allow any number of reports with no keys or only KC_LSFT and KC_LCTL. - // clang-format off - EXPECT_CALL(driver, send_keyboard_mock(AnyOf( - KeyboardReport(), - KeyboardReport(KC_LSFT), - KeyboardReport(KC_LCTL, KC_LSFT)))) - .Times(AnyNumber()); - // clang-format on - EXPECT_UNICODE(driver, unicode_map[ENDASH]); - - // Turn on Caps Word and tap U_DASH key. - caps_word_on(); - tap_key(key_dash); - - EXPECT_EQ(is_caps_word_on(), true); - VERIFY_AND_CLEAR(driver); -} |