diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2019-11-12 23:49:35 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2019-11-18 09:33:15 +0100 |
commit | 48809c81ec46566662b442b5a216ec51ccc597d2 (patch) | |
tree | 27a2f288fdc6882ecf788aa2f35d4eaf4a07db09 | |
parent | 35ede6dfdf62ca80e6500e4c26a1d27834acdd2c (diff) | |
download | vala-48809c81ec46566662b442b5a216ec51ccc597d2.tar.gz |
test: Add "GLib.Closure parameter" test to increase coverage
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/delegates/gclosure-conversion.vala | 30 |
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"); +} |