Skip to content

Commit 7e9610c

Browse files
committed
gio: Add DBus RegistrationBuilder.property()/set_property() tests
1 parent bdd68d5 commit 7e9610c

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

gio/tests/dbus_peer.rs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)