@@ -13,6 +13,7 @@ fn test_gdbus_peer_connection() {
1313 const EXAMPLE_XML : & str = r#"
1414 <node>
1515 <interface name='com.github.gtk_rs'>
16+ <property type='i' name='Number' access='readwrite' />
1617 <method name='Hello'>
1718 <arg type='s' name='name' direction='in'/>
1819 <arg type='s' name='greet' direction='out'/>
@@ -57,6 +58,7 @@ fn test_gdbus_peer_connection() {
5758 parameters,
5859 invocation| {
5960 dbg ! (
61+ "method_call" ,
6062 _sender,
6163 _object_path,
6264 _interface_name,
@@ -69,6 +71,34 @@ fn test_gdbus_peer_connection() {
6971 invocation. return_value ( Some ( & ( format ! ( "Hello {name}!" ) , ) . to_variant ( ) ) ) ;
7072 } ,
7173 )
74+ . property ( {
75+ |_connection, _sender, _object_path, _interface_name, _property_name| {
76+ dbg ! (
77+ "get_property" ,
78+ _sender,
79+ _object_path,
80+ _interface_name,
81+ _property_name
82+ ) ;
83+ assert_eq ! ( _property_name, "Number" ) ;
84+ 123 . to_variant ( )
85+ }
86+ } )
87+ . set_property ( {
88+ |_connection, _sender, _object_path, _interface_name, _property_name, _value| {
89+ dbg ! (
90+ "set_property" ,
91+ _sender,
92+ _object_path,
93+ _interface_name,
94+ _property_name,
95+ & _value
96+ ) ;
97+ assert_eq ! ( _property_name, "Number" ) ;
98+ assert_eq ! ( _value, 456 . to_variant( ) ) ;
99+ true
100+ }
101+ } )
72102 . build ( )
73103 . unwrap ( ) ;
74104
@@ -137,6 +167,42 @@ fn test_gdbus_peer_connection() {
137167
138168 dbg ! ( & result) ;
139169
170+ dbg ! ( "getting property" ) ;
171+
172+ let getresult = client
173+ . call_future (
174+ None ,
175+ "/com/github/gtk_rs" ,
176+ "org.freedesktop.DBus.Properties" ,
177+ "Get" ,
178+ Some ( & ( "com.github.gtk_rs" , "Number" ) . to_variant ( ) ) ,
179+ Some ( VariantTy :: new ( "(v)" ) . unwrap ( ) ) ,
180+ gio:: DBusCallFlags :: NONE ,
181+ 10000 ,
182+ )
183+ . await
184+ . unwrap ( ) ;
185+
186+ assert_eq ! ( getresult, ( 123 . to_variant( ) , ) . to_variant( ) ) ;
187+
188+ dbg ! ( "setting property" ) ;
189+
190+ let setresult = client
191+ . call_future (
192+ None ,
193+ "/com/github/gtk_rs" ,
194+ "org.freedesktop.DBus.Properties" ,
195+ "Set" ,
196+ Some ( & ( "com.github.gtk_rs" , "Number" , 456 . to_variant ( ) ) . to_variant ( ) ) ,
197+ None ,
198+ gio:: DBusCallFlags :: NONE ,
199+ 10000 ,
200+ )
201+ . await
202+ . unwrap ( ) ;
203+
204+ assert_eq ! ( setresult, ( ) . to_variant( ) ) ;
205+
140206 dbg ! ( "closing client" ) ;
141207 client. close_future ( ) . await . unwrap ( ) ;
142208 dbg ! ( "closed client, closing server" ) ;
0 commit comments