bjornblomqvist-emailer 0.1.13 → 0.1.15
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.
- data/VERSION +1 -1
- data/emailer.gemspec +4 -1
- data/lib/emailer.rb +3 -1
- data/lib/emailer/mock_smtp_facade.rb +1 -24
- data/lib/emailer/testing_middleware.rb +38 -0
- data/spec/emailer/logger_smtp_facade_spec.rb +0 -20
- data/spec/emailer/mock_smtp_facade_spec.rb +20 -0
- data/spec/emailer/testing_middlerware_spec.rb +72 -0
- metadata +4 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.15
|
data/emailer.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{emailer}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.15"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Erik Hansson", "Bjorn Blomqvist"]
|
@@ -31,12 +31,14 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/emailer/mock_smtp_facade.rb",
|
32
32
|
"lib/emailer/smtp_facade.rb",
|
33
33
|
"lib/emailer/string_utilities.rb",
|
34
|
+
"lib/emailer/testing_middleware.rb",
|
34
35
|
"lib/emailer/tofile_smtp_facade.rb",
|
35
36
|
"spec/emailer/authsmtp_facade_spec.rb",
|
36
37
|
"spec/emailer/logger_smtp_facade_spec.rb",
|
37
38
|
"spec/emailer/mail_queue_spec.rb",
|
38
39
|
"spec/emailer/mock_smtp_facade_spec.rb",
|
39
40
|
"spec/emailer/smtp_facade_spec.rb",
|
41
|
+
"spec/emailer/testing_middlerware_spec.rb",
|
40
42
|
"spec/emailer/tofile_smtp_facade_spec.rb",
|
41
43
|
"spec/spec.opts",
|
42
44
|
"spec/spec_helper.rb"
|
@@ -53,6 +55,7 @@ Gem::Specification.new do |s|
|
|
53
55
|
"spec/emailer/mail_queue_spec.rb",
|
54
56
|
"spec/emailer/mock_smtp_facade_spec.rb",
|
55
57
|
"spec/emailer/smtp_facade_spec.rb",
|
58
|
+
"spec/emailer/testing_middlerware_spec.rb",
|
56
59
|
"spec/emailer/tofile_smtp_facade_spec.rb",
|
57
60
|
"spec/spec_helper.rb"
|
58
61
|
]
|
data/lib/emailer.rb
CHANGED
@@ -5,4 +5,6 @@ require File.join File.dirname(__FILE__), 'emailer/mail_queue'
|
|
5
5
|
require File.join File.dirname(__FILE__), 'emailer/string_utilities'
|
6
6
|
require File.join File.dirname(__FILE__), 'emailer/mock_smtp_facade'
|
7
7
|
require File.join File.dirname(__FILE__), 'emailer/logger_smtp_facade'
|
8
|
-
require File.join File.dirname(__FILE__), 'emailer/tofile_smtp_facade'
|
8
|
+
require File.join File.dirname(__FILE__), 'emailer/tofile_smtp_facade'
|
9
|
+
require File.join File.dirname(__FILE__), 'emailer/testing_middleware'
|
10
|
+
|
@@ -49,33 +49,10 @@ module Emailer
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def get_url_for uuidString
|
52
|
-
|
52
|
+
TestingMiddleware.testing_path+uuidString
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
class TestingMiddleware
|
57
|
-
|
58
|
-
def initialize(app)
|
59
|
-
@app = app
|
60
|
-
end
|
61
|
-
|
62
|
-
def call(env)
|
63
|
-
if env["PATH_INFO"].index("/getemail/")
|
64
|
-
|
65
|
-
uuid = env["PATH_INFO"].sub("/getemail/".length)
|
66
|
-
|
67
|
-
return [200, {"Content-Type" => "text/plain"},['Emailer::SmtpFacade.default is not a MockSmtpFacade']] unless
|
68
|
-
Emailer::SmtpFacade.default.instance_of? Emailer::MockSmtpFacade
|
69
|
-
|
70
|
-
return [200, {"Content-Type" => "text/plain"},['No email sent']] if Emailer::SmtpFacade.default.sent.count == 0
|
71
|
-
|
72
|
-
return [200, {"Content-Type" => "text/html"}, [Emailer::SmtpFacade.default.sent[uuid][:body].to_s]]
|
73
|
-
else
|
74
|
-
@app.call env
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
79
56
|
end
|
80
57
|
|
81
58
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Emailer
|
2
|
+
|
3
|
+
|
4
|
+
class TestingMiddleware
|
5
|
+
|
6
|
+
class << self
|
7
|
+
attr_accessor :testing_path
|
8
|
+
def testing_path
|
9
|
+
@testing_path ||= "/get_email_just_for_test/"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def initialize(app)
|
15
|
+
@app = app
|
16
|
+
end
|
17
|
+
|
18
|
+
def call(env)
|
19
|
+
if env["PATH_INFO"].index(TestingMiddleware.testing_path)
|
20
|
+
|
21
|
+
uuid = env["PATH_INFO"][TestingMiddleware.testing_path.length..-1]
|
22
|
+
|
23
|
+
return [200, {"Content-Type" => "text/plain"},['Emailer::SmtpFacade.default is not a MockSmtpFacade']] unless
|
24
|
+
Emailer::SmtpFacade.default.instance_of? Emailer::MockSmtpFacade
|
25
|
+
|
26
|
+
return [200, {"Content-Type" => "text/plain"},['No email sent']] unless Emailer::SmtpFacade.default.sent.count > 0
|
27
|
+
|
28
|
+
return [200, {"Content-Type" => "text/plain"},['No email with that ID']] unless Emailer::SmtpFacade.default.sent[uuid]
|
29
|
+
|
30
|
+
return [200, {"Content-Type" => "text/html"}, [Emailer::SmtpFacade.default.sent[uuid][:body].to_s]]
|
31
|
+
end
|
32
|
+
|
33
|
+
@app.call env
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -70,26 +70,6 @@ module Emailer
|
|
70
70
|
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
74
|
-
|
75
|
-
describe :last_email_sent_url do
|
76
|
-
it 'Should return url to last email sent' do
|
77
|
-
smtp = LoggerSmtpFacade.new :log_file => TEST_LOG_FILE
|
78
|
-
|
79
|
-
email = {
|
80
|
-
:to => "test@bits2life.com",
|
81
|
-
:from => "test2@bits2life.com",
|
82
|
-
:subject => "This is a test 4",
|
83
|
-
:body => "Test body"
|
84
|
-
}
|
85
|
-
|
86
|
-
smtp.open do
|
87
|
-
smtp.send_mail email
|
88
|
-
end
|
89
|
-
|
90
|
-
smtp.last_email_sent_url.should == "/getemail/"+smtp.sent.keys.last
|
91
|
-
end
|
92
|
-
end
|
93
73
|
|
94
74
|
|
95
75
|
|
@@ -23,6 +23,26 @@ module Emailer
|
|
23
23
|
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
describe :last_email_sent_url do
|
28
|
+
it 'Should return url to last email sent' do
|
29
|
+
smtp = MockSmtpFacade.new
|
30
|
+
|
31
|
+
email = {
|
32
|
+
:to => "test@bits2life.com",
|
33
|
+
:from => "test2@bits2life.com",
|
34
|
+
:subject => "This is a test 4",
|
35
|
+
:body => "Test body"
|
36
|
+
}
|
37
|
+
|
38
|
+
smtp.open do
|
39
|
+
smtp.send_mail email
|
40
|
+
end
|
41
|
+
|
42
|
+
smtp.last_email_sent_url.should == TestingMiddleware.testing_path+smtp.sent.keys.last
|
43
|
+
end
|
44
|
+
end
|
26
45
|
|
27
46
|
end
|
47
|
+
|
28
48
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../spec_helper")
|
2
|
+
|
3
|
+
|
4
|
+
class Temp
|
5
|
+
|
6
|
+
def call bla
|
7
|
+
"Temp was called"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
module Emailer
|
13
|
+
describe TestingMiddleware do
|
14
|
+
|
15
|
+
EMAIL = {
|
16
|
+
:to => "test@test.se",
|
17
|
+
:from => "test@test.se",
|
18
|
+
:subject => "What subjcet ?",
|
19
|
+
:body => "<html>"
|
20
|
+
}
|
21
|
+
|
22
|
+
before :each do
|
23
|
+
Emailer::SmtpFacade.default = Emailer::MockSmtpFacade.new
|
24
|
+
end
|
25
|
+
|
26
|
+
describe :call do
|
27
|
+
|
28
|
+
it 'Should return an email when given the correct enviorment url' do
|
29
|
+
|
30
|
+
Emailer::SmtpFacade.default.open do |smtp|
|
31
|
+
smtp.send_html(
|
32
|
+
EMAIL
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
tm = TestingMiddleware.new(Temp.new)
|
37
|
+
tm.call("PATH_INFO" => Emailer::SmtpFacade.default.last_email_sent_url)[2][0].should == EMAIL[:body]
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'Should return "No email sent" if we havent sent any emails yet' do
|
42
|
+
|
43
|
+
tm = TestingMiddleware.new(Temp.new)
|
44
|
+
tm.call("PATH_INFO" => Emailer::TestingMiddleware.testing_path)[2][0].should == "No email sent"
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'Should return "No email with that ID" if we supplie the wrong id' do
|
49
|
+
|
50
|
+
Emailer::SmtpFacade.default.open do |smtp|
|
51
|
+
smtp.send_html(
|
52
|
+
EMAIL
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
tm = TestingMiddleware.new(Temp.new)
|
57
|
+
tm.call("PATH_INFO" => Emailer::SmtpFacade.default.get_url_for("ueoueo"))[2][0].should == "No email with that ID"
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'Should pass on the call if the url dosent match' do
|
62
|
+
tm = TestingMiddleware.new(Temp.new)
|
63
|
+
tm.call("PATH_INFO" => "/").should == "Temp was called"
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bjornblomqvist-emailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Hansson
|
@@ -67,12 +67,14 @@ files:
|
|
67
67
|
- lib/emailer/mock_smtp_facade.rb
|
68
68
|
- lib/emailer/smtp_facade.rb
|
69
69
|
- lib/emailer/string_utilities.rb
|
70
|
+
- lib/emailer/testing_middleware.rb
|
70
71
|
- lib/emailer/tofile_smtp_facade.rb
|
71
72
|
- spec/emailer/authsmtp_facade_spec.rb
|
72
73
|
- spec/emailer/logger_smtp_facade_spec.rb
|
73
74
|
- spec/emailer/mail_queue_spec.rb
|
74
75
|
- spec/emailer/mock_smtp_facade_spec.rb
|
75
76
|
- spec/emailer/smtp_facade_spec.rb
|
77
|
+
- spec/emailer/testing_middlerware_spec.rb
|
76
78
|
- spec/emailer/tofile_smtp_facade_spec.rb
|
77
79
|
- spec/spec.opts
|
78
80
|
- spec/spec_helper.rb
|
@@ -109,5 +111,6 @@ test_files:
|
|
109
111
|
- spec/emailer/mail_queue_spec.rb
|
110
112
|
- spec/emailer/mock_smtp_facade_spec.rb
|
111
113
|
- spec/emailer/smtp_facade_spec.rb
|
114
|
+
- spec/emailer/testing_middlerware_spec.rb
|
112
115
|
- spec/emailer/tofile_smtp_facade_spec.rb
|
113
116
|
- spec/spec_helper.rb
|