Add Response::json() test cases
This commit is contained in:
		| @@ -65,6 +65,42 @@ fn response_text() { | ||||
|     rt.block_on(res_future).unwrap(); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn response_json() { | ||||
|     let _ = env_logger::try_init(); | ||||
|  | ||||
|     let server = server! { | ||||
|         request: b"\ | ||||
|             GET /json HTTP/1.1\r\n\ | ||||
|             user-agent: $USERAGENT\r\n\ | ||||
|             accept: */*\r\n\ | ||||
|             accept-encoding: gzip\r\n\ | ||||
|             host: $HOST\r\n\ | ||||
|             \r\n\ | ||||
|             ", | ||||
|         response: b"\ | ||||
|             HTTP/1.1 200 OK\r\n\ | ||||
|             Content-Length: 7\r\n\ | ||||
|             \r\n\ | ||||
|             \"Hello\"\ | ||||
|             " | ||||
|     }; | ||||
|  | ||||
|     let mut rt = Runtime::new().expect("new rt"); | ||||
|  | ||||
|     let client = Client::new(); | ||||
|  | ||||
|     let res_future = client.get(&format!("http://{}/json", server.addr())) | ||||
|         .send() | ||||
|         .and_then(|mut res| res.json::<String>()) | ||||
|         .and_then(|text| { | ||||
|             assert_eq!("Hello", text); | ||||
|             Ok(()) | ||||
|         }); | ||||
|  | ||||
|     rt.block_on(res_future).unwrap(); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn multipart() { | ||||
|     let _ = env_logger::try_init(); | ||||
|   | ||||
| @@ -69,6 +69,37 @@ fn test_response_non_utf_8_text() { | ||||
|     assert_eq!(b"\xe4\xbd\xa0\xe5\xa5\xbd", body.as_bytes());  // Now it's utf-8 | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn test_response_json() { | ||||
|     let server = server! { | ||||
|         request: b"\ | ||||
|             GET /json HTTP/1.1\r\n\ | ||||
|             user-agent: $USERAGENT\r\n\ | ||||
|             accept: */*\r\n\ | ||||
|             accept-encoding: gzip\r\n\ | ||||
|             host: $HOST\r\n\ | ||||
|             \r\n\ | ||||
|             ", | ||||
|         response: b"\ | ||||
|             HTTP/1.1 200 OK\r\n\ | ||||
|             Server: test\r\n\ | ||||
|             Content-Length: 7\r\n\ | ||||
|             \r\n\ | ||||
|             \"Hello\"\ | ||||
|             " | ||||
|     }; | ||||
|  | ||||
|     let url = format!("http://{}/json", server.addr()); | ||||
|     let mut res = reqwest::get(&url).unwrap(); | ||||
|     assert_eq!(res.url().as_str(), &url); | ||||
|     assert_eq!(res.status(), reqwest::StatusCode::OK); | ||||
|     assert_eq!(res.headers().get(reqwest::header::SERVER).unwrap(), &"test"); | ||||
|     assert_eq!(res.headers().get(reqwest::header::CONTENT_LENGTH).unwrap(), &"7"); | ||||
|  | ||||
|     let body = res.json::<String>().unwrap(); | ||||
|     assert_eq!("Hello", body); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn test_response_copy_to() { | ||||
|     let server = server! { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user