Rename the 'basic_usage' test to 'basic_read' and add 'basic_write'
test. Implement GimpTileBackendTileManagerPrivate enough to make them
pass.
Note that these tests currently do not work with GIMP's "effective
tile size" optimization.
Add a super basic GimpTileBackendTileManager unit test and implement
GimpTileBackendTileManager enough to make it pass. Still a lot of work
left to do, this was just to get things up and running.
In single-window mode, gimp_session_managed_set_aux_info() will set
the size of the dock areas at the sides. If we don't wait for those
areas to get their size-allocation, we can't properly restore the
docks inside them, so do that in an idle callback.
Also add a required call to gimp_test_run_mainloop_until_idle()
because of this in the 'automatic_tab_style' test.
GIMP 2.6 session files can't have many docks in a dock window, so
remove that from the GIMP 2.6 session file we use for compatibility
testing. Also remove the "gimp-single-image-window" entry.
The downside is that we need a separate 'expected'-file, but we need
to live with that.
Rememeber if image windows are opened because we want the
gimp_session_info_restore() code to run for the single-image window
once that code is in place.
Add regression test for "app: Give configure event info to
gimp_session_info_read_geometry()", commit
93fd257c52, which fails without that fix
being present.
Move code in test-session-management.c to a common place so we can
have several variants of session management tests. We can't easily run
all session management tests in a single process, because some parts
of Gimp (the GObject) initialization eeks if done twice in the same
process.
Rename test-session-management.c to test-session-2-6-compatibility.c
and create a new test for GIMP 2.8 multi-window mode session files,
namely test-session-2-8-compatibility-multi-window.c. Copy and rename
sessionrc files accordingly.
Make GimpDockContainer::get_docks() return a new list and not just a
pointer to a list so that GimpImageWindow can implement it (who needs
to merge its two GimpDockColumns lists).
Make GimpDockWindow implement the GimpDockContainer interface. The
plan is to make GimpImageWindow also implement the GimpDockContainer
interface when we start to session manage docks in single-window mode.
Use a selected set of plug-ins from the build dir rather than the
install dir. In particular 'file-png' for the
'/gimp-save-and-export/imported_file_uris' test. We might need to use
other plug-ins from the build dir as well later, but for the ones from
'plug-ins/common' is enough.
An image can not be considered both exported and imported at the same
time, so stop consider it as imported after we consider it exported.
Also add an automatic regression test.
Remove files in /tmp after tests so that other users on the same
machine (like buildbots) also can run make distcheck without getting
"can't overwrite file" errors.
Add a configure check for xvfb-run and run tests with that if
available. This makes it possible to easily run UI tests in headless
environments such as a server that does nightly builds; one just needs
to make sure xvfb-run is available.
Eventually we might want to be more strict, but I think it will be
fine to depend on UI headers in non-UI tests. Non-UI tests just means
we don't need to initalize the UI.
Make gimp_ui_get_ui_manager() a global test util and make
gimp_test_utils_create_image() return void, clients can reach the new
image and display from the Gimp instance.