Skip to content

Commit 3929152

Browse files
committed
cxx-qt-lib: add some tests for QVariant::type_name()
1 parent fad2915 commit 3929152

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

  • crates/cxx-qt-lib/src/core/qvariant

crates/cxx-qt-lib/src/core/qvariant/mod.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,3 +294,37 @@ unsafe impl ExternType for QVariant {
294294
type Id = type_id!("QVariant");
295295
type Kind = cxx::kind::Trivial;
296296
}
297+
298+
#[cfg(test)]
299+
mod tests {
300+
use super::*;
301+
use crate::{QList, QString};
302+
303+
#[test]
304+
fn test_type_name() {
305+
let variant = QVariant::from(&true);
306+
assert_eq!(variant.type_name(), "bool");
307+
308+
let variant = QVariant::from(&123_i32);
309+
assert_eq!(variant.type_name(), "int");
310+
311+
let variant = QVariant::from(&0.25f32);
312+
assert_eq!(variant.type_name(), "float");
313+
314+
let variant = QVariant::from(&0.75f64);
315+
assert_eq!(variant.type_name(), "double");
316+
317+
let variant = QVariant::from(&QList::<i32>::from_iter(&[1, 2, 3]));
318+
assert_eq!(variant.type_name(), "QList<int>");
319+
320+
let variant = QVariant::from(&QString::from("ABC"));
321+
assert_eq!(variant.type_name(), "QString");
322+
}
323+
324+
#[test]
325+
fn qvariant_type_name_invalid() {
326+
let variant = QVariant::default();
327+
assert!(!variant.is_valid());
328+
assert_eq!(variant.type_name(), "");
329+
}
330+
}

0 commit comments

Comments
 (0)