-
-
Notifications
You must be signed in to change notification settings - Fork 111
Platform Acceptance Test for iOS
These acceptance tests are now deprecated as the source for formal testing. Formal testing is done against regression tests stored in a test suite managed by the test team. Developers can update acceptance tests here on the wiki, however, if the developer recommends a test needs to be added to the formal tests contact the test team.
- These test procedures are to be run before moving from alpha to beta, or beta to stable, or before PRs are merged into stable branches.
- Copy these tests into a new issue (for tier transitions) or a comment on the PR.
- When annotating results, use
>
at the start of a new line under the checkbox to note the result. (For an example, see #3973).
- Record device's iOS version
- Ensure the device is properly configured for testing and is registered with TestFlight.
At this time, Keyman for iOS does not support external keyboard input.
- Uninstall previous version of Keyman on the device (on a simulator, "Erase All Content and Settings..." under Device menu)
- Install test build IPA (on a simulator, "iOS Simulator Image")
- Disable internet connectivity of the device
- Start Keyman and select Add a keyboard for your language
- Verify error message "Could not reach Keyman server!" or "The Internet connection appears to be offline." is displayed
- Click OK to dismiss. Close Keyman app
- On device, enable internet connectivity
- Start Keyman
- On initial Get Started menu, select "Enable Keyman as system-wide keyboard" and do any necessary system steps to enable Keyman
- TEST_BUILD_STATUS: Verify latest CI build of master is successful
- TEST_VERIFY_HISTORY: Verify
history.md
contains all the current changes - TEST_VERIFY_UNIT_TESTS: Verify that all unit tests for iOS are currently passing.
- May be integrated with the first step above once our usual CI processes include the iOS unit tests.
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
- GROUP_IPAD_PORTRAIT: portrait mode in iPad
- GROUP_IPAD_LANDSCAPE: landscape mode in iPad
-
TEST_GET_STARTED: Get Started
- Verify touching Add a keyboard for your language pulls up the keyboard search
- This should also be accessible as Settings > Installed Languages >
+
.
- This should also be accessible as Settings > Installed Languages >
- Verify touching Enable Keyman as system-wide keyboard pulls up Keyman's menu within iOS settings. (11.0+ devices)
- If older versions of iOS are supported, ensure that the help page for doing it manually is properly linked.
- Verify touching More info brings up an accurate version and the main table-of-contents help page.
- This should also be accessible as Info from the main menu dropdown (on phones) or as the circled-i button (on tablets).
- Set Don't show again to checked, close and re-open Keyman, and verify Get Started menu does not appear
- Verify touching Add a keyboard for your language pulls up the keyboard search
-
TEST_ADD_NEW_KEYBOARD: Add New Keyboard This menu is accessed via Get Started menu or Settings menu
- On the device, enable internet connectivity
- Verify a new keyboard can be downloaded and selected, say "US Basic"
- Return to the text input screen and confirm that it operates correctly.
- Without changing selected language, confirm that it can be cleanly deleted via the Settings menu.
- Confirm that another keyboard is correctly selected afterward.
-
TEST_ADD_NEW_KEYBOARD_FROM_FILE:
- On the device, go to keyman.com on Safari
- Search for "US Basic"
- scroll down to keyboard details and tap to download the keyboard package (i.e.
.kmp
file) - open Files app and navigate to Download folder to find "basic_kbdus.kmp" and tap on it to start the installation processes
- Keyman app should be pulled up
- follow the screen to finish the keyboard installation
- verity that the keyboard is correctly installed and working as expected
-
TEST_SWITCH_KEYBOARD
- press on the globe key
- the keyboard menu should be shown
- press on a keyboard to switch to, say "EuroLatin (SIL)"
- confirm that "EuroLatin (SIL)" is now selected and ready to be used
- swich back to "US Basic" and confirm it does as expected
-
TEST_SHARE: Share
- Type and verify text can be copied and shared to external app
-
TEST_KEYMAN_BROWSER: Keyman Browser ###
- On default page, click on text field and set system keyboard to Keyman
- Verify can type with Keyman as system keyboard
- Verify that predictive suggestions are properly applied when selected (using
sil_euro_latin
+ English) - Close and reopen Keyman app
-
TEST_TEXT_SIZE: Text Size
- Verify text can be rescaled from Text Size 9 to 72
-
TEST_CLEAR_TEXT: Clear Text
- Verify text can be cleared
-
TEST_INFO: Info
- Verify that the Keyman iOS version is displayed; record the version
- Verify that the Info menu options matches that of the More Info... option from the Get Started menu option.
- Verify that the Keyman iOS version matches the version string seen at (Home Screen) > [iOS] Settings > Keyman.
-
TEST_SETTINGS: Settings
-
Installed Languages ... Add Language
-
Select an installed language ... Add (another) Keyboard
- Should automatically perform a filtered search based upon that language's BCP-47 code, i.e. for "English" it should be seen as shown in the screenshot below.
-
Select an installed language ... Dictionary
- Turn on/off 'Enable Predictions' and validate each
- Turn on/off 'Enable Corrections' and validate each
-
Validate that when both predictions and corrections are off, banner is not visible
-
Add/Remove dictionaries - validate
-
If multiple dictionaries are available, test swapping between them
-
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
-
TEST_US_BASIC: English:
US Basic
in-app- Verify that the US Basic keyboard can be downloaded through Settings > Installed Languages > English >
+
- This should automatically bring up search results for English keyboards.
- When the package-installer launches, English should be the one pre-selected language.
- Install the package for both English and Tagalog by selecting both of them in the installation processes.
- Set English: US Basic as the active in-app keyboard.
- Verify that predictive text suggestions appear.
- Set Tagalog: US Basic as the active in-app keyboard.
- Verify that predictive text suggestions do not appear.
- Verify that long-press
123
key works, presenting options for a currency layer and a symbol layer. - Select the currency layer, then press the
£
key. - Verify that the keyboard outputs correctly and returns to the default layer.
- Go to the symbol layer and press the
©
key. - Verify that the keyboard outputs correctly and remains on the symbol layer.
- Revert to the default layer and ensure basic key inputs work.
- Long-press
e
on the default layer and select a subkey. - Verify that the selected key produces the correct output.
- From the
Settings > Languages > English > US Basic
menu, follow the "Help link" and ensure it displays appropriate help.- (Should work both online and offline)
- From the
Settings > Languages > English > US Basic
menu, scan the QR code with a phone and test that it links to the current version of that keyboard's public download page on keyman.com. - Returning to the app, uninstall the US Basic keyboard via Settings for Tagalog.
- Set English: US Basic as the active in-app keyboard.
- Verify that the keyboard appears correctly and ensure basic key inputs work.
- This is to ensure that uninstalling for one language doesn't adversely affect installations of the same resource for another language.
- Uninstall the US Basic keyboard via Settings for English.
- Verify that the US Basic keyboard can be downloaded through Settings > Installed Languages > English >
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
- GROUP_IPAD_PORTRAIT: portrait mode in iPad
- GROUP_IPAD_LANDSCAPE: landscape mode in iPad
-
TEST_EUROLATIN:
English (Eurolatin)
in-app- In portrait orientation, verify that the OSK appears and fills the width the bottom of the screen
- Verify long-press
q
key works - Verify long-press
k
key works- Verify that any predictive suggestions generated feel 'reasonable' (based upon 'k', the selected subkey, or one of its neighbors)
- Verify uppercase layer can be selected via
SHIFT
- Verify number layer can be selected via
123
- Verify long-press
1
key works - Verify long-press
0
key works - Verify backspace, space, and enter keys work
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
- GROUP_IPAD_PORTRAIT: portrait mode in iPad
- GROUP_IPAD_LANDSCAPE: landscape mode in iPad
Test the following after setting Keyman as a system keyboard.
Test Cases
- TEST_BASIC_USAGE: ensure that the keyboards functions as expected on all layers. Please test on multiple keyboards, i.e. EuroLatin (SIL), Cameroon QWERTY keyboard and Khmer Angkor.
-
TEST_LONG_PRESS: ensure that longpress on all applicable layers are working as intended.
- Note that
khmer_angkor
lacks longpress keys on tablet form-factor devices, though the other two listed above still have them.
- Note that
- TEST_GLOBE_KEY: ensure that a short press on the globe key switch to the next keyboard and a longpress on it open the keyboard menu where you can select a keyboard of your choice
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
- GROUP_IPAD_PORTRAIT: portrait mode in iPad
- GROUP_IPAD_LANDSCAPE: landscape mode in iPad
-
TEST_KM_LOCALE
- from System Preferences, switch the UI language to Khmer by adding it in
Language & Region
using+
- drag Khmer to the top of the list to set it as a primary UI language
- check the dropdown menu to see it in Khmer
- verify the UI language switch to Khmer
- from System Preferences, switch the UI language to Khmer by adding it in
-
TEST_AM_LOCALE
- from System Preferences, switch the UI language to Amharic by adding it in
Language & Region
using+
- drag Amharic to the top of the list to set it as a primary UI language
- check the dropdown menu to see it in Amharic
- verify the UI language switch to Amharic
- from System Preferences, switch the UI language to Amharic by adding it in
- GROUP_IPHONE_PORTRAIT: portrait mode in iPhone
- GROUP_IPHONE_LANDSCAPE: landscape mode in iPhone
- GROUP_IPAD_PORTRAIT: portrait mode in iPad
- GROUP_IPAD_LANDSCAPE: landscape mode in iPad
-
TEST_BROKEN_SUGGESTION: Verify that the following reproduction is no longer affected by this bug.
- In Keyman for iOS, type Prob using the default keyboard (EuroLatin).
- Select
Problem
from banner. - Press Backspace, then select
"Prob"
(undoing the last suggestion). - Then press Spacebar.
- You should see
Prob
, as if no suggestion were auto-applied from the spacebar.
-
TEST_QUOTE_O: Using the default English keyboard for your test environment, type
'
followed immediately byo
.- If most of the displayed suggestions do not begin with an 'o', FAIL this test.
- Do not fail if "I" is one of them - it's a super-common word, and 'o' does neighbor 'i'.
- Apply any of the displayed suggestions. If the
'
mark is replaced, *FAIL_ this test. - (nts: This test and the other two below are adopted from https://github.com/keymanapp/keyman/pull/7205.)
- If most of the displayed suggestions do not begin with an 'o', FAIL this test.
-
TEST_QUOTE_OP: Using the default English keyboard for your test environment, type
'
followed immediately byo
, thenp
.- If most of the displayed suggestions do not begin with an 'op', FAIL this test.
- Do not fail if "OP" is suggested, despite its capitalization.
- Apply any of the displayed suggestions. If the
'
mark is replaced, FAIL this test.
- If most of the displayed suggestions do not begin with an 'op', FAIL this test.
-
TEST_OP: Using the default English keyboard for your test environment, type
you
, add a space, then typeo
, thenp
.- If most of the displayed suggestions do not begin with an
op
, FAIL this test.- Do not fail if "OP" is suggested, despite its capitalization.
- Apply any of the displayed suggestions. If unwanted effects occur, FAIL this test.
- No prior whitespace should be deleted and the suggestion should be cleanly applied.
- Example: applying
open
toyou op
should result inyou open
for the full context.
- If most of the displayed suggestions do not begin with an
-
TEST_NW_Q: Using the default (
sil_euro_latin
) keyboard, press the far upper-left of the 'q' (or 'Q') key.- All suggestions should begin with the corresponding letter and case. (So, 'question' for 'q' or 'Question' for 'Q'.)
- (nts: This test and the one below are adopted from https://github.com/keymanapp/keyman/pull/7241.)
-
TEST_E_P: Using the default (
sil_euro_latin
) keyboard, press the far upper-right of the 'p' (or 'P') key.- All suggestions should begin with the corresponding letter and case.
-
TEST_GUILLEMET: Guillemets («») are used to quote a speech in some language, i.e. Khmer and Jarai. We would like to ensure that the quillemet won't get delete when a predictive text is in action.
- In Keyman for iOS app with Jarai keyboard active, go to the shift layer and press
«
on the first row. - Now press
ស
(the second key from the left on the third row) and pick the first option on the suggestion banner. - FAIL this test if the guillemet disappears.
- In Keyman for iOS app with Jarai keyboard active, go to the shift layer and press