-
-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
179 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
.vscode | ||
target | ||
Cargo.lock | ||
/image.jpg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
use mockito::{Matcher, mock, server_url}; | ||
|
||
speculate::speculate! { | ||
before { | ||
env_logger::try_init().ok(); | ||
} | ||
|
||
test "accept headers populated by default" { | ||
let m = mock("GET", "/") | ||
.match_header("accept", "*/*") | ||
.match_header("accept-encoding", "deflate, gzip") | ||
.create(); | ||
|
||
chttp::get(server_url()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "user agent contains expected format" { | ||
let m = mock("GET", "/") | ||
.match_header("user-agent", Matcher::Regex(r"^curl/\S+ chttp/\S+$".into())) | ||
.create(); | ||
|
||
chttp::get(server_url()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
use chttp::prelude::*; | ||
use mockito::{mock, server_url}; | ||
|
||
speculate::speculate! { | ||
before { | ||
env_logger::try_init().ok(); | ||
} | ||
|
||
test "GET request" { | ||
let m = mock("GET", "/").create(); | ||
|
||
chttp::get(server_url()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "HEAD request" { | ||
let m = mock("HEAD", "/").create(); | ||
|
||
chttp::head(server_url()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "POST request" { | ||
let m = mock("POST", "/").create(); | ||
|
||
chttp::post(server_url(), ()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "PUT request" { | ||
let m = mock("PUT", "/").create(); | ||
|
||
chttp::put(server_url(), ()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "DELETE request" { | ||
let m = mock("DELETE", "/").create(); | ||
|
||
chttp::delete(server_url()).unwrap(); | ||
|
||
m.assert(); | ||
} | ||
|
||
test "arbitrary FOOBAR request" { | ||
let m = mock("FOOBAR", "/").create(); | ||
|
||
Request::builder() | ||
.method("FOOBAR") | ||
.uri(server_url()) | ||
.body(()) | ||
.unwrap() | ||
.send() | ||
.unwrap(); | ||
|
||
m.assert(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,33 @@ | ||
use mockito::{mock, server_url}; | ||
|
||
mod utils; | ||
|
||
speculate::speculate! { | ||
before { | ||
utils::logging(); | ||
env_logger::try_init().ok(); | ||
} | ||
|
||
test "simple response body" { | ||
let mock = mock("GET", "/") | ||
let m = mock("GET", "/") | ||
.with_body("hello world") | ||
.create(); | ||
|
||
let mut response = chttp::get(server_url()).unwrap(); | ||
let response_text = response.body_mut().text().unwrap(); | ||
assert_eq!(response_text, "hello world"); | ||
|
||
mock.assert(); | ||
assert_eq!(response_text, "hello world"); | ||
m.assert(); | ||
} | ||
|
||
test "large response body" { | ||
let body = "wow so large ".repeat(1000); | ||
|
||
let mock = mock("GET", "/") | ||
let m = mock("GET", "/") | ||
.with_body(&body) | ||
.create(); | ||
|
||
let mut response = chttp::get(server_url()).unwrap(); | ||
let response_text = response.body_mut().text().unwrap(); | ||
assert_eq!(response_text, body); | ||
|
||
mock.assert(); | ||
assert_eq!(response_text, body); | ||
m.assert(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
use mockito::{mock, server_url}; | ||
|
||
speculate::speculate! { | ||
before { | ||
env_logger::try_init().ok(); | ||
} | ||
|
||
test "returns correct response code" { | ||
for status in [200u16, 202, 204, 302, 308, 400, 403, 404, 418, 429, 451, 500, 503].iter() { | ||
let m = mock("GET", "/") | ||
.with_status(*status as usize) | ||
.create(); | ||
|
||
let response = chttp::get(server_url()).unwrap(); | ||
|
||
assert_eq!(response.status(), *status); | ||
m.assert(); | ||
} | ||
} | ||
} |
Oops, something went wrong.