url test and some fixes

This commit is contained in:
MeexReay 2025-01-26 11:46:00 +03:00
parent 58cfd1ab60
commit 8e6fe03607
4 changed files with 44 additions and 4 deletions

View File

@ -95,7 +95,7 @@ impl ClientBuilder {
/// Set default header
pub fn header(mut self, name: impl ToString, value: impl ToString) -> Self {
self.headers.put(name, value.to_string());
self.headers.add(name, value.to_string());
self
}
}

View File

@ -45,8 +45,13 @@ async fn connect_stream(proxy: Proxy, site_host: &str) -> Result<Box<dyn Request
}
async fn send_request(
mut request: HttpRequest, ssl_verify: bool, proxy: Proxy, headers: Headers,
connect_timeout: Option<Duration>, write_timeout: Option<Duration>, read_timeout: Option<Duration>
mut request: HttpRequest,
ssl_verify: bool,
proxy: Proxy,
headers: Headers,
connect_timeout: Option<Duration>,
write_timeout: Option<Duration>,
read_timeout: Option<Duration>
) -> Result<HttpResponse, HttpError> {
for (key, value) in headers.entries() {
request.headers.put_default(key, value);

View File

@ -75,7 +75,7 @@ impl RequestBuilder {
/// Set header
pub fn header(mut self, name: impl ToString, value: impl ToString) -> Self {
self.headers.put(name, value.to_string());
self.headers.add(name, value.to_string());
self
}

35
tests/url_test.rs Executable file
View File

@ -0,0 +1,35 @@
use ezhttp::request::IntoURL;
#[test]
fn url_full() {
let url = "https://meex.lol:456/dku?key=value&key2=value2#hex_id".to_url().unwrap();
let root = url.clone().root.unwrap();
assert_eq!(root.domain, "meex.lol");
assert_eq!(root.port, 456);
assert_eq!(root.scheme, "https");
assert_eq!(url.anchor.clone(), Some("hex_id".to_string()));
assert_eq!(url.path.clone(), "/dku");
assert_eq!(url.query.get("key"), Some(&"value".to_string()));
assert_eq!(url.query.get("key2"), Some(&"value2".to_string()));
assert_eq!(url.query.len(), 2);
assert!(
url.to_string() == "https://meex.lol:456/dku?key=value&key2=value2#hex_id" ||
url.to_string() == "https://meex.lol:456/dku?key2=value2&key=value#hex_id"
);
}
#[test]
fn url_path() {
let url = "/dku?key=value&key2=value2#hex_id".to_url().unwrap();
assert!(url.root.is_none());
assert_eq!(url.anchor.clone(), Some("hex_id".to_string()));
assert_eq!(url.path.clone(), "/dku");
assert_eq!(url.query.get("key"), Some(&"value".to_string()));
assert_eq!(url.query.get("key2"), Some(&"value2".to_string()));
assert_eq!(url.query.len(), 2);
assert_eq!(url.query.len(), 2);
assert!(
url.to_string() == "/dku?key=value&key2=value2#hex_id" ||
url.to_string() == "/dku?key2=value2&key=value#hex_id"
);
}