]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Extend "dynamic" signal test to increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Mon, 1 Nov 2021 13:02:04 +0000 (14:02 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 14 Nov 2021 11:39:52 +0000 (12:39 +0100)
tests/objects/dynamic.vala

index aa429432adc09588e9a998c0b482d8b5b4f47393..ff9c9dddb28ad7f7323c49171e6e27710d60b38b 100644 (file)
@@ -3,6 +3,18 @@ class Foo : Object {
        public string prop { get; set; }
 }
 
+class Bar : Object {
+       public bool success = false;
+
+       public void sig_cb () {
+               success = true;
+       }
+
+       public void sig_after_cb () {
+               assert (success);
+       }
+}
+
 bool success = false;
 
 void sig_cb () {
@@ -14,22 +26,41 @@ void sig_after_cb () {
 }
 
 void main () {
-       var real = new Foo ();
-       dynamic Object foo = real;
+       {
+               var real = new Foo ();
+               dynamic Object foo = real;
 
-       foo.prop = "foo";
-       string s = foo.prop;
-       assert (s == "foo");
+               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;
+               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);
+       }
+       {
+               var real = new Foo ();
+               dynamic Object foo = real;
+
+               var bar = new Bar ();
+               bar.success = false;
+               var id1 = foo.sig.connect_after (bar.sig_after_cb);
+               var id2 = foo.sig.connect (bar.sig_cb);
+               real.sig ();
+               assert (bar.success);
 
-       success = false;
-       SignalHandler.disconnect (foo, id1);
-       SignalHandler.disconnect (foo, id2);
-       real.sig ();
-       assert (!success);
+               bar.success = false;
+               SignalHandler.disconnect (foo, id1);
+               SignalHandler.disconnect (foo, id2);
+               real.sig ();
+               assert (!bar.success);
+       }
 }