summary refs log tree commit diff
path: root/tests/secure/test_secure.cpp
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-06-05 11:15:11 +0200
committerQMK Bot <hello@qmk.fm>2022-06-05 11:15:11 +0200
commitd6402fe9fb01efae5c4952c1a3c07cd128e81eea (patch)
tree810fef1fc2ce6c7067d5c0daa0d90a09ef94b223 /tests/secure/test_secure.cpp
parent08c556b78b9dc672a2aa2388bbd3fdf408e3ce98 (diff)
parent95d20e6d8bb1ffaf3024af793daf789ee0b75727 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'tests/secure/test_secure.cpp')
-rw-r--r--tests/secure/test_secure.cpp81
1 files changed, 32 insertions, 49 deletions
diff --git a/tests/secure/test_secure.cpp b/tests/secure/test_secure.cpp
index b7c51b0bd2..6ca98d78f3 100644
--- a/tests/secure/test_secure.cpp
+++ b/tests/secure/test_secure.cpp
@@ -27,28 +27,13 @@ class Secure : public TestFixture {
     void SetUp() override {
         secure_lock();
     }
-    // Convenience function to tap `key`.
-    void TapKey(KeymapKey key) {
-        key.press();
-        run_one_scan_loop();
-        key.release();
-        run_one_scan_loop();
-    }
-
-    // Taps in order each key in `keys`.
-    template <typename... Ts>
-    void TapKeys(Ts... keys) {
-        for (KeymapKey key : {keys...}) {
-            TapKey(key);
-        }
-    }
 };
 
 TEST_F(Secure, test_lock) {
     TestDriver driver;
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(0);
+    // Don't allow empty reports.
+    EXPECT_NO_REPORT(driver);
 
     EXPECT_FALSE(secure_is_unlocked());
     secure_unlock();
@@ -64,8 +49,8 @@ TEST_F(Secure, test_lock) {
 TEST_F(Secure, test_unlock_timeout) {
     TestDriver driver;
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(0);
+    // Don't allow empty reports.
+    EXPECT_NO_REPORT(driver);
 
     EXPECT_FALSE(secure_is_unlocked());
     secure_unlock();
@@ -86,13 +71,13 @@ TEST_F(Secure, test_unlock_request) {
 
     set_keymap({key_mo, key_a, key_b, key_c, key_d});
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(0);
+    // Don't allow empty reports.
+    EXPECT_NO_REPORT(driver);
 
     EXPECT_TRUE(secure_is_locked());
     secure_request_unlock();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_b, key_c, key_d);
+    tap_keys(key_a, key_b, key_c, key_d);
     EXPECT_TRUE(secure_is_unlocked());
 
     testing::Mock::VerifyAndClearExpectations(&driver);
@@ -109,18 +94,18 @@ TEST_F(Secure, test_unlock_request_fail) {
     set_keymap({key_e, key_a, key_b, key_c, key_d});
 
     // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(AnyNumber());
+    EXPECT_EMPTY_REPORT(driver).Times(AnyNumber());
     { // Expect the following reports in this order.
         InSequence s;
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A)));
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B)));
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_C)));
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_D)));
+        EXPECT_REPORT(driver, (KC_A));
+        EXPECT_REPORT(driver, (KC_B));
+        EXPECT_REPORT(driver, (KC_C));
+        EXPECT_REPORT(driver, (KC_D));
     }
     EXPECT_TRUE(secure_is_locked());
     secure_request_unlock();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_e, key_a, key_b, key_c, key_d);
+    tap_keys(key_e, key_a, key_b, key_c, key_d);
     EXPECT_FALSE(secure_is_unlocked());
 
     testing::Mock::VerifyAndClearExpectations(&driver);
@@ -129,8 +114,8 @@ TEST_F(Secure, test_unlock_request_fail) {
 TEST_F(Secure, test_unlock_request_timeout) {
     TestDriver driver;
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(0);
+    // Don't allow empty reports.
+    EXPECT_NO_REPORT(driver);
 
     EXPECT_FALSE(secure_is_unlocked());
     secure_request_unlock();
@@ -153,16 +138,16 @@ TEST_F(Secure, test_unlock_request_fail_mid) {
     set_keymap({key_e, key_a, key_b, key_c, key_d});
 
     // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(AnyNumber());
+    EXPECT_EMPTY_REPORT(driver).Times(AnyNumber());
     { // Expect the following reports in this order.
         InSequence s;
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_C)));
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_D)));
+        EXPECT_REPORT(driver, (KC_C));
+        EXPECT_REPORT(driver, (KC_D));
     }
     EXPECT_FALSE(secure_is_unlocked());
     secure_request_unlock();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_b, key_e, key_c, key_d);
+    tap_keys(key_a, key_b, key_e, key_c, key_d);
     EXPECT_FALSE(secure_is_unlocking());
     EXPECT_FALSE(secure_is_unlocked());
 
@@ -180,16 +165,16 @@ TEST_F(Secure, test_unlock_request_fail_out_of_order) {
     set_keymap({key_e, key_a, key_b, key_c, key_d});
 
     // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(AnyNumber());
+    EXPECT_EMPTY_REPORT(driver).Times(AnyNumber());
     { // Expect the following reports in this order.
         InSequence s;
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B)));
-        EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_C)));
+        EXPECT_REPORT(driver, (KC_B));
+        EXPECT_REPORT(driver, (KC_C));
     }
     EXPECT_FALSE(secure_is_unlocked());
     secure_request_unlock();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_d, key_b, key_c);
+    tap_keys(key_a, key_d, key_b, key_c);
     EXPECT_TRUE(secure_is_locked());
     EXPECT_FALSE(secure_is_unlocking());
     EXPECT_FALSE(secure_is_unlocked());
@@ -207,8 +192,8 @@ TEST_F(Secure, test_unlock_request_on_layer) {
 
     set_keymap({key_mo, key_a, key_b, key_c, key_d});
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(0);
+    // Don't allow empty reports.
+    EXPECT_NO_REPORT(driver);
 
     EXPECT_TRUE(secure_is_locked());
     key_mo.press();
@@ -217,7 +202,7 @@ TEST_F(Secure, test_unlock_request_on_layer) {
     key_mo.release();
     run_one_scan_loop();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_b, key_c, key_d);
+    tap_keys(key_a, key_b, key_c, key_d);
     EXPECT_TRUE(secure_is_unlocked());
     EXPECT_FALSE(layer_state_is(1));
 
@@ -234,9 +219,8 @@ TEST_F(Secure, test_unlock_request_mid_stroke) {
 
     set_keymap({key_e, key_a, key_b, key_c, key_d});
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_E)));
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
+    EXPECT_REPORT(driver, (KC_E));
+    EXPECT_EMPTY_REPORT(driver);
     EXPECT_TRUE(secure_is_locked());
     key_e.press();
     run_one_scan_loop();
@@ -244,7 +228,7 @@ TEST_F(Secure, test_unlock_request_mid_stroke) {
     key_e.release();
     run_one_scan_loop();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_b, key_c, key_d);
+    tap_keys(key_a, key_b, key_c, key_d);
     EXPECT_TRUE(secure_is_unlocked());
 
     testing::Mock::VerifyAndClearExpectations(&driver);
@@ -260,9 +244,8 @@ TEST_F(Secure, test_unlock_request_mods) {
 
     set_keymap({key_lsft, key_a, key_b, key_c, key_d});
 
-    // Allow any number of empty reports.
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(key_lsft.report_code)));
-    EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport()));
+    EXPECT_REPORT(driver, (key_lsft.report_code));
+    EXPECT_EMPTY_REPORT(driver);
     EXPECT_TRUE(secure_is_locked());
     key_lsft.press();
     run_one_scan_loop();
@@ -270,7 +253,7 @@ TEST_F(Secure, test_unlock_request_mods) {
     key_lsft.release();
     run_one_scan_loop();
     EXPECT_TRUE(secure_is_unlocking());
-    TapKeys(key_a, key_b, key_c, key_d);
+    tap_keys(key_a, key_b, key_c, key_d);
     EXPECT_TRUE(secure_is_unlocked());
 
     testing::Mock::VerifyAndClearExpectations(&driver);