Fix connector tracker cleanup for the case where a component is
hidden by a request and is made visible again by push.
This fixes a regression caused by #9305.
Fixes #9905
Force re-measurement of CheckBoxGroup and RadioButtonGroup (#9901)
The related tests have a workaround for another (Chrome specific) GridLayout bug #9921.
Those workarounds should be removed once that issue is fixed.
Fixes #9148
Try to make the test more stable by using a different way of
detecting the presence of a notification. This approach is used e.g.
in GridComponentsTest.
Avoid detaching VL/HL children unnecessarily (#9862)
When child components are removed from a
VerticalLayout/HorizontalLayout, do not remove other children from the
DOM if no other hierarchy changes are made.
Fixes #7713
Do not wait for icons to load before interacting with a combo box (#9717)
Icon load detection code does not handle error events so broken images
will cause tests to fail forever. In other cases also, it seems very
rare to need icons to be loaded before interacting with a combo box. If
there really are use cases for this, it would be better to have a method
to query if all icons are loaded so that special tests can use this method.
Fixes https://github.com/vaadin/testbench/issues/916
Sometimes Chrome reports 1ms for very short times to thwart
timing attacks, and sometimes Firefox seems to report 0ms. Make
the test accept these special cases.
Add support for PhantomJS 2 which does support high res time.
Ensure wrong Action is not executed after detaching a component (#9806)
Due to action key generation on ActionManager a wrong action
may be executed if the component that fired the wanted action
is already detached.
This patch makes action keys globally unique, simplifying the
approach of #8495 but reusing its tests.
Fixes #5864
Fix occasional empty rows in Table and TreeTable (#9800)
Picked from #9551 in 7.7
There's an intermittently happening issue with both Table and TreeTable,
which results in row data disappearing.
This change removes a method which is probably a vestigial one from over
five years ago and other changes are handling the things the method used
to perform. Currently the method removes rows deemed unnecessary from
the row buffer. The problem is, those rows are visible to the user and
removing causes row contents to be lost.
Also included are manually runnable test cases which demonstrate that
this removal actually prevents the issue from happening.
Fixes #7964
Fixes #5030
Re(set) calendar time after calculating rollAmount (#9479)
by calling calendar.setTime(today);
after rollAmount has been initialized and given a value, we can reset the calendar's internal time back to the correct date. As it is currently implemented; calling calendar.getTime() will result in a wrong date, it returns the first of the month with the correct time.
The function addInitialEvents() is called AFTER the calendar's time has been subtracted from (by calculating the rollAmount), as such this results in an incorrect internal time and the 'Day' button does not switch to the correct day. Instead it shows the first of the month here too.
Exclude Firefox from JavaScriptPreloadingTest (#9784)
The test works on Firefox under low load, but not when
the browser VM is slow due to load, in which case Firefox
sometimes executes scripts out of order. This seems to be
due to a Firefox bug - the generated HTML looks correct.
Fix RadioButtonGroup selection updates to client (#9749)
This patch provides a simple fix for the majority of issues. There are still issues that should be fixes by refactoring parts of the logic in AbstractSingleSelect.
This patch does not unify the handling of empty values in the TestBench elements of various AbstractSingleSelects.
Fixes #9494
Do full connector tracker cleanup when the session lock is released (#9707)
As there is no "request end" call after invoking UI.access() from a background thread,
the connector map was not earlier properly cleaned afterwards. If you toggled visibility of a
component from the background thread, the tracker state became inconsistent.
If this becomes a performance problem, it could probably be optimized to that cleanup
is done in request end and only at the end of access if not inside a request.
Fixes #9654