mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-19 06:31:02 +08:00
114 lines
2.3 KiB
Rust
114 lines
2.3 KiB
Rust
|
#![allow(unused_variables)]
|
||
|
|
||
|
extern crate sciter;
|
||
|
extern crate sciter_serde;
|
||
|
|
||
|
#[macro_use]
|
||
|
extern crate serde_derive;
|
||
|
extern crate serde_bytes;
|
||
|
extern crate serde;
|
||
|
|
||
|
use sciter::{Value};
|
||
|
use sciter_serde::{to_value};
|
||
|
|
||
|
|
||
|
#[test]
|
||
|
fn basic_types() {
|
||
|
// bool
|
||
|
let v = to_value(&true).unwrap();
|
||
|
assert!(v.is_bool());
|
||
|
assert_eq!(v, Value::from(true));
|
||
|
|
||
|
// integer types
|
||
|
let v = to_value(&0).unwrap();
|
||
|
assert!(v.is_int());
|
||
|
assert_eq!(v.to_int(), Some(0));
|
||
|
|
||
|
let v = to_value(&7u8).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7u16).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7u32).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7i8).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7i16).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7i32).unwrap();
|
||
|
assert_eq!(v, Value::from(7));
|
||
|
|
||
|
let v = to_value(&7.0).unwrap();
|
||
|
assert!(v.is_float());
|
||
|
|
||
|
// 64-bit
|
||
|
// let v = to_value(&7u64).unwrap();
|
||
|
// assert!(v.is_float());
|
||
|
// assert_eq!(v, Value::from(7.0));
|
||
|
|
||
|
// Option
|
||
|
// let v = to_value(&Some(7)).unwrap();
|
||
|
// assert!(v.is_int());
|
||
|
|
||
|
// let v = to_value(&None).unwrap();
|
||
|
// assert!(v.is_null());
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn strings() {
|
||
|
// strings
|
||
|
let v = to_value(&'h').unwrap();
|
||
|
assert!(v.is_string());
|
||
|
assert_eq!(v, Value::from("h"));
|
||
|
|
||
|
let v = to_value("hello").unwrap();
|
||
|
assert!(v.is_string());
|
||
|
assert_eq!(v, Value::from("hello"));
|
||
|
|
||
|
// doesn't work because Rust doesn't have specialization yet (https://github.com/rust-lang/rust#31844)
|
||
|
// let v = to_value(b"hello").unwrap();
|
||
|
// println!("b'hello': {:?}", v);
|
||
|
// assert!(v.is_bytes());
|
||
|
// assert_eq!(v.as_bytes(), Some(b"hello".as_ref()));
|
||
|
|
||
|
use serde_bytes::Bytes;
|
||
|
|
||
|
let v = to_value(&Bytes::new(b"hello")).unwrap();
|
||
|
assert!(v.is_bytes());
|
||
|
assert_eq!(v.as_bytes(), Some(b"hello".as_ref()));
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn arrays() {
|
||
|
let a = [1,2,3];
|
||
|
let v = to_value(&a).unwrap();
|
||
|
assert!(v.is_array());
|
||
|
assert_eq!(v.len(), a.len());
|
||
|
|
||
|
let a = vec![1,2,3];
|
||
|
let v = to_value(&a).unwrap();
|
||
|
assert!(v.is_array());
|
||
|
assert_eq!(v.len(), a.len());
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn structs() {
|
||
|
|
||
|
#[derive(Serialize)]
|
||
|
struct Test {
|
||
|
int: u32,
|
||
|
seq: Vec<&'static str>,
|
||
|
}
|
||
|
|
||
|
let a = Test { int: 7, seq: vec!["a", "b"]};
|
||
|
let v = to_value(&a).unwrap();
|
||
|
assert!(v.is_map());
|
||
|
assert_eq!(v.len(), 2);
|
||
|
assert_eq!(v.get_item("int"), Value::from(7) );
|
||
|
assert_eq!(v.get_item("seq").len(), 2);
|
||
|
}
|