The entry sits next to the bubble chart, under the same switch that keeps the
chart types wanting free x values out of the list where they do not belong. It
has one sub type, no three dimensional look and no stacking.
The two images are placeholders: a circle with a cross and a few arrows
out of the middle. They need a designer's hand before this ships.
A test drives the wizard the way a user would: it picks the type, types one
range whose last two columns hold the dimensions, and checks that every column
before them became a series holding that column beside the two dimension
columns. A second test reopens the ranges of that chart and checks the range
comes back as it was given.
Change-Id: If8b5275244a2456a22235a6ce2d3d51fcff6cb94
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8104
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 7a7fc603047e065ebbc20f8bc5dc814d6079e082)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210469
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
An omission from commit f5d97d14a2
(uitest: add a way to optionally use the same soffice process for
a testsuite, 2023-03-20).
When testing locally, on some exceptions, soffice process was left
running, and following attempts to run the test failed because of
that.
Change-Id: I3f24c7756020835182dc53565e0be7660ee9f040
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201003
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Instead of explicitly calling createInstance we can use the implicit
service constructor on the Toolkit type for a slightly nicer way to
construct it.
Change-Id: Ia06000afc0cde27209966854704ca8dd61375adf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199106
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
Most of the uses of the EventListener wait for the executed flag to be
set in a check-sleep loop. If the code then tries to access properties
of the listener such as the supplements array then there was a race
condition where the waiting thread might wake up in between the time
that the executed flag is set and the details are filled in. This can
happen for example in open_subcomponent_through_command. I can replicate
this problem locally by adding a short sleep after setting executed to
True.
This is likely the cause of build failures such as the following:
https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/194139/
This patch just changes the order so that the executed flag is only set
after the event details are filled in.
Change-Id: I9ba108bc2e2fa084fd5d9e3048e34203feaa74a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195483
Tested-by: Jenkins
Reviewed-by: Neil Roberts <bpeeluk@yahoo.co.uk>
The Base UI tests all need to open a window that operates on the same
database, such as opening the table editor etc. There seems to be a few
race conditions related to opening sub windows that occasionally make
the tests fail so the idea with this patch is to make a central place in
test.py to add code to handle opening the window and closing it when
finished. That way we can add any synchronisation needed in a central
place.
For getting access to the new frame, the three current tests were all
trying to handle this in different ways. insert_relation waits for the
OnSubComponentOpened event, create_join_undo_redo was waiting until the
current focus window changes and the edit_field test was just crossing
its fingers and hoping that the timing worked. This last one is the
likely culprit of the following Jenkins build error for the edit_field
test:
https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/193148/
The new helper method always listens for OnSubComponentOpened and then
extracts the new frame from that event.
When closing the window the shared code now always calls
waitUntilAllIdlesDispatched. .uno:CloseWin ends up being executing
asynchronously on the main thread which means that the later call to
.uno:CloseDoc can happen simultaneously. If --oneprocess is not used
then it will even end up directly calling dispose on the main frame
instead of calling CloseDoc. I haven’t been able to replicate the crash
locally, but is seems like this might be related to crashes like the one
below:
https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/193204/
Change-Id: Iab0a46c3ca9f8c9eb9ac7f4fecb07f633bd0b312
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194350
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Some of the events have really useful supplements. This will be used
later to extract the frame from the OnSubComponentOpened event.
Change-Id: Id62e8bf7d4658aa4df8920992a622f51e007ff41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194349
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This is a follow-up to the commit below:
commit a3546f2a04
Author: Neil Roberts <bpeeluk@yahoo.co.uk>
Date: Tue Nov 18 14:26:42 2025 +0100
uitest: Wait for idle when calling close_doc for a database doc
I realised that it’s possible to trigger the race condition with the
existing tdf99619_create_join_undo_redo test too. That one works by
loading an existing document instead of creating an empty database so it
isn’t fixed by the above commit. This patch moves the call to
waitUntilAllIdlesDispatched into close_doc instead so that it will
affect all UI tests. I can’t seem to trigger any race conditions with
non-database tests but on the other hand I don’t think those tests are
explicitly intending to test concurrent UI access so I don’t think it
does any harm to make them wait as well.
Change-Id: Icd49518fc8e7682a61548c1dd906bff2ed26d3c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194241
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
When a signal is received such as when the unit test is killed by the
kill-wrapper, the framework catches the signal and terminates the
connection to LibreOffice. However it would then continue executing the
test. This makes it difficult to diagnose problems when the kill-wrapper
is invoked. This patch makes it instead throw an exception so that the
build log will have a backtrace. It also changes the resetSignalHandler
method to set the signal handlers to the DEFAULT rather than IGNORE,
because ignoring all subsequent signals seems like an unusual thing to
do and there is no comment explaining it so it seems likely to be a
mistake.
Change-Id: I8d8283cccd4de1ce55b0a6cd947c1647d28f462f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194321
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
The UITest calls .uno:CloseDoc at the end of create_db_in_start_center.
This seems to end up triggering some race condition which makes any
tests using it occasionally fail. I think what happens is this:
If the document is modified when CloseDoc is called then instead of
immediately closing the document it posts an event to the event queue
which causes the main thread to start closing the document
asynchronously. In the meantime the UI test thread continues and
executes Desktop::terminate. Both the main thread and the UI test thread
end up calling XFrameImpl::setComponent simultaneously. The main thread
does this with the solar mutex held because the event handling code
locks the mutex during the entire process. The UI test thread doesn’t
hold it, but parts of XFrameImpl::setComponent require the lock so it
blocks straight away. The first part of XFrameImpl::setComponent sets
the controller to the new one and then starts disposing the old one. The
disposing implementation for OApplicationController temporarily releases
the solar mutex while it does the potentially time consuming process of
disconnecting from the database (see the SolarMutexReleaser in
ODriverDelegator::shutdownConnection). This causes the UI test thread to
unblock and continue executing XFrameImpl::setComponent. Presumably it
bypasses trying to dispose the controller because that will have already
been set to null by the main thread. It will therefore jump straight to
disposing the old component window. This invokes VCLXWindow::dispose
which ends up disposing the ODataView with the solar mutex locked. Once
it is finished and the main thread has finished disconnecting from the
database it will be able to reacquire the solar mutex and continue
invoking OApplicationController::disposing. The next step calls
attachFrame which in turn calls attachFrame on the ODataView. However
the data view has been disposed in the meantime which makes it call a
method on a null pointer because m_pAccel is now null. This will end up
throwing an uncaught std::system_error.
I tried working around this one problem by checking whether the
ODataView has already been disposed in ODataView::attachFrame. However
this then just triggers a different problem where Base tries to close
the database connection in one thread while
ODriverDelegator::flushConnections is running in another and it also
ends up throwing a std::system_error.
Seeing as there seems to be a nest of bugs in this area this patch just
makes it wait for CloseDoc to finish before continuing the rest of the
unit test. If we want to fix the problems later we could make some
further unit tests that explicitly execute CloseDoc without waiting.
Change-Id: Ie531ada3d740e9e777d2b73ee162d4818fb6c477
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194181
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Adds a method that creates a database document from the start center
button similar to create_doc_in_start_center. Creating a database is a
bit more involved because it first opens a dialog asking for details
about the database. It also needs a filename immediately so a temporary
file is created to store it.
Change-Id: I3e5489ce539be0d9d9148b612b25da828866256f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194040
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
The problem was that running UITest_xmlsecurity_gpg changed the files in
test/signing-keys/ ... prevent that by copying the directory in that
test, which is more complicated than initially expected.
Change-Id: Ie3be922e0b2e9dae49f9a70e35ad5270c90b4fc4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171322
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
using == to compare them doesnt work, because we return
a new one with every call to getTopFocusWindow and similar.
So add a equals() method to the UNO interface to do the comparison.
Change-Id: Ie909fe9b4e84fe07f4ca87bbebf65b56d3da8f78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165436
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(1) log useful stuff that is happening instead of logging events that
are __not__ interesting
(2) add the UIObject title to the event so we know who the event belongs
to
Change-Id: Iea4b70c03482b10731f186d730afa12dac760fa4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165435
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Use Python 3.3's 'yield from', which should be OK, because the
baseline rhel8 has Python 3.6. If needed, older Python could
use replacement like this:
for dialog in self.wait_and_yield_dialog(event, xDialogParent, close_button):
yield dialog
Change-Id: Ic70bdf19fed730e41b7ce2868990ec88423eab33
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160352
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
to make it easier to debug cases where the event.executed flag is not
sufficient to indicate that the dialog has finished opening
Change-Id: Ibcbd089372e47908e3692d452f4064edbc7f788d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158751
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
We are not ready to get rid of it (e.g. undo does not work when it is
hidden). This flips the default introduced in:
commit e9cc014be4
Author: Khaled Hosny <khaled@libreoffice.org>
Date: Tue Sep 12 16:41:37 2023 +0300
starmath: Hide editing window by default and add a menu item to show
Change-Id: If84b25d186c8d133a9fa5cfc0c3d91162c66b389
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157004
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
Choosing which code path based on which widget has focus is not a very
good idea, and leads to unreliable UI tests as each code path inserts
the text slightly differently (one code path inserts plain text then
parses the whole equation again, while the other parses the new text
then inserts the parsed node directly).
Change-Id: Ib2ca942c537e466f6ff100be7f95adaead99f1d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156578
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
Add a sub case of Detect special numbers for import CSV (SC_IMPORTFILE),
paste unformated text (SC_PASTETEXT) and text to columns
(SC_TEXTTOCOLUMNS). Following cases are treated:
- If "Detect special numbers" is true, then "Detect scientific numbers"
must be true and all special formats are treated (date, time,
scientific notation) in addition to basic decimal numbers.
- If "Detect special numbers" is false and "Detect scientific numbers" is
true only scientific notation is treated in addition to basic decimal
numbers.
- If "Detect special numbers" and "Detect scientific numbers" are both
false only basic decimal numbers are recognized as numbers. It is the
new case treated by this change
The new option bDetectScientificNumber is append to ASCII options
Change-Id: I73dff9f75d2c7b07ce155daa29dcc4ca9f288664
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152072
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
UITest_writer_tests6's
tdf124675.tdf124675.test_tdf124675_crash_moving_SwTextFrame_previous_page
failed in the SW_FORCE_FLY_SPLIT=1 case, since the current page after
typing was 3, not 2.
It seems this change is wanted, since the total page count increases by
2, so it's consistent that the current page increases similarly with
typing. Also, repeating the UITest in Word (after positioning the cursor
at the top paragraph in the document) also produces page 3 as the
current page.
Fix the problem by locally enabling split flys for this test and then we
can assert that we match Word. This requires a new context manager, but
that set_config() is really similar to other context managers in the
class that return no value.
The original purpose of the test was to make sure we don't crash,
anyway.
Change-Id: Id0dfde23a8726c8799950a6e4fdd1d85f135eafc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149315
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
A uitest suite may have several testcases and we spend a lot of time
spinning up a new soffice process for each testcase, while we typically
do such initialization only once for per testsuites in the cppunit case,
slowing down uitests.
The problem is that this way today's uitest cases don't really have to
clean up after themselves, since they know that the next testcase will
gets its own clean state (back to the start center).
Fix the problem by adding an opt-in way, so that a uitest suite can
declare that it's safe to run the entire suite with the same soffice
process. To be more specific:
- add a new --oneprocess for test_main.py, which will create a shared
connection to a soffice process
- UITest then closes the document (returning to the start center)
instead of disposing the component in the oneprocess case
- UITestCase won't create its own soffice connection in the oneprocess
case
- add a new gb_UITest_use_oneprocess method to gbuild, to request this
new, faster behavior
E.g. on my machine this means UITest_sw_styleInspector takes 26,345s
instead of 40,652s, probably such a speedup is worth the added
complexity.
This works nicely when the testsuite is a list of simple/boring test
cases, always loading one component/document at a time and always using
close_doc() to close it. It may not be safe for testsuites that do
something special (they may fail or hang), we'll see.
Change-Id: Ib14439d48aa547c92652245ee1c0cf37d2d7b6e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149134
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Otherwise, changing it in one test might affect other tests
Use @contextmanager decorator to change it back to default 'Inch'
at the end of the test even if the test hits an assert
Change-Id: I1e7b35019cd19b490aa619c0a866bb9f93820950
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146583
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
The background tiling images become larger when
opening and closing Area tab: reopening the image
properties in the Area tab shows that the Width
and Height got reset to the original values of the
image.
Regression from commit 686349476e
"[GSoC] Move all fill style tabs inside area tab".
Change-Id: Ibc4dfd73dedd81b1b7fe17574198dd4999aab967
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143819
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>