Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ldml_test] add experimental/sil/ldml_test #2865

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions experimental/sil/ldml_test/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/build
/*.kpj.user
Comment on lines +1 to +2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should not be needed as both of these are in the root-level .gitignore

6 changes: 6 additions & 0 deletions experimental/sil/ldml_test/HISTORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
LDML Test Change History
====================

1.0.0 (2024-02-14)
----------------
* Created by Steven R. Loomis
21 changes: 21 additions & 0 deletions experimental/sil/ldml_test/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright © 2024 Steven R. Loomis

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
98 changes: 98 additions & 0 deletions experimental/sil/ldml_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
LDML Test keyboard
==============

Description
-----------
Test Keyboard for LDML


Trying it Out
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of this information would be better placed in welcome.htm -- then it is available when the keyboard is installed, and not just in the source.

-------------

This section describes how to test the keyboard. For example, typing <kbd>1</kbd> will produce `1:basic:OK`. Following these steps in order will make sure the keyboard (and the implementation) is working properly.

Each of the steps produces output ending in `:OK`. You can press <kbd>enter</kbd> in between steps to put the output on separate lines.

### Direct key output

1. Press: <kbd>1</kbd>
2. Check: `1:basic:OK`

### A simple transform

1. Press: <kbd>2</kbd>
2. Check: `2:simple_transform:OK`

### Marker transform

1. Press: <kbd>3</kbd>
2. Check: `3:simple_marker:OK`

### Simple reorder

1. Press: <kbd>4</kbd>
2. Check: `4:simple_reorder:OK`

### Variable substitution

1. Press: <kbd>5</kbd>
2. Check: `5:simple_vars:OK`

### Mapped variable substitution

1. Press: <kbd>6</kbd>
2. Check: `6:map_var:OK`

### Uset subtitution

1. Press: <kbd>7</kbd>
2. Check: `7:simple_uset:OK`

### Context

1. Type or paste in: `ABC` and position the cursor after that text
2. Type: <kbd>8</kbd>
3. Check: `8:ctxt:OK`

### Non-BMP Context

1. Paste in: `𐓏` and position the cursor after that text
2. Type: <kbd>8</kbd>
3. Check: `8:ctxt:OK`

### Two-part Non-BMP Context

1. Paste in: `𐒻` and position the cursor after that text
2. Type: <kbd>Shift</kbd><kbd>8</kbd>
3. Type: <kbd>8</kbd>
4. Check: `8:ctxt:OK`

### Two-part Marker Test

1. Type: <kbd>9</kbd> (you will see FAIL temporarily, but continue to the next step)
2. Type: <kbd>Shift</kbd><kbd>9</kbd>
3. Check: `9:split_marker:OK`


Links
-----
Keyboard Homepage: https://keyman.com/keyboards/ldml_test

Copyright
---------
See [LICENSE.md](LICENSE.md)

Supported Platforms
-------------------
* Windows
* macOS
* Linux
* Web
* iPhone
* iPad
* Android phone
* Android tablet
* Mobile devices
* Desktop devices
* Tablet devices

8 changes: 8 additions & 0 deletions experimental/sil/ldml_test/ldml_test.kpj
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<KeymanDeveloperProject>
<Options>
<Version>2.0</Version>
<CompilerWarningsAsErrors>True</CompilerWarningsAsErrors>
<CheckFilenameConventions>True</CheckFilenameConventions>
</Options>
</KeymanDeveloperProject>
93 changes: 93 additions & 0 deletions experimental/sil/ldml_test/source/ldml_test-test.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE keyboardTest3 SYSTEM "../../../../../resources/standards-data/ldml-keyboards/45/dtd/ldmlKeyboardTest3.dtd">
<keyboardTest3 conformsTo="techpreview">
<info keyboard="ldml_test.xml" author="srl295" name="test" />

<tests name="separate">
<!-- test direct key output
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-key -->
<test name="key-1">
<keystroke key="1" />
<check result="1:basic:OK" />
</test>
<!-- test a simple transform
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-transform -->
<test name="key-2">
<keystroke key="2" />
<check result="2:simple_transform:OK" />
</test>
<!-- test a transform using a marker
https://www.unicode.org/reports/tr35/tr35-keyboards.html#markers -->
<test name="key-3">
<keystroke key="3" />
<check result="3:simple_marker:OK" />
</test>
<!-- test a reorder
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-reorder -->
<test name="key-4">
<keystroke key="4" />
<check result="4:simple_reorder:OK" />
</test>
<!-- test using variable substitution
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-string -->
<test name="key-5">
<keystroke key="5" />
<check result="5:simple_vars:OK" />
</test>
<!-- test a mapped variable substitution
https://www.unicode.org/reports/tr35/tr35-keyboards.html#replacement-syntax -->
<test name="key-6">
<keystroke key="6" />
<check result="6:map_var:OK" />
</test>
<!-- test a uset substitution
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-unicodeset -->
<test name="key-7">
<keystroke key="7" />
<check result="7:simple_uset:OK" />
</test>
<!-- test a different uset substitution
https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-unicodeset -->
<test name="key-shift-7">
<keystroke key="shift-7" />
<check result="7:simple_uset:FAIL" />
</test>
<!-- test pre-existing input context
https://www.unicode.org/reports/tr35/tr35-keyboards.html#test-element-startcontext -->
<test name="key-8">
<startContext to="ABC" />
<keystroke key="8" />
<check result="8:ctxt:OK" />
</test>
<!-- test that the input context is required
https://www.unicode.org/reports/tr35/tr35-keyboards.html#test-element-startcontext -->
<test name="key-8-fail">
<startContext to="" /> <!-- w/o context -->
<keystroke key="8" />
<check result="8:ctxt:FAIL"/>
</test>
<!-- test context with a non-BMP character
https://www.unicode.org/reports/tr35/tr35-keyboards.html#test-element-startcontext -->
<test name="key-8-osage">
<startContext to="𐓏" />
<keystroke key="8" />
<check result="8:ctxt:OK" />
</test>
<!-- test using two pieces of context together with non-BMP chars
https://www.unicode.org/reports/tr35/tr35-keyboards.html#test-element-startcontext -->
<test name="key-8-osage2">
<startContext to="𐒻" />
<keystroke key="shift-8" />
<keystroke key="8" />
<check result="8:ctxt:OK" />
</test>
<!-- test using two markers across two keystrokes
https://www.unicode.org/reports/tr35/tr35-keyboards.html#markers -->
<test name="key-9">
<startContext to="" />
<keystroke key="9" />
<keystroke key="shift-9" />
<check result="9:split_marker:OK" />
</test>
</tests>
</keyboardTest3>
71 changes: 71 additions & 0 deletions experimental/sil/ldml_test/source/ldml_test.kps
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<Package>
<System>
<KeymanDeveloperVersion>17.0.267.0</KeymanDeveloperVersion>
<FileVersion>7.0</FileVersion>
</System>
<Options>
<ExecuteProgram></ExecuteProgram>
<ReadMeFile>readme.htm</ReadMeFile>
<LicenseFile>..\LICENSE.md</LicenseFile>
<MSIFileName></MSIFileName>
<MSIOptions></MSIOptions>
<FollowKeyboardVersion/>
</Options>
<StartMenu>
<Folder></Folder>
<Items/>
</StartMenu>
<Info>
<Name URL="">LDML Test</Name>
<Copyright URL="">Copyright © Steven R. Loomis</Copyright>
<Author URL="">Steven R. Loomis</Author>
<Description URL="">Test Keyboard</Description>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is inadequate detail because this is what will show in the keyboard details on keyman.com. We need this to be clear for end users who encounter it on keyman.com.

<Version URL=""></Version>
</Info>
<Files>
<File>
<Name>..\build\ldml_test.kmx</Name>
<Description></Description>
<CopyLocation>0</CopyLocation>
<FileType>.kmx</FileType>
</File>
<File>
<Name>..\build\ldml_test.kvk</Name>
<Description></Description>
<CopyLocation>0</CopyLocation>
<FileType>.kvk</FileType>
</File>
<File>
<Name>welcome.htm</Name>
<Description></Description>
<CopyLocation>0</CopyLocation>
<FileType>.htm</FileType>
</File>
<File>
<Name>readme.htm</Name>
<Description></Description>
<CopyLocation>0</CopyLocation>
<FileType>.htm</FileType>
</File>
<File>
<Name>..\LICENSE.md</Name>
<Description></Description>
<CopyLocation>0</CopyLocation>
<FileType>.md</FileType>
</File>
</Files>
<Keyboards>
<Keyboard>
<Name>LDML Test</Name>
<ID>ldml_test</ID>
<Version>1.0.0</Version>
<Languages>
<Language ID="en">English</Language>
</Languages>
<Examples/>
</Keyboard>
</Keyboards>
<RelatedPackages/>
<Strings/>
</Package>
Loading