extern crate debt64;
#[test]
fn decode_standard() {
assert_eq!(debt64::decode_standard("TWFu").unwrap(), b"Man");
assert_eq!(debt64::decode_standard("TWE=").unwrap(), b"Ma");
assert_eq!(debt64::decode_standard("TQ==").unwrap(), b"M");
assert_eq!(debt64::decode_standard("YW55IGNhcm5hbCBwbGVhc3VyZS4=").unwrap(), b"any carnal pleasure.");
assert_eq!(debt64::decode_standard("YW55IGNhcm5hbCBwbGVhc3VyZQ==").unwrap(), b"any carnal pleasure");
assert_eq!(debt64::decode_standard("YW55IGNhcm5hbCBwbGVhc3Vy").unwrap(), b"any carnal pleasur");
assert_eq!(debt64::decode_standard("YW55IGNhcm5hbCBwbGVhc3U=").unwrap(), b"any carnal pleasu");
assert_eq!(debt64::decode_standard("YW55IGNhcm5hbCBwbGVhcw==").unwrap(), b"any carnal pleas");
assert_eq!(debt64::decode_standard("cGxlYXN1cmUu").unwrap(), b"pleasure.");
assert_eq!(debt64::decode_standard("bGVhc3VyZS4=").unwrap(), b"leasure.");
assert_eq!(debt64::decode_standard("ZWFzdXJlLg==").unwrap(), b"easure.");
assert_eq!(debt64::decode_standard("YXN1cmUu").unwrap(), b"asure.");
assert_eq!(debt64::decode_standard("c3VyZS4=").unwrap(), b"sure.");
}
#[test]
fn decode_imap() {
assert_eq!(debt64::decode_imap("TWFu").unwrap(), b"Man");
assert_eq!(debt64::decode_imap("TWE").unwrap(), b"Ma");
assert_eq!(debt64::decode_imap("TQ").unwrap(), b"M");
assert_eq!(debt64::decode_imap("YW55IGNhcm5hbCBwbGVhc3VyZS4").unwrap(), b"any carnal pleasure.");
assert_eq!(debt64::decode_imap("YW55IGNhcm5hbCBwbGVhc3VyZQ").unwrap(), b"any carnal pleasure");
assert_eq!(debt64::decode_imap("YW55IGNhcm5hbCBwbGVhc3Vy").unwrap(), b"any carnal pleasur");
assert_eq!(debt64::decode_imap("YW55IGNhcm5hbCBwbGVhc3U").unwrap(), b"any carnal pleasu");
assert_eq!(debt64::decode_imap("YW55IGNhcm5hbCBwbGVhcw").unwrap(), b"any carnal pleas");
assert_eq!(debt64::decode_imap("cGxlYXN1cmUu").unwrap(), b"pleasure.");
assert_eq!(debt64::decode_imap("bGVhc3VyZS4").unwrap(), b"leasure.");
assert_eq!(debt64::decode_imap("ZWFzdXJlLg").unwrap(), b"easure.");
assert_eq!(debt64::decode_imap("YXN1cmUu").unwrap(), b"asure.");
assert_eq!(debt64::decode_imap("c3VyZS4").unwrap(), b"sure.");
}
#[test]
fn decode_mime() {
assert_eq!(
debt64::decode_mime(concat!(
"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz\r\n",
"IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg\r\n",
"dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu\r\n",
"dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo\r\n",
"ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
))
.unwrap(),
concat!(
"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that ",
"by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any ",
"carnal pleasure.",
)
.as_bytes(),
);
assert_eq!(debt64::decode_mime("{}cGxlY !@#$ XN1cmUu").unwrap(), b"pleasure.");
assert_eq!(debt64::decode_mime("bGVh #$#@ c3VyZS4[]=").unwrap(), b"leasure.");
assert_eq!(debt64::decode_mime("ZWF !^%# zdXJlLg()==").unwrap(), b"easure.");
assert_eq!(debt64::decode_mime("YXN1 *) cmUu@#").unwrap(), b"asure.");
assert_eq!(debt64::decode_mime("c3VyZS4**^^=").unwrap(), b"sure.");
}
#[test]
fn decode_with_errors() {
debt64::decode_standard("~!@").unwrap_err();
debt64::decode_imap("a=a").unwrap_err();
debt64::decode_mime("==aa").unwrap_err();
debt64::decode_url("a=a").unwrap_err();
debt64::decode_freenet_url("asdasda=a").unwrap_err();
}