LUMIERA.clone/tests/gui
Ichthyostega bada8ecffd TreeMutator binding: fix collection binding to support move-only types
unintentionally we used copy construction in the builder expression,
wenn passing in the CollectionBinding to the ChildCollectionMutator.

The problem is that CollectionBinding owns a shaddow buffer, where
the contents of the target collection are moved temporarily while
applying the diff. The standard implementation of copy construction
would cause a copy of that shaddow buffer, which boils down to
a copy of the storage of the target collection.

If we want to support move-only types in the collection, most notably
std::unique_ptr, we can thus only use the move constructor. Beyond that
there is no problem, since we're only ever moving elements, and new
elements will be move constructed via emplace() or emplace_back()
2016-10-03 20:08:54 +02:00
..
interact implement deleting of individual property state data 2016-02-14 04:29:40 +01:00
test TreeMutator binding: fix collection binding to support move-only types 2016-10-03 20:08:54 +02:00
abstract-tangible-test.cpp WIP: draft a concrete TreeMutator binding for MockElm 2016-10-03 01:59:47 +02:00
bus-term-test.cpp Element protocol: broadcast of state reset messages unit test PASS 2016-02-14 05:03:08 +01:00
README enable special unit-tests to link against the gui 2014-10-18 04:27:07 +02:00
session-structure-mapping-test.cpp mass clean-up: adapt usage of std::cout pretty much everywhere 2016-01-07 20:12:46 +01:00
tangible-update-test.cpp mass clean-up: adapt usage of std::cout pretty much everywhere 2016-01-07 20:12:46 +01:00
test-gui-test.cpp mass clean-up: adapt usage of std::cout pretty much everywhere 2016-01-07 20:12:46 +01:00

GUI backbone tests

The tests in this subtree are a bit special: they cover the generic and
backbone internals of the Lumiera GTK GUI. They are linked against the
complete GUI-module (gui plugin), and thus may use all related ABIs.

Yet these tests are *deliberately* compiled without any GTK, GTKmm or SigC
includes. This effectively rules out the use, even indirectly, of any GTK
widgets and APIs -- forcing the covered GUI backbone entities to stay
clean and generic at API level.

This is a decision done on purpose. The concrete GUI framework technology
shall be treated as an implementation detail. There is no point in writing
tests which click buttons in the GUI -- better delegate any significant
logic or functionality to GUI agnostic components. GUI is meant to be
a presentation layer and must not develop intelligence on its own.