From bd0a65b8311f2cb5331dde2850cbeb3bcadebb63 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sun, 7 Jan 2018 10:44:18 +0100 Subject: [PATCH] tests: Add "dynamic" signal and property tests to increase coverage --- tests/Makefile.am | 1 + tests/objects/dynamic.vala | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/objects/dynamic.vala diff --git a/tests/Makefile.am b/tests/Makefile.am index 8ba947c40..26424edcf 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -181,6 +181,7 @@ TESTS = \ objects/chainup.vala \ objects/classes.vala \ objects/constructors.vala \ + objects/dynamic.vala \ objects/generics.vala \ objects/initially-unowned.vala \ objects/fields.vala \ diff --git a/tests/objects/dynamic.vala b/tests/objects/dynamic.vala new file mode 100644 index 000000000..aa429432a --- /dev/null +++ b/tests/objects/dynamic.vala @@ -0,0 +1,35 @@ +class Foo : Object { + public signal void sig (); + public string prop { get; set; } +} + +bool success = false; + +void sig_cb () { + success = true; +} + +void sig_after_cb () { + assert (success); +} + +void main () { + var real = new Foo (); + dynamic Object foo = real; + + foo.prop = "foo"; + string s = foo.prop; + assert (s == "foo"); + + success = false; + var id1 = foo.sig.connect_after (sig_after_cb); + var id2 = foo.sig.connect (sig_cb); + real.sig (); + assert (success); + + success = false; + SignalHandler.disconnect (foo, id1); + SignalHandler.disconnect (foo, id2); + real.sig (); + assert (!success); +} -- 2.47.2