use cpp_core::NullPtr;
use qt_core::{QCoreApplication, QTimer, SlotNoArgs};
use std::cell::RefCell;
use std::rc::Rc;
#[test]
fn timer_quit() {
QCoreApplication::init(|app| unsafe {
let value = Rc::new(RefCell::new(Some(42)));
let value2 = Rc::clone(&value);
let slot1 = SlotNoArgs::new(NullPtr, move || {
assert_eq!(value2.borrow_mut().take(), Some(42));
});
let c = app.about_to_quit().connect(&slot1);
assert!(c.is_valid());
let timer = QTimer::new_0a();
let c = timer.timeout().connect(app.slot_quit());
assert!(c.is_valid());
timer.start_1a(1000);
let r = QCoreApplication::exec();
assert!(value.borrow().is_none());
r
})
}