My local run failed in this test, because scrolling to the right just
twice resulted in a partially clicked toolbar item, so:
cy.cGet('#Home-container .unospan-CharmapControl').click();
failed. Force the clicking so a half-visible toolbar item also gets the
click.
An alternative would be to add a 3rd click if scrolling to the right is
still possible, but that looks less clean.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4caa3dc79df1bbbd5bd0c7e88ef1baea8ae4b17e
Remove most calls to cy.wait(), reduce and comment the rest.
Stub waitUntilIdle and clickOnIdle
Fix many failing tests
Reduce total cypress runtime by 45%
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I62ddfdcbc3ab107654459ebece2d325eca0c6156
In 24.04 we activated dialog which informs about idle dialog.
It covers full screen so some tests fail on that.
Add {force: true} to ignore that in failing case.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I11a183deb91ca35a2ddecc63b62bcb82b8ad1d0f
Fails when we don't check for '<img' in Clipboard.js
_navigatorClipboardGetTypeCallback().
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Idde76a7da26bac624c15c316be8cac638032c848
This is the case when the HTML has no own marker and we actually parse
the HTML data.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8b1690faccbc9ebc6c67557cde8897eccf641fdc
Let's get this merged and try to fix later.
It works locally but not on CI.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I62dda307575f6b8e9eac40b061b2f8c9e609f2e7
For faster testing use special values in Cypress case.
- check inactivity every 1s
- out of focus timeout - 1s
- inactivity timeout - 7s
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9dd51f2098486917898b7624ac5ade56521f9e96
VoiceOver is the iOS name for the function. Let's pick a more neutral name.
"Screen Reading" was suggested by Michael Meeks.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9d6f7f59d06bf83e0324dc095f3c141e122ad5f4
Below cases are covered in current patch
- `Filter by Color` in autofilter should have radio buttons.
- Changes should be applied whene we select any option from `filter by color` submenu.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I1a757e09be81df934b46d48f71e8be28fc48c984
And other changes to reduce logs by about
20 lines per test (15% of total)
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ia6a1c96752816c5cd9fb11368cf921bdce9936ff
If we had very long or tall cell - maybe bigger than a screen
on every selection we tried to show it on the screen what
caused view to jump. If cell is bigger and partially visible
left view at the same position to avoid "jumping".
Steps to reproduce:
1. merge many cells - longer than one screen width
2. scroll in the middle of merged cell
3. select the cell
Result: jump to the begining
Expected: no jump if it is paritally visible
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I04da5cd346f175728222888a039a796b271e00d1
The intent is to eventually replace cy.cGet and some other helper
functions with getFrame, which is cleaner and has better logging on both
pass and fail.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I911a5552d69634495a9036d020754351665419cf
Touch unification (b3bff28bede07a48cdecefcda14a6fc9da86e4bb, change ID
I9016fc15ad3ccb3664af348fdcdca006495b0778) was a rework of the input
system to better support touch devices, but unfortunately it caused some
fairly serious regressions. This commit fixes the following:
- Triple/Quadruple clicking was no longer recognized on non-touch
devices.
- There were some issues recognizing wrapped events
- Pens were considered to be touch devices, but this broke some
remote/virtual machine setups. It's possible that this change will
cause a regression for apple pencil users. I plan to get an Apple
pencil to test whether preventing pens from being touch devices breaks
the Apple pencil workflow instead
- manualDrag was taken to mean "is on a touch device". This is only
almost true, causing some input to be incorrectly ingnored when it was
not
- manualDrag and _manualDrag were confused. They affect different
things, and we now recognize this
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iab0d3bcca588eaed14469597868a9c4e2dcf8488
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Original approach before comment autosave:
When we save a new comment, original DOM element which user was editing
is removed from the DOM and new comment DOM element is created from the data and message sent by core.
Previous comment autosave approach:
When we save a new comment, original DOM element which user was editing
is not removed but kept in editing mode. We register the comment message sent by the core
but react and create new comment DOM element only after user clicks on save or cancel.
This lazy initialization caused many regression due to juggling of the new and old comment DOM element.
All these problems were in JS side only, reloading doc would bring comment in correct state.
This approach gave smoother transition between different comment states without any flickers.
New comment autosave approach:
Simple as the original approach, when comment loses focus we save it as normal comment.
When new DOM element created via core comment message, we immidietly set it to edit mode.
This approach may have a little flicker when we replace old comment DOM element with new comment DOM element.
Overall this approach requires less condition checking which makes it easy to maintain and hopefully reduces any regression from previous method.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4098085825ede65cdbf2e2243fc4d2bb1f63c716
Make sure we don't expect response from server for online-only component: dropdown which doesn't have corresponding widget in the core
fixes regression on close from:
commit a23adac78c
browser: fix undefined property 'isPopup'
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I005647c77da3a866cec88a78f03dd409a098a469
L.Browser.touch is sometimes nice, but it's ultimately a flawed concept
to use it for input events. Using L.Browser.touch for input handicaps
people with mice if it's too liberal in what it classes as touchscreens,
and handicaps people with touchscreens if it's too conservative. There's
also no sweet spot: it's impossible to choose correctly if someone is
using both a touchscreen and a pointer device, as there's no right
option!
Previously many of our event handlers and some of our UI was gated
behind L.Browser.touch. This commit adds a new "window.touch" property
which is used instead. It has functions to help with event detection,
allowing you to easily make event handlers that work for only the input
devices they are designed for, without gating them behind feature
detection. This has the added bonus that - as you register all the
events - switching between a touchscreen and pointer is now not only
possible but already implemented!
For cases which don't have reasonable events to tag onto (e.g. the
teardrop for cursor movement) this commit adds "hasPrimaryTouchscreen"
and "hasAnyTouchscreen" which use the CSS media queries to detect if
there's a touchscreen attached to your device (either as the primary
input mechanism or at all). This works a lot more similarly to
L.Browser.mode, but being dynamically updated allows you to effectively
swich between touchscreen and not at-will. This still has all of the
disadvantages that L.Browser.touch did when used to register event
handlers, so my advice would be to avoid using it with events.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I9016fc15ad3ccb3664af348fdcdca006495b0778
When a document is loaded the Accessibility Support toggle button was
not set to the right state.
The problem affeced Online when integrated in Nextcloud.
Moreover the button label has been renamed to 'Voice Over' in
accordance with what suggested by NGI audit
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I5bc7d8348397691f469b6274af58e18a8d6d603c