wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
#[cfg(target_arch = "wasm32")]
mod test {
use wasm_bindgen_test::*;
use wasm_service::{Method, Request, Url};
#[wasm_bindgen_test]
fn req_method() {
let req = Request::new(
Method::POST,
Url::parse("https://www.example.com").unwrap(),
web_sys::Headers::new().unwrap(),
None,
);
assert_eq!(req.method(), Method::POST);
let req = Request::new(
Method::DELETE,
Url::parse("https://www.example.com").unwrap(),
web_sys::Headers::new().unwrap(),
None,
);
assert_eq!(req.method(), Method::DELETE);
}
#[wasm_bindgen_test]
fn req_url() {
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
web_sys::Headers::new().unwrap(),
None,
);
assert_eq!(&req.url().host().unwrap().to_string(), "www.example.com");
}
#[wasm_bindgen_test]
fn req_headers() {
let headers = web_sys::Headers::new().expect("new");
headers.set("Content-Type", "application/json").expect("ok");
headers.set("X-Custom-Shape", "round").expect("ok");
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
headers,
None,
);
assert_eq!(req.has_header("content-type"), true);
assert_eq!(req.has_header("not-here"), false);
assert_eq!(&req.get_header("content-type").unwrap(), "application/json");
assert_eq!(req.get_header("not-here"), None);
}
#[wasm_bindgen_test]
fn req_body() {
let ascii_text = "hello-world";
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
web_sys::Headers::new().unwrap(),
Some(ascii_text.as_bytes().to_vec()),
);
assert_eq!(req.body().unwrap(), ascii_text.as_bytes());
let body_bin = vec![0, 1, 2, 3];
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
web_sys::Headers::new().unwrap(),
Some(body_bin),
);
let body = req.body().unwrap();
assert_eq!(body.len(), 4);
assert_eq!(body[1], 1);
}
#[wasm_bindgen_test]
fn req_query() {
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com?fruit=apple&shape=round").unwrap(),
web_sys::Headers::new().unwrap(),
None,
);
assert_eq!(req.get_query_value("fruit").unwrap(), "apple");
assert_eq!(req.get_query_value("shape").unwrap(), "round");
assert_eq!(req.get_query_value("size"), None);
}
#[wasm_bindgen_test]
fn req_cookie() {
let headers = web_sys::Headers::new().expect("new");
headers.set("Cookie", "foo=bar;color=green").expect("ok");
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
headers,
None,
);
assert_eq!(&req.get_cookie_value("foo").unwrap(), "bar");
assert_eq!(req.get_cookie_value("bar"), None);
assert_eq!(&req.get_cookie_value("color").unwrap(), "green");
let headers = web_sys::Headers::new().expect("new");
headers
.set("Cookie", "foo=bar ; color=green ; bar=baz")
.expect("ok");
let req = Request::new(
Method::GET,
Url::parse("https://www.example.com").unwrap(),
headers,
None,
);
assert_eq!(&req.get_cookie_value("foo").unwrap(), "bar"); assert_eq!(&req.get_cookie_value("color").unwrap(), "green"); assert_eq!(&req.get_cookie_value("bar").unwrap(), "baz"); }
}