summaryrefslogtreecommitdiff
path: root/tests/objects/signals-lambda-delegate-2.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/objects/signals-lambda-delegate-2.vala')
-rw-r--r--tests/objects/signals-lambda-delegate-2.vala94
1 files changed, 94 insertions, 0 deletions
diff --git a/tests/objects/signals-lambda-delegate-2.vala b/tests/objects/signals-lambda-delegate-2.vala
new file mode 100644
index 000000000..8be4aaed0
--- /dev/null
+++ b/tests/objects/signals-lambda-delegate-2.vala
@@ -0,0 +1,94 @@
+delegate string FooFunc (Foo foo, string s);
+
+class Foo : Object {
+ public signal string test (string s);
+}
+
+class Bar : Object {
+ construct {
+ var foo = new Foo ();
+ FooFunc func = (f,s) => {
+ assert (s == "foo");
+ return s;
+ };
+ foo.test.connect (func);
+ assert (foo.test ("foo") == "foo");
+ foo.test.disconnect (func);
+ foo.test ("bar");
+ }
+
+ public void run () {
+ var foo = new Foo ();
+ FooFunc func = (f,s) => {
+ assert (s == "foo");
+ return s;
+ };
+ foo.test.connect (func);
+ assert (foo.test ("foo") == "foo");
+ foo.test.disconnect (func);
+ foo.test ("bar");
+ }
+}
+
+delegate string FazFunc (Faz faz, string s);
+
+class Faz {
+ public signal string test (string s);
+}
+
+class Boo {
+ public Boo () {
+ var faz = new Faz ();
+ FazFunc func = (f,s) => {
+ assert (s == "faz");
+ return s;
+ };
+ faz.test.connect (func);
+ assert (faz.test ("faz") == "faz");
+ faz.test.disconnect (func);
+ faz.test ("boo");
+ }
+
+ public void run () {
+ var faz = new Faz ();
+ FazFunc func = (f,s) => {
+ assert (s == "faz");
+ return s;
+ };
+ faz.test.connect (func);
+ assert (faz.test ("faz") == "faz");
+ faz.test.disconnect (func);
+ faz.test ("boo");
+ }
+}
+
+void main () {
+ {
+ var bar = new Bar ();
+ bar.run ();
+
+ var foo = new Foo ();
+ FooFunc func = (f,s) => {
+ assert (s == "foo");
+ return s;
+ };
+ foo.test.connect (func);
+ assert (foo.test ("foo") == "foo");
+ foo.test.disconnect (func);
+ foo.test ("bar");
+ }
+ {
+ var boo = new Boo ();
+ boo.run ();
+
+ var faz = new Faz ();
+ FazFunc func = (f,s) => {
+ assert (s == "faz");
+ return s;
+ };
+ faz.test.connect (func);
+ assert (faz.test ("faz") == "faz");
+ faz.test.disconnect (func);
+ faz.test ("boo");
+ }
+}