mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-10 15:02:56 +00:00
66 lines
1.7 KiB
Rust
66 lines
1.7 KiB
Rust
|
use js_sys::{Array, ArrayBuffer};
|
||
|
use wasm_bindgen::prelude::*;
|
||
|
use wasm_bindgen::JsCast;
|
||
|
use wasm_bindgen_futures::JsFuture;
|
||
|
use wasm_bindgen_test::*;
|
||
|
use web_sys::Blob;
|
||
|
|
||
|
#[wasm_bindgen(module = "/tests/wasm/blob.js")]
|
||
|
extern "C" {
|
||
|
fn new_blob() -> Blob;
|
||
|
}
|
||
|
|
||
|
#[wasm_bindgen_test]
|
||
|
fn test_blob_from_js() {
|
||
|
let blob = new_blob();
|
||
|
assert!(blob.is_instance_of::<Blob>());
|
||
|
assert_eq!(blob.size(), 3.0);
|
||
|
}
|
||
|
|
||
|
#[wasm_bindgen_test]
|
||
|
fn test_blob_from_bytes() {
|
||
|
let bytes = Array::new();
|
||
|
bytes.push(&1.into());
|
||
|
bytes.push(&2.into());
|
||
|
bytes.push(&3.into());
|
||
|
|
||
|
let blob = Blob::new_with_u8_array_sequence(&bytes.into()).unwrap();
|
||
|
assert!(blob.is_instance_of::<Blob>());
|
||
|
assert_eq!(blob.size(), 3.0);
|
||
|
}
|
||
|
|
||
|
#[wasm_bindgen_test]
|
||
|
fn test_blob_empty() {
|
||
|
let blob = Blob::new().unwrap();
|
||
|
assert!(blob.is_instance_of::<Blob>());
|
||
|
assert_eq!(blob.size(), 0.0);
|
||
|
}
|
||
|
|
||
|
#[wasm_bindgen_test]
|
||
|
async fn test_blob_array_buffer() {
|
||
|
let bytes = Array::new();
|
||
|
bytes.push(&1.into());
|
||
|
bytes.push(&2.into());
|
||
|
bytes.push(&3.into());
|
||
|
|
||
|
let blob = Blob::new_with_u8_array_sequence(&bytes.into()).unwrap();
|
||
|
|
||
|
let buffer: ArrayBuffer = JsFuture::from(blob.array_buffer()).await.unwrap().into();
|
||
|
|
||
|
assert!(blob.is_instance_of::<Blob>());
|
||
|
assert!(buffer.is_instance_of::<ArrayBuffer>());
|
||
|
assert_eq!(blob.size(), buffer.byte_length() as f64);
|
||
|
}
|
||
|
|
||
|
#[wasm_bindgen_test]
|
||
|
async fn test_blob_text() {
|
||
|
let strings = Array::new();
|
||
|
strings.push(&"hello".into());
|
||
|
|
||
|
let blob = Blob::new_with_str_sequence(&strings.into()).unwrap();
|
||
|
let string = JsFuture::from(blob.text()).await.unwrap();
|
||
|
|
||
|
assert!(blob.is_instance_of::<Blob>());
|
||
|
assert_eq!(string, "hello")
|
||
|
}
|