Skip to content
This repository was archived by the owner on Jun 8, 2021. It is now read-only.

Commit b5b4df5

Browse files
authored
Merge pull request #632 from GuillaumeGomez/callback-check
Add test for callbacks validity
2 parents ec631c3 + d4f0f47 commit b5b4df5

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/subclass/object.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,23 @@ mod test {
700700
assert_eq!(value.get::<String>(), Ok(Some("return value".to_string())));
701701
}
702702

703+
#[test]
704+
fn test_callback_validity() {
705+
use std::sync::{Arc, Mutex};
706+
707+
let type_ = SimpleObject::get_type();
708+
let obj = Object::new(type_, &[("name", &"old-name")]).expect("Object::new failed");
709+
710+
let name_changed_triggered = Arc::new(Mutex::new(false));
711+
let name_changed_clone = name_changed_triggered.clone();
712+
713+
obj.connect_notify(Some("name"), move |_, _| {
714+
*name_changed_clone.lock().expect("Failed to lock") = true;
715+
});
716+
obj.notify("name");
717+
assert!(*name_changed_triggered.lock().expect("Failed to lock"));
718+
}
719+
703720
// Note: can't test type mismatch in signals since panics accross FFI boundaries
704721
// are UB. See https://github.com/gtk-rs/glib/issues/518
705722

0 commit comments

Comments
 (0)