-
-
Notifications
You must be signed in to change notification settings - Fork 135
Description
On Windows 10 and Windows 11 there are some TSF or complaint apps where the Caps Lock stores CapsOnOnly and ShiftFreesCaps do not work. This needs to be investigated and fixes applied.
See this spreadsheet for a start and the following acceptance test cases should all pass.
This forum post may be a deffernt occurance of the same root problem https://community.software.sil.org/t/keyman-problems-with-the-capslock-key/
-- Taken from user acceptance tests User Testing
SUITE_CAPSLOCK:
- GROUP_WIN11_ARM
- GROUP_WIN11_X86
Caps Lock
The test keyboard layouts are found in the keyman repo at app/windows/src/test/manual-tests/caps-lock-stores. There is a project file for the 3 keyboards used in this test. The project file can be used to build the keyboard packages, but you can conveniently use the .kmp file zipped and included respectively below.
The test cases below expect the usage of the capslock.kmp.zip keyboard. That keyboard outputs pass or fail if following the test cases.
Prerequisites before each test
- System keyboard layout is en-US
- Install a keyboard that doesn't use any of the caps lock stores, e.g.
capslock.kmp. - CapsLock is currently on
- Currently active keyboard is the capslock.kmp keyboard
Test cases
click to expand
-
TEST_CAPSLOCK-1: uppercase with virtual key
- press and release
a
Expected result:
pass.(with other keyboards uppercaseA)
- press and release
-
TEST_CAPSLOCK-2: lowercase with virtual key
- press and hold 'Shift'
- press and release
b - release
Shift
Expected result:
pass.(with other keyboards lowercaseb)
-
TEST_CAPSLOCK-3: capslock ignored for numbers
- press and hold 'Shift'
- press and release
3 - release
Shift
Expected result:
pass.(with other keyboards#)
-
TEST_CAPSLOCK-4: uppercase
- press and release
c
Expected result:
pass.(with other keyboards uppercaseC)
- press and release
-
TEST_CAPSLOCK-5: lowercase
- press and hold 'Shift'
- press and release
d - release
Shift
Expected result:
pass.(with other keyboards lowercased)
CapsAlwaysOff
For these tests, use a keyboard with the caps_always_off.kmp.zip store set. We call this keyboard capsalwaysoff below.
Any keyboard with that store set will work; if you don't have one at hand you can use the caps_always_off.kmp keyboard. The caps_always_off.kmp keyboard will prevent switching caps lock on. As a sanity check to verify that Keyman is actually active, pressing the key a will output ncaps_little_a, and Shift+a will output ncaps_shift_A.
Note: When testing in a virtual machine, use an on-screen keyboard (in VirtualBox: Input/Keyboard/Soft Keyboard) and observe the caps lock indicator of the on-screen keyboard. Using the hardware keyboard might show side effects with caps lock.
Prerequisites before each test
- Install a keyboard that has
CapsAlwaysOffstore set, e.g.caps_always_off.kmp. - CapsLock is currently off
- Currently active keyboard is a non-Keyman keyboard
Test cases
click to expand
-
TEST_CAPSOFF-1: sanity check
- switch to capsalwaysoff keyboard
- press and release
a
Expected result:
- output:
ncaps_little_a
-
TEST_CAPSOFF-2: caps lock stays off
- switch to capsalwaysoff keyboard
- press and release
CapsLockkey - press and release
a
Expected result:
- caps lock indicator turns off once key pressed
- output:
ncaps_little_a
-
TEST_CAPSOFF-3: no caps lock while holding capslock key
- switch to capsalwaysoff keyboard
- press and hold
CapsLockkey - press and release
a - release
CapsLockkey
Expected result:
- output:
ncaps_little_a
-
TEST_CAPSOFF-4: no caps lock while holding capslock key
- switch to capsalwaysoff keyboard
- press and hold
CapsLockkey - press and hold
Shiftkey - press and release
a - release
CapsLockandShiftkeys
Expected result:
- output:
ncaps_shift_A
-
TEST_CAPSOFF-5: switching turns off caps lock
- turn on caps lock
- switch to capsalwaysoff keyboard
- press and release
a
Expected result:
- caps lock indicator turned off
- output:
ncaps_little_a
SHIFT: CapsOnOnly/ShiftFreesCaps
For these tests, use a keyboard with the CapsOnOnly and ShiftFreesCaps stores set. We call this keyboard shift_frees_caps below.
Any keyboard with these stores set will work; if you don't have one at hand you can use the shift_frees_caps.kmp.zip keyboard.
The shift_frees_caps.kmp keyboard will enable caps lock by pressing the CapsLock key, and will turn capslock off by pressing the Shift key. The keyboard outputs pass or fail if following the test cases.
Note: When testing in a virtual machine, use an on-screen keyboard (in VirtualBox: Input/Keyboard/Soft Keyboard) and observe the caps lock indicator of the on-screen keyboard. Using the hardware keyboard might show side effects with caps lock. Except for TEST_CAPSONLY-5 which can only be reliably tested on a hardware keyboard on host OS (not a VM). For windows 10 and windows 11 with a virtual box vm-onscreen keyboard, the following happens. The VM soft keyboard does NOT actually send the Shift Shift Key Stroke through but rather will change the keys pressed for example if an a is pressed the soft keyboard itself will change that key to a A. This means we can't Test TEST_CAPONLY-5 on a soft keyboard.
Prerequisites before each test
- Install a keyboard that has the
CapsOnOnlyandShiftFreesCapsstores set, e.g.
shift_frees_caps.kmp. - CapsLock is currently off
- Currently active keyboard is shift_frees_caps keyboard
Test cases
click to expand
-
TEST_CAPSONLY-1: no caps
- press and release
1
Expected result:
- output:
pass.
- press and release
-
TEST_CAPSONLY-2: caps
- press and release
CapsLock - press and release
2
Expected result:
- caps lock indicator turned on
- output:
pass.
- press and release
-
TEST_CAPSONLY-3: caps doesn't toggle
- press and release
CapsLock - press and release
CapsLock - press and release
6
Expected result:
- caps lock indicator turned on
- output:
pass.
- press and release
-
TEST_CAPSONLY-4: shift turns off
- press and release
CapsLock - press and hold
Shift - press and release
3 - release
Shift
Expected result:
- caps lock indicator turned off
- output:
pass.
- press and release
-
TEST_CAPSONLY-5: shift by itself turns off
Be aware of limitations when testing this on virtual machines as noted above.- press and release
CapsLock - press and release
Shift
Expected result:
- caps lock indicator turned off
- (no output)
- press and release