public void TestEncodingMailboxWithArabicName() { var mailbox = new MailboxAddress ("هل تتكلم اللغة الإنجليزية /العربية؟", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var expected = "=?utf-8?b?2YfZhCDYqtiq2YPZhNmFINin2YTZhNi62Kk=?=\n =?utf-8?b?INin2YTYpdmG2KzZhNmK2LLZitipIC/Yp9mE2LnYsdio2YrYqdif?=\n\t<*****@*****.**>"; var actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding arabic mailbox did not match expected result: {0}", expected); Assert.IsTrue (InternetAddressList.TryParse (actual, out list), "Failed to parse arabic mailbox"); Assert.AreEqual (mailbox.Name, list[0].Name); }
public void TestEncodingLongNameMixedQuotingAndEncoding() { const string name = "Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx für xxxxxxxxxxxxx xxxx"; const string encodedNameLatin1 = "\"Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx\" =?iso-8859-1?b?Zvxy?= xxxxxxxxxxxxx xxxx"; const string encodedNameUnicode = "\"Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx\" =?utf-8?b?ZsO8cg==?= xxxxxxxxxxxxx xxxx"; const string encodedMailbox = "\"Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx\" =?iso-8859-1?b?Zvxy?= xxxxxxxxxxxxx\n xxxx <*****@*****.**>"; const string address = "*****@*****.**"; var options = FormatOptions.Default.Clone(); options.NewLineFormat = NewLineFormat.Unix; options.AllowMixedHeaderCharsets = true; var buffer = Rfc2047.EncodePhrase(options, Encoding.UTF8, name); var result = Encoding.UTF8.GetString(buffer); Assert.AreEqual(encodedNameLatin1, result); var mailbox = new MailboxAddress(name, address); var list = new InternetAddressList(); list.Add(mailbox); result = list.ToString(options, true); Assert.AreEqual(encodedMailbox, result); // Now disable smart encoding options.AllowMixedHeaderCharsets = false; buffer = Rfc2047.EncodePhrase(options, Encoding.UTF8, name); result = Encoding.UTF8.GetString(buffer); Assert.AreEqual(encodedNameUnicode, result); }
public void TestEncodingSimpleMailboxWithQuotedName() { const string expected = "\"Stedfast, Jeffrey\" <*****@*****.**>"; var mailbox = new MailboxAddress("Stedfast, Jeffrey", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding quoted mailbox did not match expected result: {0}", expected); }
public void TestEncodingSimpleAddressList() { const string expectedEncoded = "Kristoffer =?iso-8859-1?q?Br=E5nemyr?= <*****@*****.**>, Jeffrey Stedfast\n\t<*****@*****.**>"; const string expectedDisplay = "\"Kristoffer Brånemyr\" <*****@*****.**>, \"Jeffrey Stedfast\" <*****@*****.**>"; var latin1 = Encoding.GetEncoding("iso-8859-1"); var options = FormatOptions.Default.Clone(); var list = new InternetAddressList(); list.Add(new MailboxAddress(latin1, "Kristoffer Brånemyr", "*****@*****.**")); list.Add(new MailboxAddress("Jeffrey Stedfast", "*****@*****.**")); options.NewLineFormat = NewLineFormat.Unix; var display = list.ToString(options, false); Assert.AreEqual(expectedDisplay, display, "Display value does not match the expected result: {0}", display); var encoded = list.ToString(options, true); Assert.AreEqual(expectedEncoded, encoded, "Encoded value does not match the expected result: {0}", display); }
public void TestDecodedMailboxHasCorrectCharsetEncoding() { var latin1 = Encoding.GetEncoding ("iso-8859-1"); var mailbox = new MailboxAddress (latin1, "Kristoffer Brånemyr", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var encoded = list.ToString (UnixFormatOptions, true); InternetAddressList parsed; Assert.IsTrue (InternetAddressList.TryParse (encoded, out parsed), "Failed to parse address"); Assert.AreEqual (latin1.HeaderName, parsed[0].Encoding.HeaderName, "Parsed charset does not match"); }
public void TestEncodingMailboxWithArabicName() { const string expected = "=?utf-8?b?2YfZhCDYqtiq2YPZhNmFINin2YTZhNi62Kkg2KfZhNil2YbYrNmE2YrYstmK2Kk=?=\n =?utf-8?b?IC/Yp9mE2LnYsdio2YrYqdif?= <*****@*****.**>"; var mailbox = new MailboxAddress("هل تتكلم اللغة الإنجليزية /العربية؟", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding arabic mailbox did not match expected result: {0}", expected); Assert.IsTrue(InternetAddressList.TryParse(actual, out list), "Failed to parse arabic mailbox"); Assert.AreEqual(mailbox.Name, list[0].Name); }
public void TestEncodingMailboxWithJapaneseName() { const string expected = "=?utf-8?b?54uC44Gj44Gf44GT44Gu5LiW44Gn54uC44GG44Gq44KJ5rCX44Gv56K644GL44Gg?=\n =?utf-8?b?44CC?= <*****@*****.**>"; var mailbox = new MailboxAddress("狂ったこの世で狂うなら気は確かだ。", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding japanese mailbox did not match expected result: {0}", expected); Assert.IsTrue(InternetAddressList.TryParse(actual, out list), "Failed to parse japanese mailbox"); Assert.AreEqual(mailbox.Name, list[0].Name); }
static void AssertInternetAddressListsEqual (string text, InternetAddressList expected, InternetAddressList result) { Assert.AreEqual (expected.Count, result.Count, "Unexpected number of addresses: {0}", text); for (int i = 0; i < expected.Count; i++) { Assert.AreEqual (expected.GetType (), result.GetType (), "Address #{0} differs in type: {1}", i, text); Assert.AreEqual (expected[i].ToString (), result[i].ToString (), "Display strings differ for {0}", text); } var encoded = result.ToString (true).Replace ("\r\n", "\n"); Assert.AreEqual (text, encoded, "Encoded strings differ for {0}", text); }
static void AssertInternetAddressListsEqual(string text, InternetAddressList expected, InternetAddressList result) { Assert.AreEqual(expected.Count, result.Count, "Unexpected number of addresses: {0}", text); for (int i = 0; i < expected.Count; i++) { Assert.AreEqual(expected.GetType(), result.GetType(), "Address #{0} differs in type: {1}", i, text); Assert.AreEqual(expected[i].ToString(), result[i].ToString(), "Display strings differ for {0}", text); } var encoded = result.ToString(true).Replace("\r\n", "\n"); Assert.AreEqual(text, encoded, "Encoded strings differ for {0}", text); }
public void TestEncodingMailboxWithReallyLongWord() { const string expected = "=?us-ascii?q?reeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaallllllllllll?=\n =?us-ascii?q?llllllllllllllllllllllllllllllllllllllllllly?= long word\n\t<*****@*****.**>"; const string name = "reeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaallllllllllllllllllllllllllllllllllllllllllllllllllllllly long word"; var mailbox = new MailboxAddress(name, "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding really long mailbox did not match expected result: {0}", expected); Assert.IsTrue(InternetAddressList.TryParse(actual, out list), "Failed to parse really long mailbox"); Assert.AreEqual(mailbox.Name, list[0].Name); }
public void TestDecodedMailboxHasCorrectCharsetEncoding() { var latin1 = Encoding.GetEncoding("iso-8859-1"); var mailbox = new MailboxAddress(latin1, "Kristoffer Brånemyr", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var encoded = list.ToString(UnixFormatOptions, true); InternetAddressList parsed; Assert.IsTrue(InternetAddressList.TryParse(encoded, out parsed), "Failed to parse address"); Assert.AreEqual(latin1.HeaderName, parsed[0].Encoding.HeaderName, "Parsed charset does not match"); }
public void TestUnsupportedCharsetExceptionNotThrown() { var mailbox = new MailboxAddress(Encoding.UTF8, "狂ったこの世で狂うなら気は確かだ。", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var encoded = list.ToString(true); encoded = encoded.Replace("utf-8", "x-unknown"); InternetAddressList parsed; try { Assert.IsTrue(InternetAddressList.TryParse(encoded, out parsed), "Failed to parse address"); } catch (Exception ex) { Assert.Fail("Exception thrown parsing address with unsupported charset: {0}", ex); } }
public void TestEncodingLongNameMixedQuotingAndEncoding() { const string name = "Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx für xxxxxxxxxxxxx xxxx"; const string encodedName = "\"Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx\" =?iso-8859-1?b?Zvxy?= xxxxxxxxxxxxx xxxx"; const string encodedMailbox = "\"Dr. xxxxxxxxxx xxxxx | xxxxxx.xxxxxxx\" =?iso-8859-1?b?Zvxy?= xxxxxxxxxxxxx\n xxxx <*****@*****.**>"; const string address = "*****@*****.**"; var buffer = Rfc2047.EncodePhrase(Encoding.UTF8, name); var result = Encoding.UTF8.GetString(buffer); Assert.AreEqual(encodedName, result); var mailbox = new MailboxAddress(name, address); var list = new InternetAddressList(); list.Add(mailbox); result = list.ToString(true); Assert.AreEqual(encodedMailbox, result); }
public void TestEncodingSimpleMailboxWithLatin1Name() { var latin1 = Encoding.GetEncoding("iso-8859-1"); var mailbox = new MailboxAddress(latin1, "Kristoffer Brånemyr", "*****@*****.**"); var list = new InternetAddressList(); list.Add(mailbox); var expected = "Kristoffer =?iso-8859-1?q?Br=E5nemyr?= <*****@*****.**>"; var actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding latin1 mailbox did not match expected result: {0}", expected); mailbox = new MailboxAddress(latin1, "Tõivo Leedjärv", "*****@*****.**"); list = new InternetAddressList(); list.Add(mailbox); expected = "=?iso-8859-1?b?VIH1aXZvIExlZWRqgeRydg==?= <*****@*****.**>"; actual = list.ToString(UnixFormatOptions, true); Assert.AreEqual(expected, actual, "Encoding latin1 mailbox did not match expected result: {0}", expected); }
public void TestEncodingSimpleMailboxWithQuotedName () { const string expected = "\"Stedfast, Jeffrey\" <*****@*****.**>"; var mailbox = new MailboxAddress ("Stedfast, Jeffrey", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding quoted mailbox did not match expected result: {0}", expected); }
public void TestEncodingSimpleMailboxWithLatin1Name () { var latin1 = Encoding.GetEncoding ("iso-8859-1"); var mailbox = new MailboxAddress (latin1, "Kristoffer Brånemyr", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var expected = "Kristoffer =?iso-8859-1?q?Br=E5nemyr?= <*****@*****.**>"; var actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding latin1 mailbox did not match expected result: {0}", expected); mailbox = new MailboxAddress (latin1, "Tõivo Leedjärv", "*****@*****.**"); list = new InternetAddressList (); list.Add (mailbox); expected = "=?iso-8859-1?b?VIH1aXZvIExlZWRqgeRydg==?= <*****@*****.**>"; actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding latin1 mailbox did not match expected result: {0}", expected); }
public void TestEncodingMailboxWithReallyLongWord () { const string expected = "=?us-ascii?q?reeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaallllllllllll?=\n =?us-ascii?q?llllllllllllllllllllllllllllllllllllllllllly?= long word\n\t<*****@*****.**>"; const string name = "reeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaallllllllllllllllllllllllllllllllllllllllllllllllllllllly long word"; var mailbox = new MailboxAddress (name, "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding really long mailbox did not match expected result: {0}", expected); Assert.IsTrue (InternetAddressList.TryParse (actual, out list), "Failed to parse really long mailbox"); Assert.AreEqual (mailbox.Name, list[0].Name); }
public void TestEncodingMailboxWithJapaneseName () { const string expected = "=?utf-8?b?54uC44Gj44Gf44GT44Gu5LiW44Gn54uC44GG44Gq44KJ5rCX44Gv56K644GL44Gg?=\n =?utf-8?b?44CC?= <*****@*****.**>"; var mailbox = new MailboxAddress ("狂ったこの世で狂うなら気は確かだ。", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var actual = list.ToString (UnixFormatOptions, true); Assert.AreEqual (expected, actual, "Encoding japanese mailbox did not match expected result: {0}", expected); Assert.IsTrue (InternetAddressList.TryParse (actual, out list), "Failed to parse japanese mailbox"); Assert.AreEqual (mailbox.Name, list[0].Name); }
public void TestEncodingSimpleAddressList () { const string expectedEncoded = "Kristoffer =?iso-8859-1?q?Br=E5nemyr?= <*****@*****.**>, Jeffrey Stedfast\n\t<*****@*****.**>"; const string expectedDisplay = "\"Kristoffer Brånemyr\" <*****@*****.**>, \"Jeffrey Stedfast\" <*****@*****.**>"; var latin1 = Encoding.GetEncoding ("iso-8859-1"); var options = FormatOptions.Default.Clone (); var list = new InternetAddressList (); list.Add (new MailboxAddress (latin1, "Kristoffer Brånemyr", "*****@*****.**")); list.Add (new MailboxAddress ("Jeffrey Stedfast", "*****@*****.**")); options.NewLineFormat = NewLineFormat.Unix; var display = list.ToString (options, false); Assert.AreEqual (expectedDisplay, display, "Display value does not match the expected result: {0}", display); var encoded = list.ToString (options, true); Assert.AreEqual (expectedEncoded, encoded, "Encoded value does not match the expected result: {0}", display); }
public void TestUnsupportedCharsetExceptionNotThrown () { var mailbox = new MailboxAddress (Encoding.UTF8, "狂ったこの世で狂うなら気は確かだ。", "*****@*****.**"); var list = new InternetAddressList (); list.Add (mailbox); var encoded = list.ToString (true); encoded = encoded.Replace ("utf-8", "x-unknown"); InternetAddressList parsed; try { Assert.IsTrue (InternetAddressList.TryParse (encoded, out parsed), "Failed to parse address"); } catch (Exception ex) { Assert.Fail ("Exception thrown parsing address with unsupported charset: {0}", ex); } }