You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.5 KiB
64 lines
2.5 KiB
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using MsgReader;
|
|
|
|
namespace MsgReaderTests
|
|
{
|
|
/*
|
|
* Contains some basic content tests to make sure that the msg files are
|
|
* being parsed correctly. Sample emails contain chapter 1 from book 1
|
|
* of War and Peace taken from Project Gutenberg.
|
|
*
|
|
* Sample files are set to copy always content so will be accessible to
|
|
* this project build location as relative path of SampleFiles/<file>.msg
|
|
*
|
|
* MsgReader always returns HTML from .ExtractMsgEmailBody irrespective of
|
|
* starting format, so all tests perform a simple tag cleanup regex. This
|
|
* will not work for all variations of HTML/XHTML, but will be fine for the simple
|
|
* examples in this test.
|
|
*/
|
|
|
|
[TestClass]
|
|
public class BasicContentTests
|
|
{
|
|
private static readonly Regex HtmlSimpleCleanup = new Regex(@"<[^>]*>", RegexOptions.Compiled);
|
|
private const string SampleText = "Heavens! what a virulent attack!";
|
|
|
|
[TestMethod]
|
|
public void Html_Content_Test()
|
|
{
|
|
using (Stream fileStream = File.OpenRead(Path.Combine("SampleFiles", "HtmlSampleEmail.msg")))
|
|
{
|
|
var msgReader = new Reader();
|
|
var content = msgReader.ExtractMsgEmailBody(fileStream, true, null);
|
|
content = HtmlSimpleCleanup.Replace(content, string.Empty);
|
|
Assert.IsTrue(content.Contains(SampleText));
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Rtf_Content_Test()
|
|
{
|
|
using (Stream fileStream = File.OpenRead(Path.Combine("SampleFiles", "RtfSampleEmail.msg")))
|
|
{
|
|
var msgReader = new Reader();
|
|
var content = msgReader.ExtractMsgEmailBody(fileStream, true, null);
|
|
content = HtmlSimpleCleanup.Replace(content, string.Empty);
|
|
Assert.IsTrue(content.Contains(SampleText));
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void PlainText_Content_Test()
|
|
{
|
|
using (Stream fileStream = File.OpenRead(Path.Combine("SampleFiles", "TxtSampleEmail.msg")))
|
|
{
|
|
var msgReader = new Reader();
|
|
var content = msgReader.ExtractMsgEmailBody(fileStream, true, null);
|
|
content = HtmlSimpleCleanup.Replace(content, string.Empty);
|
|
Assert.IsTrue(content.Contains(SampleText));
|
|
}
|
|
}
|
|
}
|
|
} |