use hyper_custom_cert::HttpClient;
#[cfg(feature = "insecure-dangerous")]
use std::collections::HashMap;
#[cfg(feature = "insecure-dangerous")]
use std::time::Duration;
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_accept_invalid_certs_enabled() {
let _client = HttpClient::builder()
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_accept_invalid_certs_disabled() {
let _client = HttpClient::builder()
.insecure_accept_invalid_certs(false)
.build();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_with_timeout_configuration() {
let _client = HttpClient::builder()
.with_timeout(Duration::from_secs(30))
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_with_headers_configuration() {
let mut headers = HashMap::new();
headers.insert("X-Test-Header".to_string(), "test-value".to_string());
headers.insert("Accept".to_string(), "application/json".to_string());
let _client = HttpClient::builder()
.with_default_headers(headers)
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_combined_configuration() {
let mut headers = HashMap::new();
headers.insert("User-Agent".to_string(), "test-insecure-client".to_string());
let _client = HttpClient::builder()
.with_timeout(Duration::from_secs(60))
.with_default_headers(headers)
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(all(feature = "insecure-dangerous", feature = "rustls"))]
#[test]
fn insecure_with_rustls_ca_configuration() {
const TEST_CA_PEM: &[u8] = b"-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKoK/heBjcOuMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcwODI4MTUxMzAyWhcNMjcwODI2MTUxMzAyWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAuuExKtKjKEw91uR8gqyUZx+wW3qZjUHq3oLe+RxbEUVFWApwrKE3XxKJ
-----END CERTIFICATE-----";
let _client = HttpClient::builder()
.with_root_ca_pem(TEST_CA_PEM)
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(all(feature = "insecure-dangerous", feature = "rustls"))]
#[test]
fn insecure_with_certificate_pinning() {
let pins = vec![[0u8; 32]];
let _client = HttpClient::builder()
.with_pinned_cert_sha256(pins)
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_static_convenience_method() {
let _client = HttpClient::with_self_signed_certs();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_multiple_configurations() {
let _client1 = HttpClient::builder()
.insecure_accept_invalid_certs(true)
.build();
let _client2 = HttpClient::builder()
.insecure_accept_invalid_certs(false)
.build();
let _client3 = HttpClient::builder()
.with_timeout(Duration::from_secs(10))
.insecure_accept_invalid_certs(true)
.build();
}
#[cfg(not(feature = "insecure-dangerous"))]
#[test]
fn insecure_methods_not_available_without_feature() {
let _builder = HttpClient::builder();
}
#[cfg(not(feature = "insecure-dangerous"))]
#[test]
fn insecure_static_method_not_available() {
let _client = HttpClient::new();
let _client2 = HttpClient::default();
}
#[cfg(feature = "insecure-dangerous")]
#[test]
fn insecure_feature_documentation_reminder() {
let _client = HttpClient::builder()
.insecure_accept_invalid_certs(true)
.build();
}