From 123be8c97ee8db705b30e7bed14fd3aafc54c43f Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 19 Jan 2025 11:55:49 +0200 Subject: [PATCH] implement `test_referrers` --- .../window/tab/item/page/client/request.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/app/browser/window/tab/item/page/client/request.rs b/src/app/browser/window/tab/item/page/client/request.rs index ca2caba8..dd52cf74 100644 --- a/src/app/browser/window/tab/item/page/client/request.rs +++ b/src/app/browser/window/tab/item/page/client/request.rs @@ -151,12 +151,23 @@ impl Request { /// Recursively count referrers of `Self` /// * useful to apply redirection rules by protocol driver selected pub fn referrers(&self) -> usize { - let count = match self { + match self { Request::Gemini { referrer, .. } => referrer, Request::Titan { referrer, .. } => referrer, } .as_ref() - .map_or(0, |request| request.referrers()); - 1 + count + .map_or(0, |request| request.referrers()) + + 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); +}