forked from mirrors/qmk_userspace
		
	Tests that caps word stays active after use of OSL (#19303)
This commit is contained in:
		
					parent
					
						
							
								008f1312bb
							
						
					
				
			
			
				commit
				
					
						454edf68d1
					
				
			
		
					 1 changed files with 52 additions and 1 deletions
				
			
		| 
						 | 
					@ -591,6 +591,57 @@ INSTANTIATE_TEST_CASE_P(
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
    CapsWordDoubleTapShiftParams::GetName
 | 
					    CapsWordDoubleTapShiftParams::GetName
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
// clang-format on
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Tests that holding a OSL keeps caps word active and shifts keys on the layer that need to be shifted.
 | 
				
			||||||
 | 
					TEST_F(CapsWord, IgnoresOSLHold) {
 | 
				
			||||||
 | 
					    TestDriver driver;
 | 
				
			||||||
 | 
					    KeymapKey key_a(0, 0, 0, KC_A);
 | 
				
			||||||
 | 
					    KeymapKey key_osl(0, 1, 0, OSL(1));
 | 
				
			||||||
 | 
					    KeymapKey key_b(1, 0, 0, KC_B);
 | 
				
			||||||
 | 
					    set_keymap({key_a, key_osl, key_b});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Allow any number of reports with no keys or only modifiers.
 | 
				
			||||||
 | 
					    // clang-format off
 | 
				
			||||||
 | 
					    EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
 | 
				
			||||||
 | 
					                KeyboardReport(),
 | 
				
			||||||
 | 
					                KeyboardReport(KC_LSFT))))
 | 
				
			||||||
 | 
					        .Times(AnyNumber());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    EXPECT_REPORT(driver, (KC_LSFT, KC_B));
 | 
				
			||||||
 | 
					    caps_word_on();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    key_osl.press();
 | 
				
			||||||
 | 
					    run_one_scan_loop();
 | 
				
			||||||
 | 
					    tap_key(key_b);
 | 
				
			||||||
 | 
					    key_osl.release();
 | 
				
			||||||
 | 
					    run_one_scan_loop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testing::Mock::VerifyAndClearExpectations(&driver);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Tests that tapping a OSL keeps caps word active and shifts keys on the layer that need to be shifted.
 | 
				
			||||||
 | 
					TEST_F(CapsWord, IgnoresOSLTap) {
 | 
				
			||||||
 | 
					    TestDriver driver;
 | 
				
			||||||
 | 
					    KeymapKey key_a(0, 0, 0, KC_A);
 | 
				
			||||||
 | 
					    KeymapKey key_osl(0, 1, 0, OSL(1));
 | 
				
			||||||
 | 
					    KeymapKey key_b(1, 0, 0, KC_B);
 | 
				
			||||||
 | 
					    set_keymap({key_a, key_osl, key_b});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Allow any number of reports with no keys or only modifiers.
 | 
				
			||||||
 | 
					    // clang-format off
 | 
				
			||||||
 | 
					    EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
 | 
				
			||||||
 | 
					                KeyboardReport(),
 | 
				
			||||||
 | 
					                KeyboardReport(KC_LSFT))))
 | 
				
			||||||
 | 
					        .Times(AnyNumber());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    EXPECT_REPORT(driver, (KC_LSFT, KC_B));
 | 
				
			||||||
 | 
					    caps_word_on();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    tap_key(key_osl);
 | 
				
			||||||
 | 
					    tap_key(key_b);
 | 
				
			||||||
 | 
					    run_one_scan_loop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    testing::Mock::VerifyAndClearExpectations(&driver);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// clang-format on
 | 
				
			||||||
} // namespace
 | 
					} // namespace
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue