Commit graph

34001 commits

Author SHA1 Message Date
Marc Durdin
f4e94fb3ef chore(core): Merge branch 'chore/core/15913-unit-test-follow-on' 2026-05-07 15:20:19 +02:00
Marc Durdin
e0fd08ca0f chore(core): cleanup leaks in tests and skipped tests 2026-05-07 15:19:27 +02:00
Marc Durdin
6ec106f827
Merge branch 'refactor/core/api-documentation' into chore/core/15913-unit-test-follow-on 2026-05-07 23:19:00 +10:00
Marc Durdin
82f4c954a5 chore(core): merge actions test data for unit tests
Merge actions test data struct and some of the data for the actions API
unit tests. actions_update_app_context_nfu.tests.cpp data has not been
merged because the expected results are different, as it does not do
normalization, unlike actions_get_api and actions_normalize.

Merging of that data could be done, but would require adding extra
fields to each test result, which would make the data considerably
harder to read! Thus I have left it alone for now, just merged the
struct, which is still a win.

Fixes: #15913
2026-05-07 12:31:19 +02:00
Marc Durdin
a3de441eda chore(core): add test for NFD context deleting one combining mark
Relates-to: #15913
2026-05-06 15:11:59 +02:00
Marc Durdin
40d36f8e2c chore(core): add cross-reference between ldml_test_source and kmx_test_source
Relates-to: #15913
2026-05-06 15:09:25 +02:00
Marc Durdin
f7e210beb0 chore(core): cleanup state_context_api.tests.cpp
* Rename citems and eliminate shadowed class member
* Cleanup is_identical_context and related helper functions and make
  consistent name and signature, to assert_identical_context.
* Use clearer variable names for expected and actual values.

Relates-to: #15913
2026-05-06 14:47:15 +02:00
Marc Durdin
86571de22f chore(core): cleanup compare_debug_items unit test helper
Relates-to: #15913
2026-05-06 14:27:51 +02:00
Marc Durdin
5da3b4effc chore(core): cleanup transforms.tests.cpp
1. Rename various shorthand variables
2. Split simple tests into separate Google Test cases (have not tackled
   the more complex tests which have loops and/or setup)
3. Remove redundant logging from simple tests

Relates-to: #15913
2026-05-06 14:19:05 +02:00
Marc Durdin
410a4824bc chore(core): use ASSERT_FALSE and ASSERT_TRUE where possible
Relates-to: #15913
Test-bot: skip
2026-05-06 14:01:18 +02:00
Marc Durdin
a8888ca7c7
Merge branch 'chore/developer/ldml-test-file-reader-error-handler' into refactor/core/api-documentation
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-05-06 21:48:55 +10:00
Marc Durdin
d428fb2622
Merge branch 'chore/core/test-cleanup-2' into chore/developer/ldml-test-file-reader-error-handler
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-05-06 21:48:47 +10:00
Marc Durdin
7591dc0bba chore(core): tidy up api-header-extractor 2026-05-06 13:28:03 +02:00
Marc Durdin
be26f58481 chore(core): Merge branch 'refactor/core/api-documentation' of https://github.com/keymanapp/keyman into refactor/core/api-documentation 2026-05-06 13:02:18 +02:00
Marc Durdin
33a4d4b09c chore(developer): reduce coverage threshold for kmc-ldml to 85% 2026-05-06 12:10:10 +02:00
Marc Durdin
08891bb3a2 chore(core): address review comments on unit tests
Test-bot: skip
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-05-06 12:09:19 +02:00
Marc Durdin
0f2f3c1009 refactor(core): clean up API documentation
Move all Keyman Core header API documentation to javadoc-style so that
we can get inline documentation and simplify the readability of the
header files.

Update api-header-extractor to support minimal javadoc formatting of the
comments.

Test-bot: skip
2026-05-05 16:29:53 +02:00
Marc Durdin
c78531dbc0 refactor(core): clean up API documentation
Move all Keyman Core header API documentation to javadoc-style so that
we can get inline documentation and simplify the readability of the
header files.

Update api-header-extractor to support minimal javadoc formatting of the
comments.

Test-bot: skip
2026-05-04 17:35:20 +02:00
Marc Durdin
ac56e72fa9 chore(developer): handle parse errors in loading LDML test files
Test-bot: skip
2026-05-04 13:54:34 +02:00
Marc Durdin
63c2ed823f chore(core): avoid emitting control chars into junit.xml 2026-04-28 15:48:49 +02:00
Marc Durdin
9853f29046 chore(core): address memory leak for embedded_test_source 2026-04-28 14:47:33 +02:00
Marc Durdin
d61e5bbb18 refactor(core): clean up unit tests
Consolidate test frameworks and cleanup, including:
* all tests use Google Test
* reorganize folders, esp. kmnkbd -> api
* move all api tests into api folder
* replace references to test_assert or test_color with gtest equivalents
* leverage gtest patterns to remove boilerplate code
* dramatically simplify meson.build files and localize variables
* move shared helper code into helpers/ folder
* make test names unique and add gtest protocol for reporting back to
  teamcity

Fixes:
* CLDR test keyboards had invalid unicodeset escapes (needs to be raised
  upstream also) - was not failing tests because files were not loading
  but returning success

Test-bot: skip
2026-04-28 12:17:44 +02:00
Eberhard Beilharz
e8da94ed40
Merge pull request #15856 from keymanapp/chore/web/cleanup
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
refactor(web): cleanup return types in KeymanEngine

This change explicitly specifies the return types and access for the functions in KeymanEngine. Also introduce `KeyboardDetails` instead of `ReturnType<>`.
2026-04-21 14:20:12 +02:00
Eberhard Beilharz
0a1a8de744
chore(web): address code review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-21 12:11:11 +02:00
Marc Durdin
ee48bc69df
Merge pull request #15859 from keymanapp/chore/web/update-paths-to-specialCharacters.ts
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
chore(web): update paths to specialCharacters.ts 🎼
2026-04-21 19:22:25 +10:00
Marc Durdin
1e180a8639 chore(web): update paths to specialCharacters.ts
After epic/embed-osk-in-kmx merge into epic/web-core,
specialCharacters.ts had moved and so paths needed to be adjusted.

Test-bot: skip
2026-04-20 17:36:15 +02:00
Eberhard Beilharz
b16dc6f2f8
refactor(web): cleanup return types in KeymanEngine
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
This change explicitly specifies the return types and access for the
functions in KeymanEngine. Also introduce `KeyboardDetails` instead of
`ReturnType<>`.

Test-bot: skip
2026-04-20 17:14:55 +02:00
Eberhard Beilharz
816bda2723
Merge pull request #15858 from keymanapp/chore/web/squiggles
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
chore(web): fix red squiggles in .ts test files in vscode

VSCode shows red squiggles under things like `describe` or `it` in .ts test files for web. This change adds the types to the `tsconfig.json` file which fixes this problem.
2026-04-20 14:22:31 +02:00
Eberhard Beilharz
b7b03a9960
chore(web): fix red squiggles in .ts test files in vscode
VSCode shows red squiggles under things like `describe` or `it` in
.ts test files for web. This change adds the types to the `tsconfig.json`
file which fixes this problem.

Build-bot: skip build:web
Test-bot: skip
2026-04-20 14:04:03 +02:00
Marc Durdin
407d9dd3b3
Merge pull request #14857 from keymanapp/epic/embed-osk-in-kmx
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
epic: embed-osk-in-kmx 🔱
2026-04-18 03:02:20 +10:00
Marc Durdin
0fb2cd2dc6 chore: Merge branch 'epic/web-core' into epic/embed-osk-in-kmx 2026-04-17 19:01:15 +02:00
Marc Durdin
9e3b7390fc
Merge pull request #15470 from keymanapp/feat/web/varStoresCleanup
feat(web): cleanup of variable stores 🎼
2026-04-18 02:54:31 +10:00
Marc Durdin
49a2887c24
Merge branch 'epic/web-core' into feat/web/varStoresCleanup
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-18 01:29:29 +10:00
Marc Durdin
b15f9548ef chore(web): add ref to headless-resources 2026-04-17 17:26:16 +02:00
Marc Durdin
50139a0ebd refactor(web): eliminate nullable variableStoreSerializer code paths
To reduce the number of possible failure cases within KeymanWeb,
require variableStoreSerializer to always be initialized. This impacts
only unit tests in practice. There remains a unit test special case in
the variable store code itself which needs to be removed in the future.

Create a mock VariableStoreTestSerializer class so that unit tests can
run without impacting state or requiring cookies. (We should leverage
this in future tests to verify that variable stores are saved
correctly.)

Establish keyman/test/headless-resources, so that we can include shared
resources such as VariableStoreTestSerializer without creating a
dependency on either DOM or Node.
2026-04-17 15:36:11 +02:00
Eberhard Beilharz
fa6a795f6f
Merge pull request #15854 from keymanapp/refactor/web/kbdbaseclass
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
refactor(web): add abstract `Keyboard` base class 🎼

Also rename `JSKeyboardData` → `KeyboardData`.
2026-04-17 15:22:17 +02:00
Eberhard Beilharz
6677c2b198
refactor(web): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-04-17 14:49:10 +02:00
Marc Durdin
be198d2f9c
Merge pull request #15836 from keymanapp/docs/core/rebuild-docs
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
docs(core): rebuild Core docs from .h and remove broken hotdoc config 🔱
2026-04-17 21:04:34 +10:00
Marc Durdin
2cffc57eb1 chore(web): cleanup variable store interfaces for web-core 2026-04-17 12:59:04 +02:00
Marc Durdin
d6c2b213ee
Merge branch 'epic/web-core' into feat/web/varStoresCleanup 2026-04-17 20:44:06 +10:00
Marc Durdin
7df5b94cc2 refactor(web): simplify VariableStore type
Remove the unnecessary nested set patterns for `VariableStore` and
rename the type to `VariableStores` to match its actual use.
2026-04-17 12:08:58 +02:00
Marc Durdin
1f2577c78e
Merge pull request #15835 from keymanapp/chore/core/remove-jsonpp
chore(core): remove jsonpp 🔱
2026-04-17 19:44:48 +10:00
Eberhard Beilharz
d93fc5aa7e
refactor(web): output id in console error of playwright TC reporter
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-17 10:05:33 +02:00
Marc Durdin
cee292de43
Merge branch 'chore/core/remove-jsonpp' into docs/core/rebuild-docs
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-17 17:36:03 +10:00
Marc Durdin
2f861b9628 chore(core): disable api-header-extractor build for Ubuntu packaging
As Ubuntu packaging does not currently have a node environment, we'll
disable api-header-extractor; the output files are not used in this
context anyway.
2026-04-17 09:35:04 +02:00
Marc Durdin
0f57b8a77c chore(core): Merge branch 'epic/embed-osk-in-kmx' into chore/core/remove-jsonpp
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-17 09:12:37 +02:00
Eberhard Beilharz
115ab18d71
refactor(web): add abstract Keyboard base class
Also rename `JSKeyboardData` → `KeyboardData`.

Test-bot: skip
2026-04-16 22:18:08 +02:00
Marc Durdin
fef4236cbd
Merge pull request #15833 from keymanapp/chore/core/embed-osk/move-test-helpers
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
chore(core): move test helpers into helpers/ folder 🔱
2026-04-17 06:17:38 +10:00
Marc Durdin
71503fa13c
Merge pull request #15822 from keymanapp/chore/developer/embed-osk/enable-constants-test
chore(developer): enable skipped test for disp key cap constants 🔱
2026-04-17 06:17:23 +10:00
Marc Durdin
24d10d06d2
Merge pull request #15821 from keymanapp/feat/developer/embed-osk/kmap
feat(developer): add kmap support to KMX+ kvk and keyman-touch-layout 🔱
2026-04-17 06:17:10 +10:00