Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
68
third-party/vendor/web-sys/tests/wasm/response.rs
vendored
Normal file
68
third-party/vendor/web-sys/tests/wasm/response.rs
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
use js_sys::{ArrayBuffer, DataView, Object, Promise, Reflect, WebAssembly};
|
||||
use wasm_bindgen::prelude::*;
|
||||
use wasm_bindgen_futures::JsFuture;
|
||||
use wasm_bindgen_test::*;
|
||||
use web_sys::{Headers, Response, ResponseInit};
|
||||
|
||||
#[wasm_bindgen(module = "/tests/wasm/response.js")]
|
||||
extern "C" {
|
||||
fn new_response() -> Response;
|
||||
fn get_wasm_imports() -> Object;
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn test_response_from_js() {
|
||||
let response = new_response();
|
||||
assert!(!response.ok());
|
||||
assert!(!response.redirected());
|
||||
assert_eq!(response.status(), 501);
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
async fn test_response_from_bytes() {
|
||||
let mut bytes: [u8; 3] = [1, 3, 5];
|
||||
let response = Response::new_with_opt_u8_array(Some(&mut bytes)).unwrap();
|
||||
assert!(response.ok());
|
||||
assert_eq!(response.status(), 200);
|
||||
|
||||
let buf_promise = response.array_buffer().unwrap();
|
||||
let buf_val = JsFuture::from(buf_promise).await.unwrap();
|
||||
assert!(buf_val.is_instance_of::<ArrayBuffer>());
|
||||
let array_buf: ArrayBuffer = buf_val.dyn_into().unwrap();
|
||||
let data_view = DataView::new(&array_buf, 0, bytes.len());
|
||||
for (i, byte) in bytes.iter().enumerate() {
|
||||
assert_eq!(&data_view.get_uint8(i), byte);
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
async fn test_response_from_other_body() {
|
||||
let input = "Hello, world!";
|
||||
let response_a = Response::new_with_opt_str(Some(input)).unwrap();
|
||||
let body = response_a.body();
|
||||
let response_b = Response::new_with_opt_readable_stream(body.as_ref()).unwrap();
|
||||
let output = JsFuture::from(response_b.text().unwrap()).await.unwrap();
|
||||
assert_eq!(JsValue::from_str(input), output);
|
||||
}
|
||||
|
||||
// Because it relies on `Response`, this can't go in `js-sys`, so put it here instead.
|
||||
#[wasm_bindgen_test]
|
||||
async fn wasm_instantiate_streaming() {
|
||||
// Taken from `crates/js-sys/tests/wasm/WebAssembly.js`.
|
||||
let mut wasm = *b"\x00asm\x01\x00\x00\x00\x01\x08\x02`\x01\x7f\x00`\x00\x00\x02\x19\x01\x07imports\rimported_func\x00\x00\x03\x02\x01\x01\x07\x11\x01\rexported_func\x00\x01\n\x08\x01\x06\x00A*\x10\x00\x0b";
|
||||
|
||||
let headers = Headers::new().unwrap();
|
||||
headers.append("Content-Type", "application/wasm").unwrap();
|
||||
let response = Response::new_with_opt_u8_array_and_init(
|
||||
Some(&mut wasm),
|
||||
ResponseInit::new().headers(&headers),
|
||||
)
|
||||
.unwrap();
|
||||
let response = Promise::resolve(&response);
|
||||
let imports = get_wasm_imports();
|
||||
let p = WebAssembly::instantiate_streaming(&response, &imports);
|
||||
let obj = JsFuture::from(p).await.unwrap();
|
||||
assert!(Reflect::get(obj.as_ref(), &"instance".into())
|
||||
.unwrap()
|
||||
.is_instance_of::<WebAssembly::Instance>());
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue