Add more email headers and some basic testing to the mailer

This commit is contained in:
Alexis Mousset
2014-12-12 21:25:17 +01:00
parent acce31d4c6
commit f1a9714690
2 changed files with 24 additions and 1 deletions

View File

@@ -47,7 +47,7 @@ pub enum Header {
/// `Reply-To`
ReplyTo(Address),
/// `Sender`
Sender(String),
Sender(Address),
/// `Date`
Date(Tm),
/// `Subject`
@@ -108,6 +108,9 @@ impl Header {
#[cfg(test)]
mod test {
use super::Header;
use mailer::address::Address;
use time::{at_utc, Timespec};
#[test]
fn test_new() {
@@ -123,5 +126,18 @@ mod test {
format!("{}", Header::new("From", "me")),
"From: me".to_string()
);
assert_eq!(
format!("{}", Header::To(Address::new("me@example.com", Some("My Name")))),
"To: My Name <me@example.com>".to_string()
);
assert_eq!(
format!("{}", Header::Subject("Test subject".to_string())),
"Subject: Test subject".to_string()
);
let time = at_utc(Timespec::new(1234567890, 54321));
assert_eq!(
format!("{}", Header::Date(time)),
"Date: Fri, 13 Feb 2009 23:31:30 GMT".to_string()
);
}
}

View File

@@ -100,6 +100,13 @@ impl Email {
);
}
/// Adds a `Sender` header
pub fn sender<A: ToAddress>(&mut self, address: A) {
self.headers.push(
Header::Sender(address.to_address())
);
}
/// Adds a `Subject` header
pub fn subject(&mut self, subject: &str) {
self.headers.push(