From 74f64b81ab360dbb9e4bc80a682bcc306c3e4706 Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Thu, 25 Jan 2024 20:05:31 +0100 Subject: [PATCH] test(transport/smtp): test credentials percent decoding from URL (#934) --- src/transport/smtp/transport.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/transport/smtp/transport.rs b/src/transport/smtp/transport.rs index 8acfcb4..3763aab 100644 --- a/src/transport/smtp/transport.rs +++ b/src/transport/smtp/transport.rs @@ -381,6 +381,22 @@ mod tests { assert!(matches!(builder.info.tls, Tls::Wrapper(_))); assert_eq!(builder.info.server, "smtp.example.com"); + let builder = SmtpTransport::from_url( + "smtps://user%40example.com:pa$$word%3F%22!@smtp.example.com:465", + ) + .unwrap(); + + assert_eq!(builder.info.port, 465); + assert_eq!( + builder.info.credentials, + Some(Credentials::new( + "user@example.com".to_owned(), + "pa$$word?\"!".to_owned() + )) + ); + assert!(matches!(builder.info.tls, Tls::Wrapper(_))); + assert_eq!(builder.info.server, "smtp.example.com"); + let builder = SmtpTransport::from_url("smtp://username:password@smtp.example.com:587?tls=required") .unwrap();