mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-26 07:47:47 +00:00
Merge pull request #16891 from keymanapp/auto/B19S4-merge-base-into-user-dict
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
auto: B19S4 merge master into user-dict 📖
This commit is contained in:
commit
89c5c216f5
144 changed files with 688 additions and 1534 deletions
56
HISTORY.md
56
HISTORY.md
|
|
@ -1,5 +1,26 @@
|
|||
# Keyman Version History
|
||||
|
||||
## 20.0.7 alpha 2026-10-21
|
||||
|
||||
* chore(web): add Keyman header to test files (#16857)
|
||||
|
||||
## 20.0.6 alpha 2026-10-19
|
||||
|
||||
* docs(common): move legacy history (#16799)
|
||||
|
||||
## 20.0.5 alpha 2026-10-17
|
||||
|
||||
* fix: set alpha tier after merge (#16841)
|
||||
|
||||
## 20.0.4 alpha 2026-10-14
|
||||
|
||||
* refactor(web): clarify scope of `doShow`/`doHide` (#16589)
|
||||
* refactor(web): update function comments and cleanup (#16591)
|
||||
|
||||
## 20.0.3 alpha 2026-10-09
|
||||
|
||||
* maint(ios): new iOS certificate (alpha-20.0) (#16771)
|
||||
|
||||
## 20.0.2 alpha 2026-10-07
|
||||
|
||||
* fix(mac): lower case 'k' for .pkg.download_info (#16744)
|
||||
|
|
@ -17,6 +38,32 @@
|
|||
* chore(common): remove `clearcontext`,`fix`,`switch`,`key` statements (#16726)
|
||||
* chore: move to 20.0-alpha (#16739)
|
||||
|
||||
## 19.0.305 beta 2026-10-09
|
||||
|
||||
* docs: remove repeated clean up instructions (#16745)
|
||||
* fix(web): prevent crash adding log entry for keystroke with `inputBreadCrumb` (#16762)
|
||||
* maint(ios): new iOS certificate (beta-19.0) (#16772)
|
||||
* docs(developer): fix typo in whatsnew (#16774)
|
||||
* fix(web): fix crash applying suggestions (#16786)
|
||||
|
||||
## 19.0.304 beta 2026-10-08
|
||||
|
||||
* docs(common): add `sentry-cli` version and update documentation (#16752)
|
||||
* chore(linux): update changelog with Debian version (#16758)
|
||||
|
||||
## 19.0.303 beta 2026-10-07
|
||||
|
||||
* fix(resources): export KEYMAN_TIER so we get beta tagging on release build (#16751)
|
||||
|
||||
## 19.0.302 beta 2026-10-07
|
||||
|
||||
* fix(mac): lower case 'k' for .pkg.download_info (#16743)
|
||||
* docs: update v19 whats-new (#16748)
|
||||
|
||||
## 19.0.300 beta 2026-10-06
|
||||
|
||||
* chore: move to beta
|
||||
|
||||
## 19.0.299 alpha 2026-10-05
|
||||
|
||||
* chore(deps): bump ip-address from 10.5.0 to 10.7.2 in /developer/src/server/src/win32/trayicon/addon-src (#16698)
|
||||
|
|
@ -1831,6 +1878,15 @@
|
|||
* refactor(windows): rename `TKeymanMutex.MutexOwned` to `TakeOwnership` and add `ReleaseOwnership` (#13168)
|
||||
* chore: increment to alpha 19.0 (#13187)
|
||||
|
||||
## 18.0.254 stable 2026-10-16
|
||||
|
||||
* chore(linux): replace deprecated `parse_version` (#16736)
|
||||
* chore(linux): update Debian standards version (#16713)
|
||||
* chore(linux): update changelog with Debian version (#16735)
|
||||
* fix(web): prevent crash adding log entry for keystroke with `inputBreadCrumb` (#16761)
|
||||
* maint(ios): new iOS certificate (stable-18.0) (#16773)
|
||||
* fix(web): don't crash if model isn't fully loaded yet (#16784)
|
||||
|
||||
## 18.0.253 stable 2026-10-02
|
||||
|
||||
* fix(mac): disable the help button entirely in the title bar of OSK (#16680)
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
20.0.3
|
||||
20.0.8
|
||||
|
|
@ -9,6 +9,7 @@ plugins {
|
|||
ext.rootPath = '../../'
|
||||
apply from: "$rootPath/version.gradle"
|
||||
String tier = System.getenv("KEYMAN_TIER");
|
||||
println "Using tier $tier"
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,12 @@
|
|||
title: What's New in Keyman Engine 20.0 for Android
|
||||
---
|
||||
|
||||
* Added API for broadcasting when Keyman system keyboard font changes (#15193)
|
||||
* **BREAKING** Apps that use the functionality of Keyman Engine for Android will have to add `androidx.webkit:webkit:1.14.0` as a dependency (#16146)
|
||||
* **KNOWN ISSUE** `sil_euro_latin` keyboard must be included in an app if `setDefaultKeyboard()` is not called during initialization (#16215)
|
||||
* Added [Intent `com.tavultesoft.kmapro.keyboard_changed`](KMAPro/) which is broadcast when Keyman system keyboard changes and includes font name (#15193)
|
||||
* Added [`KMManager.getKeyboardHeightMax()`](KMManager/getKeyboardHeightMax) API (#13663)
|
||||
* Added [`KMManager.getKeyboardHeightMin()`](KMManager/getKeyboardHeightMin) API (#13663)
|
||||
* Clarified font filename vs facename in various APIs (#16211)
|
||||
|
||||
## See Also
|
||||
* [Keyman Engine for Android Documentation](index)
|
||||
|
|
@ -4,3 +4,9 @@ title: What's New in Keyman 20.0 for Android
|
|||
|
||||
Here are some of the new features we have added to Keyman 20.0 for Android:
|
||||
|
||||
- Keyboard search is now localized for several languages (#15510)
|
||||
- Support for dark mode (#15827)
|
||||
- Refreshed and modernized settings user interface (#15827)
|
||||
- Automatic acceptance of corrections (#12893)
|
||||
- Improvements to interface for keyboard resizing (#15267)
|
||||
- About [220 other fixes and changes](https://keyman.com/go/app/whatsnew/android/19.0)
|
||||
|
|
|
|||
9
docs/build/linux-ubuntu.md
vendored
9
docs/build/linux-ubuntu.md
vendored
|
|
@ -245,6 +245,15 @@ from command line. But note that you do need to update your `JAVA_HOME` env
|
|||
var to the associated version before opening Android Studio and loading any
|
||||
Android projects. `JAVA_HOME_11` is mostly used by CI.
|
||||
|
||||
## Optional Tools
|
||||
|
||||
- sentry-cli (optional)
|
||||
- Uploading symbols for Sentry-based error reporting
|
||||
|
||||
See <https://docs.sentry.io/cli/installation/> for the installation, and
|
||||
check [minimum-versions.md](../minimum-versions.md) for the required version of
|
||||
`sentry-cli`.
|
||||
|
||||
## Docker Builder
|
||||
|
||||
The Docker builder allows you to perform a build from anywhere Docker is supported.
|
||||
|
|
|
|||
14
docs/build/macos.md
vendored
14
docs/build/macos.md
vendored
|
|
@ -41,7 +41,7 @@ Rosetta 2 installed.
|
|||
|
||||
Many dependencies are only required for specific projects.
|
||||
|
||||
* XCode (iOS, macOS) 26.2 or 26.3 (not higher at this time, see #16416)
|
||||
* XCode (iOS, macOS) 26.2 or 26.3 (not higher at this time, see #16416)
|
||||
is needed only for Keyman for macOS and Keyman for iOS ().
|
||||
|
||||
* Install from App Store
|
||||
|
|
@ -206,8 +206,10 @@ components such as emulator images and SDK updates.
|
|||
|
||||
* node.js, emscripten
|
||||
|
||||
```shell
|
||||
brew install node emscripten
|
||||
```shell
|
||||
brew install node emscripten
|
||||
```
|
||||
|
||||
* node.js 20.0, emscripten 3.1.64
|
||||
|
||||
See section KeymanWeb Dependencies for installation
|
||||
|
|
@ -216,6 +218,6 @@ See section KeymanWeb Dependencies for installation
|
|||
|
||||
* sentry-cli: Uploading symbols for Sentry-based error reporting
|
||||
|
||||
```shell
|
||||
brew install getsentry/tools/sentry-cli
|
||||
```
|
||||
See <https://docs.sentry.io/cli/installation/> for the installation, and
|
||||
check [minimum-versions.md](../minimum-versions.md) for the required version of
|
||||
`sentry-cli`.
|
||||
|
|
|
|||
7
docs/build/sentry-cli.md
vendored
7
docs/build/sentry-cli.md
vendored
|
|
@ -1,8 +1,11 @@
|
|||
# Setting up sentry-cli
|
||||
|
||||
Contact the Keyman team if you need access to sentry.keyman.com for development.
|
||||
Contact the Keyman team if you need access to keyman.sentry.io for development.
|
||||
You will also need to install [sentry-cli](https://docs.sentry.io/cli/installation/) for uploading Debug symbols.
|
||||
After setting up your personal [Auth token](http://keyman.sentry.io/settings/account/api/auth-tokens/), add the following to **~/.bashrc**
|
||||
Check [minimum-versions.md](../minimum-versions.md) for the required version of `sentry-cli`.
|
||||
|
||||
After setting up your personal [Auth token](http://keyman.sentry.io/settings/account/api/auth-tokens/),
|
||||
add the following to `~/.bashrc`:
|
||||
|
||||
```bash
|
||||
export SENTRY_AUTH_TOKEN={your Sentry auth token}
|
||||
|
|
|
|||
8
docs/build/windows.md
vendored
8
docs/build/windows.md
vendored
|
|
@ -412,8 +412,6 @@ certificates for the build.
|
|||
* sentry-cli (optional)
|
||||
- Uploading symbols for Sentry-based error reporting
|
||||
|
||||
bash:
|
||||
```bash
|
||||
# bash
|
||||
curl -sL https://sentry.io/get-cli/ | bash
|
||||
```
|
||||
See <https://docs.sentry.io/cli/installation/> for the installation, and
|
||||
check [minimum-versions.md](../minimum-versions.md) for the required version of
|
||||
`sentry-cli`.
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ https://help.keyman.com/developer/engine/android/latest-version/
|
|||
| KEYMAN_VERSION_LANGTAGS | 2026-06-09 |
|
||||
| KEYMAN_VERSION_LANGTAGS_API | 1.4 |
|
||||
| KEYMAN_VERSION_LANGUAGE_SUBTAG_REGISTRY | 2026-08-08 |
|
||||
| KEYMAN_VERSION_SENTRY_CLI | 1.70.0 |
|
||||
| KEYMAN_VERSION_UNICODE | 17.0.0 |
|
||||
| KEYMAN_VERSION_XCODE | 26.2 |
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,20 @@
|
|||
# Developer Acceptance Tests
|
||||
|
||||
### Clean up instructions for manual tests
|
||||
For all these acceptance steps to perform a `cleanup` Uninstall Keyman and any third-party applications installed as part for the `Setup` steps.
|
||||
|
||||
If an installation becomes corrupted and it is not possible to uninstall `Keyman Developer` through `Add or remove programs`, clean up the files in the following folders if they exist.
|
||||
|
||||
- %ProgramFiles(x86)%\Keyman or %ProgramFiles%\Keyman
|
||||
- %CommonProgramFiles(x86)%\Keyman or %CommonProgramFiles%\Keyman
|
||||
- %ProgramData%\Keyman
|
||||
- %AppData%\Keyman
|
||||
- %LocalAppData%\Keyman
|
||||
|
||||
If still having trouble remove the registry values at
|
||||
- HKCU\Software\Keyman
|
||||
- HKLM\Software\Wow6432Node\Keyman
|
||||
|
||||
**TEST_241**
|
||||
|
||||
Test case for Debugger_Starts ,
|
||||
|
|
|
|||
|
|
@ -53,21 +53,6 @@ Original TestLodge ID: TC188
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_288**
|
||||
|
|
@ -122,21 +107,6 @@ Original TestLodge ID: TC189
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_289**
|
||||
|
|
@ -190,21 +160,6 @@ Original TestLodge ID: TC190
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_290**
|
||||
|
|
@ -252,21 +207,6 @@ Original TestLodge ID: TC191
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_291**
|
||||
|
|
@ -320,20 +260,6 @@ Original TestLodge ID: TC192
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
**TEST_292**
|
||||
|
||||
Test case for BASIC_MODIPRESS_HOLD,
|
||||
|
|
@ -381,21 +307,6 @@ Original TestLodge ID: TC193
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_293**
|
||||
|
|
@ -454,21 +365,6 @@ Original TestLodge ID: TC194
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_294**
|
||||
|
|
@ -522,21 +418,6 @@ Original TestLodge ID: TC195
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_295**
|
||||
|
|
@ -586,21 +467,6 @@ Original TestLodge ID: TC196
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_297**
|
||||
|
|
@ -653,21 +519,6 @@ Original TestLodge ID: TC198
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_300**
|
||||
|
|
@ -733,21 +584,6 @@ Original TestLodge ID: TC201
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_302**
|
||||
|
|
@ -807,20 +643,5 @@ Original TestLodge ID: TC203
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Type ‘Control panel’ in the Search bar (in Task bar)
|
||||
2. Verify that the ‘Control panel’ appeared in the menu list.
|
||||
3. Click the Control panel option.
|
||||
4. Verify that the Control Panel dialog appeared.
|
||||
5. Click the ‘Uninstall a Program’ option.
|
||||
6. Verify that the Programs and Features dialog box opens.
|
||||
7. Select the installed Keyman version from the list.
|
||||
8. Click the Uninstall option.
|
||||
9. Verify that the the Keyman Uninstallation completed successfully
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# macOS Acceptance Tests
|
||||
|
||||
### Clean up instructions for manual tests
|
||||
For all these acceptance steps to perform a `cleanup` Uninstall Keyman and any third-party applications installed as part for the `Setup` steps.
|
||||
|
||||
**TEST_173**
|
||||
|
||||
Test case for Chrome_Google_Docs with Amharic,
|
||||
|
|
@ -48,15 +51,6 @@ Original TestLodge ID: TC113
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall the Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_175**
|
||||
|
|
@ -106,15 +100,6 @@ Original TestLodge ID: TC115
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall Atom Editor.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_178**
|
||||
|
|
@ -165,15 +150,6 @@ Original TestLodge ID: TC118
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall Safari browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_180**
|
||||
|
|
@ -224,15 +200,6 @@ Original TestLodge ID: TC120
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall the Firefox browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_183**
|
||||
|
|
@ -283,15 +250,6 @@ Original TestLodge ID: TC123
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall the Firefox browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_185**
|
||||
|
|
@ -341,15 +299,6 @@ Original TestLodge ID: TC125
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall Notes App.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_188**
|
||||
|
|
@ -399,15 +348,6 @@ Original TestLodge ID: TC128
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall the Amharic keyboard.
|
||||
3. Uninstall LibreOffice 7.0 app.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_190**
|
||||
|
|
@ -469,14 +409,6 @@ Original TestLodge ID: TC130
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_193**
|
||||
|
|
@ -539,14 +471,6 @@ Original TestLodge ID: TC133
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_195**
|
||||
|
|
@ -608,13 +532,6 @@ Original TestLodge ID: TC135
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_198**
|
||||
|
|
@ -676,13 +593,6 @@ Original TestLodge ID: TC138
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_200**
|
||||
|
|
@ -747,13 +657,6 @@ Original TestLodge ID: TC140
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_203**
|
||||
|
|
@ -815,13 +718,6 @@ Original TestLodge ID: TC143
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_205**
|
||||
|
|
@ -882,12 +778,6 @@ Original TestLodge ID: TC145
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
**TEST_208**
|
||||
|
||||
Test case for MAIL app with Shortcuts,
|
||||
|
|
@ -946,13 +836,6 @@ Original TestLodge ID: TC148
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_210**
|
||||
|
|
@ -995,14 +878,6 @@ Original TestLodge ID: TC222
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_213**
|
||||
|
|
@ -1047,14 +922,6 @@ Original TestLodge ID: TC225
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_215**
|
||||
|
|
@ -1094,13 +961,6 @@ Original TestLodge ID: TC235
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the MAC
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_218**
|
||||
|
|
@ -1142,14 +1002,6 @@ Original TestLodge ID: TC238
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the MAC
|
||||
SUITE_KMX_PROCESSOR_COMPLIANT_GROUP_LINUX:
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_220**
|
||||
|
|
@ -1193,14 +1045,6 @@ Original TestLodge ID: TC250
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_223**
|
||||
|
|
@ -1245,14 +1089,6 @@ Original TestLodge ID: TC253
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the device.
|
||||
2. Uninstall Chrome browser.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_226**
|
||||
|
|
@ -1295,14 +1131,6 @@ Original TestLodge ID: TC266
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the macOS
|
||||
2. Uninstall the TextEdit app.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_228**
|
||||
|
|
@ -1345,14 +1173,6 @@ Original TestLodge ID: TC268
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall Keyman build on the macOS
|
||||
2. Uninstall the TextEdit app.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_231**
|
||||
|
|
@ -1401,13 +1221,6 @@ Original TestLodge ID: TC286
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall the Keyman build on the macOS.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_233**
|
||||
|
|
@ -1451,13 +1264,6 @@ Original TestLodge ID: TC288
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall the Keyman build on the macOS.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_236**
|
||||
|
|
@ -1505,13 +1311,6 @@ Original TestLodge ID: TC291
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall the Keyman build on the macOS.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_238**
|
||||
|
|
@ -1558,13 +1357,6 @@ Original TestLodge ID: TC293
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall the Keyman build on the macOS.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**TEST_341**
|
||||
|
|
@ -1618,12 +1410,5 @@ TC - fix(mac): handle PackageInfo section in kmp.inf file #13876
|
|||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Cleanup</summary>
|
||||
|
||||
1. Uninstall the Keyman build on macOS.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Original TestLodge ID: TC162
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymanweb use samples' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -45,7 +45,7 @@ Original TestLodge ID: TC162
|
|||
9. Verify it produces ‘ŋ’
|
||||
10. Open Chrome browser in Windows OS.
|
||||
11. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
12.Verify that the testing index page opens.
|
||||
12. Verify that the testing index page opens.
|
||||
13. Click 'View Keymanweb use samples' link button.
|
||||
14. Verify KeymanWeb Samples page opens.
|
||||
15. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -54,7 +54,7 @@ Original TestLodge ID: TC162
|
|||
18. Verify it produces ‘ŋ’
|
||||
19. Open Safari browser in macOS.
|
||||
20. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
21.Verify that the testing index page opens.
|
||||
21. Verify that the testing index page opens.
|
||||
22. Click 'View Keymanweb use samples' link button.
|
||||
23. Verify KeymanWeb Samples page opens.
|
||||
24. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -63,7 +63,7 @@ Original TestLodge ID: TC162
|
|||
27. Verify it produces ‘ŋ’
|
||||
28. Open Chrome browser in macOS.
|
||||
29. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
30.Verify that the testing index page opens.
|
||||
30. Verify that the testing index page opens.
|
||||
31. Click 'View Keymanweb use samples' link button.
|
||||
32. Verify KeymanWeb Samples page opens.
|
||||
33. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -72,7 +72,7 @@ Original TestLodge ID: TC162
|
|||
36. Verify it produces ‘ŋ’
|
||||
37. Open Firefox in macOS.
|
||||
38. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
39.Verify that the testing index page opens.
|
||||
39. Verify that the testing index page opens.
|
||||
40. Click 'View Keymanweb use samples' link button.
|
||||
41. Verify KeymanWeb Samples page opens.
|
||||
42. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -81,7 +81,7 @@ Original TestLodge ID: TC162
|
|||
45. Verify it produces ‘ŋ’
|
||||
46. Open Firefox in Linux OS.
|
||||
47. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
48.Verify that the testing index page opens.
|
||||
48. Verify that the testing index page opens.
|
||||
49. Click 'View Keymanweb use samples' link button.
|
||||
50. Verify KeymanWeb Samples page opens.
|
||||
51. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -141,7 +141,7 @@ Original TestLodge ID: TC163
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/433344:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymanweb use samples' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -151,7 +151,7 @@ Original TestLodge ID: TC163
|
|||
10. Verify that the Khmer Angkor keyboard is added and displayed on the Screen.
|
||||
11. Open Chrome browser in Windows OS.
|
||||
12. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
13.Verify that the testing index page opens.
|
||||
13. Verify that the testing index page opens.
|
||||
14. Click 'View Keymanweb use samples' link button.
|
||||
15. Verify KeymanWeb Samples page opens.
|
||||
16. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -161,7 +161,7 @@ Original TestLodge ID: TC163
|
|||
20. Verify that the Khmer Angkor keyboard is added and displayed on the Screen.
|
||||
21. Open Safari browser in macOS.
|
||||
22. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
23.Verify that the testing index page opens.
|
||||
23. Verify that the testing index page opens.
|
||||
24. Click 'View Keymanweb use samples' link button.
|
||||
25. Verify KeymanWeb Samples page opens.
|
||||
26. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -171,7 +171,7 @@ Original TestLodge ID: TC163
|
|||
30. Verify that the Khmer Angkor keyboard is added and displayed on the Screen.
|
||||
31. Open Chrome browser in macOS.
|
||||
32. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
33.Verify that the testing index page opens.
|
||||
33. Verify that the testing index page opens.
|
||||
34. Click 'View Keymanweb use samples' link button.
|
||||
35. Verify KeymanWeb Samples page opens.
|
||||
36. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -181,7 +181,7 @@ Original TestLodge ID: TC163
|
|||
40. Verify that the Khmer Angkor keyboard is added and displayed on the Screen.
|
||||
41. Open Firefox browser in macOS.
|
||||
42. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
43.Verify that the testing index page opens.
|
||||
43. Verify that the testing index page opens.
|
||||
44. Click 'View Keymanweb use samples' link button.
|
||||
45. Verify KeymanWeb Samples page opens.
|
||||
46. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -191,7 +191,7 @@ Original TestLodge ID: TC163
|
|||
50. Verify that the Khmer Angkor keyboard is added and displayed on the Screen.
|
||||
51. Open Firefox browser in Linux OS.
|
||||
52. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
53.Verify that the testing index page opens.
|
||||
53. Verify that the testing index page opens.
|
||||
54. Click 'View Keymanweb use samples' link button.
|
||||
55. Verify KeymanWeb Samples page opens.
|
||||
56. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -252,7 +252,7 @@ Original TestLodge ID: TC164
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymanweb use samples' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -276,7 +276,7 @@ Original TestLodge ID: TC164
|
|||
24. Verify it deletes the remaining letter on the screen.
|
||||
25. Open Chrome browser in Windows OS.
|
||||
22. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
23.Verify that the testing index page opens.
|
||||
23. Verify that the testing index page opens.
|
||||
24. Click 'View Keymanweb use samples' link button.
|
||||
25. Verify KeymanWeb Samples page opens.
|
||||
26. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -300,7 +300,7 @@ Original TestLodge ID: TC164
|
|||
40. Verify it deletes the remaining letter on the screen.
|
||||
41. Open Safari browser in macOS
|
||||
42. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
43.Verify that the testing index page opens.
|
||||
43. Verify that the testing index page opens.
|
||||
44. Click 'View Keymanweb use samples' link button.
|
||||
45. Verify KeymanWeb Samples page opens.
|
||||
46. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -324,7 +324,7 @@ Original TestLodge ID: TC164
|
|||
64. Verify it deletes the remaining letter on the screen.
|
||||
61. Open Chrome browser in macOS.
|
||||
62. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
63.Verify that the testing index page opens.
|
||||
63. Verify that the testing index page opens.
|
||||
64. Click 'View Keymanweb use samples' link button.
|
||||
65. Verify KeymanWeb Samples page opens.
|
||||
66. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -348,7 +348,7 @@ Original TestLodge ID: TC164
|
|||
84. Verify it deletes the remaining letter on the screen.
|
||||
85. Open Firefox browser in macOS.
|
||||
86. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
87.Verify that the testing index page opens.
|
||||
87. Verify that the testing index page opens.
|
||||
88. Click 'View Keymanweb use samples' link button.
|
||||
89. Verify KeymanWeb Samples page opens.
|
||||
90. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -372,7 +372,7 @@ Original TestLodge ID: TC164
|
|||
108. Verify it deletes the remaining letter on the screen.
|
||||
101. Open Firefox browser in Linux OS.
|
||||
102. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
103.Verify that the testing index page opens.
|
||||
103. Verify that the testing index page opens.
|
||||
104. Click 'View Keymanweb use samples' link button.
|
||||
105. Verify KeymanWeb Samples page opens.
|
||||
106. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -447,7 +447,7 @@ Original TestLodge ID: TC165
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymanweb use samples' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -458,7 +458,7 @@ Original TestLodge ID: TC165
|
|||
11. Verify that a Spanish keyboard is added to the list.
|
||||
12. Open Chrome browser in Windows OS.
|
||||
13. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
14.Verify that the testing index page opens.
|
||||
14. Verify that the testing index page opens.
|
||||
15. Click 'View Keymanweb use samples' link button.
|
||||
16. Verify KeymanWeb Samples page opens.
|
||||
17. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -469,7 +469,7 @@ Original TestLodge ID: TC165
|
|||
22. Verify that a Spanish keyboard is added to the list.
|
||||
23. Open Safari browser in macOS.
|
||||
24. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
25.Verify that the testing index page opens.
|
||||
25. Verify that the testing index page opens.
|
||||
26. Click 'View Keymanweb use samples' link button.
|
||||
27. Verify KeymanWeb Samples page opens.
|
||||
28. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -480,7 +480,7 @@ Original TestLodge ID: TC165
|
|||
33. Verify that a Spanish keyboard is added to the list.
|
||||
34. Open Chrome browser in macOS.
|
||||
35. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
36.Verify that the testing index page opens.
|
||||
36. Verify that the testing index page opens.
|
||||
37. Click 'View Keymanweb use samples' link button.
|
||||
38. Verify KeymanWeb Samples page opens.
|
||||
39. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -491,7 +491,7 @@ Original TestLodge ID: TC165
|
|||
44. Verify that a Spanish keyboard is added to the list.
|
||||
45. Open Firefox browser in macOS.
|
||||
46. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
47.Verify that the testing index page opens.
|
||||
47. Verify that the testing index page opens.
|
||||
48. Click 'View Keymanweb use samples' link button.
|
||||
49. Verify KeymanWeb Samples page opens.
|
||||
50. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -502,7 +502,7 @@ Original TestLodge ID: TC165
|
|||
55. Verify that a Spanish keyboard is added to the list.
|
||||
56. Open Firefox browser in Linux OS.
|
||||
57. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
58.Verify that the testing index page opens.
|
||||
58. Verify that the testing index page opens.
|
||||
59. Click 'View Keymanweb use samples' link button.
|
||||
60. Verify KeymanWeb Samples page opens.
|
||||
61. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -564,7 +564,7 @@ Original TestLodge ID: TC166
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymanweb use samples' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -677,7 +677,7 @@ Original TestLodge ID: TC167
|
|||
45. Type d.
|
||||
46. Verify that the final letter should be xdx.
|
||||
47. Open Chrome browser in Windows OS.
|
||||
48.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
48. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
49. Verify that the testing index page opens.
|
||||
50. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
51. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -951,7 +951,7 @@ Original TestLodge ID: TC169
|
|||
<summary>Action</summary>
|
||||
|
||||
1. Open Firefox browser in Linux OS.
|
||||
2.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -1176,7 +1176,7 @@ Original TestLodge ID: TC171
|
|||
11. Click / touch a blank area of the page.
|
||||
12. Verify that the OSK should automatically hide.
|
||||
13. Open Chrome in windows OS.
|
||||
14.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
14. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
15. Verify that the testing index page opens.
|
||||
16. Click 'Tests the new Attachment/Enablement API functionality' link button.
|
||||
17. Verify KeymanWeb Samples - Attachment API Testing page opens.
|
||||
|
|
@ -1293,8 +1293,8 @@ Original TestLodge ID: TC172
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
4.Click 'Tests the new Attachment/Enablement API functionality' link button.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'Tests the new Attachment/Enablement API functionality' link button.
|
||||
5. Verify KeymanWeb Samples - Attachment API Testing page opens.
|
||||
6. Click the ‘Create Inputs’ button one time.
|
||||
7. Click the ‘Create Textarea’ button one time.
|
||||
|
|
@ -1451,7 +1451,7 @@ Verify KeymanWeb Samples - Attachment API Testing page opens.
|
|||
15. Click Dynamic area #2.
|
||||
16. Verify that the Lao keyboard should be displayed.
|
||||
17. Open Chrome browser in Windows OS.
|
||||
18.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
18. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
19. Verify that the testing index page opens.
|
||||
20. Click 'Tests the new Attachment/Enablement API functionality' link button.
|
||||
21. Verify KeymanWeb Samples - Attachment API Testing page opens.
|
||||
|
|
@ -1523,7 +1523,7 @@ Verify KeymanWeb Samples - Attachment API Testing page opens.
|
|||
87. Click Dynamic area #2.
|
||||
88. Verify that the Lao keyboard should be displayed.
|
||||
89. Open Firefox browser in macOS.
|
||||
90.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
90. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
91. Verify that the testing index page opens.
|
||||
92. Click 'Tests the new Attachment/Enablement API functionality' link button.
|
||||
93. Verify KeymanWeb Samples - Attachment API Testing page opens.
|
||||
|
|
@ -1628,7 +1628,7 @@ Original TestLodge ID: TC174
|
|||
15. Type 2.
|
||||
16. Verify the second option should replace the context.
|
||||
17. Open Chrome browser in Windows OS.
|
||||
18.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
18. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
19. Verify that the testing index page opens.
|
||||
20. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
21. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -1644,7 +1644,7 @@ Original TestLodge ID: TC174
|
|||
31. Type 2.
|
||||
32. Verify the second option should replace the context.
|
||||
33. Open Safari browser in macOS.
|
||||
34.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
34. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
35. Verify that the testing index page opens.
|
||||
36. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
37. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -1692,7 +1692,7 @@ Original TestLodge ID: TC174
|
|||
80. Type 2.
|
||||
81. Verify the second option should replace the context.
|
||||
82. Open Firefox in Linux OS.
|
||||
83.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
83. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
84. Verify that the testing index page opens.
|
||||
85. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
86. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -1760,10 +1760,10 @@ Original TestLodge ID: TC175
|
|||
|
||||
1. Open Firefox browser in Windows OS.
|
||||
2. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
3.Verify that the testing index page opens.
|
||||
3. Verify that the testing index page opens.
|
||||
4. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
5. Verify KeymanWeb Samples page opens.
|
||||
6.Click 'Test unminified Keymanweb' link button.
|
||||
6. Click 'Test unminified Keymanweb' link button.
|
||||
7. Verify the corresponding KeymaWeb Sample page opens.
|
||||
8. Type 'japanese' under "Add a keyboard by keyboard name" text box.
|
||||
9. Click Add button.
|
||||
|
|
@ -1843,7 +1843,7 @@ Original TestLodge ID: TC175
|
|||
83. Verify that the OSK should remain visible.
|
||||
84. Verify the caret should move from the input control to the textarea control.
|
||||
85. Open Chrome browser in macOS.
|
||||
86.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
86. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
87. Verify that the testing index page opens.
|
||||
88. Click 'View Keymaweb website-oriented manual test pages' link button.
|
||||
89. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -2028,7 +2028,7 @@ Original TestLodge ID: TC176
|
|||
49. Verify that the letter ‘ŋ’ appears on the text input screen.
|
||||
50. Click the Safari browser in iPad Tablet.
|
||||
51. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
52.Verify that the testing index page opens.
|
||||
52. Verify that the testing index page opens.
|
||||
53. Click 'View Keymanweb use samples' link button.
|
||||
54. Verify KeymanWeb Samples page opens.
|
||||
55. Click 'Example1 - Toggle UI, all resources in same folder as page' link button.
|
||||
|
|
@ -2039,7 +2039,7 @@ Original TestLodge ID: TC176
|
|||
60. Long-press ‘n’ key, while keeping the finger down, move on the long-press options ‘ŋ‘ so it's highlighted, and release.
|
||||
61. Verify that the letter ‘ŋ’ appears on the text input screen.
|
||||
62. Click the Safari browser in the iPad Tablet with a physical keyboard.
|
||||
63.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
63. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
64. Verify that the testing index page opens.
|
||||
65. Click 'View Keymanweb use samples' link button.
|
||||
66. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -2262,7 +2262,7 @@ Original TestLodge ID: TC178
|
|||
48. Hit Backspace key.
|
||||
49. Verify that it shows an empty text area.
|
||||
50. Click the Safari browser in an iPhone Mobile.
|
||||
51.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
51. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
52. Verify that the testing index page opens.
|
||||
53. Click 'View Keymanweb use samples' link button.
|
||||
54. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -2432,7 +2432,7 @@ Original TestLodge ID: TC179
|
|||
20. Click the Add button.
|
||||
21. Verify that the Spanish keyboard is added to the list.
|
||||
22. Click Safari browser in an iPhone Mobile.
|
||||
23.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
23. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
24. Verify that the testing index page opens.
|
||||
25. Click 'View Keymanweb use samples' link button.
|
||||
26. Verify KeymanWeb Samples page opens.
|
||||
|
|
@ -2807,7 +2807,7 @@ Original TestLodge ID: TC182
|
|||
8. Verify that manual attachment mode results in a page with no KMW-activated controls.
|
||||
9. Verify that the KeymanWeb is properly attached to and detaches from each relevant type of control with the page’s API-interface controls.
|
||||
10. Click the Chrome browser icon in an Android Mobile device attached with a physical keyboard.
|
||||
11.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
11. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
12. Verify that the testing index page opens.
|
||||
13. Click 'View Keymanweb website-oriented manual test pages' link button.
|
||||
14. Verify KeymanWeb 17 Testing page opens.
|
||||
|
|
@ -3081,7 +3081,7 @@ Original TestLodge ID: TC184
|
|||
16. Click / touch a blank area of the page.
|
||||
17. Verify that the OSK should automatically hide.
|
||||
18. Click the Chrome browser in Android mobile attached with physical keyboard
|
||||
19.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
19. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
20. Verify that the testing index page opens.
|
||||
21. Click 'View Keymanweb website-oriented manual test pages' link button.
|
||||
22. Verify KeymanWeb 17 Testing page opens.
|
||||
|
|
@ -3132,7 +3132,7 @@ Original TestLodge ID: TC184
|
|||
73. Click / touch a blank area of the page.
|
||||
74. Verify that the OSK should automatically hide.
|
||||
75. Click the Safari browser icon on the iPad device.
|
||||
76.Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
76. Enter ‘https://build.palaso.org/repository/download/Keymanweb_TestPullRequests/391530:id/index.html' in the Search bar.
|
||||
77. Verify that the testing index page opens.
|
||||
78. Click 'View Keymanweb website-oriented manual test pages' link button.
|
||||
79. Verify KeymanWeb 17 Testing page opens.
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -25,9 +25,9 @@ if [ -d "upload" ]; then
|
|||
rm -rf upload
|
||||
fi
|
||||
|
||||
#Include script dependency
|
||||
. $KEYMAN_ROOT/resources/build/history/history-utils.sh #includes the following
|
||||
#. ../resources/build/utils.inc.sh
|
||||
# Include script dependency
|
||||
. "$KEYMAN_ROOT/resources/build/utils.inc.sh"
|
||||
|
||||
|
||||
BUILD_NUMBER="${KEYMAN_VERSION}"
|
||||
|
||||
|
|
@ -36,8 +36,6 @@ CHANGELOG_PATH="upload/$BUILD_NUMBER/$KEYMAN_CHANGELOG"
|
|||
|
||||
WORK_DIR=`pwd`
|
||||
|
||||
BUILD_COUNTER="$((${BUILD_NUMBER##*.}))"
|
||||
|
||||
UPLOAD_BASE="upload"
|
||||
UPLOAD_FOLDER="${BUILD_NUMBER}"
|
||||
UPLOAD_DIR="${UPLOAD_BASE}/${UPLOAD_FOLDER}"
|
||||
|
|
@ -47,8 +45,8 @@ mkdir -p "${UPLOAD_DIR}"
|
|||
# First, we prep the files for publication: write changelog
|
||||
|
||||
echo "Writing changelog to $CHANGELOG_PATH"
|
||||
get_version_notes "ios" "${BUILD_NUMBER}" "$KEYMAN_TIER" > $CHANGELOG_PATH
|
||||
echo "* Minor fixes and performance improvements" >> $CHANGELOG_PATH
|
||||
echo "* Minor fixes and performance improvements" > $CHANGELOG_PATH
|
||||
echo "* See keyman.com/ios for full change history" >> $CHANGELOG_PATH
|
||||
|
||||
# Strip emoji as App Store does not allow emoji in changelogs
|
||||
node "$KEYMAN_ROOT/resources/tools/strip-emoji" < "$CHANGELOG_PATH" > "$CHANGELOG_PATH.1"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,17 @@
|
|||
keyman (18.0.249-1) UNRELEASED; urgency=medium
|
||||
keyman (18.0.253-1) UNRELEASED; urgency=medium
|
||||
|
||||
* Add procps dependency (closes: 1136515)
|
||||
* Add procps dependency (closes: #1136515)
|
||||
|
||||
-- Eberhard Beilharz <eb1@sil.org> Mon, 18 May 2026 18:06:49 +0200
|
||||
-- Eberhard Beilharz <eb1@sil.org> Tue, 06 Oct 2026 11:05:30 +0200
|
||||
|
||||
keyman (18.0.248-2) unstable; urgency=medium
|
||||
|
||||
* Team upload.
|
||||
* debian/patches/e77d2432ef91465e72460b32e5bc3e870b77fe9c.patch:
|
||||
Backport upstream patch to fix FTBFS due to pkg_resources.
|
||||
(Closes: #1149425)
|
||||
|
||||
-- Boyuan Yang <byang@debian.org> Wed, 30 Sep 2026 10:39:04 -0400
|
||||
|
||||
keyman (18.0.248-1) unstable; urgency=medium
|
||||
|
||||
|
|
|
|||
|
|
@ -151,6 +151,9 @@ function _builder_basic_find_version() {
|
|||
export KEYMAN_VERSION_ENVIRONMENT
|
||||
export KEYMAN_VERSION_GIT_TAG
|
||||
export KEYMAN_VERSION_FOR_FILENAME
|
||||
export KEYMAN_TIER
|
||||
export UPLOAD_SENTRY
|
||||
export BUILDER_OS
|
||||
}
|
||||
|
||||
function _builder_basic_find_tier() {
|
||||
|
|
|
|||
|
|
@ -1,199 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
#set -x
|
||||
#DEBUG=1
|
||||
|
||||
_hu_base_dir=$(dirname "$BASH_SOURCE")/../../..
|
||||
|
||||
. $_hu_base_dir/resources/build/utils.inc.sh
|
||||
|
||||
_hu_debug() {
|
||||
if [[ ! -z ${DEBUG+x} ]] && [[ $DEBUG == 1 ]]; then echo "$1"; fi
|
||||
}
|
||||
|
||||
get_history_file_path() {
|
||||
history_file_path="$_hu_base_dir/HISTORY.md"
|
||||
}
|
||||
|
||||
# Creates and initializes a variable called `history_file` that contains the raw content
|
||||
# of the specified project's `history.md` file.
|
||||
get_history_file() {
|
||||
get_history_file_path
|
||||
|
||||
history_file=`cat $history_file_path`
|
||||
}
|
||||
|
||||
### Parsing Utilities ###
|
||||
enum_line_types=("version-header", "title", "whitespace", "listitem", "other")
|
||||
|
||||
# Title Match: # Keyman Version History
|
||||
# ${BASH_REMATCH[1]} - history.md's "Title" text.
|
||||
re_title="^#[^#](.+)"
|
||||
|
||||
# Release Subtitle Match: ## version tier date
|
||||
# Example: ## 14.0.2 alpha 2020-02-02
|
||||
# ${BASH_REMATCH[1]} - version
|
||||
# ${BASH_REMATCH[2]} - tier
|
||||
# ${BASH_REMATCH[3]} - publishing date
|
||||
re_header="^##[[:space:]]*([0-9]+\.[0-9]+\.[0-9]+)[[:space:]]*(alpha|beta|stable)[[:space:]]*([0-9]{4}-[0-9]{2}-[0-9]{2})"
|
||||
|
||||
# Entry in release log
|
||||
# ${BASH_REMATCH[1]} - the full line of text
|
||||
re_item="(.+)"
|
||||
|
||||
# Checks that it's a simple line of whitespace.
|
||||
re_blank="^[[:space:]]*$"
|
||||
|
||||
re_v_major="^([0-9]+)\.[0-9]+"
|
||||
re_v_alpha="^([0-9]+\.[0-9]+)"
|
||||
re_v_build="^[0-9]+\.[0-9]+\.([0-9]+)"
|
||||
|
||||
### Core Parsing ###
|
||||
|
||||
# $1 - should be the $line being processed.
|
||||
get_line_type() {
|
||||
line_type="other"
|
||||
|
||||
if [[ "$1" =~ $re_title ]]; then
|
||||
line_type="title"
|
||||
elif [[ "$1" =~ $re_header ]]; then
|
||||
line_type="version-header"
|
||||
line_version="${BASH_REMATCH[1]}"
|
||||
line_tier="${BASH_REMATCH[2]}"
|
||||
line_date="${BASH_REMATCH[3]}"
|
||||
elif [[ "$1" =~ $re_blank ]]; then
|
||||
line_type="whitespace"
|
||||
elif [[ "$1" =~ $re_item ]]; then
|
||||
line_type="listitem"
|
||||
fi
|
||||
|
||||
# This section is quite useful for debugging purposes.
|
||||
#if [[ $line_type != "other" ]]; then
|
||||
_hu_debug "$line_type: $1"
|
||||
#fi
|
||||
}
|
||||
|
||||
# $1 - the markdown block to be processed. May be the subset of a file, rather than its full body.
|
||||
# $2 - a shell script command to be performed on the line. Shell script functors!
|
||||
# $3, $4 - external arguments provided to the shell script command.
|
||||
process_history_loop() {
|
||||
# Grabs one line from the specified file at a time.
|
||||
#printf "%s\n" "$1" | while IFS= read -r line || [[ -n "$line" ]]; do
|
||||
while IFS= read -r line || [[ -n "$line" ]]; do
|
||||
# Do things with the $line.
|
||||
# Like, what kind of $line is this?
|
||||
$2 "$line" "$3" "$4" "$5"
|
||||
done <<< "$1" # The triple <<< forces the loop to evaluate within the same script, preserving variable changes.
|
||||
}
|
||||
|
||||
### Version Changelog Extraction ###
|
||||
|
||||
# $1 - a full version string (likely in major.minor.build form)
|
||||
# Returns $v_alpha, containing only major.minor if it may be extracted. Returns $1 if not.
|
||||
get_alpha_version() {
|
||||
[[ $1 =~ $re_v_alpha ]]
|
||||
if [ ! -z ${BASH_REMATCH[1]} ]; then
|
||||
v_alpha=${BASH_REMATCH[1]}
|
||||
else
|
||||
v_alpha=$1
|
||||
fi
|
||||
}
|
||||
|
||||
# $1 - a full version string
|
||||
# Returns $v_build, containing the final .build portion of a major.minor.build version number.
|
||||
# If missing, returns an empty string.
|
||||
get_build_number() {
|
||||
[[ "$1" =~ $re_v_build ]]
|
||||
if [ ! -z "${BASH_REMATCH[1]}" ]; then
|
||||
v_build="${BASH_REMATCH[1]}"
|
||||
else
|
||||
v_build=
|
||||
fi
|
||||
}
|
||||
|
||||
# Used internally by get_version_notes, passed as a pseudo-functor to process_history_loop.
|
||||
get_version_helper() {
|
||||
local line="$1"
|
||||
local version="$2"
|
||||
local tier="$3"
|
||||
local product="$4"
|
||||
get_line_type "$line"
|
||||
|
||||
if [ $in_block = true ]; then
|
||||
if [[ $line_type = "version-header" ]]; then
|
||||
in_block=false
|
||||
elif [[ $line_type = "listitem" ]]; then
|
||||
if [[ "$product" == "ios" ]]; then
|
||||
# We have to filter out other platforms to satisfy Apple
|
||||
if [[ "$line" =~ \(ios|web|common ]]; then
|
||||
echo "$line" | sed -e "s/Android/mobile platform/"
|
||||
fi
|
||||
else
|
||||
if [[ "$line" =~ "\($product|web|common" ]]; then
|
||||
echo "$line"
|
||||
fi
|
||||
fi
|
||||
elif [[ $line_type = "whitespace" ]]; then
|
||||
echo "";
|
||||
fi
|
||||
else
|
||||
v= # Must be cleared initially for the test to work correctly!
|
||||
t=
|
||||
d=
|
||||
|
||||
if [[ $line_type = "version-header" ]]; then
|
||||
d="$line_date"
|
||||
v="$line_version"
|
||||
t="$line_tier"
|
||||
fi
|
||||
|
||||
# Splits the version numbers into their components to facilitate finding
|
||||
# 1) the FIRST version in history.md
|
||||
# 2) with equal to or lesser version
|
||||
# 3) of the same tier.
|
||||
if [[ "$v" != "" && "$t" = "$tier" && $version_found = false ]]; then
|
||||
get_alpha_version "$v"
|
||||
get_build_number "$v"
|
||||
|
||||
found_v="$v_alpha"
|
||||
found_b="$v_build"
|
||||
|
||||
get_alpha_version "$version"
|
||||
get_build_number "$version"
|
||||
|
||||
search_v="$v_alpha"
|
||||
search_b="$v_build"
|
||||
|
||||
if [[ "$found_v" = "$search_v" && ( $found_b -le $search_b ) ]]; then
|
||||
in_block=true
|
||||
version_found=true
|
||||
|
||||
if [[ -n $d ]]; then
|
||||
echo "Published on $d."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# $1 - the product whose version notes we wish to obtain
|
||||
# $2 - the version number to be obtained.
|
||||
# $3 - the tier of the product to be obtained (alpha, beta, stable)
|
||||
get_version_notes() {
|
||||
# State-tracking variable(s).
|
||||
in_block=false
|
||||
version_found=false
|
||||
|
||||
local vn_product=$1
|
||||
local vn_version=$2
|
||||
local vn_tier=$3
|
||||
|
||||
get_history_file
|
||||
process_history_loop "${history_file}" get_version_helper "$vn_version" "$vn_tier" "$vn_product"
|
||||
|
||||
if [ $version_found = false ]; then
|
||||
builder_die "Could not find changelog information for $vn_product version $vn_version $vn_tier."
|
||||
fi
|
||||
}
|
||||
|
||||
### End Version Changelog Extraction ###
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
echo "**TODO** Update script to work with new history/versioning"
|
||||
exit 1
|
||||
|
||||
FAIL=0
|
||||
./validateHistory.sh android || FAIL=$(($FAIL + 1))
|
||||
./validateHistory.sh desktop || FAIL=$(($FAIL + 2))
|
||||
./validateHistory.sh developer || FAIL=$(($FAIL + 4))
|
||||
./validateHistory.sh ios || FAIL=$(($FAIL + 8))
|
||||
./validateHistory.sh linux || FAIL=$(($FAIL + 16))
|
||||
./validateHistory.sh mac || FAIL=$(($FAIL + 32))
|
||||
./validateHistory.sh web || FAIL=$(($FAIL + 64))
|
||||
echo Final status = $FAIL
|
||||
exit $FAIL
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
echo "**TODO** Update script to work with new history/versioning"
|
||||
exit 1
|
||||
|
||||
_hu_base_dir=$(dirname "$BASH_SOURCE")/..
|
||||
|
||||
. $_hu_base_dir/resources/historyUtils.sh
|
||||
|
||||
# Insert the shorthand for a platform as the command-line argument.
|
||||
validate_history_file "$1"
|
||||
|
|
@ -32,6 +32,7 @@ KEYMAN_MIN_VERSION_EMSCRIPTEN=3.1.64 # Use KEYMAN_USE_EMSDK to automati
|
|||
KEYMAN_MIN_VERSION_VISUAL_STUDIO=2022 # Visual Studio 2022, see /docs/build/windows.md for workloads and components
|
||||
KEYMAN_MIN_VERSION_MESON=1.0.0 # TODO: rename meson_options.txt to meson.options when updating to >= 1.1, see #15127.
|
||||
KEYMAN_VERSION_XCODE=26.2 # XCode 26.2 is the current supported version; download from https://developer.apple.com/download/all/
|
||||
KEYMAN_VERSION_SENTRY_CLI=1.70.0 # sentry-cli used to upload debug information to Sentry during CI
|
||||
|
||||
KEYMAN_VERSION_GRADLE=8.12 # See /android/KMEA/gradle/wrapper/gradle-wrapper.properties
|
||||
|
||||
|
|
@ -52,4 +53,4 @@ KEYMAN_VERSION_ISO639_3=2026-08-17 # Date of last import
|
|||
KEYMAN_VERSION_LANGTAGS=2026-06-09 # _version value
|
||||
KEYMAN_VERSION_LANGTAGS_API=1.4 # Langtags API version supported
|
||||
KEYMAN_VERSION_LANGUAGE_SUBTAG_REGISTRY=2026-08-08 # Date from first line of language-subtag-registry
|
||||
KEYMAN_VERSION_UNICODE=17.0.0 # UCD + related data
|
||||
KEYMAN_VERSION_UNICODE=17.0.0 # UCD + related data
|
||||
|
|
|
|||
|
|
@ -2,6 +2,42 @@
|
|||
title: What's New in KeymanWeb 20.0
|
||||
---
|
||||
|
||||
* **BREAKING** `file:` protocol is no longer supported, as keyboards are loaded
|
||||
with `fetch()` API (#12334)
|
||||
* Bug fix: the `keyboardloaded` event now fires only once per loaded keyboard.
|
||||
Previously the event fired twice. (#16297)
|
||||
* Fixed `loaduserinterface` and `unloaduserinterface` events to fire
|
||||
consistently (#16353)
|
||||
* Clarified use of asynchronous APIs (such as `addKeyboards()`) (#16064)
|
||||
* Cleanup of various examples (#16064)
|
||||
* Addressed several bugs with control of active keyboard (#16524)
|
||||
* Removed `keyman.FocusLastActiveElement()` (use
|
||||
`keyman.focusLastActiveElement()`) (#16170)
|
||||
* Removed `keyman.GetLastActiveElement()` (use `keyman.getLastActiveElement()`)
|
||||
(#16170)
|
||||
* Removed `keyman.HideHelp()` (use `keyman.osk.hide()`) (#16170)
|
||||
* Removed `keyman.ShowHelp()` (use `keyman.osk.show()`, `keyman.osk.setRect()`)
|
||||
(#16170)
|
||||
* Removed `keyman.ShowPinnedHelp()` (use `keyman.osk.show()`,
|
||||
`keyman.osk.setRect()`) (#16170)
|
||||
* Deprecated `keyman.build` and `keyman.version` (use `keyman.versionInfo`)
|
||||
(#16351)
|
||||
* Deprecated `keyman.helpURL` (use Keyman Cloud APIs) (#16351)
|
||||
* Deprecated `keyman.moveToElement` (use `elem.focus()`) (#16661)
|
||||
* Deprecated `keyman.interface.FocusLastActiveElement()` (use
|
||||
`keyman.interface.focusLastActiveTextStore()`) (#16170)
|
||||
* Deprecated `keyman.interface.GetLastActiveElement()` (use
|
||||
`keyman.interface.getLastActiveTextStore()`) (#16170)
|
||||
* Deprecated `keyman.interface.HideHelp()` (use `keyman.osk.hide()`) (#16170)
|
||||
* Deprecated `keyman.interface.ShowHelp()` (use `keyman.osk.show()`) (#16170)
|
||||
* Deprecated `keyman.interface.ShowPinnedHelp()` (use `keyman.osk.show()`,
|
||||
`keyman.osk.setRect()`) (#16170)
|
||||
* Deprecated `keyman.util.toFloat()` (#16351)
|
||||
* Deprecated `keyman.util.toNumber()` (#16351)
|
||||
* Deprecated `keyman.util.toNzString()` (#16351)
|
||||
* Removed deprecated `onunloaded` handler (#16351)
|
||||
* About [550 other fixes and changes](https://keyman.com/go/app/whatsnew/web/19.0)
|
||||
|
||||
## See also
|
||||
|
||||
* [Keyman Engine for Web Documentation](index)
|
||||
|
|
|
|||
|
|
@ -423,7 +423,7 @@ export class ContextManager extends ContextManagerBase<BrowserConfiguration> {
|
|||
*/
|
||||
public setKeyboardForTextStore(textStore: AbstractElementTextStore<any>, kbdId?: string | null, langId?: string | null): void {
|
||||
if(textStore instanceof DesignIFrameElementTextStore) {
|
||||
console.warn("'keymanweb.setKeyboardForControl' cannot set keyboard on iframes.");
|
||||
console.warn("ContextManager.setKeyboardForTextStore cannot set keyboard on iframes.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,28 +77,28 @@ export class KeymanEngine extends KeymanEngineBase<BrowserConfiguration, Context
|
|||
|
||||
// Scrolls the document-body to ensure that a focused element remains visible after the OSK appears.
|
||||
this.contextManager.on('textstorechange', (textStore) => {
|
||||
const e = (textStore as AbstractElementTextStore<any>)?.getElement();
|
||||
const elem = (textStore as AbstractElementTextStore<any>)?.getElement();
|
||||
if(this.osk) {
|
||||
(this.osk.activationModel as TwoStateActivator<HTMLElement>).activationTrigger = e;
|
||||
(this.osk.activationModel as TwoStateActivator<HTMLElement>).activationTrigger = elem;
|
||||
}
|
||||
|
||||
if(this.config.hostDevice.touchable && textStore) {
|
||||
this.ensureElementVisibility(e);
|
||||
this.ensureElementVisibility(elem);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ensureElementVisibility(e: HTMLElement): void {
|
||||
if(!e || !this.osk) {
|
||||
public ensureElementVisibility(elem: HTMLElement): void {
|
||||
if(!elem || !this.osk) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the absolute position of the caret
|
||||
const y = getAbsoluteY(e);
|
||||
const y = getAbsoluteY(elem);
|
||||
const t = window.pageYOffset;
|
||||
let dy = y-t;
|
||||
if(y >= t) {
|
||||
dy -= (window.innerHeight - this.osk._Box.offsetHeight - e.offsetHeight - 2);
|
||||
dy -= (window.innerHeight - this.osk._Box.offsetHeight - elem.offsetHeight - 2);
|
||||
if(dy < 0) {
|
||||
dy=0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { LexicalModelTypes } from '@keymanapp/common-types';
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import fs from 'fs';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { LMLayer, WebWorker } from "@keymanapp/lexical-model-layer/web";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { LMLayer, WebWorker } from "@keymanapp/lexical-model-layer/web";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { LMLayer, WebWorker } from "@keymanapp/lexical-model-layer/web";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
export let defaultCapabilities = {
|
||||
maxLeftContextCodeUnits: 64
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { timedPromise } from "keyman/common/web-utils";
|
||||
|
||||
const MIN_OUTLIER = 1; // 1ms.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import { LMLayerWorkerCode } from "@keymanapp/lm-worker/worker-main.wrapped.js";
|
||||
import { DEFAULT_BROWSER_TIMEOUT } from '@keymanapp/common-test-resources/test-timeouts.mjs';
|
||||
|
|
|
|||
|
|
@ -1,38 +1,42 @@
|
|||
/**
|
||||
* Checks the type of an input DOM-related object while ensuring that it is checked against the correct prototype,
|
||||
* as class prototypes are (by specification) scoped upon the owning Window.
|
||||
* Checks the type of an input DOM-related object while ensuring that it
|
||||
* is checked against the correct prototype, as class prototypes are (by
|
||||
* specification) scoped upon the owning Window.
|
||||
*
|
||||
* See https://stackoverflow.com/questions/43587286/why-does-instanceof-return-false-on-chrome-safari-and-edge-and-true-on-firefox
|
||||
* See
|
||||
* https://stackoverflow.com/questions/43587286/why-does-instanceof-return-false-on-chrome-safari-and-edge-and-true-on-firefox
|
||||
* for more details.
|
||||
*
|
||||
* @param {EventTarget} Pelem An element of the web page or one of its IFrame-based subdocuments.
|
||||
* @param {string} className The plain-text name of the expected Element type.
|
||||
* @param {EventTarget} elem An element of the web page or one of
|
||||
* its IFrame-based subdocuments.
|
||||
* @param {string} className The plain-text name of the expected
|
||||
* Element type.
|
||||
* @return {boolean}
|
||||
*/
|
||||
export function nestedInstanceOf(Pelem: EventTarget, className: string): boolean {
|
||||
export function nestedInstanceOf(elem: EventTarget, className: string): boolean {
|
||||
let scopedClass;
|
||||
|
||||
if(!Pelem) {
|
||||
if(!elem) {
|
||||
// If we're bothering to check something's type, null references don't match
|
||||
// what we're looking for.
|
||||
return false;
|
||||
}
|
||||
// @ts-ignore
|
||||
if (Pelem['Window']) { // Window objects contain the class definitions for types held within them. So, we can check for those.
|
||||
if (elem['Window']) { // Window objects contain the class definitions for types held within them. So, we can check for those.
|
||||
return className == 'Window';
|
||||
// @ts-ignore
|
||||
} else if (Pelem['defaultView']) { // Covers Document.
|
||||
} else if (elem['defaultView']) { // Covers Document.
|
||||
// @ts-ignore
|
||||
scopedClass = (Pelem as Document)['defaultView'][className];
|
||||
scopedClass = (elem as Document)['defaultView'][className];
|
||||
// @ts-ignore
|
||||
} else if(Pelem['ownerDocument']) {
|
||||
} else if(elem['ownerDocument']) {
|
||||
// @ts-ignore
|
||||
scopedClass = (Pelem as Node).ownerDocument.defaultView[className];
|
||||
scopedClass = (elem as Node).ownerDocument.defaultView[className];
|
||||
}
|
||||
|
||||
if(scopedClass) {
|
||||
return Pelem instanceof scopedClass;
|
||||
return elem instanceof scopedClass;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,13 +85,14 @@ export class PredictionContext extends EventEmitter<PredictionContextEventMap> {
|
|||
this.currentTextStore && langProcessor.state == 'configured';
|
||||
|
||||
this.suggestionApplier = (suggestion, processorAction) => {
|
||||
if(validSuggestionState()) {
|
||||
if (validSuggestionState()) {
|
||||
const results = langProcessor.applySuggestion(suggestion, this.currentTextStore, getLayerId, processorAction);
|
||||
results.reversion.then((reversion) => this._immediateReversion = reversion);
|
||||
return results.appendedProcessorAction;
|
||||
} else {
|
||||
return null;
|
||||
if (results) {
|
||||
results.reversion.then((reversion) => this._immediateReversion = reversion);
|
||||
return results.appendedProcessorAction;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
this.suggestionReverter = async (reversion) => {
|
||||
|
|
@ -316,4 +317,4 @@ export class PredictionContext extends EventEmitter<PredictionContextEventMap> {
|
|||
this.resetContext();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export class TranscriptionCache extends RewindableCache<Transcription> {
|
|||
});
|
||||
|
||||
return entries
|
||||
.map(({key, entry}) => `Context state ${key}'s keystroke:\n${entry.keystroke.inputBreadcrumb ?? ''}`)
|
||||
.map(({key, entry}) => `Context state ${key}'s keystroke:\n${entry?.keystroke?.inputBreadcrumb ?? ''}`)
|
||||
.join('\n');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -577,8 +577,10 @@ export class SuggestionBanner extends Banner {
|
|||
return;
|
||||
}
|
||||
|
||||
const autoselection = this._predictionContext.selected;
|
||||
this._predictionContext.selected = null;
|
||||
const autoselection = this.predictionContext?.selected;
|
||||
if (this.predictionContext) {
|
||||
this.predictionContext.selected = null;
|
||||
}
|
||||
// Always clear pre-existing selections when a new banner input/gesture starts.
|
||||
this.options.forEach((entry) => {
|
||||
entry.highlight(false);
|
||||
|
|
@ -628,9 +630,13 @@ export class SuggestionBanner extends Banner {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!this.predictionContext) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The suggestions are still current? Then restore the original
|
||||
// auto-correct suggestion and its highlighting.
|
||||
this._predictionContext.selected = autoselection;
|
||||
this.predictionContext.selected = autoselection;
|
||||
if(autoselection) {
|
||||
for(const entry of this.options) {
|
||||
if(entry.suggestion == autoselection) {
|
||||
|
|
@ -668,11 +674,11 @@ export class SuggestionBanner extends Banner {
|
|||
// Invalidate the suggestions internally, but don't visually update;
|
||||
// this will avoid banner-flicker.
|
||||
this.currentSuggestions = [];
|
||||
this.predictionContext.accept(suggestion.suggestion);
|
||||
this.predictionContext?.accept(suggestion.suggestion);
|
||||
// Trigger new predictions, as no input exists to trigger new ones otherwise.
|
||||
// Reversions will re-use old suggestions, though.
|
||||
if(suggestion.suggestion.tag != 'revert') {
|
||||
this.predictionContext.triggerPredictions();
|
||||
this.predictionContext?.triggerPredictions();
|
||||
}
|
||||
|
||||
// Reset the scroll state
|
||||
|
|
|
|||
|
|
@ -183,23 +183,22 @@ export class FloatingOSKView extends OSKView {
|
|||
}.bind(this);
|
||||
|
||||
/**
|
||||
* Function enabled
|
||||
* Scope Public
|
||||
* @return {boolean|number} True if KMW OSK enabled
|
||||
* Description Test if KMW OSK is enabled
|
||||
* Test if KMW OSK is enabled
|
||||
*
|
||||
* @return {boolean} True if KMW OSK enabled
|
||||
*/
|
||||
['isEnabled'](): boolean {
|
||||
public isEnabled(): boolean {
|
||||
return this.displayIfActive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function isVisible
|
||||
* Scope Public
|
||||
* @return {boolean|number} True if KMW OSK visible
|
||||
* Description Test if KMW OSK is actually visible
|
||||
* Note that this will usually return false after any UI event that results in (temporary) loss of input focus
|
||||
* Test if KMW OSK is actually visible
|
||||
* Note that this will usually return false after any UI event that results in
|
||||
* (temporary) loss of input focus.
|
||||
*
|
||||
* @return {boolean} True if KMW OSK visible
|
||||
*/
|
||||
['isVisible'](): boolean {
|
||||
public isVisible(): boolean {
|
||||
return this._Visible;
|
||||
}
|
||||
|
||||
|
|
@ -504,30 +503,30 @@ export class FloatingOSKView extends OSKView {
|
|||
}
|
||||
|
||||
public setDisplayPositioning() {
|
||||
const Ls = this._Box.style;
|
||||
const {style} = this._Box;
|
||||
|
||||
Ls.position='absolute';
|
||||
style.position='absolute';
|
||||
// Keep it hidden if not currently displayed.
|
||||
if(this.activationModel.activate) {
|
||||
Ls.display='block'; //Ls.visibility='visible';
|
||||
style.display='block'; //Ls.visibility='visible';
|
||||
}
|
||||
Ls.left='0px';
|
||||
style.left='0px';
|
||||
if(this.specifiedPosition || this.userPositioned) {
|
||||
Ls.left = this.x+'px';
|
||||
Ls.top = this.y+'px';
|
||||
style.left = this.x+'px';
|
||||
style.top = this.y+'px';
|
||||
} else {
|
||||
const el: HTMLElement = this.typedActivationModel.activationTrigger || null;
|
||||
|
||||
if(this.dfltX) {
|
||||
Ls.left=this.dfltX;
|
||||
style.left=this.dfltX;
|
||||
} else if(typeof el != 'undefined' && el != null) {
|
||||
Ls.left=getAbsoluteX(el) + 'px';
|
||||
style.left=getAbsoluteX(el) + 'px';
|
||||
}
|
||||
|
||||
if(this.dfltY) {
|
||||
Ls.top=this.dfltY;
|
||||
style.top=this.dfltY;
|
||||
} else if(typeof el != 'undefined' && el != null) {
|
||||
Ls.top=(getAbsoluteY(el) + el.offsetHeight)+'px';
|
||||
style.top=(getAbsoluteY(el) + el.offsetHeight)+'px';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -584,24 +583,22 @@ export class FloatingOSKView extends OSKView {
|
|||
}
|
||||
}
|
||||
|
||||
['show'](bShow?: boolean) {
|
||||
public show(bShow?: boolean) {
|
||||
if(bShow !== undefined) {
|
||||
super['show'](bShow);
|
||||
super.show(bShow);
|
||||
} else {
|
||||
super['show']();
|
||||
super.show();
|
||||
}
|
||||
this.savePersistedLayout();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function userPositioned
|
||||
* Scope Public
|
||||
* @return {(boolean|number)} true if user located
|
||||
* Description Test if OSK window has been repositioned by user
|
||||
*
|
||||
* Test if OSK window has been repositioned by user
|
||||
* See https://help.keyman.com/developer/engine/web/current-version/reference/osk/userLocated
|
||||
*
|
||||
* @return {boolean} true if user located
|
||||
*/
|
||||
public userLocated() {
|
||||
public userLocated(): boolean {
|
||||
return this.userPositioned;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1280,12 +1280,11 @@ export abstract class OSKView
|
|||
* @return {boolean}
|
||||
*
|
||||
*/
|
||||
doShow(p: {
|
||||
protected doShow(p: {
|
||||
x: number,
|
||||
y: number,
|
||||
userLocated: boolean
|
||||
}) {
|
||||
// Newer style 'doShow' emitted from .present by default.
|
||||
this.legacyEvents.callEvent('show', p);
|
||||
}
|
||||
|
||||
|
|
@ -1296,7 +1295,7 @@ export abstract class OSKView
|
|||
* @return {void}
|
||||
*
|
||||
*/
|
||||
doHide(hiddenByUser: boolean) {
|
||||
protected doHide(hiddenByUser: boolean) {
|
||||
const p={
|
||||
HiddenByUser: hiddenByUser
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { PageContextAttachment } from 'keyman/engine/attachment';
|
||||
import { DeviceSpec, timedPromise } from 'keyman/common/web-utils';
|
||||
import { DEFAULT_BROWSER_TIMEOUT } from '@keymanapp/common-test-resources/test-timeouts.mjs';
|
||||
|
|
@ -867,4 +870,4 @@ describe('KMW element-attachment logic', function () {
|
|||
attacher.shutdown();
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { ContextManager } from 'keyman/app/browser';
|
||||
import { textStoreForElement } from 'keyman/engine/attachment';
|
||||
import { TextAreaElementTextStore } from 'keyman/engine/element-text-stores';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { CookieSerializer } from 'keyman/engine/dom-utils';
|
||||
import { assert } from 'chai';
|
||||
|
||||
|
|
@ -137,4 +140,4 @@ describe('CookieSerializer', function () {
|
|||
assert.sameDeepMembers(result, []);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { KMWString } from 'keyman/common/web-utils';
|
||||
|
|
@ -1412,4 +1415,4 @@ describe('Element InputElementTextStore/Output Interfacing', function () {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { KMWString } from 'keyman/common/web-utils';
|
||||
|
|
@ -148,4 +151,4 @@ describe('SyntheticTextStore', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -126,4 +129,4 @@ describe("'Canary' checks", function() {
|
|||
assert.isTrue(fakeHandler.called, "Unit test attempt failed: handler was not called successfully.");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -96,4 +99,4 @@ describe("Layer one - DOM -> InputSequence", function() {
|
|||
assert.equal(recorder.count, 0, "Input starting outside the main receiver element's hierarchy was not ignored!");
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert, expect } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -156,4 +159,4 @@ describe("Layer one - DOM -> InputSequence", function() {
|
|||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -171,4 +174,4 @@ describe("Cloud-query interface", () => {
|
|||
assert.isTrue(stubs[0].KF.includes('s.keyman.com')); // The keyboardsURI property from the cloud options should be applied.
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -96,4 +99,4 @@ describe("Mocked cloud query results ('canary' testing)", () => {
|
|||
assert.isOk(keyboard.languages.find((language: any) => language.id == 'dz'));
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -108,4 +111,4 @@ describe("KeyboardRequisitioner", function () {
|
|||
assert.strictEqual(cache.getKeyboardForStub(stub), khmer_angkor);
|
||||
assert.isOk(khmer_angkor);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { DOMKeyboardLoader } from 'keyman/engine/keyboard';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import * as KeymanOSK from 'keyman/engine/osk';
|
||||
import { DeviceDetector } from 'keyman/engine/main';
|
||||
|
||||
|
|
@ -131,4 +134,4 @@ describe('OSK activation', function () {
|
|||
assert.equal(container.offsetWidth, 600);
|
||||
assert.equal(container.offsetHeight, 400);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import * as KeymanOSK from 'keyman/engine/osk';
|
||||
import { DeviceDetector } from 'keyman/engine/main';
|
||||
|
||||
|
|
@ -82,4 +85,4 @@ describe('OSK events', function () {
|
|||
osk.activationModel.enabled = true;
|
||||
assert.isTrue(legacyShowStub.calledOnce);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
// A simple "does device detection work properly" unit test.
|
||||
// We'll let things break after this reports, since this will likely signal a LOT of other failures.
|
||||
import { assert } from 'chai';
|
||||
|
|
@ -26,4 +29,4 @@ describe('Test Initialization', function() {
|
|||
assert.fail(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import {
|
||||
DOMKeyboardLoader,
|
||||
JSKeyboard,
|
||||
|
|
@ -59,4 +62,4 @@ export function loadKeyboardsFromStubs(apiStubs: any, baseDir: string) {
|
|||
}
|
||||
|
||||
return priorPromise.then(() => keyboards);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
// Defines an object for dynamically adding elements for testing purposes.
|
||||
// Designed for use with the robustAttachment.html fixture.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { unitTestEndPoints } from 'keyman/app/browser';
|
||||
|
|
@ -593,4 +596,4 @@ describe("app/browser: hardware event processing", () => {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
// @ts-ignore // Type info unavailable; doing a npm-install for it breaks things much worse in other ways.
|
||||
import { JSDOM } from 'jsdom';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -47,4 +50,4 @@ describe("EmitterListenerSpy", () => {
|
|||
assert.isTrue(fakeRemoveListener.calledOnce);
|
||||
assert.equal(fakeRemoveListener.firstCall.args[0], 'event');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -29,4 +32,4 @@ describe("LegacyEventEmitter", () => {
|
|||
* - Adherence to the callEvent return-type spec
|
||||
* - Listener returns false => no further listeners get called.
|
||||
*/
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { PathOptionDefaults, PathConfiguration } from 'keyman/engine/interfaces';
|
||||
|
|
@ -67,4 +70,4 @@ describe("Path Configuration", () => {
|
|||
assert.equal(paths.keyboards, '');
|
||||
assert.equal(paths.fonts, '');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from "chai";
|
||||
import { DEFAULT_PROCESSOR_INIT_OPTIONS } from 'keyman/test/resources';
|
||||
import { JSKeyboardProcessor } from "keyman/engine/js-processor";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
@ -1233,4 +1236,4 @@ describe('Engine - Context Matching', function() {
|
|||
runEngineRuleSet([NOTANY_NUL_TEST_3]);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
@ -103,4 +106,4 @@ describe('Engine - notany() and context()', function() {
|
|||
it('verify notany comparison flip correction from #3817', function() {
|
||||
runStringRuleSet('YZ', 'pass!');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { KMWString } from 'keyman/common/web-utils';
|
||||
|
|
@ -49,4 +52,4 @@ describe('Engine - Stores', function() {
|
|||
});
|
||||
|
||||
// TODO: Migrate a Node-based copy of the variable store tests here as well.
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import { ModifierKeyConstants } from '@keymanapp/common-types';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { SyntheticTextStore, findCommonSubstringEndIndex } from 'keyman/engine/keyboard';
|
||||
|
|
@ -509,4 +512,4 @@ but not himself.`; // Sheev Palpatine, in the Star Wars prequels.
|
|||
});
|
||||
});
|
||||
*/
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
import fs from 'fs';
|
||||
|
|
@ -172,4 +175,4 @@ describe('StubAndKeyboardCache', function () {
|
|||
assert.isTrue(err.message.includes('bad_stub'));
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
|
@ -95,4 +98,4 @@ describe('Keyboard Properties', function() {
|
|||
propObject.displayName = customDisplayName;
|
||||
assert.equal(propObject.displayName, customDisplayName);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { createRequire } from 'module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import { SyntheticTextStore } from 'keyman/engine/keyboard';
|
||||
|
||||
|
|
@ -89,4 +92,4 @@ describe('SyntheticTextStoreTests', function() {
|
|||
assert.deepEqual(postClear, editTextStore);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { env } from 'node:process';
|
||||
import fs from 'node:fs';
|
||||
import { createRequire } from 'node:module';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -230,4 +233,4 @@ describe("Activators", () => {
|
|||
assert.deepStrictEqual(stub.firstCall.args[0], object);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import { default as sinon, type SinonSpy } from 'sinon';
|
||||
import { AsyncClosureDispatchQueue, type QueueClosure } from 'keyman/engine/gesture-processor';
|
||||
|
|
@ -233,4 +236,4 @@ describe('AsyncClosureDispatchQueue', () => {
|
|||
fakeTimers.restore();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
import path from 'path';
|
||||
|
|
@ -289,4 +292,4 @@ describe("GesturePath", function() {
|
|||
this.fakeClock.restore();
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import { GestureDebugSource, InputSample } from 'keyman/engine/gesture-processor';
|
||||
|
||||
|
|
@ -217,4 +220,4 @@ describe("GestureSource", function() {
|
|||
source.popRecognizerConfig();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
import * as PromiseStatusModule from 'promise-status-async';
|
||||
|
|
@ -908,4 +911,4 @@ describe("GestureMatcher", function() {
|
|||
assert.isTrue(sources[0].path.isComplete);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { GestureModelDefs, gestures } from 'keyman/engine/gesture-processor';
|
||||
|
|
@ -44,4 +47,4 @@ describe("Gesture model definitions", () => {
|
|||
assert.throws(() => getGestureModelSet(TestGestureModelDefinitions, 'malformed'));
|
||||
assert.throws(() => getGestureModelSet(TestGestureModelDefinitions, 'unavailable-set'));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
import * as PromiseStatusModule from 'promise-status-async';
|
||||
|
|
@ -586,4 +589,4 @@ describe("GestureSequence", function() {
|
|||
|
||||
await sequenceEmulationAndAssertion(emulationEngine, completionPromise, [sequenceAssertion]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
|
||||
|
|
@ -749,4 +752,4 @@ describe("MatcherSelector", function () {
|
|||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
import * as PromiseStatusModule from 'promise-status-async';
|
||||
|
|
@ -746,4 +749,4 @@ describe("PathMatcher", function() {
|
|||
assert.deepEqual(await modelMatcher.promise, {type: 'reject', cause: 'item'});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
/*
|
||||
* Keyman is copyright (C) SIL Global. MIT License.
|
||||
*/
|
||||
import { assert } from 'chai'
|
||||
import sinon from 'sinon';
|
||||
import * as PromiseStatusModule from 'promise-status-async';
|
||||
|
|
@ -1749,4 +1752,4 @@ describe("TouchpointCoordinator", () => {
|
|||
await runnerPromise;
|
||||
assert.isEmpty(touchpointCoordinator.activeGestures);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue