From 8bc33130a9ab5b35bc792ef847afc18660e8c704 Mon Sep 17 00:00:00 2001 From: Compositr Date: Mon, 4 Nov 2024 22:23:13 +1100 Subject: [PATCH] test: add basic tests for URL --- src/http/requests.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/http/requests.rs b/src/http/requests.rs index 5d482f2..da41498 100644 --- a/src/http/requests.rs +++ b/src/http/requests.rs @@ -112,3 +112,36 @@ impl Request { self.stream } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_url_new() { + let url = URL::new("/".to_string()).unwrap(); + assert_eq!(url.path, "/"); + assert_eq!(url.raw, "/"); + + let url = URL::new("/path/to/resource".to_string()).unwrap(); + assert_eq!(url.path, "/path/to/resource"); + + let url = URL::new("/path/to/resource?query=string".to_string()).unwrap(); + assert_eq!(url.path, "/path/to/resource"); + assert_eq!(url.query.len(), 1); + assert_eq!(url.query.get("query").unwrap(), "string"); + + let url = URL::new("/path/to/resource?query=string&another=one".to_string()).unwrap(); + assert_eq!(url.path, "/path/to/resource"); + assert_eq!(url.query.len(), 2); + assert_eq!(url.query.get("query").unwrap(), "string"); + assert_eq!(url.query.get("another").unwrap(), "one"); + + let url = URL::new("/path/to/resource?query=string&another=one&third=3".to_string()).unwrap(); + assert_eq!(url.path, "/path/to/resource"); + assert_eq!(url.query.len(), 3); + assert_eq!(url.query.get("query").unwrap(), "string"); + assert_eq!(url.query.get("another").unwrap(), "one"); + assert_eq!(url.query.get("third").unwrap(), "3"); + } +}