diff --git a/src/url_utils.rs b/src/url_utils.rs index f6cd06d..1701ce6 100644 --- a/src/url_utils.rs +++ b/src/url_utils.rs @@ -34,7 +34,7 @@ pub fn decode_from_url_string(src: &str) -> String { if escape_pos == 0 { escape0 = c as u8; escape_pos += 1; - } else if escape_pos == 0 { + } else if escape_pos == 1 { escape_pos += 1; let c = decode_url_escape(escape0, c as u8); result.push(c); @@ -178,3 +178,19 @@ lazy_static! { .copied() .collect(); } + +#[cfg(test)] +mod tests { + + #[test] + fn test_from_real_life() { + let src = "4%2F0AeaYSHA_pv6LYFSy9QdDASiSdr4X53iOaoo9ZJotKi536ELdyaLNqbsaQ0sjsTE9yuhhdQ"; + + let result = super::decode_from_url_string(src); + + assert_eq!( + result, + "4/0AeaYSHA_pv6LYFSy9QdDASiSdr4X53iOaoo9ZJotKi536ELdyaLNqbsaQ0sjsTE9yuhhdQ" + ); + } +}