]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add "dynamic" signal and property tests to increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 7 Jan 2018 09:44:18 +0000 (10:44 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 10 Jan 2018 19:44:54 +0000 (20:44 +0100)
tests/Makefile.am
tests/objects/dynamic.vala [new file with mode: 0644]

index e3cdb36df777640c189d80a2140b6bae9df227b7..b77718de870bb919b8df5df95b17922bd3ec1b51 100644 (file)
@@ -178,6 +178,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 (file)
index 0000000..aa42943
--- /dev/null
@@ -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);
+}