mod common;
use common::test_server::TestServer;
use https_proxy::config::UserConfig;
fn test_users() -> Vec<UserConfig> {
vec![UserConfig {
username: "testuser".to_string(),
password: "testpass".to_string(),
}]
}
#[tokio::test]
async fn test_missing_auth_gets_404() {
let server = TestServer::start(test_users()).await;
let client = server.reqwest_client();
let resp = client
.get(format!("{}/", server.proxy_url()))
.send()
.await
.unwrap();
assert_eq!(resp.status(), 404);
}
#[tokio::test]
async fn test_wrong_credentials_gets_404() {
let server = TestServer::start(test_users()).await;
let client = server.reqwest_client();
let resp = client
.get(format!("{}/", server.proxy_url()))
.header(
"proxy-authorization",
format!(
"Basic {}",
base64::Engine::encode(&base64::engine::general_purpose::STANDARD, "wrong:creds")
),
)
.send()
.await
.unwrap();
assert_eq!(resp.status(), 404);
}
#[tokio::test]
async fn test_malformed_auth_gets_404() {
let server = TestServer::start(test_users()).await;
let client = server.reqwest_client();
let resp = client
.get(format!("{}/", server.proxy_url()))
.header("proxy-authorization", "Bearer some-token")
.send()
.await
.unwrap();
assert_eq!(resp.status(), 404);
}