sparkpost_rails 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +99 -14
- data/lib/sparkpost_rails.rb +11 -0
- data/lib/sparkpost_rails/delivery_method.rb +175 -20
- data/lib/sparkpost_rails/version.rb +1 -1
- data/spec/attachments_spec.rb +52 -0
- data/spec/bcc_recipients_spec.rb +81 -0
- data/spec/campaign_id_spec.rb +64 -0
- data/spec/cc_recipients_spec.rb +98 -0
- data/spec/click_tracking_spec.rb +54 -0
- data/spec/{content_spec.rb → inline_content_spec.rb} +9 -1
- data/spec/open_tracking_spec.rb +54 -0
- data/spec/recipients_list_spec.rb +34 -0
- data/spec/return_path_spec.rb +50 -0
- data/spec/sandbox_mode_spec.rb +53 -0
- data/spec/spec_helper.rb +28 -1
- data/spec/substitution_data_spec.rb +40 -0
- data/spec/template_spec.rb +36 -0
- metadata +28 -8
- data/spec/options_spec.rb +0 -69
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SparkPostRails::DeliveryMethod do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
SparkPostRails.configuration.set_defaults
|
7
|
+
@delivery_method = SparkPostRails::DeliveryMethod.new
|
8
|
+
end
|
9
|
+
|
10
|
+
context "Sandbox Mode" do
|
11
|
+
it "handles sandbox mode enabled in the configuration" do
|
12
|
+
SparkPostRails.configure do |c|
|
13
|
+
c.sandbox = true
|
14
|
+
end
|
15
|
+
|
16
|
+
test_email = Mailer.test_email
|
17
|
+
|
18
|
+
@delivery_method.deliver!(test_email)
|
19
|
+
|
20
|
+
expect(@delivery_method.data[:options][:sandbox]).to eq(true)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "handles sandbox mode enabled on an individual message" do
|
24
|
+
test_email = Mailer.test_email sparkpost_data: {sandbox: true}
|
25
|
+
|
26
|
+
@delivery_method.deliver!(test_email)
|
27
|
+
|
28
|
+
expect(@delivery_method.data[:options][:sandbox]).to eq(true)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "handles the value on an individual message overriding configuration" do
|
32
|
+
SparkPostRails.configure do |c|
|
33
|
+
c.sandbox = true
|
34
|
+
end
|
35
|
+
|
36
|
+
test_email = Mailer.test_email sparkpost_data: {sandbox: false}
|
37
|
+
|
38
|
+
@delivery_method.deliver!(test_email)
|
39
|
+
|
40
|
+
expect(@delivery_method.data[:options].has_key?(:sandbox)).to eq(false)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "handles a default setting of 'false'" do
|
44
|
+
test_email = Mailer.test_email
|
45
|
+
|
46
|
+
@delivery_method.deliver!(test_email)
|
47
|
+
|
48
|
+
expect(@delivery_method.data[:options].has_key?(:sandbox)).to eq(false)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
data/spec/spec_helper.rb
CHANGED
@@ -28,6 +28,30 @@ class Mailer < ActionMailer::Base
|
|
28
28
|
text_part: "Hello, Testing!"
|
29
29
|
}
|
30
30
|
|
31
|
+
if options.has_key?(:attachments)
|
32
|
+
options[:attachments].times do |i|
|
33
|
+
attachments["file_#{i}.txt"] = "This is file #{i}"
|
34
|
+
end
|
35
|
+
|
36
|
+
options.delete(:attachments)
|
37
|
+
end
|
38
|
+
|
39
|
+
if options.has_key?(:images)
|
40
|
+
options[:images].times do |i|
|
41
|
+
attachments["image_#{i}.png"] = sparkpost_logo_contents
|
42
|
+
end
|
43
|
+
|
44
|
+
options.delete(:images)
|
45
|
+
end
|
46
|
+
|
47
|
+
if options.has_key?(:inline_attachments)
|
48
|
+
options[:inline_attachments].times do |i|
|
49
|
+
attachments.inline["image_#{i}.png"] = sparkpost_logo_contents
|
50
|
+
end
|
51
|
+
|
52
|
+
options.delete(:inline_attachments)
|
53
|
+
end
|
54
|
+
|
31
55
|
data.merge! options
|
32
56
|
|
33
57
|
if data.has_key?(:html_part)
|
@@ -44,7 +68,10 @@ class Mailer < ActionMailer::Base
|
|
44
68
|
end
|
45
69
|
|
46
70
|
end
|
71
|
+
end
|
47
72
|
|
48
|
-
|
73
|
+
def sparkpost_logo_contents
|
74
|
+
encoded_contents = "iVBORw0KGgoAAAANSUhEUgAAAfIAAACCCAMAAACKGrqXAAAAY1BMVEX////6\nZCNVVVr6ZCP6ZCNVVVr6ZCNVVVr6ZCP6ZCNVVVpVVVr6ZCNVVVpVVVr6ZCNV\nVVpVVVr6ZCNVVVpVVVpVVVpVVVr6ZCP6ZCNVVVr6ZCP6ZCP6ZCP6ZCNVVVpV\nVVr6ZCO+CfRXAAAAH3RSTlMAgMBAEPBgoDAg4NBwkIDAUBDwQLBgMOCgIFCQ\n0LBwPgQxPgAADDFJREFUeF7s2kGLnEAYhOFqbERhSROHZFzXWer//8rAJo17\n2jklhK73OXsrKItP9Q/hmBQGZ1EWLD6roqB4W5QEdbNnJUFxWOaoTssce1rm\nOGznbTia3VtVDJy27aYYePjDi1KgOLPaidy7whC5V4Uh8l1hiNxVEdDcvSgC\nTnenIsCXVQEw+TIrBOstarPjtKNe5lj9mbLQ6/ak4eEeFjkOf+ai0aGFRY7J\nYZGjhUWOyWGRo4VFjsNhkeMeFjmKsyLHurnLuL7h4dTI2W4Zv8Wg3t1drHHh\nzV3iLxLc3bqmLNS6i6JQ6/asKNS6vSgKtW5raNQ6641a95uGRa2z3qj1rPXG\nbb3TiFA3+9l6WzQQPOwn662ehyJQ6z7+JO6qBNR6/1jefNc4sNtP1luJuMhw\nhLnW2+qIyDnCXOutBUTOEaYrvQY2DQKLvzT1d72rxoD2NPLqD4eGgNlfux7Z\nNTQurd11mts0NLZbJ2nz/9Hs328/vv32fnvV3/N6u/zUaH61d4bLjatIFLZJ\nCL4owsKScEgm8n3/p9zazexi6yC6Wz2pqbo752diLBUfNN3QtP/6m9LdZ85t\nHkv40jB+B4fUd7cHmVB/Tm+2FQJnrPjbnYjPz6apPsyJ17RGx61fn/FcF5Yx\nynw3RP5OX1QanX/A4d0Q18iMSI8dFRd/q8i6CnVza8u7oU1xeGgQ2sjDjda0\nZLppjfjtUV3kPrfrk2DfDRMkjlQx17nKY4VjvIn00Hi22wDnCMhJ+VAaUWPG\nKpAXTaMc+bwe4EnyXL9E7iTHNKi39n3EwW/hMOMvQR7bEO0CxGjZ7cmbVw1m\nDfIik4TI0xpiEj7XLsJJXmb2uXVvJbryCPMfPUDPeuTJkgN6BOS0uoKAMKc6\n5EVBhDxbGHrQ2IW1jDEWuh8mOaHLc0GOv5oWu5+47xbvOPYdLoU5VOTKi6+U\n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\nYII=\n"
|
75
|
+
Base64.decode64(encoded_contents)
|
49
76
|
end
|
50
77
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SparkPostRails::DeliveryMethod do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@delivery_method = SparkPostRails::DeliveryMethod.new
|
7
|
+
end
|
8
|
+
|
9
|
+
context "Substitution Data" do
|
10
|
+
|
11
|
+
it "accepts substitution data with template-based message" do
|
12
|
+
sub_data = {item_1: "test data 1", item_2: "test data 2"}
|
13
|
+
|
14
|
+
test_email = Mailer.test_email sparkpost_data: {template_id: "test_template", substitution_data: sub_data}
|
15
|
+
|
16
|
+
@delivery_method.deliver!(test_email)
|
17
|
+
|
18
|
+
expect(@delivery_method.data[:substitution_data]).to eq(sub_data)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "accepts substitution data with inline-content message" do
|
22
|
+
sub_data = {item_1: "test data 1", item_2: "test data 2"}
|
23
|
+
|
24
|
+
test_email = Mailer.test_email sparkpost_data: {substitution_data: sub_data}
|
25
|
+
|
26
|
+
@delivery_method.deliver!(test_email)
|
27
|
+
|
28
|
+
expect(@delivery_method.data[:substitution_data]).to eq(sub_data)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "does not include substitution data element if none is passed" do
|
32
|
+
test_email = Mailer.test_email sparkpost_data: {template_id: "test_template"}
|
33
|
+
@delivery_method.deliver!(test_email)
|
34
|
+
|
35
|
+
expect(@delivery_method.data.has_key?(:substitution_data)).to eq(false)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SparkPostRails::DeliveryMethod do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@delivery_method = SparkPostRails::DeliveryMethod.new
|
7
|
+
end
|
8
|
+
|
9
|
+
context "Templates" do
|
10
|
+
|
11
|
+
it "accepts the template id to use" do
|
12
|
+
test_email = Mailer.test_email sparkpost_data: {template_id: "test_template"}
|
13
|
+
|
14
|
+
@delivery_method.deliver!(test_email)
|
15
|
+
|
16
|
+
expect(@delivery_method.data[:content][:template_id]).to eq("test_template")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "does not include inline content elements" do
|
20
|
+
test_email = Mailer.test_email sparkpost_data: {template_id: "test_template"}
|
21
|
+
|
22
|
+
@delivery_method.deliver!(test_email)
|
23
|
+
|
24
|
+
expect(@delivery_method.data[:content].has_key?(:from)).to eq(false)
|
25
|
+
expect(@delivery_method.data[:content].has_key?(:reply_to)).to eq(false)
|
26
|
+
|
27
|
+
expect(@delivery_method.data[:content].has_key?(:subject)).to eq(false)
|
28
|
+
|
29
|
+
expect(@delivery_method.data[:content].has_key?(:html)).to eq(false)
|
30
|
+
expect(@delivery_method.data[:content].has_key?(:text)).to eq(false)
|
31
|
+
expect(@delivery_method.data[:content].has_key?(:attachments)).to eq(false)
|
32
|
+
expect(@delivery_method.data[:content].has_key?(:inline_images)).to eq(false)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparkpost_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Kimball
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -69,13 +69,23 @@ files:
|
|
69
69
|
- lib/sparkpost_rails/exceptions.rb
|
70
70
|
- lib/sparkpost_rails/railtie.rb
|
71
71
|
- lib/sparkpost_rails/version.rb
|
72
|
-
- spec/
|
72
|
+
- spec/attachments_spec.rb
|
73
|
+
- spec/bcc_recipients_spec.rb
|
74
|
+
- spec/campaign_id_spec.rb
|
75
|
+
- spec/cc_recipients_spec.rb
|
76
|
+
- spec/click_tracking_spec.rb
|
73
77
|
- spec/from_spec.rb
|
74
|
-
- spec/
|
78
|
+
- spec/inline_content_spec.rb
|
79
|
+
- spec/open_tracking_spec.rb
|
80
|
+
- spec/recipients_list_spec.rb
|
75
81
|
- spec/recipients_spec.rb
|
76
82
|
- spec/reply_to_spec.rb
|
77
83
|
- spec/response_spec.rb
|
84
|
+
- spec/return_path_spec.rb
|
85
|
+
- spec/sandbox_mode_spec.rb
|
78
86
|
- spec/spec_helper.rb
|
87
|
+
- spec/substitution_data_spec.rb
|
88
|
+
- spec/template_spec.rb
|
79
89
|
homepage: https://github.com/the-refinery/sparkpost_rails
|
80
90
|
licenses:
|
81
91
|
- MIT
|
@@ -101,10 +111,20 @@ signing_key:
|
|
101
111
|
specification_version: 4
|
102
112
|
summary: SparkPost for Rails
|
103
113
|
test_files:
|
104
|
-
- spec/
|
105
|
-
- spec/
|
106
|
-
- spec/
|
107
|
-
- spec/
|
114
|
+
- spec/cc_recipients_spec.rb
|
115
|
+
- spec/inline_content_spec.rb
|
116
|
+
- spec/return_path_spec.rb
|
117
|
+
- spec/recipients_list_spec.rb
|
118
|
+
- spec/campaign_id_spec.rb
|
108
119
|
- spec/response_spec.rb
|
120
|
+
- spec/bcc_recipients_spec.rb
|
121
|
+
- spec/sandbox_mode_spec.rb
|
109
122
|
- spec/from_spec.rb
|
123
|
+
- spec/recipients_spec.rb
|
124
|
+
- spec/spec_helper.rb
|
125
|
+
- spec/template_spec.rb
|
126
|
+
- spec/open_tracking_spec.rb
|
110
127
|
- spec/reply_to_spec.rb
|
128
|
+
- spec/attachments_spec.rb
|
129
|
+
- spec/click_tracking_spec.rb
|
130
|
+
- spec/substitution_data_spec.rb
|
data/spec/options_spec.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe SparkPostRails::DeliveryMethod do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@delivery_method = SparkPostRails::DeliveryMethod.new
|
7
|
-
end
|
8
|
-
|
9
|
-
context "Options" do
|
10
|
-
|
11
|
-
it "handles track_opens option" do
|
12
|
-
SparkPostRails.configure do |c|
|
13
|
-
c.track_opens = true
|
14
|
-
end
|
15
|
-
|
16
|
-
test_email = Mailer.test_email
|
17
|
-
@delivery_method.deliver!(test_email)
|
18
|
-
|
19
|
-
expect(@delivery_method.data[:options][:open_tracking]).to eq(true)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "handles track_clicks option" do
|
23
|
-
SparkPostRails.configure do |c|
|
24
|
-
c.track_clicks = true
|
25
|
-
end
|
26
|
-
|
27
|
-
test_email = Mailer.test_email
|
28
|
-
@delivery_method.deliver!(test_email)
|
29
|
-
|
30
|
-
expect(@delivery_method.data[:options][:click_tracking]).to eq(true)
|
31
|
-
end
|
32
|
-
|
33
|
-
it "does not contain unset campaign_id" do
|
34
|
-
test_email = Mailer.test_email
|
35
|
-
@delivery_method.deliver!(test_email)
|
36
|
-
|
37
|
-
expect(@delivery_method.data.has_key?(:campaign_id)).to eq(false)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "contains supplied campaign_id" do
|
41
|
-
SparkPostRails.configure do |c|
|
42
|
-
c.campaign_id = "ABCD1234"
|
43
|
-
end
|
44
|
-
|
45
|
-
test_email = Mailer.test_email
|
46
|
-
@delivery_method.deliver!(test_email)
|
47
|
-
|
48
|
-
expect(@delivery_method.data[:campaign_id]).to eq("ABCD1234")
|
49
|
-
end
|
50
|
-
|
51
|
-
it "does not contain unset return_path" do
|
52
|
-
test_email = Mailer.test_email
|
53
|
-
@delivery_method.deliver!(test_email)
|
54
|
-
|
55
|
-
expect(@delivery_method.data.has_key?(:return_path)).to eq(false)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "contains supplied return_path" do
|
59
|
-
SparkPostRails.configure do |c|
|
60
|
-
c.return_path = "BOUNCE-EMAIL@EXAMPLE.COM"
|
61
|
-
end
|
62
|
-
|
63
|
-
test_email = Mailer.test_email
|
64
|
-
@delivery_method.deliver!(test_email)
|
65
|
-
|
66
|
-
expect(@delivery_method.data[:return_path]).to eq('BOUNCE-EMAIL@EXAMPLE.COM')
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|