diff options
Diffstat (limited to 'SendGrid')
-rwxr-xr-x | SendGrid/Example/Program.cs | 4 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/SendGrid.cs | 5 | ||||
-rwxr-xr-x | SendGrid/Tests/TestSendgrid.cs | 289 | ||||
-rwxr-xr-x | SendGrid/Tests/Tests.csproj | 1 |
4 files changed, 295 insertions, 4 deletions
diff --git a/SendGrid/Example/Program.cs b/SendGrid/Example/Program.cs index 09eaf50..b14474c 100755 --- a/SendGrid/Example/Program.cs +++ b/SendGrid/Example/Program.cs @@ -13,9 +13,9 @@ namespace Example {
static void Main(string[] args)
{
- var credentials = new NetworkCredential("cjbuchmann", "Gadget_15");
- var transport = SMTP.GenerateInstance(credentials);
var header = new Header();
+ var transport = SMTP.GenerateInstance(new NetworkCredential("sgrid_username", "sgrid_password"));
+
var message = new SendGrid(header);
message.AddTo("eric.becking@sendgrid.com");
message.From = new MailAddress("eric@sendgrid.com");
diff --git a/SendGrid/SendGridMail/SendGrid.cs b/SendGrid/SendGridMail/SendGrid.cs index 06d1eaf..8ad0216 100755 --- a/SendGrid/SendGridMail/SendGrid.cs +++ b/SendGrid/SendGridMail/SendGrid.cs @@ -375,6 +375,7 @@ namespace SendGridMail Header.AddFilterSetting(filter, new List<string>(){ "text" }, text);
Header.AddFilterSetting(filter, new List<string>(){ "html" }, html);
Header.AddFilterSetting(filter, new List<string>(){ "replace"}, replace);
+ Header.AddFilterSetting(filter, new List<string>(){ "url"}, url);
Header.AddFilterSetting(filter, new List<string>(){ "landing" }, landing);
}
@@ -392,11 +393,11 @@ namespace SendGridMail var filter = this._filters["GoogleAnalytics"];
Header.Enable(filter);
- Header.AddFilterSetting(filter, new List<string>(){ "source " }, source);
+ Header.AddFilterSetting(filter, new List<string>(){ "source" }, source);
Header.AddFilterSetting(filter, new List<string>(){ "medium" }, medium);
Header.AddFilterSetting(filter, new List<string>(){ "term" }, term);
Header.AddFilterSetting(filter, new List<string>(){ "content" }, content);
- Header.AddFilterSetting(filter, new List<string>(){ "compaign" }, campaign);
+ Header.AddFilterSetting(filter, new List<string>(){ "campaign" }, campaign);
}
public void EnableTemplate(string html)
diff --git a/SendGrid/Tests/TestSendgrid.cs b/SendGrid/Tests/TestSendgrid.cs new file mode 100755 index 0000000..b690897 --- /dev/null +++ b/SendGrid/Tests/TestSendgrid.cs @@ -0,0 +1,289 @@ +using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+using SendGridMail;
+
+namespace Tests
+{
+ [TestFixture]
+ class TestSendgrid
+ {
+ [Test]
+ public void TestDisableGravatar()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableGravatar();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"gravatar\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void TestDisableOpenTracking()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableOpenTracking();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"opentrack\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableClickTracking()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableClickTracking();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"clicktrack\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableSpamCheck()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableSpamCheck();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"spamcheck\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableUnsubscribe()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableUnsubscribe();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"subscriptiontrack\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableFooter()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableFooter();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"footer\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableGoogleAnalytics()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableGoogleAnalytics();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"ganalytics\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableTemplate()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableTemplate();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"template\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableBcc()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableBcc();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"bcc\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void DisableBypassListManagement()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.DisableBypassListManagement();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"bypass_list_management\" : {\"settings\" : {\"enable\" : \"0\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableGravatar()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.EnableGravatar();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"gravatar\" : {\"settings\" : {\"enable\" : \"1\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableOpenTracking()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.EnableOpenTracking();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"opentrack\" : {\"settings\" : {\"enable\" : \"1\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableClickTracking()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+ var text = "hello world";
+ sendgrid.EnableClickTracking(text);
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"clicktrack\" : {\"settings\" : {\"enable\" : \"1\",\"text\" : \"hello world\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableSpamCheck()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ var score = 5;
+ var url = "http://www.example.com";
+ sendgrid.EnableSpamCheck(score, url);
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"spamcheck\" : {\"settings\" : {\"enable\" : \"1\",\"score\" : \"5\",\"url\" : \"http:\\/\\/www.example.com\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableUnsubscribe()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ var text = "<% %>";
+ var html = "<% name %>";
+ var replace = "John";
+ var url = "http://www.example.com";
+ var landing = "this_landing";
+ sendgrid.EnableUnsubscribe(text, html, replace, url, landing);
+
+ var jsonText = "\"text\" : \""+text+"\"";
+ var jsonHtml = "\"html\" : \""+html+"\"";
+ var jsonReplace = "\"replace\" : \""+replace+"\"";
+ var jsonUrl = "\"url\" : \"http:\\/\\/www.example.com\"";
+ var jsonLanding = "\"landing\" : \""+landing+"\"";
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"subscriptiontrack\" : {\"settings\" : {\"enable\" : \"1\","+
+ jsonText+","+jsonHtml+","+jsonReplace+","+jsonUrl+","+jsonLanding+"}}}}}", json);
+
+ }
+
+ [Test]
+ public void EnableFooter()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ var text = "My Text";
+ var html = "<body><p>hello, <% name %></p></body>";
+ var escHtml = "<body><p>hello, <% name %><\\/p><\\/body>";
+
+ sendgrid.EnableFooter(text, html);
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"footer\" : {\"settings\" : {\"enable\" : \"1\",\"text\" : \""+text+"\",\"html\" : \""+escHtml+"\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableGoogleAnalytics()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ var source = "SomeDomain.com";
+ var medium = "Email";
+ var term = "keyword1, keyword2, keyword3";
+ var content = "PG, PG13";
+ var campaign = "my_campaign";
+
+ sendgrid.EnableGoogleAnalytics(source, medium, term, content, campaign);
+
+ var jsonSource = "\"source\" : \"SomeDomain.com\"";
+ var jsonMedium = "\"medium\" : \""+medium+"\"";
+ var jsonTerm = "\"term\" : \""+term+"\"";
+ var jsonContent = "\"content\" : \""+content+"\"";
+ var jsonCampaign = "\"campaign\" : \""+campaign+"\"";
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"ganalytics\" : {\"settings\" : {\"enable\" : \"1\","+
+ jsonSource+","+jsonMedium+","+jsonTerm+","+jsonContent+","+jsonCampaign+"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableTemplate()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+ var html = "<% hadhdhd %>";
+
+ var escHtml = "<% hadhdhd %>";
+ sendgrid.EnableTemplate(html);
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"template\" : {\"settings\" : {\"enable\" : \"1\",\"html\" : \""+escHtml+"\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableBcc()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ var email = "somebody@someplace.com";
+ sendgrid.EnableBcc(email);
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"bcc\" : {\"settings\" : {\"enable\" : \"1\",\"email\" : \"" + email + "\"}}}}}", json);
+ }
+
+ [Test]
+ public void EnableBypassListManagement()
+ {
+ var header = new Header();
+ var sendgrid = new SendGrid(header);
+
+ sendgrid.EnableBypassListManagement();
+
+ String json = header.AsJson();
+ Assert.AreEqual("{\"filters\" : {\"data\" : {\"bypass_list_management\" : {\"settings\" : {\"enable\" : \"1\"}}}}}", json);
+ }
+ }
+}
diff --git a/SendGrid/Tests/Tests.csproj b/SendGrid/Tests/Tests.csproj index 71b0db4..8009274 100755 --- a/SendGrid/Tests/Tests.csproj +++ b/SendGrid/Tests/Tests.csproj @@ -55,6 +55,7 @@ <Compile Include="TestHeader.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestJsonUtils.cs" />
+ <Compile Include="TestSendgrid.cs" />
<Compile Include="TestSendgridMessageSetup.cs" />
<Compile Include="TestTreeNode.cs" />
<Compile Include="Transport\TestREST.cs" />
|