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
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
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
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<>`.
This change explicitly specifies the return types and access for the
functions in KeymanEngine. Also introduce `KeyboardDetails` instead of
`ReturnType<>`.
Test-bot: skip
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.
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
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.
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.
Add mappings for key to vkey + mod for .kvk and .keyman-touch-layout,
and clarify the key identifiers for .keyman-touch-layout within KMX+
format.
Update unit test fixture khmer_angkor.keyman_touch_layout to remove
dependency on .kmn (T_xxxx_yyyy -> U_xxxx_yyyy), as the relevant
VKDictionary will not be present, because the corresponding .kmn is not
compiled for the unit tests where the fixture is used.
Test-bot: skip
Refactor the `getModifierState` and `getStateFromLayer` functions into a
cleaner `modifierStringToState` function, and move from web into common.
Marks existing functions as deprecated but does not update usage at this
time.