Commit graph

183 commits

Author SHA1 Message Date
Marc Durdin
d63bd4edde chore(web): rebuild obolo_chwerty keyboard 2022-03-17 20:47:00 +11:00
Marc Durdin
1038379c41
Merge pull request #6351 from keymanapp/fix/web/caps-state-tracking-for-touch
fix(web): caps state tracking for touch
2022-03-15 10:04:45 +11:00
Marc Durdin
e1e82aacce fix(web): add test keyboards 2022-03-10 13:33:21 +11:00
Marc Durdin
272c1f0d1c fix(web): subkey touch position after scroll
Fixes #5964.

It seems that the test for subkey position was incorrect when the
document had been scrolled. Removing the test for `fixed` positioning
resolves the issue.
2022-03-08 17:27:16 +11:00
Marc Durdin
6e9969b27c
Merge pull request #6272 from keymanapp/fix/web/5853-selection-not-working
fix(web): properly handle selection 🎢
2022-03-01 08:08:02 +11:00
Marc Durdin
7273028192 chore(web): add unit test for selection and matching rule 2022-02-25 15:06:11 +11:00
Marc Durdin
bf2270aa69 chore(web): add smp tests for text selection 2022-02-24 15:59:16 +11:00
Marc Durdin
4bcfe37432 chore: add khmer_angkor to web test pages 2022-02-23 15:13:02 +11:00
Marc Durdin
6315d61ad9 chore(web): note chrome mobile emulation req
For android-harness, it must run in Chrome mobile emulation.
2022-02-23 08:30:59 +11:00
Marc Durdin
6cd0f5d49a chore: add web_context_tests keyboard 2022-02-22 10:41:42 +11:00
Marc Durdin
c1c6c8ac84 feat(android): Android web-based test harness
This small harness simulates the Android app. I used it to try and
dig deeper into the interactions with selected text in #5853.

It is very rough, but with some extra effort we could use this
relatively easily for some low-level testing of KeymanWeb embedded
integration.
2022-02-22 10:38:20 +11:00
Marc Durdin
96277a46a2
Merge pull request #6236 from keymanapp/dependabot/npm_and_yarn/web/testing/regression-tests/karma-6.3.14
chore(deps-dev): bump karma from 6.3.4 to 6.3.14 in /web/testing/regression-tests
2022-02-12 20:41:47 +11:00
dependabot[bot]
46d0e7dc98
chore(deps): bump follow-redirects in /web/testing/regression-tests
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.7.0 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.7.0...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-12 08:05:59 +00:00
dependabot[bot]
187f77a121
chore(deps-dev): bump karma in /web/testing/regression-tests
Bumps [karma](https://github.com/karma-runner/karma) from 6.3.4 to 6.3.14.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.3.4...v6.3.14)

---
updated-dependencies:
- dependency-name: karma
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 18:03:53 +00:00
Marc Durdin
44ddf1e9aa
Merge branch 'master' into feat/web/3620-caps-layer 2022-01-17 12:26:32 +11:00
Marc Durdin
1d92385928 chore(web): start-of-sentence in manual test pages 2021-12-09 05:59:16 +01:00
Marc Durdin
2159df10ee chore: tweak keyboard rules for full caps
Removed the 'heuristic' test as it is probably not appropriate for
testing. Removed the mobile-specific platform from the touch layout as
it did not include a caps layer (and should have been identical to the
tablet one anyway).
2021-12-02 05:11:08 +11:00
Marc Durdin
62796e3489 feat(web): Caps Layer and double-tap gesture
Fixes #3620.

Implements the Caps Lock layer support and the double-tap gesture on the
shift key to access it.

The double-tap gesture has been implemented with a view to extension to
support other multi-tap gestures in the future. However, for now, it is
limited to supporting the Shift key, if and only if the keyboard
includes a Caps layer.

The reason for this v15 limitation is that multi-tap on regular keys
would involve either rewinding the previous keystroke (the first tap),
or forcing keyboard developers to consider 'rota' style rules in their
keyboards to support the multi-tap gestures, as we need to make sure
that the first tap is accepted and processed for immediate feedback.
This needs more design, to avoid unnecessary complexity in the keyboards
and/or the rewinding of the keystroke (even though that is conceptually
supported in Keyman Engine for Web already). Basically, we don't want to
constrain the way that a keyboard author may use the multi-tap gesture
by hard-coding the rewind, but neither do we want to make all multi-tap
gestures needlessly complex to author.

The shift key (and other modifiers, potentially in future) needs special
support for multi-tap as the key that is being tapped changes with the
layer change. This is currently managed through recognising `K_SHIFT` in
the key id.

I have tried to follow the `PendingGesture` pattern for multi-tap, and
the gesture itself supports a series of taps, not just a double-tap. The
maximum time to complete the tap series is 125msec * number-of-taps, so
for a double-tap is 250msec.

The changes to support a Caps Lock layer itself were minimal; just
adding the `text.KeyboardProcessor.getStateFromLayer` function and
calling it during `KeyEvent` construction. The remaining changes relate
to the multi-tap gesture.

Minor changes:
* I moved `constructNullKeyEvent` to `KeyEvent` in order to make it
  more accessible to other classes.
* The multi-tap gesture does not have a promise to complete, so that is
  now an optional member of the `PendingGesture` interface.
2021-12-01 08:59:43 +11:00
Marc Durdin
3f35cc0bf8 chore(web): Merge branch 'master' into feat/web/3621-newcontext-group 2021-11-29 10:22:22 +11:00
Marc Durdin
066c03975f
Merge pull request #5919 from keymanapp/fix/web/5313-scrolling-anchor-reset-on-touchend
fix(web): reset scroll anchor on touchend
2021-11-24 07:10:47 +11:00
Marc Durdin
ce2aa9a166 feat(web): support for &layerChanged
Relates to #3621.

Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
2021-11-24 06:45:20 +11:00
Marc Durdin
f5fc41712d feat(web): add support for begin postKeystroke
Relates to #3621.

This adds support for `begin postKeystroke` to KeymanWeb. This is now
close to final, apart from support for `&layerChanged`.
2021-11-23 16:56:16 +11:00
Marc Durdin
e803bed813 feat(web): start-of-sentence test keyboard
Relates to #3621.

Initial draft of keyboard to test start-of-sentence detection.
2021-11-23 10:11:10 +11:00
Marc Durdin
c2c7e00e94 fix(web): reset scroll anchor on touchend
Fixes #5313.
2021-11-17 10:37:01 +11:00
Marc Durdin
a7c050d71b fix(web): resolve unhandled exception in promise
Fixes #5353.

I made the promise usage consistent in the relevant addKeyboards
functions, instead of mixing promise and async/await style code, which
made it easier to spot the place(s) where promises had not been returned
as we needed.
2021-11-14 15:43:43 +11:00
Marc Durdin
afab4a2b56 chore(web): fixup name of oldtestvariable.js 2021-09-27 10:43:58 +10:00
Marc Durdin
1fe0cc050a chore(web): use debug versions of keyboard 2021-09-27 10:43:18 +10:00
Marc Durdin
670f20a5f7 chore(web): add baseline old version keyboard
Adds oldtestvariable.js to demonstrate old, broken behaviour with
predictive text and variable stores.
2021-09-27 10:32:53 +10:00
Marc Durdin
920861e7bb chore(web): unit tests for fat finger and variable store 2021-09-27 10:17:12 +10:00
Joshua Horton
5748c472c1
Merge pull request #5728 from keymanapp/chore/web/inline-osk-test-page
chore(web): inline osk test page 🧵
2021-09-23 10:57:04 +07:00
Marc Durdin
e8cb33d75e
Update web/testing/inline-osk/index.html
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2021-09-22 10:53:04 +10:00
Marc Durdin
5162a028cc chore(web): inline osk test page
Adds a page to experiment with the inline osk.
2021-09-21 07:30:15 +10:00
Darcy Wong
b28b9d7adc
Merge pull request #5699 from keymanapp/fix/common/remove-empty-row
fix(common/core/web): Remove empty rows in OSK
2021-09-16 14:09:03 +07:00
Darcy Wong
7c73840e58 fix(common/core/web): Revert check for length 0 2021-09-16 09:29:52 +07:00
Darcy Wong
7acd0b4ed5 fix(common/core/web): Remove empty rows in OSK 2021-09-15 14:20:52 +07:00
jahorton
e1da0014c3 refactor(web): start of OSKView abstraction 2021-08-23 10:01:06 +07:00
Darcy Wong
457311b6cb fix(web): Blank spacebar text when displayName is empty string 2021-08-05 13:09:58 +07:00
Darcy Wong
85000ef5df fix(web): Have util.wait check useAlerts option 2021-08-03 10:33:16 +07:00
Darcy Wong
5d1a652314 Merge remote-tracking branch 'origin/master' into feat/web/add-keyboard-promise 2021-07-23 13:12:40 +07:00
jahorton
5e33cb9135 chore(web): test page tweaks (fewer keyboards on non-toolbar UI) 2021-07-21 15:46:00 +07:00
jahorton
81409ba4ee docs(web): removes invalid description text from new variants 2021-07-21 09:26:39 +07:00
jahorton
fcba74c263 chore(web): fixes page text 2021-07-21 09:25:38 +07:00
jahorton
4c4845ae7e feat(web): ui-module test pages 2021-07-21 09:24:26 +07:00
Darcy Wong
e01f6bf201 fix(web): Add wrapper to convert one-to-many keyboard stubs 2021-07-09 16:16:41 +07:00
Darcy Wong
794ee4bb30 chore(web): Merge remote-tracking branch 'origin/master' into feat/web/add-keyboard-promise 2021-07-09 08:57:04 +07:00
Darcy Wong
082ed9bd9c chore(web): Add button to test keyboard stub
* Per review comment, have separate button to add keyboard  involving keyboard stub with languages Object and no filename.
2021-07-07 10:45:53 +07:00
jahorton
bb6db21e4a chore(web): updates regression test-deps to same versions as web 2021-07-02 15:42:40 +07:00
Darcy Wong
6af2831c23 chore(web): Merge branch 'master' into feat/web/add-keyboard-promise 2021-07-02 09:04:58 +07:00
Marc Durdin
55c2192171
Merge pull request #5348 from keymanapp/feat/web/949-spacebar-text-controls
feat(web): spacebar text controls
2021-07-02 08:17:59 +10:00
Darcy Wong
be24e04002 chore(web): Test single language object 2021-06-30 10:28:22 +07:00