43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use http::{HeaderMap, HeaderValue};
|
|
use reqwest::StatusCode;
|
|
|
|
use super::*;
|
|
|
|
fn headers_with_iap() -> HeaderMap {
|
|
let mut headers = HeaderMap::new();
|
|
headers.insert(
|
|
IAP_GENERATED_RESPONSE_HEADER,
|
|
HeaderValue::from_static("true"),
|
|
);
|
|
headers
|
|
}
|
|
|
|
#[test]
|
|
fn challenge_statuses_with_iap_header_are_challenges() {
|
|
for status in [
|
|
StatusCode::FOUND,
|
|
StatusCode::UNAUTHORIZED,
|
|
StatusCode::FORBIDDEN,
|
|
] {
|
|
assert!(is_iap_challenge(status, &headers_with_iap()));
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn challenge_status_without_iap_header_is_not_a_challenge() {
|
|
assert!(!is_iap_challenge(StatusCode::FORBIDDEN, &HeaderMap::new()));
|
|
assert!(!is_iap_challenge(
|
|
StatusCode::UNAUTHORIZED,
|
|
&HeaderMap::new()
|
|
));
|
|
}
|
|
|
|
#[test]
|
|
fn non_challenge_status_with_iap_header_is_not_a_challenge() {
|
|
assert!(!is_iap_challenge(StatusCode::OK, &headers_with_iap()));
|
|
assert!(!is_iap_challenge(
|
|
StatusCode::INTERNAL_SERVER_ERROR,
|
|
&headers_with_iap()
|
|
));
|
|
}
|