Skip to content

Commit

Permalink
tests: fix response tests
Browse files Browse the repository at this point in the history
When these were merged as re-enabled in
4034f33
they were broken due to being merged after
4276d67
  • Loading branch information
Fishrock123 committed Jun 6, 2020
1 parent cc4cfa9 commit 08cd01a
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions tests/response.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
use tide::*;
mod test_utils;

use tide::http::{self, headers, mime, StatusCode};
use tide::Response;

#[async_std::test]
async fn test_status() {
let mut resp = Response::new(StatusCode::NotFound).body_string("foo".to_string());
let mut resp = Response::new(StatusCode::NotFound);
resp.set_body("foo");
assert_eq!(resp.status(), StatusCode::NotFound);
let foo = resp.take_body().into_string().await.unwrap();
assert_eq!(foo.as_bytes(), b"foo");
Expand All @@ -11,44 +15,40 @@ async fn test_status() {
#[async_std::test]
async fn byte_vec_content_type() {
use async_std::io::Cursor;
use http_types::headers::HeaderName;
use std::str::FromStr;
use tide::Body;

let mut resp = Response::new(StatusCode::Ok).body(Cursor::new("foo"));
let header_values = resp
.header(&HeaderName::from_str("Content-Type").unwrap())
.unwrap();
assert_eq!(header_values[0], mime::APPLICATION_OCTET_STREAM.to_string());
let foo = resp.take_body().into_string().await.unwrap();
assert_eq!(foo.as_bytes(), b"foo");
let mut resp = Response::new(StatusCode::Ok);
resp.set_body(Body::from_reader(Cursor::new("foo"), None));

assert_eq!(resp[headers::CONTENT_TYPE], mime::BYTE_STREAM.to_string());
let foo = resp.take_body().into_bytes().await.unwrap();
assert_eq!(foo, b"foo");
}

#[async_std::test]
async fn string_content_type() {
use http_types::headers::HeaderName;
use std::str::FromStr;
let mut resp = Response::new(StatusCode::Ok);
resp.set_body("foo");

let mut resp = Response::new(StatusCode::Ok).body_string("foo".to_string());
let header_values = resp
.header(&HeaderName::from_str("Content-Type").unwrap())
.unwrap();
assert_eq!(header_values[0], mime::TEXT_PLAIN_UTF_8.to_string());
assert_eq!(resp[headers::CONTENT_TYPE], mime::PLAIN.to_string());
let foo = resp.take_body().into_string().await.unwrap();
assert_eq!(foo.as_bytes(), b"foo");
assert_eq!(foo, "foo");
}

#[async_std::test]
async fn json_content_type() {
use http_types::{Method, Url};
use std::collections::BTreeMap;
use tide::http::{Method, Url};
use tide::Body;

let mut app = tide::new();
app.at("/json_content_type").get(|_| async move {
let mut map = BTreeMap::new();
map.insert(Some("a"), 2);
map.insert(Some("b"), 4);
map.insert(None, 6);
let resp = Response::new(StatusCode::Ok).body_json(&map)?;
let mut resp = Response::new(StatusCode::Ok);
resp.set_body(Body::from_json(&map)?);
Ok(resp)
});
let req = http::Request::new(
Expand All @@ -57,18 +57,20 @@ async fn json_content_type() {
);
let mut resp: http::Response = app.respond(req).await.unwrap();
assert_eq!(resp.status(), StatusCode::InternalServerError);
let body = resp.take_body().into_string().await.unwrap();
assert_eq!(body.as_bytes(), b"");
let body = resp.take_body().into_bytes().await.unwrap();
assert_eq!(body, b"");

let mut resp = async move {
let mut map = BTreeMap::new();
map.insert("a", 2);
map.insert("b", 4);
map.insert("c", 6);
Response::new(StatusCode::Ok).body_json(&map).unwrap()
let mut r = Response::new(StatusCode::Ok);
r.set_body(Body::from_json(&map).unwrap());
r
}
.await;
assert_eq!(resp.status(), StatusCode::Ok);
let body = resp.take_body().into_string().await.unwrap();
assert_eq!(body.as_bytes(), br##"{"a":2,"b":4,"c":6}"##);
let body = resp.take_body().into_bytes().await.unwrap();
assert_eq!(body, br##"{"a":2,"b":4,"c":6}"##);
}

0 comments on commit 08cd01a

Please sign in to comment.