implement test_referrers

This commit is contained in:
yggverse 2025-01-19 11:55:49 +02:00
parent eb90a60162
commit 123be8c97e

View File

@ -151,12 +151,23 @@ impl Request {
/// Recursively count referrers of `Self` /// Recursively count referrers of `Self`
/// * useful to apply redirection rules by protocol driver selected /// * useful to apply redirection rules by protocol driver selected
pub fn referrers(&self) -> usize { pub fn referrers(&self) -> usize {
let count = match self { match self {
Request::Gemini { referrer, .. } => referrer, Request::Gemini { referrer, .. } => referrer,
Request::Titan { referrer, .. } => referrer, Request::Titan { referrer, .. } => referrer,
} }
.as_ref() .as_ref()
.map_or(0, |request| request.referrers()); .map_or(0, |request| request.referrers())
1 + count + 1
} }
} }
#[test]
fn test_referrers() {
const QUERY: &str = "gemini://geminiprotocol.net";
let r1 = Request::parse(QUERY, None).unwrap();
let r2 = Request::parse(QUERY, Some(r1)).unwrap();
let r3 = Request::parse(QUERY, Some(r2)).unwrap();
assert_eq!(r3.referrers(), 3);
}