summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2019-11-12 23:49:35 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2019-11-18 09:33:15 +0100
commit48809c81ec46566662b442b5a216ec51ccc597d2 (patch)
tree27a2f288fdc6882ecf788aa2f35d4eaf4a07db09
parent35ede6dfdf62ca80e6500e4c26a1d27834acdd2c (diff)
downloadvala-48809c81ec46566662b442b5a216ec51ccc597d2.tar.gz
test: Add "GLib.Closure parameter" test to increase coverage
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/delegates/gclosure-conversion.vala30
2 files changed, 31 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6f9e5fd83..4b424f87c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -279,6 +279,7 @@ TESTS = \
delegates/error-pos.vala \
delegates/fields.vala \
delegates/fields-no-target.vala \
+ delegates/gclosure-conversion.vala \
delegates/instance-method-to-no-target.test \
delegates/lambda-mixed-instance-static.vala \
delegates/lambda-shared-closure.vala \
diff --git a/tests/delegates/gclosure-conversion.vala b/tests/delegates/gclosure-conversion.vala
new file mode 100644
index 000000000..7df324a3a
--- /dev/null
+++ b/tests/delegates/gclosure-conversion.vala
@@ -0,0 +1,30 @@
+class Foo : Object {
+ public string foo { get; set; }
+}
+
+class Bar : Object {
+ public int bar { get; set; }
+}
+
+bool to_int (Binding b, Value from, ref Value to) {
+ to.set_int (from.get_string ().to_int ());
+ return true;
+}
+
+bool to_string (Binding b, Value from, ref Value to) {
+ to.set_string (from.get_int ().to_string ());
+ return true;
+}
+
+void main () {
+ var foo = new Foo ();
+ var bar = new Bar ();
+
+ foo.bind_property ("foo", bar, "bar", BindingFlags.BIDIRECTIONAL,
+ (BindingTransformFunc) to_int, (BindingTransformFunc) to_string);
+
+ foo.foo = "42";
+ assert (bar.bar == 42);
+ bar.bar = 23;
+ assert (foo.foo == "23");
+}